7

这可能是一个非常愚蠢的问题,但是......

Geography.STLength 返回什么单位?官方 MSDN 页面没有说明返回的单位,这里的博客条目STLength() returns a float indicating the length of the instance in units。是的,没错,它说它以单位返回。

谁能阐明 STLength 返回的单位?脚?米?英寸?帮助!

4

1 回答 1

9

这些单位完全取决于所使用的地理/几何数据的空间参考 ID (SRID)。按照惯例,如果所有数据都在同一个单位系统中,您通常会为几何类型使用“0”的 SRID。

但是,通常地理类型使用 4326 的 SRID,这是称为 WGS 84 的纬度/经度椭球地球坐标系的参考 ID。当您在该系统中指定点坐标时,它以经纬度角为单位,而不是与原点有一段距离。此参考系统中点的长度和面积计算将返回与完全相同的点位置上的几何计算完全不同的结果(有关一个很好的示例,请参见此处的地理和几何之间的差异,以及为什么会发生这种情况,请参见此处)。

因此,如果您的数据列是使用“0”的 SRID 创建的,则系统被定义为无单位的,您需要一些有关数据模型的元数据来确定单位。如果它们是用真实的 SRID 定义的,那么您可以使用以下查询:

SELECT spatial_reference_id
   , well_known_text
   , unit_of_measure
   , unit_conversion_factor
FROM sys.spatial_reference_systems

检查 SRID 代表什么单位。大多数以米为单位,但少数以英尺为单位。

于 2010-01-10T16:35:47.463 回答