Mysql根据经纬度筛选数据
创建位置表,并且插入测试数据
/*
Navicat MySQL Data Transfer
Source Server : localhost
Source Server Version : 80011
Source Host : localhost:3306
Source
Database
: test
Target Server Type : MYSQL
Target Server Version : 80011
File Encoding : 65001
Date
: 2018-11-07 16:58:27
*/
SET
FOREIGN_KEY_CHECKS = 0;
-- ----------------------------
-- Table structure for location
-- ----------------------------
DROP
TABLE
IF EXISTS `location`;
CREATE
TABLE
`location` (
`id`
INT
(10) UNSIGNED
NOT
NULL
AUTO_INCREMENT,
`
name
`
VARCHAR
(50)
NOT
NULL
,
`longitude`
DECIMAL
(13, 10)
NOT
NULL
,
`latitude`
DECIMAL
(13, 10)
NOT
NULL
,
PRIMARY
KEY
(`id`),
KEY
`long_lat_index` (`longitude`, `latitude`)
) ENGINE = INNODB AUTO_INCREMENT = 5
DEFAULT
CHARSET = utf8;
-- ----------------------------
-- Records of location
-- ----------------------------
INSERT
INTO
`location`
VALUES
(
'1'
,
'广东省深圳市龙岗区坂田街道五和大道万科四季花城北区'
,
'22.6265210000'
,
'114.0606880000'
);
INSERT
INTO
`location`
VALUES
(
'2'
,
'广东省深圳市龙华区民治(地铁站)'
,
'22.6175280000'
,
'114.0406460000'
);
INSERT
INTO
`location`
VALUES
(
'3'
,
'广东省深圳市龙华区红山(地铁站)'
,
'22.6218860000'
,
'114.0234800000'
);
INSERT
INTO
`location`
VALUES
(
'4'
,
'广东省深圳市南山区西丽街道沙河西路名典商旅酒店(深圳西丽店)'
,
'22.5801670000'
,
'113.9543000000'
);
#经度:22.626521
#纬度:114.060688
#50KM范围
SELECT
*
FROM
(
SELECT
*, sqrt(
(
(
(22.626521 - longitude) * PI() * 12656 * cos(
((114.060688 + latitude) / 2) * PI() / 180
) / 180
) * (
(22.626521 - longitude) * PI() * 12656 * cos(
((114.060688 + latitude) / 2) * PI() / 180
) / 180
)
) + (
(
(114.060688 - latitude) * PI() * 12656 / 180
) * (
(114.060688 - latitude) * PI() * 12656 / 180
)
)
)
AS
lc
FROM
location
) location
WHERE
lc < 50 ##距离小于50KM
ORDER
BY
##距离小于排序
lc

Mysql根据经纬度筛选数据的更多相关文章
- 【mysql优化】大数据量分页优化
limit 翻页原理 limit offset,N, 当offset非常大时, 效率极低, 原因是mysql并不是跳过offset行,然后单取N行, 而是取offset+N行,返回放弃前offset行 ...
- php根据经纬度排序,根据经纬度筛选距离段
SQL 语句:select location.* from (select *,round(6378.138*2*asin(sqrt(pow(sin( (36.668530*pi()/180-px_l ...
- mysql 实现经纬度排序查找功能
需求如下: 商品有多个门店,用户使用App时需要查找附近门店的商品,商品要进行去重分页. 思路: 1.确认mysql自带经纬度查询函数可以使用. 2.该需求需要利用分组排序,取每个商品最近门店的商品i ...
- Mysql 计算地址经纬度距离实时位置
前言 最近在做项目时候,遇到一个这样子的需求, 点到卡包里面卡券使用使用,需要展示卡券使用附近门店, 思路 数据库地址表设计 通用的区域街道地址表tz_sys_area 字段名称 类型 备注 area ...
- .NET LINQ 筛选数据
筛选数据 筛选指将结果集限制为只包含那些满足指定条件的元素的操作. 它又称为选择. 方法 方法名 说明 C# 查询表达式语法 Visual Basic 查询表达式语法 更多信息 OfType ...
- OpenLayers添加点【php请求MySQL数据库返回GeoJSON数据】
php请求MySQL数据库返回GeoJSON数据的实现方法请参见: http://www.cnblogs.com/marost/p/6234514.html OpenLayers[v3.19.1-di ...
- 基于内存,redis,mysql的高速游戏数据服务器设计架构
转载请注明出处,欢迎大家批评指正 1.数据服务器详细设计 数据服务器在设计上采用三个层次的数据同步,实现玩家数据的高速获取和修改. 数据层次上分为:内存数据,redis数据,mysql数据 设计目的: ...
- easyui 筛选数据及仅允许选择数据
先说需求,本地已缓存数据源,用户输入拼音码或编号,筛选数据作为新的数据源,然后通过键盘选择. 再说问题,easyui combogrid控件,在mode为local,也就是将数据源缓存在本地的情况下, ...
- EF 连接MySQL 数据库 保存中文数据后乱码问题
EF 连接MySQL 数据库 保存中文数据后乱码问题 采用Code First 生成的数据库,MySQL数据库中,生成的表的编码格式为***** 发现这个问题后,全部手动改成UTF8(图是另一个表的 ...
随机推荐
- “全栈2019”Java第三十六章:类
难度 初级 学习时间 10分钟 适合人群 零基础 开发语言 Java 开发环境 JDK v11 IntelliJ IDEA v2018.3 文章原文链接 "全栈2019"Java第 ...
- [Objective-C语言教程]函数(11)
函数是一组一起执行任务的语句. 每个Objective-C程序都有一个C函数,也就是main()函数,所有最简单的程序都可以定义为函数. 可将代码划分为单独的函数.如何在不同的函数之间划分代码取决于程 ...
- shell中tr的用法
转自http://blog.csdn.net/zhuying_linux/article/details/6825568 tr(translate缩写)主要用于删除文件中的控制字符,或进行字符转换.语 ...
- 提交app时候遇到IDFA警告
1.最近提交app时候遇到如下问题,解决方案: Everything has come to its usual state now. Simply upload your binary as you ...
- todocmvc的安装
安装依赖 官网 安装依赖的css,js $npm install 引入vue <script src="js/vue.js"></script> 定义初始化 ...
- BZOJ 3437: 小P的牧场
传送门 显然考虑 $dp$,设 $f[i]$ 表示前 $i$ 个牧场都被控制的最小代价 那么枚举所有 $j<i$ ,$f[i]=f[j]+val[i][j]+A[i]$ $val[i][j]$ ...
- 颠覆我的Thread.join()
学而时习之,不亦说乎! --<论语> 为什么说是颠覆? 1)任何对象都可以作为锁对象,锁对象的行为都是一样的吗?之前我一直认为锁对 ...
- C回调函数
转自:https://segmentfault.com/a/1190000008293902?utm_source=tag-newest 在面试的时候被问到什么是回调函数,我是属于会用但不懂概念的那类 ...
- Springboot集成WebSocket通信全部代码,即扣即用。
websocket通信主要来自两个类以及一个测试的html页面. MyHandler 和 WebSocketH5Config,下面全部代码 MyHandler类全部代码: package com.un ...
- node学习网站
https://nodejs.org/api/tty.html https://www.cnblogs.com/vajoy/p/4783390.html process下面的所有方法