私は地理データに不慣れで、グーグルマップ、asp.net、SQL Serverで遊んでいますが、少し行き詰まっています。
経度と緯度のマーカーが付いたSQLServerテーブルを取得しました。
そして、開始点を基準にしてデータベースから最も近い10個のマーカーを取得したいと思います。
これを行うための最良の方法は何ですか。
サーバーはSQL2005であり、値は2つの列に格納されますデータ型nvarchar(300)
私は地理データに不慣れで、グーグルマップ、asp.net、SQL Serverで遊んでいますが、少し行き詰まっています。
経度と緯度のマーカーが付いたSQLServerテーブルを取得しました。
そして、開始点を基準にしてデータベースから最も近い10個のマーカーを取得したいと思います。
これを行うための最良の方法は何ですか。
サーバーはSQL2005であり、値は2つの列に格納されますデータ型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);