SQL 2008 geografía y geometría - cuál usar?
-
18-09-2019 - |
Pregunta
Estoy creando un mapa mashup de Google y estoy usando SQL 2008.
voy a tener un gran número de puntos de la tierra y va a querer realizar diversos cálculos sobre ellos en SQL -. Tales como la selección de todos los puntos contenidos dentro de un polígono en particular, o seleccionar todos los puntos dentro de 10 km de XY
Nunca he utilizado y las características espaciales de SQL antes. Se debe utilizar el geography
o el tipo de datos geometry
para esto?
Solución
Geografía es el tipo que está destinado para el trazado de puntos sobre la tierra.
Si usted tiene una tabla que almacena los puntos de mapas de Google como esto:
CREATE TABLE geo_locations (
location_id uniqueidentifier NOT NULL,
position_point geography NOT NULL
);
A continuación, usted podría llenar puntos en que con este procedimiento almacenado:
CREATE PROCEDURE proc_AddPoint
@latitude decimal(9,6),
@longitude decimal(9,6),
@altitude smallInt
AS
DECLARE @point geography = NULL;
BEGIN
SET NOCOUNT ON;
SET @point = geography::STPointFromText('POINT(' + CONVERT(varchar(15), @longitude) + ' ' +
CONVERT(varchar(15), @latitude) + ' ' +
CONVERT(varchar(10), @altitude) + ')', 4326)
INSERT INTO geo_locations
(
location_id,
position_point
)
VALUES
(
NEWID(),
@point
);
END
A continuación, si desea una consulta de la latitud, longitud y altitud, basta con utilizar el formato siguiente consulta:
SELECT
geo_locations.position_point.Lat AS latitude,
geo_locations.position_point.Long AS longitude,
geo_locations.position_point.Z AS altitude
FROM
geo_locations;
Otros consejos
Puede seguir la respuesta dada en PostGIS FAQ
Estoy confundido. ¿Qué almacén de datos debería utilizar la geometría o la geografía?
Respuesta corta: la geografía es un nuevo dato tipo que soporta de largo alcance distancias medidas. Si utiliza geografía - no es necesario para aprender mucho de coordinar los sistemas plana. La geografía es generalmente mejor si todo lo que cuidar distancias sobre medición y se longitudes y que tienen datos de todos sobre el mundo. tipo de datos es la geometría un tipo de dato más antiguo que tiene muchos funciones de apoyo y disfruta un gran apoyo de herramientas de terceros. Su mejor si usted es bastante cómodo con sistemas de referencia espacial o que se trata de datos localizadas donde todos sus datos cabe en una sola espacial sistema de referencia (SRID), o si necesita hacer una gran cantidad de procesamiento espacial. Consulte la Sección 8.8, “PostGIS Matriz de compatibilidad de funcionar”para ver qué Actualmente se apoya y lo que es no.
Los tipos de geometría y geografía en ambas bases de datos, PostGIS y SQL Server, siguen el mismo concepto, por lo que la respuesta dada en el FAQ PostGIS es aplicable a su problema.
Lo más probable es que desea que el tipo de geografía, ya que da cuenta de la curvatura de la tierra. La geometría es más por una visión "plana" de las cosas. Echa un vistazo a este artículo para obtener más información http://www.mssqltips.com/tip.asp?tip=1847