首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >无法让安卓将GeoPoint GPS坐标数据正确写入文件

无法让安卓将GeoPoint GPS坐标数据正确写入文件
EN

Stack Overflow用户
提问于 2011-02-18 02:58:44
回答 1查看 1.2K关注 0票数 1

我目前正在为安卓编写一些软件,它以GeoPoints的ArrayList格式获取全球定位系统数据,并将其写入到KML文件中。文件的其余部分创建正常,但是当gps数据以以下方式写入文件时:

代码语言:javascript
复制
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");
}

文件的输出是随机字符:

代码语言:javascript
复制
ꗺ, 繿
ꔚ, 练
鬅, 眑

如果我更改循环以将其转换为字符串:

代码语言:javascript
复制
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");
}

那么输出几乎是正确的,但是没有小数位吗?

代码语言:javascript
复制
-45570790, 167608003
-45571713, 167608345
-45572973, 167606660

有人能帮我找到那个讨厌的小数吗?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2011-02-18 03:25:03

E6的意思是后面的* 1E6,所以要让它看起来像-45.57vs -45570790,你需要除以1E6。

代码语言:javascript
复制
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");
}
票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/5033304

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档