Mysql根据经纬度筛选数据
程序员文章站
2022-03-30 17:51:09
创建位置表,并且插入测试数据 /* Navicat MySQL Data Transfer Source Server : localhost Source Server Version : 80011 Source Host : localhost:3306 Source Database : t ......
创建位置表,并且插入测试数据
/*
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'
);
搜索附近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
显示结果
上一篇: 常用的网络操作系统有哪些
下一篇: JSP禁用缓存常用方法
推荐阅读
-
PHP,Mysql-根据一个给定经纬度的点,进行附近地点查询–合理利用算法,效率提高2125倍,mysql-2125倍_PHP教程
-
,php+mysql怎么根据拼音首字母查询汉字数据库
-
Android编程实现根据经纬度查询地址并对获取的json数据进行解析的方法
-
Android编程实现根据经纬度查询地址并对获取的json数据进行解析的方法
-
mysql千万级数据量根据索引优化查询速度
-
重新学习Mysql数据库5:根据MySQL索引原理进行分析与优化
-
mysql实现查询数据并根据条件更新到另一张表的方法示例
-
MySQL根据某一个或者多个字段查找重复数据的sql语句
-
mysql千万级数据量根据索引优化查询速度
-
mysql根据经纬度求两地距离