如何解决在SQL Server中用多边形查找坐标
我在这里碰到了墙,这应该很简单,但是我似乎无法使其正常工作。我已经从shapefile(取自GIS)中将多个多边形加载到sql Server数据库中。我有另一个表,其中存储了以十进制存储的纬度和经度列表。我要做的就是返回每个坐标所在的多边形的ID(或者,如果坐标不完全位于每个坐标中,则返回最接近的那个),
我尝试了几件事,例如:
SELECT A.Id,B.Id
FROM dbo.TableA A
JOIN dbo.TableB B ON A.geometryColumn.STIntersects(B.geom27700) = 1;
和
SELECT A.Id,C.Id
FROM dbo.TableA A
CROSS APPLY (SELECT TOP 1 Id FROM dbo.TableB B
WHERE A.geometryColumn.Stdistance(B.geom27700) IS NOT NULL
ORDER BY A.geometryColumn.Stdistance(B.geom27700) ASC) C;
都不返回任何值。涉及的数据类型为:
geometryColumn AS geometry::STPointFromText('POINT ('+convert(varchar(20),LocationLong)+' '+convert(varchar(20),LocationLat)+')',0)
geom27700 geometry
谁能看到我要去的地方或我可以做些什么来解决?这是用于sql Server 2012
谢谢
亚历克斯
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。