दो दिन पहले मैंने ईएसआरआई शेपफाइल्स में बहुभुज के कोने के लिए आंतरिक भंडारण आदेश के बारे में एक प्रश्न पूछा था। उस प्रश्न का उत्तर दिया गया था ( क्या पॉलीगॉन को दक्षिणावर्त या वामावर्त आकार में संग्रहीत किया जाता है? ) और इसका उत्तर एक पुरानी पोस्ट में भी दिया गया था ( बहुभुज निर्माण (दक्षिणावर्त घुमाव या नहीं) )
लेकिन अब मेरा प्रश्न अधिक सामान्य है, और मुझे नहीं पता कि इसका कोई अनूठा उत्तर है या नहीं। क्या घड़ी की दिशा केवल ESRI शेपफाइल्स या सामान्य जीआईएस प्रारूपों के लिए है? और जीआईएस सॉफ्टवेयर के लिए आंतरिक प्रतिनिधित्व के बारे में क्या? उदाहरण के लिए, अगर मैं QGIS का उपयोग करता हूं और मैं एक * .shp युक्त पॉलीगन्स पढ़ता हूं, तो मुझे लगता है कि बाहरी बाउंड का आंतरिक प्रतिनिधित्व मूल आकार-प्रकार की तरह दक्षिणावर्त है, लेकिन QGIS द्वारा समर्थित सभी फ़ाइल स्वरूपों के बारे में क्या है? और ArcGIS के लिए? और मामले में काउंटरकॉन्वाइज में संग्रहीत पॉलीगॉन के साथ एक फ़ाइल प्रारूप मौजूद होता है, अगर ये फाइलें QGIS, ArcGIS, आदि में लोड की जाती हैं, तो अभिविन्यास आंतरिक रूप से बदल जाता है, इसलिए यदि मैं PyQGIS का उपयोग करके डेटा पढ़ता हूं, उदाहरण के लिए, पॉलीगॉन दक्षिणावर्त हैं आदेश दिया?
मेरा उद्देश्य QGIS के लिए एक प्लगइन लिखना है, लेकिन डेटा का स्रोत ESRI शेपफाइल्स या अन्य प्रारूप हो सकता है। जैसा कि मुझे उनके azimuths का उपयोग करके बहुभुज के लगातार पक्षों के बीच के कोणों की जांच करने की आवश्यकता है, मुझे यह जानने की आवश्यकता है कि क्या आदेश दक्षिणावर्त है। एक समाधान प्रत्येक बहुभुज के क्षेत्र की गणना कर रहा है और, अगर मुझे सही ढंग से याद है, अगर यह सकारात्मक है, तो आदेश दक्षिणावर्त है और यदि नकारात्मक है तो वामावर्त है।
क्षेत्र संगणना एक गहन कार्य नहीं है, इसलिए यह मेरे प्लगइन को इतना धीमा नहीं करेगा। लेकिन क्यूजीआईएस के विशेष मामले में, कोई भी जानता है कि क्या यह मूल स्रोत में आदेश की परवाह किए बिना पॉलीगॉन को दक्षिणावर्त या वामावर्त में संग्रहीत करता है? अब तक मैं ESRI शेपफाइल्स और लेयर में निर्देशांक के साथ काम कर रहा हूं ।getFeatures ()। जियोमेट्री ()। asPolygon () बाहरी बॉर्डर के लिए क्लॉक वाइज और छेदों के लिए वामावर्त, जैसे कि मूल * .shp में संग्रहीत किया जाता है।
Polygons are oriented correctly. (Exterior ring boundaries must be oriented counterclockwise, and interior ring boundaries must be oriented clockwise.)
जिसका अर्थ है कि Oracle काउंटरक्लॉकवाइज है।