`
thomas0988
  • 浏览: 486085 次
  • 性别: Icon_minigender_1
  • 来自: 南阳
社区版块
存档分类
最新评论

数据库中计算两地图坐标点之间的距离

 
阅读更多
CREATE OR REPLACE FUNCTION DISTANCEBYLNGLAT(LNG1 IN NUMBER,
                                            LAT1 IN NUMBER,
                                            LNG2 IN NUMBER,
                                            LAT2 IN NUMBER) RETURN NUMBER IS
  /********************
  数据库中计算两地图坐标点之间的距离
  返回公里数
  ********************/
  RADLAT1 NUMBER;
  RADLAT2 NUMBER;
  A       NUMBER;
  B       NUMBER;
  S       NUMBER;
BEGIN
  RADLAT1 := (LAT1 * ACOS(-1)) / 180.0;
  RADLAT2 := (LAT2 * ACOS(-1)) / 180.0;
  A       := RADLAT1 - RADLAT2;
  B       := ((LNG1 * ACOS(-1)) / 180.0) - ((LNG2 * ACOS(-1)) / 180.0);
  S       := 2 *
             ASIN(SQRT(POWER(SIN(A / 2), 2) +
                       COS(RADLAT1) * COS(RADLAT2) * POWER(SIN(B / 2), 2)));
  S       := S * 6378137.0; --取WGS84标准参考椭球中的地球长半径(单位:M)
  S       := ROUND(S * 10) / 10000;
  RETURN S;
END DISTANCEBYLNGLAT;

 附带javascript

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">

<html xmlns="http://www.w3.org/1999/xhtml" >
<head runat="server">
    <title>无标题页</title>
    <script type="text/javascript">  
    function distanceByLnglat(lng1,lat1,lng2,lat2)
{
    var radLat1 = Rad(lat1);
	alert(lat1+"-->"+radLat1);
    var radLat2 = Rad(lat2);
    var a = radLat1 - radLat2;
    var b = Rad(lng1) - Rad(lng2);
    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 * 6378137.0;// 取WGS84标准参考椭球中的地球长半径(单位:m)
    s = Math.round(s * 10000) / 10000;
alert(s);
// //下面为两点间空间距离(非球面体)
// var value= Math.pow(Math.pow(lng1-lng2,2)+Math.pow(lat1-lat2,2),1/2);
// alert(value);
}

function Rad(d)
{
    return d * Math.PI / 180.0;
}
    </script>
</head>
<body>
    <form id="form1" runat="server">
    <div onclick ="distanceByLnglat(116.95400,39.95400,116.95300,39.95300);">
    test me
    </div>
    </form>
</body>
</html>

 

分享到:
评论

相关推荐

    flutter + SpringBoot + MySql 实现高德地图定位获取位置信息插入数据库并计算出经纬度之间的距离

    flutter + SpringBoot + MySql 实现高德地图定位获取位置信息插入数据库并计算出经纬度之间的距离

    利用java、js或mysql计算高德地图中两坐标之间的距离

    在本文中,我们将探讨如何利用Java、JavaScript(JS)以及MySQL来计算高德地图中两个坐标点之间的距离。首先,我们需要了解的是,高德地图使用的是WGS84坐标系,这是一种全球通用的地理坐标系统,它以经纬度来表示...

    MySQL计算两个坐标之间的直线距离函数

    MySQL自定义函数,用于计算地图上两点之间的直线距离。网上很多的计算方式都不正确,这个函数经过自己编写调试,计算结果相对准确。

    mysql函数-根据经纬度坐标计算距离

    本篇文章将详细介绍如何利用MySQL的内置函数和数学公式来计算两个经纬度坐标点之间的距离。 首先,我们需要了解地球上两点之间的距离计算方法。在地球表面上,两点间的最短距离是大圆航线(Great Circle Distance)...

    腾讯地图行政区域经纬度转Mysql国内地区数据库

    腾讯地图提供的数据集,如“腾讯地图行政区域经纬度转Mysql国内地区数据库”,为开发者提供了便利,可以将这些数据整合到MySQL数据库中,以便进行地理定位、距离计算和其他相关功能。以下是对这个主题的详细讲解: ...

    php实现计算百度地图坐标之间距离的方法

    第二个函数是GetDistance,用于计算两个经纬度坐标点之间的距离。 首先,我们定义了常量PI和EARTH_RADIUS,分别代表圆周率π和地球半径(单位为公里)。然后,我们开始定义GetRange函数,该函数接收纬度($lat)、...

    经纬坐标计算实际距离

    这个C#程序显然专注于根据经纬度来计算两个地点之间的实际距离,这对于各种应用,如导航、地图服务、物流优化等至关重要。下面我们将深入探讨经纬坐标计算实际距离的相关知识点。 首先,我们需要了解经纬坐标系统。...

    中国省份地图边界经纬度坐标点集合.zip

    2. **地理分析**:结合其他地理数据,如人口、GDP等,可以进行空间分析,例如省份之间的距离计算、区域覆盖分析等。 3. **地理定位**:在移动应用或网站上,可以利用这些边界数据判断用户所在位置是否在某一省份内...

    计算两经纬度之间的距离存储过程_mysql

    通过创建这个存储过程,可以方便地在MySQL中计算两点之间的距离,这对于地理信息系统(GIS)应用非常有用。此外,这种方法还可以扩展到其他领域,如物流管理和导航服务等。存储过程中使用了球面三角公式来精确计算两...

    两经纬度之间的距离

    为了计算两个经纬度点之间的距离,我们可以利用地理学中的球面三角公式或者Haversine公式。 Haversine公式是一种计算地球上两点间大圆距离的常用方法,它考虑了地球的曲率。公式如下: \[ a = \sin^2\left(\frac{\...

    Java通过经纬度坐标获取两个点之间的直线距离的示例

    在实现经纬度坐标获取两个点之间的直线距离时,需要先获取每个人的经纬度坐标,并存储到数据库中。然后,通过SQL语句获取指定距离范围内的用户列表。最后,通过计算自己与用户之间的距离,获取距离范围内的用户列表...

    小程序中计算两地之间的距离.zip

    - 计算两个经纬度坐标点之间的距离,可以使用著名的哈弗辛公式(Haversine Formula),它基于地球的半径和两个坐标点的经纬度差值来计算。 - 前端代码通常会封装一个函数,输入两个坐标对象,返回它们之间的距离,...

    根据定位经纬度计算距离.txt

    具体而言,文档中提供了两个函数:`APPDISTANCE` 和 `DISTANCE_CONVERT`,用于计算基于经纬度的两点间距离,并将该距离转换为更易读的格式。 #### APPDISTANCE 函数 `APPDISTANCE` 函数的主要目的是接收两个地理...

    高德地图坐标拾取器

    8. **拓展应用**:除了基本的坐标获取,高德地图坐标拾取器还可以扩展出更多功能,如距离计算、面积测量、路径规划等,进一步提升其在各种应用场景中的实用性。 综上所述,“高德地图坐标拾取器”是一款高效且功能...

    百度地图的纠偏数据库

    在IT行业中,尤其是在地理信息系统(GIS)和导航应用领域,"百度地图的纠偏数据库"是一个重要的技术概念。这个数据库的主要功能是解决GPS数据在百度地图上显示时可能出现的位置偏差问题。下面将详细阐述这一技术及其...

    java判断百度地图的点是否在多边形区域内

    1. **坐标系统与投影**:首先,我们需要了解地图坐标系统。百度地图采用的是GCJ-02(火星坐标系),这是一个由中国国家测绘局制定的加密坐标系统。在进行计算时,我们可能需要将GPS获取的WGS-84坐标转换为GCJ-02坐标...

    c# winfrom/asp.net实现查看附近的人和两个人之间的距离计算

    在C# WinForm和ASP.NET应用中,实现“查看附近的人”功能并计算两人之间的距离,通常涉及到地理定位和空间坐标处理。这个功能在社交应用、地图服务或基于位置的业务中非常常见。以下是一些关键知识点的详细介绍: 1...

    百度地图实现距离测量和面积测量源码.zip

    对于“距离测量”,百度地图API提供了一套完整的地理坐标系统,可以计算两个或多个点之间的直线距离,也可以模拟实际道路行驶距离。在实际应用中,通常通过获取用户点击地图产生的坐标点,然后调用API提供的计算距离...

    MSR.rar_msr_msr离线程序_数据库地图_最 地图 短路径 求解_鏈? 鍦板浘 鐭矾寰?姹傝В

    这个程序设计简洁高效,能够从数据库中提取地图数据,并计算出两点之间的最短路径,同时支持动态动画展示,使用户可以直观地观察路径的形成过程。 **Dijkstra算法**是图论中用于寻找单源最短路径的经典算法,由荷兰...

Global site tag (gtag.js) - Google Analytics