java通过经纬度获取区间

2023-11-12

引入依赖

<!-- https://mvnrepository.com/artifact/org.locationtech.spatial4j/spatial4j -->
<dependency>
    <groupId>org.locationtech.spatial4j</groupId>
    <artifactId>spatial4j</artifactId>
    <version>0.7</version>
</dependency>

java实例

double lon = 116.312528, lat = 39.983733;     // 经纬度 
int radius = 5;                               // 千米

SpatialContext geo = SpatialContext.GEO;
Rectangle rectangle = geo.getDistCalc().calcBoxByDistFromPt(geo.makePoint(lon, lat), radius * DistanceUtils.KM_TO_DEG, geo, null);

System.out.println(rectangle.getMinX() + " - " + rectangle.getMaxX());  // 经度范围   116.25384300580865 - 116.37121299419135
System.out.println(rectangle.getMinY() + " - " + rectangle.getMaxY());  // 纬度范围   39.93876698161192 - 40.02869901838808

传参给sql语句,获取5公里以内的数据

SELECT id, name FROM customer 
    WHERE (lon BETWEEN ? AND ?) AND (lat BETWEEN ? AND ?);

为了提升查找速度,可以建立索引

INDEX `idx_lon_lat` (`lon`, `lat`)

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

java通过经纬度获取区间 的相关文章

随机推荐

  • Wire load model

    做综合时 经常提到wire loadmodel 一直不甚了解 只知道是针对0 18um以上的工艺的一种粗略估计线延迟的模型方法 最近有时间看primepower的文档 终于有一些理解了 Wireload模型 实际上就是综合库中 若干个fan
  • android studio安装后,无法创建avd模拟器。

    win7 安装as3 5后创建avd模拟器提示错误如下 1 选择虚拟机之后出现 unkown error troubleshoot Please file a bug against Android Studio 2 查看 AndroidS
  • 【Web3 系列开发教程——创建你的第一个 NFT(5)】使用 Ethers.js 铸造 NFT

    本节文章将描述如何通过 ethers js 库使用以太币在以太坊区块链上铸造 NFT 以及我们还会讨论如何对创建的 NFT 进行基础的测试 在本文中 我们将实践一种可替代的方法 即使用 OpenZeppelin V4 库 以及 Ethers
  • 云架构师的进阶之路

    一 架构的三个维度和六个层面 1 1 三大架构 在互联网时代 要做好一个合格的云架构师 需要熟悉三大架构 第一个是IT架构 其实就是计算 网络 存储 这是云架构师的基本功 也是最传统的云架构师应该首先掌握的部分 良好设计的IT架构 可以降低
  • 刷脸支付服务商需要敏锐把握快速行动

    科技改动生活 靠脸吃饭已不是笑言 无论是饭店吃饭还是医院看病又或者搭乘公交 地铁等日常生活行为 很多场景曾经能够完成刷脸完成买卖支付环节 继手机扫码支付后 刷脸支付再次成为关注焦点 移动支付方兴未艾 刷脸支付忽然兴起 微信的这一举措 是刷脸
  • 【Antlr】修改由Antlr生成的表示式?替换遍历方式?

    1 概述 我想使用Antlr4读取表示式并且其進行一些修改 例如 如果语法是算术运算 我將修改表示式 表示 2 3 1 與 2 4 然後用 8 這是 計算 或 簡化 要執行此操作 我將建立一些樹結構 第一個想法是使用由Antlr建立的相同的
  • [网站搭建] 阿里云搭建个人网站及域名绑定

    前一篇 网站搭建 阿里云虚拟主机搭建及FTP文件上传 主要讲述了如何通过阿里云虚拟机搭建网站服务器 同时FTP上传文件 登录后进入控制台或管理界面 接下来的主要步骤如下图所示 1 获取追加信息 2 网站备案 3 上传网站数据库数据 4 网站
  • CSR867x — 广播数据设置接口以及如何添加厂商数据

    XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX XX 作 者 文化人 XX 联系方式 XX 版权声明 原创文章 欢迎评论和转载 转载时能告诉我一声就最好了 XX 要说的话 作者水平有
  • Visdom:Python可视化神器

    Visdom 可视化神器 项目地址 visdom 文章目录 Visdom 可视化神器 visdom实质 visdom核心概念 env 环境 pane 窗格 创建Visdom环境 常用API plot scatter plot line pl
  • 重新学javaweb---过滤器 应用--全站乱码

    之前没用过滤器的时候我们解决乱码 的办法是在每个servlet最前面加 响应乱码 response setCharacterEncoding utf 8 通知服务器 response setContentType text html cha
  • 解决VMware虚拟机Ubuntu 18.04无法上网问题!

    由于应用需要 安装了Ubuntu18 04 整体效果还不错 唯一的BUG就是网络不稳定 很容易断网 常常出现 connected failed 解决办法 1 sudo service network manager stop 2 删除之前先
  • Epoll实验总结

    Epoll实验总结 2012 09 06 15 54 10 分类 network program 标签 epoll c 举报 字号 订阅 下载LOFTER 我的照片书 一 超时实验 建立一个阻塞模式的tcp连接到一个没有监听的服务端口 肯定
  • 【vue3】vue3在父组件中调用子组件中定义的methods

    首先要区分子组件的setup的写法 写法1 子组件的setup写在
  • 声音的基础知识

    一 声音的定义 声音 sound 是由物体振动产生的声波 是通过介质 空气或固体 液体 传播并能被人或动物听觉器官所感知的波动现象 最初发出振动 震动 的物体叫声源 声音以波的形式振动 震动 传播 声音是声波通过任何介质传播形成的运动 声音
  • 【mmsegmentation模型训练deeplabv3】自定义数据集加载和训练

    目录 前言 mmsegmentation下载 mmsegmentation官网 欢迎来到 MMSegmentation 的文档 MMSegmentation 0 27 0 文档https mmsegmentation readthedocs
  • Mac os使用git,不依赖Xcode

    说明 后来发现使用mac的命令行开发者工具很香 于是又删除了下文安装的git 直接点击下图的 安装 来获取命令行开发者工具 安装路径是 Library Developer CommandLineTools 包含了git gcc g make
  • import com.google.common.* 出错,找不到

    一 问题 在启动项目的时候 import com google common base Preconditions 报错 找不到这个类 二 解决 要引入guavar依赖 Guava 中文是石榴的意思 该项目是 Google 的一个开源项目
  • JavaWeb 相关问题汇总:

    我是目录 1 输入 URL 后发生了什么事情 如何定位服务资源 2 如何接收 HTTP 请求数据 3 ajax有什么作用 4 Filter 过滤器 5 tomcat 1 输入 URL 后发生了什么事情 如何定位服务资源 通过IP找到主机 通
  • 华为OD2023(A卷)基础题27【找数字、找等值元素】

    华为OD机试 找数字 找等值元素 找数字 给一个二维数组nums 对于每一个元素num i 找出距离最近的且值相等的元素 输出横纵坐标差值的绝对值之和 如果没有等值元素 则输出 1 输入描述 输入第一行为二维数组的行 输入第二行为二维数组的
  • java通过经纬度获取区间

    引入依赖