传统GIS开发中,我们一般会采用ArcGIS或者SuperMap作为GIS平台来进行开发,简单的分析查询会采用官方api或者leaflet,esri-leaflet等进行开发,复杂的查询分析统计功能会利用Geoprocessor(简称GP)来进行操作,采用这种商业平台好处显而易见是开发效率很大的提升,因为在这么多年的发展过程中,官方社区或者一些解决方案都很成熟。在开发过程中遇到的一般问题如果不是很好解决,也可以很方便的向技术支持寻求帮助。但是缺点就是费用很高,一整套产品下来就要好几十万,对于开发成本来说这个费用还是很高的。因此提出了基于OpenLayer3+PostGIS+GeoServer 搭建GIS服务框架的想法。
1 GeoServer:一款开源WebGIS地图服务器,类似ArcGIS Server,提供统一OGC接口服务WMS/WFS/WMTS,功能比较强大,便于使用,使用量多较成熟;
2 OpenLayer:一款开源前台地图API产品,对数据进行可视化、空间分析、成果展示;
3 PostGIS:一款开源先进的开源空间数据库;
4 PostgreSQL:PostgreSQL(以下简称PG数据库) 是一个自由的对象-关系数据库服务器(数据库管理系统),除了作为普通关系数据库所具有的的特征外,我看到其最吸引的优势是其数据类型,包括:任意精度的数值,无限制长度文本,几何图元,IP地址与IPv6地址,无类域间路由地址块,MAC地址,数组…………此外,用户可以创建自定义数据类型,通常通过PostgreSQL的GiST机制,它们也能被很好得索引,比如PostGIS地理信息系统的数据类型, 同时也要指出的是,PostgreSQL 对接口的支持也是非常丰富的,几乎支持所有类型的数据库客户端接口。这一点也可以说是 PostgreSQL 一大优点。
- 步骤一 底图导出
用太乐底图下载器下载天地图或者百度地图当作服务底图(推荐使用天地图,因为天地图坐标系默认采用web墨卡托投影不偏移,下载好数据之后导出,需要注意下面几点
1 存储标准选择大图拼接,存储格式选择tif格式(geoserver支持),选择级别只选择最高等级即可,虽然我们下载了总共有18级,但是不需要全部选中,效果是一样,这一点我已经在ArcMap进行测试。
2 在导出的高级设置选项里面 ,把默认的智能分块进行取消掉,选择坐标系是xian80坐标系
- 步骤二 地理配准
1 打开ArcMap 把所下载的地理数据tif格式导入到ArcMap,颜色会进行变化。 图层属性里面 拉伸选择无就好了
2 然后把shp数据叠加在一起 ,如果有偏移的话,可以进行地理校准。然后把校准的数据导出保存。如果在ArcMap中可以叠加 不便宜 就可以在geoserver 上调取服务叠加。
3 可以通过把postgis 导入到postgresql (步骤就不详细写了,网上教程很多)。 需要注意的事项就是postgis要安装在同一安装目录。
数据如下。
postgressql 下载地址:https://www.enterprisedb.com/downloads/postgres-postgresql-downloads#windows
postgis 下载地址:http://postgis.net/windows_downloads/
- geoserver 服务发布
1 登陆geoserver ,左侧新建工作区 写好之后 提交
2 左侧新建数据存储,可以选择新建的工作区。选择tif格式,把数据进行发布。也可以进行切图处理。
同理 shp数据也可以这样发布。可以选择从本地打开或者从数据库导入shp数据。(这需要注意一点 shp数据不能为中文!)
- 步骤三 前端叠加展示