2014-11-17 20 views
12

Zastanawiam się, w jaki sposób mogę uzyskać współrzędne atrybutu mapy kliknij jako lat, lon?Konwertuj punkt na lat lon

Oto mój kod:

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); 

Normalnie wartość współrzędnych daje mi tablicę itp: [48654.02545, +3.265.468,45455]

Ale muszę łac lon itp: ([39,54876 , 32,547821])

Streszczenie: trzeba przekształcić EPSG: 3857 współrzędnych EPSG: 4326 współrzędnych (szerokości/długości)

Jakiś pomysł?

+0

co map.getEventCoordinate (EVT)? – Thibaut

+0

@ Thibaut to daje mi coś takiego [3648595.2737768563,4850925.944188948], ale mam obliczenia na podstawie lat, lon – gokhangokce

Odpowiedz

29

Jeśli mapa jest projekcja Web Mercator (EPSG: 3857), który jest domyślnym, a następnie następujące powinny działać:

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

i rozwiązany problem, ale twoje rozwiązanie jest bardziej profesjonalne. Myślę, że problem spowodowany przez Android LogCat, ponieważ coudlnt zobaczyć wartości tablicy. – gokhangokce

+0

To rozwiązanie działa tylko dla evt.coordinate. Nie działa dla obiektu ikony. Itd: var geometry = feature.getGeometry(); var coord = geometry.getCoordinates(); var lonlat = ol.proj.transform (coord, 'EPSG: 3857', 'EPSG: 4326'); var lon = lonlat [0]; var lat = lonlat [1]; Zwraca Lon-Lat: 0,000026949458523585642 - 0,000053898917059314044 – gokhangokce

+0

Musisz podać pełny przykład. – erilem