java Mysql 根据经纬度实时计算地址位置距离

数据库地址表设计

字段名称类型备注 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 文件然后按照格式倒入到的数据库,需要的可以关注我的公众号 猿小叔

需求实现

需要使用高德地图 api 接口 地理/逆地理编码获取地址经纬度并保存

 <span class="hljs-keyword">private Address setlngAndLat(Address address) {
        <span class="hljs-built_in">String addr = address.getProvince() + address.getCity() + address.getArea() + address.getAddr();
        <span class="hljs-built_in">String longitude = gaoDeService.addressToLongitude(addr);
        <span class="hljs-keyword">if (StrUtil.isBlank(longitude)) {
            <span class="hljs-keyword">throw <span class="hljs-keyword">new BusinessException(<span class="hljs-string">"&#x5730;&#x5740;&#x7ECF;&#x7EAC;&#x5EA6;&#x8BC6;&#x522B;&#x8BC6;&#x522B;");
        }
        <span class="hljs-built_in">String lat = longitude.split(<span class="hljs-string">",")[<span class="hljs-number">1];
        <span class="hljs-built_in">String lng = longitude.split(<span class="hljs-string">",")[<span class="hljs-number">0];

        address.setLat(lat);
        address.setLng(lng);
        <span class="hljs-keyword">return address;
    }
</span></span></span></span></span></span></span></span></span></span></span></span></span></span>
 <span class="hljs-keyword">SELECT
               (
                       <span class="hljs-number">6371 * <span class="hljs-keyword">acos(
                                   <span class="hljs-keyword">cos(<span class="hljs-keyword">radians(</span></span></span></span></span>

Original: https://www.cnblogs.com/m13002622490/p/16252562.html
Author: m13002622490
Title: java Mysql 根据经纬度实时计算地址位置距离

原创文章受到原创版权保护。转载请注明出处:https://www.johngo689.com/589443/

转载文章受原作者版权保护。转载请注明原作者出处!

(0)

大家都在看

亲爱的 Coder【最近整理,可免费获取】👉 最新必读书单  | 👏 面试题下载  | 🌎 免费的AI知识星球