如何在 SQL 服务器 2008 中验证地理多边形?

How to validated geography polygon in SQL server 2008?

在 SQL Server 2012 中有验证地理“.IsValidDetailed()' and to change orientation '.ReorientObject (geography)”的方法。

我正在使用 SQL server 2008 并面临多边形方向问题。

问题是 -

  1. 是否有验证地理多边形或将方向更改为有效地理的解决方案?
  2. 是否可以将 IsValidDetailed 方法从 sqlserver 2012 复制到 2008?
  3. 如果我必须手动执行,那么有效地理数据类型的多边形的正确方向是什么?
  4. 我们可以在 SQL 服务器 2008 中验证几何数据类型,是否可以将地理多边形转换为几何多边形并验证它?

请协助。提前致谢

我找到了解决方案,SQL Server Saptial Tools

http://sqlspatialtools.codeplex.com/

以下是解决我问题的方法。

IsValidGeographyFromText(字符串输入WKT, int srid)

检查输入的 WKT 是否可以表示有效的地理位置。这个功能需要 WTK 坐标值是 longitude/latitude 值,按此顺序并且有效 提供地理 SRID 值。这个函数即使在 边缘条件(即 longitude/latitude 坐标反转为 latitude/longitude)。

SqlGeography MakeValidGeographyFromText(字符串输入WKT,int srid)

将输入 WKT 转换为有效的地理实例。 该函数要求WKT坐标值为longitude/latitude值, 按此顺序并提供有效的地理 SRID 值。

我在 SQL Server 2008 上工作。将形状作为几何图形加载后,使用 MakeValid() 更正它,然后重新加载到地理中。

declare @gt nvarchar(max)
declare @gm geometry
declare @gmvalid geometry

set @gmvalid = @gm.MakeValid()

  set @gt = @gmvalid.STAsText()

  --select @gt
  if LEFT(@gt,7 ) = 'POLYGON'
  begin
  set @gg = geography::STPolyFromText(@gt, 4326)
  end
  else
  begin
  set @gg = geography::STMPolyFromText(@gt, 4326)
  end