2017-01-18 6 views
0

사용자가지도에 원을 그릴 수 있으며 마커를 추가 할 수 있습니다. - 원이 마커 밖에 있으면 마커를 내부로 가져 오려면 원을 확대해야합니다. .Google지도 JS API - 원을 연장합니다.

나는이 문서에서 아무것도 찾을 수 없습니다 :

이 있습니까 가능성과 같은 : 이벤트 오버레이는 마커 UserCircle.extend(event.overlay.location); 동안.

나는이 기능을 독자적으로 만들려고했으나 반경에 붙어 있습니다. 어느 단위입니까? 어떻게 그것을도 단위로 변환 할 수 있습니까?

어떤 아이디어?

+0

이 글을 읽을 ... 내가 지금 만든 그게 문제 : http://stackoverflow.com/questions/37997093/trying-to-get-google-map-with-user-set-radius –

답변

0

function extendRegion(marker, drawing){ 
    marker_lat = marker.getPosition().lat(); 
    marker_lng = marker.getPosition().lng(); 
    if(drawing.type == google.maps.drawing.OverlayType.CIRCLE){ 
     var path = [marker.getPosition(), drawing.overlay.getCenter()]; 
     var length = google.maps.geometry.spherical.computeDistanceBetween(path[0], path[1]); 

     if(length>drawing.overlay.getRadius()){ 
      consloe.log('The Marker was outside the drawing, it is extended now.'); 
      drawing.overlay.setRadius(length); 
     } 
    } 
    else if(drawing.type == google.maps.drawing.OverlayType.RECTANGLE){ 
     ne_lat = drawing.overlay.getBounds().getNorthEast().lat(); 
     ne_lng = drawing.overlay.getBounds().getNorthEast().lng(); 
     sw_lat = drawing.overlay.getBounds().getSouthWest().lat(); 
     sw_lng = drawing.overlay.getBounds().getSouthWest().lng(); 

     var error=0; 
     if(marker_lat<sw_lat){ 
      sw_lat = marker_lat; 
      error=1; 
     } 
     if(marker_lat>ne_lat){ 
      ne_lat = marker_lat; 
      error=1; 
     } 
     if(marker_lng<sw_lng){ 
      sw_lng = marker_lng; 
      error=1; 
     } 
     if(marker_lng>ne_lng){ 
      ne_lng = marker_lng; 
      error=1; 
     } 

     if(error) { 
      console.log('The Marker was outside the drawing, it is extended now.'); 
      drawing.overlay.setBounds({north: ne_lat, south: sw_lat, east: ne_lng, west: sw_lng}); 
     } 
    } 
}