摘要:mysql、sqlserver、oracle和php计算GPS经纬度坐标距离

mysql计算GPS经纬度距离DELIMITER $$

CREATEDEFINER=`root`@`localhost` FUNCTION`getDistance`(

lon1 float(10,7)

,lat1 float(10,7)

,lon2 float(10,7)

,lat2 float(10,7)

) RETURNSdouble

begin

declared double;

declareradius int;

setradius = 6378140; #假设地球为正球形,直径为6378140米

setd = (2*ATAN2(SQRT(SIN((lat1-lat2)*PI()/180/2)

*SIN((lat1-lat2)*PI()/180/2)+

COS(lat2*PI()/180)*COS(lat1*PI()/180)

*SIN((lon1-lon2)*PI()/180/2)

*SIN((lon1-lon2)*PI()/180/2)),

SQRT(1-SIN((lat1-lat2)*PI()/180/2)

*SIN((lat1-lat2)*PI()/180/2)

+COS(lat2*PI()/180)*COS(lat1*PI()/180)

*SIN((lon1-lon2)*PI()/180/2)

*SIN((lon1-lon2)*PI()/180/2))))*radius;

returnd;

end

mssql计算GPS经纬度距离SET ANSI_NULLS ON

GO

SET QUOTED_IDENTIFIER ON

GO

CREATE FUNCTION [dbo].[getDistance](@lng1 FLOAT,@lat1 FLOAT,@lng2 FLOAT,@lat2 FLOAT)

RETURNS FLOAT

AS

BEGIN

DECLARE @Distance FLOAT

DECLARE @EARTH_RADIUS FLOAT

SET @EARTH_RADIUS = 6378140

DECLARE @RadLatBegin FLOAT,

@RadLatEnd FLOAT,

@RadLatDiff FLOAT,

@RadLngDiff FLOAT

SET @RadLatBegin = @lat1 *PI()/ 180.0

SET @RadLatEnd = @lat2 *PI()/ 180.0

SET @RadLatDiff = @RadLatBegin - @RadLatEnd

SET @RadLngDiff = @lng1 *PI()/ 180.0 - @lng2 *PI()/ 180.0

SET @Distance = 2 *ASIN(

SQRT(

POWER(SIN(@RadLatDiff / 2), 2)+COS(@RadLatBegin)*COS(@RadLatEnd)

*POWER(SIN(@RadLngDiff / 2), 2)

)

)

SET @Distance =ROUND(@Distance * @EARTH_RADIUS,1)

--SET @Distance = Round(@Distance * 10000) / 10000

RETURN @Distance

END

PHP计算GPS经纬度坐标<?php

functionrad($d){

return$d* 3.1415926535898 / 180.0;

}

functionGetDistance($lat1, $lng1, $lat2, $lng2){

$EARTH_RADIUS= 6378.137;

$radLat1= rad($lat1);

$radLat2= rad($lat2);

$a= $radLat1- $radLat2;

$b= rad($lng1) - rad($lng2);

$s= 2 * asin(sqrt(pow(sin($a/2),2) + cos($radLat1)*cos($radLat2)*pow(sin($b/2),2)));

$s= $s*$EARTH_RADIUS;

$s= round($s* 10000) / 10000;

return$s;

}

echoGetDistance(116.480733,39.98684,117.480733,39.98684);

?>

Oracle计算GPS经纬度距离create or replace FUNCTION GET_DISTANCE

(

LNG1 IN NUMBER,

LAT1 IN NUMBER,

LNG2 IN NUMBER,

LAT2 IN NUMBER

) RETURN NUMBER IS

DISTANCE NUMBER:=0;

PI NUMBER:=3.141592625;

EARTH_RADIUS NUMBER :=6378140;

RADLATBEGIN NUMBER :=LAT1*PI/180.0;

RADLATEND NUMBER :=LAT2*PI/180.0;

RADLATDIFF NUMBER :=RADLATBEGIN-RADLATEND;

RADLNGDIFF NUMBER :=LNG1*PI/180.0-LNG2*PI/180.0;

BEGIN

DISTANCE:=2*ASIN(SQRT(POWER(SIN(RADLATDIFF/2),2)+COS(RADLATBEGIN)*COS(RADLATEND)*POWER(SIN(RADLNGDIFF/2),2)));

DISTANCE:=ROUND(DISTANCE*EARTH_RADIUS,1);

RETURN DISTANCE;

END GET_DISTANCE;

