您的位置:

从经纬度计算距离到工具开发

一、经纬度计算距离公式

经纬度计算距离是比较基础和常用的计算方式,利用球面三角形的公式可以计算地球上两点之间的直线距离。

function getDistance(lat1, lng1, lat2, lng2) {
    var radLat1 = lat1 * Math.PI / 180.0;
    var radLat2 = lat2 * Math.PI / 180.0;
    var a = radLat1 - radLat2;
    var b = lng1 * Math.PI / 180.0 - lng2 * Math.PI / 180.0;
    var s = 2 * Math.asin(Math.sqrt(Math.pow(Math.sin(a/2),2) + 
    Math.cos(radLat1)*Math.cos(radLat2)*Math.pow(Math.sin(b/2),2)));
    s = s *6378.137 ;//地球半径
    s = Math.round(s * 10000) / 10000;
    return s;
}

这是一个Javascript的实现,其中lat1, lat2, lng1, lng2是两个点的经纬度。

二、经纬度计算距离公式Excel怎么制作

在Excel中使用经纬度计算距离公式,可以将公式嵌入到公式计算之中,并且可以方便地批量计算多个点之间的距离。

下面是Excel中的公式:

=2*6378.137*ASIN(SQRT(POW(SIN((LAT1-LAT2)*PI()/180/2),2)+COS(LAT1*PI()/180)*COS(LAT2*PI()/180)*POW(SIN((LNG1-LNG2)*PI()/180/2),2)))*1000

其中,LAT1、LNG1、LAT2、LNG2是4个单元格的引用,代表两个点的经纬度;6378.137是地球半径,默认单位是公里;乘以1000是因为返回的距离单位是米,而不是千米。

三、经纬度计算距离计算器

经纬度计算距离计算器是一个小工具,可以方便地计算两个点之间的距离。

下面是一个使用Html和Javascript实现的经纬度计算距离计算器:

<html>
<head>
<script type="text/javascript">
function calculateDistance() {
    var lat1 = document.getElementById("lat1").value;
    var lng1 = document.getElementById("lng1").value;
    var lat2 = document.getElementById("lat2").value;
    var lng2 = document.getElementById("lng2").value;
    var radLat1 = lat1 * Math.PI / 180.0;
    var radLat2 = lat2 * Math.PI / 180.0;
    var a = radLat1 - radLat2;
    var b = lng1 * Math.PI / 180.0 - lng2 * Math.PI / 180.0;
    var s = 2 * Math.asin(Math.sqrt(Math.pow(Math.sin(a/2),2) + 
    Math.cos(radLat1)*Math.cos(radLat2)*Math.pow(Math.sin(b/2),2)));
    s = s *6378.137 ;//地球半径
    s = Math.round(s * 10000) / 10000;
    document.getElementById("result").innerHTML = s;
}
</script>
</head>
<body>

<table>
<tr>
<td><label for="lat1">纬度1:</label></td>
<td><input type="text" id="lat1" /></td>
</tr>
<tr>
<td><label for="lng1">经度1:</label></td>
<td><input type="text" id="lng1" /></td>
</tr>
<tr>
<td><label for="lat2">纬度2:</label></td>
<td><input type="text" id="lat2" /></td>
</tr>
<tr>
<td><label for="lng2">经度2:</label></td>
<td><input type="text" id="lng2" /></td>
</tr>
<tr>
<td><button onclick="calculateDistance()">计算距离</button></td>
<td></td>
</tr>
</table>

<div>两点之间的距离:<span id="result"></span>公里</div>

</body>
</html>

四、经纬度计算距离Matlab

在Matlab中可以使用自带的函数pdist2进行经纬度计算距离。

coord1 = [25.0478, 121.5318]; % 第一个坐标
coord2 = [23.9722, 120.9822]; % 第二个坐标
dist = pdist2(coord1, coord2, @distanceInKm);
disp(dist);
function d = distanceInKm(latLong1, latLong2)
    R = 6371; % 地球半径
    lat1 = latLong1(1); long1 = latLong1(2);
    lat2 = latLong2(1); long2 = latLong2(2);
    dLat = deg2rad(lat2-lat1);
    dLong = deg2rad(long2-long1);
    a = sin(dLat/2) * sin(dLat/2) + cos(deg2rad(lat1)) * cos(deg2rad(lat2)) * sin(dLong/2) * sin(dLong/2);
    c = 2 * atan2(sqrt(a), sqrt(1-a));
    d = R * c;
end

五、经纬度计算距离工具

除了计算器之外,还有很多成熟的经纬度计算距离工具可以使用,比如百度地图、高德地图等。

以百度地图为例,可以使用其API进行经纬度距离计算。

