根据两者的坐标选择某个位置的设备并对其进行计数

2024-03-27

通过使用 SQL 地理的 STContains 函数,可以计算一组坐标是否在一个区域内 https://stackoverflow.com/questions/64453530/match-location-between-coordinates/64467776,但这表明如果最后收到的坐标正好在该区域之外,那么这些坐标与任何位置都不匹配。

什么是有效的展示方式how many and 哪些设备根据一组静态位置坐标与设备动态坐标之间的最小距离,(共 4000 个)存在于哪个位置(共 600 个)?

地点表:

loc_name | loc_lat | loc_long | loc_geo_polygon | loc_geo_point

设备表:

dev_name | dev_lat | dev_long | dev_geo_point

显而易见的解决方案是查询两个表中的所有数据,然后循环遍历 4000 个设备并测量到 600 个位置的距离,返回最小距离,但这会在每次我想查看数据时创建 240 万次计算。即使我从列表中删除位置已匹配的设备,计算量仍然很大,未来增长的潜力有限。

另一种方法是添加一个地点名称列到设备表中,并在每次从设备接收到坐标时计算最近的位置,即每分钟计算 100 个设备 x 600 个位置,比以前更好,因为它是稳定负载而不是突发负载。

也许有更好的方法来逻辑地处理这个问题,或者使用我不知道的函数?


我可以想出几种方法。两者都将利用先前解决方案的能力来找到一组点are在您的固定位置之一的指定容差范围内。通过扩展,这应该为您提供一种找到一组特殊点的方法。

找到该集合后,您可以应用概述的“最近邻居”处理here https://learn.microsoft.com/en-us/sql/relational-databases/spatial/query-spatial-data-for-nearest-neighbor?view=sql-server-ver15。它看起来像这样:

select *
from ExceptionalPoints as e
cross apply (
   select top(1) l.*
   from Location as l
   order by l.loc_geo_point.STDistance(e.dev_geo_point)
) as nn

从文档来看,应该能够利用表上现有的空间索引。

我能想到的另一种方法是创建一个沃罗诺伊镶嵌 https://en.wikipedia.org/wiki/Voronoi_diagram使用您的位置。然后,您可以向“位置”表中添加另一列,以存储与该位置关联的 Voronoi 单元。那时,就像原始方法一样连接两个表。哎呀...这甚至可以replace原始方法(使用 Voronoi Cell 而不是该位置周围的固定半径缓冲区)。但它也有一个警告——计算曲面细分并非易事。当然,您只需要执行一次(或者每当位置集发生变化时)。

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

