Bagaimana saya harus mewakili lintang dan bujur di Postgres tanpa menggunakan PostGIS? Sistem yang saya gunakan tidak mengizinkan SQL passthrough jadi saya tidak bisa menggunakan POSTGIS.
sumber
Bagaimana saya harus mewakili lintang dan bujur di Postgres tanpa menggunakan PostGIS? Sistem yang saya gunakan tidak mengizinkan SQL passthrough jadi saya tidak bisa menggunakan POSTGIS.
Anda dapat menggunakan datatype POIN bawaan tanpa postgis.
Anda juga bisa menggunakan kolom terpisah untuk latitude
dan longitude
atau membuat tipe Anda sendiri . Either way mungkin baik untuk membatasi nilai yang diizinkan, dalam contoh ini saya juga menggunakan domain untuk menghindari pengulangan kendala jika tipe ini digunakan di lebih dari satu tabel:
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