거리 구하는 함수가 분명 있을것 같은데 찾지를 못해서 직접 계산했었습니다.
그런데 드디어 함수를 찾았네요.
거리계산 예제
이전 포스트 에서 직접 계산한 것과 오차는 거의 없는 것 같습니다.
var base_latlng, cur_latlng;
function GM_load() {
var map = new GMap2(document.getElementById("map"));
map.setCenter(new GLatLng(36.615527, 127.353515), 12);
map.setUIToDefault();
map.enableGoogleBar();
GEvent.addListener(map, "click", function(overlay,point) {
base_latlng = map.fromContainerPixelToLatLng(point);
var lmarker = new GMarker(point);
map.addOverlay(lmarker);
lmarker.setImage("http://maps.google.com/mapfiles/ms/icons/red-pushpin.png");
});
GEvent.addListener(map, "singlerightclick", function(point, src, overlay){
cur_latlng = map.fromContainerPixelToLatLng(point);
var rmarker = new GMarker(cur_latlng);
map.addOverlay(rmarker);
rmarker.setImage("http://maps.google.com/mapfiles/ms/icons/purple-pushpin.png");
var dist = cur_latlng.distanceFrom(base_latlng);
var myHtml = "Distance: " + dist;
map.openInfoWindow(cur_latlng, myHtml);
});
}
base_latlng, cur_latlng 를 전역으로 선언했습니다.
왼쪽 클릭한 좌표를 fromContainerPixelToLatLng 함수로 base_latlng에 넣고, 마커도 넣었습니다.
마찬가지로 오른쪽 클릭한 좌표를 cur_latlng에 넣었습니다.
그리고 distanceFrom 함수로 거리를 구한 다음 말풍선으로 거리를 표시했습니다.
distanceFrom 함수가 반환하는 거리의 단위는 미터입니다.
그런데 드디어 함수를 찾았네요.
거리계산 예제
이전 포스트 에서 직접 계산한 것과 오차는 거의 없는 것 같습니다.
var base_latlng, cur_latlng;
function GM_load() {
var map = new GMap2(document.getElementById("map"));
map.setCenter(new GLatLng(36.615527, 127.353515), 12);
map.setUIToDefault();
map.enableGoogleBar();
GEvent.addListener(map, "click", function(overlay,point) {
base_latlng = map.fromContainerPixelToLatLng(point);
var lmarker = new GMarker(point);
map.addOverlay(lmarker);
lmarker.setImage("http://maps.google.com/mapfiles/ms/icons/red-pushpin.png");
});
GEvent.addListener(map, "singlerightclick", function(point, src, overlay){
cur_latlng = map.fromContainerPixelToLatLng(point);
var rmarker = new GMarker(cur_latlng);
map.addOverlay(rmarker);
rmarker.setImage("http://maps.google.com/mapfiles/ms/icons/purple-pushpin.png");
var dist = cur_latlng.distanceFrom(base_latlng);
var myHtml = "Distance: " + dist;
map.openInfoWindow(cur_latlng, myHtml);
});
}
base_latlng, cur_latlng 를 전역으로 선언했습니다.
왼쪽 클릭한 좌표를 fromContainerPixelToLatLng 함수로 base_latlng에 넣고, 마커도 넣었습니다.
마찬가지로 오른쪽 클릭한 좌표를 cur_latlng에 넣었습니다.
그리고 distanceFrom 함수로 거리를 구한 다음 말풍선으로 거리를 표시했습니다.
distanceFrom 함수가 반환하는 거리의 단위는 미터입니다.