安卓智能地图开发与实施十一:业务数据查询 - ArcGIS Runtime SDK for Android(Version 100.0.0)

0
分享 2017-08-21
业务数据查询
地图通常能够结合诸多资源,无论是符号化、注记还是图例往往不能够满足对信息的表达,为了更多更细节地承载信息,通过查询和地图上的弹出式窗口能够完整的展示资源的属性信息。业务数据的空间查询,是展示更多信息的第一步。


可进行查询的方法:
  • MapView( GeoView ) - identifyLayerAsync方法
  • MapView( GeoView ) - identifyLayersAsync方法
  • GeodatabaseFeatureTable( FeatureTable ) - queryFeaturesAsync方法
  • ServiceFeatureTable ( FeatureTable ) - queryFeaturesAsync方法
  • FeatureLayer - selectFeaturesAsync方法


空间查询 - MapView( GeoView )

MapView(GeoView)提供了对Graphics Overlays、FeatureLayer和ArcGISMapImageLayer进行空间查询的方法。
  • screenPoint:屏幕点击位置
  • Tolerance:将点缓冲为圆的半径,输入值为屏幕像素(pixels/dp)最大值为100dp
  • returnPopups:查询结果是否包含 弹出窗口(Pop-ups)信息
  • maximumResults:查询结果最大返回值,必须大于0


方法执行后,通过addDoneListener接收结果。
final ListenableFuture<List<IdentifyLayerResult>> identifyFuture =
mainMapView.identifyLayersAsync(screenPoint, screenTolerance, false, 100);
identifyFuture.addDoneListener(new Runnable() {
@Override
public void run() {
try {
List<IdentifyLayerResult> identifyLayersResults = identifyFuture.get();
for (IdentifyLayerResult identifyLayerResult : identifyLayersResults) {
for (GeoElement identifiedElement : identifyLayerResult.getElements()) {
identifyLayerResult.getLayerContent();
if (identifiedElement instanceof Feature) {
Feature identifiedFeature = (Feature) identifiedElement;
}
}
}
}
catch (Exception e) {
}
}
});

空间查询 - FeatureTable(GeodatabaseFeatureTable 、ServiceFeatureTable)

QueryParameters(com.esri.arcgisruntime.data.QueryParameters)是queryFeaturesAsync、selectFeaturesAsync的查询参数。
  • setGeometry:进行空间范围查询的Geometry对象
  • setMaxFeatures:最大返回值
  • setOutSpatialReference:查询返回结果的空间参考
  • setReturnGeometry:是否在查询结果中包含结合对象
  • setSpatialRelationship:进行空间查询的空间关系设置
  • setWhereClause:查询语句

SpatialRelationship(com.esri.arcgisruntime.data.QueryParameters.SpatialRelationship)枚举:


  • CONTAINS
  • CROSSES
  • DISJOINT
  • ENVELOPE_INTERSECTS
  • EQUALS
  • INDEX_INTERSECTS
  • INTERSECTS
  • OVERLAPS
  • RELATE
  • TOUCHES
  • UNKNOWN
  • WITHIN

 
final ListenableFuture<FeatureQueryResult> featureQueryResult
= featureLayer.getFeatureTable().queryFeaturesAsync(query);
featureQueryResult.addDoneListener(new Runnable() {
@Override
public void run() {
try {
FeatureQueryResult result = featureQueryResult.get();
Iterator<Feature> iterator = result.iterator();
Feature feature;
while (iterator.hasNext()) {
feature = iterator.next();
}
} catch (Exception e) {
}
}
});

空间查询 - FeatureLayer

FeatureLayer的selectFeaturesAsync方法从本质上讲数据要素选择,但从实现结果上来说相当于空间查询。同时,查询的结果会被高亮显示。高亮显示可以通过FeatureLayer设置颜色和宽度(厚度):
  • setSelectionColor:设置选中要素的颜色
  • setSelectionWidth:设置选中要素的边缘宽度(厚度)

 
