【问题标题】:Google Maps Lat/Long Accuracy, V2-Android谷歌地图纬度/经度精度,V2-Android
【发布时间】:2013-12-23 11:47:54
【问题描述】:

我正在尝试编写一个在 android 中使用 Google Maps V2 API 的简单应用程序。 在计时器中,我正在从 googleMap mylocation 函数中读取 lat long 值。

altitude = googleMap.getMyLocation().getAltitude();
latitude = googleMap.getMyLocation().getLatitude();
longitude = googleMap.getMyLocation().getLongitude();

我使用addPolyline() 方法绘制了经纬度。

我面临的问题是在前台使用此应用程序在路上行走时,我一直在直线行走,但情节在附近的建筑物中。我确保 2 lat,longs 的距离为 10m。

我用公式,

public double calcDistance(double lat1, double lng1, double lat2,
        double lng2) {

    int r = 6371; // average radius of the earth in km
    double dLat = Math.toRadians(lat2 - lat1);
    double dLon = Math.toRadians(lng2 - lng1);
    double a = Math.sin(dLat / 2) * Math.sin(dLat / 2)
            + Math.cos(Math.toRadians(lat1))
            * Math.cos(Math.toRadians(lat2)) * Math.sin(dLon / 2)
            * Math.sin(dLon / 2);
    double c = 2 * Math.atan2(Math.sqrt(a), Math.sqrt(1 - a));
    double d = r * c;
    return d;
}

问题 - 如何获得一条直线,如何获得准确性或余量或误差,以便在路上行走时我不会进入建筑物

【问题讨论】:

    标签: android google-maps


    【解决方案1】:

    地图有错误,GPS 读数有错误。由于卫星被阻挡和可见卫星的多路径,附近的大型建筑物将增加 GPS 读数的误差。您可能需要考虑将初始实验限制在没有建筑物的区域。

    关于直线,如果您有幸拥有地图数据,您可以将 GPS 读数投射到道路上最近的点。

    【讨论】:

    • 会这样做,但我没有得到我的问题的答案
    • 了解噪音是减少噪音的良好开端。例如,卡尔曼滤波器的性能取决于指定的噪声和运动模型的质量。理解 GPS 噪声非常困难(例如,由于 GPS 卫星星座选择的改变而导致的位置跳跃)在附近没有大型建筑物的情况下很难理解。因此,您对了解 GPS 错误的追求将更容易远离它们。我希望这会有所帮助。
    【解决方案2】:

    如果您仅依靠从谷歌地图位置的LocationManager 返回的位置,然后绘制出有时由于 GPS 锁定错误而导致的点数关闭,那么您真的无能为力.非常欢迎您不要使用谷歌地图位置并使用Fused location API 来尝试获得更好的结果。

    Google 地图 API 不提供道路节点,因此几乎不可能判断一个点离道路有多远并试图将其拉直

    【讨论】:

    • 我在某个地方读到了我可以使用卡尔曼滤波器去除 GPS 读数中的噪音。像 mapmyrun 这样的应用程序是如何做到正确的。我有 2 部手机,而我的手机多次偏离轨道,而 mapmyrun 正好在路上。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多