这么利用Mysql计算地址经纬度距离实时位置

前言

最近在做项目时候,遇到一个这样子的需求,

这么利用Mysql计算地址经纬度距离实时位置

点到卡包里面卡券使用使用,需要展示卡券使用附近门店,

思路

数据库地址表设计

通用的区域街道地址表tz_sys_area

字段名称 类型 备注

area_idbigint区域IDarea_namevarchar(32)区域名称parent_idbigint所属父区域IDlevelint层级typechar区域类型0国家1省份直辖市2地市3区县area_namevarchar(32)区域名称parent_idbigint所属父区域IDlevelint层级

这么利用Mysql计算地址经纬度距离实时位置

后台也可以做修改

这么利用Mysql计算地址经纬度距离实时位置

四级区域地址数据来源我在网上找的json文件然后按照格式倒入到的数据库

ViiTor实时翻译 ViiTor实时翻译

AI实时多语言翻译专家!强大的语音识别、AR翻译功能。

ViiTor实时翻译 116 查看详情 ViiTor实时翻译

门店地址表tz_address

这么利用Mysql计算地址经纬度距离实时位置

需求实现

这里计算距离就需要用到经纬度

需要使用高德地图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计算地址经纬度距离实时位置的详细内容,更多请关注创想鸟其它相关文章!

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。
如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至 chuangxiangniao@163.com 举报,一经查实,本站将立刻删除。
发布者:程序猿,转转请注明出处:https://www.chuangxiangniao.com/p/259447.html

