初步认识

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

  面和线都是由点组成的。

添加点

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

  2.获取坐标点,MapPoint。

  3.创建要素,Graphic。

  4.设置样式 Symbol。

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

添加线

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

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

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

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

添加面

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

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

图层

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

高亮闪烁

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

  1. private static var symbolToggleEffect:SimpleFiltersToggleEffect; //高亮对象
  2. private static var filterMarker:GlowFilter=null; //高亮样式
  3. private static var simfilterArray:Array=[]; //过滤对象数组
  4.  
  5. public static function DrawVehAreaOver(evt:MouseEvent):void
  6. {
  7. if (symbolToggleEffect)
  8. symbolToggleEffect.end();
  9.  
  10. var targetGarphic:Graphic=evt.currentTarget as Graphic;
  11.  
  12. //获取图层
  13. var layer:GraphicsLayer=GetAreaLayer();
  14.  
  15. //找到缓冲区图层,存在则隐藏
  16. var currArea:Graphic=FindGraphicByAttr(layer, "AREAID", targetGarphic.attributes.USERID);
  17.  
  18. if (currArea)
  19. {
  20. currArea.visible=true;
  21.  
  22. //开始高亮
  23. if (!symbolToggleEffect)
  24. {
  25. if (!filterMarker)
  26. {
  27. InitSyle();
  28. }
  29. symbolToggleEffect=new SimpleFiltersToggleEffect(currArea, null, simfilterArray, 500);
  30. }
  31.  
  32. symbolToggleEffect.play();
  33. }
  34. }
  35.  
  36. //昂是初始化
  37. private static function InitSyle():void
  38. {
  39. //高亮样式
  40. if (!filterMarker)
  41. {
  42. var objselectedHouse:Object=RGlobal.MapUrlArrayList["FeatureStyles"].SelectHouse;
  43. filterMarker=new GlowFilter();
  44. filterMarker.color=objselectedHouse.fillcolor;
  45. filterMarker.blurX=20;
  46. filterMarker.blurY=20;
  47. filterMarker.alpha=objselectedHouse.fillopacity;
  48. filterMarker.strength=2;
  49. simfilterArray.push(filterMarker);
  50. }
  51. }
  52.  
  53. /*线路要素 移出
  54. */
  55. public static function DrawVehAreaOut(evt:MouseEvent):void
  56. {
  57. if (symbolToggleEffect)
  58. symbolToggleEffect.end();
  59. var targetGarphic:Graphic=evt.currentTarget as Graphic;
  60.  
  61. //获取图层
  62. var layer:GraphicsLayer=GetAreaLayer();
  63.  
  64. //找到缓冲区图层,存在则隐藏
  65. var currArea:Graphic=FindGraphicByAttr(layer, "AREAID", targetGarphic.attributes.USERID);
  66.  
  67. if (currArea)
  68. {
  69. currArea.visible=false;
  70. }
  71. }

arcgis for flex 学习笔记(一)的更多相关文章

  1. CSS3伸缩布局Flex学习笔记

    如果需要使用伸缩布局首先得把display:flex;对于兼容还得加前缀display:-webkit-display:flex;等其他浏览器前缀,但我本机Chrome测试已经不需要加前缀了,其实这些 ...

  2. ArcGIS AddIN Sample学习笔记

    1.AddInEditorExtension 功能描述:编辑器扩展,实现在编辑要素,对编辑事件的监听,及对新创建的要素的处理 核心代码: void Events_OnStartEditing() { ...

  3. Flex学习笔记-皮肤

    1文件结构 MXML应用程序 index.mxml 皮肤文件 components.button.skin.btnSkin1.mxml  皮肤文件的组件随便引用了spark.components.Bu ...

  4. Flex学习笔记-时间触发器

    <?xml version="1.0" encoding="utf-8"?> <s:Application xmlns:fx="ht ...

  5. Flex学习笔记-Vgropu Hgroup 定义的组 表单程序。

    <?xml version="1.0" encoding="utf-8"?> <s:Application xmlns:fx="ht ...

  6. Flex学习笔记-自定义菜单的显示细节

    icon <?xml version="1.0" encoding="utf-8"?> <s:Application xmlns:fx=&qu ...

  7. Flex学习笔记--多层菜单按钮

    <?xml version="1.0" encoding="utf-8"?> <s:Application xmlns:fx="ht ...

  8. Flex学习笔记-使用MXML和一个AS事件监听器监听事件

    <?xml version="1.0" encoding="utf-8"?> <s:Application xmlns:fx="ht ...

  9. flex学习笔记 使用函数,显示实时更新的标签

    <?xml version="1.0" encoding="utf-8"?> <s:Application xmlns:fx="ht ...

随机推荐

  1. 【C#】 URL Protocol

    [C#] URL Protocol 网页调用本地程序, 支持 Windows 下所有浏览器, 与浏览器插件对比实现简单,但判断是否调用成功时, 只有ie10以上有函数,其他浏览器得自己实现(用 ifr ...

  2. 深入Python的类和对象

    多态:不同的子类对象,可以调用相同的父类方法,通过改写父类的方法,产生不同的执行结果 instance和type的区别: instance能够顺延到父类,比对对象与父类是否类型一致.而type只能比对 ...

  3. 【page.js】配置及Page函数说明

    页面.js中的Page函数用来注册一个页面,指定页面的初始数据.生命周期回调.事件处理函数等. 语法:Page(Object)参数: Object json对象 Page({ /** * data * ...

  4. LINQ学习笔记——(3)基本查询操作符

    Select() 作用于uIEnumerable<TSource>类型 public static void Test() { List<string> persons = n ...

  5. python xlrd处理表格常用方法

    1.导入模块import xlrd2.打开Excel文件读取数据data = xlrd.open_workbook('excelFile.xls')3.使用技巧获取一个工作表 table = data ...

  6. Python——数据类型之dict

    字典,相当于一个列表,不过列表的索引是数字,字典的索引是数字或者字符串. 1.字典的访问 字典是典型的key-value结构,一个key对应着一个value,key就是索引,value就是要保存的值 ...

  7. spring mvc:实现给Controller函数传入map参数

    [1]前端js调用示例: ...fillOrDiffer?inMapJson={"2016-08-31 0:00:00":0.1,"2016-08-31 0:15:00& ...

  8. 学习bash——环境配置

    一.环境配置文件的重要性 Bash在启动时直接读取这些配置文件,以规划好bash的操作环境. 即使注销bash,我们的设置仍然保存. 二.login shell 通过完整的登录流程取得的bash,称为 ...

  9. node + npm 命令

    npm install npm@latest -g  //更新npm npm -v  //运行查看版本号 地址:https://docs.npmjs.com/getting-started/insta ...

  10. lintcode-117-跳跃游戏 II

    117-跳跃游戏 II 给出一个非负整数数组,你最初定位在数组的第一个位置. 数组中的每个元素代表你在那个位置可以跳跃的最大长度. 你的目标是使用最少的跳跃次数到达数组的最后一个位置. 样例 给出数组 ...