Respostas:
Você também pode usar colunas separadas para latitude
e longitude
ou criar seu próprio tipo . De qualquer maneira, pode ser bom restringir os valores permitidos; neste exemplo, também uso domínios para evitar repetições de restrições se o tipo for usado em mais de uma tabela:
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 aplicativos que não são de GIS, apenas uso colunas, como sugerido por Jack, embora não me importe com o valor de verificação. É uma boa idéia também especificar o dado (IE NAD27 ) em uma coluna adicional, pois o dado é importante para uma interpretação adequada dos valores.