这可能是一个非常愚蠢的问题,但是…
Geography.STLength返回什么单位?在MSDN官方页面并没有说明返回单位什么,在这里说STLength() returns a floatindicating the length of the instance in units。是的,没错,它说以 单位 返回它。
STLength() returns a floatindicating the length of the instance in units
谁能阐明STLength返回的单位是什么?脚?米?英寸?帮助!
单位完全取决于所使用的地理/几何数据的空间参考ID(SRID)。按照惯例,如果所有数据都在同一单位系统中,则通常将SRID设置为“ 0”用于几何类型。
但是,通常地理类型使用SRID 4326,这是称为WGS 84的纬度/经度椭球地球坐标系的参考ID。在此系统中指定点坐标时,它是以纬度和经度的角度表示的,而不是到原点的距离。在此参考系统中,对点的长度和面积计算将返回与完全相同的点位置上的几何计算完全不同的结果(有关一个很好的示例,请参见此处的地理和几何之间的差异,以及发生这种情况的原因,请参见此处)。
因此,如果您创建的数据列的SRID为“ 0”,则系统被定义为无单位,并且您将需要一些有关数据模型的元数据来找出单位。如果它们是用真实的SRID定义的,则可以使用以下查询:
SELECT spatial_reference_id , well_known_text , unit_of_measure , unit_conversion_factor FROM sys.spatial_reference_systems
检查SRID代表的单位。大多数以米为单位,但有些以英尺为单位。