【问题标题】:How to add unique popups to each GeoJSON polygon in Folium using Python如何使用 Python 向 Folium 中的每个 GeoJSON 多边形添加唯一的弹出窗口
【发布时间】:2020-07-05 05:55:59
【问题描述】:

我正在尝试创建带有建筑物的 Folium 地图。我想根据其对应的openbare_ruimte 属性为每个建筑物添加一个弹出窗口。但是,我编写的代码向所有建筑物添加了相同的弹出窗口。

我已经就这个问题咨询了几个线程(#1023#1060#popups#popups2),但一直无法正常工作。

有谁知道如何将每个建筑物的 openbare_ruimte 属性添加到其弹出窗口中?

import json
import requests
import folium

url = "http://geodata.nationaalgeoregister.nl/bag/wfs?service=wfs&version=2.0.0&request=GetFeature&outputFormat=json&count=25&srsName=epsg:4326&typeName=bag:verblijfsobject&cql_filter=%28bag:woonplaats=%27Groningen%27%29"
js_data = json.loads(requests.get(url).text)


m = folium.Map(location=[53.2193835, 6.5665018], zoom_start=13)

fg = folium.map.FeatureGroup(name='Buildings').add_to(m)

#Add the polygons features to the FeatureGroup layer
for feature in js_data['features']:
    fg.add_child(folium.GeoJson(feature['properties']['pandgeometrie']))

#Add popups to the FeatureGroup layer
for feature in js_data['features']:
    fg.add_child(folium.Popup(feature['properties']['openbare_ruimte']))


folium.LayerControl().add_to(m)

m

【问题讨论】:

    标签: python leaflet popup geojson folium


    【解决方案1】:

    如果我理解正确,您希望每个建筑物都提供一个显示其地址的弹出窗口(我想是街道)。

    此代码似乎可以满足您的要求:

    import json
    import requests
    import folium
    
    url = "http://geodata.nationaalgeoregister.nl/bag/wfs?service=wfs&version=2.0.0&request=GetFeature&outputFormat=json&count=25&srsName=epsg:4326&typeName=bag:verblijfsobject&cql_filter=%28bag:woonplaats=%27Groningen%27%29"
    js_data = json.loads(requests.get(url).text)
    
    
    m = folium.Map(location=[53.2193835, 6.5665018], zoom_start=13)
    
    fg = folium.map.FeatureGroup(name='Buildings').add_to(m)
    
    for feature in js_data['features']:
        b = folium.GeoJson(feature['properties']['pandgeometrie'])
        b.add_child(folium.Popup(feature['properties']['openbare_ruimte']))
        fg.add_child(b)
    
    
    folium.LayerControl().add_to(m)
    
    m
    

    你会得到,例如:

    【讨论】:

    • 谢谢...!带有提供的链接的状态 404... 可能已过期?
    • folium.LayerControl().add_to(m) 如何知道必须添加到 m 的内容?
    猜你喜欢
    • 2016-11-05
    • 2019-07-02
    • 2022-11-15
    • 1970-01-01
    • 2022-08-26
    • 2020-04-26
    • 1970-01-01
    • 1970-01-01
    • 2019-03-07
    相关资源
    最近更新 更多