webAppbuilder微件使用教程3 地理处理微件
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 地理处理微件的更多相关文章
- webAppbuilder微件使用教程2 常用微件介绍
webAppbuilder微件使用教程 --常用微件介绍 by 李远祥 上一章介绍了webappbuilder微件的一些基础操作,这一张主要是介绍一些常用微件的使用试用和配置方法. 微件的主要作用按照 ...
- webAppbuilder微件使用教程1 快速入门
by 李远祥 webAppbuilder是arcgis portal 和arcgis.com 上用来配置应用程序的利器.合理利用webAppbuilder的微件功能,可以实现应用程序的零代码定制,并能 ...
- Qt报表控件NCReport教程:添加报表字段
NCReport是一款轻量级.快速.多平台.简单易用的基于Qt toolkit的C++编写的报表解决方案,目前主要包括报表渲染库和报表设计器GUI应用程序. 在前面的文章<报表控件NCRepor ...
- C#WebBrowser控件使用教程与技巧收集--苏飞收集
C#WebBrowser控件使用教程与技巧收集--苏飞收集 先来看看常用的方法 Navigate(string urlString):浏览urlString表示的网址 Navigate(System. ...
- CEF中文教程(google chrome浏览器控件) -- Windows下编译Chromium
CEF中文教程(google chrome浏览器控件) -- CEF简介 2013-04-10 16:48 42928人阅读 评论(4) 收藏 举报 分类: CEF(2) 目录(?)[+] ...
- 【CC2530入门教程-01】CC2530微控制器开发入门基础
[引言] 本系列教程就有关CC2530单片机应用入门基础的实训案例进行分析,主要包括以下6部分的内容:[1]CC2530微控制器开发入门基础.[2]通用I/O端口的输入和输出.[3]外部中断初步应用. ...
- 【VS开发】 自己编写一个简单的ActiveX控件——详尽教程
最近开始学ActiveX控件编程,上手不太容易,上网想找相关教程也没合适的,最后还是在师哥的指导下完成了第一个简单控件的开发,现在把开发过程贴出来与大家分享一下~ (环境说明--平台:vs2005:语 ...
- duilib教程之duilib入门简明教程15.自绘控件
在[2013 duilib入门简明教程 -- 复杂控件介绍 (13)]中虽然介绍了界面设计器上的所有控件,但是还有一些控件并没有被放到界面设计器上,还有一些常用控件duilib并没有提供(比如菜单控件 ...
- spring cloud微服务快速教程之(七) Spring Cloud Alibaba--nacos(一)、服务注册发现
0.前言 什么是Spring Cloud Alibaba? Spring Cloud Alibaba 是阿里开源的,致力于提供微服务开发的一站式解决方案.此项目包含开发分布式应用微服务的必需组件,方便 ...
随机推荐
- Delphi调用Android的.so文件(转)
原地址:http://zhidao.baidu.com/link?url=fzqefMM44ljXA5BnAbkX44SapCUteyzlXFvGLKvukBivm9AB-w39P_h7eX1ty-G ...
- shell基本理论知识
(1)查看系统上安装了哪些shell # cat /etc/shells # /etc/shells: valid login shells /bin/sh /bin/dash /bin/bash / ...
- Vue.js使用前
下载安装 node,npm,git 安装cnpm 淘宝cnpm镜像https://npm.taobao.org/,-g表示进行全局安装 npm install -g cnpm --registry=h ...
- centos 上网问题
前言:由于Linux下很多软件安装必须网络环境下进行,因此,对于如何在VMware下进行上网,我折腾了至少三天,今天上午,也即五一劳动节,终于搜到一遍技术文章,经过自己实践,VMware下Linux的 ...
- webstorm 激活码
WebStorm 2016 最新版激活(activation code方式) 注册时,在打开的License Activation窗口中选择“activation code”,在输入框输入下面的注册码 ...
- centos 6.5中安装hadoop2.2
1.配置集群机器之间ssh免密码登录 (1) ssh-keygen -t dsa -P '' -f ~/.ssh/id_dsa 将id_dsa.pub 公钥 加入授权的key中去 这条命令的功能是把公 ...
- 7 款华丽的 HTML5 Loading 动画特效
我们在进行大数据的传输或者复杂操作的等待时,最好能有一个Loading等待的小动画提示用户.本文将为大家分享一些超华丽的基于HTML5的Loading加载动画特效,希望你会喜欢. 1.HTML5 Ca ...
- 必备的实用jQuery代码段(1)
1. 如何正确地使用toggleClass: //切换(toggle)类允许你根据某个类的 //是否存在来添加或是删除该类. //这种情况下有些开发者使用: a.hasClass('blueButto ...
- linux iptables 配置
1.查看已有配置 iptables -L -n 2.清除原有规则. iptables -F 清除预设表filter中的所有规则链的规则 iptables -X 清除预设表f ...
- endnote X7参考文献缩进设置
首先打开[endnote]软件,在"edit-output styles-edit(你所选择的文献格式名称)"对话框中点击"bibliography-layout&quo ...