Arcgis for Flex中的Query查询在项目中的运用

项目中需要判定两个面间的拓扑关系,ArcGIS中三种常用查询:QueryTask、FindTask、IdentifyTask,其中query查询比较适合判断两个几何图形(点、线、面)之间的关系(重合、相交、分离等)。

在使用中发现spatialRelationship参数使用灵活度较大,为了便于以后使用,特此记下来query查询的一些应用方法, 首先上一段通用query查询方法。

	/**
	 * 通用query查询方法
	 * @param url 查询图层URL
	 * @param outFields 需要输出的字段
	 * @param relation 查询类型
	 * @param geometry 空间几何范围
	 * @param result 查询结果回调函数
	 * @param fau 查询失败回调函数
	 * @param relationParam 自定义查询条件
	 * 
	 */
	public static function queryUtil(url:String,outFields:Array,relation:String,geometry:Geometry,
									 result:Function,fau:Function,relationParam:String=""):void
	{
		var queryTask:QueryTask = new QueryTask(url);
		var query:Query = new Query();
		query.outFields = outFields;
		query.spatialRelationship = relation;
		if(relation==Query.SPATIAL_REL_RELATION){
			query.relationParam=relationParam;
		}
		query.geometry = geometry;
		query.returnGeometry = true;
		queryTask.showBusyCursor = true;
		queryTask.useAMF = false;
		queryTask.execute(query, new AsyncResponder(result, fau));
	}

方法的参数如下:

  • url:某个图层的服务地址,是精确到单个图层的。
  • outFields:输出字段,如果需要获取查询后结果中的几何图形的属性信息,可通过该参数进行控制。
  • relation:查询类型,这个参数就是要查询的几何拓扑关系。
  • geometry:需要查询的几何图形范围,可以是点线面
  • result、fau:成功失败的回调函数。
  • relationParam:自定义查询条件,在relation为SPATIAL_REL_RELATION时,可使用自定义的查询条件。
重点介绍下自定义的查询条件,ArcGIS API for Flex提供了几个常用的查询条件,具体可参考官方api。当官方提供的查询条件不能满足需求时,可设置queryTask的spatialRelationship参数值为SPATIAL_REL_RELATION,然后自定义设置relationParam。
自定义规则如下:

自定义的规则为单个字符串,每个字符使用"T"、"F"、"*"表示,T表示为真,F表示为假,*表示不限制。
项目中需要判断两个区域(面)是否相离,就是不能让两个面相交,边界重合,相互包含。刚开始使用官方提供的几个规则都不能很好的进行条件判断,最后自己设置了一条规则,“T*******T”,可满足条件的判断。

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值