Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/google-maps/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Android 谷歌地图API-根据旅行距离更新地图上的当前位置_Android_Google Maps_Google Maps Api 3 - Fatal编程技术网

Android 谷歌地图API-根据旅行距离更新地图上的当前位置

Android 谷歌地图API-根据旅行距离更新地图上的当前位置,android,google-maps,google-maps-api-3,Android,Google Maps,Google Maps Api 3,假设我在谷歌地图API上设置了从a点到B点的步行路线。 我从A点开始。考虑到步行的距离,我如何或是否可能更新地图上的当前位置?(我从Google fit SDK获得了步行距离) 例如: 从A点到B点有1.5公里(谷歌地图上标出的路线) 我跑了450米 如何在此基础上更新地图当前位置 PS:我不能使用GPS,因为我正在制作的应用程序没有显示你当前的真实位置。这是一个错误的位置好的,这是可能的,但你需要知道你的方向。 为此,你需要三件事- 你从源头到目的地的运动方向 源代码很长 旅行的距离 如果你有

假设我在谷歌地图API上设置了从a点到B点的步行路线。 我从A点开始。考虑到步行的距离,我如何或是否可能更新地图上的当前位置?(我从Google fit SDK获得了步行距离)

例如:

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

我跑了450米

如何在此基础上更新地图当前位置


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

好的,这是可能的,但你需要知道你的方向。 为此,你需要三件事-

  • 你从源头到目的地的运动方向
  • 源代码很长
  • 旅行的距离
  • 如果你有这三样东西,那么你就是这样做的-

    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

    让我知道这对你是否有帮助


    谢谢你

    如果我有运动轴承,这将是完美的。不幸的是我没有。我仅有的数据是旅行距离,以及谷歌地图api为路线制定提供的所有数据(包括来源和目的地)。其想法是在地图上精确定位一个标记,该标记会随着行驶的距离而相应更新。该标记必须遵循路线集。谢谢你的解决方案。那么你怎么知道你要往哪个方向走呢??这不仅仅是1.5公里的行程。西南方向一定有1.5公里左右的地方,最理想的方法是用谷歌地图制作一条路线。它将从a点到B点形成一条“线”。我想沿着这条线走,那么告诉我从哪里获得这两个位置a和B。以及从哪里获得所有其他数据。并尽可能具体。告诉我函数名。。。如果可能的话,我还不能给你任何函数,因为我的问题是,是否有可能使用谷歌地图api来实现这一点,或者我是否需要以其他方式来实现这一点。但我会尽量详细说明:该应用程序将生成一条从巴塞罗那到马德里的步行路线(你不需要做任何事情,它都是由该应用程序生成的)。我正在使用google fit sdk来注册距离(使用步长和高度来估计,没有GPS)。目的是使标记器沿路线移动,并记录距离