微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

使用SQL地理位置获取某个半径的位置

我有一个带有Geography类型的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;

原文地址:https://www.jb51.cc/mssql/77696.html

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