react-native经纬度距离计算

蓝咒 提交于 2019-12-04 19:57:37

高德地图:官方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米

 

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!