Respuestas:
También es posible usar cualquiera de columnas separadas por latitude
y longitude
o crear su propio tipo . De cualquier manera, puede ser bueno restringir los valores permitidos, en este ejemplo también uso dominios para evitar repetir restricciones si el tipo se usa en más de una tabla:
create domain latitude_t as double precision not null
check(value>=-90 and value<=90);
create domain longitude_t as double precision not null
check(value>-180 and value<=180);
create type geocoord_t as (latitude latitude_t, longitude longitude_t);
create table my_table(id serial, geocoord geocoord_t);
insert into my_table(geocoord) values ((31.778175,35.22995));
select id, (geocoord).* from my_table;
id | latitude | longitude
----+-----------+-----------
1 | 31.778175 | 35.22995
Para aplicaciones que no son SIG, solo uso columnas, como lo sugirió Jack, aunque no me molesto con el valor de verificación. Es una buena idea especificar también el dato (IE NAD27 ) en una columna adicional, ya que el dato es importante para la interpretación adecuada de los valores.