【发布时间】:2015-09-06 10:08:36
【问题描述】:
我有一个 SQL Server 表,其地理点类型为 [latitude, longitude]。目前,我只有很少的分数,但是,随着时间的推移,我希望我的表格会显着增长。
稍后,我将需要通过接近另一个点来查询我的表。有没有任何标准化的方法可以有效地做到这一点?例如某种地理空间索引?您的最佳做法是什么?
我需要的查询在伪代码中将如下所示:
-- lat0, lng0 and radius0 are search parameters
-- distance() is function which computes distance between two points
SELECT id, lat, lng
FROM myTable
WHERE distance(lat, lng, lat0, lng0) < radius0
【问题讨论】:
-
如果您使用的是 SQL Server 2008 或更新版本 - 是的,有特定的地理空间数据类型
GEOMETRY和GEOGRAPHY以及可用于处理此问题的支持函数 - 请参阅Types of Spatial Data 介绍
标签: sql sql-server tsql geospatial geography