sql 坐标距离排序计算距离(转)

如果两个坐标的列是(x1,y1)、(x2,y2),那么他们之间的距离:
SQRT((X1-X2)*(X1-X2)+(Y1-Y2)*(Y1-Y2))

sql排序

SELECT * FROM m_store

ORDER BY

SQRT((121.517759-`longitude`)*(121.517759-`longitude`)+(31.178469-`latitude`)*(31.178469-`latitude`))

PHP计算距离

/**
*求两个已知经纬度之间的距离,单位为米
*@param lng1,lng2 经度
*@param lat1,lat2 纬度
*@return float 距离,单位米
*@author www.Alixixi.com
**/
function getdistance($lng1,$lat1,$lng2,$lat2){
//将角度转为狐度
$radLat1=deg2rad($lat1);//deg2rad()函数将角度转换为弧度
$radLat2=deg2rad($lat2);
$radLng1=deg2rad($lng1);
$radLng2=deg2rad($lng2);
$a=$radLat1-$radLat2;
$b=$radLng1-$radLng2;
$s=2*asin(sqrt(pow(sin($a/2),2)+cos($radLat1)*cos($radLat2)*pow(sin($b/2),2)))*6378.137*1000;
return $s;
}

echo getdistance(121.477551,31.270338, 118.782347,32.072796).‘米‘;

计算地球上两个坐标点(经度,纬度)之间距离sql函数

go
--计算地球上两个坐标点(经度,纬度)之间距离sql函数
--作者:lordbaby
--整理:www.aspbc.com
CREATE FUNCTION [dbo].[fnGetDistance](@LatBegin REAL, @LngBegin REAL, @LatEnd REAL, @LngEnd REAL) RETURNS FLOAT
  AS
BEGIN
  --距离(千米)
  DECLARE @Distance REAL
  DECLARE @EARTH_RADIUS REAL
  SET @EARTH_RADIUS = 6378.137
  DECLARE @RadLatBegin REAL,@RadLatEnd REAL,@RadLatDiff REAL,@RadLngDiff REAL
  SET @RadLatBegin = @LatBegin *PI()/180.0
  SET @RadLatEnd = @LatEnd *PI()/180.0
  SET @RadLatDiff = @RadLatBegin - @RadLatEnd
  SET @RadLngDiff = @LngBegin *PI()/180.0 - @LngEnd *PI()/180.0
  SET @Distance = 2 *ASIN(SQRT(POWER(SIN(@RadLatDiff/2), 2)+COS(@RadLatBegin)*COS(@RadLatEnd)*POWER(SIN(@RadLngDiff/2), 2)))
  SET @Distance = @Distance * @EARTH_RADIUS
  --SET @Distance = Round(@Distance * 10000) / 10000
  RETURN @Distance
END

使用:SELECT FROM 商家表名 WHEREdbo.fnGetDistance(121.4625,31.220937,longitude,latitude) < 5

C#计算两点GPS坐标距离

Code highlighting produced by Actipro CodeHighlighter (freeware)http://www.CodeHighlighter.com/--> /// <summary>
///计算两点GPS坐标的距离
/// </summary>
/// <param name="n1">第一点的纬度坐标</param>
/// <param name="e1">第一点的经度坐标</param>
/// <param name="n2">第二点的纬度坐标</param>
/// <param name="e2">第二点的经度坐标</param>
/// <returns></returns>
public static double Distance(double n1, double e1, double n2, double e2)
{
double jl_jd = 102834.74258026089786013677476285;
double jl_wd = 111712.69150641055729984301412873;
double b = Math.Abs((e1 - e2) * jl_jd);
double a = Math.Abs((n1 - n2) * jl_wd);
return Math.Sqrt((a * a + b * b));

}

时间: 2024-10-20 00:00:44

sql 坐标距离排序计算距离(转)的相关文章

sql中经度维度计算距离

