ArcGis for flex查询FeatureLayer数据
1. 首先实例化一个FeatureLayer对象
private var featureLayer:FeatureLayer=new FeatureLayer();
2.指定FeatureLayer对象的url和输出字段
featureLayer.url = FeatureURL;
featureLayer.outFields=["OBJECTID","CREATETIME"];(这里的字段用于在地图上展示时使用)
3. 定义查询条件和查询返回的字段(进行查询时必须有查询条件,如果没有则查不到数据)
var query:Query=new Query();
query.where="1=1";
query.outFields=["OBJECTID","CREATETIME"];(这里的字段可以用于显示在表格中)
4. 进行异步查询
featureLayer.queryFeatures(query,new AsyncResponder(resulthandler,faulthandler));
5. 对返回数据进行处理
private function resulthandler(result:FeatureSet,token:Object):void{
tipLayer.clear();//每次查询之后清除图标图层内容,重新添加
resultAC.source=result.attributes;
graphicAC.source=result.features;
featureLayer.graphicProvider=graphicAC;
for each (var graphic:Graphic in result.features){
graphicLayer.add(graphic);
graphic.symbol = new SimpleLineSymbol("solid",0xFF0000,1,3);
//鼠标移动到道路线段上时显示手型,同时添加点击显示气泡的事件
graphic.useHandCursor = true;
graphic.buttonMode = true;
graphic.mouseChildren = false;
graphic.addEventListener(MouseEvent.CLICK,gisinfoWin.mouseOverGraphicTOMS);
//添加道路标注
var word:String = graphic.attributes.ROADSECTIONNAME;
var fmt:TextFormat = new TextFormat();
fmt.size = 12;
fmt.color = 0xffffff;
var symbolWord:TextSymbol = new TextSymbol(null,word,0xffffff,true,0xffffff,true,0x0131c0,TextSymbol.PLACEMENT_MIDDLE,0,0,-25,fmt);
symbolWord.backgroundColor = 0x999933;
//获取中心点
var center:MapPoint = graphic.geometry as MapPoint;
if(graphic.geometry != null && graphic.geometry.type != Geometry.MAPPOINT){
center = graphic.geometry.extent.center; //区域中心点
//交通组织的中心点设置为起点,标注文字
var line:Polyline = graphic.geometry as Polyline;
if(line != null){
try {
var arrPoints:Array = line.paths[0];
center = arrPoints[0] as MapPoint;
}catch(e){}
}
}
if(center != null) {
var tipGraphic:Graphic = new Graphic(center);
tipGraphic.attributes = graphic.attributes;
tipGraphic.useHandCursor = true;
tipGraphic.buttonMode = true;
tipGraphic.mouseChildren = false;
tipGraphic.symbol = symbolWord;
//添加鼠标事件
tipGraphic.addEventListener(MouseEvent.CLICK,gisinfoWin.mouseOverGraphicTOMS);
tipLayer.add(tipGraphic);
//施工占道需要添加小人在地图上
var tomsPic:PictureMarkerSymbol;
if(graphic.attributes.TOMSTYPEID=="02"){
tomsPic = new PictureMarkerSymbol(IconDir+"dev/fs_toms_02.png",this.defaultMarkWidth/2,this.defaultMarkHeight/2); //偏移的位置
}else{
tomsPic = new PictureMarkerSymbol(IconDir+"dev/fs_toms_01.png",this.defaultMarkWidth/2,this.defaultMarkHeight/2); //偏移的位置
}
var arrGraphic:Array = [new Graphic(center)]; //默认的绘制点
if(graphic.geometry.type == Geometry.POLYLINE) {
var line:Polyline = graphic.geometry as Polyline;
var arrPoints:Array = line.paths[0];
arrGraphic = []; //只标记前 1 个点,或者两个点
arrGraphic.push(new Graphic(arrPoints[0]));
if(arrPoints.length > 2){
arrGraphic.push(new Graphic(arrPoints[1]));
}
}
for each(var markGraphic:Graphic in arrGraphic){
markGraphic.symbol = tomsPic;
markGraphic.attributes = graphic.attributes;
//地图上点位显示手型
markGraphic.useHandCursor = true;
markGraphic.buttonMode = true;
markGraphic.mouseChildren = false;
//添加鼠标事件
markGraphic.addEventListener(MouseEvent.CLICK,gisinfoWin.mouseOverGraphicTOMS);
// if(token.fnRollOver != undefined && token.fnRollOver != null){
// markGraphic.addEventListener(MouseEvent.ROLL_OVER, token.fnRollOver);
// }
// if(token.fnMouseOver != undefined && token.fnMouseOver != null){
// markGraphic.addEventListener(MouseEvent.MOUSE_OVER,token.fnMouseOver);
// }
tipLayer.add(markGraphic);
}
}
}
}
因为FeatureLayer图层是不可以修改样式的,所以我将返回来的数据添加到GraphicsLayer图层中进行编辑。如果不修改样式的话,可以直接将FeatureLayer添加到地图中来展示。
6.将图层添加到地图实例上以进行最终展示
this.map.addLayer(graphicLayer);
ArcGis for flex查询FeatureLayer数据的更多相关文章
- ArcGIS Engine中加载数据
ArcGIS Engine中加载数据 http://blog.csdn.net/gisstar/article/details/4206822 分类: AE开发积累2009-05-21 16:49 ...
- ArcGIS 10——地理数据库管理GIS数据
写本文的最初意向是当前正在进行的项目中有实现ESRI版本化数据管理的功能模块,碰到一些棘手的问题,几经周折还是决定系统学习ArcGIS10的帮助文档.(文章摘抄的比较多) 地理数据库是用于保存数据集集 ...
- ORACLE 查询一个数据表后通过遍历再插入另一个表中的两种写法
ORACLE 查询一个数据表后通过遍历再插入另一个表中的两种写法 语法 第一种: 通过使用Oracle语句块 --指定文档所有部门都能查看 declare cursor TABLE_DEPT and ...
- 如何从SharePoint Content DB中查询List数据
SharePoint用来维护基础数据非常方便,只需要建立自定义列表,然后使用InfoPath自定义一下维护界面,就可以实现在线的增删改查,开发效率很高.如果维护的数据需要进行审批,还可以加入工作流功能 ...
- 【ASH】如何导出视图DBA_HIST_ACTIVE_SESS_HISTORY的查询结果数据
[ASH]如何导出视图DBA_HIST_ACTIVE_SESS_HISTORY的查询结果数据 1.1 BLOG文档结构图 1.2 前言部分 1.2.1 导读和注意事项 各位技术爱好者,看完本文后 ...
- ArcGIS for Flex中引入google map作底图
上篇文章到在ArcGIS View中引入google map,这里讲ArcGIS for Flex中引入google map作底图. 同样道理,以google map作底图,需要编写继承自TiledM ...
- 如何用SQL语句查询Excel数据?
如何用SQL语句查询Excel数据?Q:如何用SQL语句查询Excel数据? A:下列语句可在SQL SERVER中查询Excel工作表中的数据. 2007和2010版本: SELECT*FROMOp ...
- 同步Flex Chart的数据提示
原文 http://www.riafan.com/sync-datatips-for-flex-chart/ 图表数据提示的同步不仅包含单个图表内多个系列的数据提示的同步,也包含多个图表的数据提示的同 ...
- MySQL如何查询LINESTRING数据
我有一个提交的命名crm_geo_org,具有以下结构 ipoid INTEGER 11 NOT NULL PRIMARY KEY beginip INTEGER 14 NOT NULL UNSIGN ...
随机推荐
- 201521123082 《Java程序设计》第5周学习总结
201521123082 <Java程序设计>第5周学习总结 标签(空格分隔): java 1. 本周学习总结 1.1 尝试使用思维导图总结有关多态与接口的知识点. 1.2 可选:使用常规 ...
- 团队作业4——第一次项目冲刺(Alpha版本)2017.4.25
在下午的1,2节软件课程结束后,我们teamworkers全体队员在禹州楼302利用课间时间进行约15分钟的短暂会议,会议的内容为阐述昨天开发遇到的问题,大家都提出自己的看法,最后统一了意见,队员互相 ...
- 戴建钊 201521123023《Java程序设计》第1周学习总结
1. 本周学习总结 Java 不同于C语言面向过程的编程思想,它是一种面向对象的编程方式,其在语句语法上与C++类似,因此刚开始可能比较容易理解 2. 书面作业 为什么java程序可以跨平台运行?执行 ...
- 杨晨露 Java 第一周总结
1.学习内容总结 (1)Integer类在对象中包装了一个基本类型int的值.Integer类型的对象包含一个int类型的字段.该类提供了多个方法,能在int类型和String类型之间互相转换,还提供 ...
- 201521123053《Java程序设计》第十周学习总结
---恢复内容开始--- 1. 本周学习总结 1.1 以你喜欢的方式(思维导图或其他)归纳总结异常与多线程相关内容. 在java多线程程序中,所有线程都不允许抛出未捕获的checked excepti ...
- paxos 算法原理学习
下面这篇关于paxos分布式一致性的原理,对入门来说比较生动有趣,可以加深下影响.特此博客中记录下. 讲述诸葛亮的反穿越 0.引子 一日,诸葛亮找到刘备,突然献上一曲<独角戏>,而后放声大 ...
- Shiro第一篇【Shiro的基础知识、回顾URL拦截】
Shiro基础知识 在学习Shiro这个框架之前,首先我们要先了解Shiro需要的基础知识:权限管理 什么是权限管理? 只要有用户参与的系统一般都要有权限管理,权限管理实现对用户访问系统的控制,按照安 ...
- Struts2第四篇【请求数据自动封装、Action得到域对象】
前言 前三篇的Struts博文基本把Struts的配置信息讲解完了-..本博文主要讲解Struts对数据的处理 一般地,我们使用Servlet的时候都是分为几个步骤的: 得到web层的数据.封装数据 ...
- Activiti-04-.Spring integration
ProcessEngineFactoryBean <beanid="processEngineConfiguration"class="org.activiti.s ...
- 前端里移动端到底比pc端多哪些知识?
端里移动端到底比pc端多哪些知识,为啥面试时好多公司都问h5水平如何? 我做过几年的web前端开发,就简单谈谈自己的感受吧.首先来看看PC端和移动端在前端开发上的一些区别:(1)PC考虑的是浏览器兼容 ...