final ListenableFuture<FeatureQueryResult> featureQueryResult
= featureLayer.selectFeaturesAsync(query, FeatureLayer.SelectionMode.NEW);
featureQueryResult.addDoneListener(new Runnable() {
@Override
public void run() {
try {
FeatureQueryResult result = featureQueryResult.get();
Iterator<Feature> iterator = result.iterator();
Feature feature;
while (iterator.hasNext()) {
feature = iterator.next();
}
} catch (Exception e) {
}
}
});

 
 安卓智能地图开发与实施一:配置离线SDK - ArcGIS Runtime SDK for Android(Version 100.0.0) :http://zhihu.esrichina.com.cn/article/3304
 安卓智能地图开发与实施二:开发环境准备 - ArcGIS Runtime SDK for Android(Version 100.0.0) :http://zhihu.esrichina.com.cn/article/3303
 安卓智能地图开发与实施三:创建第一个地图程序 - ArcGIS Runtime SDK for Android(Version 100.0.0) :http://zhihu.esrichina.com.cn/article/3302
 安卓智能地图开发与实施四:二维地图的MapView与Layers - ArcGIS Runtime SDK for Android(Version 100.0.0) :http://zhihu.esrichina.com.cn/article/3305
 安卓智能地图开发与实施五:在线基础底图 - ArcGIS Runtime SDK for Android(Version 100.0.0) :http://zhihu.esrichina.com.cn/article/3309
 安卓智能地图开发与实施六:离线基础底图 - ArcGIS Runtime SDK for Android(Version 100.0.0) :http://zhihu.esrichina.com.cn/article/3299
 安卓智能地图开发与实施七:在线业务图层(浏览查询) - ArcGIS Runtime SDK for Android(Version 100.0.0) :http://zhihu.esrichina.com.cn/article/3298
 安卓智能地图开发与实施八:离线业务图层(浏览查询) - ArcGIS Runtime SDK for Android(Version 100.0.0) :http://zhihu.esrichina.com.cn/article/3297
 安卓智能地图开发与实施九:地图缩放与旋转 - ArcGIS Runtime SDK for Android(Version 100.0.0) :http://zhihu.esrichina.com.cn/article/3296
 安卓智能地图开发与实施十:图层管理 - ArcGIS Runtime SDK for Android(Version 100.0.0) :http://zhihu.esrichina.com.cn/article/3295
 安卓智能地图开发与实施十一:业务数据查询 - ArcGIS Runtime SDK for Android(Version 100.0.0) :http://zhihu.esrichina.com.cn/article/3294
 安卓智能地图开发与实施十二:空间查询与模糊搜索 - ArcGIS Runtime SDK for Android(Version 100.0.0) :http://zhihu.esrichina.com.cn/article/3293
 安卓智能地图开发与实施十三:空间查询与展示 - ArcGIS Runtime SDK for Android(Version 100.0.0) :http://zhihu.esrichina.com.cn/article/3308
 安卓智能地图开发与实施十四:业务数据编辑 - ArcGIS Runtime SDK for Android(Version 100.0.0) :http://zhihu.esrichina.com.cn/article/3307
 安卓智能地图开发与实施十五:离线与同步 - ArcGIS Runtime SDK for Android(Version 100.0.0) :http://zhihu.esrichina.com.cn/article/3306
 安卓智能地图开发与实施十六:三维地图 - ArcGIS Runtime SDK for Android(Version 100.1.0) :http://zhihu.esrichina.com.cn/article/3289
 安卓智能地图开发与实施十七:使用天地图 - ArcGIS Runtime SDK for Android(Version 100.1.0) :http://zhihu.esrichina.com.cn/article/3288
 安卓智能地图开发与实施十八:空间要素绘制 - ArcGIS Runtime SDK for Android(Version 100.1.0) :http://zhihu.esrichina.com.cn/article/3287
 安卓智能地图开发与实施十九:符号与渲染器 - ArcGIS Runtime SDK for Android(Version 100.1.0) :http://zhihu.esrichina.com.cn/article/3286
文章来源:http://blog.csdn.net/allenlu2008/article/details/72636775

0 个评论

要回复文章请先登录注册