SQL Server单元问题

Dav*_*fer 6 sql t-sql sql-server gis units-of-measurement

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

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

任何人都可以了解STLength返回的单位吗?脚?米?寸?救命!

wom*_*omp 8

单位完全取决于所使用的地理/几何数据的空间参考ID(SRID).按照惯例,如果所有数据都在同一单元系统中,则通常对几何类型使用SRID为"0".

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

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

SELECT spatial_reference_id
   , well_known_text
   , unit_of_measure
   , unit_conversion_factor
FROM sys.spatial_reference_systems
Run Code Online (Sandbox Code Playgroud)

检查SRID代表的单位.大多数以米为单位,但有一些以英尺为单位.