SQLSERVER 根据地图经纬度计算距离差示例_MsSql

SQL SERVER 根据地图经纬度计算距离的公式

复制代码 代码如下:

go
--创建经纬度距离计算函数
CREATEFUNCTION [dbo].[fnGetDistance]
--LatBegin 开始经度
--LngBegin 开始维度
(@LatBegin REAL, @LngBegin REAL, @LatEnd REAL, @LngEnd REAL)
RETURNSFLOAT
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

@Distance的单位为:千米

时间: 2024-09-19 08:18:51

SQLSERVER 根据地图经纬度计算距离差示例_MsSql的相关文章

iOS 根据两点经纬度计算距离的示例

根据两点经纬度计算距离方法: - (double)latitudeAndLongitudeWithLon1:(double)lon1 lat1:(double)lat1 lon2:(double)lon2 lat2:(double)lat2{     double er = 6378137; // 6378700.0f;     //ave. radius = 6371.315 (someone said more accurate is 6366.707)     //equatorial r

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

java 经纬度计算 距离-java 经纬度计算距离 经纬和距离切换

问题描述 java 经纬度计算距离 经纬和距离切换 怎么根据一个点的经纬度查询 以这个点为中心距离为200米以内的在业务系统中做过表示的建筑. 比如 经纬度分别为:113.2759952545166 23.117055306224895,怎么能投计算以这个为中心点的做过标记的200以内的距离的经纬度呢? 在网上查了资料都是计算两个经纬度点的之间的距离,没有这个方圆多少米以内的经纬度算法,曾经也没有接触过,希望做过的朋友给个详细的说明或者给个提示.

Android获取经纬度计算距离介绍

经度指示南北方向,纵向纬度指示东西方向,横向 获取经纬度 使用GPS权限:复制代码 代码如下:<uses-permission android:name="android.permission.ACCESS_FINE_LOCATION"></uses-permission> Android提供LocationManager和Location,可以方便的获得经纬度.海拔等位置.使用LocationManager来获得位置管理类,从而可以获得历史GPS信息以及位置变

python根据经纬度计算距离示例_python

复制代码 代码如下: /** * 计算两点之间距离 * @param _lat1 - start纬度 * @param _lon1 - start经度 * @param _lat2 - end纬度 * @param _lon2 - end经度 * @return km(四舍五入) */public static double getDistance(double _lat1,double _lon1, double _lat2,double _lon2){ double lat1 = (Math

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函数      --作者:lo

SqlServer实现类似Oracle的before触发器示例_MsSql

1. 插入数据前判断数据是否存在 SET ANSI_NULLS ON GO SET QUOTED_IDENTIFIER ON GO -- ============================================= -- Author: <Author,,Name> -- Create date: <Create Date,,> -- Description: <Description,,> -- =============================

sqlserver数据库移动数据库路径的脚本示例_MsSql

复制代码 代码如下: USE masterGO DECLARE    @DBName sysname,    @DestPath varchar(256)DECLARE @DB table(    name sysname,    physical_name sysname) BEGIN TRY SELECT    @DBName = 'TargetDatabaseName',   --input database name    @DestPath = 'D:\SqlData\'       

SQLServer用存储过程实现插入更新数据示例_MsSql

实现 1)有相同的数据,直接返回(返回值:0): 2)有主键相同,但是数据不同的数据,进行更新处理(返回值:2): 3)没有数据,进行插入数据处理(返回值:1). [创建存储过程] Create proc Insert_Update @Id varchar(20), @Name varchar(20), @Telephone varchar(20), @Address varchar(20), @Job varchar(20), @returnValue int output as declar