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

एक अक्षांश के करीब बहुभुज प्राप्त करें, MySQL में लंबा

एक धीमा संस्करण (स्थानिक अनुक्रमणिका के बिना):

SELECT  *
FROM    mytable
WHERE   MBRIntersects(mypolygon, LineString(Point(@X - @distance, @Y - @distance), Point(@X + @distance, @Y + @distance))

स्थानिक अनुक्रमणिका का उपयोग करने के लिए, आपको अपनी तालिका को असामान्य बनाना होगा ताकि प्रत्येक बहुभुज शीर्ष अपने स्वयं के रिकॉर्ड में संग्रहीत हो।

फिर SPATIAL INDEX बनाएं उस क्षेत्र पर जिसमें कोने के निर्देशांक होते हैं और बस यह प्रश्न जारी करते हैं:

SELECT  DISTINCT polygon_id
FROM    vertices
WHERE   MBRContains(vertex, LineString(Point(@X - @distance, @Y - @distance), Point(@X + @distance, @Y + @distance))

अगर आप UTM . स्टोर करते हैं तो चीजें और भी आसान हो जाएंगी अक्षांश और देशांतर के बजाय आपके डेटाबेस में निर्देशांक।



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. MySQL - मिन खोजें लेकिन शून्य नहीं

  2. पीडीओ तैयार बयानों से कच्ची एसक्यूएल क्वेरी स्ट्रिंग प्राप्त करना

  3. यूटीसी/जीएमटी टाइमज़ोन में एक java.util.Date को एक MySQL टाइमस्टैम्प फ़ील्ड में कैसे स्टोर करें?

  4. SQL कथन में चर नाम का उपयोग कैसे करें?

  5. डेबियन 5 (लेनी) पर MySQL रिलेशनल डेटाबेस का उपयोग करें