PostGIS kullanmadan Postgres'de enlem ve boylamı nasıl temsil etmeliyim?


12

PostGIS kullanmadan Postgres'de enlem ve boylamı nasıl temsil etmeliyim? Kullandığım sistem POSTGIS kullanamadığım için SQL geçidine izin vermiyor.

Yanıtlar:


14

Postgis olmadan yerleşik POINT veri tipini kullanabilirsiniz.


6

Ayrıca biri için ayrı sütunlar kullanabilir latitudeve longitudeya kendi türünü oluşturmak . Her iki şekilde de izin verilen değerleri kısıtlamak iyi olabilir , bu örnekte , tür birden fazla tabloda kullanılıyorsa, kısıtlamaları tekrarlamaktan kaçınmak için de alanlar kullanıyorum :

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

GIS olmayan uygulama için, Jack tarafından önerilen sütunları kullanıyorum, ancak kontrol değeriyle uğraşmıyorum. Verilerin (IE NAD27 ) ek bir sütunda belirtilmesi de iyi bir fikirdir , çünkü veriler değerlerin doğru yorumlanması için önemlidir.

Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.