SQL Server 2008 Geography .STBuffer()距离测量单位

9 sql geography measurement distance units-of-measurement

我正在使用lat/long处理地理点,并且需要在该点的5英里范围内找到我们数据库中的其他点.但是,我似乎无法找出STBuffer的"单位",它似乎不符合英尺,英里,米,公里等.文档仅将它们称为"单位",任何建议?谢谢

[...]来自geography :: STGeomFromText('POINT(xy)',4326).STBuffer(z).STIntersects(geography :: STGeomFromText('POINT('+ CAST(v.Longitude as varchar(max))+ ''+ CAST(v.Latitude as varchar(max))+')',4326))= 1

小智 9

测量单位取决于使用的空间参考系统.请参阅此系统视图以获取详细信

SELECT * FROM sys.spatial_reference_systems;

  • 即使原始问题指定了地理位置,我也到了这里寻找STBuffer度量单位(几何或地理).为了保存其他人看得更远,对于几何,测量单位是几何的坐标系.因此,如果您使用Lat/Long,geometry.STBuffer(1)将是1整度,而不是1米.相比之下,1度是巨大的 - 大约69英里. (3认同)

Mar*_*ytz 7

STBuffer以米为单位.更多信息在这里.

要将英里数转换为米,请将里程数除以0.0006213712

(即5英里/0.0006213712 = 8,046.72米)

  • 奇怪的是,术语"米"只显示在*example*中,而不是在`distance`参数的描述中. (2认同)