場所とその緯度と経度を持つテーブルがあります。緯度と経度を使用してSQL Server 2008の2つの場所間の戻り距離
SQL Server 2008で、特定の緯度と経度を中心点として25キロ以内の場所を一覧表示する機能を作成しようとしています。
私は、これは私達の機能を起動してテストするための良い方法である場合放浪と中心点(現在位置)と目標位置(経度@緯度/)との間の現在の距離を得ていた。
ALTER FUNCTION [dbo].[GetDistanceFromLocation]
(
@myCurrentLatitude float,
@myCurrentLongitude float,
@latitude float,
@longitude float
)
RETURNS int
AS
BEGIN
DECLARE @radiusOfTheEarth int
SET @radiusOfTheEarth = 6371--km
DECLARE @distance int
SELECT @distance = (@radiusOfTheEarth
* acos(cos(radians(@myCurrentLatitude))
* cos(radians(@latitude))
* cos(radians(@longitude) - radians(@myCurrentLongitude)) + sin(radians(@myCurrentLatitude))
* sin(radians(@latitude))))
RETURN @distance
END
それは正しいのか、それとも何か不足していますか?
4326とは何ですか?私はMSDNを見ようとしましたが、それに関する情報はありません。 –
4326は、世界測地系参照システムの空間参照IDです。詳細については、http://technet.microsoft.com/en-us/library/bb933811.aspx http://en.wikipedia.org/wiki/SRIDおよびhttp://en.wikipedia.org/wiki/WGS84を参照してください。 –