【问题标题】:Mapbox: add search by attribute box?Mapbox:添加按属性框搜索?
【发布时间】:2017-02-20 12:25:16
【问题描述】:

我有一个包含大约 30,000 个多边形的 GeoJSON 数据集,每个多边形都附有名称和地址。我已将此作为图块集上传到 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 是否为此提供了一个小部件。

我之前在 Carto.JS 中使用自定义代码和 SQL LIKE 查询完成了此操作,但我不知道 Mapbox 是否可以。

【问题讨论】:

    标签: mapbox mapbox-gl-js


    【解决方案1】:

    根据documentation for the datasets API,目前没有允许您按属性搜索的操作。

    【讨论】:

      【解决方案2】:

      虽然 Lucas 是正确的,您不能使用 datasets 执行此操作,但您说您将数据作为 tileset 上传。

      Mapbox-GL-JS querySourceFeatures 可以做你想做的事:

      返回一个 GeoJSON Feature 对象数组,表示指定矢量切片或 GeoJSON 源中满足查询参数的特征。

      它不支持部分匹配(即%venet%),但您可以使用它来获取视口中的所有特征,然后自己过滤它们。这里有一个很好的例子:https://www.mapbox.com/mapbox-gl-js/example/filter-features-within-map-view/

      【讨论】:

        猜你喜欢
        • 2015-09-04
        • 2016-05-29
        • 1970-01-01
        • 2017-07-31
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多