问题标签 [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.

0 投票
2 回答
284 浏览

postgresql - 在 Postgis 中上传大量空间数据的好方法是什么?

我有大量空间数据需要分析并在应用程序中使用。原始数据以 WKT 格式表示,我将其包装到 INSERT SQL 语句中以上传数据。

然而,这种方法花费了太多时间并且数据很大(1000 万行)。那么,还有其他方法可以上传大量空间数据吗?

欢迎任何加速黑客和技巧。

0 投票
1 回答
1640 浏览

tsql - 尝试查找地理编码范围内的所有点时,空间索引很慢。我怎样才能让它更快?

我在一个表上设置了一个空间索引,其中包含 130 万条记录,这些记录都是经过地理编码的。这些值存储在地理数据类型列中。我遇到的问题是,当我查询这个具有空间索引的列时,速度仍然很慢。例如,查找一英里内的所有帐户大约需要 20 秒。

下面是一个运行缓慢的查询示例:

这是我的创建索引语句:

数据是单个州一部分的每个房屋。因此,在一英里半径内,我预计会有 1000 点或更多。我是否正确索引了这个?任何帮助都会很棒。

另一个慢查询示例:

0 投票
7 回答
1762 浏览

algorithm - 运动物体的近似增量最近邻算法

赏金

这个问题提出了几个问题。赏金将用于从整体上解决它们的答案。


这是我一直在玩的一个问题。

注意我对不基于欧几里得空间的解决方案特别感兴趣。

有一组 Actor 形成了一个大小为 K 的人群。d(ActorA,ActorB)对于任何两个 Actor 来说,距离很容易计算(解决方案应该适用于“距离”的各种定义),我们可以使用任何给定 Actor 找到 N 个最近邻居的集合许多已建立的算法中的任何一种。

这个邻居集在第一时刻是正确的,但是Actor 总是在移动,我想为每个 Actor 维护 N 个最近邻居的进化列表。我感兴趣的是比完美解决方案更有效的近似解决方案。

  1. 引入错误后,解决方案应该收敛到正确性。
  2. 如果错误变得太大,有时执行完全重新计算是可以接受的,但检测这些错误应该很便宜

到目前为止,我一直在使用朋友的朋友算法:

当人群移动缓慢且 N 适当大时,这表现得相当好。它在小错误后收敛,满足第一个标准,但

  • 我没有检测大错误的好方法,
  • 我没有对错误的大小和频率进行定量描述,
  • 它在实践中收敛,但我不能证明它总是会的。

你能帮助解决这些问题吗?

另外,您是否知道任何表现良好的替代方法

  • 当人群快速移动时,
  • 一些演员快速移动时,
  • 当 N 很小时,
  • 当人群在某些地方稀疏而在其他地方密集时,
  • 还是使用特定的空间索引算法?

我目前正在做的扩展是在邻居快速移动的情况下将朋友的朋友推广到朋友的朋友的朋友。我怀疑这不能很好地扩展,并且如果不对误差进行量化,就很难得出正确的参数。

我欢迎所有建议!这是一个有趣的小问题:-)


迄今为止值得注意的建议

Fexvez:随机采样额外邻居,采样大小取决于 Agent 的速度。从它即将进入的区域取样可能也会有所帮助。

当代理speed*delta_time超过与最远已知邻居的距离时,对邻居重新采样。

维护Delaunay 三角剖分,它是最近邻图的超集。只考虑一个最近的邻居。

David Mount 的ANN 库 似乎无法处理移动物体。

0 投票
2 回答
784 浏览

sql-server - 即使在非常简单的查询中,我在 SQL Server 中的空间索引仍然需要大量读取。为什么?

根据 SQL Profiler,我的繁琐查询需要 3 秒才能返回,并且需要大量读取。为什么?

我有一张表,里面有 5,000,000 个账户,这些账户都是地理编码的点。所有帐户都聚集在城市 20 英里半径范围内。我的索引看起来像这样。

当我运行如下简单的查询时:

返回需要 3 秒,根据 SQL Server Profiler,它需要 12,203 的 CPU 和 1,218,873 的读取。这些似乎是使用索引的巨大数字。

为什么这么慢?为什么这需要从硬盘驱动器读取这么多?我能做些什么来提高这个性能?

查看查询计划,下面屏幕截图中的过滤器运算符是查询成本的 34%。

在此处输入图像描述

“Clustered Index Seek”运算符占查询的 63%。

在此处输入图像描述

0 投票
0 回答
949 浏览

python - 循环浏览创建空间索引的文件夹

