空间查询,将米转换为弧度?

时间:2010-06-22 15:11:50

标签: sql-server spatial spatial-query

我已将地理数据加载到地理数据类型中。出于非常具体的目的,我现在需要将其存储为几何。但是,我需要执行这样的查询。

DECLARE @radius INT -- e.g. 3000 metres

DECLARE @geo geometry -- my starting shape

SET @geo = @geo.STBuffer(@radius) -- this obviously doesnt work.. 

SELECT Geo FROM GeometryTable 
WHERE Geo.STWithin (@geo) = 1

2 个答案:

答案 0 :(得分:0)

米是长度的度量,而弧度是角度的度量,所以我认为你不能。

您是否尝试计算弧长?

请看下面的链接:

答案 1 :(得分:0)

这个技巧可能有用,如果有人可以验证这种技术或提供更好的选择,那么他们就会得到接受的答案。

基本上,我想我可以使用地理的STBuffer,它将在我的地理形状周围以米为单位应用正确的半径,然后转换回几何体。由于形状最初作为地理位置加载,所有点都相同。这种形状翻转应该给我一个结果几何体,周围有一个非常准确的缓冲区。

DECLARE @radius INT -- e.g. 3000 metres

DECLARE @geo geometry -- my starting shape

SET @geo = GEOMETRY::STGeomFromWKB(GEOGRAPHY::STGeomFromWKB(@geo.STAsBinary(),
           4326).STBuffer(@radius).STAsBinary(),4326)

SELECT Geo FROM GeometryTable 
WHERE Geo.STWithin (@geo) = 1