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

/*

    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. 三,PHP中错误日志display_errors与error_reporting配置

    1,display_errors display_errors 错误回显,一般常用语开发模式,但是很多应用在正式环境中也忘记了关闭此选项.错误回显可以暴露出非常多的敏感信息,为攻击者下一步攻击提供便利 ...

  2. Django 允许其他可以访问的设置

    第一步:在run下修改edit 第二步:host改为0.0.0.0 第三步:setting文件中将    ALLOWED_HOSTS 改为 :ALLOWED_HOSTS = ['*',] 这样就可以通 ...

  3. awk常用用法

    一. 基本使用方法: awk '{pattern + action}' filenames #其中 pattern 表示 AWK 在数据中查找的内容,而 action 是在找到匹配内容时所执行的一系列 ...

  4. jmeter聚合报告详解

    聚合报告(aggregate report) 对于每个请求,它统计响应信息并提供请求数,平均值,最大,最小值,错误率,大约吞吐量(以请求数/秒为单位)和以kb/秒为单位的吞吐量. 吞吐量是以取样目标点 ...

  5. spring框架里面的注入?

    在Spring框架里面注入可以通过1.setter方法注入:2.构造器注入:3.注入对象 在配置文件中配置如下: 前面两者不能同时注入: 入 如果前两者同时注入将会报错 将注入修改以后,如下图: 修改 ...

  6. js的事件机制

    js的事件机制 解释:当我们的行为动作满足了一定的条件后,会触发某事务的执行. 内容: 1.单双击事件 单击:onclick 当鼠标单击时候会触发 双击:ondbclick 当鼠标双击时候会触发 2. ...

  7. jenkins定时

    分别的定义为:分 时 天 月 星期 Minutes within the hour (0–59) HOUR       Thehour of the day (0–23) DOM         Th ...

  8. PHP会话cookie类的封装

    <?php header('content-type:text/html;charset=utf-8');/** * 完成cookie的设置.删除.更新.读取 */class Cookie{   ...

  9. spider_keeper定时任务

    # Define apscheduler app 下的 __init__.py 文件中, 三个主要函数

  10. python学习,day3:函数式编程

    调用函数来实现文件的修改(abc.txt),并增加上时间,调用的是time模块, 需要注意的是,每个函数一定要用‘’‘ ‘’’ 标注下函数说明 # coding=utf-8 # Author: RyA ...