Как преобразовать Lat, long в систему координат XY (например, UTM), а затем отобразить это в пиксельном пространстве моего изображения - PullRequest
8 голосов
/ 30 мая 2011

У меня есть очень маленькая карта местности, которую я скачал с Openstreet map (PNG), а также ее файл OSM (.osm), который содержит его Lat, long.

Теперь я хочу преобразовать Lat, long в систему координат XY (например, UTM), а затем отобразить это в пиксельном пространстве моего изображения, которое имеет размер (600 x 800).Я знаю, что это двусторонний процесс, хотел бы знать, как это сделать.Спасибо

1 Ответ

8 голосов
/ 30 мая 2011

GPS-координаты в пикселях

  • Предполагая, что эта карта не пересекает простой меридиан
  • Предполагается, что пиксель 0,0 расположен слева вверху, а пиксель 600 800 - справа внизу.
  • Предполагается, что карта только для Северного полушария (ни одна часть карты не является южным полушарием)

    1. Определите самую левую долготу на вашем изображении 800x600 (X)
    2. Определите самую восточную долготу на вашем изображении 800x600 (Y)
    3. Определение долготы-разницы (Z = Y - X)
    4. Определите самую северную широту на вашем изображении 800x600 (A)
    5. Определите самую южную широту на вашем изображении 800x600 (B)
    6. Определить разницу долготы (C = A - B)

По широте и долготе, чтобы определить, на какой пиксель они кликнули:

  1. J = входная долгота
  2. K = Широта ввода

  3. Рассчитать X-пиксель

    XPixel = CInt (((Y - J) / CDbl (Z)) * 800)

  4. Рассчитать Y-пиксель

    YPixel = CInt (((A - K) / CDbl (C)) * 600)

UTM

Вот картографическая библиотека , которая должна помочь с преобразованиями GPS в UTM

...