attributes - 在 GeoJSON [Folium] [Python] [Map] 中为不同的多边形显示不同的弹出窗口
问题描述
我正在使用 folium 来可视化城市中的区域。
我的 GeoJSON 是一个具有多个多边形作为特征的 FeatureCollection。我希望能够为文件中的不同多边形添加不同的弹出窗口。这个想法是在 GEOJSON 文件中显示不同多边形的名称。
我能够向完整的 geoJSON 添加一个弹出窗口。但是,我希望能够为不同的多边形添加不同的弹出窗口(本质上是特征的名称)。
folium.GeoJson(gurgaon_subzone,name='geojson').add_child(folium.Popup("Gurgaon")).add_to(m)
解决方案
有一个解决方法。您需要遍历每个 geoJson 功能并为每个功能创建一个新的 geojson。然后,为每个 geoJson 功能添加一个弹出窗口。然后将所有特征组合在一个层中。在我的代码中,完整的 geoJson 是data_geojson_dict
layer_geom = folium.FeatureGroup(name='layer',control=False)
for i in range(len(data_geojson_dict["features"])):
temp_geojson = {"features":[data_geojson_dict["features"][i]],"type":"FeatureCollection"}
temp_geojson_layer = folium.GeoJson(temp_geojson,
highlight_function=lambda x: {'weight':3, 'color':'black'},
control=False,
style_function=lambda feature: {
'color': 'black',
'weight': 1},
tooltip=folium.features.GeoJsonTooltip(fields=list_tooltip_vars,
aliases=[x.capitalize()+":" for x in list_tooltip_vars],
labels=True,
sticky=False))
folium.Popup(temp_geojson["features"][0]["properties"]["productor"]).add_to(temp_geojson_layer)
temp_geojson_layer.add_to(layer_geom)
layer_geom.add_to(m)
folium.LayerControl(autoZIndex=False, collapsed=True).add_to(m)
推荐阅读
- java - cucumber + java + maven 可以生成多少种报表?
- c++ - ARDUINO 相关 C++ 编程查询。大互联网所需的基础课程和功能知识
- python-3.x - 如何在python中使用selenium Xpath从tr标签中获取所有td [3]标签
- node.js - NodeJS、TypeScript、Mongoose 无法使用 FindById 获取文档
- node.js - AdonisJs:Route.on() 与 Route.get()
- plsql - 如何使用 DBMS_XMLGEN 创建 XML,然后使用单个 SYS_REFCURSOR 获取和打印?
- javascript - 如何删除在zend中选中的单选按钮默认值
- php - 缺少 PHP 环境设置以从 require 调用中读取变量
- mysql - SELECT CASE param_name END CASE INTO @var 在存储过程中使用参数分配列
- c# - 获取应用程序的第一个密钥保管库机密值时出现异常