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