谷歌地图Lat / Long Accuracy,V2-Android

时间:2013-12-21 13:33:58

标签: android google-maps

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

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

我使用addPolyline()方法绘制lat。

我面临的问题是在前景中使用此应用程序在路上行走时,我正在直线行走,但情节正在附近的建筑物中进行。我已经确保2个纬度,长度在10米的距离。

我使用公式

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;
}

问题 - 如何获得直线,如何获得准确性或保证金或错误,以便在路上行走时我不会进入建筑物

2 个答案:

答案 0 :(得分:0)

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

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

答案 1 :(得分:0)

如果您完全依赖于从LocationManager谷歌地图位置返回的位置,然后绘制出关于有时由于GPS锁定不良而导致关闭的点数,那么你真的没有什么可以做的关于那个。我们非常欢迎您不要使用谷歌地图位置,并使用Fused location API来获得更好的结果。

谷歌地图API不提供道路节点,所以几乎不可能分辨出一个点离道路有多远,试图理顺道路