javascript 计算地球坐标之间的距离(以公里为单位)

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了javascript 计算地球坐标之间的距离(以公里为单位)相关的知识,希望对你有一定的参考价值。

    degreesToRadians(degrees) {
        return degrees * Math.PI / 180;
    }

    distanceInKmBetweenEarthCoordinates(lat1, lon1, lat2, lon2) {
        let earthRadiusKm = 6371;

        let dLat = this.degreesToRadians(lat2-lat1);
        let dLon = this.degreesToRadians(lon2-lon1);

        lat1 = this.degreesToRadians(lat1);
        lat2 = this.degreesToRadians(lat2);

        let a = Math.sin(dLat/2) * Math.sin(dLat/2) + Math.sin(dLon/2) * Math.sin(dLon/2) * Math.cos(lat1) * Math.cos(lat2);
        let c = 2 * Math.atan2(Math.sqrt(a), Math.sqrt(1-a));

        return earthRadiusKm * c;
    }

    returnDistance() {
        let positionFirstPin = this.toursService.mapsTourMarkers[0];
        let positionLastPin = this.toursService.mapsTourMarkers.slice(-1)[0];
        let distance = this.distanceInKmBetweenEarthCoordinates(+positionFirstPin.lat, +positionFirstPin.lng, +positionLastPin.lat, +positionLastPin.lng);

        console.log(distance.toFixed(2));
    }

以上是关于javascript 计算地球坐标之间的距离(以公里为单位)的主要内容,如果未能解决你的问题,请参考以下文章

计算两个经纬度之间的距离

计算地球上两坐标的距离

MySQL计算坐标之间距离

在MYSQL中用2个坐标以米为单位计算地球距离的最佳方法是啥?

地球表面两点距离计算

给定两组坐标,如何计算它们之间的距离?