我目前正在为 android 编写一些软件,这些软件以 GeoPoints 的数组列表的形式获取 gps 数据并将其写入 KML 文件。文件的其余部分创建得很好,但是当 gps 数据以下列方式写入文件时:
for(int i=0; i < geoPoints.size(); i++){
writer.write(geoPoints.get(i).getLatitudeE6());
writer.write(", ");
writer.write(geoPoints.get(i).getLongitudeE6());
writer.write("\n");
}
文件的输出是随机字符:
ꗺ, 繿
ꔚ, 练
鬅, 眑
如果我更改循环以将其转换为字符串:
for(int i=0; i < geoPoints.size(); i++){
writer.write(Integer.toString(geoPoints.get(i).getLatitudeE6()));
writer.write(", ");
writer.write(Integer.toString(geoPoints.get(i).getLongitudeE6()));
writer.write("\n");
}
那么输出几乎是正确的,就是没有小数位?
-45570790, 167608003
-45571713, 167608345
-45572973, 167606660
谁能帮我找到那个讨厌的小数点?
最佳答案
E6 表示它的纬度 * 1E6,所以为了使它看起来像 -45.57 和 -45570790,您需要除以 1E6。
for(int i=0; i < geoPoints.size(); i++){
writer.write(Integer.toString(geoPoints.get(i).getLatitudeE6() / 1E6));
writer.write(", ");
writer.write(Integer.toString(geoPoints.get(i).getLongitudeE6() / 1E6));
writer.write("\n");
}
关于android - 无法让android将GeoPoint GPS坐标数据正确写入文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5033304/