目录

一、系统环境以及软件要求

gcc 升级到5.4以上,推荐升级至最新版

mapnik 安装

安装nodejs

安装node-mapnik

数据库: PostgreSQL

地图数据下载以及使用

启动服务器

二、gcc要求和mapnik安装

三、nodejs安装

四、安装node-mapnik

五、数据库安装 PostgreSQL以及启动

六、地图数据下载以及导入

七、启动服务器


一、系统环境以及软件要求

在CentOS 7.2系统环境中搭建瓦片地图服务。

  1. gcc 升级到5.4以上,推荐升级至最新版

  2. mapnik 安装

  3. 安装nodejs

  4. 安装node-mapnik

  5. 数据库: PostgreSQL

  6. 地图数据下载以及使用

  7. 启动服务器

二、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_PATH

export PGDATA=/home/postgresData

切换用户,先切换root用户,再切换postgres用户

sudo -s

su postgres

source /etc/profile

用命令initdb生成数据库簇。

initdb

若提示找不到指令,请确定安装目录是否正确、并更新环境: source /etc/profile  。

等待initdb指令完成之后,先修改数据库的配置,再启动数据库服务。

主要修改两个文件 pg_hba.confpostgresql.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风格的瓦片

瓦片地图服务器搭建步骤相关推荐

  1. osm地图服务器搭建(一)

    osm地图服务器搭建(ubuntu16.04) 1.准备服务器更新数据源 更新数据源安装postgres11 更新镜像源 apt update 更新以安装的包 apt upgrade 安装postgr ...

  2. osm地图服务器搭建(二)

    配置Apache 安装apache sudo apt install apache2 创建一个模块来加载文件 sudo nano /etc/apache2/mods-available/mod_til ...

  3. unity超级马里奥2d游戏开发-03瓦片地图场景搭建

    大家好,我是小兵,今天给大家带来Untiy开发超级马里奥游戏的第3课,瓦片地图搭建,如果你想查看完整的教程,请访问我的个人博客geekape.net. 前两节课都没涉及具体的游戏制作,算是一个开胃菜, ...

  4. ACS服务器搭建步骤

    ACS 服务器搭建方法 简介 由于将要用到的openacs和jboss都是用java语言所编写,所以配置前我们需要一些必须的环境配置 安装环境 linux系统,(version:centos6.8) ...

  5. ftp服务器搭建步骤详解

    本文中ftp服务器搭建是依靠fileZillar这个软件.其下载地址如下所示: https://www.filezilla.cn/download/server 搭建步骤如下: 安装 安装过程中,需要 ...

  6. cdn服务器搭建步骤

    CDN服务器是现代网络中不可或缺的一部分,其可以大大提高网站的访问速度和用户体验.许多公司和组织都需要搭建自己的CDN服务器,以便更好地为其用户提供便捷的服务.本文就讨论如何搭建一台有效的CDN服务器 ...

  7. Windows Server 2012 R2 Web服务器搭建步骤

    一.安装Web服务 1.单击开始,打开服务器管理器 2.单击管理->添加角色和功能 3.打开添加角色和功能向导,单击服务器选择选择服务器后单击下一步 4.勾选"Web服务器(IIS)& ...

  8. Web服务器搭建步骤(Win10)

    1.在"开始"菜单处打开"控制面板". 2.点击"程序". 3.点击"启动或关闭Windows功能". 4.对" ...

  9. ipv6_dhcp服务器搭建步骤

    1安装isc-dhcp-server套件 sudo apt update sudo apt-get install isc-dhcp-server 2.设置dhcp 创建/etc/dhcp/dhcpd ...

最新文章

  1. 队列的基本操作_如果让你手写个栈和队列,你还会写吗?||CSDN博客精选
  2. Boost:异步操作,需要boost :: asio :: async_compose函数的测试程序
  3. kotlin学习笔记——接口与委托
  4. 野火stm32呼吸灯程序_说一说STM32启动过程
  5. 解决: Windows下启动Redis失败
  6. 基于LAMP的cacti安装和配置问题处理(一)
  7. 快速排序——主要思想是分治
  8. HDOJ-1999 不可摸数
  9. 耳挂式蓝牙耳机原理_专为运动而生的DOSS T63无线蓝牙耳挂式运动耳机
  10. Java基础,双色球系统实现,完整版本,没有BUG,完整代码版
  11. ADNI介绍与数据下载
  12. 第5章-1 输出星期名缩写 (70 分)
  13. 海报生成的Java方法
  14. 一个简单的面试题 equals和==的区别
  15. 计算机向u盘拷贝速度慢,U盘复制速度慢的解决措施
  16. [Erlang] XML处理方案
  17. 数据结构 单词查找 二分法-索引表-Hash表
  18. 关于idea的debug调试
  19. OPA进阶-简洁的推导式comprehensions
  20. xp系统运行php,window_Xp系统安装或运行软件时提示“EXE不是有效Win32应用程序”的故障原因及解决方法,部分Xp系统用户在双击安装某 - phpStudy...

热门文章

  1. 寄存器分类及基本作用
  2. linux创建隐藏用户,linux 用户及权限补充
  3. 招人!阿里巴巴达摩院基础视觉智能团队【2023校园招聘】
  4. 硬见小百科:EMC5个重要属性
  5. SpringBoot技术实践-SpELEL表达式
  6. 那些学校计算机专硕学费低,这5个专业学费很低,适合“家庭条件不好”的学生,但就业率很高...
  7. 16练习题HZF爱斗牛
  8. SecureCRT 8.0发布
  9. linux 编译x264,linux 编译ffmpeg 支持x264, x265
  10. Apache APISIX Dashboard(CVE-2022-24112)命令执行漏洞方式利用