win7 64bit,搭了两天才成功,分享一下。
1.获取国内任意一个城市的OpenStreetMap数据的一种方法
参见获取国内任意一个城市的OpenStreetMap数据的一种方法
提示:下载的时候选择这种格式的才可以:china-latest.osm.bz2
2.安装配置Postgresql+PostGIS参见下面链接。
OSM数据插入PostGIS数据库为GeoServer提供数据
在安装PostGIS时遇到的问题:我的Postgresql的版本是9.4,这里面检测出PostGIS的两个版本,一个是2.1.5,一个是2.1.7。
我最开始装的是2.1.7,但是发现根本没法建PostGIS类型的数据库,网上查了半天也没找到为什么,重新装也没解决,后来想到可能是版本问题就换的2.1.5,然后就可以了。
在做第五步:添加OSM数据到数据库osm2pgsql -U postgres -d osm -s -S ./default.style ./shanghai.osm的时候出现了两个问题,查了很久
(1)no password supplied
解决办法:
在C:\Users\asus\AppData\Roaming\postgresql路径下有一个pgpass.conf文件,每个用户在登陆postgres并且保存密码后都会在该用户目录下保存一个pgpass.conf 文件,里面有该用户的密码
按照如下格式进行设置:hostname:port:database:username:password
例如:localhost:5432:osm:postgres:123456
(2)也就是上面链接中提到的错误,create extension hstore;后osm2pgsql -U postgres -d osm -hstore -s -S ./default.style ./shanghai.osm“是错误的
解决办法:
命令应该是:osm2pgsql -U postgres -d osm -k -s -S ./default.style ./shanghai.osm
将上面的-hstore替换为-k,这样就OK了
3.把数据添加到GeoServer中并发布