PostgreSQL
 sql >> डेटाबेस >  >> RDS >> PostgreSQL

शहर की सीमा में लेट लॉन्ग है या नहीं, इसकी जांच कैसे करें

हो सकता है कि यह एक ओवरकिल हो, लेकिन यदि आप postgres का उपयोग कर रहे हैं आप postgis इंस्टॉल कर सकते हैं स्थानिक डेटा का प्रबंधन करने के लिए विस्तार। फिर एक irb . में आप ऐसा कुछ कर सकते हैं:

result = ActiveRecord::Base.connection.execute('SELECT
ST_Contains(ST_SetSRID(ST_MakeBox2D(ST_Point(-0.489, 51.28), ST_Point(0.236, 51.686)), 4326),
ST_SetSRID(ST_Point(-0.1265, 51.483), 4326))')

ST_contains function का उपयोग करके यह जांच की जा रही है कि बिंदु दिए गए बॉक्स के अंदर है या नहीं

यह वापस आ जाएगा:

=> #<PG::Result:0x007fa517fcbe08 @connection=#<PG::Connection:0x007fa5167f8970 @socket_io=nil, @notice_receiver=nil, @notice_processor=nil>>

तब आप यह कर सकते हैं:

result.first

यह वापस आ जाएगा:

{"st_contains"=>"t"}

इस बिंदु के साथ -0.7265, 44.483 (बॉक्स के बाहर एक बिंदु) परिणाम होगा:

{"st_contains"=>"f"}

यदि आप कच्चे sql का उपयोग नहीं करना चाहते हैं तो आप स्थानिक डेटा को प्रबंधित करने के लिए रत्नों का उपयोग कर सकते हैं। एक बहुत अच्छा है:rgeo . मैं निर्माता के ब्लॉग को पढ़ने की सलाह देता हूं

rgeo का उपयोग करना आप अपने मॉडल के लिए "जियोटाइप" जैसे बिंदुओं, बहुभुजों आदि के साथ विशेषताओं को परिभाषित कर सकते हैं और फिर इसमें शामिल है?

मैं आपको एक जिस्ट देता हूं। पोस्टगिस install को स्थापित करने के लिए बहुत ही बुनियादी निर्देशों के साथ उबंटू के साथ।



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Django IntegerRangeField सत्यापन विफल

  2. Postgres में jsonb सरणी तत्वों से कैसे जुड़ें?

  3. निर्माण पर डोकर कंटेनरों को कैसे लिंक करें?

  4. अपवाद को संभालना और फ़ंक्शन से परिणाम लौटाना

  5. PostgreSQL तालिका का कार्यान्वयन इतिहास