我正在使用lat / long处理地理点,并且需要在该点的5英里范围内找到我们数据库中的其他点。但是,我似乎无法找出STBuffer的“单位”,它似乎不符合英尺,英里,米,公里等。文档仅将它们称为“单位”,任何建议?感谢
[...] from 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
答案 0 :(得分:9)
测量单位取决于使用的空间参照系。有关详细信息,请参阅此系统视图:
SELECT * FROM sys.spatial_reference_systems;
答案 1 :(得分:5)
答案 2 :(得分:0)
对于访问此页面的任何人来说,为什么缓冲距离可能不会以米为单位感到困惑,这可能是因为您使用的是几何数据类型还是地理数据类型。就我而言,很明显,地理是用米来操作的,即使几何的空间参照系设置正确,几何也不会(显示度数)。
要将纬度和经度转换为地理点:
geography::Point(latitude, longitude, 4326) -- 4326 is WGS-84 EPSG Projection