Saltar al contenido

¿Cómo almacenar longitud y latitud como geografía en el servidor sql 2014?

Tenemos la mejor respuesta que encontramos en internet. Nosotros deseamos que te resulte de mucha utilidad y si deseas compartir cualquier detalle que nos pueda ayudar a mejorar hazlo con libertad.

Solución:

¿Cómo puedo usar la longitud y la latitud para almacenar la ubicación dentro de una columna de geografía? (porque se supone que es solo un punto geográfico, no dos, ¿verdad? ¿No uno para la longitud y otro para la latitud?)

Puedes usar geography::STPointFromText / geography::Point para almacenar la longitud y la latitud en un tipo de datos geográficos.

SELECT geography::STPointFromText('POINT(' + CAST([Longitude] AS VARCHAR(20)) + ' ' + CAST([Latitude] AS VARCHAR(20)) + ')', 4326)

o

SELECT geography::Point(Latitude, Longitude , 4326)

Link de referencia:

Actualizar la columna Geografía en la tabla

Ahora que tengo los puntos geográficos, ¿cómo puedo seleccionar todas las filas dentro de una distancia específica (en mi caso, 2 km)?

Puedes usar STDistance como esto.

DECLARE @g geography;
DECLARE @h geography;
SET @g = geography::STGeomFromText('POINT(-122.35900 47.65129)', 4326);
SET @h = geography::STGeomFromText('POINT(-122.34720 47.65100)', 4326);
SELECT @g.STDistance(@h);

Link de referencia:

¿Distancia entre dos puntos usando el tipo de datos Geografía en sqlserver 2008?

Insertar Consulta

DECLARE @GeoTable TABLE 
(
    id int identity(1,1),
    location geography
)
--Using geography::STGeomFromText
INSERT INTO @GeoTable 
SELECT geography::STGeomFromText('POINT(-122.35900 47.65129)', 4326)

--Using geography::Point
INSERT INTO @GeoTable 
SELECT geography::Point(47.65100,-122.34720, 4326);

Obtener consulta de distancia

DECLARE @DistanceFromPoint geography
SET @DistanceFromPoint =  geography::STGeomFromText('POINT(-122.34150 47.65234)', 4326);

SELECT id,location.Lat Lat,location.Long Long,location.STDistance(@DistanceFromPoint) Distance
FROM @GeoTable;

Te mostramos las comentarios y valoraciones de los usuarios

Recuerda comunicar esta sección si te fue útil.

¡Haz clic para puntuar esta entrada!
(Votos: 0 Promedio: 0)



Utiliza Nuestro Buscador

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *