javascript - google - Leaflet.js-Ajustar coordenadas geoJSON en la vista de mapa
leaflet print (3)
Caso similar conmigo. Dibujé todos los marcadores de datos de GeoJson . Así que escribí la función, que se llama repetidamente al hacer clic en el botón. Sólo intente si se adapta a sus necesidades.
function bestFitZoom()
{
// declaring the group variable
var group = new L.featureGroup;
// map._layers gives all the layers of the map including main container
// so looping in all those layers filtering those having feature
$.each(map._layers, function(ml){
// here we can be more specific to feature for point, line etc.
if(map._layers[].feature)
{
group.addLayer(this)
}
})
map.fitBounds(group.getBounds());
}
El mejor uso para escribir esta función es que incluso el estado del mapa / marcadores ha cambiado, obtendrá el estado más reciente / actual de los marcadores / capas. Cada vez que se llame a este método, todas las capas serán visibles a un nivel de zoom modesto.
Tengo un mapa leaflet.js que tiene puntos y cadenas en él que provienen de un archivo JSON externo.
Si agrego: map.setView (new L.LatLng (0,0), 10);
Se centrará el mapa en la latitud y longitud 0,0. ¿Cómo puedo configurarlo para que el centro del mapa y el zoom se ajusten a todos los puntos del JSON en él?
Necesitaba hacer esto cuando mostraba las instrucciones de un usuario desde su origen hasta un destino. L.LatLng
mi lista de direcciones en una matriz de L.LatLng
llamada directionLatLngs
entonces simplemente puedes llamar
map.fitBounds(directionLatLngs);
Esto funciona porque map.fitBounds
toma un objeto L.LatLngBounds
que es solo una matriz de L.LatLng
Podría agregar todas sus capas a un Grupo de funciones que tenga un método getBounds
. Así que deberías poder decir simplemente myMap.fitBounds(myFeatureGroup.getBounds());
El método getBounds para L.FeatureGroup solo está disponible en la rama maestra (no en la versión más reciente, 0.3.1), al menos por ahora.