2017-01-18 11 views
0

Пользователь может нарисовать круг на карте, а затем вы можете добавить маркеры - если маркер находится за пределами круга, то круг должен быть увеличен, чтобы занять маркер внутри ,API-интерфейс Google Maps JS - расширение круга

Я не мог найти ничего в документации:

Есть ли возможность как: 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}); 
     } 
    } 
} 

 Смежные вопросы

  • Нет связанных вопросов^_^