高德地图:官方AP误差很大,不稳定。
import com.amap.api.maps.AMapUtils;
public void calc(double lat, double lng, double latitude, double longitude, final Promise promise) {
try {
Number space = AMapUtils.calculateLineDistance(
new LatLng(lng, lat),
new LatLng(longitude, latitude)
);
promise.resolve(space);
} catch (Exception e) {
promise.reject(e);
}
}
根据2组经纬度,计算两点之间的距离(JavaScript计算两组坐标之间的距离):
function getDistance(start, end) {
var lon1 = (Math.PI / 180) * start.longitude;
var lat1 = (Math.PI / 180) * start.latitude;
var lon2 = (Math.PI / 180) * end.longitude;
var lat2 = (Math.PI / 180) * end.latitude;
// 地球半径
var R = 6371;
// 两点间距离 KM
var d = Math.acos(Math.sin(lat1) * Math.sin(lat2) + Math.cos(lat1) * Math.cos(lat2) * Math.cos(lon2 - lon1)) * R;
// 公里转米
var abs = Math.abs(d * 1000);
return Math.round(abs);
}
var start = {longitude: 120.109594, latitude: 30.282075};
var end = {longitude: 120.117919, latitude: 30.282335};
var m = getDistance(start, end);
console.log(m);// 800米