如何设置我的Mapbox样式以处理交互式数据?

时间:2019-04-27 06:40:44

标签: mapbox plotly-dash

借助here找到的geojson文件,我在Mapbox上制作了美国州地图。我真正需要的只是绘制地图的多边形坐标。

我正在使用Plotly Dash使其具有交互性。基本上,每种状态的颜色都会根据用户使用滑块提供的条件而改变。我对如何解决这个问题感到有些困惑。我可以在geojson文件中设置初始值,但是当它们的值根据滑块而变化时,如何更新它们呢?

下面是geojson文件的外观摘要,其中包含所有状态的坐标:

{"type":"FeatureCollection","features":[
{"type":"Feature","id":"01","properties":{"name":"Alabama","percentage":40},"geometry":{"type":"Polygon","coordinates":[[[-87.359296,35.00118],[-85.606675,34.984749],[more coordinates]]}},
{"type":"Feature","id":"02","properties":{"name":"Alaska","percentage":30},"geometry":{"type":"Polygon","coordinates":[....]...

如您所见,我将阿拉巴马州和阿拉斯加的初始值分别设置为40和30。将其上传到Mapbox后,我将颜色范围设置为0-100,并根据我的初始值完美地着色了所有状态。

与此同时,在Dash应用程序中,我有一个数据集,可以根据RangeSlider中设置的条件从该数据集计算每种状态的百分比值。我不知道如何相应地更新颜色。我猜想它与图层有关,但我不确定。任何帮助将不胜感激,在此先感谢!

1 个答案:

答案 0 :(得分:0)

您可以使用GeoJsonSource#setData完成此操作:https://docs.mapbox.com/mapbox-gl-js/api/#geojsonsource#setdata

此示例未使用setData(或完全不使用GeoJson源),但它确实显示了如何实现滑块以帮助您:https://docs.mapbox.com/mapbox-gl-js/example/timeline-animation/

免责声明:我在Mapbox工作。