PostgreSQL+PostGIS安装以及用Osmosis导入openstreetmap地图数据

原创 2013年12月03日 15:28:10

本文中所有的操作都是在win7平台下进行的。

1、安装PostgreSQL

安装包下载地址:http://www.enterprisedb.com/products-services-training/pgdownload#windows根据自己电脑的实际情况下载相应的安装包。安装过程很简单,一直点next就行,要注意的有以下几点:

——最最重要的一点!!!关掉360,万恶的360!!!

——注意选择安装路径,应该很多人都很抓狂软件被不小心装在了C盘吧,还有就是不建议装在program files文件夹里面,因为文件夹名有空格,会影响到后面的操作,最好是直接装在某个盘的根目录下;

——中间有让你输入超级用户postgres的密码,这个密码要记住,后面创建及配置数据库的时候会用到;

——安装完成后会提示是否启动Stack Builder(如下图),为了方便后面安装PostGIS,还是建议启动;


启动之后Stack Builder,我们可以比较方便的下载到跟我们所安装的PostgreSQL数据库匹配的PostGIS安装文件,在Spatial Extensions目录下勾选你所需要的版本(如下图),即可下载。当然也可以到官网去下载,地址是http://postgis.refractions.net/download/windows/但是这样不能保证版本匹配,还是建议通过Stack Builder下载。


2、安装PostGIS

安装时可以选择创建一个数据库;


中间需要输入数据库连接信息,用户就是超级用户,密码就是之前所设定的密码;


最后是数据库名字,我用的是osmosis,大家也可以用其他的,不过后面用指令操作的时候就要注意改掉相应的地方。

3、配置数据库

开始之前最好把PostgreSQL安装目录的bin文件夹路径以及Osmosis的bin文件夹路径添加到Path环境变量里面去,这样子就免得指令操作时要不停切换目录(不会的百度一下)。

首先创建一个用户:createuser -U postgres osmosisuser


然后为数据库安装PostGIS拓展:psql -U postgres -d osmosis -f F:\PostgreSQL\9.0\share\contrib\postgis-2.0\postgis.sql,之前所说的不要安装在program files里面就是因为这行命令路径不能带有空格。执行之后有可能会出现一堆乱码的文字,请不要怕,是这样子的,估计是文字编码不匹配的原因,但是不管它啦。

之后我们需要修改一下数据库权限,通过命令psql -U postgres -d osmosis来启动PostgreSQL命令行,我的数据库名字弄成omsosis了,请自动忽略。


这时候可以打开PostgreSQL看看。


授权:grant all privileges on database osmosis to osmosisuser;

改变属主:alter table spatial_ref_sys owner to osmosisuser;


这时候到PostgreSQL上面刷新一下,可以看到表spatial_ref_sys的属主已经变成了osmosisuser。


之后给用户加个密码:alter role osmosisuser password 'openstreetmap';


最后运行脚本,为数据库创建Schema(模式),此时需要退出PostgreSQL命令行,直接输入\q命令即可。脚本文件为F:\Program Files\Osmosis\script\pgsimple_schema_0.6.sql,(其实script文件夹里面有很多脚本文件,具体的还要自己去看)。比较囧的是这里的命令对于空格也是敏感的,所以我把pgsimple_schema_0.6.sql文件复制到了F盘根目录,命令:psql -d osmosis -U osmosisuser -W -f F:\pgsimple_schema_0.6.sql。有乱码请忽视。

到PostgreSQL去看一下,可以发现多出了很多表,这样子数据库就配置完成啦,下一步就是导入数据了。


4、导入数据

导入数据很简单,执行命令:D:\>osmosis --read-xml file=E:\研究方向\OpenStreetMap相关\data\guangzhou\guangzhou.osm --write-pgsimp database="osmosis" user="osmosisuser" password="openstreetmap" host="localhost"。但是我最终发现是用这条命令的过程却是比较痛苦,一开始我是参照《OpenStreetMap》书上的这条命令


结果一直出现数据库模式版本不对应的问题:The database schema version of 5 does not match the expected version of 6.


之后在google上查找解决的办法,看的都是鸡肠文,看得都快吐了。一开始以为是因为osmosis跟PostgreSQL版本不对应,又把环境重新搭了一遍,还是一样,后来才在http://wiki.openstreetmap.org/wiki/Osmosis/PostGIS_Setup找到下面一句话,吐血呀!!!


把命令改成--write-pgsimp试一下,尼玛,终于Done了!!


回到PostgreSQL看一下,果然是有数据了!!下一步就要开始学习PostgreSQL数据库的东西咯,对数据进行加工才行。


5、最后再讲一下如何比较干净的卸载PostgreSQL,因为直接用360卸载或者系统的程序管理卸载都是发现运行不了卸载程序。

——先用360粉碎文件,之后到360软件管理把残余文件删了;

——安装一个RegClean软件,把系统注册表清理干净就差不多了。

相关文章推荐

Geoserver发布PostGIS地图数据:问题记录

PostgreSQL数据库导入shp数据 1、shptosql-gui工具启动后,要在options中设置GBK编码,这样才可以将属性表中的中文文本导入到数据库。 Geoserver发布P...

Windows 7下安装Osmosis以及简单的使用例子

最近在研究地图匹配算法需要用到道路层信息,悲剧的是老板不肯买数据~~~还好前段时间发现了居然有开源数据openstreetmap这种好东西,虽然国内数据比较少,连大城市很多都是空白一片,不过也好过没有...

postgres与osm初步使用

layout: post title: postgres与osm初步使用 date: 2016-9-20 categories: blog tags: [地图开发]description:地图...

下载OSM地图数据并导入至postgreSQL数据库中(Ubuntu16.04LTS)

1.下载OSM地图数据。 使用下列指令可以下载整个地球的数据。wget -c http://planet.openstreetmap.org/pbf/planet-latest.osm.pbf如果你...

关于OpenStreetMap数据

把OSM的数据总结一下以后找的方便 http://en.wikipedia.org/wiki/OpenStreetMap wiki上的Data format,只有Nodes,Ways,Relatio...

PostgreSql数据库安装详解

PostgreSql是GIS开发常用的数据库,虽说不大,但是安装过程也挺费劲的,下面记录一下安装过程。        首先下载PostgreSql数据库安装包,我下载的是9.5.2版本的。    ...

搭建开源地图服务 - 利用OSMGIS和iD

研究开源地图组建,服务搭建,初步方案为: 服务器操作系统:CentOS7 GIS数据库支持:PostgreSQL9.x + PostGIS 地图数据:OSM 地图瓦片渲染:Mapnik + Car...
  • xuaa
  • xuaa
  • 2016年08月20日 17:23
  • 1836

PostGIS安装与导入数据

安装 在官方网站http://www.postgresql.org下载postsql.exe,解压后运行postgresql.如果没有特殊说明,使用默认值即可,但是postgresql安装的位置所...
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:PostgreSQL+PostGIS安装以及用Osmosis导入openstreetmap地图数据
举报原因:
原因补充:

(最多只允许输入30个字)