2014-11-17 2 views
12

궁금합니다.지도 클릭 이벤트의 좌표를 어떻게 위도, 경도로 얻을 수 있습니까? 여기 포인트를 위도로 변환

내 코드입니다 :

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]

을하지만 위도 경도 등이 필요합니다 ([39,54876 , 32,547821])

추상 : 나는 EPSG 변환 할 필요가 : 3857는 EPSG 좌표 : 4326 좌표 (위도/경도)

좋은 생각이야? 지도보기 프로젝션 웹 메르카토르 (EPSG : 3857) 인 경우

+0

무엇 map.getEventCoordinate (EVT)는 어떻습니까? – Thibaut

+0

@ Thibaut 나에게 이처럼 sth을 준다 [3648595.2737768563,4850925.944188948]하지만 lat, lon을 기반으로 한 계산이 있습니다. – gokhangokce

답변

29

, 기본값은 다음, 다음과 같은 작업을해야합니다 :

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 (coord, 'EPSG : 3857', 'EPSG : 4326'); var lon = lonlat [0]; var lat = lonlat [1]; 는 Lon-Lat를 반환합니다. 0.000026949458523585642 - 0.000053898917059314044 – gokhangokce

+0

완전한 예를 제공해야합니다. – erilem

관련 문제