问题描述
我在这里碰到了墙,这应该很简单,但是我似乎无法使其正常工作。我已经从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 (将#修改为@)