Abbiamo una tabella con i luoghi e le loro latitudini e longitudini.Distanza di ritorno tra due posizioni in SQL Server 2008 utilizzando latitudine e longitudine
Stiamo cercando di creare una funzione in SQL Server 2008 per elencare i luoghi nei prossimi 25 chilometri utilizzando una latitudine e una longitudine specifiche come punto centrale.
mi aggiravo se questo è un buon modo per iniziare e testare la nostra funzione e ottenere la distanza corrente tra un punto centrale (posizione corrente) e una posizione di destinazione (@ latitudine/@ longitudine):
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
È corretto o ci manca qualcosa?
Che cos'è 4326? Ho provato a vedere MSDN ma non ho alcuna informazione a riguardo. –
4326 è l'ID di riferimento spaziale per il sistema di riferimento geodetico mondiale. Per ulteriori informazioni consultare http://technet.microsoft.com/en-us/library/bb933811.aspx http://en.wikipedia.org/wiki/SRID e http://en.wikipedia.org/wiki/WGS84 –