符合我公司GIS开源解决方案的探讨

本文涉及的产品
云原生数据库 PolarDB MySQL 版,Serverless 5000PCU 100GB
简介: 文章版权由作者李晓晖和博客园共有,若转载请于明显处标明出处:http://www.cnblogs.com/naaoveGIS/。 1.前言 这一周,我对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/

                                                                           如果您觉得本文确实帮助了您,可以微信扫一扫,进行小额的打赏和鼓励,谢谢 ^_^

                                      

 

相关实践学习
使用PolarDB和ECS搭建门户网站
本场景主要介绍基于PolarDB和ECS实现搭建门户网站。
阿里云数据库产品家族及特性
阿里云智能数据库产品团队一直致力于不断健全产品体系,提升产品性能,打磨产品功能,从而帮助客户实现更加极致的弹性能力、具备更强的扩展能力、并利用云设施进一步降低企业成本。以云原生+分布式为核心技术抓手,打造以自研的在线事务型(OLTP)数据库Polar DB和在线分析型(OLAP)数据库Analytic DB为代表的新一代企业级云原生数据库产品体系, 结合NoSQL数据库、数据库生态工具、云原生智能化数据库管控平台,为阿里巴巴经济体以及各个行业的企业客户和开发者提供从公共云到混合云再到私有云的完整解决方案,提供基于云基础设施进行数据从处理、到存储、再到计算与分析的一体化解决方案。本节课带你了解阿里云数据库产品家族及特性。
目录
相关文章
开源测试平台横向测评系列『流马』篇:流马使用及总结
【使用篇】 ● 接口测试:创建接口(添加引用公共参数、添加引用自定义参数)、测试用例(参数关联)、业务流程测试实践 ● web自动化测试:元素管理(添加元素)、测试用例(添加元素)、设计测试场景 ● 测试计划、测试集合与测试用例相互之间的关系 【总结篇】 ● 使用总结:常见的使用注意事项,如变量引用、函数引用、关联参数引用等 ● 优化建议:结合真实使用过程,从用户角度出发,提出的7条优化建议 ● 优缺点总结:优点、缺点、评分(从不同角度评测打分)
开源测试平台横向测评系列『流马』篇:流马使用及总结
|
6天前
|
SQL NoSQL 安全
国际标准图查询语言 GQL 正式发布,悦数图数据库业界首家原生支持
经过行业多年的讨论和行动,图查询语言 GQL(Graph Query Language)在 2024 年 4 月 12 日正式发布。GQL 是由国际标准化组织(ISO)和国际电工委员会(IEC)共同制定的图数据库查询语言标准,正式编号为 ISO/IEC 39075。GQL 为管理和查询图数据确立了统一的标准。
|
6天前
|
Dubbo Cloud Native 应用服务中间件
调研 7 个开源项目后,这家数据合规平台如何构建高性能网关
调研 7 个开源项目后,这家数据合规平台如何构建高性能网关
|
5月前
|
人工智能 NoSQL atlas
MongoDB推出四项AI驱动的新功能,助力开发者提升效率并加速应用程序现代化
生成式人工智能让开发者有机会构建更好的应用程序。通过自动执行重复性任务,由AI驱动的工具和功能可以帮助开发者节省大量时间和精力,同时更快地交付更高质量的应用程序
MongoDB推出四项AI驱动的新功能,助力开发者提升效率并加速应用程序现代化
|
6月前
|
数据可视化 前端开发 Java
个人开发者是否能借助开源获利?
近几年国内外开源软件的成倍增长,以及开源软件在互联网领域的比重越来越高,开源软件扮演者越来越重要的角色,所以开源软件不仅推动了技术领域的不断创新和发展,也给个人开发者们提供了越来越多的合作机会和获利的机会。
56 0
个人开发者是否能借助开源获利?
|
存储 机器学习/深度学习 缓存
存储和操作n维数据的难题,谷歌用一个开源软件库解决了
存储和操作n维数据的难题,谷歌用一个开源软件库解决了
109 0
|
测试技术
【开源测试平台横向测评系列】预告篇
近几年来,随着互联网行业的高速发展,各类开源自动化测试框架、工具、平台如雨后春笋般涌现。应当说,各个平台均有其各自的优缺点,这也给广大用户尤其是我这类“选择困难症”患者带来了一定的困扰:哪个更好用?哪个更适合当前团队?到底该选择哪个?本系列文章或许可以带你窥探一二
【开源测试平台横向测评系列】预告篇
|
安全 开发者
内部开源:如何在企业内部发挥开源的魔力
将开源开发的方法应用于企业内部可以提高创新能力,缩短产品上市时间,并使员工和客户感到满意。 各行各业、规模各异的公司都在实施内部开源的工作方式,以推动更高水平的开发协作和代码重用。他们的最终目标是提高创新力,缩短上市时间,培养、保留和吸引人才,当然,还有让他们的客户满意。 本文将介绍内部开源和其中的一些重点,还有内部开源可以帮助解决哪些问题。我还会讨论包括指标在内的内部开源流程中的一些组成部分。 什么是内部开源? 内部开源是把开发开源软件中学到的经验教训应用到公司内部开发软件的实践。因为它是在公司环境中完成的,所以内部开源是在公司内部网络中发生的。 在内部开源中,开发人员将会有相应的回报
363 0
|
机器学习/深度学习 自然语言处理 TensorFlow
搜狗开源业内最全「阅读理解工具集合」,助力研发人员快速构建高效模型
搜狗搜索在Github上开源“搜狗阅读理解工具集合”,提供了完整的阅读理解任务组件及10+个复现模型,极大降低了复现相关模型的难度。
1401 0
|
数据管理
解析IBM总结出的五项SOA最佳实践
本文讲的是解析IBM总结出的五项SOA最佳实践,要取得SOA部署的成功,必须先建立起核心架构领导团队,以确保付出的努力符合需求、并指导架构的发展。针对架构的最佳实践可分为重用、数据管理等几个不同的方面。
1700 0