我刚刚将我的 SQL Server 2008 数据库从使用纬度/经度对转换为使用新的地理类型。我使用 STDistance 函数对位于 geography::Point 30 英里范围内的企业运行查询,如下所示:
WHERE this_.GeoLocation.STDistance(geography::Point(42.738963, -84.5522, 4326)) <= 48280.32
这是我在地理列上的索引:
CREATE SPATIAL INDEX IDX_Business_GeoLocation
ON Business (GeoLocation)
USING GEOGRAPHY_GRID
WITH (
GRIDS = (
LEVEL_1 = LOW,
LEVEL_2 = LOW,
LEVEL_3 = LOW,
LEVEL_4 = LOW),
CELLS_PER_OBJECT = 64
)
我真的不明白网格级别或每个对象的单元格是什么意思,但我正在寻找的是我的场景的最佳设置,我正在搜索距离点 30 英里以内的企业(纬度/长)。
有小费吗?