arcgis api for flex 開發入門(三)地圖浏覽控件的使用
地圖浏覽包括放大,縮小,漫遊,複位,上級視窗,下級視窗等
在arcgis api for flex中,esri 已經封裝好了一個地圖浏覽,我們在程式中可
以直接使用,隻需要幾十行代碼,就可以完成複雜的任務。
首先在上一講的基礎上建立一個Navigation 控件。使用<esri:Navigation>标簽
就可以了。
<esri:Navigation id="navToolbar" map="{myMap}"/>
将<esri:Navigation>标簽的map屬性設定為你要控制的map,也就是說把控件綁到
map上。
然後我們建立一個工具條,用來做對map 浏覽的控制
<mx:ControlBar horiz paddingBottom="0" paddingTop="0">
<mx:Button label="放大" click="navToolbar.activate
(Navigation.ZOOM_IN)" />
<mx:Button label="縮小" click="navToolbar.activate
(Navigation.ZOOM_OUT)" />
<mx:Button label="漫遊" click="navToolbar.activate
(Navigation.PAN)" />
<mx:Button label="上級視窗" click="navToolbar.zoomToPrevExtent
()" enabled="{!navToolbar.isFirstExtent}"/>
<mx:Button label="下級視窗"
click="navToolbar.zoomToNextExtent()" enabled="{!
navToolbar.isLastExtent}"/>
<mx:Button label="複位" click="navToolbar.zoomToFullExtent()"/>
button 的click 消息響應函數直接調用<esri:Navigation>控件的函數就可以了
。放大,縮小,漫遊調用的都是激活工具的函數。剩餘3個button的響應函數分别
調用<esri:Navigation>控件zoomToPrevExtent,zoomToNextExtent,
zoomToFullExtent函數就ok了。
<?xml version="1.0" encoding="utf-8"?>
<mx:Application
xmlns:mx="http://www.adobe.com/2006/mxml"
xmlns:esri="http://www.esri.com/2008/ags"
pageTitle="Using ArcGIS API for Flex to connect to a cached ArcGIS
Online service"
styleName="plain">
<esri:Navigation id="navToolbar" map="{myMap}"/>
<esri:SpatialReference id="sr" wkid="4326"/>
<mx:ControlBar horizontalGap="0" paddingBottom="0" paddingTop="0">
<mx:Button label="放大" click="navToolbar.activate
(Navigation.ZOOM_IN)" />
<mx:Button label="縮小" click="navToolbar.activate
(Navigation.ZOOM_OUT)" />
<mx:Button label="漫遊" click="navToolbar.activate
(Navigation.PAN)" />
<mx:Button label="上級視窗" click="navToolbar.zoomToPrevExtent
()" enabled="{!navToolbar.isFirstExtent}"/>
<mx:Button label="下級視窗"
click="navToolbar.zoomToNextExtent()" enabled="{!
navToolbar.isLastExtent}"/>
<mx:Button label="複位" click="navToolbar.zoomToFullExtent()"/>
</mx:ControlBar>
<esri:Map crosshairVisible="true" id = "myMap">
<esri:extent>
<esri:Extent id = "esriMapExtent" xmin="116"
ymin="39.5" xmax="116.5" ymax="40.5"/>
</esri:extent>
<esri:ArcGISTiledMapServiceLayer
url="http://server.arcgisonline.com/ArcGIS/rest/services/ESRI_StreetMap
_World_2D/MapServer" />
<esri:GraphicsLayer id="myGraphicsLayer"
spatialReference="{sr}"/>
</esri:Map>
</mx:Application>