这么利用Mysql计算地址经纬度距离实时位置
发表于:2024-11-11 作者:千家信息网编辑
千家信息网最后更新 2024年11月11日,本篇内容介绍了"这么利用Mysql计算地址经纬度距离实时位置"的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有
千家信息网最后更新 2024年11月11日这么利用Mysql计算地址经纬度距离实时位置
本篇内容介绍了"这么利用Mysql计算地址经纬度距离实时位置"的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!
前言
最近在做项目时候,遇到一个这样子的需求,
点到卡包里面卡券使用使用,需要展示卡券使用附近门店,
思路
数据库地址表设计
通用的区域街道地址表tz_sys_area
字段名称 | 类型 | 备注 |
---|---|---|
area_id | bigint | 区域ID |
area_name | varchar(32) | 区域名称 |
parent_id | bigint | 所属父区域ID |
level | int | 层级 |
type | char | 区域类型0国家1省份直辖市2地市3区县 |
area_name | varchar(32) | 区域名称 |
parent_id | bigint | 所属父区域ID |
level | int | 层级 |
后台也可以做修改
四级区域地址数据来源我在网上找的json文件然后按照格式倒入到的数据库
门店地址表tz_address
需求实现
这里计算距离就需要用到经纬度
需要使用高德地图api接口地理/逆地理编码获取地址经纬度并保存
/** * 地理/逆地理编码 * https://lbs.amap.com/api/webservice/guide/api/georegeo * * @return */ public String addressToLongitude(String address) { String longitude = ""; String urlString = "?key={key}&address={address}&output=JSON"; String response = restTemplate.getForObject(ApiAction.API_GEOREGO_TEST + urlString, String.class, apiKey, address); if (StrUtil.isEmpty(response)) { return null; } JSONObject jsonObject = JSON.parseObject(response); String code = jsonObject.getString("infocode"); if (code.equals("10000")) { JSONArray jsonArray = jsonObject.getJSONArray("geocodes"); JSONObject jsonObject1 = (JSONObject) jsonArray.get(0); longitude = jsonObject1.get("location").toString(); } else { return null; } return longitude; }
使用
private Address setlngAndLat(Address address) { String addr = address.getProvince() + address.getCity() + address.getArea() + address.getAddr(); String longitude = gaoDeService.addressToLongitude(addr); if (StrUtil.isBlank(longitude)) { throw new BusinessException("地址经纬度识别识别"); } String lat = longitude.split(",")[1]; String lng = longitude.split(",")[0]; address.setLat(lat); address.setLng(lng); return address; }
MySQL根据经纬度计算地址距离当前位置
SELECT ( 6371 * acos( cos(radians(#{lat})) * cos(radians(lat)) * cos(radians(lng) - radians(#{lng})) + sin(radians(#{lat})) * sin(radians(lat)) ) ) AS distance FROM tz_user_addr where addr_id=#{storeAddrId}
"这么利用Mysql计算地址经纬度距离实时位置"的内容就介绍到这里了,感谢大家的阅读。如果想了解更多行业相关的知识可以关注网站,小编将为大家输出更多高质量的实用文章!
地址
区域
经纬
经纬度
地理
位置
名称
数据
实时
内容
层级
所属
数据库
更多
知识
类型
编码
门店
需求
实用
数据库的安全要保护哪些东西
数据库安全各自的含义是什么
生产安全数据库录入
数据库的安全性及管理
数据库安全策略包含哪些
海淀数据库安全审计系统
建立农村房屋安全信息数据库
易用的数据库客户端支持安全管理
连接数据库失败ssl安全错误
数据库的锁怎样保障安全
网络安全法警示语
哪里数据库作业比较好
erp软件开发项目
亚马逊存储服务器
厦门软件开发外包服务商
nvm 数据库
数据库有哪几种恢复吗
ibm服务器管理 端口
数据库表设计第三范式
软件无法选择远程服务器
电商服务器安全
csgo杭州服务器无限掉线
机场网络安全主管部门
是网络安全还是Java好
监控linux服务器
网络技术学习的技巧
安徽系统软件开发价钱是多少
比较出名的网络安全学习app
最新网络安全产业政策
梦幻可转服务器查询
数据库怎么看板
数据库实时库存查询
关系数据库中单元有
对中学网络技术类内容的开展
数据库ip地址配置错误
wmi服务器
小明智还软件开发公司
重庆渝北生鲜系统软件开发
方舟大型服务器一个月能挣多少钱
软件开发 CDT