这可能是一个非常愚蠢的问题,但是......
Geography.STLength返回哪些单位? official MSDN page没有说明所返回的单位,而this blog entry在这里说STLength() returns a float indicating the length of the instance in units
。是的,这是正确的,它表示它以单位返回。
任何人都可以了解STLength返回的单位吗?脚?米?寸?救命啊!
答案 0 :(得分:8)
单位完全取决于所使用的地理/几何数据的空间参考ID(SRID)。按照惯例,如果所有数据都在同一单元系统中,则通常对几何类型使用SRID为“0”。
但是,通常地理类型使用的SRID为4326,它是纬度/经度椭圆体地球坐标系统的参考ID,称为WGS 84.当您在此系统中指定点坐标时,它的角度为纬度和经度,而不是与原点的距离。此参考系中点的长度和面积计算将返回与完全相同的点位置的几何计算完全不同的结果(对于一个很好的例子see Differences between Geography and Geometry here,以及why this happens, see here)。
因此,如果您的数据列是使用SRID“0”创建的,那么系统被定义为无单位,您需要一些有关数据模型的元数据来确定单位。如果使用真实SRID定义它们,则可以使用此查询:
SELECT spatial_reference_id
, well_known_text
, unit_of_measure
, unit_conversion_factor
FROM sys.spatial_reference_systems
检查SRID代表的单位。大多数是以米为单位,但有一些是以英尺为单位。