Fork me on GitHub Fork me on Gitee

FLEX AS3.0 百度地图

window xp系统 FlashBuilder4.5

先上百度下载flash api 下载地址http://developer.baidu.com/map/flash.htm

新建一个flex项目

右键项目→属性→Flex构件路径   导入BMap.swc(下载的flash api)

 

 

map1.mxml

  1 <?xml version="1.0" encoding="utf-8"?>
  2 <s:WindowedApplication xmlns:fx="http://ns.adobe.com/mxml/2009" 
  3                        xmlns:s="library://ns.adobe.com/flex/spark" 
  4                        xmlns:mx="library://ns.adobe.com/flex/mx"
  5                        xmlns:maps="com.earthplayer.maps.*"
  6                        creationComplete="init()"
  7                        width="1200"
  8                        height="700"
  9                        x="0" y="0"
 10                        >
 11     <fx:Declarations>
 12         <!-- Place non-visual elements (e.g., services, value objects) here -->
 13         <mx:HTTPService id="myService" url="area.xml" />
 14     </fx:Declarations>
 15     <fx:Script>
 16         <![CDATA[
 17             import baidu.map.basetype.LngLat;
 18             import baidu.map.basetype.Size;
 19             import baidu.map.control.base.Navigator;
 20             import baidu.map.control.base.Overview;
 21             import baidu.map.control.base.Ruler;
 22             import baidu.map.control.base.Scaler;
 23             import baidu.map.core.Map;
 24             import baidu.map.layer.Layer;
 25             import baidu.map.layer.RasterLayer;
 26             import baidu.map.overlay.InfoWindow;
 27             import baidu.map.overlay.Label;
 28             import baidu.map.overlay.Marker;
 29             import baidu.map.overlay.geometry.Circle;
 30             import baidu.map.overlay.geometry.Polygon;
 31             import baidu.map.overlay.geometry.Polyline;
 32             import baidu.map.symbol.CircleSymbol;
 33             import baidu.map.symbol.PolygonSymbol;
 34             import baidu.map.symbol.PolylineSymbol;
 35             
 36             import mx.collections.ArrayCollection;
 37             import mx.core.UIComponent;
 38             import mx.events.FlexEvent;
 39             import mx.messaging.channels.StreamingAMFChannel;
 40             
 41             import spark.events.IndexChangeEvent;
 42             
 43             [Bindable]
 44             public var store_st:ArrayCollection = new ArrayCollection(
 45                 [   
 46                     {status:"玫瑰园"},
 47                     {status:"北京"}, 
 48                     {status:"上海"}, 
 49                     {status:"广州"},
 50                     {status:"深圳"},
 51                     {status:"佛山"},
 52                     {status:"南宁"},
 53                     {status:"南京"},
 54                     {status:"海口"},
 55                     {status:"哈尔滨"},
 56                     {status:"吉林"},
 57                     {status:"长春"},
 58                     {status:"天津"},
 59                     {status:"石家庄"},
 60                     {status:"郑州"},
 61                     {status:"西安"},
 62                     {status:"长沙"},
 63                     {status:"武汉"},
 64                     {status:"成都"},
 65                     {status:"香港"},
 66                     {status:"杭州"},
 67                 ]               
 68             );
 69             
 70             
 71             public function init():void{
 72                 config();
 73             }
 74             
 75             private function config():void{
 76                 const request:URLRequest = new URLRequest("area.xml");
 77                 const loader:URLLoader = new URLLoader(request);
 78                 loader.addEventListener(Event.COMPLETE, loader_completeHandler);
 79                 function loader_completeHandler(event:Event):void{
 80                     var configXML:XML = XML(loader.data);
 81                     for each (var i:XML in configXML.store_name){
 82                         if (store_cb.text==i.@id.toString()){
 83                             var x:Number=i.store_x.toString();
 84                             var y:Number=i.store_y.toString();                        
 85                         }
 86                     }
 87                     map(x,y);
 88                 }                
 89             }
 90             
 91             public function map(x:Number,y:Number):void{
 92                 // 创建一个大小为600*400的Map对象
 93                 var map:Map = new Map(new Size(Cs.width, Cs.height))
 94                 var uc:UIComponent = new UIComponent(); 
 95                 uc.addChild(map);
 96                 Cs.addChild(uc);                    //addElement(uc); 
 97                                                     //Gp.addElement(uc);  如果是Group容器就用这个
 98                 
 99                 // 初始化Map的中心点和显示级别
100                 map.centerAndZoom(new LngLat(x,y), 12);
101                 
102                 // 添加底图
103                 var layer:Layer = new RasterLayer("BaiduMap", map);
104                 map.addLayer(layer);
105                 
106                 //添加定位标志
107                 var marker:Marker = new Marker();
108                 marker.position = new LngLat(x,y);
109                 map.addOverlay(marker);
110                 
111                 // 添加Overview    缩略图控件        
112                 var overview:Overview = new Overview(map);
113                 map.addControl(overview);
114                 
115                 // 添加Navigator平移控件
116                 var nav:Navigator = new Navigator(map);
117                 map.addControl(nav);
118                 
119                 // 添加Scaler    缩放控件        
120                 var scaler:Scaler = new Scaler(map);
121                 map.addControl(scaler);
122                 
123                 // 添加Ruler        比例尺控件    
124                 var ruler:Ruler = new Ruler(map);
125                 map.addControl(ruler);
126                 
127                 //添加文本标签
128                 var label:baidu.map.overlay.Label = new baidu.map.overlay.Label(store_cb.selectedLabel);
129                 label.position = new LngLat(x,y+0.02);
130                 label.contentStyle = new TextFormat("宋体", 14, 0xff0000, true);
131                 map.addOverlay(label);
132 
133             }
134             
135             public function refresh():void{
136                 store_cb.selectedIndex = 0;
137                 map(113.061539,22.885359);                
138             }
139             
140         ]]>
141     </fx:Script>
142     <s:layout>
143         <s:VerticalLayout paddingLeft="5" paddingRight="5" paddingTop="5" paddingBottom="5"/>
144     </s:layout>
145     
146     <s:VGroup width="100%" height="100%">
147         <s:HGroup width="100%" horizontalAlign="right" verticalAlign="middle">
148             <s:Spacer width="100%"/>
149             <s:Label text="门店:"/>
150             <mx:ComboBox id="store_cb" dataProvider="{store_st}" labelField="status" selectedIndex="0" editable="true"/>
151             <s:Button id="sreach_btn" label="搜索" click="init()"/>
152             <s:Button id="refresh_btn" label="刷新" click="refresh()"/>
153         </s:HGroup>
154         
155         <mx:Canvas id="Cs" borderStyle="solid" width="100%" height="100%">            
156         </mx:Canvas>
157     </s:VGroup>
158 </s:WindowedApplication>

 

area.xml

 1 <?xml version="1.0" encoding="UTF-8"?>
 2 <Store>
 3     <store_name id="玫瑰园">
 4         <store_x>113.061539</store_x>
 5         <store_y>22.885359</store_y>        
 6     </store_name>
 7         <store_name id="北京">
 8         <store_x>116.395645</store_x>
 9         <store_y>39.929986</store_y>        
10     </store_name>
11         <store_name id="上海">
12         <store_x>121.487899</store_x>
13         <store_y>31.249162</store_y>        
14     </store_name>
15         <store_name id="广州">
16         <store_x>113.30765</store_x>
17         <store_y>23.120049</store_y>        
18     </store_name>
19 </Store>

结果:

posted @ 2013-11-02 12:00  伴途の永远  阅读(608)  评论(0编辑  收藏  举报