根据经纬度算距离 | SQL

--计算地球上两个坐标点(经度,纬度)之间距离sql函数
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
/*
财富广场
经度:114.02644397853898
纬度:22.536917850961675
光大银行
经度:114.02633400796937
纬度:22.537137898472157
*/
SELECT id,name,dbo.fnGetDistance(114.02633400796937,22.537137898472157,gislng,gislat) as 距离  FROM yx_nurse
SELECT dbo.fnGetDistance(114.02633400796937,22.537137898472157,gislng,gislat) as 距离,yx_nurse.*  FROM yx_nurse WHERE dbo.fnGetDistance(114.02633400796937,22.537137898472157,gislng,gislat) < 0.100
时间: 2024-09-30 17:06:54

根据经纬度算距离 | SQL的相关文章

sql server中根据地图经纬度算距离

从别的地方烤过来的,自己试了一下,可以计算 出来,不过正确不正确的就不太懂了. USE [niaoren]GO/****** Object:  UserDefinedFunction [dbo].[fnGetDistance]    Script Date: 2017/7/28 星期五 12:17:56 ******/SET ANSI_NULLS ONGOSET QUOTED_IDENTIFIER ONGO  --计算地球上两个坐标点(经度,纬度)之间距离sql函数      --作者:lord

给出两点经纬度算距离

1 <span style="font-size:14px;font-weight: normal;"> 2 private static final double EARTH_RADIUS = 6378137;//赤道半径(单位m) 3 4 /** 5 * 转化为弧度(rad) 6 * */ 7 private static double rad(double d) 8 { 9 return d * Math.PI / 180.0; 10 } 11 12 /** 13 *

经纬度算距离

$sql='select * from users_location where latitude > '.$lat.'-1 and latitude < '.$lat.'+1 and longitude > '.$lon.'-1 and longitude < '.$lon.'+1 order by ACOS(SIN(('.$lat.' * 3.1415) / 180 ) *SIN((latitude * 3.1415) / 180 ) +COS(('.$lat.' * 3.14

利用经纬度算距离与角度

public static double GetDistance(double long1, double lat1, double long2, double lat2) { double a, b, R; R = 6378137; // 地球半径 lat1 = lat1 * Math.PI / 180.0; lat2 = lat2 * Math.PI / 180.0; a = lat1 - lat2; b = (long1 - long2) * Math.PI / 180.0; double

根据经纬度算距离

public double getDistance(double startLat,double startLong,double endLat,double endLong){ //startLong 起始坐标点经度 //startLat 起始坐标点维度 //endLong 目标坐标点经度 //endLat 目标坐标点维度 double lat1 = (Math.PI/180)*startLat; double lat2 = (Math.PI/180)*endLat; double lon1

PHP根据经纬度计算距离

思路: 公式: W为纬度对应的弧度,J为经度对应的弧度,如上图所示 下面代码  lat是纬度  lng是经度 /** * 根据经纬度算距离,返回结果单位是公里,先纬度,后经度 * @param $lat1 * @param $lng1 * @param $lat2 * @param $lng2 * @return float|int */ public function GetDistance($lat1, $lng1, $lat2, $lng2) { $EARTH_RADIUS = 6378.

记录两个函数--1.计算某个经纬度的周围某段距离的正方形的四个点。2.根据两点间的经纬度计算距离

前些日子在做手机网站开发的时候碰到这样一个需求,用某度地图的定位功能查看自己现在所在的位置,同时要显示出以自己为圆心,周围1000米以内的商家.功能很简单,拿到自己的经纬度,算出四个点的经纬度坐标,从数据库里拿出相对应的商家,显示在地图上即可,关键就是需要这么一个好用函数.还好找到了一个不错的,分享给大家,估计大家做到这一块的时候应该也会用到. /**  * 计算某个经纬度的周围某段距离的正方形的四个点  * 地球半径,平均半径为6371km  * @param lng float 经度  *

Java对关于两个地点的根据经纬度算出后排序

/** * 查询收货地址列表 * * @param request * @param wechatId * @return */ @RequestMapping("/weixin/address/queryRecentlyAddress") public AddressVo queryRecentlyAddress(HttpServletRequest request, Integer wechatId, AddressVo vo) { String openId = OauthUti

PHP根据两点间的经纬度计算距离,php两点经纬度计算(转)

这是一个不错的示例,直接贴代码,首先要知道纬度值.经度值 /** * @desc 根据两点间的经纬度计算距离 * @param float $lat 纬度值 * @param float $lng 经度值 */ function getDistance($lat1, $lng1, $lat2, $lng2) { $earthRadius = 6367000; //approximate radius of earth in meters /* Convert these degrees to r