webAppbuilder微件使用教程

--微件使用进阶地理处理微件

By 李远祥

地理处理是GIS解决问题的关键部分,也是其灵魂所在。由于WebAppBuilder框架的限制,用户如果想要非常灵活的功能,通过简单的配置是很难实现的,尤其是在这种零代码构建应用的方式。虽然WebAppBuilder也可以开发定制,但对于没有开发基础的使用人员来说,这是相当困难的。Esri在推出WebAppBuilder的时候已经考虑到这一点,因此在WebAppBuilder中提供了地理处理微件,可以让分析人员将自己的地理处理工具在WebAppBuilder中灵活的调用,很好的解决了这些问。

地理处理微件是非常简单,它之所以能够解决绝大部分问题,那是因为它不是孤独的存在,它需要结合ArcGIS的其他产品进行辅助,需要较强的ArcMap基础及GIS理论进行支持。如果比较熟悉ArcGIS产品线及地理建模的话,地理处理微件就很容易实现丰富的分析功能。

地理处理微件的使用一般分为三个阶段,第一个阶段是制作模型;第二阶段是发布模型,第三阶段是使用模型。只有第三阶段使用模型才直接跟WebAppBuilder相关,前面的两个阶段都是ArcGIS其他产品的相关操作。

下面来看一个例子,将全国雨量站点的一张表发布出去,这张表除了基本的站点信息之外,还带有XY坐标字段。我们需要对这张表进行检索,并且按照关注点例如省份进行过滤,然后将所选省份的站点在地图上显示出来。这跟之前所说的查询微件不一样,首选数据是表格,不是传统的GIS数据,其次是需要定制一些界面,如省份的下拉列表,不是所有的数据都直接显示,只是检索表之后进行xy的上图操作。

这种功能对于开发人员来说,非常的简单,但如果不做任何的编码,很难去实现,在WebAppBuilder里面,没有任何的微件可以直接实现该功能。既不想通过编码去完成,又想在配置的过程中快速使用,最好的办法就是自己创建一个分析模型并在地里处理微件中调用。

针对上述的例子,我们要做的工作大概分为几部分。

1.      将这个表发布出去。可以将表格存放在数据库中成为数据库的表格,或者直接使用ArcMap将表格直接存到sde数据库中。我们选择了后者,因为在arcgis的框架下,使用arcgis的技术路线是最稳当,而且自我兼容良好。(这步骤就不累述了)

2.      创建分析模型。这里要涉及到的是modelbuilder的一些操作了(modelbuilder具体做法这里不;累述,属于另一个专题了)。首先我们得联系场景,先做一个表格的过滤,然后再做一个XY上图的操作,这些在ArcGIS的工具箱中可以找到对应的工具。

可以看到这里使用的是两个原生的工具,并且设置了两个参数,这两个参数一个是选择省份,一个输出的图层结果。省份这个参数(椭圆上带P为参数)是独立出来的,它是怎样跟表筛选工具的条件进行挂钩的呢?这就是设计到modelbuilder的一些使用技巧,可以双击这个Expression参数看看,如下图,使用了过滤条province=’省份’,这种方式来表达,这就是过滤条件,其中过滤的变量来自我们在modelbuilder里面的设置的【省份】这个参数。【省份】这个参数是我们在模型构建器中直接右键新建的一个字符串变量,为了方便记录,将其变量名称改为省份。

执行这个模型的结果,直接双击,会发现跟传统的模型有不一样的地方,就是省份具有下拉值,如下图

这又是modelbuilder的一些使用技巧了,工具制作好后,可以在工具的右键—属性—参数中进行更加详细的设置,如下图所示,在默认情况下,省份这个参数的过滤器是【无】,我们将其更改为【值列表】的方式,就可以设置其下拉列表

点击【值列表】后,可以输入对应的一些值,例如广东、广西等,如下图所示

3.      发布工具到ArcGIS portal或者arcgis.com 。这里就需要涉及到ArcMap的一些配置了。Arcgis发布地理处理模型的时候,一般都是需要执行一次的,执行完并确定没错之后,可以直接在发布到server中。但由于我们希望能在WebAppBuilder中直接获取,那就必须发布到portal或者arcgis.com 了。

这里以portal为例,首先需要在arcgis administrator中配置一个portal连接,在其【高级】--【管理门户连接】,添加上portal的连接地址,如下图

在ArcMap的【文件】菜单,先登录到portal中,如下图

接下来就是运行刚才制作好的模型。直接双击模型,选择其中一个省份,然后执行生成结果。如下图所示

关闭掉执行框,调出【地理处理】--【结果】,然后就可以右键发布这个模型

