这么利用Mysql计算地址经纬度距离实时位置
发表于:2025-02-23 作者:千家信息网编辑
千家信息网最后更新 2025年02月23日,本篇内容介绍了"这么利用Mysql计算地址经纬度距离实时位置"的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有
千家信息网最后更新 2025年02月23日这么利用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 软件开发承诺守信
数据库删除不同表多条记录
网络安全法的发展过程
英雄联盟外国服务器有限制皮肤吗
创新数据库的logo
数据库哪家最好
网络安全特点不包括
智慧景区软件开发费用
怀旧服服务器人口最多的职业
配置asp服务器
c 数据库工具
别的地方的数据库还原报错
上海新一代软件开发过程推广
数据库报表查询
深圳网红互联网科技有限公司
水利与湖泊网络安全建设
公共网络安全wifi
大运文旅发展有限公司软件开发
审计机关网络安全事件演练
哪儿个专业学数据库应用
安徽通用软件开发怎么样
服务器管理员用英文表示
方城软件开发项目管理
枇杷网络技术