如何使用python中的纬度和经度数据绘制地图并在地图中突出显示几个纬度和经度点?

时间:2019-01-31 07:48:57

标签: python python-3.x pandas matplotlib-basemap

我是使用python的新手。

我有一个问题,关于如何使用经度和纬度数据在Python中绘制地图?

我之前做过的事情:

第1步:我有一个CSV文件,其中包含有关车辆行驶信号的信息。
第2步:从文件中,我提取了一些大熊猫数据框形式的纬度和经度数据。
步骤3:现在,我将该数据框另存为CSV文件。
第4步:保存后,我将该文件提供给Online GPS Visualizer,以便它生成一个Open街道地图。

enter image description here

要求编号:1

我只希望在python中绘制同一张地图,而不是将Lat&Long csv文件提供给Online GPS Visualizer。那么我应该使用哪个图书馆?底图图书馆适合我的工作,还是我应该选择其他选择?

要求编号:2

在python中绘制地图后,我只想突出显示地图中的一些纬度和经度点。 (如图中指向)

1 个答案:

答案 0 :(得分:1)

根据此link1link2的建议,您可以实现一些相似的结果。例如,这是代码的样子。

import gpxpy
import gpxpy.gpx
import folium

gpx_file = open('path_to_gpx_file.gpx', 'r')

gpx = gpxpy.parse(gpx_file)
points = []
for track in gpx.tracks:
    for segment in track.segments:        
        for point in segment.points:
            points.append(tuple([point.latitude, point.longitude]))
print(points)
ave_lat = sum(p[0] for p in points)/len(points)
ave_lon = sum(p[1] for p in points)/len(points)

# Load map centred on average coordinates
my_map = folium.Map(location=[ave_lat, ave_lon], zoom_start=14)

#add a markers
for each in points:  
    folium.Marker(each).add_to(my_map)

#fadd lines
folium.PolyLine(points, color="red", weight=2.5, opacity=1).add_to(my_map)

# Save map
my_map.save("./gpx_berlin_withmarker.html")