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

भूगोल कॉलम पर STContains

मैंने आपके लिए लिखे कोड का उपयोग किया है (शेपफाइल से 'प्वाइंट' कॉलम को स्टोर करना ) अंक तालिका प्राप्त करने के लिए एक प्रारंभिक बिंदु के रूप में। वहां से:

select geography::STPolyFromText(
'POLYGON((' + 
    stuff((
        select ',' + cast(g.STPointN(t.i).Long as varchar(10)) + ' ' + cast(g.STPointN(t.i).Lat as varchar(10))
        from [a]
        cross join tally as [t]
        where t.i <= g.STNumPoints()
        order by i
        for xml path('')

    ), 1, 1, '') + '))'
    , 4326)

यह कोड कुछ चीजों को मानता है। पहला:जैसे ही आप क्षेत्र की सीमा के चारों ओर जाएंगे, आपके अंक क्रमित हो जाएंगे। यह मायने रखता है। कनेक्ट-द-डॉट्स पहेली के बारे में सोचें। सही चित्र प्राप्त करने के लिए, आपको उन्हें सही क्रम में करना होगा। दूसरे, पहले से संबंधित, उन्हें सही अभिविन्यास में होना चाहिए। बहुभुज बाएं हाथ के नियम का पालन करते हैं। अर्थात्, यदि आप बिंदुओं पर क्रम से चल रहे थे, तो आप उस क्षेत्र को परिभाषित कर रहे हैं जो आपके बाईं ओर है। इसलिए, यदि आप बिंदुओं को उल्टे क्रम में निर्दिष्ट करते हैं, तो आपको अपने क्षेत्र के अलावा सब कुछ मिलता है! आपको यह तुरंत पता चल जाएगा क्योंकि SQL 2012 से पहले, आप उन क्षेत्रों तक सीमित हैं जो पूरी तरह से एक गोलार्ध में समाहित हैं।

लेकिन अब मुझे यह पूछना है:जो प्रश्न आपने पहले पूछा था (जो कि मैं ऊपर से जुड़ा हुआ हूं), क्या आप उनमें पॉलीगॉन के साथ शेपफाइल्स प्राप्त कर रहे हैं? अगर ऐसा है, तो उसे स्टोर करें और इसे फिर से बनाने के सिरदर्द से खुद को बचाएं।




  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. SQL सर्वर के लिए शीर्ष 5 डेटा मॉडलिंग उपकरण

  2. मैं चयन कॉलम को एक चर में कैसे स्टोर करूं?

  3. SQL सर्वर में डेटाटाइम का समय भाग निकालने का सर्वोत्तम तरीका

  4. qt के साथ SQL Server 2008 से कैसे कनेक्ट करें?

  5. SQL सर्वर में अपवाद तालिका के साथ उचित/शीर्षक केस एक कॉलम