1.ArcGIS API for Flex用GeometryService实现点、线、面的buffer分析。
准备工作:
1.在ArcGIS.Server.9.3发布一个叫USA的Map Service。
2.在ArcGIS.Server.9.3发布一个叫Geometry的Geometry Service,默认设置就可以了。
完成后的效果图:
开始:
0.首先介绍一下Geometry Service,Geometry Service是给程序提供几何计算如 buffering, simplifying, calculating areas 、lengths, projecting等功能,Geometry Service可以用来代替ArcObjects 或geoprocessing service等做的这些几何计算,它是ArcGIS Server 9.3提供的新功能,本篇就是用它来实现buffer的分析。
1.启动Flex Builder3新建工程以及引入1.0正式版的ArcGIS API for Flex library的开发包。
2.新建bufferTest.mxml页面,添加Map、ArcGISDynamicMapServiceLayer、GraphicsLayer等。具体代码如下: 1<mx:Canvas width="490" height="401" borderStyle="solid" borderThickness="3" verticalCenter="16" left="10">
2 <esri:Map id="myMap" crosshairVisible="true">
3 <esri:ArcGISDynamicMapServiceLayer url="http://jh-53a435fbc0e8/ArcGIS/rest/services/USA/MapServer" />
4 <esri:GraphicsLayer id="myGraphicsLayer" />
5 </esri:Map>
6 </mx:Canvas>3. 然后在Map控件的右边在添加一个Grid用来显示buffer分析后的数据,代码如下: 1<mx:DataGrid id="datalist" height="398" verticalCenter="14" borderStyle="solid" borderThickness="3" left="508">
2 </mx:DataGrid>4.这里既然是用Geometry Service实现buffer的当然还需要添加esri:GeometryService控件,它的url属性就是上面发布的叫Geometry的Geometry Service的地址,代码如下: 1<esri:GeometryService id="myGeometryService" url="http://jh-53a435fbc0e8/ArcGIS/rest/services/Geometry/GeometryServer"/>5.这里采用在地图上画点、线、面然后根据画的几何图进行buffer,所以还需要ToggleButtonBar按钮组控件、Draw控件以及图形显示样式的定义,具体代码如下: 1<esri:SimpleFillSymbol id="sfs" color="0xFF0000" alpha="0.6">
2 </esri:SimpleFillSymbol>
3 <esri:Draw id="drawToolbar" map="{myMap}" graphicsLayer="{myGraphicsLayer}" drawEnd="drawEndHandler(event)" />
4 <mx:ToggleButtonBar verticalCenter="-203" itemClick="itemClickHandler(event)" toggleOnClick="true" left="11">
5 <mx:dataProvider>
6 <mx:Array>
7 <mx:Object icon="{point}" />
8 <mx:Object icon="{polyline}" />
9 <mx:Object icon="{polygon}" />
10 </mx:Array>
11 </mx:dataProvider>
12 </mx:ToggleButtonBar>6.point、polyline、polygon的icon定义如下: 1<mx:Script>
2 <![CDATA[
3
4 [Bindable]
5 [Embed(source="assets/point.gif")]
6 public var point:Class;
7
8 [Bindable]
9 [Embed(source="assets/polyline.gif")]
10 public var polyline:Class;
11
12 [Bindable]
13 [Embed(source="assets/polygon.gif")]
14 public var polygon:Class;
15
16 ]]>
17 </mx:Script>7.进行buffer后得到的图形然后用来查询相关结果了所以还需要添加IdentifyTask控件,代码如下: 1<esri:IdentifyTask id="identifyTask" identifyComplete="identifyCompleteHandler(event)" url="http://jh-53a435fbc0e8/ArcGIS/rest/services/USA/MapServer"/>8.接下来开始编写功能代码,过程首先是用Draw工具在GraphicsLayer上画几何图形,然后用GeometryService对几何图形进行buffer,然后用分析得到的结果图形进行IdentifyTask出结果显示在DataGrid中。
9.按照上面的过程首先添加ToggleButtonBar的itemClick事件方法itemClickHandler(event),代码如下: 1private function itemClickHandler(event:ItemClickEvent):void
2 {
3 switch(event.index)
4 {
5 case 0:
6 {
7 drawToolbar.activate(Draw.MAPPOINT);
8 break;
9 }
10 case 1:
11 {
12 drawToolbar.activate(Draw.POLYLINE);
13 break;
14 }
15 case 2:
16 {
17 drawToolbar.activate(Draw.POLYGON);
18 break;
19 }
20 }
21 }10.接着是Draw控件的drawEnd时间方法drawEndHandler(event),代码如下: 1private function drawEndHandler(event:DrawEvent):void
2 {
3 var myGraphic:Graphic=event.graphic;
4 //设置buffer参数
5 var bufferParameters : BufferParameters = new BufferParameters();
6 bufferParameters.features=[myGraphic];
7 //buffer距离半径
8 bufferParameters.distances = [100000];
9 //buffer单位
10 bufferParameters.unit = BufferParameters.UNIT_METER;
11 //buffer空间参照系,102113为WKID是REST API定义好的空间参照系的id
12 bufferParameters.bufferSpatialReference = new SpatialReference(102113);
13 //添加BUFFER_COMPLETE监听
14 myGeometryService.addEventListener(GeometryServiceEvent.BUFFER_COMPLETE, bufferCompleteHandler);
15 //进行buffer分析
16 myGeometryService.buffer( bufferParameters );
17 }11.上面的代码中用GeometryService进行buffer已经有详细注释了,执行buffer方法后会执行bufferCompleteHandler方法,代码如下: 1//buffer完成后调用方法
2 private function bufferCompleteHandler( event : GeometryServiceEvent ) : void
3 {
4 myGraphicsLayer.clear();
5 //移除BUFFER_COMPLETE监听
6 myGeometryService.removeEventListener(GeometryServiceEvent.BUFFER_COMPLETE,bufferCompleteHandler);
7 //获取buffer结果Graphic
8 for each (var graphic : Graphic in event.graphics )
9 {
10 //设置显示样式
11 graphic.symbol = sfs;
12 //添加到GraphicsLayer进行显示
13 myGraphicsLayer.add( graphic );
14
15 var identifyParams:IdentifyParameters=new IdentifyParameters();
16 //查询结果需要返回Geometry
17 identifyParams.returnGeometry=true;
18 //查询冗余范围
19 identifyParams.tolerance=1;
20 //宽
21 identifyParams.width = myMap.width;
22 //高
23 identifyParams.height = myMap.height;
24 //设置查询的Geometry
25 identifyParams.geometry=graphic.geometry;
26 //从ComboBox获取选择的图层index设置要查询的图层
27 //查询图层id为2的图层,就是States层
28 identifyParams.layerIds=[2];
29 //查询可见图层
30 //identifyParams.layerOption=IdentifyParameters.LAYER_OPTION_VISIBLE;
31 identifyParams.mapExtent=myMap.extent;
32 //进行查询
33 identifyTask.execute(identifyParams);
34 }
35 }12.上面的代码中在最后执行了IdentifyTask的execute方法进行Identify查询,查询结束后会调用identifyCompleteHandler方法把结果显示在DataGrid中,代码如下: 1//查询完成后执行的事件
2 private function identifyCompleteHandler(event:IdentifyEvent):void
3 {
4 myNav.activate(Navigation.PAN);
5 var datas:Array=new Array();
6 //myGraphicsLayer.clear();
7 //遍历查询结果把查询到的feature添加到GraphicsLayer进行高亮显示
8 //同时把查询到的元素的名称添加到datas对象数组用来DataGrid显示用
9 for each (var result:IdentifyResult in event.identifyResults)
10 {
11 myGraphicsLayer.add(result.feature);
12 //datas.push(result.feature.attributes);
13 datas.push({"value":result.value});
14 }
15 //设置mx:DataGrid的数据源
16 datalist.dataProvider=datas;
17 }13.这样就完成了buffer的功能,运行测试效果。
分享到:
相关推荐
### 十、ArcGIS Server 9.3 和 ArcGIS API for Flex 的 GeometryService 和 buffer 分析 #### 目的 - 实现基于GeometryService的缓冲区分析。 #### 步骤 1. **定义几何对象**:使用GeometryService定义几何对象。 ...
### ArcGIS Server 9.3 for Flex API 初级教程知识点总结 #### 一、环境搭建 1. **ArcGIS Server API for Flex简介** ArcGIS Server API for Flex是2009年由ESRI推出的面向Rich Internet Applications (RIA) 的...
WebGIS实例通过使用ArcGIS Server 9.3和ArcGIS API for Flex技术栈实现了一系列功能,包括基本地图浏览、动态图层、瓦片式图层叠加以及各种GIS交互功能。这些知识点涉及了WebGIS的实现机制、ArcGIS Server的部署与...
本文将深入探讨一系列基于ArcGIS Server 9.3和ArcGIS API for Flex的经典WebGIS应用实例。这些实例涵盖了从基础的地图浏览到高级的地理处理服务,旨在帮助开发者掌握如何在Flex环境中构建丰富的GIS应用。 1. **基本...
内容概要:本文详细介绍了无人驾驶车辆轨迹跟踪与模型预测控制的相关技术和实现方法。主要内容涵盖从第二章到第八章的MATLAB Simulink模型和Carsim par文件的应用。具体包括系统建模与初始化、轨迹跟踪控制策略以及仿真与优化。文中提供了详细的代码示例,如车辆动态模型的建立、MPC控制器的创建及其应用、Carsim par文件的加载与仿真测试等。此外,还强调了这些资源对于理解和掌握无人驾驶车辆核心技术的重要性和实用性。 适合人群:对无人驾驶车辆轨迹跟踪和模型预测控制感兴趣的初学者及有一定经验的研究人员。 使用场景及目标:① 学习和理解无人驾驶车辆的系统建模、轨迹跟踪控制策略及仿真测试;② 掌握MATLAB Simulink和Carsim工具的具体应用;③ 提升对无人驾驶车辆相关技术的理解和实操能力。 其他说明:本书籍及相关程序资源已完全适配Carsim2019与MATLAB2018a及以上版本,推荐使用MATLAB2021a以获得最佳体验。
# 压缩文件中包含: 中文文档 jar包下载地址 Maven依赖 Gradle依赖 源代码下载地址 # 本文件关键字: jar中文文档.zip,java,jar包,Maven,第三方jar包,组件,开源组件,第三方组件,Gradle,中文API文档,手册,开发手册,使用手册,参考手册 # 使用方法: 解压最外层zip,再解压其中的zip包,双击 【index.html】 文件,即可用浏览器打开、进行查看。 # 特殊说明: ·本文档为人性化翻译,精心制作,请放心使用。 ·只翻译了该翻译的内容,如:注释、说明、描述、用法讲解 等; ·不该翻译的内容保持原样,如:类名、方法名、包名、类型、关键字、代码 等。 # 温馨提示: (1)为了防止解压后路径太长导致浏览器无法打开,推荐在解压时选择“解压到当前文件夹”(放心,自带文件夹,文件不会散落一地); (2)有时,一套Java组件会有多个jar,所以在下载前,请仔细阅读本篇描述,以确保这就是你需要的文件;
网络爬虫与数据采集_Python3_Scrapy_BeautifulSoup_MySQL_阿里云OSS_文章标题_头图_正文_作者信息_图片存储_数据库持久化_多网站支持_配置验证.zip
# 压缩文件中包含: 中文文档 jar包下载地址 Maven依赖 Gradle依赖 源代码下载地址 # 本文件关键字: jar中文文档.zip,java,jar包,Maven,第三方jar包,组件,开源组件,第三方组件,Gradle,中文API文档,手册,开发手册,使用手册,参考手册 # 使用方法: 解压最外层zip,再解压其中的zip包,双击 【index.html】 文件,即可用浏览器打开、进行查看。 # 特殊说明: ·本文档为人性化翻译,精心制作,请放心使用。 ·只翻译了该翻译的内容,如:注释、说明、描述、用法讲解 等; ·不该翻译的内容保持原样,如:类名、方法名、包名、类型、关键字、代码 等。 # 温馨提示: (1)为了防止解压后路径太长导致浏览器无法打开,推荐在解压时选择“解压到当前文件夹”(放心,自带文件夹,文件不会散落一地); (2)有时,一套Java组件会有多个jar,所以在下载前,请仔细阅读本篇描述,以确保这就是你需要的文件;
# 压缩文件中包含: 中文文档 jar包下载地址 Maven依赖 Gradle依赖 源代码下载地址 # 本文件关键字: jar中文文档.zip,java,jar包,Maven,第三方jar包,组件,开源组件,第三方组件,Gradle,中文API文档,手册,开发手册,使用手册,参考手册 # 使用方法: 解压最外层zip,再解压其中的zip包,双击 【index.html】 文件,即可用浏览器打开、进行查看。 # 特殊说明: ·本文档为人性化翻译,精心制作,请放心使用。 ·只翻译了该翻译的内容,如:注释、说明、描述、用法讲解 等; ·不该翻译的内容保持原样,如:类名、方法名、包名、类型、关键字、代码 等。 # 温馨提示: (1)为了防止解压后路径太长导致浏览器无法打开,推荐在解压时选择“解压到当前文件夹”(放心,自带文件夹,文件不会散落一地); (2)有时,一套Java组件会有多个jar,所以在下载前,请仔细阅读本篇描述,以确保这就是你需要的文件;
全网最简单、通俗易理解SpringBoot教程,快速完成项目,一切为项目而生
基于PYNQ-Z2实现手写数字识别卷积神经网络硬件加速器源代码(CNN硬件加速器入门级项目),该项目是个人毕设项目,答辩评审分达到98分,代码都经过调试测试,确保可以运行!欢迎下载使用,可用于小白学习、进阶。该资源主要针对计算机、通信、人工智能、自动化等相关专业的学生、老师或从业者下载使用,亦可作为期末课程设计、课程大作业、毕业设计等。项目整体具有较高的学习借鉴价值!基础能力强的可以在此基础上修改调整,以实现不同的功能。 基于PYNQ-Z2实现手写数字识别卷积神经网络硬件加速器源代码(CNN硬件加速器入门级项目)基于PYNQ-Z2实现手写数字识别卷积神经网络硬件加速器源代码(CNN硬件加速器入门级项目)基于PYNQ-Z2实现手写数字识别卷积神经网络硬件加速器源代码(CNN硬件加速器入门级项目)基于PYNQ-Z2实现手写数字识别卷积神经网络硬件加速器源代码(CNN硬件加速器入门级项目)基于PYNQ-Z2实现手写数字识别卷积神经网络硬件加速器源代码(CNN硬件加速器入门级项目)基于PYNQ-Z2实现手写数字识别卷积神经网络硬件加速器源代码(CNN硬件加速器入门级项目)基于PYNQ-Z2实现手写数字识别卷积神经网络硬件加速器源代码(CNN硬件加速器入门级项目)基于PYNQ-Z2实现手写数字识别卷积神经网络硬件加速器源代码(CNN硬件加速器入门级项目)基于PYNQ-Z2实现手写数字识别卷积神经网络硬件加速器源代码(CNN硬件加速器入门级项目)基于PYNQ-Z2实现手写数字识别卷积神经网络硬件加速器源代码(CNN硬件加速器入门级项目)基于PYNQ-Z2实现手写数字识别卷积神经网络硬件加速器源代码(CNN硬件加速器入门级项目)基于PYNQ-Z2实现手写数字识别卷积神经网络硬件加速器源代码(CNN硬件加速器入门级项目)基于PYNQ-Z2实现手写数字识别卷积神经网络硬件加速器源代码(CN
# 压缩文件中包含: 中文文档 jar包下载地址 Maven依赖 Gradle依赖 源代码下载地址 # 本文件关键字: jar中文文档.zip,java,jar包,Maven,第三方jar包,组件,开源组件,第三方组件,Gradle,中文API文档,手册,开发手册,使用手册,参考手册 # 使用方法: 解压最外层zip,再解压其中的zip包,双击 【index.html】 文件,即可用浏览器打开、进行查看。 # 特殊说明: ·本文档为人性化翻译,精心制作,请放心使用。 ·只翻译了该翻译的内容,如:注释、说明、描述、用法讲解 等; ·不该翻译的内容保持原样,如:类名、方法名、包名、类型、关键字、代码 等。 # 温馨提示: (1)为了防止解压后路径太长导致浏览器无法打开,推荐在解压时选择“解压到当前文件夹”(放心,自带文件夹,文件不会散落一地); (2)有时,一套Java组件会有多个jar,所以在下载前,请仔细阅读本篇描述,以确保这就是你需要的文件;
1-20:SF01-12-1计划协议之LP类型
内容概要:本文详细介绍了遗传算法优化最小二乘支持向量机(GA-LSSVM)的数据回归预测方法及其MATLAB实现。GA-LSSVM通过遗传算法优化LSSVM的参数,提升了数据回归预测的效果,尤其适用于高维、非线性数据。文中还提供了具体的MATLAB代码示例,包括数据加载、参数设置、遗传算法优化、模型训练、预测以及交叉验证等步骤,有效解决了过拟合问题。 适合人群:具备一定机器学习基础的研究人员和技术开发者,尤其是对遗传算法和支持向量机有一定了解的人群。 使用场景及目标:① 需要在高维、非线性数据上进行精准的数据回归预测;② 希望通过遗传算法优化LSSVM参数,提升模型性能;③ 使用MATLAB进行数据分析和建模,确保模型的泛化能力和稳定性。 其他说明:本文提供的MATLAB代码示例可以帮助读者快速理解和应用GA-LSSVM方法,同时强调了交叉验证在抑制过拟合方面的作用。
内容概要:本文详细介绍了基于组态王6.53平台构建的运料小车仿真实战项目。首先展示了核心控制脚本,通过VB脚本实现了对电机状态、传送带运行以及定时任务的管理。接着深入探讨了动画连接部分,利用Lua代码将水平移动量与编码器脉冲关联,并通过系统时钟驱动传送带纹理滚动,确保动画流畅度。针对遇到的问题如小车在传感器处无法停止的情况进行了分析并给出解决方案。此外,还提到了通过OPC协议将实时数据传输到Excel生成运行曲线图的方法,增强了数据分析能力。最后提供了完整的运行效果视频链接供读者直观感受整个系统的运作。 适合人群:对工业自动化控制系统感兴趣的工程师和技术爱好者,尤其是熟悉或希望深入了解组态王软件及其应用的人群。 使用场景及目标:适用于需要进行工业自动化仿真项目的场合,旨在帮助使用者掌握组态王6.53的具体使用技巧,包括但不限于脚本编写、动画制作、故障排查等方面的知识点。 其他说明:文中提供的GitHub仓库包含了所有相关代码文件,方便读者下载学习;同时提醒读者更新旧版本的电机驱动程序以避免潜在错误。
内容概要:本文档《Linux 命令大全.pdf》详细介绍了众多常用的 Linux 命令及其用法,包括但不限于文件操作(如 `cat`、`cp`、`mv`、`rm`)、权限管理(如 `chmod`、`chown`)、系统管理(如 `crontab`、`ps`、`top`)和网络通信(如 `ping`、`netstat`)等。每个命令都提供了详细的参数说明、使用示例和相关注意事项。文档不仅涵盖了基础命令的使用方法,还深入讲解了一些高级命令的用法,如 `find`、`grep` 和 `sed` 等。此外,文档还涉及了系统配置、用户管理、文件系统管理和进程管理等方面的内容。 适用人群:适合有一定 Linux 使用基础的用户,尤其是系统管理员、开发人员和运维工程师。 使用场景及目标:①帮助用户掌握 Linux 系统中常见命令的使用方法;②提高用户在日常工作中对文件、权限、进程等方面的管理效率;③为系统管理员和开发人员提供参考,以便更好地进行系统配置和故障排查。 其他说明:文档内容详实,适合用作 Linux 命令的学习手册或参考指南。建议读者在实践中结合具体应用场景,逐步掌握各个命令的使用技巧。
# 压缩文件中包含: 中文文档 jar包下载地址 Maven依赖 Gradle依赖 源代码下载地址 # 本文件关键字: jar中文文档.zip,java,jar包,Maven,第三方jar包,组件,开源组件,第三方组件,Gradle,中文API文档,手册,开发手册,使用手册,参考手册 # 使用方法: 解压最外层zip,再解压其中的zip包,双击 【index.html】 文件,即可用浏览器打开、进行查看。 # 特殊说明: ·本文档为人性化翻译,精心制作,请放心使用。 ·只翻译了该翻译的内容,如:注释、说明、描述、用法讲解 等; ·不该翻译的内容保持原样,如:类名、方法名、包名、类型、关键字、代码 等。 # 温馨提示: (1)为了防止解压后路径太长导致浏览器无法打开,推荐在解压时选择“解压到当前文件夹”(放心,自带文件夹,文件不会散落一地); (2)有时,一套Java组件会有多个jar,所以在下载前,请仔细阅读本篇描述,以确保这就是你需要的文件;
基于区域特征的线阵图像分割.pdf
# 压缩文件中包含: 中文-英文对照文档 jar包下载地址 Maven依赖 Gradle依赖 源代码下载地址 # 本文件关键字: jar中文-英文对照文档.zip,java,jar包,Maven,第三方jar包,组件,开源组件,第三方组件,Gradle,中文API文档,手册,开发手册,使用手册,参考手册 # 使用方法: 解压最外层zip,再解压其中的zip包,双击 【index.html】 文件,即可用浏览器打开、进行查看。 # 特殊说明: ·本文档为人性化翻译,精心制作,请放心使用。 ·只翻译了该翻译的内容,如:注释、说明、描述、用法讲解 等; ·不该翻译的内容保持原样,如:类名、方法名、包名、类型、关键字、代码 等。 # 温馨提示: (1)为了防止解压后路径太长导致浏览器无法打开,推荐在解压时选择“解压到当前文件夹”(放心,自带文件夹,文件不会散落一地); (2)有时,一套Java组件会有多个jar,所以在下载前,请仔细阅读本篇描述,以确保这就是你需要的文件;
内容概要:本文详细介绍了如何使用LabVIEW调用HALCON实现深度OCR技术。首先,文章概述了深度OCR技术在图像处理和机器视觉领域的广泛应用及其重要性。接着,重点讲解了HALCON作为一款强大机器视觉软件的特点,以及LabVIEW的图形化编程界面如何与HALCON相结合,实现图像的高效加载、处理和深度分析。文中还特别提到了对非训练和训练模式的支持,以及CPU和GPU推理的能力。最后,强调了提供的完整安装包和远程支持服务,确保用户能够顺利部署和使用这一解决方案。 适合人群:从事图像处理、机器视觉相关工作的工程师和技术人员,尤其是那些希望深入了解LabVIEW与HALCON集成方法的人群。 使用场景及目标:适用于需要高效、准确地从图像中提取文字信息的各种应用场景,如工业自动化、医疗诊断等。通过本方案,用户可以获得更高的工作效率和更好的数据分析效果。 其他说明:为确保最佳性能,请严格按照HALCON和LabVIEW的安装指南操作,并保持系统的稳定性和安全性。