计算经纬度之间距离

传递两个经纬度,计算中间的距离,单位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:        <gaoxing>
-- Create date: <2015-09-22>
-- Description:    <计算两个经纬度之间的距离>
-- =============================================
--创建经纬度距离计算函数
 ALTER FUNCTION [dbo].[fnGetDistance]
 --LatBegin 开始经度
 --LngBegin 开始维度
(@LatBegin float, @LngBegin float, @LatEnd float, @LngEnd float)  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 Round(@Distance,2)
END
 
时间: 2024-10-10 01:43:18

计算经纬度之间距离的相关文章

C#面向对象思想计算两点之间距离

题目为计算两点之间距离. 面向过程的思维方式,两点的横坐标之差,纵坐标之差,平方求和,再开跟,得到两点之间距离. using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; namespace Classes_2_point_distance { class Program { static void Main(string[

计算经纬度、距离、方位角

1.根据两点经纬度计算其间距离,发现有3种公式,结果区别不是很大. 2.根据一点的经纬度与到另外一点的距离.方位角,计算另一点的经纬度,误差不是很大. 1 package com.zhs.util; 2 3 /** 4 * 5 * 计算经纬度.距离.方位角 6 * 7 * @author lillian.he 8 * @time 2016-06-02 9 * */ 10 public class CalculationLogLatDistance { 11 /** 12 * 地球赤道半径(km)

两点经纬度之间距离计算

辅助类 GaoDeCoord.cs GaoDeCoord.cs using System; using System.Collections.Generic; using System.Configuration; using System.Linq; using System.Text; namespace RB.Common { #region 高德地图求范围自有数据 /// <summary> /// 经纬度坐标 /// </summary> public class Deg

获取经纬度之间距离的Java工具类

public class GeoUtil {          /**      * 根据经纬度和距离返回一个矩形范围      *       * @param lng      *            经度      * @param lat      *            纬度      * @param distance      *            距离(单位为米)      * @return [lng1,lat1, lng2,lat2] 矩形的左下角(lng1,lat1

java 计算两个经纬度之间距离

public class Distance{ private static final double EARTH_RADIUS = 6378137;    private static double rad(double d)    {       return d * Math.PI / 180.0;    }        /**     * 根据两点间经纬度坐标(double值),计算两点间距离,单位为米     * @param lng1     * @param lat1     * 

C# 通过GPS坐标,计算两点之间距离

之前在网上有很多这种计算的,但是代码都不怎么全.经过多方打听查询.找到完整代码.现将代码共享给大家. 有需要者觉得有用者欢迎使用.觉得用或简单的高手,请绕. public static double GetDistance(double lat1, double lng1, double lat2, double lng2) { double radLat1 = rad(lat1); double radLat2 = rad(lat2); double a = radLat1 - radLat2

两经纬度之间的距离计算

以下是计算两经纬度之间距离的代码,分为:头文件.源代码和测试代码三部分.具体如下: 1 // LatLonDistanceDlg.h : 头文件 2 // 3 4 #pragma once 5 6 typedef struct 7 { 8 double dLongitude; 9 double dLatitude; 10 }MyLatLong_T,*pMyLatLong_T; 11 12 // CLatLonDistanceDlg 对话框 13 class CLatLonDistanceDlg

获取经纬度之间两点间真实距离(适用于GoogleMap,BaiduMap,Amap等)

如何获取经纬度之间两点间真实距离(适用于GoogleMap,BaiduMap,Amap等) 目标:使用百度定位sdk开发实时移动距离计算功能,根据经纬度的定位,计算行驶公里数并实时刷新界面显示.大家都知道定位有三种方式:GPS .Wifi . 基站 .误差方面的话,使用GPS误差在10左右,Wifi则在20 - 300左右 ,而使用基站则误差在100 - 300左右的样子,因为在室内GPS是定位不到的,必须在室外,而我们项目的需求正好需要使用GPS定位,所以我们这里设置GPS优先.车,不可能在室

经纬度地点之间距离测算

SQL脚本 思路:计算经纬度之间球面距离,返回单位:米 6378137*2*ASIN(SQRT(POWER(SIN((destination_lat-endpoint_lat)*ACOS(-1)/360),2) +COS(destination_lat*ACOS(-1)/180)*COS(endpoint_lat*ACOS(-1)/180) *POWER(SIN((destination_lon-endpoint_lon)*ACOS(-1)/360),2))) SQL案例: select 637