Как я должен представлять широту и долготу в Postgres без использования PostGIS? Система, которую я использую, не позволяет проходить SQL, поэтому я не могу использовать POSTGIS.
источник
Как я должен представлять широту и долготу в Postgres без использования PostGIS? Система, которую я использую, не позволяет проходить SQL, поэтому я не могу использовать POSTGIS.
Вы можете использовать встроенный тип данных POINT без postgis.
Кроме того, можно использовать либо отдельные столбцы для latitude
и longitude
или создать свой собственный тип . В любом случае может быть полезно ограничить допустимые значения, в этом примере я также использую домены, чтобы избежать повторения ограничений, если тип используется более чем в одной таблице:
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