文章版权由作者李晓晖和博客园共有,若转载请于明显处标明出处: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. JavaScript Array对象

    介绍Js的Array 数组对象. 目录 1. 介绍:介绍 Array 数组对象的说明.定义方式以及属性. 2. 实例方法:介绍 Array 对象的实例方法:concat.every.filter.fo ...

  2. 前端常用的WindowsCMD命令

    前面的话   在网上找了一些关于命令提示符CMD的资料,但是很多资料都是把所有的功能罗列出来,大部分都不会用到.所以,自己把常用的CMD命令总结如下,方便查阅 操作类 help 列出所有支持的指令及说 ...

  3. [.NET] C# 知识回顾 - 事件入门

    C# 知识回顾 - 事件入门 [博主]反骨仔 [原文]http://www.cnblogs.com/liqingwen/p/6057301.html 序 之前通过<C# 知识回顾 - 委托 de ...

  4. 香蕉云APP,2016下半年开发日记

    2016-6-17  数据库设计不应该过多依赖范式,适度的冗余可以加快搜索速度,在服务器的配置还可以的情况下,可以采用冗余来解决查找慢的问题.还一个是要选择好数据库引擎,例如 InnoDB 和 myi ...

  5. mysql进阶之存储过程

    往往看别人的代码会有这样的感慨: 看不懂 理还乱 是离愁 别是一番滋味在心头 为什么要使用存储过程? 在mysql开发中使用存储过程的理由: 当希望在不同的应用程序或平台上执行相同的函数,或者封装特定 ...

  6. Mybatis XML配置

    Mybatis常用带有禁用缓存的XML配置 <?xml version="1.0" encoding="UTF-8" ?> <!DOCTYPE ...

  7. html中table边框属性

    1.向右(横向)合并: <td colspan="5"><span>后台管理系统</span></td> 2.向下(纵向)合并: & ...

  8. 关于Genymotion下载比较慢的解决办法

    Genymotion号称Android模拟器中运行最快的,但是服务器在国外,Android镜像下载起来那个速度就不想说了. Add new device后下载速度太慢了,容易失败 先登录,然后add, ...

  9. 编译器开发系列--Ocelot语言1.抽象语法树

    从今天开始研究开发自己的编程语言Ocelot,从<自制编译器>出发,然后再自己不断完善功能并优化. 编译器前端简单,就不深入研究了,直接用现成的一款工具叫JavaCC,它可以生成抽象语法树 ...

  10. 对Maven、gradle、svn、spring 3.0 fragment、git的想法

    1.Maven Maven可以构建项目,采用pom方式配置主项目和其他需要引用的项目.同时可结合spring3.0的新特性web  fragment. 从现实出发,特别是对于管理不到位,程序员整体素质 ...