我有一个地理类型的SQL表列:
create table dbo.Events ( Id int identity not null constraint PK_Events_Id primary key clustered (Id), Localization geography not null );
如何获得半径40公里范围内的所有事件?这可能吗?
谢谢你,米格尔
假设您具有要搜索的点的经度和纬度:
DECLARE @Origin GEOGRAPHY, -- distance defined in meters @Distance INTEGER = 40000; -- center point SET @Origin = GEOGRAPHY::STGeomFromText('POINT(-122.084039 37.42227)', 4326); -- return all rows from events in 40km radius SELECT * FROM dbo.Events WHERE @Origin.STDistance(Localizaton) <= @Distance;