Mysql 数据库,经纬度距离计算/经纬度范围检索 (谷歌方案)

SELECT
  id, (
    6371 * acos (
      cos ( radians(78.3232) )
      * cos( radians( 数据库纬度字段) )
      * cos( radians( 数据库经度字段) - radians(65.3234) )
      + sin ( radians(78.3232) )
      * sin( radians( 数据库纬度字段 ) )     )   ) AS distanceFROM tb_hotel HAVING distance < 0.4 ORDER BY distance LIMIT 0 , 20;

"distance"字段, 数据单位为公里 ( KM ) 。

该SQL语句将找到距离纬度:78.3232、经度:65.3234坐标0.4公里里范围内最近的20个位置。它根据该行的经纬度和目标经纬度计算距离,然后只要求距离值小于30公里的行,按距离对整个查询排序,并将其限制为20个结果。

在线经纬度获取:http://www.gpsspg.com/maps.htm    仅供学习参考

转自:https://www.cnblogs.com/Zhusi/p/11470670.html

出处:https://www.iteye.com/blog/justcoding-2224906 上面有更多的计算方式

原文地址:https://www.cnblogs.com/yellowS/p/11909906.html

时间: 2024-10-02 21:05:10

Mysql 数据库,经纬度距离计算/经纬度范围检索 (谷歌方案)的相关文章

【转】通过经纬度坐标计算距离的方法(经纬度距离计算)

最近在网上搜索“通过经纬度坐标计算距离的方法”,发现网上大部分都是如下的代码: #define PI 3.14159265 static double Rc = 6378137;  // 赤道半径 static double Rj = 6356725;  // 极半径 class JWD { public: double m_Longitude, m_Latitude; double m_RadLo, m_RadLa; double Ec; double Ed; public: JWD(doub

sql 经纬度范围检索(谷歌方案)

SELECT id, ( 6371 * acos ( cos ( radians(78.3232) ) * cos( radians( 数据库纬度字段) ) * cos( radians( 数据库经度字段) - radians(65.3234) ) + sin ( radians(78.3232) ) * sin( radians( latitude ) ) ) ) AS distance , name FROM tb_hotel HAVING distance < 0.4 ORDER BY d

通过经纬度坐标计算距离的方法(经纬度距离计算)

http://home.juedui100.com/user/23468184.htmlhttp://home.juedui100.com/user/23771088.htmlhttp://home.juedui100.com/user/24018651.htmlhttp://home.juedui100.com/user/23875372.htmlhttp://home.juedui100.com/user/23874288.htmlhttp://home.juedui100.com/user

计算经纬度之间距离

传递两个经纬度,计算中间的距离,单位km USE [Witbank_Times] GO /****** Object: UserDefinedFunction [dbo].[fnGetDistance] Script Date: 2016/9/9 15:23:10 ******/ SET ANSI_NULLS ON GO SET QUOTED_IDENTIFIER ON GO -- ============================================= -- Author:

转:mysql 下 计算 两点 经纬度 之间的距离 计算结果排序

转自cdsn:https://blog.csdn.net/u013160024/article/details/43635053?utm_source=blogxgwz0 公式如下,单位米: 第一点经纬度:lng1 lat1 第二点经纬度:lng2 lat2 round(6378.138*2*asin(sqrt(pow(sin( (lat1*pi()/180-lat2*pi()/180)/2),2)+cos(lat1*pi()/180)*cos(lat2*pi()/180)* pow(sin(

根据经纬度和半径计算经纬度范围,根据两点经纬度计算距离

这些经纬线是怎样定出来的呢?地球是在不停地绕地轴旋转(地轴是一根通过地球南北两极和地球中心的假想线),在地球中腰画一个与地轴垂直的大圆圈,使圈上的每一点都和南北两极的距离相等,这个圆圈就叫作“赤道”.在赤道的南北两边,画出许多和赤道平行的圆圈,就是“纬圈”:构成这些圆圈的线段,叫做纬线.我们把赤道定为纬度零度,向南向北各为90度,在赤道以南的叫南纬,在赤道以北的叫北纬.北极就是北纬90度,南极就是南纬90度.纬度的高低也标志着气候的冷热,如赤道和低纬度地地区无冬,两极和高纬度地区无夏,中纬度地区

给你两个经纬度,计算他们之间的距离

原文:给你两个经纬度,计算他们之间的距离 这些经纬线是怎样定出来的呢?地球是在不停地绕地轴旋转(地轴是一根通过地球南北两极和地球中心的假想线),在地球中腰画一个与地轴垂直的大圆圈,使圈上的每一点都和南北两极的距离相等,这个圆圈就叫作“赤道”.在赤道的南北两边,画出许多和赤道平行的圆圈,就是“纬圈”:构成这些圆圈的线段,叫做纬线.我们把赤道定为纬度零度,向南向北各为90度,在赤道以南的叫南纬,在赤道以北的叫北纬.北极就是北纬90度,南极就是南纬90度.纬度的高低也标志着气候的冷热,如赤道和低纬度地

全球78707个主要城市信息MYSQL数据库,包含经纬度坐标值

全世界78707个主要城市信息MYSQL数据库,包含经纬度坐标值,已经导出成了SQL文件,因为比较大,有10M,所以这里单独导出来,供升级失败的同学手工导入,如图: 这个数据主要是用于天气预报插件的,天气预报插件,需要首先从这个库里面,查询城市的ID,在把ID传给接口,返回天气预报数据. 这里上传不了附件,下载请去官方博客:http://blog.erdaicms.com/lvyou/97

经纬度 范围 距离 计算

private const double EARTH_RADIUS = 6378.137;//地球半径         private static double RAD = Math.PI / 180.0;        //获取两个经纬度之间的距离         public static double GetDistance(double lng1, double lat1, double lng2, double lat2)        {            double rad