根据mapbox地图android上的用户导航旋转标记(箭头)

Kut*_*tbi 5 java android mapbox-marker mapbox-android

我正在开发一个应用程序,其中我必须根据用户导航旋转箭头。

我正在使用最新的 Mapbox SDK。

我尝试过设置障碍(使用纬度和经度计算)但未能成功。

我不知道如何实现它。

它(箭头标记)应该在预定义的多边形路径上导航。

在此输入图像描述

Kut*_*tbi 2

我使用以下方法成功计算方位并根据用户导航旋转箭头:

float bearingBetweenLocations(LatLng latLng1, LatLng latLng2) {
        double PI = 3.14159;
        double lat1 = latLng1.getLatitude() * PI / 180;
        double long1 = latLng1.getLongitude() * PI / 180;
        double lat2 = latLng2.getLatitude() * PI / 180;
        double long2 = latLng2.getLongitude() * PI / 180;
        double dLon = (long2 - long1);
        double y = Math.sin(dLon) * Math.cos(lat2);
        double x = Math.cos(lat1) * Math.sin(lat2) - Math.sin(lat1)
                * Math.cos(lat2) * Math.cos(dLon);
        double brng = Math.atan2(y, x);
        brng = Math.toDegrees(brng);
        brng = (brng + 360) % 360;

        return (float) brng;
    }
Run Code Online (Sandbox Code Playgroud)

注意:箭头应指向上方,如下图所示。如果不是,那么您必须按照箭头方向设置方位+/-。

在此输入图像描述