ArcGIS Server 10.0+Flex API 2.5. 实现查询定位,目标区域边界高亮。

1.使用QueryTask获得查询信息。

2.将查询结果以Graphic形式放在GraphicsLayer上。

3.对相应graphic设置Symbol,高亮显示,使用SimpleFillSymbol、SimpleLineSymbol,其中SimpleFillSymbol设置为空,设置outline,即实现边界高亮效果。

效果图:

具体:

1.使用QueryTask获得查询信息:

where语句中格式需注意,字符的值使用单引号,数字不需单引号。

  //省区域查询protected function button1_clickHandler():void{var queryTask:QueryTask=new QueryTask;var query:Query=new Query();queryTask.url="http://192.168.100.226:8399/arcgis/rest/services/abs_cni/ChinaRegion/MapServer/2";query.returnGeometry=true;query.outFields = ["name"];query.outSpatialReference = map.spatialReference;query.where="name like '%"+sheng.text+"%'";queryTask.execute(query,new AsyncResponder(onResult,onFault));    }

2.将查询结果以Graphic形式放在GraphicsLayer上,并定位(居中显示),即获得查询结果graphic的extent。

可能在浏览器上居中显示时,区域边界部分显示不完全,可以将区域放大,即“map.extent = graphic.geometry.extent.expand(1.5);”,代表将范围在原有基础上扩大50%。

此处犯过两个错误:

(1).使用以下方法,实质获得graphic之和的extent。

var graphicProvider:ArrayCollection = myGraphicsLayer.graphicProvider as ArrayCollection;var graphicsExtent:Extent = GraphicUtil.getGraphicsExtent(graphicProvider.toArray());

(2).结果函数里忘记清除之前graphic,即“myGraphicsLayer.clear();”,这样一来,由于之前查询结果的graphic的影响,多次查询后extent也是错误的。

改正后正确方法如下:

private function onResult(featureSet:FeatureSet,token:Object = null):void{for each(var graphic:Graphic in featureSet.features){myGraphicsLayer.clear();graphic.symbol=QuerySymbol;myGraphicsLayer.add(graphic);map.extent = graphic.geometry.extent.expand(1.5);}                }private function onFault(info:Object, token:Object = null ):void{Alert.show("Error!");}

3.设置高亮显示的symbol,面符号中可设置为空,加上outline,这样即可边界高亮显示。

<esri:SimpleFillSymbol id="QuerySymbol"color="0xFF0000"alpha="0.6"outline="{sls}"style="null"></esri:SimpleFillSymbol><esri:SimpleLineSymbol id="sls"color="0xFF0000"alpha="1"style="solid"></esri:SimpleLineSymbol>

另:如果使用FlexViewer,单独做成widget的话,别忘了设置widget初始化函数加载graphicslayer,以及关闭wigdet时的清除graphic(“myGraphicsLayer.clear();”)

转载于:https://www.cnblogs.com/colinhou/archive/2012/12/13/2815657.html

地图查询定位功能(Flex API)相关推荐

  1. 利用高德地图实现定位功能

    最近学习使用高德地图可谓是出师不利....嘛,不知道为啥高德给的3d地图的jar包用不了,最后实在没办法用了2d的jar包,然后在大佬和其他资料的帮助下,实现了高德地图的定位功能.接下来就说一下具体的 ...

  2. AngularJS进阶(十九)在AngularJS应用中集成百度地图实现定位功能

    在AngularJS应用中集成百度地图实现定位功能 注:请点击此处进行充电! 前言 根据项目需求,需要实现手机定位功能,考虑到百度业务的强大能力,遂决定使用百度地图第三方服务. 添加第三方模块的步骤与 ...

  3. AngularJS进阶 十九 在AngularJS应用中集成百度地图实现定位功能

    在AngularJS应用中集成百度地图实现定位功能 注:请点击此处进行充电! 前言 根据项目需求,需要实现手机定位功能,考虑到百度业务的强大能力,遂决定使用百度地图第三方服务. 添加第三方模块的步骤与 ...

  4. 移动web端使用腾讯地图实现定位功能

    最近公司有个需求,让开发一个相对精确的定位功能,我们是微信二次开发,不像APP那种可以有专门的组件或插件来实现,使用腾讯地图API(支持HTTPS协议)提前准备:1: 先去腾讯地图API官网注册一个密 ...

  5. 百度地图实现定位功能

    ---恢复内容开始--- 1.首先先申请一个百度地图密钥 网址: http://lbsyun.baidu.com/apiconsole/key; 利用工具软件获取SHA1值或者在黑窗口获取 http: ...

  6. html5腾讯地图自动定位,移动web端使用腾讯地图实现定位功能

    var geolocation = new qq.maps.Geolocation("WYEBZ-3MMES-4D5OJ-6WOZH-WLSRZ-OEFTT", "mya ...

  7. vue---百度地图实现定位功能

    先在index.html引入<script type="text/javascript" src="https://api.map.baidu.com/api?v= ...

  8. Android利用百度地图API实现定位功能(记录)

    本篇主要介绍一下如何使用百度地图API来实现定位以及地图的基本使用. 效果图如下: 步骤如下: 一.申请APIKey. (1)注册百度账号并申请开发者资质:http://developer.baidu ...

  9. Android 百度地图开发(二)--- 定位功能之MyLocationOverlay,PopupOverlay的使用

    转载请注明出处http://blog.csdn.net/xiaanming/article/details/11380619 这一篇文章主要讲解的是百度地图的定位功能,然后还有MyLocationOv ...

最新文章

  1. 去云南品味彝族的砣砣肉
  2. Android 中点击某个按钮实现 返回键 的功能
  3. C和C++之用extern “C“实现它们之间的互调
  4. selenium+java初级学习笔记之单个元素定位
  5. 计算机的系统组成说课教案,计算机系统组成说课稿.doc
  6. Android系统(121)---Android启动页黑屏及最优解决方案
  7. JMETER目录结构详解
  8. 帆软报表属性设计基础
  9. 【arduino从入门到放肆】②arduino IDE下载与安装
  10. UEditor富文本编辑器图片粘贴和上传问题
  11. mysql admin账号密码忘记_使用mysqladmin命令修改Mysql密码与忘记密码
  12. mercury已断开服务器无响应,Mercury水星无线路由器无法上网解决办法 | 192路由网...
  13. 线性代数【8】-1 线性方程组 - 非常重要的概念 - 三个基本的问题
  14. Python—Pytest+Allure定制报告
  15. 联想成全球PC业至尊
  16. 【IT项目管理】第4章 习题
  17. pve万兆网卡驱动_教你:高性价比万兆群晖方案——万兆SFP网卡配置使用教程
  18. python的mysql数据查询及报错AttributeError: 'Connection' object has no attribute 'curson'
  19. matlab 色温图,什么是色温?色温的定义及色温图
  20. 控制系统的复域数学模型

热门文章

  1. 【Java面试题视频讲解】字符串按指定长度分隔
  2. 创建容器时[Warning] IPv4 forwarding is disabled. Networking will not work.
  3. Lucene查询索引代码实现
  4. Spring MVC--自定义HttpMessageConverter接收JSON格式的数据
  5. Java多线程安全问题解决的两种方式代码案例
  6. 功利性学习:别陷入勤奋陷阱
  7. oracle 修改聚簇因子,Oracle 基础篇 --- 聚簇因子(clustering_factor)
  8. window下的host路径
  9. Spring 框架所有版本大集合下载
  10. 我这么讲线索二叉树,我三岁大的表弟笑了笑