print google address javascript geojson

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

http://leafletjs.com/reference.html#latlngbounds


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.