基于mapbox搭建可离线的矢量切片地图服务-2.PostGIS+GeoServer矢量切片

作者:ATtuing
出处:http://www.cnblogs.com/ATtuing

最近在做关于mapbox的项目,看到这篇文章感觉特别好,特此转载记录一下。
先不说废话直接上地址:(所有东西都在阿里云的共享云虚拟主机上,访问地图可以会有点慢,请多多包涵)。
01:中国地图:http://test.sharegis.cn/mapbox/html/3china.html
02:德国-德累斯顿市:http://test.sharegis.cn/mapbox/html/6germany.html

1.PostGIS简介

PostGIS是对象关系型数据库系统PostgreSQL的一个扩展,PostGIS提供如下空间信息服务功能:空间对象、空间索引、空间操作函数和空间操作符。同时,PostGIS遵循OpenGIS的规范。我们项目中主要使用它来保存原始矢量数据。

2.Geoserver简介

GeoServer 是 OpenGIS Web 服务器规范的 J2EE 实现,利用 GeoServer 可以方便的发布地图数据,允许用户对特征数据进行更新、删除、插入操作,通过 GeoServer 可以比较容易的在用户之间迅速共享空间地理信息。我们在GeoServer的基础上添加vector Tiles插件进行矢量切片。
基于mapbox搭建可离线的矢量切片地图服务-2.PostGIS+GeoServer矢量切片_第1张图片

3.数据准备

数据一:中国基础地理数据,格式为wgs84的shp数据:https://pan.baidu.com/s/16hN5znypnHR-Qw-BAejOoA
基于mapbox搭建可离线的矢量切片地图服务-2.PostGIS+GeoServer矢量切片_第2张图片

4.数据导入PostGIS中

本示例讲一下将中国基础shp文件批量导入PostGIS数据库。

1.打开安装目录下打开postGIS导入程序。
基于mapbox搭建可离线的矢量切片地图服务-2.PostGIS+GeoServer矢量切片_第3张图片
2.连接数据库,
基于mapbox搭建可离线的矢量切片地图服务-2.PostGIS+GeoServer矢量切片_第4张图片
3.加载shp数据,导入文件路径不可以含有中文,并且导入的时候注意SRID值的设定,SRID对应地理坐标系的代码,我们使用的数据是WGS84坐标系对应的SRID值是4326,这个一定要注意,出错的话可能导致数据偏移等问题。
基于mapbox搭建可离线的矢量切片地图服务-2.PostGIS+GeoServer矢量切片_第5张图片

5.Geoserver发布

1.打开Geoserver web站点,新建一个工作区如下,
基于mapbox搭建可离线的矢量切片地图服务-2.PostGIS+GeoServer矢量切片_第6张图片
2.新建数据源,将PostGIS数据接入。
基于mapbox搭建可离线的矢量切片地图服务-2.PostGIS+GeoServer矢量切片_第7张图片
3.输入数据库连接参数
基于mapbox搭建可离线的矢量切片地图服务-2.PostGIS+GeoServer矢量切片_第8张图片
4.点击发布图层。并输入参考坐标系以及边框,一般情况点蓝色链接便可自动生成。
基于mapbox搭建可离线的矢量切片地图服务-2.PostGIS+GeoServer矢量切片_第9张图片
基于mapbox搭建可离线的矢量切片地图服务-2.PostGIS+GeoServer矢量切片_第10张图片
5.继续发布其他图层,
基于mapbox搭建可离线的矢量切片地图服务-2.PostGIS+GeoServer矢量切片_第11张图片
基于mapbox搭建可离线的矢量切片地图服务-2.PostGIS+GeoServer矢量切片_第12张图片
6.将各个图层合起来生成一个图层组。并设置切片缓存格式。
基于mapbox搭建可离线的矢量切片地图服务-2.PostGIS+GeoServer矢量切片_第13张图片
基于mapbox搭建可离线的矢量切片地图服务-2.PostGIS+GeoServer矢量切片_第14张图片
勾选application/x-protobuf;type=mapbox-vector矢量切片格式,切片为.dbf格式的文件,压缩率更好。适合网络传输。选择默认切片格式EPSG:900913,因为Mapbox只支持WGS84 Web 墨卡托投影投影,这里注意一下。
基于mapbox搭建可离线的矢量切片地图服务-2.PostGIS+GeoServer矢量切片_第15张图片
7.矢量切片的预览
基于mapbox搭建可离线的矢量切片地图服务-2.PostGIS+GeoServer矢量切片_第16张图片
基于mapbox搭建可离线的矢量切片地图服务-2.PostGIS+GeoServer矢量切片_第17张图片
8.为了加快地图访问速度,我们可以对矢量切片进行缓存。
基于mapbox搭建可离线的矢量切片地图服务-2.PostGIS+GeoServer矢量切片_第18张图片
可以选择切片等级以及切片的线程数。到此整个矢量切片的过程完成了。可在切片文件夹中查看成果文件。
基于mapbox搭建可离线的矢量切片地图服务-2.PostGIS+GeoServer矢量切片_第19张图片
基于mapbox搭建可离线的矢量切片地图服务-2.PostGIS+GeoServer矢量切片_第20张图片

6.遇到的疑惑

1.我没找到GeoServer矢量切片中对图层组中单个图层在某一级别下控制不对其进行切片的功能,因为很多图层在低等级下是不需要进行显示的,我们一刀切必定会带来数据的冗余。

2.我使用GeoServer2.13.0版本进行矢量切片缓存的时候,切片只能切出部分数据,我不知什么原因,后期可以通过循序请求切片的方式进行切片的缓存。

7.总结

这一篇主要讲了一下数据的存储,以及矢量切片的生成,下一篇我会讲一下我们本套教程的核心Mapbox的使用。

待续。。。。。。。。。。。。。。。。。。。。。

你可能感兴趣的:(MapBox)