我创建了一个脚本来创建所有栅格的空间索引,它在单个目录中运行时运行良好,但是当我尝试修改它以作为 os.walk 的一部分在子目录上运行时,它开始出现许多错误。你们能帮忙解决我无法修复的当前问题吗?

谢谢,

Python 2.6.5 (r265:79096, Mar 19 2010, 21:48:26) [MSC v.1500 32 bit (Intel)] 输入“help”、“copyright”、“credits”或“license”以获取更多信息。

[评估 RasterExtent_toSHP_Ver2.py] 从 P:\2011\Job_154_PythonScript_for_AOI\Working\Orthophotomosaic 读取文件 将目录更改为:P:\2011\Job_154_PythonScript_for_AOI\Working\Orthophotomosaic\1 处理目录中的 2 个 .tif 文件。['308000_8105000.tif', '309000_8105000.tif'] 308000_8105000.tif Created: P:\2011\Job_154_PythonScript_for_AOI\Working\Orthophotomosaic\1\Temp_Polygon_Extent_1.shp Filling in: 308000_8105000 TIFF P:\2011\Job_154_PythonScript_for_AOI\Working\Orthophotomosaic\ 1 64000000 309000_8105000.tif 创建:P:\2011\Job_154_PythonScript_for_AOI\Working\Orthophotomosaic\1\Temp_Polygon_Extent_2.shp 填写:309000_8105000 TIFF P: \2011\Job_154_PythonScript_for_AOI\Working\Orthophotomosaic\1 64000000 [] 合并:[] 到:Spatial_Extent.shp arcgisscripting.ExecuteError:执行失败。参数无效。错误 000735:输入数据集:需要值 警告 000725:输出数据集:数据集 P:\2011\Job_154_PythonScript_for_AOI\Working\Orthophotomosaic\1\Spatial_Extent.shp 已存在。未能执行(合并)。

0 投票
1 回答
189 浏览

sql-server - 如何使我的空间索引使用大于 HIGH 的级别?

我在 SQL Server 中的空间地理索引具有以下级别定义。

高 低 低 低

问题是我的所有点都在一个城市中,因此我的所有点都在第 1 层的单个单元格中。因此,主过滤器正在查看所有点,这意味着我的索引效率为 0%。我意识到 HIGH 网格意味着有 256 个单元格。如何改为使用 512 单元或 1024 单元?256对我来说还不够。

看看这个页面的不同级别。

有谁知道如何获得比 HIGH 更高的价值?

0 投票
3 回答
837 浏览

haskell - Haskell中空间索引的实现?

Haskell中是否有空间索引的良好实现,例如R-tree,kd-tree等...

0 投票
3 回答
991 浏览

c# - 存在哪些开源空间索引库?

我正在寻找 C# 中的空间索引库,它必须能够索引几何(圆、多边形、折线)以及回答交叉问题。我找到了 NetTopologySuite (NTS) 和其他一些单文件解决方案项目,但我想知道我是否遗漏了什么重要的东西?

NTS 很不错,但有点重。第二个是一个人的艺术,显然我必须把它捡起来并维护自己。我想知道是否可以找到受支持和测试的东西。

我正在寻找 C# 之一,但如果我能掌握 Java 之一,我可以适应它。

0 投票
1 回答
1294 浏览

sql-server - 在 SQL Server 中使用空间索引得到“无法打开格式错误的程序集 'mscorlib'”

我在 MSSQL 中设置数据库时遇到了一些问题,当我尝试在地理数据类型列上设置索引时,它不断吐出错误

消息 6507,级别 16,状态 2,第 1 行无法打开格式错误的程序集“mscorlib”,HRESULT 为 0x80070008。

这是代码

0 投票
1 回答
1268 浏览

postgresql - 哪个邻近函数提供最快并利用 postGIS 中的空间索引?

我是 PostgreSQL / PostGIS 的新手。我正在评估它以解决一个简单的算法:尝试找到半径(米)内的所有点。这是我的桌子:

我在列中添加了一个要点索引point,我不知道它是否是正确的设计。插入的所有“点”都带有SRID=4326.

似乎有两种方法可以获得附近的点:

ST_DistanceST_Distance_Sphere。以2为例:

我想知道哪个算法使用了“ point_index”?如果有几百万个点,两者都执行得很快吗?

另一个问题,我如何查询一个单元格的 SRID(我搜索了没有找到答案)?我所能做的就是通过 hibernate-spatial-postgis ,获取 " com.vividsolutions.jts.geom.Point" ,然后从返回的点获取 SRID。如何在 SQL 中查询它?谢谢。

环境 :

- - 更新 - -

谢谢@filiprem,我试过这个:

我怎么知道它是否使用了"point_index" gist (point)? 它在高数据量搜索下还能生存吗?