我希望能够从 MapImageLayer 查询数据 但是我好像找不到相关的教程和API
FeatureLayer有这样一个方法
public ListenableFuture<FeatureQueryResult> selectFeaturesAsync(QueryParameters query, FeatureLayer.SelectionMode selectionMode)
然后获取图形(高亮)和属性
那么怎么做。
在 javascript 中,我使用子层。 creatureLayer 实现目标 但是android中没有这样的方法。感谢您的观看和回答
我尝试使用 MapImageLayer.getTables()
从中获取 ServiceFeatureTable 以使用 queryFeaturesAsync()
但是 getTables().size=0
我还是不能直接用MapImageLayer查询 但是使用sublayer的url创建一个ServiceFeatureTable来查询 目前可以查询相关数据
MapImageLayer 是
http://host/arcgis/rest/services/test/MapServer
ServiceFeatureTable 是
http://host/arcgis/rest/services/test/MapServer/id
得到一些桌子后
QueryParameters parameters = new QueryParameters();
parameters.setGeometry(selectBuffer.getGeometry());
parameters.setOutSpatialReference(SpatialReferences.getWebMercator());
parameters.setReturnGeometry(true);
parameters.setSpatialRelationship(QueryParameters.SpatialRelationship.INTERSECTS);
for(ServiceFeatureTable table : layerList){ ListenableFuture<FeatureQueryResult> listenableFuture = table.queryFeaturesAsync(parameters);
listenableFuture.addDoneListener(() -> {
try {
FeatureQueryResult queryResult = listenableFuture.get();
for(Feature feature:queryResult){
//TODO
}
} catch (ExecutionException | InterruptedException e) {
e.printStackTrace();
}
});
}
值得提醒的是,使用setSpatialRelationship时,参数最好设置为INTERSECTS 目前我还在尝试把获取到的特征显示在地图上,使用高亮的方式 还是期待有人的回答