如何使用OpenStreetMap在地图上绘制GPS数据(CSV)

时间:2019-03-26 18:06:03

标签: python openstreetmap geopy osmnx

首先,对不起我的英语。 我正在从事大学生涯的最后一个项目。我有数百名学生上学时的GPS数据(经度和纬度),我必须在地图上表示这些点,才能查看轨迹并了解GPS的准确性并清理一些数据

我的导师告诉我要使用OpenStreetMap在地图上提取此数据。

我已经研究了很多天,并且设法在学校所在的地区的地图上绘制了轨迹,但想法是放大学校所在的地区并查看要点和街道。精确。我想我必须从OpenStreetMap中添加一些图层,但是我不知道该怎么做。

我向您展示了我使用的代码:


import osmnx as ox
import networkx as nx
import geopandas as gpd
import matplotlib.pyplot as plt
import pandas as pd
from shapely.geometry import Point, Polygon
from time import time

%matplotlib inline


place_name='Sants-Montjuïc, Barcelona, Spain' #district of school
graph=ox.graph_from_place(place_name)  
type(graph)


nodes, edges = ox.graph_to_gdfs(graph)   
nodes.head()
edges.head()
type(edges)


fig, ax = plt.subplots(figsize=(15,15)) 
edges.plot(ax=ax, linewidth=1, edgecolor='#BC8F8F')  


df=pd.read_csv('C:\\Users\\1-MON.csv')  #csv file with the data
crs={'init': 'epsg:4326'}
df.head()

geometry=[Point(xy) for xy in zip( df["longitude"], df["latitude"])]

geo_df=gpd.GeoDataFrame(df, crs=crs, geometry=geometry)   
geo_df.head()
geo_df.plot(ax=ax, marker='o',markersize=2, color="blue")

enter image description here

正如我说的那样,我想要一张能清晰显示学校所在地区域而不是整个地区街道的地图。并在上面绘制gps数据。

如何实现?谢谢!

1 个答案:

答案 0 :(得分:0)

如果要缩小地图,则必须通过边界框指定所需区域。通过边界框的坐标,您可以从osm查询数据。通过查询bbox中的所有数据,您只需绘制对象的几何图形,然后添加自己的数据点