目的:
1.ArcGIS API for Flex实现Toolbar功能,包括ZoomIn、ZoomOut、Pan、PrevExtent、NextExtent、FullExtent功能
准备工作:
1.这次地图数据就用Esri提供的http://server.arcgisonline.com/ArcGIS/rest/services/ESRI_StreetMap_World_2D/MapServer
完成后的效果图:

开始:
1.启动Flex Builder3新建工程以及引入ArcGIS API for Flex library的开发包,这个过程前面几篇都讲过了这里就不啰嗦了。
2.新建ToolBar.mxml页面,然后在页面上添加Map控件以及设置ArcGISTiledMapServiceLayer,具体代码如下:

1<?xml version="1.0" encoding="utf-8"?>2<mx:Applicationxmlns:mx="http://www.adobe.com/2006/mxml"layout="absolute"backgroundColor="white"xmlns:esri="http://www.esri.com/2008/ags">3<mx:Canvaswidth="446"height="300"borderStyle="solid"borderThickness="3"borderColor="#3691D1"horizontalCenter="0"verticalCenter="19">4<esri:Mapid="myMap"width="100%"height="100%"panArrowsVisible="true"logoVisible="false">5<esri:ArcGISTiledMapServiceLayerurl="http://server.arcgisonline.com/ArcGIS/rest/services/ESRI_StreetMap_World_2D/MapServer"/>6</esri:Map>7</mx:Canvas>8</mx:Application>9

3.接下来要实现地图浏览控制就需要添加esri:Navigation控件,这个控件提供了放大、缩小、漫游、前一视图、后一视图等功能方法,在mx:Canvas标签前面添加如下代码:

12<esri:Navigationid="navToolbar"map="{myMap}"/>3<mx:Canvaswidth="446"

4.首先先来引入按钮图标图片,在src目录下新建assets目录,然后放6张图片在这个文件夹里分别用于6个功能按钮,然后添加如下代码:

1<mx:Script>2<![CDATA[34            //图标图片5            [Bindable]6            [Embed(source="assets/esriZoomIn.gif")]7            public var ZoomIn:Class;89            [Bindable]10            [Embed(source="assets/esriZoomOut.gif")]11            public var ZoomOut:Class;1213            [Bindable]14            [Embed(source="assets/esriPan.gif")]15            public var Pan:Class;1617            [Bindable]18            [Embed(source="assets/esriBack.gif")]19            public var Back:Class;2021            [Bindable]22            [Embed(source="assets/esriForward.gif")]23            public var Forward:Class;2425            [Bindable]26            [Embed(source="assets/esriFullExt.gif")]27            public var FullExt:Class;2829]]>30</mx:Script>

5.接下啦在Map控件的上方位置添加一个mx:ToggleButtonBar控件,这个控件就是切换按钮组工具条,它可以添加子按钮然后各个子按钮点击时能进行显示等切换。具体代码如下:

1<mx:ToggleButtonBarid="toolbar1"creationComplete="initToolbar1()"itemClick="itemClickHandler(event)"iconField="icon"horizontalCenter="-163"verticalCenter="-151">2<mx:dataProvider>3<mx:Array>4<mx:Objecticon="{ZoomIn}"/>5<mx:Objecticon="{ZoomOut}"/>6<mx:Objecticon="{Pan}"/>7</mx:Array>8</mx:dataProvider>9</mx:ToggleButtonBar>10<esri:Navigationid="navToolbar"map="{myMap}"/>11

6.上面的代码中ToggleButtonBar控件绑定了一个mx:Array数据源,这个数据源包含3条数据,icon分别对于3张图标用来按钮图标的显示,这3张图片由上的script中定义,ToggleButtonBar控件定义了iconField属性就是用来显示图标,同时定义了creationComplete事件、itemClick事件,分别实现ToggleButtonBar的初始化选择以及子按钮点击功能,具体代码如下:

1//初始化toolbar1选中项为Pan2privatefunctioninitToolbar1():void3{4                toolbar1.selectedIndex=2;5            }6//ToggleButtonBar的子按钮点击事件7privatefunctionitemClickHandler(event:ItemClickEvent):void8{9switch(event.index)10{11case0://选择为zoomin12{13//激活navToolbar的ZOOM_IN14navToolbar.activate(Navigation.ZOOM_IN);15break;16                    }17case1://选择为zoomout18{19//激活navToolbar的ZOOM_OUT20navToolbar.activate(Navigation.ZOOM_OUT);21break;22                    }23case2://选择为pan24{25//激活navToolbar的PAN26//navToolbar.activate(Navigation.PAN);27navToolbar.deactivate();28break;29                    }30                }31            }

7.接下在在页面上在添加3个按钮用来显示前一视图、后一视图、全图显示,具体代码如下:

1<mx:Buttonicon="{Back}"click="navToolbarExtent('Prev')"enabled="{!navToolbar.isFirstExtent}"horizontalCenter="-82"verticalCenter="-151"/>2<mx:Buttonicon="{Forward}"click="navToolbarExtent('Next')"enabled="{!navToolbar.isLastExtent}"horizontalCenter="-41"verticalCenter="-151"/>3<mx:Buttonicon="{FullExt}"click="navToolbarExtent('Full')"horizontalCenter="0"verticalCenter="-151"/>

8.上面代码中添加了3个button,然后设置的小图标、click事件、enabled属性,enabled属性属性是针对前一视图和后一视图功能按钮了。click事件代码如下:

1privatefunctionnavToolbarExtent(type:String):void2{3if(type=="Prev")//前一视图4{5                    navToolbar.zoomToPrevExtent();6                }7elseif(type=="Next")//后一视图8{9                    navToolbar.zoomToNextExtent();10                }11elseif(type=="Full")//12{13                    navToolbar.zoomToFullExtent();14                }15            }

9.这样就完成了toolbar的功能,可以运行测试效果。

转载于:https://www.cnblogs.com/xranycall/archive/2010/08/18/1802600.html

[转]ArcGIS.Server.9.3和ArcGIS API for Flex实现Toolbar功能(四)相关推荐

  1. ArcGIS.Server.9.3和ArcGIS API for JavaScript实现Identify功能(六)

    目的: 1.ArcGIS.Server.9.3和ArcGIS API for JavaScript实现Identify功能,鼠标点击后获取被点击对象的然后以infoWindow的方式显示点击对象的属性 ...

  2. [转]ArcGIS.Server.9.3和ArcGIS API for Flex实现Query查询定位中心功能(七)

    目的: 1.ArcGIS API for Flex实现Query查询定位中心功能,进行属性查图的功能,选择图层然后输入查询语句进行查询把查到的地理元素高亮显示同时在右边的Grid中显示查到的数据,然后 ...

  3. ArcGIS.Server.9.3和ArcGIS API for Flex的GeometryService和buffer分析(十)

    目的: 1.ArcGIS API for Flex用GeometryService实现点.线.面的buffer分析.准备工作: 1.在ArcGIS.Server.9.3发布一个叫USA的Map Ser ...

  4. ArcGIS Server Java 9.3 REST API的中文查询问题的解决方案

    [2009.2.18补注]这个问题在SP1 for Linux中修复,SP1 for Windows下问题更加严重,如果打了SP1 for Windows,还想使用REST服务,就必须使用Linux或 ...

  5. 一、ArcGIS Server篇:利用ArcGIS Server发布动态地图服务

    写在前面的话:本篇博客参考 在WebGIS开发过程中,我们所需要的数据不仅仅来自于ArcGIS online,有时候我们需要发布自己的数据服务,在本篇博客中主要说明一下如何利用ArcGIS Serve ...

  6. 关于ARCGIS SERVER 9.3的ArcGIS Server Manager出现“/”应用程序中的服务器错误

    "/ArcGIS/Manager"应用程序中的服务器错误. ------------------------------------------------------------ ...

  7. 天津政府应急系统之GIS一张图(arcgis api for flex)讲解(四)地图导航控件模块...

    config.xml文件的配置如下: <widget left="10" top="50" config="widgets/Navigation ...

  8. C# 调用ArcGIS server admin api

    一.AGS server admin api 介绍 1.1什么是admin api AGS Server Admin api 官方的称呼是 AGS Server administrator api, ...

  9. 《精通ArcGIS Server 应用与开发》——第 1 章 ArcGIS 10简介1.1 ArcGIS 10体系结构1...

    本节书摘来自异步社区<精通ArcGIS Server 应用与开发>一书中的第1章,第1.1节,作者: 何正国 , 杜娟 , 毛海亚 更多章节内容可以访问云栖社区"异步社区&quo ...

最新文章

  1. boot spring 没有父子容器_Spring父子容器问题
  2. Keil代码整体偏移和查找功能
  3. Android开发--用户定位服务--UserLocation
  4. pandas算加权平均值_4000 字详解TCP超时与重传,看完没收获算我输
  5. 六种方法,做一名更好的开发者
  6. jzoj4252-QYQ的图【dfs】
  7. 【转】第00课导读:生活中的设计模式——启程之前,请不要错过我
  8. 基于Mac环境搭建以太坊私有区块链进行挖矿模拟
  9. springbatch读取文件_通过例子讲解Spring Batch入门,优秀的批处理框架
  10. Clojure 学习入门(6)- 函数定义
  11. python情感分析模型_Python有趣|中文文本情感分析
  12. IMDB-WIKI人脸属性数据集解析,dob matlab序列号转为出生日期
  13. 商业 GIS 软件:专有地图软件列表
  14. 控制算法(二)—— 模糊控制算法
  15. 2021年PAT乙级春季真题
  16. 公有云-主流公有云介绍
  17. 基于HBase的大数据存储在京东的应用场景
  18. python fields函数_Python函数详解
  19. Axure RP 9母版使用说明【教程二】
  20. 英特尔深度相机- Python 包装器的示例代码

热门文章

  1. php 自动创建目录
  2. Objective-C征途:Hello Objective-C
  3. linux禁止root用户直接登录sshd并修改默认端口
  4. 初学Vue.js--数据绑定与文本插值
  5. js面向对象与PHP面向对象总结
  6. Tomcat 发布项目 conf/Catalina/localhost 配置 及数据源配置
  7. 核心编程之十一章的11-9
  8. jquery对json的各种遍历
  9. Atcoder 084D - Small Multiple(最短路径+思维)
  10. SpringMVC4零配置--web.xml