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

目的:
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
完成后的效果图:

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

 

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

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

1None.gifdot.gif
2None.gif<esri:Navigation id="navToolbar" map="{myMap}"/>
3None.gif<mx:Canvas width="446" dot.gif
4.首先先来引入按钮图标图片,在src目录下新建assets目录,然后放6张图片在这个文件夹里分别用于6个功能按钮,然后添加如下代码:
 1None.gif<mx:Script>
 2None.gif        <![CDATA[
 3None.gif
 4None.gif            //图标图片
 5None.gif            [Bindable] 
 6None.gif            [Embed(source="assets/esriZoomIn.gif")]
 7None.gif            public var ZoomIn:Class; 
 8None.gif            
 9None.gif            [Bindable] 
10None.gif            [Embed(source="assets/esriZoomOut.gif")]
11None.gif            public var ZoomOut:Class; 
12None.gif            
13None.gif            [Bindable] 
14None.gif            [Embed(source="assets/esriPan.gif")]
15None.gif            public var Pan:Class; 
16None.gif            
17None.gif            [Bindable] 
18None.gif            [Embed(source="assets/esriBack.gif")]
19None.gif            public var Back:Class; 
20None.gif            
21None.gif            [Bindable] 
22None.gif            [Embed(source="assets/esriForward.gif")]
23None.gif            public var Forward:Class;
24None.gif            
25None.gif            [Bindable] 
26None.gif            [Embed(source="assets/esriFullExt.gif")]
27None.gif            public var FullExt:Class;  
28None.gif            
29None.gif        ]]>
30None.gif    </mx:Script>
5.接下啦在Map控件的上方位置添加一个mx:ToggleButtonBar控件,这个控件就是切换按钮组工具条,它可以添加子按钮然后各个子按钮点击时能进行显示等切换。具体代码如下:
 1None.gif<mx:ToggleButtonBar id="toolbar1" creationComplete="initToolbar1()" itemClick="itemClickHandler(event)"  iconField="icon" horizontalCenter="-163" verticalCenter="-151">
 2None.gif        <mx:dataProvider>
 3None.gif        <mx:Array>
 4None.gif        <mx:Object icon="{ZoomIn}" />
 5None.gif        <mx:Object icon="{ZoomOut}" />
 6None.gif        <mx:Object icon="{Pan}" />
 7None.gif        </mx:Array>
 8None.gif        </mx:dataProvider>
 9None.gif        </mx:ToggleButtonBar>
10None.gif    <esri:Navigation id="navToolbar" map="{myMap}"/>
11None.gifdot.gifdot.gif
6.上面的代码中ToggleButtonBar控件绑定了一个mx:Array数据源,这个数据源包含3条数据,icon分别对于3张图标用来按钮图标的显示,这3张图片由上的script中定义,ToggleButtonBar控件定义了iconField属性就是用来显示图标,同时定义了creationComplete事件、itemClick事件,分别实现ToggleButtonBar的初始化选择以及子按钮点击功能,具体代码如下:
 1None.gif//初始化toolbar1选中项为Pan
 2None.gif            private function initToolbar1():void
 3ExpandedBlockStart.gifContractedBlock.gif            dot.gif{
 4InBlock.gif                toolbar1.selectedIndex = 2;
 5ExpandedBlockEnd.gif            }

 6None.gif            //ToggleButtonBar的子按钮点击事件
 7None.gif            private function itemClickHandler(event:ItemClickEvent):void
 8ExpandedBlockStart.gifContractedBlock.gif            dot.gif{
 9InBlock.gif                switch(event.index)
10ExpandedSubBlockStart.gifContractedSubBlock.gif                dot.gif{
11InBlock.gif                    case 0://选择为zoomin
12ExpandedSubBlockStart.gifContractedSubBlock.gif                    dot.gif{
13InBlock.gif                        //激活navToolbar的ZOOM_IN
14InBlock.gif                        navToolbar.activate(Navigation.ZOOM_IN);
15InBlock.gif                        break;
16ExpandedSubBlockEnd.gif                    }

17InBlock.gif                    case 1://选择为zoomout
18ExpandedSubBlockStart.gifContractedSubBlock.gif                    dot.gif{
19InBlock.gif                        //激活navToolbar的ZOOM_OUT
20InBlock.gif                        navToolbar.activate(Navigation.ZOOM_OUT);
21InBlock.gif                        break;
22ExpandedSubBlockEnd.gif                    }

23InBlock.gif                    case 2://选择为pan
24ExpandedSubBlockStart.gifContractedSubBlock.gif                    dot.gif{
25InBlock.gif                        //激活navToolbar的PAN
26InBlock.gif                        //navToolbar.activate(Navigation.PAN);
27InBlock.gif                        navToolbar.deactivate();
28InBlock.gif                        break;
29ExpandedSubBlockEnd.gif                    }

30ExpandedSubBlockEnd.gif                }

31ExpandedBlockEnd.gif            }

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

