ArcGIS Runtime SDK改为异步加载机制后无法顺序判断执行的问题
比如想删除某几个图层中,点查询得到的最上方图层的要素,需要按顺序遍历这几个图层,逐个判断某个图层是否选中要素,如果选中要素,则停止遍历下一个图层。
这个逻辑在异步方法里面需要在上一个图层查询结果出来之后,再进行下一个图层的判断,这需要嵌套很多addDoneListener(),有什么好的方法更好的实现吗。
再比如,双击地图,如果选中要素则进行编辑;如果没有选中要素则放大地图。这个同样需要先等待异步查询结果才能知道是否选中要素。10.2.x系列中,重写地图onDoubleTap方法即可实现,100.x系列中怎么实现呢。
这个逻辑在异步方法里面需要在上一个图层查询结果出来之后,再进行下一个图层的判断,这需要嵌套很多addDoneListener(),有什么好的方法更好的实现吗。
再比如,双击地图,如果选中要素则进行编辑;如果没有选中要素则放大地图。这个同样需要先等待异步查询结果才能知道是否选中要素。10.2.x系列中,重写地图onDoubleTap方法即可实现,100.x系列中怎么实现呢。
@Override
public boolean onDoubleTap(MotionEvent event) {
boolean zoomin = true;//标记是否放大
long[] featureIds = mFeatureLayer.getFeatureIDs(event.getX(), event.getY(), 10);
if (featureIds.length > 0) {//选中要素,开启编辑模式
return true;
} else {
return super.onDoubleTap(event);//地图放大
}
}
1 个回复
张赛
赞同来自: ls123_zh
要回复问题请先登录或注册