我使用Mapbox GL JS來顯示多邊形圖層。我會允許用戶從下拉列表中選擇一個名稱,然後突出顯示並縮放到匹配的多邊形。Mapbox GL JS:縮放到過濾的多邊形?
我已經知道如何使用map.setFilter
突出顯示匹配多邊形,但我不知道如何縮放匹配多邊形的邊界。這是我當前的代碼:
map.addLayer({
'id': 'polygon_hover',
'source': 'mysource',
'source-layer': 'mylayer',
'type': 'fill',
'paint': {
'fill-color': 'red',
"fill-opacity": 0.6
},
"filter": ["==", 'CUSTNAME', ""]
});
// Get details from dropdown
custname.on("change", function(e) {
// get details of name from select event
map.setFilter('polygon_hover', ["==", 'CUSTNAME', name]);
// Get bounds of filtered polygon somehow?
// var bounds = ??;
// map.fitBounds(bounds);
});
我已經研究了Mapbox example of zooming to bounds,但它假定您已經知道的範圍是什麼。
有沒有什麼辦法可以在Mapbox中獲得匹配地圖過濾器的多邊形邊界?
謝謝!但是,如何獲得'data.features [0] .geometry.coordinates'的值呢?我所擁有的就是select事件中的'name'值。 – Richard
@Richard在你的代碼中,你應該是'e.features' ... –