ฉันจะแสดงละติจูดและลองจิจูดใน Postgres ได้อย่างไรโดยไม่ต้องใช้ PostGIS


12

ฉันจะแสดงละติจูดและลองจิจูดใน Postgres ได้อย่างไรโดยไม่ต้องใช้ PostGIS ระบบที่ฉันใช้ไม่อนุญาตให้ใช้ SQL ผ่านดังนั้นฉันไม่สามารถใช้ POSTGIS ได้

คำตอบ:


14

คุณสามารถใช้ชนิดข้อมูล POIN ในตัวได้โดยไม่ต้องโพสต์


6

คุณยังสามารถใช้อย่างใดอย่างหนึ่งคอลัมน์แยก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

5

สำหรับแอปพลิเคชันที่ไม่ใช่ GIS ฉันใช้คอลัมน์ตามที่แจ็คแนะนำ แต่ฉันไม่ใส่ใจกับค่าตรวจสอบ เป็นความคิดที่ดีที่จะระบุ datum (IE NAD27 ) ในคอลัมน์เพิ่มเติมเนื่องจาก datum นั้นมีความสำคัญสำหรับการตีความค่าที่เหมาะสม

โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.