【问题标题】:How to update layer in mapbox如何更新地图框中的图层
【发布时间】:2019-10-24 02:51:05
【问题描述】:

我有一个关于 mapbox 的问题——更新图层上的功能。

起初,我有一个初始 GeoJSON,它们可以显示在地图上

我们可以看到控制台上的变量“user”和地图上的两个点。

现在我从本地数据库中查询数据,后端将 GEOJSON 传输到前端,变量“user”已更新,从控制台可以看到。

所以,现在图层应该更新了, 我写了一个点击函数,当我点击旧图层(点)时,新数据(点)会显示出来。

map.on('load', function(){

        map.addSource('wifiData',{
            'type': "geojson",
            'data': {
                    "type": "FeatureCollection",
                    "features": user,
                }
        });

        map.addLayer({
            'id': 'test',
            'type': 'circle',
            'source' : 'wifiData',
            'paint':{
                'circle-color': '#00b7bf',
                'circle-radius': [
                    '/',['get','total'],50
                ],
                'circle-stroke-width': 1,
                'circle-stroke-color': '#333',
                'circle-opacity': 0.3,
            }
        });

map.on('click','test',function () {
                map.getSource('wifiData').setData(user);
            })

        });

但控制台显示“错误 {消息:“输入数据不是有效的 GeoJSON 对象。”“ 你能告诉我如何根据新数据更新地图上的图层吗?

【问题讨论】:

    标签: mapbox mapbox-gl-js


    【解决方案1】:

    这不是有效的 GeoJSON。如果您有多个功能,则需要将它们包装在一个功能集合中

    【讨论】:

      猜你喜欢
      • 2023-03-16
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2022-12-07
      • 1970-01-01
      • 2016-12-18
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多