Android:Location.distanceBet Units和模拟器之间没有正确发送坐标

时间:2010-02-24 08:25:27

标签: android geolocation gps location emulation

每个人,我有两个问题

1)我无法找出Location.distanceBetween接收纬度和经度的单位。是度数还是微度?什么距离单位返回? 很抱歉这个noob问题,但我无法在文档中找到任何内容。

2)在使用Eclipse 3.3.2的Windows XP中。模拟器不能正确发送坐标。无论是手动还是加载gpx文件,都不会调用locationListener。我在Ubuntu中尝试过相同的代码并且工作正常。有人知道我该如何解决这个问题?在办公室里没有安装linux,我可以带上我的个人笔记本电脑。

非常感谢先进!

2 个答案:

答案 0 :(得分:1)

1)来自android源码:

public static void distanceBetween(double startLatitude, double startLongitude,
    double endLatitude, double endLongitude, float[] results) {
    if (results == null || results.length < 1) {
        throw new IllegalArgumentException("results is null or has length < 1");
    }
    computeDistanceAndBearing(startLatitude, startLongitude,
        endLatitude, endLongitude, results);
}

在computeDistanceAndBearing里面有评论说:

// Based on http://www.ngs.noaa.gov/PUBS_LIB/inverse.pdf
// using the "Inverse Formula" (section 4)

我会检查那里

2) 转到:

  • 设置
  • 应用
  • 开发
  • 检查“允许模拟位置”是否已启用。

答案 1 :(得分:0)

我遇到了模拟器没有从ddms获取位置的问题,结果是因为我有一个非英语语言环境似乎搞砸了。您可以尝试在ddms启动脚本中将“-Duser.language = en”添加到java的start参数中,看看它是否有帮助。错误是here

哦,我不知道lat / long的输入单位,但根据api文档得到的浮点数是米。