假设您有一个坐标列表(LatLng),这是我的实现:
double getHeading(double lat1, double lon1, double lat2, double lon2) {
var lat1rad = lat1 * pi / 180;
var lat2rad = lat2 * pi / 180;
var dLon = (lon2 - lon1) * pi / 180;
var y = sin(dLon) * cos(lat2);
var x = cos(lat1rad) * sin(lat2rad) -
sin(lat1rad) * cos(lat2rad) * cos(dLon);
var brng = atan2(y, x);
return (((brng * 180 / pi) + 360) % 360);
}
rotation = getHeading(lastPoint.lat, lastPoint.lon, actual.lat, actual.lon);
setState(() {
_mapController.rotate(-rotation);
})