zoukankan      html  css  js  c++  java
  • [ActionScript 3.0] AS3调用百度地图API

     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();
            }
            
        }
    }
  • 相关阅读:
    [设计模式]在CodeDom代码生成中使用Decorator模式实现类型创建
    【翻译】防腐层:面向领域驱动设计的更为稳健的系统集成方案
    EntityFramework之领域驱动设计实践【后续篇】:基于EF 4.3.1 Code First的领域驱动设计实践案例
    Apworks框架中各种仓储实现的性能基准测试与结果对比
    CQRS架构中同步服务的一种实现方式
    在Visual Studio 2010中创建多项目(解决方案)模板【三】
    Microsoft NLayerApp案例理论与实践 应用层
    在Visual Studio 2010中创建多项目(解决方案)模板【二】
    小猫奥斯卡
    测试一下又拍网图片外链
  • 原文地址:https://www.cnblogs.com/frost-yen/p/4895037.html
Copyright © 2011-2022 走看看