Определение проекции в данной карте - PullRequest
2 голосов
/ 30 ноября 2009

Я понимаю, что это потенциально не вопрос программирования, однако я постоянно сталкиваюсь с как с программистом, поэтому я полагаю, что другие могут поделиться полезными знаниями.

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

На данный момент у меня есть код Matlab, чтобы открыть изображение и построить результирующую (x, y) координату, но я не могу понять, как преобразовать широту / долготу в x, y!

Любая помощь будет принята с благодарностью.

Ответы [ 2 ]

0 голосов
/ 06 декабря 2009

Оказывается, что программный расчет проекции карты - сложная задача обработки изображений. Мне удалось обойти эту проблему, просто используя карты с четко определенными проекциями - например, карты Google используют проекцию Меркатора, как и большинство карт Великобритании (поскольку наша Британская эталонная сетка основана на Универсальном поперечном Меркаторе).

Надеюсь, это поможет кому-то еще!

0 голосов
/ 30 ноября 2009

Географические координаты являются вариацией сферических координат. Вы можете преобразовать их в нормальные координаты:

x = r * sin(90 - lat) * cos(lon)
y = r * sin(90 - lat) * sin(lon)
z = r * cos(90 - lat)

Это не совсем точно, потому что Земля не совсем сфера. В зависимости от типа карты есть несколько способов получить 2D координаты из них. Изображение может проецироваться из сферы в цилиндр или две плоскости.

Эти ссылки могут помочь:

...