我刚刚将人口普查块形状文件导入 Microsoft SQL Server 2012,现在在尝试对我引入的数据使用某些地理特征(STContains、STWithin、UnionAggregate 等)时遇到问题。我检查了 .prj导入我的 .shp 文件之前的文件,我确定它是 geogrpahy 而不是几何类型。
这是我一直在尝试的示例,只是为了测试它(直接来自 MSDN 网站):
DECLARE @g geography;
DECLARE @h geography;
SET @g = geography::Parse('CURVEPOLYGON (COMPOUNDCURVE (CIRCULARSTRING (-122.200928 47.454094, -122.810669 47.00648, -122.942505 46.687131, -121.14624 45.786679, -119.119263 46.183634), (-119.119263 46.183634, -119.273071 47.107523, -120.640869 47.569114, -122.200928 47.454094)))');
SET @h = geography::Parse('POINT(-121.703796 46.893985)');
select @g.stcontains(@h)
这是我收到的错误:
Msg 6506, Level 16, State 10, Line 6
Could not find method 'stcontains' for type 'Microsoft.SqlServer.Types.SqlGeography' in assembly 'Microsoft.SqlServer.Types'
我已经对该主题进行了一些研究,似乎我需要安装某种附加功能。我检查了我的 C: 文件夹,因为我看到了通过 Program Files/Microsoft SQL Server/100/SDK/Assemblies/Microsoft.SqlServer.Types.dll 安装它的建议,但因为找不到“Assemblies”文件夹而被难住了。我还看到了下载 Microsoft SQL Server 2012 功能包 ( http://www.microsoft.com/en-us/download/details.aspx?id=29065 ) 的建议,但我不确定我到底需要什么,如果那是正确的看点。
您可能提供的任何帮助将不胜感激。提前致谢。