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;
}
}
arcgis for flex 学习笔记(一)的更多相关文章
- CSS3伸缩布局Flex学习笔记
如果需要使用伸缩布局首先得把display:flex;对于兼容还得加前缀display:-webkit-display:flex;等其他浏览器前缀,但我本机Chrome测试已经不需要加前缀了,其实这些 ...
- ArcGIS AddIN Sample学习笔记
1.AddInEditorExtension 功能描述:编辑器扩展,实现在编辑要素,对编辑事件的监听,及对新创建的要素的处理 核心代码: void Events_OnStartEditing() { ...
- Flex学习笔记-皮肤
1文件结构 MXML应用程序 index.mxml 皮肤文件 components.button.skin.btnSkin1.mxml 皮肤文件的组件随便引用了spark.components.Bu ...
- Flex学习笔记-时间触发器
<?xml version="1.0" encoding="utf-8"?> <s:Application xmlns:fx="ht ...
- Flex学习笔记-Vgropu Hgroup 定义的组 表单程序。
<?xml version="1.0" encoding="utf-8"?> <s:Application xmlns:fx="ht ...
- Flex学习笔记-自定义菜单的显示细节
icon <?xml version="1.0" encoding="utf-8"?> <s:Application xmlns:fx=&qu ...
- Flex学习笔记--多层菜单按钮
<?xml version="1.0" encoding="utf-8"?> <s:Application xmlns:fx="ht ...
- Flex学习笔记-使用MXML和一个AS事件监听器监听事件
<?xml version="1.0" encoding="utf-8"?> <s:Application xmlns:fx="ht ...
- flex学习笔记 使用函数,显示实时更新的标签
<?xml version="1.0" encoding="utf-8"?> <s:Application xmlns:fx="ht ...
随机推荐
- Java 图像处理框架-Marvin
网上看到,摘录过来的,暂时还没涉足这方面的东西 Marvin 1.4.5 的插件接口支持处理多个图像作为输入,新的插件可通过多个图片来确认背景,新的插件可使用多个图片来合并相同场景. Marvin 是 ...
- abo dto属性验证的坑
问题回现: public class ShipmentRequestDto { public string FromPhoneNumber { get; set; } /// <summary& ...
- js解决img标签加载失败显示默认图片
问题: 为所有显示楼盘的页面添加一个加载失败的默认图片. 基本思路: img标签中有个onerror属性,专门用来处理加载失败的事件.所以可以用jquery添加onerror属性,在onerror中加 ...
- 【多校联合】(HDU6045)Is Derek lying?
分析 之前没有想到题目解法,看了题解才会,记录一下思考过程. 这条题目的实质是,在满足合法的情况下,有没有a和d的可行解?也就是说,不要仅仅附在表面的思考逻辑条件,而是要思考实际的数学表达. 转化为数 ...
- Django2.1.3框架中(fields.E300)和(fields.E307)报错处理
使用Django框架创建了Web项目,修改了模型models.py之后,执行数据库迁移操作,出现如下报错: models.py内容如下: from django.db import models fr ...
- WOW.js 的使用方法
WOW.js 是一个非常轻量级的动画效果插件,使用它可以组合多种炫酷的效果. 使用WOW.js可以实现我们在网站上常看到的,页面滚动到指定区域时就显示动画的效果. 1.要使用WOW.js必须引入:WO ...
- GraphSAGE 代码解析 - minibatch.py
class EdgeMinibatchIterator """ This minibatch iterator iterates over batches of samp ...
- Visual Studio 2010安装包
点击下载
- PAT 1015 德才论
https://pintia.cn/problem-sets/994805260223102976/problems/994805307551629312 宋代史学家司马光在<资治通鉴>中 ...
- 【EasyNetQ】- 基于topic的路由
RabbitMQ具有非常酷的功能,基于主题的路由,允许订户根据多个标准过滤消息.主题是由与消息一起发布的点分隔的单词列表.例如,“stock.usd.nyse”或“book.uk.london”或“a ...