前言
工作中需要在收货地址中显示驿站信息 并且根据用户定位按照远近进行显示
使用到的mysql 函数
|
|
数据库 mysql 5.7
数据库表设计
id varchar
...........
longitude double //存一个本身的经度信息
latitude double //存一个本身的纬度信息
position geometry //这个字段使用mysql 函数储存
...........
position 位置字段使用了geometry 类型
java entity
........................
private Double longitude;
private Double latitude;
private String position; // 经纬度
........................
mybatis 写法
新增方法 更新方法 同理
|
|
此处ST_GeomFromText函数使用了concat函数 连接了经纬度字段
在mybatis中不可以ST_GeomFromText直接写"POINT(#{longitude} #{latitude})" 会抛出异常
|
|
查询方法
此处查询 前端会传用户的经度和维度字符串
使用函数 ST_Distance_Sphere 需要MySQL版本在5.7以上
ST_Distance_Sphere 函数用可以不使用concat连接函数 及参数 信息
|
|
ST_Distance_Sphere函数 第一个参数是用户所在经纬度信息 要使用POINT 转成点信息字符串,第二个参数 是数据库中的经纬度信息 求出两个经纬度的距离
最终实现
未涉及到索引优化等