Страница 1 из 1

Привязка растра, нужен совет

Добавлено: 14 апр 2009, 12:23
Yurik
Добрый день!
Никогда не занимался привязкой карт, поэтому хочу услышать мнения людей, разбирающихся в этом.

У меня есть растровая карта с привязкой в OZi, файл привязки:
...
WGS 84,WGS 84, 0.0000, 0.0000,WGS 84
...
Map Projection,Latitude/Longitude,PolyCal,No,AutoCalOnly,No,BSBUseWPX,No
Point01,xy, 9966, 1263,in, deg, 48,33.3546667,N, 34,55.4056667,E,
Point02,xy,16443, 5663,in, deg, 48,30.3243333,N, 35,1.78316667,E,
Point03,xy,21695, 2406,in, deg, 48, 32.4005,N, 35,7.12233333,E,
Point04,xy,27530, 9501,in, deg, 48,27.5658333,N, 35, 12.7545,E,
Point05,xy,24163,14409,in, deg, 48,24.3701667,N, 35,9.25916667,E,
Point06,xy,22167,16222,in, deg, 48,23.2058333,N, 35, 7.2105,E,
Point07,xy,13430,17778,in, deg, 48, 22.324,N, 34, 58.4575,E,
Point08,xy, 9116,14940,in, deg, 48,24.2873333,N, 34,54.2198333,E,
Point09,xy, 2034,11995,in, deg, 48,26.3511667,N, 34, 47.222,E,
...
MMPXY,1,0,0
MMPXY,2,29500,0
MMPXY,3,29500,19569
MMPXY,4,0,19569
MMPLL,1, 34.758311, 48.572808
MMPLL,2, 35.249489, 48.564292
MMPLL,3, 35.240999, 48.347518
MMPLL,4, 34.749820, 48.356034
....
я так понимаю привязка осуществляется по 9-ю точкам, и еще есть привязка углов растра.

Проекция карты у меня Latitude/Longitude, мне нужно для любой точки карты знать её координаты (Lat/Lon), это нужно для отображение на карте данных с GPS-модуля.

Я реализовал географическую привязку данных с помощью полиномиального преобразования, как указано в статье "Полиномиальные преобразования - примеры реализации" (спасибо автору за хороший материал), а так как у меня точек 9, то я использовал регрессию методом МНК (реализация от PAV74), чтоб получить 6 точек. Все я это реализовал на Delphi, что быстрее проверить.
В результаты этих операций у меня получился привязанный растр, для проверки решил взять координаты углов растра (из файла привязки от OZI) и они у меня почему-то не совпатают. В чем проблема не могу разобраться, реализацию проверил несколько раз вроде все правильно.

И я решил спросить у вас, возможно мне не нужно было делать привязку по 9-ти точкам, а так как известны координаты углов сделать аффинное преобразование по 3 точкам углов растра и этого вполне бы хватило.
Так как проекция у меня Latitude/Longitude, а в этой проекци линии широты и долготы прямые, пересекающиеся друг с другом под углом 90° то у меня получается просто смещение, поворот и масштабирование, и с этим должно справляться аффинное преобразование, но для него нужно 3 точки, а у меня 4, просто не брать один угол и все или как?
Помогите разобраться, а то я уже грешу на то, что у меня просто не правильно привязан растр в OZI, хотя многие им пользуются и говорят привязка правильная.

Re: Привязка растра, нужен совет

Добавлено: 14 апр 2009, 14:36
geologic
А что за карта-то? Топографическая? Если да, то в ней меридианы и параллели вовсе не перпендикулярны и вторые даже не прямолинейные. Если нет, то что за бумажная карта в проекции широта-долгота??? Поглядеть бы не мешало б на такое диво ;)

И - я извиняюсь - ликбез по привязке и проекциям читали?

Re: Привязка растра, нужен совет

Добавлено: 14 апр 2009, 16:45
Максим Дубинин
насколько не совпадают?

Re: Привязка растра, нужен совет

Добавлено: 15 апр 2009, 10:39
Yurik
to geologic
Ликбез я читал, как привязать карты в OZI или на местности я представляю.
Я не знаю в какой проекции моя карта, но она привязана в OZI, а там указано что проекция Latitude/Longitude и датум WGS84, где-то я читал что эта проекция используется для бесплатной версии озика (я не знаю в какой версии была привязана карта) и она дает неплохую привязку для карт небольших регионов, у меня подробная карта города и я предположил что в проекции Latitude/Longitude делается приближение что линии широты и долготы прямые, пересекающиеся друг с другом под углом 90°, возможно я ошибаюсь, но про эту проекцию я больше ничего не нашел...

to sim
Не совпадают где-то метров на 5-10, сейчас точно не могу сказать вечером посмотрю точнее.

to All
Сейчас смотрю на эту карту в OZI и ничего не могу понять...
Есть одна из точек по которой делается привязка карты (Point01,xy, 9966, 1263,in, deg, 48,33.3546667,N, 34,55.4056667,E) она находится на пересечении двух дорог, я ставлю путевую точку на этом же перекрестке и задаю координаты путевой точки такие-же как и координаты точки привязки и путевая точка на карте уходит в сторону метров на 5-7... Почему так происходит, ведь координаты совпадают? Мне почему-то кажется что Ньюман хранит координаты в map файле в каком-то другом виде, но в каком? Или я что-то делаю не правильно?

Re: Привязка растра, нужен совет

Добавлено: 15 апр 2009, 12:54
geologic
в проекции Latitude/Longitude делается приближение что линии широты и долготы прямые, пересекающиеся друг с другом под углом 90°
Да, это правильно, как еще, про бесплатный ОЗИ тож. Но сама карта -не широта долгота, и надо бы знать ее родные параметры, ну, для оценки ошибок, и видеть вживую для разговора. Так вы покажете ее или нет? :lol:

Re: Привязка растра, нужен совет

Добавлено: 15 апр 2009, 13:26
Yurik
Карта у меня в формате Ozf2 и весит 80 мб, сейчас нету возможности выложить её всю, да наверное нету и смысла в этом... Вот скрин карты открытой в ozi

Re: Привязка растра, нужен совет

Добавлено: 15 апр 2009, 17:21
Максим Дубинин
5-10 метров это нормальная ошибка для GPS, полиномиального преобразования и типа вашей карты, сомневаюсь, что можно сделать лучше.