2011-02-17 59 views
1

我目前正在編寫一些android版本的軟件,它以GeoPoints的ArrayList形式獲取GPS數據並將其寫入KML文件。文件的其餘部分創建很好,但是當GPS數據被寫入到文件中按以下方式:無法讓android將GeoPoint 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 

任何人都可以幫我找到麻煩的小數?

回答

2

E6表示它的lat * 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"); 
} 
+0

謝謝,我知道這隻會是簡單的事! – 2011-02-17 20:24:35