tutorial examples espaƱol leaflet mapbox

examples - leaflet marker



Zoom para ajustarse a todos los marcadores en Mapbox u Leaflet (6)

¿Cómo configuro la vista para ver todos los marcadores en el mapa en Mapbox o Leaflet ? Al igual que Google Maps API hace con bounds ?

P.ej:

var latlngbounds = new google.maps.LatLngBounds(); for (var i = 0; i < latlng.length; i++) { latlngbounds.extend(latlng[i]); } map.fitBounds(latlngbounds);


La ''Respuesta'' no funcionó para mí algunas razones. Así que esto es lo que terminé haciendo:

////var group = new L.featureGroup(markerArray);//getting ''getBounds() not a function error. ////map.fitBounds(group.getBounds()); var bounds = L.latLngBounds(markerArray); map.fitBounds(bounds);//works!


Leaflet también tiene LatLngBounds que incluso tiene una función de extensión, al igual que los mapas de Google.

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

Entonces podrías simplemente usar:

var latlngbounds = new L.latLngBounds();

El resto es exactamente lo mismo.


Para Leaflet, estoy usando

map.setView(markersLayer.getBounds().getCenter());


También puede ubicar todas las funciones dentro de un FeatureGroup o todos los featureGroups, ¡vea cómo funciona!

//Group1 m1=L.marker([7.11, -70.11]); m2=L.marker([7.33, -70.33]); m3=L.marker([7.55, -70.55]); fg1=L.featureGroup([m1,m2,m3]); //Group2 m4=L.marker([3.11, -75.11]); m5=L.marker([3.33, -75.33]); m6=L.marker([3.55, -75.55]); fg2=L.featureGroup([m4,m5,m6]); //BaseMap baseLayer = L.tileLayer(''http://{s}.tile.openstreetmap.org/{z}/{x}/{y}.png''); var map = L.map(''map'', { center: [3, -70], zoom: 4, layers: [baseLayer, fg1, fg2] }); //locate group 1 function LocateOne() { LocateAllFeatures(map, fg1); } function LocateAll() { LocateAllFeatures(map, [fg1,fg2]); } //Locate the features function LocateAllFeatures(iobMap, iobFeatureGroup) { if(Array.isArray(iobFeatureGroup)){ var obBounds = L.latLngBounds(); for (var i = 0; i < iobFeatureGroup.length; i++) { obBounds.extend(iobFeatureGroup[i].getBounds()); } iobMap.fitBounds(obBounds); } else { iobMap.fitBounds(iobFeatureGroup.getBounds()); } }

.mymap{ height: 300px; width: 100%; }

<script src="https://unpkg.com/[email protected]/dist/leaflet.js"></script> <link href="https://unpkg.com/[email protected]/dist/leaflet.css" rel="stylesheet"/> <div id="map" class="mymap"></div> <button onclick="LocateOne()">locate group 1</button> <button onclick="LocateAll()">locate All</button>


var group = new L.featureGroup([marker1, marker2, marker3]); map.fitBounds(group.getBounds());

Mira here para más información.


var markerArray = []; markerArray.push(L.marker([51.505, -0.09])); ... var group = L.featureGroup(markerArray).addTo(map); map.fitBounds(group.getBounds());