我刚刚将人口普查块形状文件导入Microsoft SQL Server2012,现在尝试对我引入的数据使用一些地理特征(STContains、STWithin、UnionAggregate等)时遇到了问题。在导入我的.shp文件之前,我检查了.prj文件,我确定它是地理类型而不是几何类型。
这是我一直在尝试的例子,只是为了测试它(直接来自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 Server2012功能包(http://www.microsoft.com/en-us/download/details.aspx?id=29065)的建议,但我不确定我到底需要什么,如果那是合适的地方。
如果您能提供任何帮助,我们将不胜感激。提前谢谢。
发布于 2013-12-10 01:08:58
对于我的许多项目,我在项目级别(Visual Studio)创建了一个名为"libraries“的文件夹,我将这种性质的DLL和其他第三方内容放在其中。我不知道这是否是标准做法,但和我一起工作的每个人都这样做了一段时间,在此之前,它在TFS和Subversion中工作得很好。
无论如何,我的位于这个目录(SQL 2012 / Win 7/ 64位操作系统):
Microsoft
C:\Program Files (x86)\Microsoft SQL Server\110\Shared
我将其从该目录复制到项目中的库文件夹中。
发布于 2018-01-21 04:30:16
我在使用SQL Server2016 LocalDB时遇到了同样的问题:
在程序集“”Microsoft.SqlServer.Types“”中找不到类型“”Microsoft.SqlServer.Types.SqlGeography“”的方法“”Microsoft.SqlServer.Types“”
我花了一段时间才明白STCrosses是用于几何数据类型的,而对于地理我应该使用 。
发布于 2021-04-01 22:56:08
该方法名称区分大小写,应为STContains而不是stcontains
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)https://stackoverflow.com/questions/20476252
复制相似问题