我有一个大约30,000个多边形的GeoJSON数据集,每个多边形都附有一个名称和地址。我已将其作为tileset上传到Mapbox。
是否可以使用Mapbox GL JS创建“按属性搜索”框,用户可以在其中开始输入,搜索框根据用户可以选择的名称和地址提供结果?沿着this Mango example:
Mapbox可以实现吗?我可以通过对tileset运行SELECT * FROM tiles WHERE name LIKE '%venet%' or address LIKE '%venet%'
之类的东西,然后将结果连接到我自己的下拉列表,但我不知道Mapbox JS是否支持这种Ajax查询。或者Mapbox JS是否提供了用于执行此操作的小部件。
我之前在使用自定义代码和SQL LIKE
查询的Carto.JS中完成了此操作,但我不知道是否可以使用Mapbox。
答案 0 :(得分:0)
根据documentation for the datasets API,目前没有允许您按属性搜索的操作。
答案 1 :(得分:0)
虽然Lucas是正确的,你不能用数据集做到这一点,你说你上传的数据是 tileset 。
Mapbox-GL-JS querySourceFeatures
可以做你想做的事:
返回GeoJSON Feature对象的数组,表示指定的矢量切片或GeoJSON源中满足查询参数的要素。
它不支持部分匹配(即%venet%
),但您可以使用它来获取视口中的所有要素,然后自己过滤它们。这里有一个很好的例子:https://www.mapbox.com/mapbox-gl-js/example/filter-features-within-map-view/