嘿,我正在尝试将标签添加到 folium.circle 地图中,但由于某些原因它不起作用,任何人都可以提供帮助,这是我的地图脚本:
import folium
# Make an empty map
m = folium.Map(location=[59.911491, 10.757933], tiles="Mapbox Bright", zoom_start=5)
# I can add marker one by one on the map
hc =list(rf_map["General HC Type"])
def color_producer(hc_type):
if hc_type =="Oil Fields":
return 'green'
elif hc_type =="Oil & Gas Fields":
return 'deeppink'
else:
return 'red'
for i,hc_map in zip(range(0,len(rf_map)),hc):
folium.Circle(
location=[rf_map.iloc[i]['Latitude Dec Deg'],rf_map.iloc[i]['Longitude Dec Deg']],
popup=rf_map.iloc[i]['Field Name'],
radius=rf_map.iloc[i]['Oil Recovery PP Factor']*300,
fill=True,
fill_color=color_producer(hc_map),
color=color_producer(hc_map),
fill_opacity=0.7,
label=rf_map.iloc[i]["Field Name"]
).add_to(m)
m.save('map.html')
Run Code Online (Sandbox Code Playgroud)
kor*_*nos 14
嘿。你想要弹出标签还是只是一个圆圈中间(或其他地方)的文本?
要为圆形对象制作弹出框,您只需要使用add_child方法。代码将如下所示:
m = folium.Map([60, 10], tiles='Mapbox Bright', zoom_start=5)
folium.Circle([60, 10], 150000, fill=True).add_child(folium.Popup('My name is Circle')).add_to(m)
Run Code Online (Sandbox Code Playgroud)
输出:
如果您发现弹出式解决方案不适合您的需求,那么您可以在地图上放置一个文本对象。文本的坐标可以与圆心搭配。
例如:
import folium
from folium.features import DivIcon
text = 'Test'
circle_lat = 60
circle_lon = 10
m = folium.Map([60, 10], tiles='Mapbox Bright', zoom_start=5)
folium.Circle([circle_lat, circle_lon], 150000, fill=True).add_child(folium.Popup('My name is Circle')).add_to(m)
folium.map.Marker(
[circle_lat + 0.5, circle_lon - 1.6],
icon=DivIcon(
icon_size=(150,36),
icon_anchor=(0,0),
html='<div style="font-size: 24pt">%s</div>' % text,
)
).add_to(m)
m
Run Code Online (Sandbox Code Playgroud)
该代码的输出是:
我在这里找到了文本的解决方案。我希望正确理解了这个问题,并且这些示例有助于解决您的问题。如果您有任何疑问或我误解了问题中的某些内容,请告诉我。
| 归档时间: |
|
| 查看次数: |
13541 次 |
| 最近记录: |