赞 (0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
MySQL事务隔离级别与乱码问题的关联分析
上一篇 2026年10月11日 04:43:39
163邮箱过滤规则设置 163邮箱有效拦截垃圾邮件
下一篇 2025年11月9日 10:53:30

相关推荐

  • MySQL事务隔离级别与乱码问题的关联分析

    事务隔离级别不会直接导致乱码,但可能在并发场景下使乱码问题更易被察觉。mysql的事务隔离级别包括读未提交、读已提交、可重复读和串行化,主要用于控制事务间的数据可见性,解决脏读、不可重复读和幻读等问题。而乱码通常由字符集设置不一致引起,例如客户端与服务器字符集不符、数据库表字段字符集配置不同或数据传…

    2026年10月11日
    000
  • MySQL提示“too many connections“错误怎么解决

    MySQL提示“too many connections“错误怎么解决MySQL提示“too many connections“错误怎么解决MySQL提示“too many connections“错误怎么解决MySQL提示“too many connections“错误怎么解决

    发现问题 最近使用mysql5.7的时候连接公司系统数据库时发现提示报错,出现mysql too many connection 的异常。查询后得知,错误是由于连接数超过mysql系统默认配置所导致的。 解决过程 1. 首先登录mysql终端,输入show variables like max_co…

    2026年10月11日 • 用户投稿
    000
  • linux怎么用yum删除mysql

    linux怎么用yum删除mysqllinux怎么用yum删除mysqllinux怎么用yum删除mysqllinux怎么用yum删除mysql

    删除方法:1、用“rpm -qa | grep -i mysql”命令查看mysql的全部依赖信息;2、用“yum remove mysql依赖”命令依次卸载全部依赖;3、用“rm -rf 文件或目录”命令删除mysql的相关文件目录即可。 本教程操作环境:linux5.9.8系统、mysql8版本…

    2026年10月11日 • 用户投稿
    200
  • Express连接MySQL及数据库连接池的示例分析

    Express连接MySQL及数据库连接池的示例分析Express连接MySQL及数据库连接池的示例分析Express连接MySQL及数据库连接池的示例分析Express连接MySQL及数据库连接池的示例分析

    Express连接MySQL 准备工作 打开webstorm新建项目选择express创建一个express项目。 创建成功后其页面如下: 为了连接mysql数据库还需要导入mysql模块。 创建配置文件 在项目中创建config文件,在config文件中创建congfigdb.js文件用来连接数据…

    2026年10月11日 • 用户投稿
    200
  • mysql锁机制的概念是什么

    mysql锁机制的概念是什么mysql锁机制的概念是什么mysql锁机制的概念是什么mysql锁机制的概念是什么

    Mysql锁: 要在多线程环境下确保数据的准确性,通常需要使用同步机制。同步就相当于是加锁。锁的作用在于当一个线程正在操作数据时,其他线程需要等待,这可以带来以下好处。当一个线程执行完毕后,释放锁。其他线程才能进行操作! 那么我们的MySQL数据库中的锁的功能也是类似的,处理事务的隔离性中,可能会出…

    2026年10月11日 • 用户投稿
    000
  • Mysql锁内部实现机制是什么

    Mysql锁内部实现机制是什么Mysql锁内部实现机制是什么Mysql锁内部实现机制是什么Mysql锁内部实现机制是什么

    概述 尽管现代关系型数据库越来越相似,但它们的实现背后可能有着截然不同的机制。实际使用方面,因为sql语法规范的存在使得我们熟悉多种关系型数据库并非难事,但是有多少种数据库可能就有多少种锁的实现方法。 Microsoft Sql Server2005之前只提供页锁,直到2005版本才开始支持乐观并发…

    2026年10月11日 • 用户投稿
    100
  • MySQL中SECOND函数怎么用

    SECOND(time) SELECT SECOND(‘11:22:33′) SELECT SECOND(‘2016-01-16 11:44:22′) -> 33-> 22 返回该time的minute值,值范围(0-59) 阿里云-虚拟数字人 阿里云-虚拟数字人是什么? ……

    2026年10月11日
    100
  • MySQL8.0/8.x忘记密码怎么更改root密码

    MySQL8.0/8.x忘记密码怎么更改root密码MySQL8.0/8.x忘记密码怎么更改root密码MySQL8.0/8.x忘记密码怎么更改root密码MySQL8.0/8.x忘记密码怎么更改root密码

    一、原理说明 1,authentication_string这是mysql8.0新做出的修改,在旧版本中使用的是password()函数。 2,在网上找到的“mysql忘记密码”的解决方案中,大多会使用UPDATE user SET authentication_string=”12345″ WHE…

    2026年10月11日 • 用户投稿
    100
  • 如何在GitHubActions中清晰追踪PHPUnit测试失败?使用mheap/phpunit-github-actions-printer让问题无处遁形

    可以通过一下地址学习composer:学习地址 在现代软件开发中,持续集成(ci)已经成为不可或缺的一环。我们常常将phpunit测试集成到github actions中,以确保每次代码提交都能通过严格的质量检查。然而,相信不少开发者都曾遇到这样的困扰:当测试套件庞大,且有多个测试失败时,githu…

    2026年10月11日
    000
  • ubuntu如何查mysql的端口号

    1、登录mysql。 打开终端输入命令:“# mysql -uroot -p”。 [root@localhost ~]# mysql -uroot -p Enter password: 输入数据库密码; 2、再输入命令“show global variables like ‘port&#…

    2026年10月11日
    000
  • 使用DeepSeek+RAG实现私人知识库

    使用DeepSeek+RAG实现私人知识库使用DeepSeek+RAG实现私人知识库使用DeepSeek+RAG实现私人知识库使用DeepSeek+RAG实现私人知识库

    在使用包括 chatgpt 在内的 aigc 工具回答 sap 相关问题时,常常会遇到大模型产生不准确或虚构信息的情况,这种现象被称为大模型的幻觉现象。对于 llm 模型来说,它是一种基于上下文的生成模型,其预测依赖于先前的文本序列。由于模型在训练过程中学习了语言的统计规律,有时会在生成文本时添加一…

    2026年10月11日 • 用户投稿
    100
  • Nginx怎么实现异步访问mysql

    nginx中有一个模块有这个功能,(以前的文章中扩展,这里叫模块,以后统一叫模块,模块可能准确点,因为扩展是单独的文件,而模块是嵌入到主文件中的),这个模块叫drizzle-nginx-module 要编译这个还不容易 先下载drizzle库编译和配置选项: 复制代码 代码如下: ./configu…

    2026年10月11日
    100
  • MySQL中如何根据参数获取日期

    MAKEDATE(year ,dayofyear ):根据参数(年份,第多少天)获取日期 如此AI员工 国内首个全链路营销获客AI Agent 71 查看详情 SELECT MAKEDATE(2015 ,32) -> 2015-02-01 以上就是MySQL中如何根据参数获取日期的详细内容,更…

    2026年10月11日
    100
  • mysql全连接和oracle全连接查询的区别是什么

    mysql全连接和oracle全连接查询的区别是什么mysql全连接和oracle全连接查询的区别是什么mysql全连接和oracle全连接查询的区别是什么mysql全连接和oracle全连接查询的区别是什么

    mysql全连接和oracle全连接查询区别 oracle的全连接查询可以直接用full on,但是在mysql中没有full join,mysql使用union实现全连接 oracle的全连接 select * from a full join b on a.id = b.id mysql的全连接…

    2026年10月11日 • 用户投稿
    100
  • PHP数据库连接方法_PHP连接MySQL数据库最佳实践

    PHP数据库连接方法_PHP连接MySQL数据库最佳实践PHP数据库连接方法_PHP连接MySQL数据库最佳实践PHP数据库连接方法_PHP连接MySQL数据库最佳实践PHP数据库连接方法_PHP连接MySQL数据库最佳实践

    推荐使用PDO连接MySQL,因其支持预处理语句、多数据库兼容及更好的安全性。示例中通过设置异常模式、utf8mb4字符集和禁用模拟预处理,确保安全与可维护性;MySQLi适用于纯MySQL项目,但PDO更利于长期扩展。 PHP连接MySQL数据库最推荐的方式是使用PDO(PHP Data Obje…

    2026年10月11日 • 用户投稿
    000
  • Java与MySQL之间的数据类型映射与转换

    java是一种高级编程语言,而mysql是一种关系型数据库管理系统。在java程序中,常常需要与数据库进行数据交互,而这就涉及到了数据类型的映射与转换。 Java数据类型与MySQL数据类型的映射可以在以下表格中看到: Java数据类型 MySQL数据类型 StringVARCHARintINTlo…

    2026年10月11日
    100
  • 通过Java编写的ORM框架来简化MySQL数据库的操作

    随着互联网的发展,数据成为了企业最重要的资产之一。而关系型数据库mysql的广泛应用也使得对mysql数据库的操作变得尤为重要。然而,在日常的开发和维护过程中,我们经常遭遇到复杂的sql语句,往往需要大量的时间和精力去研究和优化。而这时,一种名为orm(object-relational mappi…

    2026年10月11日
    200
  • Java使用JDBC API连接MySQL数据库遇到的常见问题

    近年来,java语言的应用越来越广泛,而jdbc api是java应用程序中与数据库交互的一种创造性方法,jdbc基于一种名为odbc的开放数据库连接标准,使得java应用程序能够连入任何数据库管理系统(dbms)。其中,mysql更是一款备受青睐的数据库管理系统。然而,连接mysql数据库时,开发…

    2026年10月11日
    100
  • MySQL事务处理详细介绍

    mysql是一种基于开放源代码的关系型数据库管理系统。在mysql中,事务处理是一个非常重要的概念,它能够保证数据在数据库中的完整性和一致性。mysql支持多种数据类型和数据表的关联,这使得mysql成为一个强大的数据库管理系统。下面将详细介绍mysql的事务处理。 一、什么是事务处理? 在数据库管…

    2026年10月10日
    100
  • MySQL中的数据安全备份技巧

    mysql是目前应用最广泛的一种开源数据库管理系统,它的数据安全备份是数据库管理工作中至关重要的一环。在日常生产环境中,数据的安全性和完整性是数据库管理者必须重视的问题,如何保证mysql的数据安全备份是每位数据库管理者必须面对的问题。在本文中,我们将介绍mysql中的数据安全备份技巧,以保障数据库…

    2026年10月10日
    100

发表回复

登录后才能评论
关注微信