osm地图服务器搭建(ubuntu16.04)
1.准备服务器更新数据源
更新数据源安装postgres11
更新镜像源
apt update
更新以安装的包
apt upgrade
安装postgres11
sudo sh -c 'echo "deb http://apt.postgresql.org/pub/repos/apt $(lsb_release -cs)-pgdg main" > /etc/apt/sources.list.d/pgdg.list'
wget --quiet -O - https://www.postgresql.org/media/keys/ACCC4CF8.asc | sudo apt-key add -
sudo apt-get update
sudo apt-get -y install postgresql-11
安装完数据库需要调整一下数据库配置
vi postgres.conf
修改 wal_level = hot_standby
修改 size = 5G
记得重启postgres
su postgres
psql
进入数据库
添加用户 osm
create user osm ;
创建库gis
create database gis ;
给osm权限
GRANT ALL ON DATABASE gis TO osm;
修改gis所属者为osm
alter database gis owner to osm;
进入gis库 创建扩展
/c gis;
CREATE EXTENSION hstore;
CREATE EXTENSION postgis;
退出 \q
创建OSM用户
useradd -m osm
2.地图资源下载
切换到osm用户
下载地图数据
下载中国地图文件
wget -c http://download.geofabrik.de/asia/china-latest.osm.pbf
下载完后退出osm用户
安装osm2pgsql
sudo apt install osm2pgsql
进入osm用户
osm2pgsql -d gis -C 8600 /home/osm/merged.osm.pbf
-C参数是缓存大小,如果提示不足可以调小一点
安装Mapnik
sudo apt-get install autoconf apache2-dev libtool libxml2-dev libbz2-dev libgeos-dev libgeos++-dev libproj-dev gdal-bin libgdal1-dev libmapnik-dev mapnik-utils python-mapnik
检查mapnik是否安装成功。
mapnik-config -v
安装mod_tile
安装依赖
sudo apt install git autoconf libtool libmapnik-dev apache2-dev
从git上拉取
git clone https://github.com/openstreetmap/mod_tile.git
cd mod_tile/
编译并安装它:
./autogen.sh
./configure
make
sudo make install
sudo make install-mod_tile
sudo ldconfig
添加中文支持
sudo apt-get -y install fonts-wqy-zenhei
sudo apt-get install unifont
sudo apt-get install ttf-unifont
生成mapnik样式表
下载最新的 CartoCSS map stylesheets到osm用户的家目录
apt-get install node-carto 安装carto
下载stylesheets
切换到osm用户
git clone https://github.com/yohanboniface/OpenRiverboatMap
将OpenRiverboatMap中的的openriverboatmap放入/home/osm/目录下
构建mapnik xml样式文件
进入openriverboatmap使用命令
carto openriverboatmap.mml > style.xml
生成样式文件
退出osm用户
配置renderd
编辑renderd配置文件
sudo vim /usr/local/etc/renderd.conf
在[default]区域,改变XML、HOST配置
XML=/home/osm/openriverboatmap/style.xml
HOST=localhost
在[mapnik]区域,改变mapnik的引用路径
plugins_dir=/usr/lib/mapnik/3.0/input/