一、前言

       在Geoserver发布地图中,数据获取与处理、图层样式调节是最繁琐最复杂的工作,最近一直在寻找Geoserver能不能直接发布OSM官网地图使用OSM官方样式,最终实现OSM官方地图的离线发布。每次进Geoserver官网左侧有官方发布的OSM地图,通过F12查看网络请求链接为Geoserver发布的地图服务。

geoserver centos设置为系统服务自启动_OSM

       在官网文档搜索,确实发现了Geoserver发布OSM地图的项目说明,在Geosolution也提到了发布OSM地图相关说明,因此在Github搜索发现了该项目。下面将讲述如何发布OSM官方地图。

二、准备工作

1.下载Github项目:GitHub - geosolutions-it/osm-styles: OSM Bright styles for GeoServer (at last!)

2.安装Geoserver,需要安装的插件(插件版本要与Geoserver版本一致):

geoserver-2.19.2-css-plugin.zipgeoserver-2.19.2-feature-pregeneralized-plugin.zip

3. 准备一台Linux系统服务器,用到的Imposm工具只能Linux系统上运行,推荐VMware虚拟机安装Linux系统

4.下载Imposm工具:imposm-0.11.1-linux-x86-64.tar.gz

5.下载GeoPackage-1.9 GB数据: https://www.dropbox.com/s/bqzxzkpmpybeytr/osm-lowres.gpkg?dl=1

4.下载.osm.pbf格式数据:Geofabrik Download Server

三、安装步骤

1.安装Geoserver插件

        下载的插件压缩包解压,将其中jar包放到.../geoserver/WEB-INF/lib目录下,Tomcat安装的位置在 tomcat安装目录/webapps/geoserver/WEB-INF/lib,geoserver-版本号-bin单独安装的位置在geoserver-2.19.2-bin/webapps/geoserver/WEB-INF/lib

geoserver centos设置为系统服务自启动_OSM_02

 2.Linux虚拟机安装Imposm

        Linux安装教程网上很多,可根据Vmware上安装Linux(centos7)图文教程安装,使用连接SSH工具连接。这里主要讲述如何安装Imposm。

        将下载的imposm-0.11.1-linux-x86-64.tar.gz安装包上传到Linux系统中,使用解压命令解压

tar -zxvf imposm-0.11.1-linux-x86-64.tar.gz

geoserver centos设置为系统服务自启动_OSM离线地图_03

查看版本号:

[root@localhost ~]# cd imposm-0.11.1-linux-x86-64/
[root@localhost imposm-0.11.1-linux-x86-64]# ./imposm version
0.11.1
[root@localhost imposm-0.11.1-linux-x86-64]#

3.Postgres创建名为osm数据库

geoserver centos设置为系统服务自启动_Geoserver_04

添加Postgis扩展:CREATE EXTENSION postgis;

4.Imposm导入OSM数据

        由于全国数据量太大,以下载台湾OSM数据为例:taiwan-latest.osm.pbf,将下载数据放入Linux中imposm-0.11.1-linux-x86-64根目录下。

geoserver centos设置为系统服务自启动_OSM官方地图_05

          将GitHub下载的 osm-styles 项目中的osm-styles-master/imposm/dump-pg.sh和osm-styles-master/imposm/mapping.yml导入Linux中imposm-0.11.1-linux-x86-64根目录下。

geoserver centos设置为系统服务自启动_Geoserver_06

用户名:密码@windows系统本机的ip地址:端口/数据库名,先后执行下面命令导入数据:

./imposm import -mapping mapping.yml -read taiwan-latest.osm.pbf

./imposm import -mapping mapping.yml -write -connection postgis://postgres:123456@192.168.123.233:5432/osm -overwritecache

        执行第一个命令读取osm文件:

geoserver centos设置为系统服务自启动_Openstreetmap_07

         执行第二个命令,将osm数据导入pg数据库,等待导入完成:

geoserver centos设置为系统服务自启动_Geoserver_08

geoserver centos设置为系统服务自启动_OSM_09

 5.查看导入数据

        QGIS连接数据库查看:

geoserver centos设置为系统服务自启动_OSM_10

四、发布OSM地图

 1. 将GitHub下载的 osm-styles 项目解压,除imposm全部替换到.../webapps/geoserver/data目录下,里面包含了图层、图层组、各个图层样式等。

geoserver centos设置为系统服务自启动_OSM离线地图_11

 2.将下载的GeoPackage-1.9 GB数据,放入../webapps/geoserver/data/data目录下

geoserver centos设置为系统服务自启动_OSM离线地图_12

插件必须提前安装,修改osm数据存储的用户名、密码、数据库名等

geoserver centos设置为系统服务自启动_Geoserver_13

 ${}都是需要填写的参数

geoserver centos设置为系统服务自启动_OSM_14

import,不是public

geoserver centos设置为系统服务自启动_OSM_15

 五、预览OSM地图

1.点击“Layer Preview”查看预览图层组,包含了不同主题的OSM地图 

geoserver centos设置为系统服务自启动_OSM_16

 2.osm默认主题地图

geoserver centos设置为系统服务自启动_OSM_17

geoserver centos设置为系统服务自启动_Geoserver_18

geoserver centos设置为系统服务自启动_OSM离线地图_19

可以看出和OSM官网地图样式完全一致!

3.simple_dark暗黑主题

geoserver centos设置为系统服务自启动_Geoserver_20

geoserver centos设置为系统服务自启动_Geoserver_21

 4.simple_light主题

geoserver centos设置为系统服务自启动_Geoserver_22