2017-01-18 8 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}); 
     } 
    } 
} 
関連する問題