у меня есть несколько ошибок при построении карты фолиума python - PullRequest
0 голосов
/ 10 января 2020

Прежде всего, пожалуйста, не судите меня, но я пытаюсь построить фолиевую карту с маркерами всех мест Макдональдс в моей стране.
во-первых, я загружал с помощью webscraper все nqmes и адреса мест, во-вторых, я пытаюсь преобразовать их с помощью библиотеки geopy в точки широты / долготы, чтобы загрузить их в фолиум маркер

import folium
import pandas as pd
from geopy.geocoders import ArcGIS

snifim_df = pd.read_csv('Snif.csv')
nom = ArcGIS()
snifim_df['LAT'] = snifim_df['Address'].apply(nom.geocode).apply(lambda x:x.latitude) 
snifim_df['LON'] = snifim_df['Address'].apply(nom.geocode).apply(lambda x:x.longitude) 

мой код фолиума будет выглядеть так

Mcmap = folium.Map(location=[35.58, -92.09], zoom_start = 6)
fg = folium.FeatureGroup(name = "McDonalds")

snif_lat = list(snifim_df['LAT'])
snif_lon = list(snifim_df['LON'])
snif_name = list(snifim_df['Name'])

for lat,lon, name in zip(snif_lat,snif_lon,snif_name):
    fg.add_child(folium.Marker(location=[lat,lon],popup=name))

Mcmap.add_child(fg)
Mcmap.save("test.html")

всякий раз, когда я запускаю этот код, возникает одна из двух ошибок:
1) я получаю ошибку тайм-аута geopy "geopy.ex c .GeocoderTimedOut: истекло время ожидания службы"
2) код выполняется без ошибок, но карта html не отображается в моей папке

мой набор данных выглядит например, с 169 строками: enter image description here

Может кто-нибудь спасти меня и объяснить мне, что происходит не так и как это исправить?
заранее спасибо:)

1 Ответ

1 голос
/ 10 января 2020

если вы используете фолиум 0.10.0, просто протестируйте код:

    snifim_df = pd.DataFrame({'name':['york', 'land', 'wu'], 'lat':[35.09,36.12,35.13],
                      'lon':[-90.18, -91.25, -90.88]}) 
    Mcmap = folium.Map(location=[35.58, -92.09], zoom_start = 6)
    fg = folium.FeatureGroup(name = "McDonalds")

    snif_lat = list(snifim_df['lat'])
    snif_lon = list(snifim_df['lon'])
    snif_name = list(snifim_df['name'])

    for lat,lon, name in zip(snif_lat,snif_lon,snif_name):
        fg.add_child(folium.Marker(location=[lat,lon],popup=name))

    Mcmap.add_child(fg)
    Mcmap.save("test.html")

, тогда это результат

enter image description here

...