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

/*

    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. bzoj2705Longge的问题

    题目链接 题意很简单 $$ans=\sum_{i=1}^{n}gcd(i,n)$$ 然后推一下式子,求一下欧拉函数就好了 细节是由于$BZOJ$的评测计时策略, 不能线性筛啊$……$ 必须每个数单独筛 ...

  2. jqury表单验证

    结合天天生鲜的用户注册页面,学习验证表单js register.js--表单验证源码 $(function(){ var error_name = false; var error_password ...

  3. Ionic无法通过npm安装解决方案

    http://www.jianshu.com/p/5a99334eb62d 一般从 node.js官网下载安装完之后,npm也会同时安装完. 如果通过 $ npm install -g cordova ...

  4. UDF-java获取名字中的姓

    1.使用方法 在hive中加载jar包,调用udf函数 #从名字中获取姓 add jar ${scriptDir}/GetLastNameUDF.jar; create temporary funct ...

  5. ghj1222被坑记录[不持续更新]

    考试注意事项:link1 link2 (密码:wangle) 调不出来bug,可以先透彻一会儿或者是上个厕所或者坐一会别的题(间隔至少20min),然后通读代码 -1. 考试先读题,读题之后搞出一个做 ...

  6. 【BZOJ1296】[SCOI2009]粉刷匠 (DP+背包)

    [SCOI2009]粉刷匠 题目描述 \(windy\)有 \(N\) 条木板需要被粉刷. 每条木板被分为 \(M\) 个格子. 每个格子要被刷成红色或蓝色. \(windy\)每次粉刷,只能选择一条 ...

  7. todocmvc的安装

    安装依赖 官网 安装依赖的css,js $npm install 引入vue <script src="js/vue.js"></script> 定义初始化 ...

  8. 进阶篇:2)DFMA方法的运用

    本章目的:DFMA方法运用,引导后面的章节.(运用比只理解重要!) 1.DFMA概述 1.1 DFMA的由来 工艺粗略可分为装配工艺和制造工艺.在这里,我们所讲的“制造”是指产品或部件的某个零件的制造 ...

  9. 关于 IsLocalUrl 方法的注意事项

    用于判断是否为本地url的方法 Url.IsLocalUrl() 的注意事项: 此方法是以判断传入的url字符串的开头是否为 "/" 为依据来判断是否为本地url,所以如果传入的u ...

  10. win7 64位英文版 ado驱动

    https://www.microsoft.com/zh-tw/download/details.aspx?id=5793