问题标签 [point-in-polygon]

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 投票
38 回答
356098 浏览

performance - 如何确定二维点是否在多边形内?

我正在尝试在多边形算法中创建一个快速的2D 点,用于命中测试(例如Polygon.contains(p:Point))。对有效技术的建议将不胜感激。

0 投票
1 回答
603 浏览

mysql - MySql地理空间错误..?

这个问题是针对 Mysql 地理空间扩展专家的。

以下查询不是我期望的结果:

基本上我们正在创建 2 个多边形,并且我们正在尝试使用 MBRContains 来确定一个点是否在两个多边形中的任何一个内。

令人惊讶的是,它返回了两个多边形!点 3,6 应该只存在于第一个插入的多边形中。

请注意,两个多边形都是倾斜的(一旦您在一张纸上绘制多边形,您就会看到)

MySql 怎么会返回两个多边形?我正在使用 MySql 社区版 5.1。

0 投票
1 回答
4521 浏览

postgis - 直接在 Geodjango/PostGIS 中添加多边形

我在搞乱 Geodjango,我只想向数据库添加一个简单的多边形字段,然后在其上运行一个多边形点以确保一切正常。

这是我在views.py中的代码:

这就是我在models.py中的内容:

但是,当我尝试添加多边形 (PolygonExample.objects.create) 时,出现错误:“检查从 GEOS C 函数“GEOSWKTReader_read”返回的几何时出错。

我添加多边形的代码错了吗?我不确定我是否了解如何直接插入纬度/经度坐标。

或者这是 GEOS 安装错误?

谢谢。

0 投票
2 回答
2310 浏览

geometry - 删除多边形中的孔

我有一个由点数组确定的多边形。

这个多边形正在交叉自己,在多边形本身上形成一些洞。

我的问题是:我怎样才能省略这个洞而只得到多边形的外点?

或者什么是相同的并且可能更容易:我应该使用哪种算法来检查一个点是否在多边形内,以将多边形孔中的点检测为内点?

提前致谢,

/罗杰

0 投票
2 回答
5376 浏览

c# - 计算多边形内的像素

在学校的作业中,我们是否需要做一些图像识别,我们必须为机器人找到一条路径。

到目前为止,我们已经能够找到图像中的所有多边形,但是现在我们需要生成一个像素图,以便稍后用于 astar 算法。我们找到了一种方法,如下所示,但问题是它非常慢,因为我们遍历每个像素并测试它是否在多边形内。所以我的问题是,有没有一种方法可以更快地生成这个像素图?

我们有一个多边形坐标列表

调用函数“getMap”来获取像素图

Get Rectangle 用于限制搜索,因此我们不必遍历整个图像

最后这就是我们检查像素是否在多边形内的方法

0 投票
2 回答
275 浏览

php - 这个 mySQL 存储过程有效吗?

我从http://dev.mysql.com/doc/refman/5.1/en/functions-that-test-spatial-relationships-between-geometries.html获得了以下存储过程

这行得通吗?

用法:

我正在使用 phpMyAdmin 并且在使用存储过程时它会爆炸。如果这个有效,那么我将尝试找出如何在 php 中调用它。

谢谢,

拉克西米迪

0 投票
1 回答
305 浏览

mysql - 边界线案例:当点在边界上时,MySQL Point-in_Polygon 函数导致重复

我正在使用 MySQL 从数据库中提取经纬度,并检查它们是否在特定的附近。

一切都很好,除非该点位于两个社区之间的边界上。然后,该点包含在两个邻域中。它被重复了。处理边界上的点的最佳方法是什么?

每个点都应该只计算在一个邻域中——而不是两个。另外,例如,我不希望邻域 A 获得所有边界案例,但邻域邻域 B 获得零案例。

假设点 30.3030, -70.7070 位于 Newport 和 Oldport 的边界上。不幸的是,该点被计算了两次。它被记录为在 Oldport 和 Newport 中。

类型 | 纬度 | 经度 | 邻里

我使用下面的选择语句:

my_type_table 有列:

  • 类型(VARCHAR)
  • 纬度(十进制)
  • 经度(十进制)

...和neighbour_shapes 有列:

  • 社区 (VARCHAR)
  • 邻域多边形(几何)

我使用 myWithin 函数来测试该点是在一个邻域内还是另一个邻域内。这是它的链接:mySQL 论坛上的 myWithin 函数。该函数在点位于多边形中时返回 1,当点不在多边形中时返回 0。

你将如何解决这个问题?有什么建议吗?

0 投票
1 回答
585 浏览

polygon - 从对象文件格式 (.off) 文件中读取多边形

我需要从对象文件格式(.off)文件(在 c++ 中)中读取多边形列表。.off 文件的格式基本上是这样的:

.off 文件允许每个多边形有任意数量的顶点,这让我想到了我的问题。你怎么知道哪些顶点连接到哪些?例如,如果 .off 文件读取:

多边形是四边形,但并非所有顶点都相连。如果您只是简单地将每个顶点连接到其他顶点,您最终会得到四个三边多边形,而不是一个四边多边形。我希望以类似于循环符号的方式列出顶点,但我似乎找不到任何关于此的信息,所以我猜不是。

所以我的问题是:
.off 文件是否使用任何格式来显示这种连接?如果没有,有没有其他方法可以确定 .off 文件中连接了哪些顶点?

0 投票
6 回答
50997 浏览

python - SciPy 创建 2D 多边形蒙版

我需要使用标准 Python 包创建一个代表多边形的二进制掩码的 numpy 2D 数组。

  • 输入:多边形顶点,图像尺寸
  • 输出:多边形的二进制掩码(numpy 2D 数组)

(更大的上下文:我想使用 scipy.ndimage.morphology.distance_transform_edt 获得这个多边形的距离变换。)

谁能告诉我如何做到这一点?

0 投票
1 回答
497 浏览

algorithm - 快速点查找和视线遍历算法

我正在整理一个小型库,该库使用地理信息系统 (GIS) 数据并允许快速点入要素、点附近要素和视线查询。这些数据中的大部分将由具有大量顶点的大面积特征组成。

R Tree 变体可能会起作用,但我想知道它们在区域查询中的表现如何。我还怀疑视线查询会破坏大部分性能提升。

接下来会浮现在脑海中的是具有可变大小子级的四叉树。这可能允许在各个子级别之间进行链接,并加快站点查询的速度。

Kd 树也浮现在脑海中,但同样,站点查询行可能会被证明是有问题的。

所以问题是,你会推荐什么算法?