setcenter marcadores google example ejemplos añadir google-maps-api-3

google-maps-api-3 - marcadores - google.maps.marker example



¿Cómo obtener LatLngBounds de geometría de polígonos de características en google maps v3? (3)

Aquí hay otra solución para v3 Polygon:

var bounds = new google.maps.LatLngBounds(); map.data.forEach(function(feature){ if(feature.getGeometry().getType() === ''Polygon''){ feature.getGeometry().forEachLatLng(function(latlng){ bounds.extend(latlng); }); } });

Tengo muchas características poligonales cargadas con loadGeoJson y me gustaría obtener los latLngBounds de cada uno. ¿Necesito escribir una función que se repita a través de cada par de latitud larga en el polígono y haga una extensión () en un LatLngBounds para cada uno, o hay una manera mejor? (Si no es así, probablemente pueda encontrar la forma de recorrer los vértices de los polígonos, pero los punteros a un ejemplo de eso serían bienvenidos)


En la API de JavaScript de Google Maps v2, Polygon tenía un método getBounds (), pero no existe para Polygon v3. Aquí está la solución:

if (!google.maps.Polygon.prototype.getBounds) { google.maps.Polygon.prototype.getBounds = function () { var bounds = new google.maps.LatLngBounds(); this.getPath().forEach(function (element, index) { bounds.extend(element); }); return bounds; } }


Las características de Polígono no tienen una propiedad que exponga los límites, tiene que calcularlo por su cuenta.

Ejemplo:

//loadGeoJson runs asnchronously, listen to the addfeature-event google.maps.event.addListener(map.data,''addfeature'',function(e){ //check for a polygon if(e.feature.getGeometry().getType()===''Polygon''){ //initialize the bounds var bounds=new google.maps.LatLngBounds(); //iterate over the paths e.feature.getGeometry().getArray().forEach(function(path){ //iterate over the points in the path path.getArray().forEach(function(latLng){ //extend the bounds bounds.extend(latLng); }); }); //now use the bounds e.feature.setProperty(''bounds'',bounds); } });

Demostración: http://jsfiddle.net/doktormolle/qtDR6/