Como devo representar uma latitude e longitude no Postgres sem usar o PostGIS?


12

Como devo representar uma latitude e longitude no Postgres sem usar o PostGIS? O sistema que estou usando não permite a passagem do SQL, portanto não posso usar o POSTGIS.

Respostas:


14

Você pode usar o tipo de dados POINT interno sem postgis.


6

Você também pode usar colunas separadas para latitudee longitudeou 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

5

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.

Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.