我有几百个形状(polygon
s和multipolygon
s),每个形状都由数以万计的点组成,这些点正试图进入SQL 2008。
不幸的是,我尝试导入的形状是“右旋”的(每个形状的周长围绕其包含的点顺时针绘制)。SQL Server至少对于geography
类型采用“左手”形状(围绕内部逆时针旋转)。这意味着SQL假定我要选择除形状之外的整个地球。有人将其描述为“由内而外”的形状。
从MSDN来看,令人沮丧的是没有说要使用哪种环定向:
如果使用
geography
数据类型存储空间实例,则必须指定环的方向并准确描述实例的位置。
如果您在SQL 2008中使用错误的环向,它将崩溃并显示以下错误(强调我的意思):
用户定义的例程或聚合“地理”的执行过程中发生了.NET Framework错误:Microsoft.SqlServer.Types.GLArgumentException:24205:指定的输入不代表有效的地理实例,因为它超出了一个半球。每个地理实例必须适合一个半球。导致此错误的常见原因是多边形的环方向错误。
导入形状geometry
而不是导入形状geography
效果很好,但我想使用geography
。
在SQL 2012中,解决此问题显得微不足道,但我与2008紧密相关。
我应该如何转换形状?