T-SQL Spatial STGeomFromText错误输出,错误6522、24200无效的地理位置

时间:2019-05-30 18:35:21

标签: sql-server tsql sql-server-2008 spatial

我正在使用以下代码将一系列点(从ESRI地理服务接收)转换为Geography。它可以在99%的情况下工作,但有时会失败。我不确定我可以在此处附加带有字符串的文件(〜300kb文本),因为它很大,可以作为文本发布。

DECLARE @Route Geography

BEGIN TRY
        SELECT @Route = geography::STGeomFromText('LINESTRING(' + @i_Route + ')', 4269);
END TRY
BEGIN CATCH
            DECLARE @error Int, @message NVarChar(4000), @xstate Int;
            SELECT @error = ERROR_NUMBER(), @message = ERROR_MESSAGE(), @xstate = XACT_STATE();

            PRINT CAST(@error AS NVarChar(10)) + ' - ' + @message
END CATCH

偶尔会出现以下错误:

  

6522-执行用户定义的例程期间发生.NET Framework错误   或汇总“地理位置”:System.ArgumentException:24200:   指定的输入不代表有效的地理实例。采用   MakeValid将实例转换为有效实例。注意   MakeValid可能导致空间实例的点移动   略。 System.ArgumentException:在   Microsoft.SqlServer.Types.SqlGeography..ctor(GeoData g,Int32 srid)
  在   Microsoft.SqlServer.Types.SqlGeography.GeographyFromText(OpenGisType   类型,SqlChars标记的文本,Int32 srid)

不确定在哪里必须使用MakeValid()。我尝试将其添加到行尾,但结果没有差异,相同的错误。

0 个答案:

没有答案