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 TABLEIF 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 ) locationWHERE lc < 50 ##距离小于50KMORDER 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第 ...
- input 实现onchange效果
$(".selected input").on('input',function(e){ cc.search(); });
- jquery源码解析:jQuery扩展方法extend的详解
jQuery中要扩展方法或者属性都是通过extend方法实现的.所谓的jQuery插件也是通过extend方法实现的. jQuery.extend扩展的是工具方法,也就是静态方法.jQuery.fn. ...
- Eclipse Java SE升级Java EE
网上教程大多是提供了“http://download.eclipse.org/releases/ganymede/”地址,但是实际更新过程中会报错. 大致查询了一下,很可能是版本不匹配的问题,正确的更 ...
- tomcat下各个文件夹的作用
1.bin目录:这个文件夹包含的是启动/关闭tomcat的脚本,里面有startup.sh(Linux环境下启动tomcat脚本)和startup.bat(Windows环境下启动tomcat脚本), ...
- ORACLE MERGE INTO UPDATE DELETE 用法
ORACLE MERGE INTO UPDATE DELETE 用法 使用该MERGE语句从一个或多个源中选择行以进行更新或插入表或视图.您可以指定条件以确定是更新还是插入目标表或视图. 此语句是组合 ...
- Git版本回退和撤销修改
版本回退: 在实际工作中,我们会不断对文件进行修改,然后不断提交修改到版本库里,一旦你把文件改乱了,或者误删了文件,还可以从最近的一个commit恢复,然后继续工作,而不是把几个月的工作成果全部丢失. ...
- Java_无参数无返回类型方法及练习
无参数无返回类型方法语法格式: public static void 方法名称(){ 方法体; } class Method03{ /*练习3:输出1-100中的每个数,要求使用无参无返回类型的方法完 ...
- input标签的按钮效果
https://codepen.io/anon/pen/EOPMNy <div class="row"> <p>Click every input.< ...
- OpenStack Neutron配置虚拟机访问外网
配置完成后的网络拓扑如下: 当前环境: X86服务器1台 Ubuntu 16.04 DevStack搭建OpenStack 网络拓扑: 外部网络:192.168.98.0/24 内部网络:10.0.0 ...