文章版权由作者李晓晖和博客园共有,若转载请于明显处标明出处:http://www.cnblogs.com/naaoveGIS/

1.背景

等值面是气象、环保等相关项目上常用到的效果展示。在传统的CS项目中,可以利用一些二次开发工具进行开发,具有科研性质的项目上还会利用一些工具进行复杂建模出图然后流程化。这里,我们撇去复杂的建模各因子,谈谈通用的等值面如何在WebGIS中进行展示。

首先,我介绍下几种可以在前端进行等值面渲染的方案:

a.利用arcgis的model进行建模,设置好输入项,插值工具,输出项等,然后发布成GP服务,前端需要使用时通过rest方式调用GP服务将最后的插值结果进行展示。

b.直接在前端进行等值面算法的实现。在开源库turfjs中提供了等值面的调用函数。

c.利用GDAL或者AE或者其他气象方面的开发包,开发专门的工具程序进行等值面生成,然后将结果以服务或者图片的方式供前端调用。

d.直接在后台写程序进行生成,比如使用wcontour.jar等进行后台开发服务。

2.等值面生成方案选择

项目首先想纯前端进行开发,但是观察了turfjs生成的等值面,效果不是很理想,出现很多没有被覆盖的空隙。例如:

GP服务的方案上,因为不想总是前端传入所有插值的点,而是让输入数据源直接关联上SDE中的表,SDE中该表的数据每天会变化,那么每次生成时,前端只需调用连接而不用传入任何数据即可生成新的等值面。目前还没解决直接让下图所示的input关联上SDE表的方法,有相关经验的同行如果知道请不吝赐教。

所以最后选择了熟悉的AE来生成等值面。

3.服务自动发布方案选择

AE生成的数据为Grid格式:

自动发布方案目前有以下三种:

a.编写代码让arcgisserver自动发布。此种方案涉及到代码编写,并且还将出现对旧服务删除、新服务增加等操作,如果频率过多,对arcgisserver是个负担。

b.先用arcgisserver发布一个mapserver服务,然后每次更新替换掉该服务对应的路径文件夹中的文件。此种方法经过测试,每次替换了文件后,必须重启一次该服务才行,同样通过代码控制对arcgisserver存在压力。

c.直接编写代码对生成的等值面图进行切图,前端直接调用本地切图文件。因为自动切图工具已经有积累,所以采用此种方案。

4.项目最终采用的方案总结

a.将插值数据做成SHP通过SDE入库,利用MXD将入库数据进行添加,并且将掩膜数据也添入MXD。每次MIS上对接数据时动态修改SDE中该图层的插值属性的值即可。

b.通过MXD获取到数据要素,利用AE中集成好的插值算法进行插值。插值时选择好各插值参数,以及插值的掩膜图层。

c.对差值出来的栅格等值面数据进行分类渲染。

d.根据切图参数对最后栅格渲染图进行自动切图。

f.将切完的瓦片转移保存至瓦片服务文件夹下。

e.前端加载等值面切图瓦片。

5.效果展示

等值面demo工具效果如下:

自动切图后的结果如下:

系统中使用如下,支持多个等值面之间的切换,比如今、明、后三天的PM2.5等值面切换(由于重庆的数据缺少部分为0,所以灰色部分很多)。

配置文件中,可以配置等值面各插值参数、等值字段、分类阈值、渲染色带、触发时间、切图参数、文件地址等:

                         -----欢迎转载,但保留版权,请于明显处标明出处:http://www.cnblogs.com/naaoveGIS/

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

                                        

