【问题标题】:How to plot gps data (csv) on a map using OpenStreetMap如何使用 OpenStreetMap 在地图上绘制 gps 数据 (csv)
【发布时间】:2019-03-26 18:06:03
【问题描述】:

首先对不起我的英语。 我正在做我大学生涯的最后一个项目。我有数百名学生上学时的 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 数据。

我怎样才能实现它?谢谢!!

【问题讨论】:

    标签: python openstreetmap geopy osmnx


    【解决方案1】:

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

    【讨论】:

    • 感谢您的回答!!我会尽快尝试,如果我能弄清楚,我会告诉你。 (再次对不起我的英语,我是西班牙人)
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2012-09-05
    • 2019-04-24
    • 2011-04-16
    • 2016-02-06
    • 2017-08-30
    • 2013-10-09
    • 1970-01-01
    相关资源
    最近更新 更多