打开APP
userphoto
未登录

开通VIP,畅享免费电子书等14项超值服

开通VIP
arcgis api for flex 开发入门(五)查询

在gis中,针对要素的查询是一个最基本的操作,也是最常用的操作之一。
下面我们介绍如何使用arcgis api for flex 来查询我们需要的东西。
要在arcgis api for flex中进行查询操作,首先需要定义一个查询任务面板。
使用<esrianel>
文本输入框 用来输入你想要查询的内容,button 用来执行查询的动作。
那么这个doQuery()怎么实现呢?我们在mxml的标签中已经无法实现,这就需要引
入activescript脚本。我们需要在mxml中使用activescript脚本历来编写代码,
实现我们想要的功能。
关于activescript的语法大家可以参考activescript的相关书籍。
要在mxml文档中插入activescript,需要使用<mx:Script>标签
<mx:Script>
        <![CDATA[
        ]]>
    </mx:Script>
activescript 是一种类java 语言,它本身有一个AVM,把activescript编译成
java 的代码,然后再通过JVM转换成字节码执行。
我们下面就开始实现doQuery();
首先,我们要用import 指令引入我们需要的命名空间,和java基本一样
<mx:Script>
        <![CDATA[
            import com.esri.ags.Graphic;
            import com.esri.ags.tasks.FeatureSet;
            import com.esri.ags.tasks.Query;
            import mx.controls.Alert;
            import mx.rpc.AsyncResponder;
        ]]>
    </mx:Script>
然后我们定义doQuery()函数: 注意activescript代码 要放到<mx:Script>标签

private function doQuery() : void
            {
                queryTask.execute( query, new AsyncResponder( onResult, 
onFault ));
在doQuery()函数中直接调用了queryTask的execute方法,这是一个异步调用。
成功响应onResult函数,失败则响应onFault函数。
查询已经写好了,那么我们怎么得到查询的结果呢?得到结果肖恩么表现呢?
这就需要我们在onResult函数中做一些事情了。
首先,定义onResult函数
function onResult( featureSet : FeatureSet, token : Object = null ) : 
void
                {   
                    var displayFieldName : String = 
featureSet.displayFieldName;
                    for each ( var myGraphic : Graphic in 
featureSet.features )
                    {
                        // ToolTip
                        myGraphic.toolTip = "The 2007 population of " 
                            + myGraphic.attributes[displayFieldName] + 
" was " 
                            + myNumberFormatter.format
(myGraphic.attributes.POP2007)
                            + "\nMedian Age: " + 
myGraphic.attributes.MED_AGE + ".";       
                        // show on map
                        myGraphicsLayer.add( myGraphic ); 
                    }
                }
查询结果返回一个 FeatureSet,我们现在遍历这个 FeatureSet,然后把每个
feature 绘制到GraphicLayer上。
如果查询失败了怎么办呢,我们是不是要弹个东西出来告诉用户呢?
这就需要我们在onFault函数中做一些工作
function onFault( info : Object, token : Object = null ) : void
                {
                    Alert.show( info.toString() );
                }                         
            }

本站仅提供存储服务,所有内容均由用户发布,如发现有害或侵权内容,请点击举报
打开APP,阅读全文并永久保存 查看更多类似文章
猜你喜欢
类似文章
【热】打开小程序,算一算2024你的财运
在 Flex 中操作 Tree 控制元件 (1/3) - ANISTAR BLOG - RIA Project
Flex下打开新窗口
Flex4 tree组件组合复选框
Flex
flex叠放层叠
Flex行为效果
更多类似文章 >>
生活服务
热点新闻
分享 收藏 导长图 关注 下载文章
绑定账号成功
后续可登录账号畅享VIP特权!
如果VIP功能使用有故障,
可点击这里联系客服!

联系客服