繁体   English   中英

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

[英]SQL Server 2008 Geography .STBuffer() distance measurement units

我正在使用经纬度处理地理点,需要在我们的数据库中找到该点 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

测量单位取决于使用的空间参考系统。 有关详细信息,请参阅此系统视图:

SELECT * FROM sys.spatial_reference_systems;

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

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

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

对于访问此页面的任何人来说,他们对为什么他们的缓冲区距离可能没有以米为单位出现感到困惑,这可能是因为您使用的是几何数据类型而不是地理数据类型。 就我而言,很明显,地理以米为单位运行,而几何不(它出现的度数?),即使为几何正确设置了空间参考系统。

要将纬度和经度转换为地理点:

geography::Point(latitude, longitude, 4326) -- 4326 is WGS-84 EPSG Projection

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM