微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

[MySQL] mysql地理位置服务geometry字段类型

这个字段类型是MysqL5.7新增的功能,主要就是解决坐标存储和距离计算的常见问题

创建表:
CREATE TABLE `service` (
`id` bigint(20) NOT NULL AUTO_INCREMENT,
`name` varchar(128) NOT NULL DEFAULT '',
`content` varchar(128) NOT NULL DEFAULT '',
`tel` varchar(20) NOT NULL DEFAULT '',
`location` geometry NOT NULL,
PRIMARY KEY (`id`),
KEY `location` (`location`(32))
) ENGINE=InnoDB AUTO_INCREMENT=1 DEFAULT CHARSET=utf8


插入坐标
insert into service (name,content,tel,location)values("陶士涵",'牛逼','18898989898',ST_GeomFromText('POINT(116.28828 40.053257)'));
读取坐标
select *,astext(location) from service;
查询距离
SELECT name,(st_distance (location,point(116.282459,40.047955) ) *111195) AS distance FROM service ORDER BY distance;
判断距离
SELECT name,astext(location),FLOOR(st_distance (location,40.047955) ) *111195) AS distance FROM service having distance < 1000 ORDER BY distance;

 

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