问题标签 [spatial]

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 投票
1 回答
418 浏览

spatial - 试图找到将矩形镶嵌到板上的公式,其中不能使用中间正方形

我正在研究空间堆叠问题......目前我正在尝试以 2D 解决,但最终将不得不在 3D 中完成这项工作。

我将空间划分为围绕中心块的 nxn 个正方形,因此 n 总是奇数......我试图找到任何尺寸小于 nxn 的矩形(例如 1x1、1x2、2x2 等)的位置数量放置在中间正方形不可用的地方。

到目前为止,我有这个..

..还有正方形的总数= (n (n+1) (2n+1)) / 6

但是,我一直在制定一个公式来找出其中有多少是不可能的,因为中间的广场会被占用。

例如:

[] [] []

[] [X] []

[] [] []

3 x 3 板...有 8 个可能的位置用于存储东西,因为中间正方形正在使用中。我可以使用 1x1 形状、1x2 形状、2x1、3x1 等...

公式给我的矩形数量为: (9+3)^2 / 4 = 144/4 = 36 个堆叠位置 但是由于中间的正方形是不可占用的,这些都不能实现。

手动我可以看到这些是不可能的选择:

1x1 形状 = 1 个不可能(中间正方形) 2x1 形状 = 4 个不可能(任何使用中间正方形的东西) 3x1 = 2 个不可能 2x2 = 4 个不可能等等 不可能的组合总数 = 16

因此,我所追求的解决方案是 3x3 板上 36-16 = 20 个可能的矩形堆叠位置。

我已经在 C# 中对此进行了编码,以通过反复试验来解决它,但我真的很喜欢一个公式,因为我想解决大量的 n 值,并最终制作这个 3D。

谁能指出这些空间/镶嵌问题的任何公式?也非常欢迎任何关于如何将整个矩形公式转换为 3D 的想法!

谢谢!

0 投票
1 回答
314 浏览

informix - IBM Informix 使用空间数据刀片

我需要在我的项目中使用 IBM Informix,我有点坐标,我需要找到查询矩形区域中存在哪些点。

Informix 具有带有 ST_POINT 和 ST_POLYGON 数据对象的空间数据刀片模块。我知道如何在具有此类对象的表上创建、插入和创建 r-tree 索引。

但问题是如何执行 SELECT 语句,该语句列出特定矩形区域中的所有点。

0 投票
3 回答
3752 浏览

sql-server - 如何在 SQL Server 2008 Spatial 中返回 LINESTRING 的子字符串?

假设我有一个 LINESTRING 定义为

我想从

如何在 SQL Server 2008 Spatial 中返回 LINESTRING 的子字符串?

0 投票
4 回答
1645 浏览

database - 我的数据库中是否需要空间索引?

我正在设计一个需要在数据库中保存几何形状的应用程序。我还没有选择数据库管理系统。

在我的应用程序中,所有数据库查询都将有一个边界框作为输入,作为输出,我想要该数据库中的所有形状。我知道具有空间索引的数据库用于此类应用程序。但在我的应用程序中,不会有任何类型的查询“给我 x/y 附近的对象”或其他在 GIS 应用程序中有用的更复杂的查询。

我计划拥有一个没有空间索引的数据库,并且查询看起来像:

并在x (double)y (double). 据我所知,我真的不需要具有空间索引的数据库,但是我的应用程序与那种应用程序很接近。

即使我想要附近的查询,我也可以在该点周围创建一个足够大的边界框。或者这会导致性能不佳?

我真的需要空间数据库吗?什么时候需要空间索引?

编辑: 搜索查询实际上比我上面写的要高级一点,因为我处理几何形状,我将输入一个边界框,它将返回多个形状(带边界框),这些形状在里面或干扰框在查询中。但是在阅读了所有好的答案之后,我仍然认为我可以在没有空间索引的情况下做到这一点。

0 投票
1 回答
16358 浏览

c# - 如何使用 C# 和 ADO.NET 查询具有 SDO_GEOMETRY 类型空间列的 Oracle 表?

我的开发机器运行的是 Windows 7 Enterprise,64 位版本。我正在使用 Visual Studio 2010 Release Candidate。我正在连接到 Oracle 11g Enterprise 服务器版本 11.1.0.7.0。我很难找到专为 64 位 Windows 系统制作的 Oracle 客户端软件,最终落到了这里下载我认为是正确的客户端连接软件。我添加了对版本 2.111.6.0(运行时版本为 v2.0.50727)的“Oracle.DataAccess”的引用。我的目标是 .NET CLR 4.0 版,因为我的 VS 解决方案的所有属性都是默认值,这是 2010 RC。然后,我能够在 C# 中编写一个控制台应用程序,该应用程序建立连接、执行 SELECT 语句,并在相关表不包含空间列时正确返回数据。我的问题是,当我查询的表中有一个 SDO_GEOMETRY 类型的列时,这不再有效。

