最近我对arcgis api for js的查询方式有了一些总结,但还有一些疑惑,还望大神能够解答

最近我对arcgis api for js的查询方式有了一些总结,但还有一些疑惑,还望大神能够解答
1.arcgis api for js提供了三个类可供查询。分别是FindTask、QueryTask、IdentifyTask。
区别:FindTask可对多个图层进行属性查询;IdentifyTask可对多个图层进行空间查询;QueryTask可对一个图层进行属性查询
和空间查询。
2.可是我发现FeatureLayer这个类有两个方法selectFeatures(query, selectionMethod?, callback?, errback?)和queryFeatures(query, callback?, errback?)也是可以对FeatureLayer进行属性查询和空间查询。并且在FeatureLayer和GraphicLayer两个类下也提供了click事件可通过点击进行查询。

那么问题来了:1和2的区别是什么?我的理解是:1中的查询方式是通过地图服务或者要素服务的url和Query、FindParameters、IdentifyParameters这些类的结合来进行查询的,而2中的查询方式只能通过Query这个类也只能对FeatureLayer进行查询。那么如果我发布了一个要素服务,我就既可以通过1的方式进行查询也可以通过2的方式进行查询,它们的区别是什么呢?还有,如果我通过动态图层技术添加了FeatureLayer,是不是只能通过2方法来查询呢?可是网上说通过动态图层添加的FeatureLayer也可以通过IdentifyTask和FindTask进行查询,而它们的url是什么呢?而通过IdentifyTask和FindTask进行地图服务查询时,我可以通过IdentifyParameters或FindParameters来获取该地图服务的layerId,而动态图层又如何设置这个参数呢?
已邀请:

李阳 - 网络粉刷匠

赞同来自: hgwc_ml

1.你应该说的是3.X中的,首先2中你可以看到设置的都是一个query,所以他本身就是走的query接口,这个你network中看一下请求应该就能看到。所以本质上进行查询是一样的,只是selectFeatures是一个选择的过程,其他的都是仅仅进行查询
2.动态图层作为Featurelayer(url/mapserver/layerId)形式添加的数据也可以Query。
3.动态图层(url/mapserver)可以进行Identify以及Find。里面的url就是到mapserver一层,也就是你说的多图层查询。这个你可以看一下示例就比较好理解了https://developers.arcgis.com/ ... .html

要回复问题请先登录注册