无法让android正确地将GeoPoint GPS坐标数据写入文件

时间:2011-02-17 18:58:44

标签: android kml

我目前正在为Android编写一些软件,它以GeoPoints的ArrayList形式获取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

任何人都可以帮我找到那个讨厌的小数吗?

1 个答案:

答案 0 :(得分:2)

E6表示它的纬度* 1E6,因此它看起来像-45.57 vs -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");
}