f
代码如下:
<?xml version="1.0" encoding="utf-8"?>
<mx:Application xmlns:mx="http://www.adobe.com/2006/mxml"
xmlns:ags="com.esri.ags.*"
xmlns:esri="http://www.esri.com/2008/ags"
xmlns:window="com.easy.window.*"
paddingLeft="10" paddingRight="10" paddingBottom="10"
layout="absolute"
initialize="loadIntParment();"
>
<mx:Script>
<![CDATA[
import mx.events.ItemClickEvent;
import mx.rpc.events.FaultEvent;
import mx.rpc.events.ResultEvent;
import mx.rpc.http.HTTPService;
import mx.controls.Alert;
import com.esri.ags.Map;
import com.esri.ags.events.MapEvent;
import com.esri.ags.toolbars.Draw;
import com.esri.ags.events.DrawEvent;
import com.esri.ags.layers.ArcGISTiledMapServiceLayer;
import com.esri.ags.layers.ArcGISDynamicMapServiceLayer;
var title:String;
var subtitle:String;
var logo:String;
var configMap:Array = [];
private var map:Map;
private var drawToolbar:Draw;
//初始化参数
public function loadIntParment():void
{
configLoad();
}
//加载配置文件
private function configLoad():void
{
var configService:HTTPService = new HTTPService();
configService.url = "config.xml";
configService.resultFormat = "e4x";
configService.addEventListener(ResultEvent.RESULT, configResult);
configService.addEventListener(FaultEvent.FAULT, configFault);
configService.send();
}
//加载失败
private function configFault(event:mx.rpc.events.FaultEvent):void
{
var sInfo:String = "Error: ";
sInfo += "Event Target: " + event.target + "/n/n";
sInfo += "Event Type: " + event.type + "/n/n";
sInfo += "Fault Code: " + event.fault.faultCode + "/n/n";
sInfo += "Fault Info: " + event.fault.faultString;
Alert.show(sInfo);
}
//加载结果
private function configResult(event:ResultEvent):void
{
//转换XML文件对象
var configXML:XML = event.result as XML;
title = configXML..title;
subtitle = configXML..subtitle;
logo = configXML..logo;
var basemapList:XMLList = configXML.map.basemaps.mapservice;
for (var i = 0; i < basemapList.length(); i++)
{
var msLabel:String = basemapList[i].@label;
var msType:String = basemapList[i].@type;
var msVisible:Boolean = true;
if (basemapList[i].@visible == "false")
msVisible = false;
var msAlpha:Number = 1;
if (!isNaN(basemapList[i].@alpha))
msAlpha = Number(basemapList[i].@alpha);
var msURL:String = basemapList[i];
var mapservice:Object =
{
label: msLabel,
type: msType,
visible: msVisible,
alpha: msAlpha,
url: msURL
}
configMap.push(mapservice);
}
//开始加载地图
LaadMap();
//加载界面
LaadPage();
}
//加载地图
private function LaadMap():void
{
map = new Map();
map.id = "map";
map.setStyle("backgroundColor","#FFFAF0");
map.zoomSliderVisible = false;
this.addChild(map);
for (var i = 0; i < configMap.length; i++)
{
var label:String = configMap[i].label;
var type:String = configMap[i].type;
var url:String = configMap[i].url;
var visible:Boolean = configMap[i].visible;
var alpha:Number = Number(configMap[i].alpha);
switch (type.toLowerCase())
{
case "tiled":
{
var tiledlayer:ArcGISTiledMapServiceLayer = new ArcGISTiledMapServiceLayer(url);
tiledlayer.id = label;
tiledlayer.visible = visible;
tiledlayer.alpha = alpha;
map.addLayer(tiledlayer);
break;
}
case "dynamic":
{
var dynlayer:ArcGISDynamicMapServiceLayer = new ArcGISDynamicMapServiceLayer(url);
dynlayer.id = label;
dynlayer.visible = visible;
dynlayer.alpha = alpha;
map.addLayer(dynlayer);
break;
}
}
}
map.panArrowsVisible = false;
map.zoomSliderVisible = true;
map.logoVisible = false;
}
//加载页面
private function LaadPage(){
}
//切换菜单
private function clickHandler(event:ItemClickEvent):void {
//关闭所有窗口
this.toc.mapContent.visible = false;
this.toc.mapContent.height = 0;
this.toc.mapContent2.visible = false;
this.toc.mapContent2.height = 0;
this.toc.mapContent3.visible = false;
this.toc.mapContent3.height = 0;
this.toc.mapContent4.visible = false;
this.toc.mapContent4.height = 0;
if(event.index == 0){
this.toc.visible = true;
this.toc.mapContent.height = 230;
this.toc.mapContent.viewStack.selectedIndex = 1;
this.toc.mapContent.visible = true;
}
if(event.index == 1){
this.toc.visible = true;
this.toc.mapContent2.height = 230;
this.toc.mapContent2.viewStack.selectedIndex = 1;
this.toc.mapContent2.visible = true;
}
if(event.index == 2){
this.toc.visible = true;
this.toc.mapContent3.height = 230;
this.toc.mapContent3.viewStack.selectedIndex = 1;
this.toc.mapContent3.visible = true;
}
if(event.index == 3){
this.toc.visible = true;
this.toc.mapContent4.height = 230;
this.toc.mapContent4.viewStack.selectedIndex = 1;
this.toc.mapContent4.visible = true;
}
}
]]>
</mx:Script>
<ags:Map id="map" x="0" y="0" width="100%" height="100%" left="0" top="0" backgroundColor="#FFFAF0">
<esri:ArcGISDynamicMapServiceLayer
id="myDynamicService"
url="http://localhost:8399/arcgis/rest/services/cl/MapServer"
load="myDynamicService.defaultVisibleLayers()"
/>
</ags:Map>
<!-- logo -->
<mx:Canvas y="10" width="90%" height="80" left="20" right="20" borderStyle="solid" cornerRadius="10" borderThickness="3" themeColor="#4189B6" backgroundAlpha="1.0" backgroundColor="#B60606" alpha="0.51">
<mx:Image source="@Embed('com/resoure/images/hui.png')" x="10" y="11"/>
<mx:Label text="消防应急救援GIS系统" width="450" fontFamily="Georgia" fontSize="22" color="#F7F9F9" fontWeight="bold" x="66" y="10"/>
<mx:HRule x="70" y="40" width="252" height="1" strokeColor="#FF0000" strokeWidth="20"/> <!-- 红线 -->
<mx:Label x="69" y="41" text="武汉达梦数据库有限公司消防应急事业部" color="#34EAEC" fontSize="14"/>
<mx:ToggleButtonBar right="40" y="25" fontSize="12" itemClick="clickHandler(event);">
<mx:dataProvider>
<mx:Array>
<mx:String>功能菜单1</mx:String>
<mx:String>功能菜单2</mx:String>
<mx:String>功能菜单3</mx:String>
<mx:String>功能菜单4</mx:String>
</mx:Array>
</mx:dataProvider>
</mx:ToggleButtonBar>
</mx:Canvas>
<!-- 工具条 -->
<mx:ToggleButtonBar toggleOnClick="true" right="20" top="100" fontSize="12">
<mx:dataProvider>
<mx:Object label="放大>
<mx:Object label="缩小>
<mx:Object label="后退>
<mx:Object label="前进>
<mx:Object label="平面图>
<mx:Object label="影像图>
<mx:Object label="三维图>
</mx:dataProvider>
</mx:ToggleButtonBar>
<!-- 操作区 -->
<window:BodyControl id="toc" right="20" showEffect="{showTOC}" hideEffect="{hideTOC}" visible="true"/>
<!-- 左出右进效果 -->
<mx:WipeLeft id="showTOC" />
<mx:WipeRight id="hideTOC" />
<mx:Image id="highlight" source="@Embed(source='com/resoure/swf/highlight.swf')" visible="true"/>
</mx:Application>