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

一、经纬度计算距离公式

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

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;
}

结束语

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

原创文章,作者:小蓝,如若转载,请注明出处:https://www.506064.com/n/283600.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
小蓝小蓝
上一篇 2024-12-22 08:08
下一篇 2024-12-22 08:08

相关推荐

  • Python字典去重复工具

    使用Python语言编写字典去重复工具,可帮助用户快速去重复。 一、字典去重复工具的需求 在使用Python编写程序时,我们经常需要处理数据文件,其中包含了大量的重复数据。为了方便…

    编程 2025-04-29
  • 如何通过jstack工具列出假死的java进程

    假死的java进程是指在运行过程中出现了某些问题导致进程停止响应,此时无法通过正常的方式关闭或者重启该进程。在这种情况下,我们可以借助jstack工具来获取该进程的进程号和线程号,…

    编程 2025-04-29
  • 注册表取证工具有哪些

    注册表取证是数字取证的重要分支,主要是获取计算机系统中的注册表信息,进而分析痕迹,获取重要证据。本文将以注册表取证工具为中心,从多个方面进行详细阐述。 一、注册表取证工具概述 注册…

    编程 2025-04-29
  • Python运维工具用法介绍

    本文将从多个方面介绍Python在运维工具中的应用,包括但不限于日志分析、自动化测试、批量处理、监控等方面的内容,希望能对Python运维工具的使用有所帮助。 一、日志分析 在运维…

    编程 2025-04-28
  • t3.js:一个全能的JavaScript动态文本替换工具

    t3.js是一个非常流行的JavaScript动态文本替换工具,它是一个轻量级库,能够很容易地实现文本内容的递增、递减、替换、切换以及其他各种操作。在本文中,我们将从多个方面探讨t…

    编程 2025-04-28
  • Trocket:打造高效可靠的远程控制工具

    如何使用trocket打造高效可靠的远程控制工具?本文将从以下几个方面进行详细的阐述。 一、安装和使用trocket trocket是一个基于Python实现的远程控制工具,使用时…

    编程 2025-04-28
  • gfwsq9ugn:全能编程开发工程师的必备工具

    gfwsq9ugn是一个强大的编程工具,它为全能编程开发工程师提供了一系列重要的功能和特点,下面我们将从多个方面对gfwsq9ugn进行详细的阐述。 一、快速编写代码 gfwsq9…

    编程 2025-04-28
  • Python 编写密码安全检查工具

    本文将介绍如何使用 Python 编写一个能够检查用户输入密码安全强度的工具。 一、安全强度的定义 在实现安全检查之前,首先需要明确什么是密码的安全强度。密码的安全强度通常包括以下…

    编程 2025-04-27
  • Morphis: 更加简便、灵活的自然语言处理工具

    本文将会从以下几个方面对Morphis进行详细的阐述: 一、Morphis是什么 Morphis是一个开源的Python自然语言处理库,用于处理中心语言(目前仅支持英文)中的词性标…

    编程 2025-04-27
  • HR测试用例生成工具:hrtest的全面解析

    本文将从使用、功能、优点和代码示例等多个方面详细介绍HR测试用例生成工具hrtest。 一、使用 HR测试用例生成工具hrtest是一款可以自动生成测试用例的工具,省去了繁琐的手动…

    编程 2025-04-27

发表回复

登录后才能评论