gpt4 book ai didi

Python Folium MarkerCluster 颜色自定义

转载 作者:行者123 更新时间:2023-12-01 09:01:24 28 4
gpt4 key购买 nike

我正在使用 MarkerCluster 在 folium 中创建传单 map 。我已经查阅了所有文档并搜索了示例,但我无法弄清楚如何为给定的 MarkerCluster 或 FeatureGroup 自定义颜色(例如,一组为绿色而不是默认的蓝色)。

我尝试单独创建标记并迭代地将它们添加到 MarkerCluster,这给了我想要的颜色,但是 iFrame html 表无法正常工作,并且弹出窗口也没有出现。

我编写的代码工作完美(未提供用于弹出窗口的 html 表),但我真的希望能够更改一组标记的颜色并使用我的方法保留弹出窗口代码。任何指导将不胜感激!

or_map = folium.Map(location=OR_COORDINATES, zoom_start=8)

res_popups, res_locations = [], []
com_popups, com_locations = [], []
for idx, row in geo.iterrows():
if row['Type'] == 'Residential':
res_locations.append([row['geometry'].y, row['geometry'].x])
property_type = row['Type']
property_name = row['Name']
address = row['address']
total_units = row['Total Unit']
iframe = folium.IFrame(table(property_type, property_name,
address, total_units), width=width,
height=height)
res_popups.append(iframe)
else:
com_locations.append([row['geometry'].y, row['geometry'].x])
property_type = row['Type']
property_name = row['Name']
address = row['address']
total_units = row['Total Unit']
iframe = folium.IFrame(table(property_type, property_name, address,
total_units), width=width,
height=height)
com_popups.append(iframe)


r = folium.FeatureGroup(name='UCPM Residential Properties')
r.add_child(MarkerCluster(locations=res_locations, popups=res_popups))
or_map.add_child(r)

c = folium.FeatureGroup(name='UCPM Commercial Properties')
c.add_child(MarkerCluster(locations=com_locations, popups=com_popups))
or_map.add_child(c)

display(or_map)

最佳答案

您可以循环遍历它们并为每个位置创建一个标记,而不是将所有位置转储到集群中 - 这样您就可以设置标记的颜色。创建完成后,您可以将Marker添加到所需的MarkerCluster中。

for com_location, com_popup in zip(com_locations, com_popups):
folium.Marker(com_location,
popup=com_popup
icon=folium.Icon(color='red', icon='info-sign')
).add_to(cluster)

另一种方法是修改样式函数,如here所示(在[4]和[5]中)。

关于Python Folium MarkerCluster 颜色自定义,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52428916/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com