mysql 计算gps坐标距离_mysql、sqlserver和php计算GPS经纬度坐标距离
摘要: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经纬度坐标距离相关推荐
- 通过经纬度坐标计算距离的方法(实为通过一个经纬度和距离角度求另一个经纬度)
转自:https://www.cnblogs.com/softfair/p/lat_lon_distance_bearing_new_lat_lon.html 通过经纬度坐标计算距离的方法(经纬度距离 ...
- wgs84 投影坐标转经纬度 代码_ArcGis中已知经纬度坐标转任意坐标系(以点和80坐标系为讲解模板)...
一般经纬度都是以度分秒的格式显示的,如图31-1所示. 图31-1: 我们转至WGS-84坐标需要进行十进制的转化,也就是把度分秒换算为以度为单位的一串数字.操作步骤:打开excel>选中代表经 ...
- 通过经纬度坐标计算距离
工作之余,贡献给大家一个公式,教你如何计算地球上两个点之间的距离. 以下公式输入两点的经纬度坐标即可计算,计算出的单位是 米 public static double getDistance(dou ...
- JS计算两个经纬度坐标与正北方向夹角
/** * 获取两个经纬度坐标正北方向夹角 * @param {Array} o_latlngs 原点经纬度坐标 [经度, 纬度] * @param {Array} latlngs 经纬度坐标 * @ ...
- 两个经纬度偏角_计算两个经纬度坐标与正北方向夹角
/** * 获取两个经纬度坐标正北方向夹角 * @param {Array} o_latlngs 原点经纬度坐标 [经度, 纬度] * @param {Array} latlngs 经纬度坐标 * @ ...
- Java 百度地图 根据经纬度(坐标) 获取乡镇
申请百度开放平台KEY(ak) 没申请,随便找了一个 参数说明: extensions_town:行政区划返回乡镇级数据(town),仅国内召回乡镇数据 coordtype:坐标的类型 bd09ll( ...
- Arcgis pro——获取经纬度坐标
一.该县级shp文件中不包含县的经纬度信息 二.要素转点 三.在每个县(区)中心都生成了一个点 四.添加XY坐标 五.生成县(区)经纬度坐标
- mysql算gps距离_mysql JS 计算两GPS坐标的距离函数:
sql: drop function getDistance; DELIMITER $$ CREATE DEFINER=`root`@`localhost` FUNCTION `getDistance ...
- mysql语句计算距离_mysql查询中的距离计算
小编典典 选项1:通过切换到支持GeoIP的数据库对数据库进行计算. 选项2:使用如下存储过程对数据库进行计算: CREATE FUNCTION calcDistance (latA double, ...
最新文章
- 逆转衰老!“70岁”小鼠经过数月治疗,肾脏皮肤血液细胞重返“年轻态”
- 算法学习:最小圆覆盖
- 搜索引擎——反向索引原理揭秘及手写ik分词器
- python作用域链_具有动态特性的Python嵌套作用域
- markdown不允许还有人不会
- 简述中断处理的6个步骤_计算机组成原理期末考试简答题重点分解
- 菜鸟谷歌浏览器打印组件技术分析
- catia 二次开发:高版本的catia vba项目在低版本的catia上运行,报错
- mysql角色权限关系表查询_用户、角色和权限,多表查询
- linux降调软件下载,o的发音有几种
- PE文件解析(1):Dos头与NT头
- Pytho读取Xml文件
- Python中用Matplotlib做多个纵轴(多y轴)
- 大数据学习-用户画像
- collection集合和源码
- PS海绵工具加深工具简单工具的区别
- Java(老白再次入门) - 语言基础
- WebGl之.wrl生成.stl文件
- Green Plum 非并行备份恢复方案
- 虚拟机VMware tools安装【转载】
热门文章
- 经典C语言程序100例之七七
- android自定义url协议,Android自定义URL方案…?
- 「SVN」Linux下svn命令使用的实践,个人记录~=傻瓜教程
- 2.5.jieba分词工具、Jieba安装、全模式/精确模式、添加自定义词典、关键词抽取、词性标注、词云展示
- 16、17、18_使用gridspec定义多子图,条形图(Bar plots),分组条形图,堆叠条形图(Stacked bar chart),饼图(Pie plots),甜甜圈图,嵌套饼图
- 06_pandas入门教程,引包,使用DataFrame和Series做一些事情
- Kettle使用_12 CSV文件仅并发运行与复制数量
- 基于mondrian的多维分析系统
- java做a_Java编程实现A*算法完整代码
- python写入一个文件之前可以不打开_如何用python实现真正的打开和关闭文件