Как отобразить временной ряд фолиевых карт? - PullRequest
0 голосов
/ 19 мая 2019

Я хочу построить карты фолиума по времени (например, показать видео всех карт).

Я знаю, как построить одну карту, и успешно это сделал.Однако, если я делаю несколько графиков, отображается только первый.Я хочу знать, есть ли жизнеспособный способ выполнить задачу, которую я хочу?Возможно, отобразите одну, а затем удалите одну (как?) И отобразите следующую?

for path in paths:
    polyline.show_polyline(path, point_list)
    display(polyline.m)
    time.sleep(3)

, но учтите, что этот скрипт показывает только первую карту, последние не будут показаны.

Ожидайте график всех карт (покажите карту в течение 3 секунд, а затем выполните следующую).

1 Ответ

0 голосов
/ 20 мая 2019

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

Однако, фолиум поставляется с плагином TimestampedGeoJson, предназначенным для этой задачи. Вот пример:

import folium
from folium import plugins
m = folium.Map(
    location=[35.68159659061569, 139.76451516151428],
    zoom_start=16
)

# Lon, Lat order.
lines = [
    {
        'coordinates': [
            [139.76451516151428, 35.68159659061569],
            [139.75964426994324, 35.682590062684206],
        ],
        'dates': [
            '2017-06-02T00:00:00',
            '2017-06-02T00:10:00'
        ],
        'color': 'red'
    },
    {
        'coordinates': [
            [139.75964426994324, 35.682590062684206],
            [139.7575843334198, 35.679505030038506],
        ],
        'dates': [
            '2017-06-02T00:10:00',
            '2017-06-02T00:20:00'
        ],
        'color': 'blue'
    },
    {
        'coordinates': [
            [139.7575843334198, 35.679505030038506],
            [139.76337790489197, 35.678040905014065],
        ],
        'dates': [
            '2017-06-02T00:20:00',
            '2017-06-02T00:30:00'
        ],
        'color': 'green',
        'weight': 15,
    },
    {
        'coordinates': [
            [139.76337790489197, 35.678040905014065],
            [139.76451516151428, 35.68159659061569],
        ],
        'dates': [
            '2017-06-02T00:30:00',
            '2017-06-02T00:40:00'
        ],
        'color': '#FFFFFF',
    },
]

features = [
    {
        'type': 'Feature',
        'geometry': {
            'type': 'LineString',
            'coordinates': line['coordinates'],
        },
        'properties': {
            'times': line['dates'],
            'style': {
                'color': line['color'],
                'weight': line['weight'] if 'weight' in line else 5
            }
        }
    }
    for line in lines
]

plugins.TimestampedGeoJson({
    'type': 'FeatureCollection',
    'features': features,
}, period='PT1M', add_last_point=True).add_to(m)

display(m)

Источник

Я попробовал, и он работает под Python 3.7.

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