ArcGIS Flex API进行缓冲分析的讨论
来源:互联网 发布:电脑包 知乎 编辑:程序博客网 时间:2024/05/22 00:33
在ArcGIS Flex API中可以通过GeometryService服务来进行缓冲分析,下面我们来探讨一下缓冲分析的实现。API中有<esri:GeometryService />专门用于处理Geometry服务,要进行缓冲分析,首先我们需要在ArcCatalog里面建立一个Geometry服务,建立好了我们就可以在Flex中进行代码编写了。
我设想在地图中先添加地图文件,我们可以前面我们说的LibertyGIS来添加本地shapfile文件到GraphicLayer,也可以自己代码绘制一个多边形在GraphicLayer上,我们点击这个多边形即进行缓冲分析,将分析结果添加到GraphicLayer上,操作完成。然而值得我们注意的是,缓冲分析中点和多点的处理方式与线和多边形不同,在网上找到下面这句话:
点(Points)和多点(Multipoints):若单位(unit)是长度的,如:米、英尺等,测地线缓冲(geodesic buffering)分析将执行 is performed.
线(Polylines)和多边形(Polygons):单位(unit)必须是角度的,如:十进制度数,缓冲区分析才能执行。
private function mouseClickHandler(e:MouseEvent):void{var myMapCenterPoint:MapPoint = MapPoint(map.extent.center);var bufferParm:BufferParameters=new BufferParameters();bufferParm.bufferSpatialReference = map.spatialReference;bufferParm.outSpatialReference=map.spatialReference;bufferParm.unit=GeometryService.UNIT_KILOMETER;bufferParm.distances=[50]; //这里采用的是长度单位bufferParm.geometries=[myMapCenterPoint];myGeometryService.addEventListener(GeometryServiceEvent.BUFFER_COMPLETE, bufferCompleteHandler);myGeometryService.buffer(bufferParm);}function bufferCompleteHandler(event:GeometryServiceEvent):void{var sfs:SimpleFillSymbol=new SimpleFillSymbol("solid",0xff0000,1,sls);myGeometryService.removeEventListener(GeometryServiceEvent.BUFFER_COMPLETE, bufferCompleteHandler);for each (var geometry:Polygon in event.result){var graphic:Graphic = new Graphic();graphic.geometry = geometry;graphic.symbol = sfs;graphicsLayer.add(graphic);}}结果如下图:
线和多边形进行缓冲分析需要对线或多边形设定参考坐标系,并且以弧度作为距离单位,下面我们以多边形为例,代码如下:
private function mouseClickHandler(e:MouseEvent):void{var gra:Graphic=e.currentTarget as Graphic;var polygon:Polygon=gra.geometry as Polygon;polygon.spatialReference=map.spatialReference;//设定参考坐标系var bufferParm:BufferParameters=new BufferParameters();bufferParm.bufferSpatialReference = map.spatialReference;bufferParm.outSpatialReference=map.spatialReference;bufferParm.unit=GeometryService.UNIT_KILOMETER;bufferParm.distances=[50/6378137.0 * 180.0/Math.PI];//单位转换为弧度单位bufferParm.geometries=[polygon];myGeometryService.addEventListener(GeometryServiceEvent.BUFFER_COMPLETE, bufferCompleteHandler);myGeometryService.buffer(bufferParm);}
结果如下图:
- ArcGIS Flex API进行缓冲分析的讨论
- Arcgis Flex下的缓冲分析
- ArcGIS.Server.9.3和ArcGIS API for Flex的GeometryService和buffer分析(十)
- ArcGIS.Server.9.3和ArcGIS API for Flex的GeoprocessingServices和服务区分析(十二)
- ArcGIS对矢量进行缓冲分析,并将缓冲区域转化为栅格数据
- ArcGIS Server Flex API
- ArcGIS.Server.9.3和ArcGIS API for Flex的GeoprocessingServices和最短路径分析(十三)
- ArcGIS API for Flex (使用ArcGIS API for Flex 创建一个新的地图项目)
- ArcGIS API For Flex对ImageServer发布的服务进行渲染及RasterFunction支持函数(学习笔记)
- ArcGIS API For Flex对ImageServer发布的服务进行渲染及RasterFunction支持函数(学习笔记)
- ArcGIS for SilverLight 线要素缓冲分析的问题
- arcgis api for flex 地图选点画线 可拖动变色【写给已逝去的arcgis flex】
- ArcGIS API for Flex Beta
- ArcGIS API for Flex 概览
- arcgis api for flex学习
- arcgis flex api各个包
- ArcGIS for Flex API官网
- ArcGIS Flex API 拖拽Graphic
- 常用的快速Web原型图设计工具
- poj1979
- 代码规范
- Update-rc.d 命令用法详解
- MFC UpdateData(FALSE)和UpdateData(TRUE)的作用
- ArcGIS Flex API进行缓冲分析的讨论
- JAVA打包软件exe4j使用教程
- 对象写入xml,scoket进行通信
- xcode真机测试
- 黑马程序员——面向对象学习(2)
- 我国地板品牌只有摒弃抄袭 才能走向国际化
- 利用EnterpriseArchitect画类图
- request.getHeader("referer")的作用
- 常见缓存算法和缓存策略