我是Mapbox GL JS的新手,我喜欢它!我在GeoJson源上过滤标记时遇到的一些事情,我想知道是否有人可以帮助我...这里是我的过滤逻辑示例:
function applyFilters() {
var filters = ["all", ["==", "$type", "Point"]];
if (document.getElementById('filter1checkbox').checked)
filters.push(['==', 'property1', true]);
if (document.getElementById('filter2checkbox').checked)
filters.push(['==', 'property2', true]);
map.setFilter('markers', filters);
var llb = new mapboxgl.LngLatBounds(geojsonExtent(markers));
map.fitBounds(llb);
map.setCenter(llb.getCenter());
}
这是我的问题:
有关这些物品去哪儿的建议吗?
答案 0 :(得分:0)
应用我的过滤器后,有没有办法获得与过滤器匹配的标记计数(您的搜索返回{X}个项目)?
您可以通过运行
获取当前在视口中显示的已过滤标记的数量map.queryRenderedFeatures({layers: ['markers']).length
无法获取整个地图中已过滤标记的总数。
当我使用geojsonExtent来获取标记集合的边界时,它似乎没有考虑过滤器。有没有办法获取过滤器后面的数据以传递到geojsonExtent?
您也可以使用queryRenderedFeatures
! (注意:此代码未经测试)
geojsonExtent({
type: 'FeatureCollection',
features: map.queryRenderedFeatures({layers: ['markers']).length
});