pgRouting官方教程四:准备数据

本教程详细介绍了如何创建数据库,获取并导入OpenStreetMap数据至PostgreSQL数据库,利用PostGIS和pgRouting插件进行数据处理,包括数据转换、导入及路由拓扑的创建。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

目录

一、创建数据库

二、获取实验数据

三、将数据导入数据库

3.1、使用PostGIS的数据导入工具导入数据

3.2、使用osm2pgrouting导入数据


   

     本文将介绍如何将实验数据导入数据库。

    我这里使用pgAdmin4连接Linux中安装的pgRouting,当然,也可以使用pgAdmin连接安装在Windows中的pgRouting来学习本教程。

一、创建数据库

    直接使用postgres用户创建一个名为city_routing的数据库:

    在city_routing数据库中分别添加PostGIS插件和pgRouting插件:

    

    完成!

二、获取实验数据

    本教程将使用OpenStreetMap的数据,数据可以使用以下链接下载:

        http://download.osgeo.org/livedvd/data/osm/DS_TZ/DS_TZ.osm.bz2

    该数据在ArcGIS中可视化是这样的(只显示道路数据):

    放大(只显示道路数据):

    该数据是达累斯萨拉姆市的数据(Dar Es Salaam),达累斯萨拉姆市是非洲国家坦桑尼亚的原首都,在世界地图上的位置为:

三、将数据导入数据库

3.1、使用PostGIS的数据导入工具导入数据

    在Windows中安装PostGIS会自动安装Shapefile数据导入工具:

    这个工具只能将shapefile文件导入数据库,而且我们下载的文件是osm格式文件,需要将其先转换为shapfile格式,可以参考我的这篇文章:https://zhuanlan.zhihu.com/p/82456450

    由于osm数据是WGS84坐标系(EPSG:4326)的,所以还需将其转换为Web墨卡托坐标系(EPSG:3857)。

    我这里将DS_TZ.osm文件转换为如下形式的shapefile文件:

    即只保留道路数据和POI数据(兴趣点)就好。

    接下来使用PostGIS数据导入工具将数据导入city_routing数据库:

    点击Import导入就好。

    查看数据库就可以发现多了两张数据表:

    接下来要为道路数据创建路由拓扑,使用osm2pgrouting导入数据则会自动创建。

    首先为ways表添加source列和target列:

   然后调用pgr_createTopology()方法为ways表创建路由拓扑:

3.2、使用osm2pgrouting导入数据

    待更新。。。

### GIS地理信息系统课程设计示例教程 #### 数据准备与环境搭建 为了有效开展GIS课程设计,首先需要准备好必要的软件和数据资源。推荐使用开源的QGIS作为主要的操作平台[^1]。该平台提供了丰富的功能来处理矢量和栅格数据类型,并支持多种常见的地理数据格式。 对于初学者来说,在开始具体的项目前应该先掌握一些基础的概念和技术要点,比如理解不同类型的地理空间数据(点、线、面),学会如何创建简单的地图投影以及熟悉常用的数据存储格式如Shapefile或GeoJSON等[^2]。 #### 实践案例一:土地利用分类 通过遥感影像来进行土地覆盖变化监测是一项非常实用的技术应用实例。可以下载公开可用的历史卫星图像集合作为练习素材;接着运用QGIS中的插件完成影像预处理工作,包括裁剪、重采样等操作;最后采用监督分类算法实现对特定区域内的植被、水体等地物类别识别并绘制专题图层显示结果。 ```python from osgeo import gdal, ogr import numpy as np def load_image(file_path): dataset = gdal.Open(file_path) band = dataset.GetRasterBand(1) array = band.ReadAsArray() return array image_data = load_image('path_to_your_raster_file.tif') print(image_data.shape) ``` 此段Python代码展示了如何读取一个TIFF格式的栅格文件,并将其转换成NumPy数组以便后续处理。 #### 实践案例二:交通网络分析 另一个有趣的课题是如何基于现有的道路网构建最短路径模型。这不仅有助于提高物流配送效率还能辅助城市规划决策制定过程。具体做法是在QGIS里加载OSM开放街道地图服务链接获取目标城市的路网结构信息;之后借助内置的空间分析工具求解两点间最优行驶路线方案。 ```sql SELECT seq, id1 AS node, id2 AS edge, cost FROM pgr_dijkstra( 'SELECT gid AS id, source::integer, target::integer, length::double precision AS cost FROM ways', 7956, 8034, false, false); ``` 上述SQL语句说明了PostgreSQL数据库配合pgRouting扩展库执行Dijkstra算法查找给定起点至终点之间最小成本路径的方式方法。
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值