1 package 2 { 3 import baidu.map.basetype.LngLat; 4 import baidu.map.basetype.Size; 5 import baidu.map.config.Anchor; 6 import baidu.map.control.base.Navigator; 7 import baidu.map.control.base.Overview; 8 import baidu.map.control.base.Ruler; 9 import baidu.map.control.base.Scaler; 10 import baidu.map.core.Map; 11 import baidu.map.event.MapEvent; 12 import baidu.map.layer.Layer; 13 import baidu.map.layer.RasterLayer; 14 15 import com.controls.TempMapControl; 16 17 import flash.display.Sprite; 18 import flash.display.StageAlign; 19 import flash.display.StageScaleMode; 20 21 /************************************************************************************* 22 * Flash API为开发者提供了如下控件: 23 * Control:控件的抽象基类,所有控件均继承此类的方法、属性。通过此类您可实现自定义控件。 24 * Navigator:地图平移控件,默认位于地图左上方,它包含控制地图平移的功能。 25 * Scaler:地图缩放控件,默认位于地图左上方,它包含控制地图缩放的功能。 26 * Overview:地图缩略图控件,默认位于地图右下方,是一个可折叠的缩略地图。 27 * Ruler:地图比例尺控件,默认位于地图左下方,显示地图的比例关系。 28 * Copyright:地图版权控件,默认位于地图左下方。 29 ************************************************************************************* 30 /** 31 * 测试百度地图API 32 * @author Frost.Yen 33 * 34 */ 35 public class BaiduMapTest extends Sprite 36 { 37 public function BaiduMapTest() 38 { 39 stage.scaleMode = StageScaleMode.NO_SCALE; 40 stage.align = StageAlign.TOP_LEFT; 41 42 //创建一个大小为600*400的Map对象 43 var map:Map = new Map(new Size(600,400)); 44 this.addChild(map); 45 //初始化Map的中心点和显示级别(将地图的中心点坐标设置为经度116.404,纬度39.915。显示级别设置为12。) 46 map.centerAndZoom(new LngLat(116.404,39.915),12); 47 //添加底图(初始化图层,并添加到Map中。) 48 var layer:Layer = new RasterLayer("BaiduMap",map); 49 map.addLayer(layer); 50 51 // 添加Navigator 52 var nav:Navigator = new Navigator(map); 53 map.addControl(nav); 54 // 添加Overview 55 var overview:Overview = new Overview(map); 56 map.addControl(overview); 57 // 添加Scaler 58 var scaler:Scaler = new Scaler(map); 59 map.addControl(scaler); 60 // 添加Ruler 61 var ruler:Ruler = new Ruler(map); 62 //ruler.anchor = Anchor.TL;//anchor表示控件的停靠位置 63 //ruler.offset = new Size(50,20);//offset可以通过偏移量来指示控件距离地图边界有多少像素 64 map.addControl(ruler); 65 66 //添加自定义控件 67 var temp:TempMapControl = new TempMapControl(map); 68 map.addControl(temp); 69 //为map添加事件 70 map.addEventListener(MapEvent.CLICK,function(e:MapEvent):void{trace("click map")}); 71 } 72 } 73 }
可以实现自定义Control控件;
package com.controls { import baidu.map.basetype.Size; import baidu.map.config.Anchor; import baidu.map.control.Control; import baidu.map.core.IMap; import flash.events.Event; import flash.text.TextField; /** * 自定义Control控件 * @author Frost.Yen * */ public class TempMapControl extends Control { public function TempMapControl(map:IMap) { super(map); _offset = new Size(200,20); _anchor = Anchor.TC; _anchor = Anchor.BC; trace(_anchor); } override protected function create(evt:Event=null):void { var tf:TextField = new TextField(); tf.autoSize = "left"; tf.text = "temp control"; addChild(tf); } override protected function destroy(evt:Event=null):void { super.destroy(evt); } override public function dispose():void { super.dispose(); } } }