以下资料形成参考:http://blog.csdn.net/goldenhawking/article/details/7952303
GIS相关的开源软件和Ubuntu结合的更好,很多依赖都可以直接从源安装,在CentOS7上折腾确实是艰难的决定。
更进一步,OSGEO这个组织对Lubuntu16.04做了进一步的改造,直接推出安装几乎所有GIS相关软件的ISO镜像,真是我这种初学者的好福利啊。详情请看'http://www.osgeo.org/'
1.系统部署
绝大部分软件都已经是安装好的状态,少部分需要手动安装。
1.1 安装系统依赖
sudo apt-get update
sudo apt-get dist-upgrade
sudo apt-get install libmapnik-dev libmapnik3.0 apache2-dev openssh-server lrzsz p7zip-full ttf-unifont
1.2 提升www-data权限
sudo vim /etc/passwd
改为/bin/bash
2.数据库配置
参考 Centos7部署PostGIS 部分
3.配置mapnik-style
3.1 下载mapnik-style
sudo mkdir /var/lib/mod_tile
cd /var/lib/mod_tile
sudo chown www-data:www-data -R /var/lib/mod_tile
sudo su www-data
svn co http://svn.openstreetmap.org/applications/rendering/mapnik mapnik-style
注意:
vim mapnik-style/inc/fontset-settings.xml.inc.template
替换
unifont Medium 为 Unifont Medium
3.2下载世界,海岸线地图数据
以下五个文件从mapnik-style中get-coastlines.sh文件获取下载地址,可能有变化
http://tile.openstreetmap.org/world_boundaries-spherical.tgz
http://tile.openstreetmap.org/processed_p.tar.bz2
http://tile.openstreetmap.org/shoreline_300.tar.bz2
http://www.naturalearthdata.com/http//www.naturalearthdata.com/download/10m/cultural/ne_10m_populated_places.zip
http://www.naturalearthdata.com/http//www.naturalearthdata.com/download/110m/cultural/ne_110m_admin_0_boundary_lines_land.zip
解压world_boundaries下载步骤中的五个文件,取出所有的文件,并放到world_boundaries中
sudo mv world_boundaries /usr/local/share/
3.3 生成OSM.XML
cd /mapnik-style
./generate_xml.py --world_boundaries=/usr/local/share/world_boundaries --host=127.0.0.1 --port=5432 --user=osmgis --password=1 --dbname=osmgis
3.4测试渲染
./generate_image.py
保存后,直接执行,如果没错,就出现了 image.png
4.部署mod_tile
git clone https://github.com/openstreetmap/mod_tile
4.1 编译与安装
cd mod_tile
./autogen.sh
./configure
make
sudo make install
sudo make install-mod_tile
sudo ldconfig
4.2导入mod_tile
sudo vim /etc/apache2/mods-available/mod_tile.load
里面添加一行:
LoadModule tile_module /usr/lib/apache2/modules/mod_tile.so
生效
cd /etc/apache2/mods-enabled
sudo ln -s /etc/apache2/mods-available/mod_tile.load
5.配置瓦片渲染后台服务renderd
5.1创建文件夹
sudo mkdir /var/run/renderd
sudo chown www-data /var/run/renderd
5.2配置renderd
sudo vim /usr/local/etc/renderd.conf
做一下配置:
[renderd]
;把socketname设置到刚才创建的文件夹里
socketname=/var/run/renderd/renderd.sock
num_threads=4
tile_dir=/var/lib/mod_tile
stats_file=/var/run/renderd/renderd.stats
[mapnik]
plugins_dir=/usr/lib/mapnik/3.0/input
font_dir=/usr/share/fonts/truetype
font_dir_recurse=1
[default]
URI=/osm_tiles/
XML=/var/lib/mod_tile/mapnik-style/osm.xml
HOST=localhost
;HTCPHOST=proxy.openstreetmap.org
5.3 设置用户访问网页的入口点
sudo vim /etc/apache2/sites-available/000-default.conf
加入
LoadTileConfigFile /usr/local/etc/renderd.conf
ModTileRenderdSocketName /var/run/renderd/renderd.sock
ModTileRequestTimeout 0
ModTileMissingRequestTimeout 30
5.4测试
cd /var/lib/mod_tile
sudo su www-data
renderd -f -c /usr/local/etc/renderd.conf
网页打开:
http://192.168.15.137/osm_tiles/0/0/0.png
修改时间戳:
sudo touch /var/lib/mod_tile/planet-import-complete
sudo chown www-data /var/lib/mod_tile/planet-import-complete
6.OpenLayer
wget http://www.openstreetmap.org/openlayers/OpenStreetMap.js
6.1部署
sudo mv OpenStreetMap.js /var/www/html/openlayers
sudo chmod +r -R /var/www/html/openlayers
6.2html
sudo vim /var/www/html/map.html
写入
OSM Local Tiles
6.3访问测试
http://192.168.15.137/map.html