问题标签 [spatial-index]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
sql-server-2012 - SSMS 不允许我在 SQL Server 2012 中创建空间索引
我已经在 FOO 表上创建了一个空间索引,它工作正常,现在我正在尝试在 BAR 表上创建一个相同的空间索引。
该表包含如下所示的值:
FOO.geoTesselationScheme
上的空间索引中的 是Geography grid
。每个对象的单元格为 64。四个网格级别中的每一个的粒度都设置为高。试图用表 BAR 做同样的事情。收到此错误:
但是 microsoft.com 上的那个页面没有任何信息。
mongodb - MongoDB 对源和目标的空间查询
我有一个集合,名称为事件:
Events 集合中的每个文档都有 lat-long 的源和目标。
我想对事件集合进行查询,并仅获取与源有一定距离和与目的地有一定距离的那些事件。
我读到 MongoDB 不支持一个集合上的两个地理空间索引。
我对我的数据模型应该是什么样子以及如何进行查询以实现我的目的感到困惑?
谢谢
java - JSI RTree 实现“包含”给出错误结果的方法?
我正在尝试使用 JSI RTree 实现https://github.com/aled/jsi为我的应用程序索引地理位置。我用大约 7M 条目加载它,然后使用包含马萨诸塞州和康涅狄格州周围的边界框的 contains 方法对其进行查询。返回的结果实际上并不在那个边界框中。这是用户错误还是 RTree 实现中的错误?
这是我的边界框:
矩形 r = 新矩形(-73.630F,43.185F,-69.675F,40.946F);
返回的许多错误结果之一就是这个
“经度”:-74.24565887,“纬度”:40.66231918
......但其中许多离箱更远。
我检查过我没有不小心将索引中的 ID 错误地映射到错误的数据。
当我进行一些初始测试时,我在索引中添加了几十个点并使用边界框查询它,发现结果是准确的。所以我很难过。希望有人有一些建议。
mongodb - MongoDB $near 返回重复记录
文档示例:
我有 7 个与上述结构相同的文档。
当我进行查询时:
我得到 14 计数回来。理想情况下,我应该得到 7 条记录,但我得到了 14 条记录。我不确定我做错了什么。
我已经将字段“location.ll”索引为“2d”
请让我知道我做错了什么?
感谢您的帮助
java - 大对象的空间索引
我有一个中等大的区域(几十平方公里),可以包含数千个对象。大多数物体都很小,一平方米,所以它们几乎可以被认为是点。但是,有些物体非常大,高达与整个区域相同的数量级。
我想对这些对象执行一些简单的空间查询(例如“查找与此矩形重叠的所有对象”)。我一直在玩 R-trees,这似乎对小物体很有效。但是我不确定一旦包含较大的对象,R-tree 是否仍然是最佳选择。
所以问题是:什么样的空间索引在这里最合适?如果有一个具有快速添加/删除对象的 Java 实现,则可以加分。
sql - Sql Server 几何列导致查询需要很长时间才能运行
我编写了一个查询来从 Sql 数据库中获取多边形数据。
我有以下查询来获取结果。
在这张表上,我已经添加了一个空间索引,如下所示
但是获取 2483 条记录需要 38 秒。谁能帮我优化这个查询
mysql - 我可以将 WGS84 纬度/经度直接存储为 MySQL 中的空间数据吗?
我有一组WGS84 坐标。保守的方法是将它们存储为数字(在 SQL 数据库中存储纬度和经度数据时使用什么数据类型?)并在此处计算距离(纬度/经度找到最近的纬度/经度 - 复杂的 sql 或复杂的计算)。
更高级的方法是为“范围内”创建一个用户定义的函数(MySQL User Defined Function for Latitude Longitude Syntax)
MySQL 纬度和经度表设置使用空间索引。但是我不太明白是否可以直接存储WGS坐标,然后根据Point
数据类型查询距离?
示例:数据如下所示:"lat" 40.7142298
, "lng" -73.9614669
,这就是我要导入的内容。然后像“select all tupel in 10km of lat / lng”之类的查询。
postgresql - Postgis ST_Intersects 查询不使用现有空间索引
我有一张郊区表格,每个郊区都有一个 geom 值,在地图上代表它的多面体。还有另一个房屋表,其中每个房屋在地图上都有其点的几何值。
两个 geom 列都使用 gist 进行索引,并且郊区表也具有索引的 name 列。Suburbs 表有 8k+ 条记录,而 house 表有 300k+ 条记录。
现在我的任务是找到名为“FOO”的郊区内的所有房屋。
查询 #1:
查询计划结果:
运行查询耗时约 3.5 秒,返回 486 条记录。
QUERY #2:(在 ST_INTERSECTS 函数前面加上 _ 以明确要求它不要使用索引)
查询计划结果:(与查询 #1 完全相同)
运行查询耗时约 1.7 秒,返回 486 条记录。
QUERY #3:(使用 && 运算符在 ST_Intersects 函数之前添加边界框重叠检查)
查询计划结果:
运行查询耗时 0.15s,返回 486 条记录。
显然,只有查询 #3 从空间索引中受益,从而显着提高了性能。但是,语法很丑陋,并且在某种程度上重复了自己。我的问题是:
- 为什么 postgis 不够聪明,无法在查询 #1 中使用空间索引?
- 为什么查询 #2 与查询 #1 相比具有(很多)更好的性能,考虑到它们都没有使用索引?
- 有什么建议可以让查询#3 更漂亮吗?或者有没有更好的方法来构造一个查询来做同样的事情?
matlab - 存储道路网络数据的最佳数据结构是什么
我正在做一个地图匹配/轨迹匹配项目。在阅读了许多研究论文后,我不确定什么是存储道路网络(由加权有向图描述)以促进实时搜索(快速)的最有效的数据结构。我得到了像网格、MTrees、Quadtrees 这样的东西……我需要在后端有一个数据库来存储这些东西吗?我目前正在使用 MATLAB,但可以转换语言。实际卫星导航器中使用的编程语言是什么。
帮助将不胜感激
mysql - mysql MBRWithin() 多点
正如我之前问的那样,mysql中几何列的col in()子句
我的表中有很多点,我想通过一个查询从表中找到多个点,有人建议在 MySQL 中使用 MBRWithin()或MBRContains()地理空间函数,但我不知道如何使用这些函数像这样的Where
in()
查询有多个点:
SELECT id, asText(latlng) FROM points WHERE asText(latlng) in ('POINT(35.80684 51.427820000000004)','POINT(35.72343 51.303200000000004)')
可以帮我选择多点吗?
谢谢