Как комментировать значки, отображаемые с помощью Folium's TimestampedGeo JSON? - PullRequest
0 голосов
/ 17 марта 2020

Я хотел бы отображать текст в виде аннотаций значков на картах, созданных с помощью Folium и плагина TimestampedGeo JSON. То есть для перемещения точек, таких как в коде ниже, я бы хотел, чтобы всегда отображало текстовую метку рядом с кружком (не только при наведении курсора). Также было бы приемлемо просто отображать текст с изменяющимися координатами, например, используя DivIcons.

К сожалению, в настоящее время это кажется невозможным. Если мое понимание исходного кода Folium на https://github.com/python-visualization/folium/blob/master/folium/plugins/timestamped_geo_json.py правильное, единственными типами значков, которые реализованы для TimestampedGeoJSONs, являются «маркер» и «круг».

Может ли Folium каким-либо образом отображать текст в метках времени GeoJSON?

Вот пример кода, который я извлек из https://nbviewer.jupyter.org/github/python-visualization/folium/blob/master/examples/Plugins.ipynb:

import folium
from folium.plugins import TimestampedGeoJson
from flask import Flask

app = Flask(__name__)


@app.route('/')
def index():
    points = [
        {'time': '2017-06-02', 'coordinates': [-2.548828, 51.467697]},
        {'time': '2017-07-02', 'coordinates': [-0.087891, 51.536086]},
        {'time': '2017-08-02', 'coordinates': [-6.240234, 53.383328]},
        {'time': '2017-09-02', 'coordinates': [-1.40625, 60.261617]},
        {'time': '2017-10-02', 'coordinates': [-1.516113, 53.800651]}
    ]

    features = [
        {'type': 'Feature',
         'geometry': {
             'type': 'Point', 'coordinates': point['coordinates']},
         'properties': {
             'time': point['time'], 'icon': 'circle', 'iconstyle': {'radius': 5}}
         } for point in points]

    m = folium.Map(location=[56.096555, -3.64746], zoom_start=5)

    TimestampedGeoJson(
        {'type': 'FeatureCollection', 'features': features},
        period='P1M', auto_play=False, loop=False, duration='P0M').add_to(m)

    return m._repr_html_()


if __name__ == '__main__':
    app.run(debug=False)
...