import csv import numpy as np import folium from folium import plugins def PlotLineOnMap(): Lat = [] Lon = [] print(type(Lat)) fn = '济南公交.csv' with open(fn) as csvFile: csvDictReader = csv.DictReader(csvFile) for row in csvDictReader: print(row['经度'], row['维度']) Lat.insert(0,float(row['维度'])) Lon.insert(0,float(row['经度'])) print(Lat) # 给出的坐标系为GCJ-02,如果需要测试google地图,需要进行坐标转换 tri = np.array(list(zip(Lat, Lon))) san_map = folium.Map( location=[36.641254, 117.068689], zoom_start=16, # 高德街道图 tiles='http://webrd02.is.autonavi.com/appmaptile?lang=zh_cn&size=1&scale=1&style=7&x={x}&y={y}&z={z}', # tiles='http://webst02.is.autonavi.com/appmaptile?style=6&x={x}&y={y}&z={z}', # 高德卫星图 attr='default') folium.PolyLine(tri, color='#3388ff').add_to(san_map) marker_cluster = plugins.MarkerCluster().add_to(san_map) for lat, lon in zip(Lat, Lon): folium.Marker([lat, lon], color='red').add_to(marker_cluster) san_map.save('test.html') def main(): PlotLineOnMap() if __name__ == '__main__': main()