我们正在研究一种 map 解决方案。 在这里,用户在 map 上绘制了一个多边形,对于给定的点,我们需要确定该点是在多边形内还是在多边形外。
我们根据 http://www.sql-statements.com/point-in-polygon.html 使用一种 SQL 技术直到现在才完成这项任务,但在这段时间里我们发现它在某些领域不起作用。
有人对此有正确的解决方案吗?如果它工作正常,我们也可以在 C# 中尝试解决方案
谢谢。
最佳答案
如果您使用的是 SQL Server 2008,那么您可以使用 STIntersection (geography Data Type) - SQL Server 将为您完成一切。
在这种情况下,我建议使用 SQL Server 2008,因为它提供了对地理数据的 native 支持。在你使用它之前,“STIntersect giving incorrect result for geography Datatype”可能值得一读。该站点的示例:
declare @point geometry
declare @polygon geometry
set @point = geometry::STGeomFromText('POINT (-88.22 41.50000001)', 4326)
set @polygon = geometry::STGeomFromText('POLYGON ((-88.2 41.5, -88.2 41.6, -88.3 41.6, -88.3 41.5, -88.2 41.5))', 4326)--124
Select @point.STIntersection(@polygon).ToString()
关于c# - 经度 - 纬度方面的多边形点,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8500668/