我是地理数据的新手,我正在玩谷歌地图、asp.net 和 SQL Server,但我有点卡住了。
我有一个带有经度和纬度标记的 SQL Server 表。
我想从数据库中获取相对于起点的 10 个最近的标记。
做这个的最好方式是什么。
服务器是 SQL 2005,值存储在两列数据类型 nvarchar(300) 中
我是地理数据的新手,我正在玩谷歌地图、asp.net 和 SQL Server,但我有点卡住了。
我有一个带有经度和纬度标记的 SQL Server 表。
我想从数据库中获取相对于起点的 10 个最近的标记。
做这个的最好方式是什么。
服务器是 SQL 2005,值存储在两列数据类型 nvarchar(300) 中
由于这个原因,您不需要使用 C# 或 ASP.NET,只需使用 SQL 请求即可。以下是AdventureDataworks示例数据库中用于查找邻近位置的示例:
USE AdventureWorks2008R2
GO
DECLARE @g geography = 'POINT(-121.626 47.8315)';
SELECT TOP(7) SpatialLocation.ToString(), City FROM Person.Address
WHERE SpatialLocation.STDistance(@g) IS NOT NULL
ORDER BY SpatialLocation.STDistance(@g);