OSMNX绘制上海地图和车辆轨迹(一)

2023-10-25 02:40

本文主要是介绍OSMNX绘制上海地图和车辆轨迹(一),希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

OSMNX地图绘制——两行代码绘制地图

文章目录

  • OSMNX地图绘制——两行代码绘制地图
    • OSMNX初探
      • OSMNX的主要构成
        • 模块组成
        • 涉及数据类型介绍
      • 用OSMNX创建地图
        • 地图获取
        • 地图绘制
        • 地图的保存和加载

最近一段时间在做道路相关的工作,想要去构建节点和边的模型。发现OSMNX自带这个功能,于是开始了OSMNX的学习之路。由于网上的资料相对较少,写下这篇博客分享一下OSMNX的使用。
如想直接学习创建地图的代码,请直接移步至 用OSMNX创建地图

OSMNX初探

pip install osmnx下载好这个包,然后打开官方文档看OSMNX的用法。在本章首先对OSMNX的主要构成进行介绍,之后用一个例子来说明如何创建地图。

OSMNX的主要构成

模块组成

从官方文档看,比较重要的模块分为以下几个部分:

  • osmnx.bearing 图中边的方向角度,方向的熵,方向的分布
  • osmnx.distance 计算距离和最短路径并找到离点最近的节点/边
  • osmnx.elevation 海拔计算
  • osmnx.folium 通过folium创建可交互的地图(folium真的很强大!!!)
  • osmnx.geocoder 根据地址的名字返回经纬度或者gdf(GeoDataFrame )
  • osmnx.geometries 从 OpenStreetMap 下载地理空间实体的几何图形和属性
  • osmnx.graph 创建graph,返回networkx.MultiDiGraph,创建方法包括从点创建,从bbox创建,从多边形创建,从xml创建等
  • osmnx.io 进行序列化存储到磁盘,从磁盘上加载模型
  • osmnx.plot 绘制空间几何图形、街道网络和路线
  • osmnx.speed 添加speed和travel time
  • osmnx.stats 图的一些统计特征,例如节点的度、有多少个segment、边的平均长度等等
  • osmnx.truncate 按距离、边界框或多边形截断图形
  • osmnx.utils general util function
  • osmnx.utils_geo 和地理相关的utility function,从点创建bbx,插值、采样
  • osmnx.utils_graph 和图相关的utility function,如从MultiDiGraph变为DiGraph,GeoDataFrame/MultiDiGraph相互转化,获得最大联通分量子图,获取每条边的属性值列表,去除独立不含边的点
涉及数据类型介绍
  • networkx.MultiDiGraph
  • geopandas.GeoDataFrame
    • 简称gdf

用OSMNX创建地图

笔者使用的OSMNX版本为1.2.2,下面的实验都基于该版本。在加载地图时需要科学上网。
地图获取

首先import osmnx这个包,之后采用graph_from_place方法从地址上海市创建出networkx.MultiDiGraph对象

import osmnx as ox city = ox.graph_from_place("上海市",network_type = 'drive', simplify=True)
地图绘制

之后采用plot_graph方法绘制出图片。

ox.plot_graph(city)

在这里插入图片描述
每次都选择重新绘制图片是非常慢的,很好的是,osmnx为我们提供了保存和加载数据到磁盘的方法load_graphml/save_graphml

地图的保存和加载

保存数据

ox.save_graphml(city, 'shanghai.xml')

之后就可以使用

当然我们可以通过更改node_size等参数把图画的更好看,还可以设置是否保存图片等等。

ox.plot_graph(G, node_size=8, save=True, filepath="shanghai.png", dpi=300)

在这里插入图片描述

这篇关于OSMNX绘制上海地图和车辆轨迹(一)的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/279474

相关文章

使用Python绘制蛇年春节祝福艺术图

《使用Python绘制蛇年春节祝福艺术图》:本文主要介绍如何使用Python的Matplotlib库绘制一幅富有创意的“蛇年有福”艺术图,这幅图结合了数字,蛇形,花朵等装饰,需要的可以参考下... 目录1. 绘图的基本概念2. 准备工作3. 实现代码解析3.1 设置绘图画布3.2 绘制数字“2025”3.3

使用Python绘制可爱的招财猫

