arcgis api for flex 开发入门.docx
- 文档编号:20692975
- 上传时间:2023-04-25
- 格式:DOCX
- 页数:50
- 大小:149.85KB
arcgis api for flex 开发入门.docx
《arcgis api for flex 开发入门.docx》由会员分享,可在线阅读,更多相关《arcgis api for flex 开发入门.docx(50页珍藏版)》请在冰豆网上搜索。
arcgisapiforflex开发入门
arcgisapiforflex开发入门
(一)环境搭建
arcgisapiforflex是arcgis今年四月新推出来的进行RIA开发的flex库,是arcgisserver9.3的一部分,使用 ArcGISAPIforFlex可以基于ArcGISServer建立漂亮的富互联网应用程序richinternetapplications(RIAs),优点是运行速度快,用户体验效果会比目前的WEBGIS好。
使用arcgisapiforflex可以达到下面的效果
1,显示你的地图数据并可以和数据交互
2,在服务器上执行空间处理模型并显示结果
3,基于ArcGISOnline上的底图显示你自己的数据
4,根据属性或者位置查找你的数据并显示结果
5,查找地址并显示结果
6,用创新的方式可视化结果
7,创建mashups
具体详情可以参考
arcgisapiforflex 下载地址为
里面有个download。
开发arcgisapiforflex的程序需要flex环境的支持。
flexsdk3的下载地址为
有了flexsdk3和arcgisapiforflex我们就可以开发RIA的flex程序了。
为了开发方便,我们最好使用flexbuilder,可以从adobe的官方网站上下载试用版,下载地址为
安装好flexbuilder之后会安装flexsdk3,所以就不用自己手工安装了。
第一个arcgisapiforflex程序。
1,打开flexbuilder,创建一个flex工程(名称Demo)。
2,右键单击工程名,选择属性,在属性对话框中选择flexbuildpath,选择libaraypath选项卡,单击addswc把下载的arcgisapiforflex添加进去,环境就配置好了。
下载(84.75KB)
2008-10-1410:
53
3,在Demo.mxml文件中输入下面这代码
1.
xmlversion="1.0"encoding="utf-8"?
>
2. Application 3. xmlns: mx=" 4. xmlns: esri=" 5. pageTitle="UsingArcGISAPIforFlextoconnecttoacachedArcGISOnlineservice" 6. styleName="plain"> 7. MapcrosshairVisible="true"> 8. ArcGISTiledMapServiceLayer 9. url="/> 10. Map> 11.
Application>
复制代码
编译,执行。
第一个简单的agsflex程序就写好了。
效果如图2
下载(45.95KB)
2008-10-1410:
53
arcgisapiforflex开发入门
(二)map的创建
在flex中创建一个esri的map,你只需要使用 Map>标签就可以轻松完成。 在 Map>标签中可以添加属性和响应事件的消息。 如下: Mapwidth="100%"height="50%"id="EsriMap"creati resize="EsriMapResize(event);"extentChange="ESRIMapExtentChange(event);"mouseMove="OnDrawMouseMove(event)"/> width和height定义的map的大小,id="EsriMap"唯一标识了这个map。 针对map的消息也有很多,最常用的就是creationComplete,resize和鼠标消息了。 现在我们map有了,那么我们如何让她显示数据呢,这就需要给 Map>标签添加一个layer子标签 。 在agsflexapi中有以下几种类型的layer。 ArcGISDynamicMapServiceLayer: AllowsyoutoworkwithadynamicmapserviceresourceexposedbytheArcGISServerRESTAPI. ArcGISImageServiceLayer: AllowsyoutoworkwithanimageserviceresourceexposedbytheArcGISServerRESTAPI. ArcGISMapServiceLayer: ThebaseclassforArcGISServermapservices. ArcGISTiledMapServiceLayer: AllowsyoutoworkwithacachedmapserviceresourceexposedbytheArcGISServerRESTAPI. ArcIMSMapServiceLayer: AllowsyoutoworkwithanArcIMSimageservice. GPResultImageLayer: AllowsyoutoviewageoprocessingtaskresultidentifiedbyjobIdandparameterName. GraphicsLayer: AlayerthatcontainsoneormoreGraphicfeatures. 其中GraphicsLayer是支持客户端添加Graphicfeatures的图层,需要在客户端表现的,或者交互操作中产生的要素都要加到这个layer上。 下面,我们就添加一个ArcGISTiledMapServiceLayer和GraphicsLayer到map上。 Mapwidth="100%"height="50%"id="EsriMap"creati resize="EsriMapResize(event);"extentChange="ESRIMapExtentChange(event);"mouseMove="OnDrawMouseMove(event)"> ArcGISTiledMapServiceLayer url="/> GraphicsLayerid="myGraphicsLayer"spatialReference="{sr}"/> Map> 其中 ArcGISTiledMapServiceLayer>标签中的url属性为提供该服务的地址。 GraphicsLayer>标签其中的spatialReference属性定义了该图层的空间参考系。 创建一个空间参考系,只需要使用 SpatialReference>标签就可以了,其中wkid是esri已经定义好的空间草考系的ID,具体ID对应的空间参考可以在 SpatialReferenceid="sr"wkid="4326"/> 那么,我们如何定义我们想显示的范围呢? 很简单,在 Map>下面添加 extent>子标签,我们就可以来控制当前的显示范围了。 extent> Extent id="esriMapExtent"xmin="116"ymin="39.5"xmax="116.5"ymax="40.5"/> extent> 其中x是经度,y是纬度。 这样一个北京地区的map就可以显示到我们面前了。 完整代码如下 1. xmlversion="1.0"encoding="utf-8"? > 2. Application 3. xmlns: mx=" 4. xmlns: esri=" 5. pageTitle="UsingArcGISAPIforFlextoconnecttoacachedArcGISOnlineservice" 6. styleName="plain"> 7. SpatialReferenceid="sr"wkid="4326"/> 8. MapcrosshairVisible="true"> 9. extent> 10. Extent id="esriMapExtent"xmin="116"ymin="39.5"xmax="116.5"ymax="40.5"/> 11. extent> 12. ArcGISTiledMapServiceLayer 13. url="/> 14. GraphicsLayerid="myGraphicsLayer"spatialReference="{sr}"/> 15. Map> 16. Application> 复制代码 arcgisapiforflex开发入门(三)地图浏览控件的使用 地图浏览包括放大,缩小,漫游,复位,上级窗口,下级窗口等 在arcgisapiforflex中,esri已经封装好了一个地图浏览,我们在程序中可 以直接使用,只需要几十行代码,就可以完成复杂的任务。 首先在上一讲的基础上创建一个Navigation控件。 使用 Navigation>标签 就可以了。 Navigationid="navToolbar"map="{myMap}"/> 将 Navigation>标签的map属性设置为你要控制的map,也就是说把控件绑到 map上。 然后我们创建一个工具条,用来做对map浏览的控制 ControlBarhorizpaddingBottom="0"paddingTop="0"> Buttonlabel="放大" click="navToolbar.activate (Navigation.ZOOM_IN)" /> Buttonlabel="缩小" click="navToolbar.activate (Navigation.ZOOM_OUT)" /> Buttonlabel="漫游" click="navToolbar.activate (Navigation.PAN)" /> Buttonlabel="上级窗口" click="navToolbar.zoomToPrevExtent ()" enabled="{! navToolbar.isFirstExtent}"/> Buttonlabel="下级窗口" click="navToolbar.zoomToNextExtent()" enabled="{! navToolbar.isLastExtent}"/> Buttonlabel="复位"click="navToolbar.zoomToFullExtent()"/> button的click消息响应函数直接调用 Navigation>控件的函数就可以了 。 放大,缩小,漫游调用的都是激活工具的函数。 剩余3个button的响应函数分别 调用 Navigation>控件zoomToPrevExtent,zoomToNextExtent, zoomToFullExtent函数就ok了。 就是这么简单,我们来看看效果。 1. xmlversion="1.0"encoding="utf-8"? > 2. Application 3. xmlns: mx=" 4. xmlns: esri=" 5. pageTitle="UsingArcGISAPIforFlextoconnecttoacachedArcGIS 6.Onlineservice" 7. styleName="plain"> 8. Navigationid="navToolbar"map="{myMap}"/> 9. SpatialReferenceid="sr"wkid="4326"/> 10. ControlBarhorizontalGap="0"paddingBottom="0"paddingTop="0"> 11. Buttonlabel="放大" click="navToolbar.activate 12.(Navigation.ZOOM_IN)" /> 13. Buttonlabel="缩小" click="navToolbar.activate 14.(Navigation.ZOOM_OUT)" /> 15. Buttonlabel="漫游" click="navToolbar.activate 16.(Navigation.PAN)" /> 17. Buttonlabel="上级窗口" click="navToolbar.zoomToPrevExtent 18.()" enabled="{! navToolbar.isFirstExtent}"/> 19. Buttonlabel="下级窗口" 20.click="navToolbar.zoomToNextExtent()" enabled="{! 21.navToolbar.isLastExtent}"/> 22. Buttonlabel="复位"click="navToolbar.zoomToFullExtent()"/> 23. ControlBar> 24. MapcrosshairVisible="true"id="myMap"> 25. extent> 26. Extent id="esriMapExtent"xmin="116" 27.ymin="39.5"xmax="116.5"ymax="40.5"/> 28. extent> 29. ArcGISTiledMapServiceLayer 30. 31.url=" 32._World_2D/MapServer"/> 33. GraphicsLayerid="myGraphicsLayer" 34.spatialReference="{sr}"/> 35. Map> 36. Application> 复制代码 arcgisapiforflex开发入门(四)Darw控件的使用 arcgisapiforflex在客户端提供了强大的绘制功能,可以通过简单的调用来 完成复杂的绘制工作,达到很好的交互效果,提供完美的用户体验,感觉不出来 是在web上操作。 下面我们就一起来实现绘制功能。 首先,我们需要定义一个draw控件,使用 raw>标签来完成创建工作,如 下面的代码 rawid="drawToolbar"map="{myMap}" graphicsLayer="{myGraphicsLayer}"/> raw>标签的map属性要绑定要你需要绘制的map上。 graphicsLayer属性要 绑定到一个graphicsLayer上,所有绘制的结果都会添加到graphicsLayer上, graphicsLayer的创建可以参考第二讲的内容。 控件创建好了,我们下面就可以调用这个控件的函数来完成绘制任务。 和上一讲一样,我们创建一个controlbar来响应这些绘制的操作。 ControlBarhorizpaddingBottom="0"paddingTop="0"> Buttonlabel="点" click="drawToolbar.activate (Draw.MAPPOINT)" /> Buttonlabel="线" click="drawToolbar.activate (Draw.POLYLINE)" /> Buttonlabel="流线" click="drawToolbar.activate (Draw.FREEHAND_POLYLINE)" /> Buttonlabel="矩形" click="drawToolbar.activate (Draw.EXTENT)" /> Buttonlabel="多边形" click="drawToolbar.activate (Draw.POLYGON)" /> Buttonlabel="流多边形" click="drawToolbar.activate (Draw.FREEHAND_POLYGON)"/> Buttonlabel="结束绘制" click="drawToolbar.deactivate ()"/> ControlBar> 在button的click响应函数里,我们只需要调用draw控件的activate函数来激活 当前绘制工具就可以了。 当你不想绘制的时候,调用deactivate函数就ok了,释放掉当前选择的绘制工具 。 soeasy,enjoyit; 效果: 完整代码: 1. xmlversion="1.0"encoding="utf-8"? > 2. Application 3. xmlns: mx=" 4. xmlns: esri=" 5. pageTitle="UsingArcGISAPIforFlextoconnecttoacachedArcGIS 6.Onlineservice" 7. styleName="plain"> 8. Drawid="drawToolbar"map="{myMap}" 9.graphicsLayer="{myGraphicsLayer}"/> 10. SpatialReferenceid="sr"wkid="4326"/> 11. ControlBarhorizontalGap="0"paddingBottom="0"paddingTop="0"> 12. Buttonlabel="点" click="drawToolbar.activate 13.(Draw.MAPPOINT)" /> 14. Buttonlabel="线" click="drawToolbar.activate 15.(Draw.POLYLINE)" /> 16. Buttonlabel="流线" click="drawToolbar.activate 17.(Draw.FREEHAND_POLYLINE)" /> 18. Buttonlabel="矩形" click="drawToolbar.activate 19.(Draw.EXTENT)" /> 20. Buttonlabel="多边形" cl
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- arcgis api for flex 开发入门 开发 入门
![提示](https://static.bdocx.com/images/bang_tan.gif)