下面是我尝试运行的简单控制台应用程序,它重现了该问题。当代码到达带有“ExecuteReader”命令的行时,会引发异常并且消息是“不支持的列数据类型”。

当用于不包含 SDO_GEOMETRY 类型的空间列的表时,此代码有效,这让我觉得我的 Windows 7 机器配置正确,所以当表包含不同类型的列时,我很惊讶我得到了这个异常。不知道是不是我的机器或者Oracle机器上有些配置需要做,或者我安装的Oracle客户端软件有问题,或者老旧需要更新。

这是我用来创建表的 SQL,用一些包含空间列中的点的行来填充它,等等,如果你想尝试准确地重现它。

SQL 创建命令:

任何建议或见解将不胜感激。谢谢你。

0 投票
1 回答
437 浏览

compression - Oracle 输出:游标、文件还是很长的字符串?

首先,设置:我在 Oracle10g 数据库中有一个带有空间列的表。我需要能够传入空间参考,以便可以将几何图形重新投影到任意坐标系中。最终,我需要将此投影的结果压缩为一个 zip 文件,并通过 Silverlight 项目使其可供下载。

我真的很感激关于实现这一目标的最佳方法的想法。在下面的示例中,SRID 是用于将几何点转换为新坐标系的空间参考 ID 整数。

特别是,我可以看到几种可能性。还有更多,但这是我的想法:

a) 将 SRID 传递给动态视图 --> 执行投影,输出光标 --> 将光标发送到 UTL_COMPRESS --> 将输出写入文件(以某种方式) --> 将 URL 发送到 Silverlight 应用程序

b) 使用 SRID 从 Silverlight 应用程序调用 Oracle 函数 --> 执行投影,输出字符串 --> 将字符串构建到文件中 --> 使用 .NET 中的 SharpZipLib 库压缩文件 --> 将字节流发送回 Silverlight 应用程序

我已经做了b)的前两步,100分的转换耗时7秒左右,慢得让人无法接受。我希望完全在 Oracle 中进行处理会更快。

如果有人可以看到任何一种方式的潜在问题,或者可以提出更好的方法,那将非常有帮助。

谢谢!

ETA:我打算在发布之前给它一个更好的标题。对不起。

0 投票
1 回答
669 浏览

oracle - 在 Oracle 中查询最短路径

我开始研究 Oracle 11g 空间数据库,我想知道是否有查询返回两点之间或点和线串之间的最短路径(或路径)。

我有一张带有一些线串(远足小径)和多边形(地理事故)的地图,我想在避免事故的同时找到我现在所在的位置和最近的小径之间的最短路线。我已经有一个查询返回最近的路径,但没有勾勒出事故的轮廓。

非常感谢你。

0 投票
2 回答
295 浏览

sql-server - SQL SERVER 空间数据

我正在努力寻找一种有效的方法来找到与多边形相交的点与该多边形的边界之间的距离。我能够使用 STDistance 将该点与构成多边形的每个点进行比较,但这需要很多时间。使用空间索引并没有太大帮助,因为 STDistance 不是任何约束的一部分,即使我确实放置了约束,索引也没有太大帮助。

我很感激任何反馈。

谢谢。

0 投票
2 回答
316 浏览

gis - 如何非常有效地将纬度/经度分配给形状描述的城市边界?

我有一个包含 36.000 个非重叠多边形(城市边界)的巨大 shapefile。我想轻松确定给定纬度/经度落入的多边形。鉴于它必须具有极高的计算效率,最好的方法是什么?

我正在考虑创建一个查找表(tilex、tiley、polygone_id),其中 tilex 和 tiley 是缩放级别 21 或 22 的图块标识符。是的,在我的应用程序中使用图块编号和平面投影的精度不足是可以接受的。

我宁愿不使用 postgres 的 GIS 扩展,并且可以使用将运行 2 天以生成所有 INSERT 语句的程序。

0 投票
1 回答
2557 浏览

php - Solr 与 Sphinx 的空间搜索

我的任务是选择我们将在即将进行的项目中使用的全文搜索引擎。根据我所读到的,我倾向于 Solr,但我有点担心空间搜索。除了一些其他参数(关键字、类别等)之外,我们还希望能够指定位置和最大距离(例如,亚利桑那州坦佩市 25 英里内)。我们希望能够按距离对结果进行排序。

Spatial SOLR 显然是相当新的,它的成熟度尚不完全清楚。还有一些其他选项(手动计算然后反转距离,或solr-spatial-light

我的问题基本上是:Spatial Solr(或 solr-spatial-light)是否已准备好在黄金时段处理我上面描述的情况,还是我们最好选择 Sphinx?

我也有兴趣听听实现其中任何一个的一般经验,特别是使用 php。