Come devo rappresentare una latitudine e una longitudine in Postgres senza utilizzare PostGIS?


12

Come devo rappresentare una latitudine e una longitudine in Postgres senza utilizzare PostGIS? Il sistema che sto usando non consente il passthrough SQL, quindi non posso usare POSTGIS.

Risposte:


14

È possibile utilizzare il tipo di dati POINT incorporato senza PostGis.


6

Puoi anche utilizzare colonne separate per latitudee longitudeo creare il tuo tipo . In entrambi i casi può essere utile limitare i valori consentiti, in questo esempio utilizzo anche i domini per evitare di ripetere i vincoli se il tipo viene utilizzato in più di una tabella:

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

Per le applicazioni non GIS uso solo le colonne, come suggerito da Jack, anche se non mi preoccupo del valore di controllo. È una buona idea specificare anche il dato (IE NAD27 ) in una colonna aggiuntiva, poiché il dato è importante per una corretta interpretazione dei valori.

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.