Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- 'use strict';
- /**
- * 角度转弧度
- */
- function toRadians (deg) {
- return deg / 180 * Math.PI;
- }
- /**
- * 当给定的两位置相距较近时,可将经纬线近似为垂直,计算对角线近似为两点距离。
- */
- function getDistanceSimple (coordinate1, coordinate2) {
- const lat1 = coordinate1.latitude;
- const lat2 = coordinate2.latitude;
- const lng1 = coordinate1.longitude;
- const lng2 = coordinate2.longitude;
- const dx = lng1 - lng2; // 经度差值
- const dy = lat1 - lat2; // 纬度差值
- const b = (lat1 + lat2) / 2.0; // 平均纬度
- const Lx = toRadians(dx) * 6367000.0 * Math.cos(toRadians(b)); // 东西距离
- const Ly = 6367000.0 * toRadians(dy); // 南北距离
- return Math.hypot(Lx, Ly); // 用平面的矩形对角距离公式计算总距离
- }
- module.exports = {
- getDistanceSimple
- };
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement