-
2021-11-04 15:52:14
latitude(LATITUDE) : 纬度
longitude(LONGITUDE) : 经度ROUND( 6378.138 * 2 * ASIN( SQRT( POW(SIN((#{query.latitude} * PI() / 180- LATITUDE * PI() / 180) / 2),2) + COS(#{query.latitude} * PI() / 180) * COS(LATITUDE * PI() / 180) * POW(SIN((#{query.longitude} * PI() / 180- LONGITUDE * PI() / 180) / 2),2) ) ) * 10000 ) AS DIS
更多相关内容 -
计算经纬度之间的距离(百度经纬度)
2017-10-30 09:51:48计算百度经纬度的公式,已经写在Excel里面了,直接输入两个点的经纬度就可以自动计算出公司 -
Excel计算经纬度点之间的距离
2017-12-08 09:30:48可以利用Excel计算两个经纬度点(wgs84椭球)之间的距离 -
Mysql 计算经纬度距离
2022-01-20 10:49:07Mysql 函数 CREATE DEFINER=`root`@`localhost` FUNCTION ... 函数说明: 用于计算经纬度距离,单位为米 参数一:经纬度1 参数二:维度1 参数三:经纬度2 参数四:维度2 */ declare jl integer; SELMysql 函数
CREATE DEFINER=`root`@`localhost` FUNCTION `juli`(lon1 VARCHAR(50),lat1 VARCHAR(50),lon2 VARCHAR(50),lat2 VARCHAR(50)) RETURNS int(11) BEGIN /* 函数说明: 用于计算经纬度距离,单位为米 参数一:经纬度1 参数二:维度1 参数三:经纬度2 参数四:维度2 -- 考虑到业务逻辑可能会出现不传递经纬度参数,所以做了一个判断,如果 lon1 经度1 传递的是 0 那么直接返回0 , */ declare jl integer; IF lon1 = '0' THEN return 0; ELSE SELECT ROUND( 6378.138 * 2 * ASIN( SQRT( POW( SIN( ( lat1 * PI() / 180 - lat2 * PI() / 180 ) / 2 ), 2 ) + COS(lat1 * PI() / 180) * COS(lat2 * PI() / 180) * POW( SIN( ( lon1 * PI() / 180 - lon2 * PI() / 180 ) / 2 ), 2 ) ) ) * 1000 ) into jl; return jl; END if; END
使用
select juli(经度1,维度1, 经度2, 维度2);
-
java实现经纬度计算距离
2021-03-23 17:12:59通过java实现两个经纬度的点之间的距离,获取外卖配送的距离,方便快捷有效,非常实用,代码简洁,不臃肿。 -
MySQL计算经纬度距离
2021-03-25 21:34:33MySQL计算经纬度距离 现在开发计算距离自身所在地到目的地的距离算是一个比较常见的需求,基本上都是通过两地的经纬度查询直线距离,忘记之前自己有没有写过,反正印象都是通过一定的算法来获取的。 今天开发一个...MySQL计算经纬度距离
现在开发计算距离自身所在地到目的地的距离算是一个比较常见的需求,基本上都是通过两地的经纬度查询直线距离,忘记之前自己有没有写过,反正印象都是通过一定的算法来获取的。
今天开发一个需求,发现有用到这个东西,于是就打算搜索一下算法,然后在MySQL中写一个函数,方便自己以后或者他人多次调用,这样SQL也整洁很多。
在处理的过程中,无意间发现MySQL 5.7版本自带有经纬度计算的函数,那还写个毛线,直接拿来用就行。不过嘛,现成的是有了,还是要做一下验证的。
MYSQL经纬度函数
-
官网说明:https://dev.mysql.com/doc/refman/5.7/en/spatial-convenience-functions.html#function_st-distance-sphere
-
ST_Distance_Sphere(g1, g2 [, radius])
Returns the mimimum spherical distance between two points and/or multipoints on a sphere, in meters, or
NULL
if any geometry argument isNULL
or empty.Calculations use a spherical earth and a configurable radius. The optional
radius
argument should be given in meters. If omitted, the default radius is 6,370,986 meters. AnER_WRONG_ARGUMENTS
error occurs if theradius
argument is present but not positive.The geometry arguments should consist of points that specify (longitude, latitude) coordinate values:
- Longitude and latitude are the first and second coordinates of the point, respectively.
- Both coordinates are in degrees.
- Longitude values must be in the range (-180, 180]. Positive values are east of the prime meridian.
- Latitude values must be in the range [-90, 90]. Positive values are north of the equator.
Supported argument combinations are (
Point
,Point
), (Point
,MultiPoint
), and (MultiPoint
,Point
). AnER_GIS_UNSUPPORTED_ARGUMENT
error occurs for other combinations.If any geometry argument is not a syntactically well-formed geometry byte string, an
ER_GIS_INVALID_DATA
error occurs.mysql> SET @pt1 = ST_GeomFromText('POINT(0 0)'); mysql> SET @pt2 = ST_GeomFromText('POINT(180 0)'); mysql> SELECT ST_Distance_Sphere(@pt1, @pt2); +--------------------------------+ | ST_Distance_Sphere(@pt1, @pt2) | +--------------------------------+ | 20015042.813723423 | +--------------------------------+
函数使用示例
select ST_Distance_Sphere(point(114.029381, 22.60939),point(114.012108,22.53652))from dual;
函数有效性验证
-
百度地址到三个地方的距离
-
使用经纬度函数到三地的距离
--深圳北站:8294.58m select ST_Distance_Sphere(point(114.029381,22.60939),point(114.012108,22.53652)) from dual; --中山小榄车站:78812.50m select ST_Distance_Sphere(point(113.258316,22.671085),point(114.012108,22.53652)) from dual; --广州南站:91251.88m select ST_Distance_Sphere(point(113.269325,22.988558),point(114.012108,22.53652)) from dual;
-
结论
总的来说误差在100米左右,还是可以接受的。
-
-
批量计算经纬度距离2
2012-06-13 19:10:25增加差异测距,即支持中心测距及前后差异测距 -
java 计算经纬度坐标距离
2021-02-12 13:26:06public class tset1 {public static void main(String[] args) {//for (int i = 0; i < 5; i++) {//System.out.println(UUIDUtil.getUUID());//}//double s=getDistatce(112.179911,37.208558,112.180379,37.2101...public class tset1 {
public static void main(String[] args) {
//for (int i = 0; i < 5; i++) {
//System.out.println(UUIDUtil.getUUID());
//}
//double s=getDistatce(112.179911,37.208558,112.180379,37.21011);
//double s=getDistatce(112.179911,112.180379,37.208558,37.21011);
double s=getDistatce(37.208558,37.21011,112.179911,112.180379);
System.out.println(s);
}
//private final static double EARTH_RADIUS = 6378.137;
//
//private static double rad(double d) {
//return d * Math.PI / 180.0;
//}
//
//public static double GetDistance(double lat1, double lng1, double lat2,
//double lng2) {
//double radLat1 = rad(lat1);
//double radLat2 = rad(lat2);
//double a = radLat1 - radLat2;
//double b = rad(lng1) - rad(lng2);
//double s = 2 * Math.asin(Math.sqrt(Math.pow(Math.sin(a / 2), 2)
//+ Math.cos(radLat1) * Math.cos(radLat2)
//* Math.pow(Math.sin(b / 2), 2)));
//s = s * EARTH_RADIUS;
//s = Math.round(s * 10000) / 10000;
//return s;
//}
public static double getDistatce(double lat1, double lat2, double lon1, double lon2) {
double R = 6371;
double distance = 0.0;
double dLat = (lat2 - lat1) * Math.PI / 180;
double dLon = (lon2 - lon1) * Math.PI / 180;
double a = Math.sin(dLat / 2) * Math.sin(dLat / 2)
+ Math.cos(lat1 * Math.PI / 180)
* Math.cos(lat2 * Math.PI / 180) * Math.sin(dLon / 2)
* Math.sin(dLon / 2);
distance = (2 * Math.atan2(Math.sqrt(a), Math.sqrt(1 - a))) * R;
return distance;
}
}
-
SuperMap Objects .NET计算经纬度面积
2017-12-15 11:48:14将数据集中显示为度的面积单位转换为常用的平方米单位制,并将转换后数据更新到数据集属性表中 -
使用redisTemplate-geo计算经纬度距离
2022-03-14 10:10:27业务中常有需求是计算经纬度之间的距离,redis是使用较多的缓存中间件,正好有关于geo位置计算的api,可以直接拿来用. demo展示 直接上demo代码 package com.felix.spring_cloud_one.service; import ... -
java计算经纬度距离
2021-08-09 14:03:33} /** * @描述 经纬度获取距离,单位为米 * @参数 [lat1, lng1, lat2, lng2] * @返回值 double **/ public static double getDistance(double lat1, double lng1, double lat2, double lng2) { double radLat1 = ... -
经纬度计算距离经纬度计算距离工具
2018-06-15 08:38:02经纬度计算距离经纬度计算距离工具, 挺不错的。经纬度计算距离经纬度计算距离工具, 挺不错的。 -
mysql sql计算经纬度
2019-04-16 15:27:50原文地址:https://stackoverflow.com/questions/1006654/fastest-way-to-find-distance-between-two-lat-long-points ... ( 6371 * acos( cos( radians(' 待计算点的纬度') ) * cos( radians( db_table.lat ) )... -
SQL SERVER 计算经纬度函数
2022-01-11 17:27:55SQL server 函数计算经纬度函数 -
已知本地经纬度和目标方位距离计算目标经纬度
2020-11-13 18:12:06文件为cpp文件,封装的函数。已知本地经度、纬度和目标的方位角、水平距离,计算目标准确的经度纬度的算法。实际大量测试准确可用。可用于地图落点,利用目标准确位置打击等等 -
计算经纬度、距离、方位角(示例代码)
2021-04-22 08:33:1723 /**4 *5 * 计算经纬度、距离、方位角6 *7 *@authorlillian.he8 * @time 2016-06-029 **/10 public classCalculationLogLatDistance {11 /**12 * 地球赤道半径(km)13 **/14 public final static doubl... -
C++高并发计算经纬度归属行政位置(省市)源码
2021-10-18 19:25:37本资源为离线计算指定经纬度所处于的省市/县的完整工程源码,包含一份国内各省市经纬度边界离线数据。 平台使用C++编写,微型高并发框架,对外提供基于TCP短连接高并发的位置计算服务,计算耗时ms单位。平台框架... -
SQL语句计算经纬度距离
2020-05-20 11:52:12一、SQL语句计算经纬度距离 SELECT id, ( 6371* acos( cos( radians(37) ) * cos( radians( lat ) ) * cos( radians( lng ) - radians(-122) ) + sin( radians(37) ) * sin( radians( lat ) ) ) ) AS distance ... -
高德地图 计算 经纬度
2022-03-21 20:22:09} /** * 本地计算二个经纬度的距离 jdk的Math * Lng 经度 * @param lonLat * @param lonLat1 * @return */ public static double getDistance(String lonLat, String lonLat1) { String[] end =... -
python 计算经纬度之间的距离
2022-02-25 00:18:58def get_distance(lon1, lat1, lon2, lat2): lon1, lat1, lon2, lat2 = map(radians, [lon1, lat1, lon2, lat2]) # radians 角度转弧度 d_lon = lon2 - lon1 d_lat = lat2 - lat1 a = sin(d_lat / 2)**2 + cos... -
js计算经纬度距离
2019-04-25 17:30:57// 方法定义 lat,lng function GetDistance( lat1, lng1, lat2, lng2){ var radLat1 = lat1*Math.PI / 180.0; var radLat2 = lat2*Math.PI / 180.0; var a = radLat1 - radLat2; var b = lng1*Mat... -
百度地图API计算经纬度
2019-08-16 17:39:16百度地图API计算经纬度注册百度地图开发者申请应用的APKEY设置白名单代码实现 注册百度地图开发者 注册地址:http://lbsyun.baidu.com/apiconsole/key 申请应用的APKEY 控制台->我的应用->查看应用->... -
利用Java计算经纬度距离工具类
2020-04-24 09:19:07利用Java计算经纬度距离工具类 import java.math.BigDecimal; /** * @Description: 经纬度距离工具类 * @Param: * @return: * @Author: yzz * @Date: 2020/4/18 */ public class DistanceUtil { private static ... -
计算经纬度点之间的距离
2019-10-23 19:32:34球面上任意两点之间的距离计算公式可以参考维基百科上的下述文章。 Great-circle distance Haversine formula 值得一提的是,维基百科推荐使用Haversine公式,理由是Great-circle distance公式用到了大量余弦... -
计算经纬度之间的距离、通过指定经纬度查询一定范围内的数据
2021-07-17 17:41:59计算经纬度之间的距离、通过指定经纬度查询一定范围内的数据 1.1 计算两个经纬度之间的距离 此方法需要导入一个依赖包,专门用于计算经纬度的数据的 <dependency> <groupId>org.gavaghan</groupId... -
python 计算经纬度距离,大地距离
2021-06-18 15:32:32python 计算经纬度距离,大地距离 最近做GPS轨迹挖掘,需要求两点间球面距离(大地距离)。网上没有很好的代码,于是写了这个。 先贴公式 对于点A 和 点B, 两点距离 D = arccos((sin北纬A×sin北纬B)+(cos北纬A×... -
在线计算经纬度距离
2019-11-07 18:13:561 http://boulter.com/gps/distance/ 2 http://www.hhlink.com/%E7%BB%8F%E7%BA%AC%E5%BA%A6/ 3 ...5 一篇讲解计算方法的 http://www.mamicode.com/info-detail-1962583.html -
MySQL计算经纬度距离、获取距离范围内的数据 1KM 3KM 5KM
2021-01-19 18:46:33相信自从手机入侵互联网后,很多人都遇到了这个我问题,根据经纬度获取附近的商家和相差的距离。而对于距离的计算,我之前写过一篇文章《》,已经提到了做法。而如今天要讲解的是,从MySQL数据源上就要解决问题。... -
hive 解析经纬度,计算经纬度之间的直线距离
2019-08-08 13:39:51hive 解析经纬度 解析经纬度字段 原始字段: POINT(116.094532 39.579501) select city_name, num_id ,split(regexp_replace(open_position,'POINT\\(|\\)',''),' ')[0] as start_point_lng ...