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.
la source
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.
Vous pouvez utiliser le type de données POINT intégré sans postgis.
Vous pouvez également utiliser des colonnes distinctes pour latitude
et longitude
ou 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
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.