zoukankan      html  css  js  c++  java
  • arcgis for flex 学习笔记(一)

    初步认识

      地图由图层、要素、样式等组成。地图上有N个图层,图层上有N个要素,每个要素可以存放点、线、面等,每个要素可以设置样式,如果显示图片、或文字均可以先创建一个mxml组件,然后设置到要素上。

      面和线都是由点组成的。

    添加点

      1.首先初始化图层,GraphicsLayer。

      2.获取坐标点,MapPoint。

      3.创建要素,Graphic。

      4.设置样式 Symbol。

      5.添加要素至Layer,即是第一步创建的图层。

    添加线

      在添加点的基础上多了一个步骤。

      获取到多个点,可以实例化一个线对象,将线添加到点中。

                    //构造线对象
                    var pline:Polyline=new Polyline();
    
                    //添加点数据到线
                    pline.addPath(xydata);

      其他步骤相同,xydata是一个MapPoint数组。

    添加面

      跟添加线的逻辑一样,面也是由n个点组成。核心代码如下:

                    var area:Polygon=new Polygon();
                    area.addRing(xydataArea);

    图层

      图层按照先后添加顺序,好比html的zindex属性。最先添加的属性在下方。如果说,同时添加一个面和线,而线要做点击事件,那么线所处的图层应该在面之上。

    高亮闪烁

      创建一个symbolToggleEffect对象,设置其样式,在MouseOver事件中,开始动画,MouseOut事件中结束动画。

            private static var symbolToggleEffect:SimpleFiltersToggleEffect; //高亮对象
            private static var filterMarker:GlowFilter=null; //高亮样式
            private static var simfilterArray:Array=[]; //过滤对象数组
    
            public static function DrawVehAreaOver(evt:MouseEvent):void
            {
                if (symbolToggleEffect)
                    symbolToggleEffect.end();
    
                var targetGarphic:Graphic=evt.currentTarget as Graphic;
    
                //获取图层
                var layer:GraphicsLayer=GetAreaLayer();
    
                //找到缓冲区图层,存在则隐藏
                var currArea:Graphic=FindGraphicByAttr(layer, "AREAID", targetGarphic.attributes.USERID);
    
                if (currArea)
                {
                    currArea.visible=true;
    
                    //开始高亮
                    if (!symbolToggleEffect)
                    {
                        if (!filterMarker)
                        {
                            InitSyle();
                        }
                        symbolToggleEffect=new SimpleFiltersToggleEffect(currArea, null, simfilterArray, 500);
                    }
    
                    symbolToggleEffect.play();
                }
            }
    
            //昂是初始化
            private static function InitSyle():void
            {
                //高亮样式
                if (!filterMarker)
                {
                    var objselectedHouse:Object=RGlobal.MapUrlArrayList["FeatureStyles"].SelectHouse;
                    filterMarker=new GlowFilter();
                    filterMarker.color=objselectedHouse.fillcolor;
                    filterMarker.blurX=20;
                    filterMarker.blurY=20;
                    filterMarker.alpha=objselectedHouse.fillopacity;
                    filterMarker.strength=2;
                    simfilterArray.push(filterMarker);
                }
            }
    
            /*线路要素 移出
            */
            public static function DrawVehAreaOut(evt:MouseEvent):void
            {
                if (symbolToggleEffect)
                    symbolToggleEffect.end();
                var targetGarphic:Graphic=evt.currentTarget as Graphic;
    
                //获取图层
                var layer:GraphicsLayer=GetAreaLayer();
    
                //找到缓冲区图层,存在则隐藏
                var currArea:Graphic=FindGraphicByAttr(layer, "AREAID", targetGarphic.attributes.USERID);
    
                if (currArea)
                {
                    currArea.visible=false;
                }
            }
  • 相关阅读:
    计算机基础数据结构讲解第九篇-顺序队列
    计算机基础数据结构讲解第八篇-栈
    计算机基础数据结构讲解第七篇-链表操作
    计算机基础数据结构讲解第六篇-顺序表操作
    计算机基础数据结构讲解第五篇-顺序表
    计算机基础数据结构讲解第三篇-B树和B+树
    计算机基础数据结构讲解第二篇-散列查找
    MLHPC 2018 | Aluminum: An Asynchronous, GPU-Aware Communication Library Optimized for Large-Scale Training of Deep Neural Networks on HPC Systems
    MXNet源码分析 | KVStore进程间通信
    链表类问题
  • 原文地址:https://www.cnblogs.com/codealone/p/3812677.html
Copyright © 2011-2022 走看看