function getDistance(pointStart, pointEnd) {
    var map = new BMap.Map("");
    var pointA = new BMap.Point(pointStart.lng, pointStart.lat);
    var pointB = new BMap.Point(pointEnd.lng, pointEnd.lat);
    var distance = (map.getDistance(pointA, pointB) / 1000).toFixed(2);
    return distance;
}

六、经纬度计算距离公式Excel

如果你需要在Excel中进行经纬度距离计算,也可以使用VBScript实现。

Function ComputeDistance(lat1, lng1, lat2, lng2)
    Dim radLat1
    Dim radLat2
    Dim radLng1
    Dim radLng2
    Dim a
    Dim b
    Dim s
    Dim dx
    Dim dy
    
    radLat1 = lat1 * 3.14159265358979 / 180
    radLat2 = lat2 * 3.14159265358979 / 180
    radLng1 = lng1 * 3.14159265358979 / 180
    radLng2 = lng2 * 3.14159265358979 / 180
    
    dx = radLat1 - radLat2
    dy = radLng1 - radLng2
    
    a = Sin(dx / 2) * Sin(dx / 2) + Cos(radLat1) * Cos(radLat2) * Sin(dy / 2) * Sin(dy / 2)
    b = 2 * Atan2(Sqr(a), Sqr(1 - a))
    s = 6378.137 * b
    
    ComputeDistance = s * 1000
End Function

七、经纬度计算距离app

如果你需要使用移动设备进行计算,可以在App Store或Google Play上找到许多可用的经纬度计算距离app。

下面是一些经纬度计算距离app的介绍:

  • GPS Fields Area Measure:这是一款Android app,可以进行面积和长度的计算,支持多种地图类型。
  • Measure Map Pro:这是一款iOS app,可以进行线条和面积的测量,支持多种地图类型。
  • Distance Calculator:这是一款iOS app,可以进行两点之间距离的计算,支持多种单位。

八、经纬度计算距离在线工具

如果你不想下载和安装任何软件,也可以使用在线经纬度计算距离工具进行计算。

下面是一些在线经纬度计算距离工具的介绍:

  • LatLong.net:这是一个免费的在线工具,可以计算两点之间的直线距离,并且可以选择不同的距离单位。
  • Distance Calculator:这是一个免费的在线工具,可以计算两点之间的直线距离、驾驶距离和飞行距离,支持全球范围。
  • GPS Coordinates:这是一个免费的在线工具,可以计算两点之间的距离、方位角和在球面上的间距离。

九、经纬度计算距离的弧度计算方法

除了上面介绍的球面三角形公式之外,还有一个通用的方法可以计算两点之间的距离,在计算过程中不考虑弧度。

function getDistanceByRadian(lat1, lng1, lat2, lng2) {
    var R = 6378.137;//地球半径
    var distance = R * Math.acos(Math.cos(lat1)*
    Math.cos(lat2)*Math.cos(lng2-lng1) + 
    Math.sin(lat1)*Math.sin(lat2));
    return distance;
}

结束语

在开发项目中,经常需要涉及经纬度计算距离的功能,我们可以选择自己编写计算公式,或者借助已有的工具进行计算,实现起来都不难。希望本文能够对大家有所帮助。

从经纬度计算距离到工具开发

2023-05-17
经纬度算距离详解

2023-05-18
Java实现经纬度距离计算方法

2023-05-17
java实现根据经纬度算距离,java计算经纬度

2022-11-23
Java实现经纬度距离计算,精确计算两点间距离的方法

2023-05-18
经纬度计算详解

2023-05-18
将经纬度放到mysql数据库中,mysql计算经纬度之间的距

2022-11-18
使用Java计算两个经纬度之间的距离

2023-05-20
百度地图经纬度详解

2023-05-17
mysql之数据库保存经纬度(mysql 经纬度)

2022-11-10
mysql数据库存储经度纬度(mysql根据经纬度排序)

2022-11-13
mysql数据库完整笔记(mysql数据库数据)

2022-11-13
Python经纬度转换为平面坐标详解

2023-05-20
Python实现的最短距离计算工具

2023-05-13
geohash算法的php,geohash算法的安全性

2022-11-27
百度经纬度详解

2023-05-18
包含东莞市经纬度json文件下载的词条

本文目录一览: 1、东莞的经纬度是多少 2、东莞市的经纬度? 3、广东省东莞市石龙镇 广东省惠州市博罗县园洲镇 烦请查查这两个地方的经纬度~ 4、如何通过经纬度信息,获得地址信息 5、如何获取一个地址

2023-12-08
cesiumjs详细教程(cesium开发教程)

本文目录一览: 1、Cesium在js中调用entity的infobox单机事件 2、Cesium初始化选项 3、Cesium随笔:视锥绘制(上) 4、cesium如何搭建dat.gui 5、Cesi

2023-12-08
印象笔记记录java学习(Java成长笔记)

2022-11-12
详解获取经纬度

2023-05-20