由于已经登录了portal,因此发布的时候会直接跳转到portal的一些设置界面,如下图,需要设置模型的必填项目以及共享的一些描述信息。

配置好后就可以发布,直到发布成功,那这些准备工作就基本完成。

4.      当分析模型已经准备并且完成发布,接下来才能进行地理处理微件的配置。打开WebAppBuilder的应用构建界面,选择使用地理处理微件,可以直接读取到门户网站中的一些已经发布的地理模型。地理处理微件只有一个设置按钮,可以直接输入来自外部的GP服务或者来自组织内部的服务。如下图

点击设置之后可以读取门户的信息,我们可以选择之前发布的地理处理服务,如下图

接下来的配置就更能体现地理处理微件的强大,它直接读取了之前配置地理处理模型的所有信息,点击下一步之后可以看到对这些处理的读取过程

同时可以给输出的图层设置渲染器和弹出窗口

整个分析的过程有后台去完成,我们在WebAppBuilder中只管调用就行。看看实际的结果,在调用前是空白的地图,执行某个省份的过滤之后,可以直接生成结果并上图显示,点击每个图形可以查看其属性。

执行前的地图

执行后的结果

这只是一个非常简单的例子,结合了模型构建,模型发布和地理处理调用。从这个例子可以看出,地理处理微件的功能是否合理和强大,完全取决于构建的模型功能。

如果觉得上述例子比较简单,那接下来的这个例子将呈现更加强大的功能。上述例子没有涉及到参数的地图交互,也没涉及到复杂的数据模型。下面我们将使用复杂的数据。现在要在一份水利数据中做一个河流追踪功能,例如选择河流上的某一点,可以追踪到河流的上游或者下游。

这里就需要涉及到更多的方面,一方面是需要对河流数据进行连通性建模,建立几何网络;另一方面要做的事情就是图形的捕捉,就是在地图上打点,然后选择将该点作为参数传入模型,第三步才是执行分析操作。也就是说,缺少数据支持是不能做这样的操作的,这些分析操作的输入条件是随意的,不是固定的点,需要跟地图进行交互。

回到根本,WebAppBuilder里面的地理处理微件不可能直接提供这些功能,那还是需要从模型入手。

1.      针对河流建立几何网络模型(具体操作自行查看arcgis的帮助),建立后如下图、

2.      构建分析模型

这是一个复杂的模型,首先使用输入的点做一个缓冲,查找河流要素,与河流的交点获取作为一个输入参数点,使用追踪几何网络工具直接分析,并从结果中提取分析的河流要素并且加入到地图中显示,工具如下,不再详细论述

关键部分在于两点,第一是输入参数必须为要素集(直接右键新建,并将其作为参数,以为除图层之外,交互的操作都必须定义为要素集,这样才能被全段读取),另一个是输出的结果必须设置为参数,并且添加至显示,不然无法设置其最终的符号。如下图

3.      配置地理处理微件。微件的调用如之前的做法无异。但可以看出明显不同的是微件读取了模型的配置,这第一个参数是要素集,可以设置以下的一些参数,例如可以与地图进行交互,在地图上打点之后还可以设置其符号

输出图层也是跟前面的差不多,只不过这次输出的数据为线,所以自动识别为线要素符号,可以设置其符号。

4.      执行操作。可以看到起具体的执行,也是非常简单,可以设置地图的交互和选择分析的类型(在模型中将分析模型设置为参数了),如下图

执行上溯追踪后返回结果如下

由此可见,地理处理微件机会可以完成所有的分析操作。在制定好分析模型后,可以基于这些强大的分析模型去完成所有的操作。

也许有人会问,如果arcgis工具箱里面的工具不能满足分析的需求怎么办。不要忘记,modelbuilder除了可以使用内置的丰富的分析工具之外,还定义了一系列的调用标准,可以通过python语言进行制作工具,python语言可以将一切现行的工具(非arcgis)像橡皮泥一样很好的粘合起来,这样模型也也可以无限的扩展。

webAppbuilder微件使用教程3 地理处理微件的更多相关文章

  1. webAppbuilder微件使用教程2 常用微件介绍

    webAppbuilder微件使用教程 --常用微件介绍 by 李远祥 上一章介绍了webappbuilder微件的一些基础操作,这一张主要是介绍一些常用微件的使用试用和配置方法. 微件的主要作用按照 ...

  2. webAppbuilder微件使用教程1 快速入门

    by 李远祥 webAppbuilder是arcgis portal 和arcgis.com 上用来配置应用程序的利器.合理利用webAppbuilder的微件功能,可以实现应用程序的零代码定制,并能 ...

  3. Qt报表控件NCReport教程:添加报表字段

    NCReport是一款轻量级.快速.多平台.简单易用的基于Qt toolkit的C++编写的报表解决方案,目前主要包括报表渲染库和报表设计器GUI应用程序. 在前面的文章<报表控件NCRepor ...

  4. C#WebBrowser控件使用教程与技巧收集--苏飞收集

    C#WebBrowser控件使用教程与技巧收集--苏飞收集 先来看看常用的方法 Navigate(string urlString):浏览urlString表示的网址 Navigate(System. ...

  5. CEF中文教程(google chrome浏览器控件) -- Windows下编译Chromium

    CEF中文教程(google chrome浏览器控件) -- CEF简介 2013-04-10 16:48 42928人阅读 评论(4) 收藏 举报  分类: CEF(2)    目录(?)[+]   ...

  6. 【CC2530入门教程-01】CC2530微控制器开发入门基础

    [引言] 本系列教程就有关CC2530单片机应用入门基础的实训案例进行分析,主要包括以下6部分的内容:[1]CC2530微控制器开发入门基础.[2]通用I/O端口的输入和输出.[3]外部中断初步应用. ...

  7. 【VS开发】 自己编写一个简单的ActiveX控件——详尽教程

    最近开始学ActiveX控件编程,上手不太容易,上网想找相关教程也没合适的,最后还是在师哥的指导下完成了第一个简单控件的开发,现在把开发过程贴出来与大家分享一下~ (环境说明--平台:vs2005:语 ...

  8. duilib教程之duilib入门简明教程15.自绘控件

    在[2013 duilib入门简明教程 -- 复杂控件介绍 (13)]中虽然介绍了界面设计器上的所有控件,但是还有一些控件并没有被放到界面设计器上,还有一些常用控件duilib并没有提供(比如菜单控件 ...

  9. spring cloud微服务快速教程之(七) Spring Cloud Alibaba--nacos(一)、服务注册发现

    0.前言 什么是Spring Cloud Alibaba? Spring Cloud Alibaba 是阿里开源的,致力于提供微服务开发的一站式解决方案.此项目包含开发分布式应用微服务的必需组件,方便 ...

随机推荐

  1. linux下利用curl监控web应用状态

    监控机器列表文件: server.list     建立监控脚本:  webstatus.sh     #!/bin/sh monitor_dir=/home/admin/monitor/ #Log记 ...

  2. Ubuntu的Redis安装

    转自:http://blog.fens.me/linux-redis-install/ 1. Redis在Windows中安装 在Windows系统上安装Redis数据库是件非常简单的事情,下载可执行 ...

  3. H3C inode for OSX 10.10 校园网客户端亲测可用

    1.打开终端 2.输入以下命令 sudo /library/StartupItems/iNodeAuthService/iNodeAuthService start 3.输入管理密码 4.打开客户端联 ...

  4. 苹果应用商店AppStore审核中文指南

    目录 1. 条款与条件2. 功能3. 元数据.评级与排名4. 位置5. 推送通知6. 游戏中心7. 广告8. 商标与商业外观9. 媒体内容10. 用户界面11. 购买与货币12. 抓取与聚合13. 设 ...

  5. CodeForces 631B Print Check

    对于每一个格子,看是行最后画还是列最后画.预处理一下就可以了. #include<stdio.h> #include<string.h> int n,m,k; +]; +]; ...

  6. NSString的几个方法(rangeOfString,hasPrefix,hasSuffix,改变大小写...)

    - (NSRange)rangeOfString:(NSString *)searchString;//查找字符串中是包涵在某个字符串,并返回其开始位置和长度 例: NSRange range = [ ...

  7. Laravel 用户验证Auth::attempt fail的问题

    1.在laravel项目中,当使用Auth::attempt()用于用户验证时,Auth::attempt()会把密码通过Hash进行转换,变成一串不知啥的长字符,如果你在数据库里事先设置了明文的密码 ...

  8. iOS纯代码工程手动快速适配

    首先说下让自己的程序支持iPhone6和6+,第一种使用官方提供的launch screen.xib,这个直接看官方文档即可,这里不再多述:第二种方法是和之前iPhone5的类似,比较简单,为iPho ...

  9. Ural Vol1(dif>=900)

    目前已AC:  2 1040.Airline Company(构造) 题目要求与每个顶点相连的所有边编号最大公约数为1,其实只要其中的两条边编号互质,所有边编号的最大公约数一定为1.我们知道相邻的数字 ...

  10. Maven项目中pom文件分析

    pom英文全称: project object model 1.概述 pom.xml文件描述了maven项目的基本信息,比如groupId,artifactId,version等.也可以对maven项 ...