Как добавить метку на каждом круге в python карты folium.circile - PullRequest
0 голосов
/ 26 июня 2018

хей Я пытаюсь добавить метки в карту 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 голосов
/ 05 июля 2018

Hei. Вы хотите, чтобы всплывающие метки или просто текст посередине (или где-то еще) круга?

Всплывающее:

Чтобы создать всплывающую рамку для объекта круга, вам просто нужно использовать метод 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

Я нашел решение для текста здесь . Я надеюсь, что правильно понял вопрос, и примеры помогли решить вашу проблему. Пожалуйста, дайте мне знать, если у вас есть вопросы или я что-то не так понял в этом вопросе.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...