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软件,把系统注册表清理干净就差不多了。

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

1.下载OSM地图数据。 使用下列指令可以下载整个地球的数据。wget -c http://planet.openstreetmap.org/pbf/planet-latest.osm.pbf如果你...
  • sinat_23246437
  • sinat_23246437
  • 2017年01月11日 11:27
  • 1088

pbf文件转换为osm

将pbf转化为osm文件,只是单纯转换的话,使用osmconvert更好。osmosis操作起来比较复杂,不推荐。osm展示工具,JOSM读取大文件有问题(存疑,可能只是我自己笔记本的问题,不过16G...
  • dream_allday
  • dream_allday
  • 2017年05月12日 15:19
  • 878

导入OSM数据至PostgreSQL数据库

OSM是一款由网络大众共同打造的免费开源、可编辑的地图服务。 导入OSM数据至PostgreSQL数据库...
  • vili_sky
  • vili_sky
  • 2017年12月11日 11:54
  • 275

mapserver+postgis(postgresql) +openlayers发布地图成功

1. 在windows xp上成功 先来个结果图 渲染很慢,本机都很慢,必须做缓存,下一步用tilecache把切片加进去 2. tilecache.cfg的配置添加如下: [...
  • xuhaiyan8825
  • xuhaiyan8825
  • 2011年11月04日 01:07
  • 6138

地图的开发研究--基于openlayers+geoserver+tomcat的离线地图--postgis空间数据库

此节主要介绍以下内容:            1、安装配置postgresql和postgis,升级postgresql为空间数据库,导入.shp格式的地图,转化为空间数据。 2、深入研究ge...
  • wslidandan
  • wslidandan
  • 2014年01月03日 12:24
  • 1738

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

本文中所有的操作都是在win7平台下进行的。 1、安装PostgreSQL 安装包下载地址:http://www.enterprisedb.com/products-services-training...
  • bobantangzlt
  • bobantangzlt
  • 2013年12月03日 15:28
  • 5626

离线地图_openstreetmap_postgresql_瓦片

  • 2015年04月14日 21:47
  • 44KB
  • 下载

获取国内任意一个城市的OpenStreetMap数据的一种方法

获取OpenStreeiMap数据有很多种方式,这里就不详细说了。但是比较无奈的是,国内很多城市都没有单独的数据包可以下载,连广州都没有!!!小哥刚好就是需要广州的数据,研究了一段时间终于找到了一种方...
  • bobantangzlt
  • bobantangzlt
  • 2014年01月10日 22:05
  • 10954

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

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

postgres+socket.io+nodejs实时地图应用实践

参考的公瑾大神的好东西,有空学习下: https://my.oschina.net/freegis/blog/761713 nodejs一直以异步io著称,其语言特性尤其擅长于在realtim...
  • jsboy123
  • jsboy123
  • 2016年12月01日 14:23
  • 1131
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:PostgreSQL+PostGIS安装以及用Osmosis导入openstreetmap地图数据
举报原因:
原因补充:

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