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

Sql server 空间查询,将米转换为弧度?,sql-server,spatial,spatial-query,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.

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

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

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

您正在尝试计算弧长吗

请查看以下链接:


如果有人能够验证这项技术或提供更好的替代方案,那么这个技巧可能会奏效,他们会得到公认的答案

基本上,我想我可以使用地理的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