2010-07-19 10 views
5

¿Hay alguna manera fácil de encontrar el cuadro delimitador de una polilínea con Google Maps API v3? Estoy trabajando en un proyecto donde necesito actualizar los límites a medida que se agregan y eliminan datos del mapa. Esto es bastante fácil solo haciendo bd.extend (punto) donde bd es el objeto encuadernado y el punto es un objeto LatLng. El problema es cuando empiezo a eliminar datos. Me gustaría cambiar los límites y volver a acercar. ¿Hay funciones integradas que puedan hacer esto o tendré que escribir algo para mí?Obtener los límites de una poliine en Google Maps API v3

Respuesta

4

El v2 API tenía el método GPolyline.getBounds() para hacer exactamente esto. Sin embargo, parece que no existe un método equivalente en el v3 API.

Es posible que desee manejar esto sobrescribiendo la propiedad changed de su PolylineMVCObject para recibir una notificación cuando el objeto cambie de estado. Luego puede calcular el cuadro delimitador utilizando el método LatLngBounds.extend() que sugirió.

Creo que Google omitió intencionalmente tales métodos de la API v3 en un intento de mantener la API liviana. Una omisión similar discussed a couple of days ago on Stack Overflow fue el método GMap2.clearOverlays().

7

Ampliando la solución de oenpelli, este es el método extendido getBounds() que estoy usando para recrear la funcionalidad de la API V2. Esto está funcionando perfectamente en mi proyecto.

google.maps.Polyline.prototype.getBounds = function() { 
    var bounds = new google.maps.LatLngBounds(); 
    this.getPath().forEach(function(item, index) { 
     bounds.extend(new google.maps.LatLng(item.lat(), item.lng())); 
    }); 
    return bounds; 
}; 

Solo recuerde que esto debe agregarse DESPUÉS de que la API javascript esté cargada, por lo tanto, en su método init.

Cuestiones relacionadas