Comment représenter une latitude et une longitude en Postgres sans utiliser PostGIS?

12

Comment représenter une latitude et une longitude en Postgres sans utiliser PostGIS? Le système que j'utilise n'autorise pas le passage SQL, je ne peux donc pas utiliser POSTGIS.

Yazz.com
la source

Réponses:

14

Vous pouvez utiliser le type de données POINT intégré sans postgis.

TomH
la source
6

Vous pouvez également utiliser des colonnes distinctes pour latitudeet longitudeou créer votre propre type . De toute façon, il peut être bon de contraindre les valeurs autorisées, dans cet exemple, j'utilise également des domaines pour éviter de répéter les contraintes si le type est utilisé dans plusieurs tables:

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
Jack dit d'essayer topanswers.xyz
la source
5

Pour les applications non SIG, j'utilise simplement des colonnes, comme suggéré par Jack, bien que je ne me soucie pas de la valeur de contrôle. C'est une bonne idée de spécifier également le datum (IE NAD27 ) dans une colonne supplémentaire, car le datum est important pour une bonne interprétation des valeurs.

Alice Wonder
la source