根据两者的坐标选择某个位置的设备并对其进行计数 的相关文章

  • 当没有文件可供下载时,如何避免 SSIS FTP 任务失败?

    我正在使用 SQL Server 2005 并在 SSIS 中创建 ftp 任务 有时会有文件需要通过 ftp 传输 有时则不会 如果没有文件 我不希望任务或包失败 我已将从 ftp 任务到下一个任务的箭头更改为 完成 以便包运行 我已将允
  • OOP 中的静态和动态变量/方法是什么?

    我试图更好地理解 OOP 中的基本概念 面向对象编程中的静态和动态变量和方法是什么 例如 使用 this 与使用双冒号 之间有什么区别 this this gt a method 优点 缺点 这个 不是自我记录的 如下所示 this gt
  • PHP 论坛软件可以轻松与现有网站集成吗? [关闭]

    Closed 这个问题不符合堆栈溢出指南 help closed questions 目前不接受答案 我有一个现有的 php 网站 已经设置了用户系统 注册 身份验证 丢失密码等 我决定添加一个留言板并将其与现有网站集成 在一个网站上注册应
  • PHP:将数组添加在一起

    有人可以帮我解释一下吗 我有两段代码 其中一个按我的预期工作 但另一个则不然 这有效 a array a gt 1 b gt 2 b array c gt 3 c a b print r c Output Array a gt 1 b gt
  • 展平具有未知列数的子/父数据

    我正在努力寻找存储和表示 SQL MySQL DB 和 C Windows 表单中的数据的最佳方法 我的数据映射到如下所示的类时 public class Parent public string UniqueID get set Key
  • laravel 5:找不到类“输入”

    In my routes php我有的文件 Route get function return view login Route get index function return view index Route get register
  • 如何在没有数据库的情况下创建AJAX分页?

    是否可以在没有 MySQL 帮助的情况下获取 AJAX 分页页面 难道我不能只添加一个包含我需要显示的文本和标记的 PHP 文件 然后通过单击页码将该内容提供给用户吗 那么可以用纯 jQuery 和 PHP 来实现吗 您会使用什么代码方法来
  • SQL Server 到 er 模型

    是否有程序可以将 SQL Server 数据库图表转换为 er 模型 或者从 SQL Server 服务器创建数据库的 er 模型 在 SQL Server 中 Management Studio 中的每个数据库都有 数据库图 功能 您可以
  • php 删除特定文件夹及其所有内容

    我正在使用 php 删除包含已删除帖子图像的文件夹 我正在使用下面的代码 这是我在网上找到的并且做得很好 我想知道当一个文件夹中有其他文件夹时 如何只删除其中的特定文件夹 当我使用下面的代码时 如何才能做到这一点 使用 dev images
  • PHP 版本如何匹配“API=yyyymmdd”签名/标签?

    是否有明确且可靠的来源来找出哪个 PHP 发行版本 x y z 携带 使用哪个 API yyyymmdd 签名 标签 PHP 的版本控制存储库是 PHP 版本与其 API 日期版本之间相关性的权威来源 请记住 仅主要版本PHP 的版本 例如
  • 如何列出表中的所有列?

    对于各种流行的数据库系统 如何列出表中的所有列 对于 MySQL 请使用 DESCRIBE name of table 只要您使用 SQL Plus 或 Oracle 的 SQL Developer 这也适用于 Oracle
  • 如何使用 jquery imgAreaSelect 用 php 裁剪图像?

    我正在使用以下 javascript 代码来实例化 jquery图像区域选择 http odyniec net projects imgareaselect 裁剪我的图像 document ready function ladybug im
  • 从数据库中给定时间起经过的时间

    我有一个 HTML 表 其中包含从数据库中提取的记录 我正在使用 PHP MySQL 我的表中名为 Timer 的列未从数据库中检索 我需要在此处显示经过的时间 从数据库中的特定时间开始 例如 假设现在的时间是2013年2月21日下午6点2
  • JQuery 验证不起作用

    我有一种表单 其中一个输入类型的值为 名字 但这可以在 onfocus 函数上更改我想验证此输入字段 如果它为空白或 名字 我有两个 jQuery 文件jquery 1 4 2 min js jquery validate pack js
  • Java/Hibernate - 异常:内部连接池已达到其最大大小,当前没有可用的连接

    我第一次在大学项目中使用 Hibernate 而且我还是个新手 我想我遵循了我的教授和我阅读的一些教程给出的所有指示 但我不断收到标题中的异常 Exception in thread main org hibernate Hibernate
  • 优化mysql中日期类型字段的查询

    我目前准备了以下查询 select sum amount as total from incomes where YEAR date 2019 and MONTH date 07 and incomes deleted at is null
  • 创建具有动态更新变量的数组

    我有一些 PHP 变量 它们的名称直接链接到它们包含的函数 是否有办法自动创建这些变量 以便我可以使用所有变量 00 200 这就是我现在正在做的事情 regdays00 is user reg matured 00 regdays02 i
  • PHP + FTP删除文件夹中的文件

    我刚刚编写了一个 PHP 脚本 它应该连接到 FTP 并删除特殊文件夹中的所有文件 它看起来像这样 但我不知道需要什么命令来删除文件夹日志中的所有文件 任何想法
  • ZF2 - 从路线生成 URL

    我无法弄清楚在 zend 2 中从我想要的任何地方生成 Url 我得到了动作和控制器 所以我尝试这个 this gt url myControllerName array action gt myActionName 但这返回一个对象 我只
  • 未加载 Firebird 扩展

    我正在尝试在 PHP 中使用 Firebird 扩展 我有扩展文件 php pdo firebird dll php interbase dll in my ext文件夹 我将它们添加到我的php ini像这样文件 PHP PDO FIRE