mysql 计算gps坐标距离_mysql、sqlserver和php计算GPS经纬度坐标距离相关推荐

  1. 通过经纬度坐标计算距离的方法(实为通过一个经纬度和距离角度求另一个经纬度)

    转自:https://www.cnblogs.com/softfair/p/lat_lon_distance_bearing_new_lat_lon.html 通过经纬度坐标计算距离的方法(经纬度距离 ...

  2. wgs84 投影坐标转经纬度 代码_ArcGis中已知经纬度坐标转任意坐标系(以点和80坐标系为讲解模板)...

    一般经纬度都是以度分秒的格式显示的,如图31-1所示. 图31-1: 我们转至WGS-84坐标需要进行十进制的转化,也就是把度分秒换算为以度为单位的一串数字.操作步骤:打开excel>选中代表经 ...

  3. 通过经纬度坐标计算距离

    工作之余,贡献给大家一个公式,教你如何计算地球上两个点之间的距离. 以下公式输入两点的经纬度坐标即可计算,计算出的单位是  米 public static double getDistance(dou ...

  4. JS计算两个经纬度坐标与正北方向夹角

    /** * 获取两个经纬度坐标正北方向夹角 * @param {Array} o_latlngs 原点经纬度坐标 [经度, 纬度] * @param {Array} latlngs 经纬度坐标 * @ ...

  5. 两个经纬度偏角_计算两个经纬度坐标与正北方向夹角

    /** * 获取两个经纬度坐标正北方向夹角 * @param {Array} o_latlngs 原点经纬度坐标 [经度, 纬度] * @param {Array} latlngs 经纬度坐标 * @ ...

  6. Java 百度地图 根据经纬度(坐标) 获取乡镇

    申请百度开放平台KEY(ak) 没申请,随便找了一个 参数说明: extensions_town:行政区划返回乡镇级数据(town),仅国内召回乡镇数据 coordtype:坐标的类型 bd09ll( ...

  7. Arcgis pro——获取经纬度坐标

    一.该县级shp文件中不包含县的经纬度信息 二.要素转点 三.在每个县(区)中心都生成了一个点 四.添加XY坐标 五.生成县(区)经纬度坐标

  8. mysql算gps距离_mysql JS 计算两GPS坐标的距离函数:

    sql: drop function getDistance; DELIMITER $$ CREATE DEFINER=`root`@`localhost` FUNCTION `getDistance ...

  9. mysql语句计算距离_mysql查询中的距离计算

    小编典典 选项1:通过切换到支持GeoIP的数据库对数据库进行计算. 选项2:使用如下存储过程对数据库进行计算: CREATE FUNCTION calcDistance (latA double, ...

最新文章

  1. 逆转衰老!“70岁”小鼠经过数月治疗,肾脏皮肤血液细胞重返“年轻态”
  2. 算法学习:最小圆覆盖
  3. 搜索引擎——反向索引原理揭秘及手写ik分词器
  4. python作用域链_具有动态特性的Python嵌套作用域
  5. markdown不允许还有人不会
  6. 简述中断处理的6个步骤_计算机组成原理期末考试简答题重点分解
  7. 菜鸟谷歌浏览器打印组件技术分析
  8. catia 二次开发:高版本的catia vba项目在低版本的catia上运行,报错
  9. mysql角色权限关系表查询_用户、角色和权限,多表查询
  10. linux降调软件下载,o的发音有几种
  11. PE文件解析(1):Dos头与NT头
  12. Pytho读取Xml文件
  13. Python中用Matplotlib做多个纵轴(多y轴)
  14. 大数据学习-用户画像
  15. collection集合和源码
  16. PS海绵工具加深工具简单工具的区别
  17. Java(老白再次入门) - 语言基础
  18. WebGl之.wrl生成.stl文件
  19. Green Plum 非并行备份恢复方案
  20. 虚拟机VMware tools安装【转载】

热门文章

  1. 经典C语言程序100例之七七
  2. android自定义url协议,Android自定义URL方案…?
  3. 「SVN」Linux下svn命令使用的实践,个人记录~=傻瓜教程
  4. 2.5.jieba分词工具、Jieba安装、全模式/精确模式、添加自定义词典、关键词抽取、词性标注、词云展示
  5. 16、17、18_使用gridspec定义多子图,条形图(Bar plots),分组条形图,堆叠条形图(Stacked bar chart),饼图(Pie plots),甜甜圈图,嵌套饼图
  6. 06_pandas入门教程,引包,使用DataFrame和Series做一些事情
  7. Kettle使用_12 CSV文件仅并发运行与复制数量
  8. 基于mondrian的多维分析系统
  9. java做a_Java编程实现A*算法完整代码
  10. python写入一个文件之前可以不打开_如何用python实现真正的打开和关闭文件