#python #openstreetmap #geopy #osmnx
#python #openstreetmap #геометрия #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")
введите описание изображения здесь
Как я уже сказал, мне нужна карта с четким и расширенным видом улиц в районе, где расположена школа, а не всего района. И нанести на нее данные gps.
Как я могу этого добиться? Спасибо!!
Ответ №1:
Если вы хотите иметь карту меньшего размера, вы должны указать желаемую область с помощью ограничивающей рамки. Используя координаты вашей ограничивающей рамки, вы можете затем запрашивать данные из osm. Запрашивая все данные в вашем bbox, вам нужно только отобразить геометрию объектов, а затем добавить свои собственные точки данных
Комментарии:
1. Спасибо за ответ!! Я попробую это, как только смогу, и расскажу вам, удалось ли мне разобраться в этом. (Еще раз извините за мой английский, я испанец)