2012-07-22 2 views
3

내 앱에는 위치와 항목이라는 두 종류의 마커가 표시됩니다. 항목을 위치로 드래그 앤 드롭 할 수 있기를 바랍니다.다른 마커에 마커 놓기

그러나 마커를 드래그하면 해당 마커에서 끌기의 mouseover 이벤트가 실행되지 않습니다.

사람이 효과를 만들 수있는 방법을 알고 있다면, 내가

답변

2

내가 미터 중 실제 거리, 당신의 최선의 방법은 대상의 거리에 따라 그것을 구현하는 것입니다 생각 :-) 영원히 greatfull 것 또는 스크린 거리 (픽셀 단위). 다음

var locations = Array(); 
var items = Array(); 

과 : 여기

var itemMarker = new google.maps.Marker(opts); 
google.maps.event.addListener(itemMarker, 'drag', function(){ 
    for(var n = 0; n < locations.length; n++){ 
    var d = google.maps.geometry.spherical.computeDistanceBetween(this.getPosition(),locations[n].getPosition()); 
    if (d < 5){ 
     // do something when below a given threshold. 
    } 
    } 
}); 
items.push(itemMarker); 

데모 : 예를 들어

http://maps.forum.nu/v3/gm_template_simple.html (. 시카고를 향해 오마하 마커를 드래그) 당신이를로드 할 때 형상 라이브러리를로드하는 것을 잊지 마십시오 API.

+0

나는 비슷하지만 덜 우아하고 추가 대상을 사용하여 작업을 마쳤습니다. 내 솔루션에서 각 위치는 드롭 존 서클을 얻습니다. 원의 지름은 다음과 같이 계산됩니다. Math.pow (2, 21 - map.getZoom())/2 이것은 5가 나타내는 것입니다. –

+0

값 5는 특별한 의미가 없습니다. 그것은 단지 예일뿐입니다. 다행 이네. :-) – Marcelo

+0

5는 두 마커 사이의 거리입니다. 그러나 더 낮은 줌 레벨을 고려하여 거리를 늘려야합니다. 이것은 5를 Math.pow (2, 21 - map.getZoom())/2로 대체 한 이유입니다.이 방법으로 원의 크기는 미터 단위로 작지만 화면을 확대 할 때 같은 크기로 유지됩니다 –

관련 문제