最近需要做出租车方面研究工作,需要用路网数据。于是考虑公开数据集openstreetmap。从官网上下载下来的数据格式是.osm格式的。(如果是其他格式的,请自行寻找解决方法转换至osm后缀文件。)为了方便后续编程操作,我们使用postgresql先存储路网数据。下面详细阐述整个从osm转存到postgresql的过程。

整个过程分为一下几个部分:

(1)安转postgresql

(2)安转postgis

(3)安转osmosis

(4)导入数据

details:

(1)postgresql 是一个数据库,是openstreetmap转数据存储所支持的数据库。我们下载安装包postgresql9.1.3-2。安装postgresql很简单。这里不再赘述。想说明的一点是,这个安装包后面会出现stack builder安装。我们从其中安装postgis,是后面步骤需要的。如图

osm转存到postgresql

(2)postgis是时空数据引擎,用于帮助postgresql对我们即将导入的时空数据进行管理。在(1)中完成了安装。如果没有安装成功,自行查找相关教程。安装过程中,选择创建一个空的数据库。这个数据库命名为“aaa”。这个名字根据各位看官的真实需求命制。这个数据在导入数据时会用到。

(3)安装osmosis 这个工具是为postgresql导入osm数据文件所创建的工具,里面有我们需要的自动化sql脚本。以及读取osm文件内容到postgresql中的工具。下载地址osmosis

(4)在完成了前三步的工作后。我们可以正式开始安装过程了。安装前,将postgresql 与osmosis的安装目录放到环境变量path中。然后:

 psql -d aaa  -U postgres -W -f F:\postgres\osmosis\script\pgsimple_schema_0.6.sql 

这里说明:aaa是我们在第一步中创建的数据库。F:\postgres\osmosis\script\pgsimple_schema_0.6.sql 是我们对应osmosis对应的sql脚本。

 osmosis --read-xml file=F:\OSMData\SeattleWAUSA\SeattleWAUSAosm\SeattleWAUSA.osm --write-pgsimp database=”aaa” user=”postgres” password=”……” host=”localhost” 

这里说明:file=F:\OSMData\SeattleWAUSA\SeattleWAUSAosm\SeattleWAUSA.osm  是我们的osm文件的路径。database=“aaa”是前面配置的数据库。其他的自行确定。

相关文章: