我正在使用for循环来解析android中的GPX文件,并将生成的lat和long放在适合谷歌静态地图的字符串中。静态地图api允许最多约2000个字符的网址。
我想要做的是遍历gpx文件中的条目,这样我就可以获得最大量的细节而不会产生太多字符。例如,如果lat和long是10个字符,那么我总是希望产生尽可能接近200个标记。
我开始使用这个工作代码
List<Location> gpxList = decodeGPX(gpxFile);
for(int i = 0; i < gpxList.size(); i++){
info += ((Location)gpxList.get(i)).getLatitude()
+ ","
+ ((Location)gpxList.get(i)).getLongitude() + "|";
}
显而易见的方法是获取列表的长度并除以允许的最大标记数(在本例中为200),确保这是一个整数,然后在循环迭代时递增这么多项。但是,我如何确保在列表末尾没有出现越界错误?
修改
要明确我想减少数据点的频率,而不是减少点数,如果这是有道理的。想象一下,我有一个带有2000个标记的gpx文件,可以进行往返。我想制作一个200点的清单,它仍然可以完全旅行(精度有所下降),而不仅仅列出前200个点,这只能给出行程的开始
答案 0 :(得分:1)
在将新字符添加到info
字符串之前(我假设它是一个字符串),检查要添加的字符数,并验证{{1}中是否有足够的空间}字符串。如果没有,请结束循环。
info