Flex 百度地图API使用

今天想看一下Flex中关于地图方面的使用,刚开始看了google map api, 感觉用起来挺麻烦,关键是英文不好,文档读起来费劲,还有密钥神马的~

那我就试验一下百度地图的接口,文档是中文的。

首先下载百度地图的Flash API

地址:http://developer.baidu.com/map/flash.htm

(比较蛋疼的是现在谷歌地图、百度地图都不在更新Flash API,都会推荐用javascript api —。—)

用来也挺方便,不过赶脚百度地图做得不够精细。

还是看代码吧:

<?xml version="1.0" encoding="utf-8"?>
<s:Application xmlns:fx="http://ns.adobe.com/mxml/2009"
               xmlns:s="library://ns.adobe.com/flex/spark"
               xmlns:mx="library://ns.adobe.com/flex/mx"
               height="458" minWidth="600" minHeight="400">
    <fx:Script>
        <![CDATA[
            import baidu.map.basetype.LngLat;
            import baidu.map.basetype.Size;
            import baidu.map.control.Control;
            import baidu.map.control.base.*;
            import baidu.map.core.Map;
            import baidu.map.layer.Layer;
            import baidu.map.layer.RasterLayer;
            import baidu.map.overlay.Label;
            import baidu.map.overlay.InfoWindow;

            import flash.display.Sprite;
            import flash.display.StageAlign;
            import flash.display.StageScaleMode;

            import mx.core.UIComponent;
            import mx.events.FlexEvent;

            protected function Group_Map_create(event:FlexEvent):void
            {
                // 创建一个大小为600*400的Map对象
                var map:Map = new Map(new Size(600,400));
                // 初始化Map的中心点和显示级别
                map.centerAndZoom(new LngLat(116.404, 39.85),14);
                // 添加底图
                var layer:Layer = new RasterLayer("BaiduMap", map);
                map.addLayer(layer);

                // 添加Navigator平移控件
                var nav:Navigator = new Navigator(map);
                map.addControl(nav);
                // 添加Overview缩略图
                var overview:Overview = new Overview(map);
                map.addControl(overview);
                // 添加Scaler缩放
                var scaler:Scaler = new Scaler(map);
                map.addControl(scaler);
                // 添加Ruler比例尺
                var ruler:Ruler = new Ruler(map);
                map.addControl(ruler);

                //文本覆盖物是添加到地图上的一段文本。可以设置文本的内容,样式和背景
                var bg:Sprite = new Sprite();
                bg.graphics.beginFill(0x0000ff, 0.7);
                bg.graphics.drawRect(0, 0, 100, 100);
                bg.graphics.endFill();
                var label:Label = new Label("测试文字");
                label.position = new LngLat(116.404, 39.85);
                label.contentStyle = new TextFormat("宋体", 14, 0xff0000, true);
                label.background = bg;
                map.addOverlay(label);
                //信息窗口在地图上方的弹出窗口
                var infowindow:InfoWindow = new InfoWindow("我是弹出窗口!", null, "标题", null);
                map.openInfoWindow(infowindow);

                var UC:UIComponent=new UIComponent();
                UC.addChild(map);

                Group_Map.addElement(UC);//加入到Group容器中
            }

        ]]>
    </fx:Script>
    <fx:Declarations>
        <!-- 将非可视元素(例如服务、值对象)放在此处 -->
    </fx:Declarations>

  <mx:Panel x="95" y="15" width="603" height="433" title="百度地图">
    <s:Group id="Group_Map" width="600" height="400"
             creationComplete="Group_Map_create(event)">
    </s:Group>
  </mx:Panel>

</s:Application>

有一个地方困扰了我很久~上网查了一些~学到一下细节性东西~

那就是用的Group容器无法加载Map,因为Map不是一个类似Label的组件,类型是Sprite,需要外层加一个UIComponent~

Sprite 类是基本显示列表构造块:一个可显示图形并且也可包含子项的显示列表节点。

Sprite 对象与影片剪辑类似,但没有时间轴。Sprite 是不需要时间轴的对象的相应基类。例如,Sprite 将是通常不使用时间轴的用户界面 (UI) 组件的逻辑基类。

关于这个结构问题~这里不做深入研究~看效果图:

更多内容请参看百度地图API ~http://developer.baidu.com/map/fdevelop-2.htm

就研究到这吧~

本文出自:https://www.cnblogs.com/sunrunzhi/archive/2013/09/29/3346281.html

arcgis flex 地图开发入门实践

自从5月份来到这家公司实习直到现在转试用,我一直都在和gis 打交道,虽然我是一名java 工程师,但是其实我java 也不太会 所以现在打杂也没事。

gis 是一个大坑啊,重要的事情说3遍。这2个月其实我也没干什么,主要是在看代码,js 的gis 和flex 版的 gis. 都是使用 arcgis api .今天我想简单介绍一下地图的flex 2次开发。

在此声明 flex 能不用最好不用不然你要学多一门已被淘汰的语言。强烈建议用js.

1 flex 开发环境

FlashBuilder_4_6_LS10.exe (破解方法很简单,改指定文件的version

flashplayer_22_ax_debug.exe 用于调试,设断点debug

2 .用到的库

agslib-3.6-2013-12-13.swc , 地图的所有功能都是用这个库的api .官网有说明,但是js 版的更加详细。

flex viewer 3.6 的框架。 这个用标签开发比较容易理解。只需要把 flex viewer 这个库的 src文件复制进自己的src 就行了。

3. 项目结构 如下图

项目结构介绍: libs 放的是 库文件,config.xml 是 flex viewer 开发的全局配置文件 ,默认包下面的mxml ,是程序的入口 ,相当于java 的主方法。默认包下面的4个包都是viewer 框架的 源码。直接复制过来用的。 flex 4.6.0 是flex 语言 本身常用的一些库文件,类似于java 的 lang 包。index.template.html 和index.html 里面默认加载了一个地图 flashcontent .你可以自己加些另外的html 文件。locale 主要是用于国际化 。

我把demo 和开发工具放上去 ,给需要的人看看,这是最基础的入门。config.xml 文件的用处使用于加载地图上的导航条,比例尺,鹰眼 以及 菜单条 ,地图底图内容,业务图层,业务组件。

一些很重要的名词 方便你们找资料: as, mxml , flex 调用html js 文件中的方法,js 调用flex 中的方法。 layer 。map. 鹰眼。拉框搜索, 周围搜索,打印,热力图,书签,围栏,画 点,线,面 这些是地图常用的功能,我目前就看了,还不一定会写,这些都是我一个人看代码琢磨出来的,带我的前辈把代码给我后就离职了。

这是个大坑。现在准备用js 重写 一些flex 模块了。程序员压力大,但是只要不放弃,努力多一点,诚实一点 不要不会装会 ,经验多了就会变厉害点了。

本文出自:https://blog.csdn.net/buhaoyisiwoyao/article/details/52057318