मुझे PostGIS का उपयोग किए बिना Postgres में अक्षांश और देशांतर का प्रतिनिधित्व कैसे करना चाहिए?


12

मुझे PostGIS का उपयोग किए बिना Postgres में अक्षांश और देशांतर का प्रतिनिधित्व कैसे करना चाहिए? मैं जिस सिस्टम का उपयोग कर रहा हूं, वह SQL passthrough की अनुमति नहीं देता है इसलिए मैं POSTGIS का उपयोग नहीं कर सकता।

जवाबों:


14

आप बिना पोस्टगिन के बिल्टइन पोस्ट डेटेटाइप का उपयोग कर सकते हैं।


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

गैर जीआईएस आवेदन के लिए, मैं सिर्फ कॉलम का उपयोग करता हूं, जैसा कि जैक द्वारा सुझाया गया है, हालांकि मैं चेक मूल्य के साथ परेशान नहीं करता हूं। डेटम (IE NAD27 ) को एक अतिरिक्त कॉलम में निर्दिष्ट करना भी एक अच्छा विचार है , क्योंकि डेटम मूल्यों की उचित व्याख्या के लिए महत्वपूर्ण है।

हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.