.NET 中多边形上的点(经度/纬度)

发布于 2024-08-21 19:24:21 字数 304 浏览 11 评论 0原文

可能的重复:
多边形中的点又名命中测试

我需要一些帮助来解决我的问题;): 我有一个由 3 个或更多经度/纬度点定义的多边形。 现在我有了另一个经度/纬度点,我需要检查该点是否在多边形区域中。

我需要.NET 中的这个函数。有人可以帮助我吗?

非常感谢您的帮助。

Possible Duplicate:
Point in Polygon aka hit test

I need some help for my problem ;):
I've got a polygon definied with 3 or more longitude/latitude points.
Now I've got another longitude/latitude point and I need to check if this point is in the polygon area or not.

I need this function in .NET. Can anyone help me?

Thank you very much for your help.

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

混吃等死 2024-08-28 19:24:21

这是一个答案: http://alienryderflex.com/polygon/

您还可以使用 Microsoft 的 Geometry 类。创建两个几何图形(一个点,一个多边形),然后对它们进行交集。如果有交集

http://msdn .microsoft.com/en-us/library/system.windows.media.combinedgeometry.geometrycombinemode.aspx

如果这些方法花费的时间太长,您可以首先将多边形包裹在边界框中,然后测试该点是否在范围内框的最小/最大纬度/经度

注意:如果您的多边形跨越国际日期变更线,您可能需要在这些测试之前添加额外的代码(即,向多边形顶点的经度添加 360 度,并在经度为负数时进行指向)算法起作用)。

Here is one answer: http://alienryderflex.com/polygon/

You could also use Microsoft's Geometry classes. Create two geometries (one point, one polygon), then do an Intersection of them. If there is an intersection

http://msdn.microsoft.com/en-us/library/system.windows.media.combinedgeometry.geometrycombinemode.aspx

If these methods take too long, you could first wrap the polygon in a bounding box and test if the point is within the min/max lat/long of the box

Note: If your polygon crosses international dateline you may need to add additional code up front before these tests (i.e. add 360 degrees to longitude of polygon's vertices and to point if the longitude is negative so the algorithms work).

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文