当前位置: 首页 > news >正文

MYSQL实现获取某个经纬度区域内的数据

1.创建表

在这里插入图片描述

2.插入表数据

INSERT INTO `tf_sys`.`tf_location`(`name`, `longitude`, `latitude`, `location`) VALUES ('资料名称1', 114.437625, 16.016914, ST_GeomFromText('POINT(114.437625 16.016914)'));
INSERT INTO `tf_sys`.`tf_location`(`name`, `longitude`, `latitude`, `location`) VALUES ('资料名称2', 120.437625, 16.016914, ST_GeomFromText('POINT(120.437625 16.016914)'));
INSERT INTO `tf_sys`.`tf_location`(`name`, `longitude`, `latitude`, `location`) VALUES ('资料名称3', 114.437625, 20.016914, ST_GeomFromText('POINT(114.437625 20.016914)'));
INSERT INTO `tf_sys`.`tf_location`(`name`, `longitude`, `latitude`, `location`) VALUES ('资料名称4', 120.437625, 20.016914, ST_GeomFromText('POINT(120.437625 20.016914)'));

在这里插入图片描述

3.查询

3.1 sql

SELECT 
	tl.name,
	tl.longitude,
	tl.latitude,
	ST_AsGeoJSON(tl.location) as location
FROM tf_location tl
WHERE tl.longitude < 130
	and tl.longitude > 103 
	and tl.latitude < 18
	and tl.latitude > 10
	and ST_CONTAINS(ST_POLYGONFROMTEXT('POLYGON((103 10,130 10,130 18,103 18,103 10))'),tl.location);

在这里插入图片描述

3.2 语句

SELECT
    tl.id,
    tl.name,
    tl.longitude,
    tl.latitude,
    ST_AsGeoJSON(tl.location) as location
FROM tf_location tl
	WHERE tl.longitude &lt; #{maxLong}
      and tl.longitude &gt; #{minLong}
      and tl.latitude &lt; #{maxLat}
      and tl.latitude &gt; #{minLat}
      and ST_CONTAINS(ST_POLYGONFROMTEXT(#{polygon}), tl.location)

3.3 解释

① 几何图形需要形成一个闭合区域
② 获取集合图形经纬度的最大值和最小值
③ POLYGON((103 10,130 10,130 18,103 18,103 10)),按瞬时间填写经纬度,并且第一个和最后一个的值保持一样形成一个闭合的区域

http://www.dtcms.com/a/108208.html

相关文章:

  • Cesium系列:从入门到实践,打造属于你的3D地球应用
  • 为 Jenkins Agent 添加污点(Taint)容忍度(Toleration)
  • Dubbo分布式框架学习(1)
  • vue省市区懒加载,用el-cascader 新增和回显
  • 多模态大模型笔记
  • Compressed串行端口终端应用程序(MAC 、WIN、LINUX)打包下载
  • 高级java每日一道面试题-2025年3月19日-Web篇-防止表单重复提交的方法有哪些?
  • MySQL联合查询
  • vector的学习使用(1)
  • Cjson的创建和解析
  • 【Python】KNN:K-NearestNeighbor 学习指南
  • Vue3+Cesium+vite 入门- 项目搭建
  • HAL库 通过USB Boot进行APP程序升级
  • window11 通过cmd命令行安装 oh my zsh 的教程
  • VMware上的windows虚拟机安装使用Docker方法
  • MySQL篇(二): 核心知识深度聚簇解析:索引、非聚簇索引、回表查询、覆盖索引、超大分页处理、索引创建原则与索引失效场景
  • TDengine 权限管理与安全配置实战(二)
  • Redhat8.10 离线安装Snipe-IT v8.0.4 版本
  • 计算机网络中科大 - 第1章 结构化笔记(详细解析)
  • PostgreSQL pg_repack 重新组织表并释放表空间
  • NumPy的应用
  • 【数据结构】图的基本概念
  • 基于Django框架的基金数据可视化平台(源码+lw+部署文档+讲解),源码可白嫖!
  • 客户机用vscode连接局域网内主机
  • springboot去读yml配置文件中的属性值
  • LLM大模型学习系列——总纲
  • 瑞数信息发布《BOTS自动化威胁报告》,揭示AI时代网络安全新挑战
  • 深入解析 Java 8 Function 接口:函数式编程的核心工具
  • react 15-16-17-18各版本的核心区别、底层原理及演进逻辑的深度解析--react17
  • Windows下部署AgentGPT