WebGIS中等值面展示的相关方案简析的更多相关文章

  1. Linux 磁盘分区方案简析

    Linux 磁盘分区方案简析 by:授客 QQ:1033553122   磁盘分区 任何硬盘在使用前都要进行分区.硬盘的分区有两种类型:主分区和扩展分区.一个硬盘上最多只能有4个主分区,其中一个主分区 ...

  2. Linux中 /proc/[pid] 目录各文件简析

    Linux 内核提供了一种通过 proc 文件系统,在运行时访问内核内部数据结构.改变内核设置的机制.proc 文件系统是一个伪文件系统,它只存在内存当中,而不占用外存空间.它以文件系统的方式为访问系 ...

  3. MySQL:关于MGR中监控的两个重要指标简析

    欢迎来到 GreatSQL社区分享的MySQL技术文章,如有疑问或想学习的内容,可以在下方评论区留言,看到后会进行解答 转载声明:以下文章来源于MySQL学习 ,作者八怪(高鹏) 一.两个重要的指标 ...

  4. MYSQL中的乐观锁实现(MVCC)简析

    https://segmentfault.com/a/1190000009374567#articleHeader2 什么是MVCC MVCC即Multi-Version Concurrency Co ...

  5. WebGIS中前端JS生成等值面方法探讨

    文章版权由作者李晓晖和博客园共有,若转载请于明显处标明出处:http://www.cnblogs.com/naaoveGIS/ 1.背景 在之前的博文<WebGIS中等值面展示的相关方案简析&g ...

  6. WebGIS中等值线前端生成绘制简析

    文章版权由作者李晓晖和博客园共有,若转载请于明显处标明出处:http://www.cnblogs.com/naaoveGIS/ 1.背景 等值线是GIS制图中常见的功能,一般有两种思路:一种是先进行插 ...

  7. WebGIS中自定义互联网地图局部注记的一种方案

    文章版权由作者李晓晖和博客园共有,若转载请于明显处标明出处:http://www.cnblogs.com/naaoveGIS/ 1.    前言 实际项目中我们经常会遇到这样一种场景:地图底图可能是互 ...

  8. (十九)WebGIS中I查询的原理及设计(包含AGS、GeoServer、Supermap)

    文章版权由作者李晓晖和博客园共有,若转载请于明显处标明出处:http://www.cnblogs.com/naaoveGIS/. 1.背景 我们在使用arcmap时,经常会用到被称为I查询的工具.具体 ...

  9. (十二) WebGIS中矢量图层的设计

    文章版权由作者李晓晖和博客园共有,若转载请于明显处标明出处:http://www.cnblogs.com/naaoveGIS/. 1.前言 在前几章中我们已经了解了什么是矢量查询.屏幕坐标与地理坐标之 ...

随机推荐

  1. ASP.NET Aries 入门开发教程9:业务表单的开发

    前言: 经过前面那么多篇的列表的介绍,终于到了大伙期待的表单开发了. 也是本系列的最后一篇文章了! 1:表单页面的权限设置与继承 对于表单页面,权限的设置有两种: 1:你可以选择添加菜单(设置为不显示 ...

  2. ABP文档 - Javascript Api - Message

    本节内容: 显示信息 确认 Message API给用户显示一个信息,或从用户那里获取一个确认信息. Message API默认使用sweetalert实现,为使sweetalert正常工作,你应该包 ...

  3. 使用etree.HTML的编码问题

    title: 使用etree.HTML的编码问题 date: 2015-10-07 17:56:47 categories: [Python] tags: [Python, lxml, Xpath] ...

  4. 从零开始编写自己的C#框架(27)——什么是开发框架

    前言 做为一个程序员,在开发的过程中会发现,有框架同无框架,做起事来是完全不同的概念,关系到开发的效率.程序的健壮.性能.团队协作.后续功能维护.扩展......等方方面面的事情.很多朋友在学习搭建自 ...

  5. Phoenix综述(史上最全Phoenix中文文档)

    个人主页:http://www.linbingdong.com 简书地址:http://www.jianshu.com/users/6cb45a00b49c/latest_articles 网上关于P ...

  6. jQuery.template.js 简单使用

    之前看了一篇文章<我们为什么要尝试前后端分离>,深有同感,并有了下面的评论: 我最近也和前端同事在讨论这个问题,比如有时候前端写好页面给后端了,然后后端把这些页面拆分成很多的 views, ...

  7. 【NLP】干货!Python NLTK结合stanford NLP工具包进行文本处理

    干货!详述Python NLTK下如何使用stanford NLP工具包 作者:白宁超 2016年11月6日19:28:43 摘要:NLTK是由宾夕法尼亚大学计算机和信息科学使用python语言实现的 ...

  8. APEX:对object中数据进行简单处理?

    在Salesforce中,常常要对各种数据进行处理,已满足业务逻辑.本篇文章会介绍如何实现从object获取数据,然后将取得的数据进行一系列简单处理. 第一步:SongName__c 是一个新建的ob ...

  9. App 审核由于 IPv6 网络问题被拒

    昨天 提交App Store 的时候被拒了 We discovered one or more bugs in your app when reviewed on iPhone running iOS ...

  10. 基于SOA架构的TDD测试驱动开发模式

    以需求用例为基,Case&Coding两条线并行,服务(M)&消费(VC)分离,单元.接口.功能.集成四层质量管理,自动化集成.测试.交付全程支持. 3个大阶段(需求分析阶段.研发准备 ...