《使用Python绘制可爱的招财猫》招财猫,也被称为“幸运猫”,是一种象征财富和好运的吉祥物,经常出现在亚洲文化的商店、餐厅和家庭中,今天,我将带你用Python和matplotlib库从零开始绘制一... 目录1. 为什么选择用 python 绘制?2. 绘图的基本概念3. 实现代码解析3.1 设置绘图画

Python绘制土地利用和土地覆盖类型图示例详解

《Python绘制土地利用和土地覆盖类型图示例详解》本文介绍了如何使用Python绘制土地利用和土地覆盖类型图,并提供了详细的代码示例,通过安装所需的库,准备地理数据,使用geopandas和matp... 目录一、所需库的安装二、数据准备三、绘制土地利用和土地覆盖类型图四、代码解释五、其他可视化形式1.

如何用Python绘制简易动态圣诞树

《如何用Python绘制简易动态圣诞树》这篇文章主要给大家介绍了关于如何用Python绘制简易动态圣诞树,文中讲解了如何通过编写代码来实现特定的效果,包括代码的编写技巧和效果的展示,需要的朋友可以参考... 目录代码:效果:总结 代码:import randomimport timefrom math

无人叉车3d激光slam多房间建图定位异常处理方案-墙体画线地图切分方案

墙体画线地图切分方案 针对问题:墙体两侧特征混淆误匹配,导致建图和定位偏差,表现为过门跳变、外月台走歪等 ·解决思路:预期的根治方案IGICP需要较长时间完成上线,先使用切分地图的工程化方案,即墙体两侧切分为不同地图,在某一侧只使用该侧地图进行定位 方案思路 切分原理:切分地图基于关键帧位置,而非点云。 理论基础:光照是直线的,一帧点云必定只能照射到墙的一侧,无法同时照到两侧实践考虑:关

【WebGPU Unleashed】1.1 绘制三角形

一部2024新的WebGPU教程,作者Shi Yan。内容很好,翻译过来与大家共享,内容上会有改动,加上自己的理解。更多精彩内容尽在 dt.sim3d.cn ,关注公众号【sky的数孪技术】,技术交流、源码下载请添加微信号:digital_twin123 在 3D 渲染领域,三角形是最基本的绘制元素。在这里,我们将学习如何绘制单个三角形。接下来我们将制作一个简单的着色器来定义三角形内的像素

Flutter 进阶:绘制加载动画

绘制加载动画:由小圆组成的大圆 1. 定义 LoadingScreen 类2. 实现 _LoadingScreenState 类3. 定义 LoadingPainter 类4. 总结 实现加载动画 我们需要定义两个类:LoadingScreen 和 LoadingPainter。LoadingScreen 负责控制动画的状态,而 LoadingPainter 则负责绘制动画。

轨迹规划-B样条

B样条究竟是干啥的?白话就是给出一堆点,用样条的方式,给这些点连接起来,并保证丝滑的。 同时B样条分为准均匀和非均匀,以下为准均匀为例。 参考链接1:https://zhuanlan.zhihu.com/p/50626506https://zhuanlan.zhihu.com/p/50626506 参考链接2: https://zhuanlan.zhihu.com/p/536470972h

利用matlab bar函数绘制较为复杂的柱状图,并在图中进行适当标注

示例代码和结果如下:小疑问:如何自动选择合适的坐标位置对柱状图的数值大小进行标注?😂 clear; close all;x = 1:3;aa=[28.6321521955954 26.2453660695847 21.69102348512086.93747104431360 6.25442246899816 3.342835958564245.51365061796319 4.87

全英文地图/天地图和谷歌瓦片地图杂交/设备分布和轨迹回放/无需翻墙离线使用

一、前言说明 随着风云局势的剧烈变化,对我们搞软件开发的人员来说,影响也是越发明显,比如之前对美对欧的软件居多,现在慢慢的变成了对大鹅和中东以及非洲的居多,这两年明显问有没有俄语或者阿拉伯语的输入法的增多,这要是放在2019年以前,一年也遇不到一个人问这种需求场景的。 地图应用这块也是,之前的应用主要在国内,现在慢慢的多了一些外国的应用场景,这就遇到一个大问题,我们平时主要开发用的都是国内的地