geography データ型の列を持つ SQL Server 2008 テーブルがあります。値はポイント (緯度と経度) です。
テーブルをクエリして、その場所が特定の座標から半径 10 キロメートル以内にあるすべての行を返すにはどうすればよいですか?
geography データ型の列を持つ SQL Server 2008 テーブルがあります。値はポイント (緯度と経度) です。
テーブルをクエリして、その場所が特定の座標から半径 10 キロメートル以内にあるすべての行を返すにはどうすればよいですか?
おそらく STDistance メソッドが必要です: http://msdn.microsoft.com/en-us/library/bb933952.aspx
または STWithin メソッド: http://msdn.microsoft.com/en-us/library/bb933991.aspx
このクエリは最終的に私の問題を解決しました:
DECLARE @geoMyPoint geography
SET @geoMyPoint = geography::STGeomFromText('POINT(56.5667 9.0333)', 4326);
SELECT vchZipCode, nvcCity, vchLat, vchLong,
(geography::STGeomFromText('POINT(' + vchLat + ' ' + vchLong + ')', 4326)).STDistance(@geoMyPoint)
FROM MyTable