借助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中设置的条件从该数据集计算每种状态的百分比值。我不知道如何相应地更新颜色。我猜想它与图层有关,但我不确定。任何帮助将不胜感激,在此先感谢!
答案 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工作。