创建位置表,并且插入测试数据

/*

    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,
    `nameVARCHAR (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'
    );
 
搜索附近50KM的数据
#经度: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
显示结果

 博客地址:http://blog.mojxtang.com

Mysql根据经纬度筛选数据的更多相关文章

  1. 【mysql优化】大数据量分页优化

    limit 翻页原理 limit offset,N, 当offset非常大时, 效率极低, 原因是mysql并不是跳过offset行,然后单取N行, 而是取offset+N行,返回放弃前offset行 ...

  2. php根据经纬度排序,根据经纬度筛选距离段

    SQL 语句:select location.* from (select *,round(6378.138*2*asin(sqrt(pow(sin( (36.668530*pi()/180-px_l ...

  3. mysql 实现经纬度排序查找功能

    需求如下: 商品有多个门店,用户使用App时需要查找附近门店的商品,商品要进行去重分页. 思路: 1.确认mysql自带经纬度查询函数可以使用. 2.该需求需要利用分组排序,取每个商品最近门店的商品i ...

  4. Mysql 计算地址经纬度距离实时位置

    前言 最近在做项目时候,遇到一个这样子的需求, 点到卡包里面卡券使用使用,需要展示卡券使用附近门店, 思路 数据库地址表设计 通用的区域街道地址表tz_sys_area 字段名称 类型 备注 area ...

  5. .NET LINQ 筛选数据

    筛选数据      筛选指将结果集限制为只包含那些满足指定条件的元素的操作. 它又称为选择. 方法 方法名 说明 C# 查询表达式语法 Visual Basic 查询表达式语法 更多信息 OfType ...

  6. OpenLayers添加点【php请求MySQL数据库返回GeoJSON数据】

    php请求MySQL数据库返回GeoJSON数据的实现方法请参见: http://www.cnblogs.com/marost/p/6234514.html OpenLayers[v3.19.1-di ...

  7. 基于内存,redis,mysql的高速游戏数据服务器设计架构

    转载请注明出处,欢迎大家批评指正 1.数据服务器详细设计 数据服务器在设计上采用三个层次的数据同步,实现玩家数据的高速获取和修改. 数据层次上分为:内存数据,redis数据,mysql数据 设计目的: ...

  8. easyui 筛选数据及仅允许选择数据

    先说需求,本地已缓存数据源,用户输入拼音码或编号,筛选数据作为新的数据源,然后通过键盘选择. 再说问题,easyui combogrid控件,在mode为local,也就是将数据源缓存在本地的情况下, ...

  9. EF 连接MySQL 数据库  保存中文数据后乱码问题

    EF 连接MySQL 数据库  保存中文数据后乱码问题 采用Code First 生成的数据库,MySQL数据库中,生成的表的编码格式为***** 发现这个问题后,全部手动改成UTF8(图是另一个表的 ...

随机推荐

  1. “全栈2019”Java第三十三章:方法

    难度 初级 学习时间 10分钟 适合人群 零基础 开发语言 Java 开发环境 JDK v11 IntelliJ IDEA v2018.3 文章原文链接 "全栈2019"Java第 ...

  2. input 实现onchange效果

    $(".selected input").on('input',function(e){ cc.search(); });

  3. jquery源码解析:jQuery扩展方法extend的详解

    jQuery中要扩展方法或者属性都是通过extend方法实现的.所谓的jQuery插件也是通过extend方法实现的. jQuery.extend扩展的是工具方法,也就是静态方法.jQuery.fn. ...

  4. Eclipse Java SE升级Java EE

    网上教程大多是提供了“http://download.eclipse.org/releases/ganymede/”地址,但是实际更新过程中会报错. 大致查询了一下,很可能是版本不匹配的问题,正确的更 ...

  5. tomcat下各个文件夹的作用

    1.bin目录:这个文件夹包含的是启动/关闭tomcat的脚本,里面有startup.sh(Linux环境下启动tomcat脚本)和startup.bat(Windows环境下启动tomcat脚本), ...

  6. ORACLE MERGE INTO UPDATE DELETE 用法

    ORACLE MERGE INTO UPDATE DELETE 用法 使用该MERGE语句从一个或多个源中选择行以进行更新或插入表或视图.您可以指定条件以确定是更新还是插入目标表或视图. 此语句是组合 ...

  7. Git版本回退和撤销修改

    版本回退: 在实际工作中,我们会不断对文件进行修改,然后不断提交修改到版本库里,一旦你把文件改乱了,或者误删了文件,还可以从最近的一个commit恢复,然后继续工作,而不是把几个月的工作成果全部丢失. ...

  8. Java_无参数无返回类型方法及练习

    无参数无返回类型方法语法格式: public static void 方法名称(){ 方法体; } class Method03{ /*练习3:输出1-100中的每个数,要求使用无参无返回类型的方法完 ...

  9. input标签的按钮效果

    https://codepen.io/anon/pen/EOPMNy <div class="row"> <p>Click every input.< ...

  10. OpenStack Neutron配置虚拟机访问外网

    配置完成后的网络拓扑如下: 当前环境: X86服务器1台 Ubuntu 16.04 DevStack搭建OpenStack 网络拓扑: 外部网络:192.168.98.0/24 内部网络:10.0.0 ...