美文网首页
获取经纬指定距离的四个点

获取经纬指定距离的四个点

作者: skymcl | 来源:发表于2019-02-19 14:33 被阅读0次
        var EARTH_RADIUS = 6378137.0;//地球赤道半径(单位:m。6378137m是1980年的标准,比1975年的标准6378140少3m)
    
    /// <summary>
    /// 弧度转换为角度数公式
    /// </summary>
    /// <param name="d"></param>
    /// <returns></returns>
    function degrees(d) {
        return d * (180 / Math.PI);
    }
    
    /// <summary>
    /// 以一个经纬度为中心计算出四个顶点
    /// </summary>
    /// <param name="Degree1">中心点</param>
    /// <param name="distance">半径(米)</param>
    /// <returns></returns>
    function GetDegreeCoordinates(Degree1, distance) {
        var dlng = 2 * Math.asin(Math.sin(distance / (2 * EARTH_RADIUS)) / Math.cos(Degree1.X));
        dlng = degrees(dlng);//一定转换成角度数
        var dlat = distance / EARTH_RADIUS;
        dlat = degrees(dlat);//一定转换成角度数
        let data = [
                [xx(Degree1.X + dlng), xx(Degree1.Y + dlat)],//right-top
            [xx(Degree1.X - dlng), xx(Degree1.Y + dlat)],//left-top
            [xx(Degree1.X - dlng), xx(Degree1.Y - dlat)],//left-bottom
            [xx(Degree1.X + dlng), xx(Degree1.Y - dlat)]] //right-bottom
        return data;
    }
    
    function xx(num){
        num = num.toString();
        let xxx = num.split(".");
        xxx[1] = xxx[1].substr(0,6);
        
        return xxx[0]+'.'+xxx[1];
     }
    

    相关文章

      网友评论

          本文标题:获取经纬指定距离的四个点

          本文链接:https://www.haomeiwen.com/subject/zvzxyqtx.html