瓦片地图服务器搭建步骤
目录
一、系统环境以及软件要求
gcc 升级到5.4以上,推荐升级至最新版
mapnik 安装
安装nodejs
安装node-mapnik
数据库: PostgreSQL
地图数据下载以及使用
启动服务器
二、gcc要求和mapnik安装
三、nodejs安装
四、安装node-mapnik
五、数据库安装 PostgreSQL以及启动
六、地图数据下载以及导入
七、启动服务器
一、系统环境以及软件要求
在CentOS 7.2系统环境中搭建瓦片地图服务。
gcc 升级到5.4以上,推荐升级至最新版
mapnik 安装
安装nodejs
安装node-mapnik
数据库: PostgreSQL
地图数据下载以及使用
启动服务器
二、gcc要求和mapnik安装
1、gcc推荐安装8.1版本,并检查gcc版本
$ gcc --version
gcc (GCC) 8.1.0
2.安装boost库
3.安装mapnik
1、 Github上的源码地址 https://github.com/mapnik/mapnik
2、 安装mapnik所需依赖库,感谢think8848
yum install freetype-devel libtool-ltdl-devel libpng-devel libtiff-devel libjpeg-devel python-devel harfbuzz-devel postgresql-devel proj-devel proj-epsg sqlite-devel libwebp-devel gdal-devel cairo-devel -y
3、安装步骤根据 https://github.com/mapnik/mapnik/blob/master/INSTALL.md
git clone https://github.com/mapnik/mapnik.git cd mapnik git submodule update --init./configure make JOBS=4 make make install
查看mapnik版本
$ mapnik-config -v
3.1.0
三、nodejs安装
安装命令
yum install nodejs -y
验证nodejs版本
$ node -v
v8.11.2$ npm -v
6.8.0
四、安装node-mapnik
cd /usr/local/srcmkdir node-mapnik && cd node-mapnikvim package.json
在打开创建package.json文件后,输入以下内容
{
"name": "nmtest",
"description": "node-mapnik test ",
"version": "0.0.1",
"private": true,
"dependencies": {
"mapnik": "3.*"
}
}
开始安装node-mapnik,通常而言,使用 npm install 即可安装好所有依赖包
在国内安装 npm 指定安装源,添加参数 --registry=https://registry.npm.taobao.org
npm install --registry=https://registry.npm.taobao.org
这个步骤结束后,可以测试node-mapnik是否安装成功。安装成功后,将node-mapnik添加到公共模块中
先将node-mapnik安装到公共模块的目录,默认情况下安装到 /usr/lib/node_modules
sudo npm install -g mapnik
添加 NODE_PATH 环境变量
export NODE_PATH=/usr/lib/node_modules:$PATH
再更新环境变量
source /etc/profile
五、数据库安装 PostgreSQL以及启动
本次安装使用的PostgreSQL的版本是11,PostGis的版本是2.5_11。
安装指令如下
sudo yum install postgis25_11* # 安装PostGis
sudo yum install pgrouting_11* # pgrouting_11
sudo yum install ogr_fdw11* # ogrfdw的全称是OGR Foreign Data Wrapper -详细内容github
sudo yum install psogresql11 # postgresql 11版本
安装完成之后切换用户为 postgres 以便对数据库配置和启动。
启动数据库之前需要对数据库初始化,配置数据存放目录(放在指定目录)
sudo mkdir /home/postgresData
sudo chown postgres:postgres /home/postgresData
sudo chmod 750 /home/postgresData
设置环境变量
注意 PGDATA 参数为 数据存放目录,由于数据量较大,推荐放在数据盘符内,不要放在系统盘里。
在 /etc/profile 文件尾部增加如下内容
export PATH=/usr/pgsql-11/bin/:$PATH
export LD_LIBRARY_PATH=/usr/pgsql-11/lib:$LD_LIBRARY_PATHexport PGDATA=/home/postgresData
切换用户,先切换root用户,再切换postgres用户。
sudo -s
su postgres
source /etc/profile
用命令initdb生成数据库簇。
initdb
若提示找不到指令,请确定安装目录是否正确、并更新环境: source /etc/profile 。
等待initdb指令完成之后,先修改数据库的配置,再启动数据库服务。
主要修改两个文件 pg_hba.conf 和 postgresql.conf
cd $PGDATA
vim pg_hba.conf
在此文件尾部增加一下内容 md5为访问时需要密码,local 的加密方式推荐使用 trust 或者 peer。不推荐用md5
host all all 0.0.0.0/0 md5
vim postgresql.conf
listen_addresses = '*' #监听地址
port = 10072 #数据库监听端口 默认为5432
max_connections = 300 #默认值为100,在从文件载入数据库时,大型地图数据可能不够用导致在载入数据时过程中失败。
至此,便可以启动数据库。这里并没有设置数据库的日志
pg_ctl start -D $PGDATA #启动数据库服务
pg_ctl status -D $PGDATA #查看启动状态
pg_ctl restart -D $PGDATA # 重启
pg_ctl stop # 关闭
数据库的客户端登陆
$ psql #若端口不是5432 需要指定端口
$ psql -p 10072
$ psql --help # psql使用帮助
进入数据库的一些基本设置
1.修改数据库用户的密码为postgres。
ALTER USER postgres WITH PASSWORD 'postgres';
2.新增用户
create user proot password 'password';
3.创建数据库mapdb,并将数据库的所有权限赋予用户proot。
CREATE DATABASE mapdb;
GRANT ALL ON DATABASE mapdb TO proot;
4.开启防火墙的端口
sudo firewall-cmd --zone=public --add-port=5432/tcp --permanentsudo firewall-cmd --reload
5. 非postgres 用户在终端访问数据库的指令如下,需要指定用户,host,端口,数据库的库名,
psql -U proot-h localhost -p 10072 -d mapdb
6.安装PostGis扩展
CREATE EXTENSION postgis; CREATE EXTENSION postgis_topology; CREATE EXTENSION ogr_fdw;
PostGis的扩展列表
-- Enable PostGIS (includes raster)
CREATE EXTENSION postgis;
-- Enable Topology
CREATE EXTENSION postgis_topology;
-- Enable PostGIS Advanced 3D
-- and other geoprocessing algorithms
-- sfcgal not available with all distributions
CREATE EXTENSION postgis_sfcgal;
-- fuzzy matching needed for Tiger
CREATE EXTENSION fuzzystrmatch;
-- rule based standardizer
CREATE EXTENSION address_standardizer;
-- example rule data set
CREATE EXTENSION address_standardizer_data_us;
-- Enable US Tiger Geocoder
CREATE EXTENSION postgis_tiger_geocoder;
验证安装结果
# SELECT postgis_full_version();
postgis_full_version----------------------------------------------------------------------------------------------------------------------
---------------------------------------------------------------------------------------------------
POSTGIS="2.5.1 r17027" [EXTENSION] PGSQL="110" GEOS="3.7.0-CAPI-1.11.0 673b9939" SFCGAL="1.2.2" PROJ="Rel. 4.9.3, 15
August 2016" GDAL="GDAL 1.11.4, released 2016/01/25" LIBXML="2.9.1" LIBJSON="0.11" TOPOLOGY RASTER
(1 row)
到这里说明PostGis安装成功。
7.postgresql数据库的管理工具推荐使用pgAdmin4,下载的官方地址https://www.pgadmin.org/download/
下载比较慢,用 Navicat Premium 也可以作为GUI管理工具。
在pgAdmin4管理工具中可以查看已安装扩展。
六、地图数据下载以及导入
1、地图数据来源: https://download.geofabrik.de/
选择 osm.pbf 文件用osm2pgsql工具导入数据库,
选择[.shp.zip]文件,选择shp2pgsql工具导入数据库。
2、数据导入工具,osm2pgsql和shp2pgsql。
这里介绍 osm2pgsql安装和使用,因为osm是单文件,导入过程比较便捷。shp2pgsql无需额外安装,在postgreSQL数据库安装目录的bin文件下( /usr/pgsql-11/bin )。
安装osm2pgsql可以使用源码安装或者yum安装,这里用yum方式安装
sudo yum install osm2pgsql -y
osm2pgsql 操作帮助文档指令如下,或百度查找。
osm2pgsql -h
3.导入数据操作,将下载好的文件导入数据库,导入过程依据数据量,上次下载的国内数据454MB,大约花费了一个多小时,占用的数据库有占用临时文件大小有12Gb之多。
osm2pgsql -s -U proot -H localhost -P 10072 -W -d mapdb /tmp/china-latest.osm.pbf
导入数据库完成后,就到了最后的一个阶段。
七、启动服务器
参照 使用node-mapnik生成openstreetmap-carto风格的瓦片
瓦片地图服务器搭建步骤相关推荐
- osm地图服务器搭建(一)
osm地图服务器搭建(ubuntu16.04) 1.准备服务器更新数据源 更新数据源安装postgres11 更新镜像源 apt update 更新以安装的包 apt upgrade 安装postgr ...
- osm地图服务器搭建(二)
配置Apache 安装apache sudo apt install apache2 创建一个模块来加载文件 sudo nano /etc/apache2/mods-available/mod_til ...
- unity超级马里奥2d游戏开发-03瓦片地图场景搭建
大家好,我是小兵,今天给大家带来Untiy开发超级马里奥游戏的第3课,瓦片地图搭建,如果你想查看完整的教程,请访问我的个人博客geekape.net. 前两节课都没涉及具体的游戏制作,算是一个开胃菜, ...
- ACS服务器搭建步骤
ACS 服务器搭建方法 简介 由于将要用到的openacs和jboss都是用java语言所编写,所以配置前我们需要一些必须的环境配置 安装环境 linux系统,(version:centos6.8) ...
- ftp服务器搭建步骤详解
本文中ftp服务器搭建是依靠fileZillar这个软件.其下载地址如下所示: https://www.filezilla.cn/download/server 搭建步骤如下: 安装 安装过程中,需要 ...
- cdn服务器搭建步骤
CDN服务器是现代网络中不可或缺的一部分,其可以大大提高网站的访问速度和用户体验.许多公司和组织都需要搭建自己的CDN服务器,以便更好地为其用户提供便捷的服务.本文就讨论如何搭建一台有效的CDN服务器 ...
- Windows Server 2012 R2 Web服务器搭建步骤
一.安装Web服务 1.单击开始,打开服务器管理器 2.单击管理->添加角色和功能 3.打开添加角色和功能向导,单击服务器选择选择服务器后单击下一步 4.勾选"Web服务器(IIS)& ...
- Web服务器搭建步骤(Win10)
1.在"开始"菜单处打开"控制面板". 2.点击"程序". 3.点击"启动或关闭Windows功能". 4.对" ...
- ipv6_dhcp服务器搭建步骤
1安装isc-dhcp-server套件 sudo apt update sudo apt-get install isc-dhcp-server 2.设置dhcp 创建/etc/dhcp/dhcpd ...
最新文章
- 队列的基本操作_如果让你手写个栈和队列,你还会写吗?||CSDN博客精选
- Boost:异步操作,需要boost :: asio :: async_compose函数的测试程序
- kotlin学习笔记——接口与委托
- 野火stm32呼吸灯程序_说一说STM32启动过程
- 解决: Windows下启动Redis失败
- 基于LAMP的cacti安装和配置问题处理(一)
- 快速排序——主要思想是分治
- HDOJ-1999 不可摸数
- 耳挂式蓝牙耳机原理_专为运动而生的DOSS T63无线蓝牙耳挂式运动耳机
- Java基础,双色球系统实现,完整版本,没有BUG,完整代码版
- ADNI介绍与数据下载
- 第5章-1 输出星期名缩写 (70 分)
- 海报生成的Java方法
- 一个简单的面试题 equals和==的区别
- 计算机向u盘拷贝速度慢,U盘复制速度慢的解决措施
- [Erlang] XML处理方案
- 数据结构 单词查找 二分法-索引表-Hash表
- 关于idea的debug调试
- OPA进阶-简洁的推导式comprehensions
- xp系统运行php,window_Xp系统安装或运行软件时提示“EXE不是有效Win32应用程序”的故障原因及解决方法,部分Xp系统用户在双击安装某 - phpStudy...
热门文章
- 寄存器分类及基本作用
- linux创建隐藏用户,linux 用户及权限补充
- 招人!阿里巴巴达摩院基础视觉智能团队【2023校园招聘】
- 硬见小百科:EMC5个重要属性
- SpringBoot技术实践-SpELEL表达式
- 那些学校计算机专硕学费低,这5个专业学费很低,适合“家庭条件不好”的学生,但就业率很高...
- 16练习题HZF爱斗牛
- SecureCRT 8.0发布
- linux 编译x264,linux 编译ffmpeg 支持x264, x265
- Apache APISIX Dashboard(CVE-2022-24112)命令执行漏洞方式利用