这么利用Mysql计算地址经纬度距离实时位置
发表于:2024-11-26 作者:千家信息网编辑
千家信息网最后更新 2024年11月26日,本篇内容介绍了"这么利用Mysql计算地址经纬度距离实时位置"的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有
千家信息网最后更新 2024年11月26日这么利用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安全错误
数据库的锁怎样保障安全
苏州万禾网络技术
高端路由器软件开发
学软件开发能胜任什么工作
易赛天下互联网科技有限公司
四叶草网络安全技能大赛
促销联盟软件开发
pc端+手机端+软件开发
网络安全宣传工作实施方案
新闻简易动画数据库
sql数据库er图怎么做
dns本地服务器
网络安全责任单位
宸煊网络技术
南医大数据库校外
.网络安全的主要特性有
网络安全法条例 题目
苏州app软件开发报价
数据库查询详细信息查询
数据库中接口
关系数据库模式的例子
天津数据库深度学习培训
工业互联网与硬科技
防控网络安全绘本制作
五大中文数据库
mysql 云连接数据库
vpn服务器搭建软件
windows11无法连接服务器
524华北电力数据库原理及应用
登录网络安全风险
什么软件开发公司名字