mysql 计算两点经纬度之间的距离含具体sql语句
SET FOREIGN_KEY_CHECKS=; -- ----------------------------
-- Table structure for customer
-- ----------------------------
DROP TABLE IF EXISTS `customer`;
CREATE TABLE `customer` (
`id` int() unsigned NOT NULL auto_increment COMMENT '自增主键',
`name` varchar() NOT NULL COMMENT '名称',
`lon` double(,) NOT NULL COMMENT '经度',
`lat` double(,) NOT NULL COMMENT '纬度',
PRIMARY KEY (`id`)
) ENGINE=InnoDB AUTO_INCREMENT= DEFAULT CHARSET=utf8 COMMENT='商户表'; -- ----------------------------
-- Records of customer
-- ----------------------------
INSERT INTO `customer` VALUES ('', '天津市区', '117.315575', '39.133462');
INSERT INTO `customer` VALUES ('', '北京市区', '116.407999', '39.894073');
INSERT INTO `customer` VALUES ('', '保定', '115.557124', '38.853490');
INSERT INTO `customer` VALUES ('', '石家庄', '114.646458', '38.072369');
INSERT INTO `customer` VALUES ('', '昌平区1', '116.367180', '40.009561');
INSERT INTO `customer` VALUES ('', '海淀区2', '116.313425', '39.973078');
INSERT INTO `customer` VALUES ('', '海淀区1', '116.329236', '39.987231');
然后我们开始用mysql自带的函数,计算customer表中,每个地方具体。
传入参数 纬度 40.0497810000 经度 116.3424590000
/*传入的参数为 纬度 纬度 经度 ASC升序由近至远 DESC 降序 由远到近 */
SELECT
*,
ROUND(
6378.138 * * ASIN(
SQRT(
POW(
SIN(
(
40.0497810000 * PI() / - lat * PI() /
) /
), ) + COS(40.0497810000 * PI() / ) * COS(lat * PI() / ) * POW(
SIN(
(
116.3424590000 * PI() / - lon * PI() /
) /
), )
)
) *
) AS juli
FROM
customer
ORDER BY
juli ASC
至此,我们就能清楚的查看到纬度 40.0497810000 经度 116.3424590000 距离customer表中的每个地区的距离(单位 m)

PS 用到的经纬度查询工具 http://www.gpsspg.com/maps.htm
原文链接:http://www.cnblogs.com/jiafuwei/p/5699091.html
mysql 计算两点经纬度之间的距离含具体sql语句的更多相关文章
- mysql 下 计算 两点 经纬度 之间的距离 含具体sql语句
文章转载地址 http://blog.sina.com.cn/s/blog_7bbfd5fd01017d1e.html 感谢作者. 在原文的基础上,我新增了sql语句,方便大家理解 mysql距离计算 ...
- mysql 下 计算 两点 经纬度 之间的距离(转)
公式如下,单位米: 第一点经纬度:lng1 lat1 第二点经纬度:lng2 lat2 round(6378.138*2*asin(sqrt(pow(sin( (lat1*pi()/180-lat2* ...
- mysql 下 计算 两点 经纬度 之间的距离
公式如下,单位米: 第一点经纬度:lng1 lat1 第二点经纬度:lng2 lat2 round(6378.138*2*asin(sqrt(pow(sin( (lat1*pi()/180-lat2* ...
- mysql 下 计算 两点 经纬度 之间的距离 计算结果排序
根据经纬度计算距离公式 公式 对上面的公式解释如下: Lung1 Lat1表示A点经纬度, Lung2 Lat2表示B点经纬度: a=Lat1 – Lat2 为两点纬度之差 b=Lung1 -Lung ...
- mysql 计算两点经纬度之间的直线距离(具体sql语句)
文章转载地址 http://blog.sina.com.cn/s/blog_7bbfd5fd01017d1e.html 新增sql语句具体实现 计算距离(单位 m)并排序 longitude 经度 l ...
- js计算两经纬度之间的距离
js如下: // 方法定义 lat,lng function GetDistance( lat1, lng1, lat2, lng2){ var radLat1 = lat1*Math.PI / ...
- IOS 计算两个经纬度之间的距离
IOS 计算两个经纬度之间的距离 一 丶 -(double)distanceBetweenOrderBy:(double) lat1 :(double) lat2 :(double) lng1 :(d ...
- PHP计算两个已知经纬度之间的距离
/** *求两个已知经纬度之间的距离,单位为千米 *@param lng1,lng2 经度 *@param lat1,lat2 纬度 *@return float 距离,单位千米 **/ privat ...
- PHP计算经纬度之间的距离
<?php /** * 求两个已知经纬度之间的距离,单位为米 * * @param lng1 $ ,lng2 经度 * @param lat1 $ ,lat2 纬度 * @return floa ...
随机推荐
- redis的发布订阅、持久化存储、redis的主从复制
redis的发布订阅 1. 创建redis配置文件 vim /opt/redis_conf/reids-6379.conf mkdir /data/6379 redis-server redis-6 ...
- springcloud-Eureka-服务注册与发现核心组件
Eureka组件 Eureka是Netfilx开源的服务发现组件,本身是一个基于rest的服务,它包含client和server两部分. Spirng Cloud将它集成在子项目Spirng Clou ...
- 秒懂 this(带你撸平this)
本文讲述只针对浏览器环境. 一:全局执行 console.log(this); // Window 可以看出在全局作用域中 this 指向当前的全局对象 Window. 二:函数中执行 1. 非严格模 ...
- win10下vs2015编译的程序如何运行在win7等系统(无需安装Redistributable)
最近新写的程序要做beta测试,在做绿色版(免安装版)时遇到了问题,vs2015做的项目本以为像之前的vs版本一样把msvcrXXX.dll还有另外几个运行时库都放到exe旁边即可,然并卵...,在w ...
- TCP/IP协议网络编程以及UDP和TCP之传输协议
1.什么是TCP/IP协议? 网络编程协议有很多,目前应用最广泛的是TCP/IP协议(Transmission Control Protocal/Internet Protoal 传输控制协议/英特网 ...
- python-面向对象:类与类之间的关系和特殊成员
# class Person: # def play(self, tools): # 通过参数的传递把另外一个类的对象传递进来 # tools.run() # print("很开心, 我能玩 ...
- vuex-Action(异步)
Action 类似于 mutation,不同在于: Action 提交的是 mutation,而不是直接变更状态. Action 可以包含任意异步操作. const store = new Vuex. ...
- C++中模板的特化与偏特化
1.引言 C++中的模板分为类模板和函数模板,虽然它引进到C++标准中的时间不是很长,但是却得到了广泛的应用,这一点在STL中有着充分的体现.目前,STL在C++社区中得到了广泛的关注.应用和研究.理 ...
- Linux设备驱动程序 第三版 读书笔记(一)
Linux设备驱动程序 第三版 读书笔记(一) Bob Zhang 2017.08.25 编写基本的Hello World模块 #include <linux/init.h> #inclu ...
- 支持续传功能的ASP.NET WEB API文件下载服务
先把原文地址放上来,随后翻译