MySql根据经纬度查询距离
一、搭建测试
创建数据表()
CREATE TABLE `sys_test` (`id` int(11) NOT NULL AUTO_INCREMENT COMMENT '主键ID',`name` varchar(20) DEFAULT NULL COMMENT '名称',`longitude` decimal(10,6) DEFAULT NULL COMMENT '经度',`latitude` decimal(10,6) DEFAULT NULL COMMENT '维度',PRIMARY KEY (`id`)
) ENGINE=InnoDB;
插入假数据,这里就单纯测试,所以就放十几条数据
INSERT INTO `sys_test` VALUES (1, '测试1', 118.030365, 34.875447);
INSERT INTO `sys_test` VALUES (2, '测试2', 118.020891, 34.918145);
INSERT INTO `sys_test` VALUES (3, '测试3', 118.009190, 34.916451);
INSERT INTO `sys_test` VALUES (4, '测试4', 118.016395, 34.918498);
INSERT INTO `sys_test` VALUES (5, '测试5', 117.995123, 34.911782);
INSERT INTO `sys_test` VALUES (6, '测试6', 117.979800, 34.916937);
INSERT INTO `sys_test` VALUES (7, '测试7', 118.159795, 34.903182);
INSERT INTO `sys_test` VALUES (8, '测试8', 118.116200, 34.833900);
INSERT INTO `sys_test` VALUES (9, '测试9', 118.181700, 34.800600);
INSERT INTO `sys_test` VALUES (10, '测试10', 117.767809, 34.916654);
二、sql内容
1、st_distance(MySql5.7版本及以后)
select *,
st_distance(point(longitude,latitude),point(118.181700,34.800601))*111195 distance
from sys_test
order by distance;
这里要乘111195是将计算的值转换为米(函数计算的结果为千米)
| 语法 | 解释 |
|---|---|
| st_distance() | MySQL 5.7 及以上版本中引入的地理空间函数,用于计算两个地理空间点之间的距离。 |
| point (longitude,latitude) | 这是构造函数,用于创建一个地理空间点对象。longitude 和 latitude 是 sys_test 表中的字段,分别代表记录的经度和纬度。 |
| point(118.181700,34.800601) | 这里存放获取的经纬度信息,如果mybatis中可以更换为point (#{longitude},#{latitude}) |
| *111195 | 将 st_distance() 函数计算出的距离乘以 111195,用于将距离从米转换为千米。 |
圆计算周长公式:
2πr,sql中使用pi()代替π,假设地球是一个完美的球体,圆的半径为6371000米,然后除以360得到的就是1度为多少米,select 2*pi()*6371000/3602;,结果约等于11195
2、st_distance_sphere(MySql5.7版本及以后)
select *,
st_distance_sphere(point(longitude,latitude),point(118.181700,34.800601)) as distance
from sys_test
order by distance;
2、MySql5.7版本之前
select *,
round(6371*2*asin(sqrt(pow(sin((34.800601*pi()/180-latitude*pi()/180)/2),2)+cos(34.800601*pi()/180)*cos(latitude*pi()/180)*pow(sin((118.181700*pi()/180-longitude*pi()/180)/2),2)))*1000
) distance
from sys_test
order by distance;
| 语法 | 解释 |
|---|---|
| round | 对计算结果进行四舍五入到最接近的整数,这里根据需求进行添加。 |
| 6371 | 这是地球的平均半径,单位是千米。 |
| 2*asin() | 这是哈弗赛因公式的一部分,用于计算两个经纬度点之间的大圆距离。 |
| sin, cos, pow, sqrt | 这些是三角函数和数学函数,用于计算两点之间的角度差。 |
| latitudepi()/180 和 longitudepi()/180: | 将角度从度转换为弧度,因为 MySQL 的三角函数需要弧度作为输入。 |
| 34.800601pi()/180 和 118.181700pi()/180: | 将给定的纬度和经度转换为弧度。 |
| asin() | 反正弦函数,用于计算两点之间的角度差 |
| *1000 | 将距离从千米转换为米。 |
相关文章:
MySql根据经纬度查询距离
一、搭建测试 创建数据表() CREATE TABLE sys_test (id int(11) NOT NULL AUTO_INCREMENT COMMENT 主键ID,name varchar(20) DEFAULT NULL COMMENT 名称,longitude decimal(10,6) DEFAULT NULL COMMENT 经度,latitude decimal(10,6) DEFAULT NULL COMMENT 维度,PRIMARY KEY (id…...
Aviatrix Controller 未授权命令注入漏洞复现(CVE-2024-50603)
0x01 产品简介 Aviatrix Controller是一款强大的云网络管理平台,提供简化的跨云网络管理、自动化配置、安全策略、流量监控等功能,帮助企业实现更加灵活、安全和高效的云网络架构,特别适用于多云和混合云环境。主要用于编排和管理各种网络和连接解决方案。它为用户提供了一…...
数据结构与算法之二叉树: LeetCode 109. 有序链表转换二叉搜索树 (Ts版)
有序链表转换二叉搜索树 https://leetcode.cn/problems/convert-sorted-list-to-binary-search-tree/description/ 描述 给定一个单链表的头节点 head ,其中的元素 按升序排序 ,将其转换为 平衡 二叉搜索树 示例 1 输入: head [-10,-3,0,5,9] 输出:…...
Android NDK开发入门2之适应idm环境
环境搭建 Android NDK开发实战之环境搭建篇(so库,Gemini ai)-CSDN博客 初始配置 前面已经运行了一个简单的初始程序,现在我们来往初始程序添加类和函数,并成功运行的实验。 一级配置 第一层配置主要是cmake文件环境和一些编译选项。 build配置 可参…...
如何隐藏 Nginx 版本号 并自定义服务器信息,提升安全性
🏡作者主页:点击! Nginx-从零开始的服务器之旅专栏:点击! 🐧Linux高级管理防护和群集专栏:点击!点击!点击! ⏰️创作时间:2025年1月8日8点14分…...
鸿蒙的APP真机调试以及发布
目录: 1、创建好鸿蒙项目2、创建AGC项目3、实现自动签名3.1、手动方式创建签名文件和密码 4、运行项目5、无线真机调试 1、创建好鸿蒙项目 2、创建AGC项目 (1)在File->Project Structure->Project->Signing Configs中进行登录。(未…...
图像处理|膨胀操作
在图像处理领域,形态学操作是一种基于图像形状的操作,用于分析和处理图像中对象的几何结构。**膨胀操作(Dilation)**是形态学操作的一种,它能够扩展图像中白色区域(前景)或减少黑色区域…...
攻防世界 ics-07
点击之后发现有个项目管理能进,点进去,点击看到源码,如下三段 <?php session_start(); if (!isset($_GET[page])) { show_source(__FILE__); die(); } if (isset($_GET[page]) && $_GET[page] ! index.php) { include(flag.php);…...
C# 之某度协议登录,JS逆向,手机号绑定,获取CK
.NET兼职社区 .NET兼职社区 .NET兼职社区 .NET兼职社区 有需要指导,请私信我留言V或者去社区找客服。...
js适配器模式
适配器模式通过把一个类的接口变换成客户端所期待的另一种接口,可以帮我们解决不兼容的问题。 应用 // Ajax适配器函数,入参与旧接口保持一致 async function AjaxAdapter(type, url, data, success, failed) {const type type.toUpperCase()let resul…...
小徐影城管理系统(源码+数据库+文档)
亲测完美运行带论文:文末获取源码 文章目录 项目简介(论文摘要)运行视频包含的文件列表(含论文)前端运行截图后端运行截图 项目简介(论文摘要) 随着现在网络的快速发展,网上管理系统…...
Linux第101步_了解LCD屏驱动“panel-simple.c”
了解LCD屏驱动“panel-simple.c”有助于修改屏驱动。自己另外单独写屏驱动,这是不现实的,所以学会在源程序的基础上修改,才是最佳的学习方法,这就是我们学习框架的主要原因。在Limux系统中,主流的显示框架有两种:DRM(D…...
【实用技能】如何使用 .NET C# 中的 Azure Key Vault 中的 PFX 证书对 PDF 文档进行签名
TX Text Control 是一款功能类似于 MS Word 的文字处理控件,包括文档创建、编辑、打印、邮件合并、格式转换、拆分合并、导入导出、批量生成等功能。广泛应用于企业文档管理,网站内容发布,电子病历中病案模板创建、病历书写、修改历史、连续打…...
前端基础函数算法整理应用(sort+reduce+date+双重for循环)
文章目录 基础函数算法reduce 函数算法sort 函数算法时间排序1. 对日期字符串数组进行排序2. 对包含日期对象的数组进行排序3. 对包含时间戳的数组进行排序4. 对包含日期时间信息的对象数组进行排序 基础函数算法 一、排序算法 冒泡排序(Bubble Sort) …...
鸿蒙MPChart图表自定义(六)在图表中绘制游标
在鸿蒙开发中,MPChart 是一个非常强大的图表库,它可以帮助我们创建各种精美的图表。今天,我们将继续探索鸿蒙MPChart的自定义功能,重点介绍如何在图表中绘制游标。 OpenHarmony三方库中心仓 一、效果演示 以下是效果演示图&…...
poi-tl+kkviewfile实现生成pdf业务报告
需求背景,需要把ai生成的一些业务数据,生成一份pdf报告 需求分析 简单来说,就是json生成pdf的方案。 直接生成pdf。适合一些pdf样式简单的场景,一般就是纯文本按序渲染,或者是纯表格。如果需要一些复杂的排布&#x…...
【Uniapp-Vue3】scroll-view可滚动视图区域组件
如果我们有一个区域有限的大盒子(黑),而我们要在盒子中装的东西(灰)过多,我们就会用到滚动视图: 表现在代码上就是下面这个样子: <template><view class"scrollView&…...
asp.net core webapi中的数据注解与数据验证
在这一课中,主要讲解了如何在 Web API 中使用数据注解(Data Annotations)和进行数据验证,以确保请求数据的有效性和完整性。 在 Web API 中,数据验证是确保客户端传递的数据符合业务规则和格式要求的关键步骤。数据注…...
PixPin—— 高效截图工具的下载与使用攻略
在日常的工作和学习中,一款好用的截图工具能极大地提高我们的效率。今天就来给大家介绍一款功能强大的截图工具 ——PixPin。 下载篇 PixPin 的下载非常简单,只需访问下载网站,在首页就能找到适合你操作系统的下载链接。如果你使用的是 Win…...
Go语言的 的多态性(Polymorphism)基础知识
Go语言的多态性(Polymorphism)基础知识 在编程语言中,多态性是一个核心概念,它允许同一接口被不同的数据类型所实现,从而在不影响代码结构的情况下增强代码的灵活性和可扩展性。在Go语言中,多态性通过接口…...
如何让AI替你操作浏览器?Midscene Chrome扩展的智能自动化革命
如何让AI替你操作浏览器?Midscene Chrome扩展的智能自动化革命 【免费下载链接】midscene AI-powered, vision-driven UI automation for every platform. 项目地址: https://gitcode.com/GitHub_Trending/mid/midscene 你是否厌倦了每天重复点击、填写、提交…...
51单片机 proteus仿真 直流电机
电路仿真代码#include <reg51.h>#define uchar unsigned char #define uint unsigned int #define LCD_Data P0 sbit IN1 P3^0; sbit IN2 P3^1; sbit ENA P3^2;sbit back P2^0; sbit forword P2^1; sbit up P2^2; sbit down P2^3; sbit stop P2^4; sbit LCD_RS…...
10个Python数据分析实战技巧:从入门到精通的完整指南
10个Python数据分析实战技巧:从入门到精通的完整指南 【免费下载链接】Bioinformatics-with-Python-Cookbook-Second-Edition 项目地址: https://gitcode.com/gh_mirrors/bi/Bioinformatics-with-Python-Cookbook-Second-Edition 想要快速掌握Python数据分析…...
Llama-3.2V-11B-cot部署案例:Docker镜像免配置运行图文推理API服务
Llama-3.2V-11B-cot部署案例:Docker镜像免配置运行图文推理API服务 想体验一个能看懂图片、还能像人一样一步步思考的AI吗?今天要介绍的 Llama-3.2V-11B-cot 就是这样一个模型。它不仅能识别图片里的内容,还能把思考过程一步步拆解给你看&am…...
Kandinsky-5.0-I2V-Lite-5s从零部署:JDK1.8环境下的Java客户端开发
Kandinsky-5.0-I2V-Lite-5s从零部署:JDK1.8环境下的Java客户端开发 1. 引言 还在用JDK1.8开发企业级应用?想集成最新的Kandinsky-5.0-I2V-Lite-5s图像转视频模型却担心兼容性问题?这篇教程就是为你准备的。我们将从零开始,手把手…...
Ollama部署本地大模型轻量化实践:LFM2.5-1.2B-Thinking嵌入式设备适配
Ollama部署本地大模型轻量化实践:LFM2.5-1.2B-Thinking嵌入式设备适配 1. 引言:为什么选择LFM2.5-1.2B-Thinking? 如果你正在寻找一个既强大又轻量的大模型,能够在普通设备上流畅运行,那么LFM2.5-1.2B-Thinking绝对值…...
Java静态镜像内存优化实战手册(Heap Size从286MB直降至42MB的完整链路)
第一章:Java静态镜像内存优化实战手册(Heap Size从286MB直降至42MB的完整链路)在GraalVM Native Image构建的Java服务中,初始堆内存(-Xms)常被默认设为256MB以上,导致容器资源浪费严重。本章基于…...
Pixel Fashion Atelier惊艳效果展示:512x768竖版高精度皮装图集
Pixel Fashion Atelier惊艳效果展示:512x768竖版高精度皮装图集 1. 像素艺术与时尚的完美融合 Pixel Fashion Atelier(像素时装锻造坊)将复古游戏美学与现代时尚设计相结合,创造出了独特的视觉体验。这款基于Stable Diffusion与…...
Phi-4-Reasoning-Vision详细步骤:Streamlit宽屏布局CSS定制与响应式优化
Phi-4-Reasoning-Vision详细步骤:Streamlit宽屏布局CSS定制与响应式优化 1. 项目概述 Phi-4-Reasoning-Vision是基于微软Phi-4-reasoning-vision-15B多模态大模型开发的高性能推理工具,专为双卡4090环境优化。该工具严格遵循官方SYSTEM PROMPT规范&…...
你的SSH密钥可能已经过期了评
引言 在现代软件开发中,性能始终是衡量应用质量的重要指标之一。无论是企业级应用、云服务还是桌面程序,性能优化都能显著提升用户体验、降低基础设施成本并增强系统的可扩展性。对于使用 C# 开发的应用程序而言,性能优化涉及多个层面&#x…...

