2017-02-12 8 views
2

Итак, у меня есть 4 граничных точки в Lat/Lon, и у меня также есть 4 ограничивающие точки в системе координат (x, y), которые непосредственно связаны с ограничивающими точками поля lat/lon. (это плитка, загружаемая через API в C#, но не существует никакой функции для получения локальных координат)Перевод между Lat/Lon на локальную систему координат? Знание границ

Эта плитка 305,5 единиц ширины & высокая, (это векторная плитка) Как бы установить проблему линейной алгебры, чтобы когда у меня есть Lat/Lon внутри границ, я могу найти координату x, y, к которой она относится, в другой системе координат.

Я читал несколько проекционных вопросов, и никто из них не имеет дело с изображением, являющимся векторным изображением, но у меня есть абсолютное расстояние, на которое карта отображается (305,5 локальных единиц).

Вот некоторые данные, которые я имею, но я пытаюсь сделать это в алгоритме, который я мог бы использовать для разных границ и т. Д. В C# (данные получены через API, где я могу легко получить границы и значения lat/lon :

       (lat,lon) -> (x,y) 
Top-Left Bound: (38.79691,-90)   -> (-305.5,305.5) 
Top-Right Bound: (38.79691,-89.99451) -> (305.5,305.5) 
Bot-Left Bound: (38.79263,-90)   -> (-305.5,-305.5) 
Bot-Right Bound: (38.79263,-89.99451) -> (305.5,-305.5) 
Center-Bound: (38.79477,-89.99725) -> (0,0) 

ответ

1

В вашем конкретном случае, это то, что вы ищете

X = -305,5 + (305,5 - -305,5) * (долгота - -90)/(-89,99451 - -90) Y = -305,5 + (305,5 - -305,5) * (лат - 38,79691)/(38,79691 - 38,79477)

Общая форма:

Х = ImageLeft + ImageWidth * (долгота - LonLeft)/(LonWidth)

Вам может потребоваться настроить это немного в зависимости, если минимальное значения находятся в верхний/левый или нижний/левый.

+0

Будет проверять это спасибо за ваш ответ! – TheRealSoCal

+0

Спасибо, что это сработало с некоторой настройкой ценностей, а негативы на y-странице большое спасибо! – TheRealSoCal

Смежные вопросы