ArcGIS Runtime SDK for Android端关于Polyline遍历获取segment报错:ArrayIndexOutOfBoundsException
ArcGIS Runtime SDK for Android端由polyline获取segment出错:
E/AndroidRuntime﹕ FATAL EXCEPTION: main
java.lang.ArrayIndexOutOfBoundsException: length=2; index=-1
E/AndroidRuntime﹕ FATAL EXCEPTION: main
java.lang.ArrayIndexOutOfBoundsException: length=2; index=-1
1 个回复
张赛
赞同来自:
先普及一下基础知识:
Esri在Arcpy类对象Polyline中对于Polyline的官方定义是:
Polyline是由一个或多个path定义的形状,其中的path是一系列相连接的segment。
详细解释如下链接:
https://desktop.arcgis.com/en/ ... e.htm
因此,在通过Polyline获取segment的时候,实际需要两个步骤:
1遍历查找path
2遍历获取segment
在ArcGIS Runtime SDK for Android的帮助文档中,querySegmentIterator()方法所返回的SegmentIterator恰位于multipath的起始位置,需调用nextPath返回multipath的第一个path对象。而后,才能调用nextSegment()以遍历移动Iterator到下一个Segment并获取这一Segment。
具体示例如下:
1 构建Polyline
2 获取SegmentIterator
3 获取Path
4 遍历Path下的所有Segment
补充:
如果这个multipath由多个path组成,那么需要循环调用nextPath()以遍历移动Iterator到下一个path。
要回复问题请先登录或注册