随机推荐

  • 如何将CAP文件加载到java卡

    我是java卡的新手 你能帮我看看如何将Applet CAP文件解析为APDU吗 用于将此 CAP 文件安装到支持 GP2 2 的卡上 你应该尝试使用GPShell http sourceforge net projects globalp
  • 无法在 Mac OS X 10.6 上的 Python 中将 Matplotlib 中的字体更改为 Helvetica

    我正在尝试将 matplotlib 字体更改为 helvetica 我想在 PDF 图中使用它 我尝试以下操作 import matplotlib matplotlib use PDF import matplotlib pylab as
  • 将用户重定向到不同 ASP.NET Core Razor 网站中的页面

    我有一个 ASP NET Core 2 1 Razor 应用程序 其中有两个在登录前处于活动状态的菜单项 我想在单击任一菜单项时转移 重定向 到其他网站 我尝试过重定向 如下所示 但当前 url 添加到我指定的字符串中 public IAc
  • 根据水年创建日索引

    我正在处理水文数据 我需要水年 我已经根据之前在此论坛上发布的功能成功创建了一个水年专栏 我想要的是有一个陪伴water day范围从 1 365 闰年为 366 以匹配水年序列 请注意 水年是由其结束的日历年指定的 例如 2010水年从2
  • Linux IPC:共享内存回收

    我有两个进程 生产者和消费者 通过使用生成的共享内存段进行通信 old https stackoverflow com questions 21311080 linux shared memory shmget vs mmap接口而不是 m
  • 将 ENGINE 上下文附加到 SSL_CTX

    我想知道是否有可能附加一个ENGINE 实施到SSL CTX and or SSL 结构 我想要实现的是拥有一个SSL CTX 将使用 OpenSSL 中内置的默认加密操作和另一个设置SSL CTX 将使用专用 HSM 作为加密层 我可以通
  • Ext.data.Store getTotalCount() 加载后不计算

    我的商店在调用时并不总是返回正确数量的记录getTotalCount 这个问题出现在我之后load 商店 我知道在检查时商店里有记录 我正在使用 ExtJs 4 1 3 this grid reference to my grid var
  • Swift:使用未声明的类型

    我正在实现一个类 但出现此错误 使用未声明的类型 myProtocol 这是我的代码 class LocalContactService myProtocol 你们中有人知道为什么我会收到此错误吗 我遇到了同样的错误 在我的情况下 我意外地
  • shinyapps setAccountInfo 错误

    当我尝试配置我的shinyapps根据以下指南在 my shinyapps io 上注册帐户信息https github com rstudio shinyapps blob master guide guide md https gith
  • Excel VBA - 将图表保存为 GIF 文件

    编程不是我的主要工作职能 但似乎是我所认为的瑞士军刀 我的任务是在 Excel 中制作一个 VBA 宏 将图形导出到 gif 文件 以便自动更新我们制造工厂的信息屏幕 我有一个可以工作的宏 但是 它有时会失败并创建一个具有正确文件名但 空
  • 实体框架中实体之间的复杂关系

    也许它是重复的 但我找不到任何这样的主题 我正在使用实体框架 数据库中有两个表 public class A public virtual B B1 get set public virtual B B2 get set public cl
  • ORA-01722: 实体框架上的编号无效

    我正在从 Oracle DB 执行一个存储过程 即 PROCEDURE GET TIM USER CUSTO P ANOMES IN VARCHAR USER CUSTO OUT SYS REFCURSOR IS BEGIN OPEN US
  • 如何从特定的目标文件生成特定的二进制文件?

    这是我的 makefile 我在 obj 目录中有目标文件 我需要将它们编译成 bin 文件夹中的二进制文件 但不知何故它无法按我希望的方式工作 有什么想法吗 SOURCES wildcard c OBJECTS patsubst c o
  • 安卓用C++还是Java?

    我正在考虑在空闲时间学习 Android 开发 我发现 Java 和 C 都可以进行开发 但后者是有限的 我对 C 更加满意 所以我的问题是 Android 上的 C 存在哪些限制 我能够用它开发完整的应用程序吗 还是我最终必须学习 Jav
  • C 中数组的理想数据类型

    我想存储键和可变大小数组之间的静态关联 foo gt bar awe foo2 gt bar2 awe2 gruh 该数组在程序执行期间永远不会改变 它只是将字符串变量数组与字符串键静态关联的一种方法 子阵列的数量非常少 我怎样才能纯粹地做
  • 等待 .forEach() 完成的最佳方法

    有时我需要等待 forEach 方法来完成 主要是 加载器 功能 这就是我这样做的方式 q when array forEach function item iterate on something then function contin
  • Google 地图 v3 折线工具提示

    谷歌地图标记对象 google maps Marker 有一个 title 属性 因此当用户将鼠标移到标记上时 会显示一个简单的工具提示 折线 google maps Polyline 上没有标题属性 有没有办法可以在 V3 中做到这一点
  • 如何使用谷歌脚本打开位于谷歌驱动器文件夹中的Excel文件?

    我需要打开给定的谷歌驱动器文件夹中的 Excel 文件并读取其数据 为此 我使用了以下代码 var folders DriveApp getFoldersByName Test Folder var foldersnext folders
  • 结构或联合中的“unsigned temp:3”是什么意思? [复制]

    这个问题在这里已经有答案了 可能的重复 这段C 代码是什么意思 https stackoverflow com questions 1604968 what does this c code mean 我正在尝试使用 JNA 将 C 结构映
  • 根据两者的坐标选择某个位置的设备并对其进行计数

    通过使用 SQL 地理的 STContains 函数 可以计算一组坐标是否在一个区域内 https stackoverflow com questions 64453530 match location between coordinate