Skip to content

前端-计算两个坐标的距离 #15

Description

@agger21
getDistance(lat1, lng1, lat2, lng2) {
            console.log(lat1,'lat1')
            console.log(lng1,'lng1')
            console.log(lat2,'lat2')
            console.log(lng2,'lng2')
            lat1 = lat1 || 0;
            lng1 = lng1 || 0;
            lat2 = lat2 || 0;
            lng2 = lng2 || 0;
        
            var rad1 = lat1 * Math.PI / 180.0;
            var rad2 = lat2 * Math.PI / 180.0;
            var a = rad1 - rad2;
            var b = lng1 * Math.PI / 180.0 - lng2 * Math.PI / 180.0;
        
            var r = 6378137;
            var distance = r * 2 * Math.asin(Math.sqrt(Math.pow(Math.sin(a / 2), 2) + Math.cos(rad1) * Math.cos(rad2) * Math.pow(Math.sin(b / 2), 2)));
        
            if (distance > 1000){
                distance = Math.round(distance / 1000).toFixed(1) + 'km';
            }else{
                distance = distance.toFixed(1) + 'm';
            }
        
            return distance;
        }

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Fields

    No fields configured for issues without a type.

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions