Tenemos una tabla con lugares y sus latitudes y longitudes.Distancia de retorno entre dos ubicaciones en SQL Server 2008 usando latitud y longitud
Estamos intentando crear una función en SQL Server 2008 para listar lugares dentro de los siguientes 25 kilómetros utilizando una latitud y longitud específica como punto central.
Andaba yo si esto es una buena manera de empezar y probar nuestra función y conseguir la distancia actual entre un punto central (ubicación actual) y una ubicación de destino (@ latitud/@ longitud):
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
¿Es correcto o nos falta algo?
¿Qué es 4326? Traté de ver MSDN pero no tengo información al respecto. –
4326 es la ID de referencia espacial para el sistema de referencia World Geodetic. Para obtener más información, consulte http://technet.microsoft.com/en-us/library/bb933811.aspx http://en.wikipedia.org/wiki/SRID y http://en.wikipedia.org/wiki/WGS84. –