Puedo usar mi intuitiva "reglas de oro"... es útil para una decisión rápida,
Acerca de su BASE de datos: si las características y/o análisis espacial son de escala continental, y la necesidad de precisión (aplicaciones serias) el uso de la geografía. Otro uso de la geometría: cuando todos los de la base de datos es acerca de la misma (de la ciudad de escala) de la región, o que no necesitan de precisión, etc. usted necesita sólo la geometría.
Ver regla similar a la de sugerir conferencia de @underdark.
Acerca de sus necesidades en términos de RENDIMIENTO o de PRECISIÓN del BALANCE: la geometría es más rápido; si usted necesita el rendimiento y pensar en el uso de geografía, hacer sus primeros puntos de referencia.
Clave-conceptos
En esta página vamos a ver algunas palabras clave y el foco en algunos de los conceptos: la precisión, el rendimiento, y algo así como la flexibilidad y productos básicos de uso.
Como recordado por los demás, la diferencia, para la tienda y hacer los cálculos, es el uso de la esfera de la geografía y el plano de la geometría:
- la esfera (geografía) es mejor, más preciso. Ver el Los Angeles/París ejemplo.
- la evolución de la geografía: como @DavidF decir, "la geografía fue de tipo más recientemente añadidos, por lo menos funciones son compatibles/implementarse".
Tal vez en el año 2020 todas las bases de datos de SIG se establece la misma norma SRID/EPSG (equivalente a la de hoy en día 4326 código, por WGS84).
Hoy en día la geografía no es una opción por defecto, porque de rendimiento y limitaciones funcionales.
Discusión
En mi opinión es una cuestión de "buenas prácticas", que no es profunda técnico/problema teórico.
Precisión
Después de estimar el error en sus datos, hacer sus pruebas y comparar resultados: la precisión de las ganancias con la geografía son más altos que los de error de los datos? El ST_Distance función (con MAX y AVG agregadores) es la principal referencia en este tipo de experimento.
Rendimiento
Ejemplos de puntos de referencia en una zona urbana de ~100km2 (diámetro ~11 km), todos almacenados como la geometría, en un plano sistema de coordenadas UTM. NOTA: a partir de la frecuencia utiliza la geometría y geografía de la conversión de frecuencia debido a que algunas funciones no existen y algunos otros, como ST_Buffer y ST_Intersection, hacer la conversión de forma interna.
Banco#1: una tabla con ~87000 polígonos que representan solares urbanos, cada uno con poli (avg) ~13 puntos,
BEGIN; EXPLAIN ANALYSE CREATE TABLE temp_geom AS
SELECT gid, the_geom FROM urbanlots; ROLLBACK;
-- time 2080 ms ~ 2.0 s
BEGIN; EXPLAIN ANALYSE CREATE TABLE temp_geog AS
SELECT gid, Geography(ST_Transform(the_geom,4326)) AS geog
FROM urbanlots; ROLLBACK;
-- time 12374 ms ~ 12.4 s ~ 6 * geometry.
así, geography_time=6*geometry_time.
Banco#2: una tabla con ~3500 polígonos que representan bloques urbanos, cada uno con poli (avg) ~50 puntos: 0.6 s vs 2,7 s, geography_time=4.5*geometry_time.
Banco#3: ~10000 líneas que representan las calles de la ciudad, cada una con ~5 puntos. ~0.87 s vs ~0.36 s, geography_time=2.4*geometry_time.
De regreso a la Banca#2, la creación de las tablas y realizar consultas,
EXPLAIN ANALYSE SELECT ST_Area(g.the_geom)+ST_Distance(g.the_geom,t.the_geom)
FROM temp_geom g, (SELECT the_geom FROM temp_geom WHERE gid=1) as t;
-- time 182 ms ~ 0.2 s
EXPLAIN ANALYSE SELECT ST_Area(g.geog)+ST_Distance(g.geog,t.geog)
FROM temp_geog g, (SELECT geog FROM temp_geog WHERE gid=1) as t;
-- time 58657 ms ~ 59 s ~ 300*geometry
-- curioselly for only distances, geography=4*geometry
Conclusión: para tareas poco y bueno hardaware, las veces que convergen en el "aceptable-a la misma hora", pero para las grandes tareas, hay índices de rendimiento a tener en cuenta.
Flexibilidad/Mercancía
En los puntos de referencia que hago de un día-por-día tarea, comprobar el número de puntos ( ST_NPoints
)... es un ejemplo de la operación de que no existe para la geografía, las necesidades de yeso. La "geografía, la geometría del elenco" es una tarea molesta para los programadores, maestros, etc.
A la hora de reutilizar las bibliotecas de SQL y PL/pgSQL funciones, la geografía, la necesidad de adaptaciones. Y, si desea optimizar el código, o evitar la precisión de problemas con un montón de intermediario de las conversiones, la ausencia de un conjunto completo de construir-en funciones, con la geografía, es otro problema. Programa de geografía, no es una tarea fácil.
Proceso-sólo, intercambio de datos, etc.
Para los no habituales de la demanda, sin intensivo de usuario como Mapserver, cuando tu solo (PostGIS) el trabajo es para procesar los datos de entrada y de retorno en cualquier momento (como horas o días) de los datos procesados, la regla de oro es "el uso de la geografía si usted se siente cómodo!" (consulte "Flexibilidad/Producto" más arriba). Si no es así, compruebe reglas habituales.
NOTA: por supuesto, si tu (no habitual) la tarea es mostrar solo los datos de PostGIS a Mapserver, con la ausencia de un proceso necesario, para preservar la misma (geometría o geografía) de los datos de entrada, es la mejor decisión.
Creo que la centralización de datos es una tarea donde la geografía es mejor: en un contexto donde la diversidad de formatos de entrada y los sistemas de referencia son de costumbre, el uso de un estándar, como la que se exige por la geografía, es beneficioso... Convención sobre configuración es un buen principio de centralización y de intercambio de datos son el foco de negocio (ver Mapas de Google!).