arcgis api for flex 开发入门(六)identify
上一篇 / 下一篇 2008-10-17 09:10:47 / 个人分类:mushup
arcgis api for flex 开发入门(六)identify
"`x7N/I&t
}1V0identify 是GIS中比较常用的工具之一,在arcgis api for flex中esri为我们提
供了一个Identify Task来轻松完成identify 的功能。
Iq[0`%a4ZW8{+b{0首先,还是使用<esri:IdentifyTask>标签来创建一个Identify Task。
:~T$zI TA$s.R B"KH0 <!-- Identify Task -->
c]z5yB?0 <esri:IdentifyTask id="identifyTask"
kA%j g'[pf9w0 identifyComplete="identifyCompleteHandler(event)"
url="http://sampleserver1.arcgisonline.com/ArcGIS/rest/services/Special
ty/ESRI_StatesCitiesRivers_USA/MapServer"/>
0M+o7{SU0当identifyTask执行完毕的时候响应identifyComplete消息,我们就可以把
identify的结果做一些处理,比如添加到Graphic layer 上。3sNews.Net——3S社区&资讯平台`[Y'N*L/P,S9f
pf
在执行identify之前,首先要对identify的参数设置一下,我们需要一个
IdentifyParameters对象。下面的代码是AS3脚本的代码,用来创建
IdentifyParameters和identify执行。3sNews.Net——3S社区&资讯平台GF%WV!H
j_
var identifyParams : IdentifyParameters = new IdentifyParameters();
C*BvUQ0 identifyParams.returnGeometry = true;3sNews.Net——3S社区&资讯平台/y*y!Zuv"b:L(Wt%c
identifyParams.tolerance = 3;
Q0wa|4e rdGgu0 identifyParams.width = 600;3sNews.Net——3S社区&资讯平台(W0[6V;VR s
identifyParams.height = 550;
f@:]L2b%MpA$z+izu0 identifyParams.geometry = geometry;3sNews.Net——3S社区&资讯平台2R+uj`/{8E G
identifyParams.layerOption =
IdentifyParameters.LAYER_OPTION_ALL;3sNews.Net——3S社区&资讯平台a2D&aO(n$k HYT$t+]
identifyParams.mapExtent = map.extent;
identifyTask.execute( identifyParams );
%CY2A8k&~8QX5Z0其中tolerance是容差半径3sNews.Net——3S社区&资讯平台!}7~{%tK.j
width:Width of the map currently being viewed in pixels.
{o*b9qT-ro0height : Height of the map currently being viewed in pixels
nE4a$ZDeW&wI+?4N"PJ0geometry 是用来做identify的几何,常用的有点选,矩形选择,多边形选择等3sNews.Net——3S社区&资讯平台{x+\2GZ3ue5d
参数设置好了之后,直接调用identifyTask.execute( identifyParams );就ok了
。
6h0Z/LM}0那么我们用来做identify的几何怎么来呢,在什么时候去做Identify呢?
G|*H-?
yW'|x|0NQ&F0首先回答第一个问题,做identify的几何我们可以利用第四讲中draw控件使用鼠
标交互来获得,这也是RIA的特点之一。
y6VO1vq#O]{;w2g0那么在什么时候做identify呢?3sNews.Net——3S社区&资讯平台K4X$D.o*\
就在做identify的几何画完之后做,嘿嘿,等于没说嘛,当然要在画完了就做:-D
;w2C+v-?0M0现在我们就来完成上面的工作3sNews.Net——3S社区&资讯平台j]~H7d1w'JnokrJ
p
定义一个draw控件
Hg$}&m3y