Wie kann ich den Speicherort ändern, der center von einer Karte mit Leaflet API?
Meine Karte (Mapbox) dauert, bis der gesamte hintergrund der Website, so dass das Zentrum ist in der Mitte der Seite. Aber der Fokus von der Karte für den Benutzer, ist auf der rechten Seite, weil ich Inhalt überschneidet sich mit der Karte auf der linken Seite. Wenn die Broschüre greift die Lage, ist es vom Zentrum der Karte, aber es wäre bequemer, wenn ich könnte es zu greifen, die Lage von der Mitte des rechten Drittel der Seite, so dass Art und Weise der Benutzer nicht zentrieren der Karte auf Ziele, die die angrenzenden Inhalte auf der linken Hälfte der Seite.
Gibt es eine Möglichkeit, ich könnte den center oder den Speicherort Schwerpunkt der Broschüre API für die Karte?
Hier ist, wie ich es eingerichtet haben derzeit
mapOptions: {
maxZoom: 18,
zoomControl: false,
worldCopyJump: true
},
createMap: function() {
Map.map = L.map('map', Map.mapOptions);
Map.layer = L.mapbox.tileLayer(Map.mapID, {
unloadInvisibleTiles: true,
}).addTo(Map.map);
Map.map.locate({setView: true});
Map.map.addControl(L.mapbox.geocoderControl(Map.mapID));
new L.Control.Zoom({ position: 'topright' }).addTo(Map.map);
},
Du musst angemeldet sein, um einen Kommentar abzugeben.
Können Sie eine combo von
panBy()
undgetSize()
offset der Karte die Breite des overlay.Hier ist ein snippet, dass sollte Euch gestartet:
In meinem Beispiel, mein overlay ist 33% der Breite der Karte. Also schnappe ich mir die Größe der Karte, dann mehrere von 0.15 (Grundlage HIERFÜR war ein Experiment, um zu sehen, was die beste offset-Betrag war), und verwenden Sie
panBy()
zum Ausgleich der map center.Hier ein vollständiges Beispiel.
Wenn Sie mehrere Marker und zentrieren möchten Sie die Karte in Ihren Grenzen und in der gleichen Zeit, haben Sie überlappende container, die Sie verwenden können, die fitBounds Optionen (paddingTopLeft, paddingBottomRight, Polsterung).
http://leafletjs.com/reference.html#map-paddingtopleft
Zunächst müssen Sie wissen, die lat und long der Punkt auf der Karte zentriert werden soll auf. So ist es einfacher, einfach anrufen Karte.Karte.setView vorbei in Ihre Koordinaten und zoom-level.
Api Referenz: http://leafletjs.com/reference.html#map-set-methods
Wenn Sie nicht wissen, Ihre Koordinaten, dann kann man es durch trial und error, einfach marker erstellen und fügen Sie es auf der Karte.
Fand diese Lösung durch ghybs über GIS was mir half, dieses problem zu lösen:
Broschüre-aktiv-Bereich