Конвертировать координаты между проекциями разных границ - PullRequest
0 голосов
/ 28 марта 2019

У меня есть маркеры, которые были нанесены в унаследованной системе на карте EPSG4326 с границами от -180 до 180 широты и от -180 до 180 долготы. Сейчас я пытаюсь нанести их на карту EPSG4326, которая имеет границы от -90 до 90 широты и от -180 до 180 долготы. Как я могу преобразовать исходную координату в новую систему координат, чтобы она появилась на новой карте в том же месте? Я пытаюсь решить эту проблему в приложении JavaScript с помощью библиотеки отображения Leaflet. Будем весьма благодарны за любые указания или понимание.

Например, местоположение Лондона на исходной карте, которая представляет широту в диапазоне от -180 до 180, приблизительно (широта: 61,8750, Lon: 0,1278), а на карте назначения, где широта составляет от -90 до 90, - примерно (Lat: 51,5074, Lon: 0,1278).

1 Ответ

0 голосов
/ 29 марта 2019

Я понял это!

newlat = (180.0/Math.PI*(2.0*Math.atan(Math.exp(oldlat*Math.PI/180.0))-Math.PI/2.0))

Таким образом, если oldlat = 61.8750, newlat = 52.482780222078226, это то, что мне нужно, и это решает мою проблему отлично, преобразовывая широту с различными экстентами в новые экстенты.

Обратное (еслинеобходимо переконвертировать) формула:

oldlat = ((180.0/Math.PI)*Math.log(Math.tan((90.0+newlat)*Math.PI/360.0)))
...