与POLYGON 180-90相比,具有对映点的边缘例外

时间:2014-09-09 23:38:06

标签: c# sql geospatial

使用DbGeography.FromText(polygonAsText, 4326);从文本创建DbGeography会生成引用的异常。邮箱尺寸由Google地理编码结果提供,作为建议的视口尺寸。坐标是否相等?构造多边形时使用的顺序是错误的吗?

纬度/经度排序提供了与其他坐标一致的精确结果。

东北经度:180.0 东北纬度:90.0

西南经度:-180.0 西南纬度:-90.0

POLYGON((180 90, -180 90, -180 -90, 180 -90, 180 90))

例外:

  

24206:无法接受指定的输入,因为它包含   与对映点的边缘。

为什么这些坐标不会产生有效的多边形?

1 个答案:

答案 0 :(得分:3)

有一个很好的简单方法可以解决这个问题(假设您确实有SQL Server 2012或更高版本 - 正如John Barca指出的那样,绝对需要构建覆盖半个半球的空间对象)。

尝试以下方法:

// Let's use the nice and simple "FULLGLOBE" statement to create a polygon covering the earth
SqlGeography geography = SqlGeography.STGeomFromText("FULLGLOBE", 4326);
DbGeography dbGeography = DbGeography.FromText(geography.ToString(), 4326);

转换(第二行)取自SO here上我之前的答案。