Вычислить географические координаты пикселей калиброванной карты

У меня есть откалиброванные карты (используя MapCalibrator), для которых мне нужно найти соответствующие плитки в стиле OSM.

Хотя я нашел несколько алгоритмов для расчета тайлов по географическим координатам (широта/долгота), я застрял в поиске местоположения пикселей (в широте/долготе) на основе нескольких откалиброванных точек, которые у меня есть.

Для Ex у меня есть изображение 3758/5751 пикселей и следующие калиброванные точки:

- x     y       lon      lat
- 1897  2224    26.3256  46.2311
- 3303  2708    26.43678 46.20419
- 2297  306     26.3577  46.3365
- 2135  4648    26.3423  46.0967
- 1885  1764    26.3236  46.2561
- 2091  2806    26.3386  46.1995
- 3613  2922    26.4604  46.1921

Как я могу вычислить loat/lon для произвольного пикселя?

ПС1. Карта туристическая, из достаточно маленького региона (без понятия, какой тип проекции используется).

PS2. Я кодирую на Java... но буду признателен за любую подсказку.

Что я пробовал, так это некоторое линейное преобразование между откалиброванными точками и каждым пикселем, но тайлы получаются как-то немного смещенными к северо-западу (на несколько километров, судя по масштабу карты), и в зависимости от того, какие 2 откалиброванные точки я использую, смещение больше или меньше.


person cristianhaulica    schedule 29.09.2011    source источник


Ответы (1)


Я понял. Линейное преобразование было достаточно хорошим.

Проблема заключалась в том, что географические координаты имеют начало в левом нижнем углу, а пиксели в левом верхнем углу. (Я перепутал координаты Y, и после смены знака в другой точке результат казался почти хорошим... но как-то сместился :D )

person cristianhaulica    schedule 30.09.2011