我有这个代码来读取一个.kml(kml类似于txt),然后得到字符串之间的字符串:和。
private void readCoordinatesFromKml() throws IOException {
dangerousArea.clear();
InputStream inputStream = getResources().openRawResource(R.raw.monitoring);
ByteArrayOutputStream byteArrayOutputStream = new ByteArrayOutputStream();
int i;
try {
i = inputStream.read();
while (i != -1)
{
byteArrayOutputStream.write(i);
i = inputStream.read();
}
inputStream.close();
} catch (IOException e) {
e.printStackTrace();
}
Pattern pattern = Pattern.compile("<coordinates>(.*?)</coordinates>", Pattern.DOTALL);
Matcher matcher = pattern.matcher(byteArrayOutputStream.toString());
while (matcher.find()) {
String[] str = matcher.group(1).split(",");
double Longitude = Double.parseDouble(str[0]);
double Latitude = Double.parseDouble(str[1]);
dangerousArea.add(new LatLng(Latitude, Longitude));
}
}
代码说明:inputstream应该是放在r.raw中的kml文件,名为“monitoring”(monitoring.kml)
然后我用我在网上找到的一个代码来读取一个txt文件并将其保存为字符串。
pattern和matcher用于获取其他字符串之间的字符串。
while(matcher.find())只说明在其他字符串之间找到一个字符串时该怎么办。我将字符串拆分为两个字符串,然后将字符串解析为双精度字符串,然后将它们添加到“危险区域”列表中。
“危险区域”是一个物体列表。
现在的问题是(我控制了它)在“危险区域”列表中没有保存任何内容。所以在读取文件的过程中肯定出了问题。你看到问题了吗?
暂无答案!
目前还没有任何答案,快来回答吧!