La primera vez que trato de usar las características espaciales de SQL Server 2008 R2, así que por favor, desnude conmigo.SQL Server 2008 R2 Geography Distance?
he creado una tabla con las siguientes columnas:
Text:varchar(255)
Location:geography
Ellos contienen unos cuantos ciudad de los Países Bajos como datos (GOT las coordenadas de los mapas de Google):
Rotterdam - POINT (51.925637 4.493408 4326)
Utrecht - POINT (52.055868 5.103149 4326)
Nijmegen - POINT (51.801822 5.828247 4326)
Breda - POINT (51.542919 4.77356 4326)
Quiero conocer la distancia entre todas las ciudades en la base de datos de Rotterdam, por lo que realizo esta consulta:
Select
Text, Location,
Location.STDistance(geography::Point(51.925638, 4.493408, 4326)) as Distance
from Messages
Pero como resultado, tengo una distancia cercana a 6800000 para cada ciudad.
¿Qué podría estar causando esto?
La única razón por la que puedo pensar es que estoy usando el SRID incorrecto, pero no puedo determinar cuál debería usar en su lugar.
Gracias!
Editar:
Sólo por el gusto de hacerlo me fui a jugar con los números y me dieron algunos resultados extraños:
Distance from Rotterdam to Rotterdam: 6828459.57 (A) (weird but true)
Distance from Rotterdam to Breda: 6779956.10 (B)
Distance from Rotterdam to Nijmegen: 6695336.38 (C)
Ahora aquí es donde se ponen interesantes:
(A) - (B) = 48504 m = 48 km
(A) - (C) = 133123 m = 133 km
Estos valores son aproximadamente las distancias entre estas ciudades.
Todavía no estoy seguro de lo que hice mal, pero su código funciona, así que iré de eso. Gracias =) – SaphuA
@SaphuA De nada. Como nota al margen, TENGA MUCHO cuidado al usar un índice espacial en una columna de tipo de datos GEOGRAPHY que admite nulos. Hay un problema de rendimiento grave, por lo que la columna GEOGRAPHY no admite nulos, incluso si tiene que remodelar su esquema. – Tomas
El comentario de Tomás sobre los problemas de rendimiento con un índice espacial sobre tipos de geografía anulables es excelente. Más información aquí: http://stackoverflow.com/questions/4954875/sql-server-2008-performance-on-nullable-geography-column-with-spatial-index – TTT