Folium Map不显示后城的标记位置

问题描述 投票:0回答:1

我得到了包含位置信息的.csv文件,并被要求从邮政编码中检索lat / long。我执行了这段代码:

import postcodes_io_api
import pandas as pd
import folium

df = pd.read_csv(r'C:\Users\AUDIO-VISUAL\Desktop\MapPinpoint\RadioFibreSites.csv', encoding='ISO-8859-1')


api = postcodes_io_api.Api(debug_http=True)

for x in df["Postcode"]:
    data = api.get_postcode(x)
    latitude = [data["result"]["latitude"]]
    longitde = [data["result"]["longitude"]]

    m = folium.Map(location=[57.240618, -2.449411],
                  zoom_start = 12,
                  tiles='Stamen Terrain')

    for la, lon in zip([data["result"]["latitude"]], [data["result"]["longitude"]]):
        folium.Marker([la, lon], popup='<i>Mt. Hood Meadows</i>').add_to(m)

m

但是,叶贴图仅显示文件中的最后一项,而不是一次显示所有这些。有帮助吗?

python folium
1个回答
0
投票

我无法运行它,所以我会猜测。

所有问题是,您在循环内创建Map,并为每个postcode创建新地图,并放置了一个标记,而在下一个循环中,您创建了没有前一个标记的新地图。

您只需创建一次地图-循环之前。

import postcodes_io_api
import pandas as pd
import folium

df = pd.read_csv(r'C:\Users\AUDIO-VISUAL\Desktop\MapPinpoint\RadioFibreSites.csv', encoding='ISO-8859-1')


api = postcodes_io_api.Api(debug_http=True)

# create map only once
m = folium.Map(location=[57.240618, -2.449411], 
                 zoom_start = 12,
                  tiles='Stamen Terrain')

# convert post and add to map
for postcode in df["Postcode"]:
    data = api.get_postcode(postcode)

    latitude = [data["result"]["latitude"]]
    longitde = [data["result"]["longitude"]]

    for la, lon in zip(latitude, longitde):
        folium.Marker([la, lon], popup='<i>Mt. Hood Meadows</i>').add_to(m)

# display map
m
© www.soinside.com 2019 - 2024. All rights reserved.