Погрешность позиционирования картографических объектов

Вопросы общего характера по ГИС и дистанционному зондированию, не связанные с конкретным ПО.
ericsson
Гуру
Сообщения: 3321
Зарегистрирован: 27 июл 2009, 19:26
Репутация: 748
Ваше звание: Вредитель полей

Re: Погрешность позиционирования картографических объектов

Сообщение ericsson » 03 июн 2012, 20:09

landwatersun писал(а):
Пётр Дубоделов писал(а):что же в практике вычислений использует мапинфо: Int или UInt?
И каков же ответ? :)
Берем OllyDbg http://www.ollydbg.de/ , открываем MI... и вперед :)
(Сам MI не пользуюсь - попробовать не могу.)

landwatersun
Интересующийся
Сообщения: 22
Зарегистрирован: 11 сен 2011, 15:24
Репутация: 0

Re: Погрешность позиционирования картографических объектов

Сообщение landwatersun » 03 июн 2012, 22:32

http://glab2007.narod.ru/a/mifaq2.html#9 писал(а):Таким образом, получается, что нам необходимо сохранять числа в диапазоне равном 20004274. Если разделить это число на 2 миллиарда (как ближайшее круглое десятичное целое от максимального 32-битного), получим приблизительно 0,01, т.е – 10 сантиметров.
Так! Ну, хорошо, парень 2 в 32 степени принял за 2 миллиарда (куда он дел один разряд, не понятно). Но как он умудрился принять 0,01 метров за 10 сантиметров?!

Ariki
Гуру
Сообщения: 731
Зарегистрирован: 12 янв 2011, 22:40
Репутация: 304
Ваше звание:

Re: Погрешность позиционирования картографических объектов

Сообщение Ariki » 03 июн 2012, 23:25

Собственно, дело не в разрядности вычислений, а в разрядности хранения. Можно почитать, например, здесь:
http://www.mapsbydesign.co.uk/pdfs/boundsclause.pdf
MapInfo вычисляет размер минимальной единицы делением экстента карты на 2 000 000 000. Таким образом, знаковый разряд при хранении вообще не используется. При вычислениях же, скорее всего, используется плавающая точка.
Интересно, что если при какой-либо операции с геометрией (например, в MapBasic) координата выходит за допустимые пределы, MapInfo не сообщает об ошибке, а молча устанавливает для координаты максимальное или минимальное возможное значение. Сколько раз уже натыкался на эти грабли...
Еще один важный момент связан с использованием свободного драйвера MITAB, входящего в OGR. Там при создании TAB-файла всегда используется один и тот же фиксированный экстент:
- для географических координат (долгота/широта): BOUNDS (-180, -90) (180, 90)
- для любой другой проекции: BOUNDS (-30000000, -15000000) (30000000, 15000000)
Это решает проблему с возможным выходом за границы ограничивающего прямоугольника, но ограничивает точность данных.

Ответить

Вернуться в «Общие вопросы»

Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и 5 гостей