2014-11-17 5 views
12

Интересно, как я могу получить координаты события клика по карте как lat, lon?Convert point to lat lon

Вот мой код:

map.on('click', function(evt) { 
    var element = popup.getElement(); 
    var coordinate = evt.coordinate; 

    var latLon = ol.proj.transform(coordinate, 'EPSG:3857', 'EPSG:4326'); 

    $(element).popover('destroy'); 
    popup.setPosition(coordinate); 

Обычно значение координат дает мне массив и т.д.: [48654.02545, +3265468,45455]

Но мне нужно Lat Lon т.д., ([39,54876 , 32,547821])

Аннотация: Мне нужно преобразовать EPSG: 3857 координату EPSG: 4326 координат (широта/долгота)

Любая идея?

+0

насчет map.getEventCoordinate (ЭВТ)? – Thibaut

+0

@Thibaut это дает мне sth, как это [3648595.2737768563,4850925.944188948], но у меня есть расчет на основе lat, lon – gokhangokce

ответ

29

Если ваша карта вид проекции Web Mercator (EPSG: 3857), который по умолчанию, то должно работать:

map.on('click', function(evt) { 
    var lonlat = ol.proj.transform(evt.coordinate, 'EPSG:3857', 'EPSG:4326'); 
    var lon = lonlat[0]; 
    var lat = lonlat[1]; 
    // … 
}); 
+0

Я решил проблему, но ваше решение более профессионально. Я думаю, проблема, вызванная андроидом LogCat, потому что я coudlnt вижу значения массива. – gokhangokce

+0

Это решение работает только для evt.coordinate. Он не работает для объекта значка. И т.д.: var geometry = feature.getGeometry(); var coord = geometry.getCoordinates(); var lonlat = ol.proj.transform (координата, 'EPSG: 3857', 'EPSG: 4326'); var lon = lonlat [0]; var lat = lonlat [1]; возвращает Lon-Lat: 0.000026949458523585642 - 0.000053898917059314044 – gokhangokce

+0

Вам необходимо предоставить полный пример. – erilem

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