Google Maps API - 根据行程距离更新地图上的当前位置

时间:2016-03-04 11:37:35

标签: android google-maps google-maps-api-3

假设我已经在谷歌地图API上设置了从A点到B点的步行路线。 我从A点(duh)开始。考虑到步行距离,我怎么能或者有可能更新地图上的当前位置? (我从Google fit SDK走了一段距离)。

示例:

从A点到B点是1.5公里(谷歌地图上标记的路线)

我跑了450米

如何基于此更新地图当前位置?

PS:我不能使用GPS作为我正在制作的应用程序没有显示您当前的真实位置。这是一个错误的位置

1 个答案:

答案 0 :(得分:0)

好的,但是你需要掌握你的方向。 为此你需要三件事 -

  1. 从源头到目的地的运动方式。
  2. 来源latlong。
  3. 行进的距离。
  4. 如果你有这三件事,那你就是这样做的 -

    private LatLng getDestinationPoint (LatLng source,double brng, double dist){
            dist = dist / 6371;
            brng = Math.toRadians(brng);
    
            double lat1 = Math.toRadians(source.latitude), lon1 = Math.toRadians(source.longitude);
            double lat2 = Math.asin(Math.sin(lat1) * Math.cos(dist) +
                    Math.cos(lat1) * Math.sin(dist) * Math.cos(brng));
            double lon2 = lon1 + Math.atan2(Math.sin(brng) * Math.sin(dist) *
                            Math.cos(lat1),
                    Math.cos(dist) - Math.sin(lat1) *
                            Math.sin(lat2));
            if (Double.isNaN(lat2) || Double.isNaN(lon2)) {
                return null;
            }
            return new LatLng(Math.toDegrees(lat2), Math.toDegrees(lon2));
        }
    

    使用上面函数中的代码并将参数放到函数中,作为回报,您将获得目标latlng。

    请告诉我这是否对您有所帮助。

    谢谢