TSQL - 地理:哪个多边形?
TSQL - Geography: Which polygon?
使用 SQL 服务器,当我得到表达式 @multipolygon.STIntersects(@points)
的结果 1 时,表示该点位于包含多多边形的多边形之一内
有没有办法找出多多边形中的哪个多边形实际上包含该点?
尝试在查询中将单个多边形行拆分为多个单多边形行,然后进行相交,这将return 仅匹配行。
我自己没有做过类似的事情,但是这个 link 可能会有所帮助 https://social.msdn.microsoft.com/Forums/sqlserver/en-US/d99cef8e-d345-44ee-87e1-f9d4df851c35/multipolygon-results-split-into-polygons?forum=sqlspatial
我以前用过类似的东西:
select *
from dbo.Numbers as n
where @point.STIntersects(@multipolygon.STGeometryN(n.Number)) = 1
and n.Number <= @multipolygon.STNumGeometries();
其中 dbo.Numbers
是计数 table。此查询将 return 一个基于 1 的多边形匹配索引。如果您也想要多边形本身,请将 STGeometry(n.Number)
添加到 select 列表。
使用 SQL 服务器,当我得到表达式 @multipolygon.STIntersects(@points)
的结果 1 时,表示该点位于包含多多边形的多边形之一内
有没有办法找出多多边形中的哪个多边形实际上包含该点?
尝试在查询中将单个多边形行拆分为多个单多边形行,然后进行相交,这将return 仅匹配行。
我自己没有做过类似的事情,但是这个 link 可能会有所帮助 https://social.msdn.microsoft.com/Forums/sqlserver/en-US/d99cef8e-d345-44ee-87e1-f9d4df851c35/multipolygon-results-split-into-polygons?forum=sqlspatial
我以前用过类似的东西:
select *
from dbo.Numbers as n
where @point.STIntersects(@multipolygon.STGeometryN(n.Number)) = 1
and n.Number <= @multipolygon.STNumGeometries();
其中 dbo.Numbers
是计数 table。此查询将 return 一个基于 1 的多边形匹配索引。如果您也想要多边形本身,请将 STGeometry(n.Number)
添加到 select 列表。