2016-07-18 2 views
0

Ich habe eine Ebene mit mehr als 7000 Polygonen und zeige einen Teil der Polygone in einer Web-App mit "setFilter" beim Laden der Karte an. (Der Filter wählt die Polygone dynamisch aus, basierend auf Daten von der URL der aktuellen Seite.)Mapbox GL JS: Stellen Sie Map Center oder Bounds ein, um den sichtbaren Teil einer Ebene anzuzeigen

Ich kann jedoch nicht herausfinden, wie man die Kartenmitte auf den gerade angezeigten Polygonen (dem sichtbaren Teil) erzeugt dieser Ebene), was bedeutet, dass der Benutzer herumjagen muss, um es zu finden. Es können mehrere Polygone gleichzeitig sichtbar sein, und sie sind unterschiedlich groß. Irgendwelche Ideen?

+0

Sie können [turf.bbox] (http://turfjs.org/docs/#bbox) verwenden, die ein Polygon nimmt und eine Bounding Box zurückgibt und das Ergebnis an 'map.fitBounds (BBOX)' weitergibt, um das zu zentrieren Karte. – tristen

Antwort

0

Wenn Sie die feature collection von Polygonen, die auf der Karte sichtbar sind, können Sie das turf-extent Modul verwenden, um die geografische Ausdehnung der sichtbaren Polygone zu bekommen, und dann map.fitBounds(extent) rufen alle sichtbaren Polygone im Ansichtsfenster zu machen.

Verwandte Themen