1None.gif<mx:Button icon="{Back}" click="navToolbarExtent('Prev')" enabled="{!navToolbar.isFirstExtent}"  horizontalCenter="-82" verticalCenter="-151"/>
2None.gif    <mx:Button icon="{Forward}" click="navToolbarExtent('Next')" enabled="{!navToolbar.isLastExtent}" horizontalCenter="-41" verticalCenter="-151"/>
3None.gif    <mx:Button icon="{FullExt}" click="navToolbarExtent('Full')" horizontalCenter="0" verticalCenter="-151"/>
8.上面代码中添加了3个button,然后设置的小图标、click事件、enabled属性,enabled属性属性是针对前一视图和后一视图功能按钮了。click事件代码如下:
 1None.gifprivate function navToolbarExtent(type:String):void
 2ExpandedBlockStart.gifContractedBlock.gif            dot.gif{
 3InBlock.gif                if(type=="Prev")//前一视图
 4ExpandedSubBlockStart.gifContractedSubBlock.gif                dot.gif{
 5InBlock.gif                    navToolbar.zoomToPrevExtent();
 6ExpandedSubBlockEnd.gif                }

 7InBlock.gif                else if(type=="Next")//后一视图
 8ExpandedSubBlockStart.gifContractedSubBlock.gif                dot.gif{
 9InBlock.gif                    navToolbar.zoomToNextExtent();
10ExpandedSubBlockEnd.gif                }

11InBlock.gif                else if(type=="Full")//
12ExpandedSubBlockStart.gifContractedSubBlock.gif                dot.gif{
13InBlock.gif                    navToolbar.zoomToFullExtent();
14ExpandedSubBlockEnd.gif                }

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

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

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/304050.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

mysql使用索引下推的好处_mysql的索引下推理解和实践

对于mysql建表稍有点经验的开发人员都会为后续的where查询条件提前考虑创建索引。这里说的是在使用索引查询时有关索引下推的有关知识点。综合前人的经验结果&#xff1a;索引下推是数据库检索数据过程中为减少回表次数而做的优化。判断是否需要回表的是由mysql存储引擎控制&am…

物理学家史蒂夫·霍金逝世,享年76岁(附图文回顾他的一生)

3月14日消息&#xff0c;据英国天空新闻等多家媒体报道&#xff0c;史蒂芬威廉霍金&#xff08;Stephen William Hawking&#xff09;去世&#xff0c;享年76岁&#xff08;1942年1月8日&#xff0d;2018年3月14日&#xff09;。这一消息已经得到霍金家人确认。霍金的三个孩子露…

mysql数据库熟悉表空间数据文件_Oracle表空间和数据文件

Oracle创建表空间 1.创建普通表空间create tablespace oracle_tablespacedatafileOracle创建表空间1.创建普通表空间create tablespace oracle_tablespacedatafile /home/oracle/oradata/orcl/oracle_tablespace.dbfsize 100mautoextend on next 10M maxsize 200Mextent manage…

CSRobot gen:mysql,pg-c#类型映射

下面的数据库类型和c#类型的映射关系&#xff0c;只是我个人的想法&#xff0c;应该不同的业务场景对应可能不一样&#xff0c;比如json&#xff0c;xml&#xff0c;line&#xff0c;polygon结构化的数据&#xff0c;如果在C#中有对应的实体类&#xff0c;可以很友好的转换&…

HTTP header中的 Cache-control

网页的缓存是由HTTP消息头中的“Cache-control”来控制的&#xff0c;常见的取值有private、no-cache、max-age、must-revalidate等&#xff0c;默认为private。其作用根据不同的重新浏览方式分为以下几种情况&#xff1a;&#xff08;1&#xff09; 打开新窗口如果指定cache-c…

2018年最值得关注的15大技术趋势,区块链将得到更广泛的应用

通常情况下&#xff0c;技术趋势是很难准确预测的&#xff0c;因为预测未来本身就极其困难。但是我们还是可以从过往的一些显著数据指标来推测新的一年里科技行业的发展趋势。2018&#xff0c;有哪些值得关注的技术趋势&#xff1f;01 区块链将得到更广泛的应用

mtu值修改

ping -f -l 1472 192.168.0.1转载于:https://blog.51cto.com/xiaohe027/382282

Visual Studio项目引用出现感叹号怎么办?

原因可能有多种&#xff1a;第一种问题&#xff1a;解决方式1&#xff1a;今天换了台电脑&#xff0c;就把笔记本上的项目拷贝到了台式机上&#xff0c; 但是我没有拷贝解决方案整个文件夹&#xff0c;因为其中项目太多了&#xff0c;我就把其中一个项目的文件夹直接拷贝到电脑…

java打包拆包_[Java] Java 打包成jar包 和 解压jar包

解压jar包jar xf xxx.jar打包成jar包方法一&#xff1a;通过jar命令jar命令的用法&#xff1a;下面是jar命令的帮助说明&#xff1a;用法&#xff1a;jar {ctxui}[vfm0Me] [jar-file] [manifest-file] [entry-point] [-C dir] files ...选项包括&#xff1a;-c 创建新的归档文…

离职总结:大公司与小公司的个人体验

离职在即&#xff0c;在准备下一个工作环境的这段时间&#xff0c;忽然有一阵感慨&#xff0c;工作近五年&#xff0c;在这段时间中&#xff0c;体验了两种不同的工作环境&#xff1a;一个规模很大&#xff0c;各种开发体系完备的大公司&#xff0c;另一个&#xff08;也是目前…

NDK/JNI01--NDK下载配置

1、NDK下载我的开发环境是Ubuntu9.04 , 所以下载的NDK为android-ndk-r4-linux-x86.zip 2、NDK解压及配置2-1、解压zip文件unzip android-ndk-r4-linux-x86.zip 2-2、配置NDKROOTvim /etc/profile适当位置添加&#xff1a;export NDKROOT/usr/local/android-sdk-linux_86/androi…

java导入导出excel_Java导入导出Excel工具 easyexcel

Java导入导出Excel工具 easyexcel做Java开发的同学&#xff0c;尤其是做管理后台的同学绝大多数都会接触到报表系统&#xff0c;这时候就少不了Excel的导入和导出了。Java解析生成Excel比较有名的有Apache POI &#xff0c;但是POI存在缺陷就是所有的数据的解析都是在内存中进…

浅谈.Net Core后端单元测试

1. 前言单元测试一直都是"好处大家都知道很多,但是因为种种原因没有实施起来"的一个老大难问题。具体是否应该落地单元测试&#xff0c;以及落地的程度, 每个项目都有自己的情况。本篇为个人认为"如何更好地写单元测试", 即更加偏向实践向中夹杂一些理论的…

图论的各种基本算法

本篇主要涉及到图论的基本算法&#xff0c;不包含有关最大流的内容。图论的大部分算法都是由性质或推论得出来的&#xff0c;想朴素想出来确实不容易。二分图(Is-Bipartite)一个图的所有顶点可以划分成两个子集&#xff0c;使所有的边的入度和出度顶点分别在这两个子集中。这个…

PowerTip of the Day from powershell.com上周汇总(六)

限制String类型参数的长度 Limiting String Input Length http://powershell.com/cs/blogs/tips/archive/2010/08/23/limiting-string-input-length.aspx function Get-FileName {param([ValidateLength(1,8)][String]$FileName)"Your filename {0} is {1} chars long&quo…

java实现权限_Java实现常用权限控制算法

一种常用的权限控制算法的实现,参考LINUX/UNIX权限编码这里笔者介绍一种很常用&#xff0c;也比较专业的权限控制思路。要换成其他的语言主&#xff0c;自己转一下就可以了。这里用java语言描述&#xff0c;其实都差不多的。为了方便起见&#xff0c;我们这里定义a^b为&#xf…

社区 正式发布了跨平台的 CoreWCF 0.1.0 GA

CoreWCF 项目在2021.2.19 正式发布了0.1.0 GA版本:https://github.com/CoreWCF/CoreWCF/releases/tag/v0.1.0 &#xff0c;这个版本号虽然是0.1&#xff0c;但是它是可以投入生产的版本&#xff0c;而且是跨平台的&#xff0c;支持LInux部署WCF&#xff0c;当前仅支持http 和 n…

Prim 算法及其高效实现

转自&#xff1a;ivy-endhttp://www.ivy-end.com/archives/943背景最小生成树&#xff08;Minimum Spanning Trees&#xff09;&#xff0c;简称MST。是图论中一个非常重要的概念。解决这个问题有两种算法&#xff0c;今天暂且先来讨论一下Prim Algorithm。不做特别说明&#x…

Silverlight实例教程 - Validation数据验证开篇

说起来Validation验证功能&#xff0c;相信大家都不陌生&#xff0c;在应用中&#xff0c;当需要用户交互输入时&#xff0c;开发人员都会加入一些验证代码&#xff0c;这样可以有效的避免应用异常出现&#xff0c;也可以使应用的错误提示信息清晰明了的显示在客户端&#xff0…

c语言 java 性能 测试_这个蓝桥杯系统的题,用c语言去评测是满分,改为Java说运行错误是0分,但是我查看输入输出,至少第...

这个蓝桥杯系统的题&#xff0c;用c语言去评测是满分&#xff0c;改为Java说运行错误是0分&#xff0c;但是我查看输入输出&#xff0c;至少第一个是对的啊提交序号1269960作者彭云成提交时间02-0507:49:27评测结果运行错误得分...这个蓝桥杯系统的题&#xff0c;用c语言去评测…