问题标签 [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.
mongodb - MongoDB 如何处理范围和最近邻查询?
MongoDB 如何处理范围和最近邻查询?使用了什么算法?
我知道 MongoDB 使用 GeoHash 和 B-Tree 来索引空间数据,但它如何处理范围和最近邻查询从未在任何文档中提及。
此外,MongoDB 使用 $near 只能处理 100 个 NN。这可能意味着NN算法效率不高?
r - 大数据集的空间匹配
我有一个包含大约 100000 个点的数据集和另一个包含大约 3000 个多边形的数据集。对于每个点,我需要找到最近的多边形(空间匹配)。多边形内的点应与该多边形匹配。
计算所有对的距离是可行的,但需要的时间比必要的要长一些。是否有一个 R 包可以利用空间索引来解决这种匹配问题?
我知道sp
包和over
功能,但文档没有说明任何关于索引的信息。
java - Java 向/从文件写入/读取不可序列化的对象
我正在使用JSI (Java Spatial Index, RTree) 来实现 2D 空间搜索。我想将树保存到文件中,该文件java.io.NotSerializableException
使用下面的代码触发。
如何序列化这个 3rd 方类以便我可以读/写它?谢谢。
solr - SOLR 4.2 - solr.LatLonType 类型与 solr.SpatialRecursivePrefixTreeFieldType
我目前正在使用 SOLR 4.2 来索引地理空间数据(纬度和经度数据)。我已将我的地理空间字段配置如下。
我只是想确保我使用正确的 SOLR 类来执行地理空间搜索,因为我不确定未来版本的 SOLR 将支持 2 个类(LatLonType 与 SpatialRecursivePrefixTreeFieldType)中的哪一个。
我假设 SpatialRecursivePrefixTreeFieldType 是 latlong 的升级版本,有人可以确认我是否正确吗?
database - 支持三维空间索引的数据库
我有一组大约 1000 万个带有地理位置和时间标记的文档,并且以每天大约 100,000 个的速度增长。我们需要一种很好的方法来查询给定纬度/经度附近的文档,但我们也需要考虑时间(最近的文档应该具有更高的权重)。
我当前的解决方案需要大约 300 毫秒来运行查询,并且在负载增加的情况下苦苦挣扎,所以我试图找出一种更好的方法来做到这一点。我使用 3 维 kd-tree(纬度、经度和时间)制作了一个原型,它的速度非常快(<1 ms)。然而,它根本不适合生产——它需要将整个东西加载到内存中,更重要的是,似乎没有一个好的方法来写入/删除 kd-tree。我正在寻找一个生产就绪的数据库,它提供接近这种速度的东西,但也支持正常的 INSERT 和 UPDATE 操作。
我查看了 PostGIS,它说它支持 2-4 维空间字段。但是,我找不到任何关于它是否支持 >2 dimensional spatial indices的结论性信息。有谁知道它是否会支持 3D 索引,如果支持,它看起来是否相对高效?如果没有,还有其他选择吗?
提前致谢。
algorithm - 有效地搜索所有元素大于给定元组的元组
考虑以下元组列表:[(5,4,5), (6,9,6), (3,8,3), (7,9,8)]
我正在尝试设计一种算法来检查列表中是否至少存在一个元组,其中该元组的所有元素都大于或等于给定元组(针)。
例如,对于给定的元组 (6,5,7),算法应该返回 True,因为给定元组中的每个元素都小于列表中的最后一个元组,即 (7,9,8)。但是,对于给定的元组 (9,1,9),算法应该返回 False,因为列表中没有每个元素都大于给定元组的元组。特别是,这是由于给定元组的第二个元素 1 小于列表中所有元组的第二个元素。
一个简单的算法会一个接一个地遍历列表中的元组,并在内部循环中遍历元组的元素。假设有 n 个元组,每个元组有 m 个元素,这将给出 O(nm) 的复杂度。
我正在考虑是否有可能有一种算法来产生具有较低复杂性的任务。允许进行预处理或任何花哨的数据结构来存储数据!
我最初的想法是利用二进制搜索的一些变体,但我似乎找不到一种数据结构,一旦我们根据第一个元素消除了一些元组,我就不会回到天真的解决方案,这意味着这个算法最后也可能是 O(nm)。
谢谢!
hadoop - 蜂巢上的空间索引
我在 hive 中为空间数据库创建表,我知道空间数据有特殊的索引,它们是 R-tree。在蜂巢中创建空间索引是不可能的(我认为)。我正在考虑尝试为 x、y(long、lat)、带小数的连续变量创建索引。我认为这不是最有效的。
我们将 esri 库用于空间代数,但在某些情况下查询性能很差。
我刚在想 ....
是为这两个变量创建索引,还是通过 xi = int(x/0.2) * 0.2, yi = int(y/0.2) * 0.2 类型的变量对表进行分区更好?
我认为表分区更高效,但设计更复杂的查询,我也认为分区不支持带小数的数值变量
最典型的带有边界框的查询将是一系列空间数据。任何人都知道一种有效的方法来构造这种查询的配置单元数据?
有没有一种方法可以在 hive 中创建和实现 R-tree?可以用小数对连续值的表进行分区吗(我看过很多例子,好像没有)?
azure - Azure 移动服务和 Xamarin Azure 组件中的空间索引
是否可以向 Windows Azure 移动服务添加空间索引?
我添加了一个免费的移动服务免费 20mb 数据库,然后是一个表格,然后是一个地理类型列。
我无法使用“管理门户”向地理列添加索引。但是我使用 sql server management studio express 进行远程连接,我设法编写了一个 TSQL 来应用空间索引。它说它成功了,但我无法确认它,因为门户网站没有反映它。
我现在在想
1) 是否可以将空间索引添加到 azure sql 数据库?2) 如何将地理类型添加到我的 Xamarin 项目中,以便使用 azure 组件轻松读/写?
// 更新
查看表格列时,我在 azure 仪表板上发现了一个“设置索引”按钮,但它引发了错误:
这是否意味着 Azure 数据库不支持空间索引?
mysql - MYSQL Spatial 中使用的指标是什么?
我正在尝试确定MySQL Spatial 5.6.12的公制系统。
例如,我创建了下表以存储多条记录的点几何。
创建表后,我成功地向表中插入了一些记录。
现在,我构建了以下查询来获取距离指定 LAT/LONG 一英里内的所有记录。这是我为此运行的查询:
运行此查询后,我确实得到了一些记录,但距离似乎不是以英里或米为单位。它是一些小数值,例如 0.0123、0.0145 等……</p>
我在 MySQL 的任何地方都找不到关于此的任何文档?有谁知道 MySQL 中使用的是什么公制系统?如果有,我如何将其转换为里程?
这意味着,如果我需要运行上面的查询来获取一英里内的所有记录,我该如何重建它?