------------------------------------------创建一个方法----------------------------------------------------------------------@LatBegin 纬度A(33.8703596)-- --@LngBegin 经度A(-117.9242966)-- --@LatEnd 纬度B(34.0392283)-- --@LngEnd 经度B(-117.8367681)-- CREATE FUNCTIO

sql语句分组/排序/计算总数/连接等sql语句书写

1.什么是表连接? 答:比如两张表,要获取的信息来自两张表,就需要通过外键的形式进行两张表的连接.最后产后组合信息. 表连接是通过join连接的.表连接说白了就是产生一个大表.表连接也都是用于查询上的,用户查询获得多种信息. 2.什么情况下用到分组? 答:涉及到每个“xxx字段”时,就是典型分组,要用group by xxx字段. 分组时,基本都要显示分组的字段,这样才能区分是哪个被分组的字段有什么数据. 比如从student表中查询每个院系有多少人 mysql> SELECT departme

根据用户经纬度,sql计算距离并排序

根据经纬度计算距离 public class DistanceUtil { // 地球平均半径 private static final double EARTH_RADIUS = 6378137; // 把经纬度转为度(°) private static double rad(double d) { return d * Math.PI / 180.0; } /** * 根据两点间经纬度坐标(double值),计算两点间距离,单位:千米 * @author ershuai * @param l

百度地图Api 根据两个坐标点计算距离

百度地图Android Sdk的Api里面,没有现成的直接获取两个坐标点之间距离的方法,但是,在jsapi里面,有直接计算距离的方法. class Point: pass def max(a,b): if a>b: return a return b def min(a,c): if a>c: return c return a def lw(a, b, c): # b != n && (a = Math.max(a, b)); # c != n && (a =

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

最近在网上搜索“通过经纬度坐标计算距离的方法”,发现网上大部分都是如下的代码: #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

用墨卡托和GPS坐标计算距离时误差测试

iOS墨卡托和GPS坐标计算距离时误差测试,测试结果: 墨卡托和gps坐标来回转换没有误差. 墨卡托坐标计算出的距离比gps坐标计算出的距离大,100/92*100 = 108米,每100米多算出8米. 故随着导航距离缩短,误差会逐渐变小. log 25.780135+0800 gps_mktDistanceTest[91276:1928266] mkt dis = 10.00 25.781216+0800 gps_mktDistanceTest[91276:1928266] gps dis =

地理空间距离计算及优化(根据两个点经纬度计算距离)

1.地理空间距离计算面临的挑战 打开美团app,不管是筛选团购还是筛选商家,默认的排序项都是"离我最近"或者"智能排序"(如下图所示). 不管是"离我最近"还是"智能排序",都涉及到计算用户位置与各个团购单子或者商家的距离(注:在智能排序中距离作为一个重要的参数参与排序打分).以筛选商家为例,北京地区有5~6w个POI(本文将商家称之为POI),当用户进入商家页,请求北京全城+所有品类+离我最近/智能排序时,我们筛选服务需要计

[转] 如何实现按距离排序、范围查找

简介 现在几乎所有的O2O应用中都会存在"按范围搜素.离我最近.显示距离"等等基于位置的交互,那这样的功能是怎么实现的呢?本文提供的实现方式,适用于所有数据库. 实现 为了方便下面说明,先给出一个初始表结构,我使用的是MySQL: CREATE TABLE `customer` ( `id` INT(11) UNSIGNED NOT NULL AUTO_INCREMENT COMMENT '自增主键', `name` VARCHAR(5) NOT NULL COMMENT '名称',

地理空间距离计算及优化(依据两个点经纬度计算距离)

1.地理空间距离计算面临的挑战 打开美团app.无论是筛选团购还是筛选商家,默认的排序项都是"离我近期"或者"智能排序"(例如以下图所看到的). 无论是"离我近期"还是"智能排序".都涉及到计算用户位置与各个团购单子或者商家的距离(注:在智能排序中距离作为一个重要的參数參与排序打分).以筛选商家为例.北京地区有5~6w个POI(本文将商家称之为POI),当用户进入商家页,请求北京全城+全部品类+离我近期/智能排序时.我们筛选服