如何在folium.circile映射python的每个圆上添加标签

时间:2018-06-26 09:16:17

标签: python folium

嘿 我试图在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')

1 个答案:

答案 0 :(得分:3)

嘿。您是要在圆环的中间(或其他位置)使用弹出标签还是仅包含文本?

弹出窗口:

要为圆形对象制作弹出框,只需使用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)

输出:

enter image description here

常规文本解决方案

如果发现弹出式解决方案不适合您的需求,则只需将文本对象放在地图上即可。文本的坐标可以与圆心并置。

例如:

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

该代码的输出为:

enter image description here

我找到了针对文本here的解决方案。我希望能正确理解问题,并通过示例帮助您解决问题。请让我知道您是否有疑问,或者我误解了问题。