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.

Réponses:


14

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


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

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.

En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.