[原]CentOS7部署osm2pgsql

转载请注明原作者(think8848)和出处(http://think8848.cnblogs.com)

部署Postgresql部署PostGis请参考前两篇文章

本文主要参考GitHub上osm2pgsql的说明文档

1. 先安装Git

sudo yum install git -y

2. 下载osm2pgsql源码

cd ~

git clone git://github.com/openstreetmap/osm2pgsql.git

在GitHub上下载文档实在是慢的难以忍受,建议还是使用 wget -O osm2pgsql-master.zip https://codeload.github.com/openstreetmap/osm2pgsql/zip/master 下载,或者干脆用迅雷下载好,再想办法放到CentOS中。

如果下载的文件是zip格式,那么就需要使用unzip将文件解压,先使用 sudo yum install unzip -y 安装unzip,然后再使用 unzip osm2pgsql-master.zip 解压。

3. 安装依赖包

请确保epel-release已经安装了

sudo yum install cmake gcc-c++ boost-devel expat-devel zlib-devel bzip2-devel postgresql-devel geos-devel proj-devel proj-epsg lua-devel -y

4. 进入osm2pgsql源码目录,进行配置编译安装

cd osm2pgsql-master

mkdir build && cd build

#如果是照着前两篇文章一直走到这里,有可能在cmake时报POSTGRESQL***目录找不到之类的错误,
#解决办法是重启电脑,然后清除/tmp/osm2pgsql-master/build目录下所有文件和文件夹,重新使用cmake ..命令
cmake .. make sudo make install

-------------------------2016年11月10更新-------------------------

如果在cmake .. 配置过程中出现Could not find Postgresql (missing PostgreSQL_LIBRARY_DIRS...之类的错误,请尝试使用下列命令执行后,再次cmake ..

sudo yum install postgresql95-devel

-------------------------2016年11月10更新-------------------------

[原]CentOS7部署osm2pgsql

验证安装 osm2pgsql -version ,版本号显示出来了,但是下面莫名奇妙的出了一个错误提示,貌似没啥影响,处女座的朋友可以不验证,哈哈...

[原]CentOS7部署osm2pgsql

5. 导入osm数据(不包含openstreetmap-carto样式)

openstreetmap中国数据下载地址:http://download.geofabrik.de/asia.html

为了postgres有访问权限,建议将china-latest.osm.pbf下载到/tmp目录下

如果你是看了《CentOS7部署PostGis》之后再看这里,那么就安装下hstore扩展,如果你没有阅读这篇文章,请在此先参考下如何建一个PostGis数据库,安装hstore扩展(有关更多hstore信息,请参见这里这里):

su postgres

psql -d chinaosmgisdb;

CREATE EXTENSION hstore;

\q

正式导入数据

osm2pgsql -s -U think8848 -H 127.0.0.1 -P 5432 -W -d chinaosmgisdb /tmp/china-latest.osm.pbf

6. 导入openstreetmap-carto样式

下载openstreetmap-carto,然后解压,最后复制到/home/postgresql_data中

cd /tmp

wget -O openstreetmap-carto-master.zip https://codeload.github.com/gravitystorm/openstreetmap-carto/zip/master

unzip openstreetmap-carto-master.zip

mv openstreetmap-carto-master /home/postgresql_data

做好准备工作后就可以导入了

su postgres

osm2pgsql -s -U think8848 -H 127.0.0.1 -P 5432 -W -d chinaosmgisdb /tmp/china-latest.osm.pbf --style /home/postgresql_data/openstreetmap-carto-master/openstreetmap-carto.style

经过一会儿的等待,就导入OK了。

[原]CentOS7部署osm2pgsql

上一篇:CentOS7安装docker以及错误解决


下一篇:centos7 无法启动网络(service network restart)错误解决办法(转)