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

6

我刚开始接触Python。

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

我之前做了什么:

步骤1:我有一个包含车辆驾驶信号信息的CSV文件。
步骤2:从文件中,我提取了一些纬度和经度数据,并将其保存为pandas数据帧形式。
步骤3:现在我将该数据帧保存为CSV文件。
步骤4:保存后,我将该文件提供给在线GPS可视化工具,以生成开放街道地图。

[![enter image description here][1]][1]

需求1:

我只想在Python中绘制相同的地图,而不是将Lat&Long CSV文件提供给在线GPS可视化工具。那么我应该使用哪个库?Base map库适合我的工作还是我应该选择其他替代方案?

需求2:

在Python中绘制地图后,我只想在地图上突出显示一些纬度和经度点。(如图片所示)


试着看看 folium:https://pythonhow.com/web-mapping-with-python-and-folium/ 如果你跟随在线找到的例子,应该很容易。 - Federico Gentile
1个回答

7
根据这个链接1链接2所建议的,您可以实现一些类似的结果。以下是示例代码。
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")

好的回答!如果您有按时间戳排序的带有纬度/经度的CSV文件,我添加了一个示例代码:https://gist.github.com/deparkes/9a0b45c69beb9a614f54d13bc7c551b5#gistcomment-3163422 - philshem

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接