符合我公司GIS开源解决方案的探讨
文章版权由作者李晓晖和博客园共有,若转载请于明显处标明出处:http://www.cnblogs.com/naaoveGIS/。
1.前言
这一周,我对GIS开源解决方案中涉及到的开源软件以及相关技术和流程做了一些初步的探索,也了解了一下其他公司利用开源方案做的比较成熟的案例。这里我将一些技术关键点的预研做一下总结,同时对其他公司开源成功案例做一个分析,并提出个人认为目前最符合公司实际的GIS开源解决方案。
2.技术关键点预研
2.1空间数据入库(postgreSQL+postGIS)
利用postGIS将shp数据导入到postgreSQL中:
2.2空间数据编辑(uDig)
导入postgreSQL中的空间数据,可以进行展示以及编辑等操作。
2.3SLD样式文件的制作
可以直接利用uDig进行图层配图以及生产对应的SLD文件,并且可以导出:
2.4利用geoserver发布postGIS中的空间数据
在Geoserver中添加stores选择postgis即可:
2.5利用Geoserver发布图层组
将多个单独发布的图层服务组合为一个图层组,在一次请求中可以显示所有图层组下的图层:
包含了单元网格和社区的图层组:
2.6利用GeoWebCache切图缓存
研究了GeoWebCache的两种切图策略:一种是类AGS切图策略,即预先切图;一种是类AGS动态切图策略,即第一次请求时切图。
切图的相关配置和结果:
2.7对利用postGIS中的ST_Geometry函数进行空间数据管理和空间分析的预研
PostGIS中的ST_Geometry函数与SDE中的基本相同,不过它包含了自身的一些扩展函数。大致有如下功能:
在postgresql中测试了基本的空间要素增删查改以及空间要素的面积和长度获取:
3.其他公司成熟案例的研究
某公司的平安XX(安防项目)为这次研究的案例对象,通过与他们研发人员的交流,我大致得出以下几点信息:
3.1采用框架
Geoserver(地图服务器)+geoWebCache(瓦片缓存服务)+JBOSS(中间件)+postgreSQL(空间数据库)+Oracle(业务数据库)+uDig(空间数据编辑工具)。
3.2 该项目的一些分析点总结
a.该项目中Geoserver发布了近六十个图层,无明显不稳定问题。
b.该项目中的空间数据查询、编辑以及涉及到的空间分析功能,均用ST_Geometry函数实现,效率不错。
c.项目中地图瓦片缓存采用的geoWebCache的动态出图策略。近六十个图层作为底图,第一次请求出图的时间大约为20多秒(算上网络耗费)。
d.业务数据和空间数据分开存放,业务数据存放到Oracle中,空间数据存放到postgresql中。
e.项目的部署,为他们研发事先将数据均处理好后,再将已包含了数据的Geoserver和空间库发给现场工程人员。
3.3 个人对该项目的评价
3.3.1优点
a.出图和空间分析等功能是基本齐全的,效率和稳定性也不错。平安XX本身是一个比较大的项目,经历了比较好的实践考验。
b.将空间分析均用ST_Geometry+SQL来实现,而不通过Geoserver本身提供的WFS服务,可以有更多的定制需求,并且如果出错也方便排查。如果编写的合理的话,是可以加速数据的获取。同时,非GIS专业的开发人员也更容易理解。
c.将空间数据和业务数据分开,这样可以保证原有的其他项目使用的业务数据改动不大,保证系统的稳定性。
3.3.2缺点
a.项目的实施均需要研发人员参与,将数据入库以及发布。然后还要配合现场将环境布置好。
3.4 有待证实的地方
a.当用geoWebCache进行切图时,如果底图配图很复杂,是否可以保证切图的不失真。
b.当用GeoWebCache进行切图时,如果底图是很大的影像图(GB以上),是否可以保证切图的不失真,以及第一次出图时的出图效率。
c.当用Geoserver发布超过100个图层服务时,Geoserver本身的稳定性问题。
4.符合公司的开源解决方案
通过以上的技术关键点预研和其他公司成功案例的分析,结合公司目前的整体架构,我个人提出一个自认为比较符合公司的开源解决方案:
GeoServer(地图服务)+本地瓦片服务(ArcGIS等切图)+Tomcat(中间件)+Postgresql(空间数据库)+Oracle(业务数据库)+uDig(空间数据编辑工具)。
4.1系统详细构架解说
4.1.1底图缓存服务
公司可以依然采用ArcGIS来进行切图(公司有正版),这样有三个好处:
a.项目实施人员易操作。
b.配图容易。
c.可以保证切图质量和效率。
切完的图,我们采用我们已有的的离线瓦片策略即可,绕过GeoWebCache的采用和配置。当然,如果不想用ArcGIS切图,想进行全开源化,我们也可以研究使用MapTiler这个开源切图工具,切图的效率和效果都比较好。
4.1.2 部件动态出图(WMS)
采用公司已有的基于GeoServer的功能。
4.1.3 矢量查询(WFS)
采用公司已有的基于GeoServer的功能。
4.1.4 空间分析功能(WFS)
对于已通过GeoServer开发的空间分析功能,可基于采用。对于未开发的部分,建议采用ST_Geometry函数来进行。
4.1.5 空间数据库
采用postgresql+postGIS。PostGIS支持批量入库,也支持中文数据,稳定性和性能均很不错,操作也很容易。同时,开发方面的教程和社区论坛也很多。
4.1.6 数据编辑器
采用uDig来进行空间数据编辑。uDig可以直接导入shp数据或者postgis中的数据,也可以将shp数据导入到postgresql中。还支持数据的样式编辑以及SLD文件的生成。
4.2项目的实施
a.切图环节工程可自行完成。
b.空间数据的入库环节工程也可以通过postGIS自行完成,操作跟catalog操作一样很简单。
c.空间数据的发布和部件基本样式的关联,以及业务数据的生成,可以通过修改目前已有的小工具来实现。
d.复杂样式的配置和发布,可以由研发来协助完成。
-----欢迎转载,但保留版权,请于明显处标明出处:http://www.cnblogs.com/naaoveGIS/
如果您觉得本文确实帮助了您,可以微信扫一扫,进行小额的打赏和鼓励,谢谢 ^_^
符合我公司GIS开源解决方案的探讨的更多相关文章
- 关于WebGIS开源解决方案的探讨(转)
关于WebGIS开源解决方案的探讨 文章版权由作者李晓晖和博客园共有,若转载请于明显处标明出处:http://www.cnblogs.com/naaoveGIS/. 1.背景 公司目前的多数项目采 ...
- 关于WebGIS开源解决方案的探讨
文章版权由作者李晓晖和博客园共有,若转载请于明显处标明出处:http://www.cnblogs.com/naaoveGIS/. 1.背景 公司目前的多数项目采用的是ArcGIS产品+Oracle+W ...
- 关于WebGIS开源解决方案的探讨(转载)
1.背景 公司目前的多数项目采用的是ArcGIS产品+Oracle+WebLogic/Tomcat/APUSIC/WebShpere这样的架构.由于 公司从事的是政府项目,甲方单位普遍均采购有以上产品 ...
- GIS开源软件大全
3 - F 3map:行星地球项目由3map驱动,这是一个自由软件,由Telstra宽带基金会创建并支持,提供客户端与服务器的能力以在线再现虚拟地球. Amein!:其界面介于ArcMap和UMN M ...
- (转)基于即时通信和LBS技术的位置感知服务(二):XMPP协议总结以及开源解决方案
在<基于即时通信和LBS技术的位置感知服务(一):提出问题及解决方案>一文中,提到尝试使用XMPP协议来实现即时通信.本文将对XMPP协议框架以及相关的C/S架构进行介绍,协议的底层实现不 ...
- 一个GIS开源工具集架构的总结
文章版权由作者李晓晖和博客园共有,若转载请于明显处标明出处:http://www.cnblogs.com/naaoveGIS/ 1.背景 最近由团队HWG主导的GIS开源工具集基本告一段落,该项目虽然 ...
- Atitit.一些公司的开源项目 重大知名开源项目attilax总结
Atitit.一些公司的开源项目 重大知名开源项目attilax总结 1. Twitter--Bootstrap:1 2. Google2 2.1. Gson2 2.2. Angular.Js2 2. ...
- 面向中国 Azure 开发者发布开源解决方案指南
发布于 2014-05-23 作者 刘 天栋 Azure 是一个开放.灵活的云平台,可支持大量且不断增长的开源应用程序.框架和语言.微软及微软开放技术通过与全球及中国本地的开源社区不懈地合作,将 ...
- Android常见开源解决方案
原文:http://m.pstatp.com/group/6348269082899497218/?iid=6036708044&app=news_article&tt_from=mo ...
随机推荐
- tornado web 框架的认识
tornado 简介 1,概述 Tornado就是我们在 FriendFeed 的 Web 服务器及其常用工具的开源版本.Tornado 和现在的主流 Web 服务器框架(包括大多数 Python 的 ...
- Javascript初学篇章_7(DOM)
DOM 文档对象模型DOM (document object model) 文档对象模型,它定义了操作文档对象的接口.DOM 把一份html文档表示为一棵家谱树,使用parent(父), child( ...
- IE10(去掉文本框的X)
input[type="text"]::-ms-clear{ display:none;}input[type="text"]::-ms-reveal{ dis ...
- SharePoint 2010 Survey的Export to Spreadsheet功能怎么不见了?
背景信息: 最近用户报了一个问题,说他创建的Survey里将结果导出成Excel文件(Export to spreadsheet)的按钮不见了. 原因排查: 正常情况下,这个功能只存在于SharePo ...
- R语言:常用函数【转】
数据结构 一.数据管理vector:向量 numeric:数值型向量 logical:逻辑型向量 character:字符型向量list:列表 data.frame:数据框 c:连接为向量或列表len ...
- 安装zookeeper
从zookeeper官方网站下载安装包:zookeeper-3.4.9.tar.gz 解压安装 tar xvf zookeeper-3.4.9.tar.gz -C /usr/java cd /usr/ ...
- node(async原理)
node中的async是用来实现同步操作的,提供包括map.Series等方法,本文不做赘述. 由于项目需要在浏览器端用了async.js,因此仔细看了下它的代码.原来,一直以为node是在服务端调用 ...
- Python黑帽编程1.2 基于VS Code构建Python开发环境
Python黑帽编程1.2 基于VS Code构建Python开发环境 0.1 本系列教程说明 本系列教程,采用的大纲母本为<Understanding Network Hacks Atta ...
- C# 6.0 功能预览 (一)
一.索引的成员和元素初始化 1.1 原始初始化集合 Dictionary 1.2 键值初始化集合 Dictionary 1.3 运算符 $ 初始化集合 Dictionary 二.自动属性的初始化 一不 ...
- 策划编写一个新的Helper类
https://code.csdn.net/jy02305022/blqw-data 有朋友看见的话给点意见呗