इस प्रश्न का उत्तर हां और नहीं है। पायथन में सब कुछ करने के लिए कुछ प्रयास के साथ संभव है कि आप नेट में कर सकते हैं, लेकिन आसान और संभव दो बहुत अलग चीजें हैं। उसके बाद, सबसे सरल व्याख्या है कोई , अजगर ऐड-इन्स नेट ऐड-इन्स के रूप में ज्यादा के रूप में नहीं कर सकते। हालांकि, पायथन ऐड-इन्स के कार्य को लागू करने और परीक्षण करने के लिए बहुत आसान और तेज़ हो सकते हैं।
विशुद्ध रूप से तकनीकी दृष्टिकोण से, आर्कगिस डेस्कटॉप ऐड-इन फ्रेमवर्क निम्नलिखित कार्यक्षमता प्रदान करता है:
- सामान्य डेस्कटॉप एकीकरण बिंदुओं और घटकों की एक श्रृंखला का वर्णन करने के लिए एक अच्छी तरह से परिभाषित, XML- आधारित स्कीमा: बटन, टूलबार, मेनू, उपकरण, बहु-आइटम मेनू और एक्सटेंशन, साथ ही साथ इनसे एक घोषित तरीके से आसानी से जुड़ने का एक तरीका आर्कगिस डेस्कटॉप के लिए आपका कोड
.esriaddin
डेस्कटॉप अनुकूलन कोड वितरित करने के लिए एक फ़ाइल प्रारूप और फ़ाइल संरचना ( )।
- स्थापित करने, सत्यापन और कैशिंग के लिए एक तंत्र
.esriaddins
, इसलिए यदि घायल ऐड-इन स्रोत फ़ाइल बदल गई है, तो यह परिवर्तित फ़ाइल को स्थानीय डेस्कटॉप ऐड-इन कैश में पुनः लोड करेगा।
- ऐड-इन में कोड के लिए सुरक्षा और प्रमाणीकरण तंत्र का एक सेट:
.esriaddin
फाइलों का डिजिटल हस्ताक्षर , ऐड-इन की स्थापना की अनुमति देने के लिए प्रमाणीकरण के किस स्तर पर प्रशासनिक नियंत्रण आवश्यक है।
यहां ऐड-इन फ्रेमवर्क का अभाव है, बटन आदि के पीछे व्यवहार या कार्यक्षमता का कोई औपचारिक अनुबंध है। जब आप आर्कजीआईएस के लिए .Net एसडीके स्थापित करते हैं, तो आपको अपने प्रोजेक्ट प्रबंधन संवादों में ऐड-इन विज़ार्ड्स के रूप में विज़ुअल स्टूडियो एकीकरण मिलता है। , प्रलेखन, कोड स्निपेट, आर्कोबजेक्ट्स बाइंडिंग, आदि। इसलिए एक बार जब आप प्रवेश बिंदु से अतीत में आ जाते हैं तो एड-इन फ्रेमवर्क प्रदान करता है। एनेट ऐड-इन आपको आर्कओबजेक्ट्स एपीआई के साथ बाकी के रास्ते पर जाने देता है जो इसे बंडल के साथ आता है। , साथ ही आम कार्यों के कोड स्निपेट की एक लाइब्रेरी युक्त है, जिसका उपयोग करने के लिए पहले से ही वहां मौजूद हैं। आर्कगिस में ऐसा कोई पायथन डेवलपर एसडीके नहीं है: अजगर की सभी कार्यक्षमताएं आर्कगिसस्क्रिप्टिंग / आर्कपी के माध्यम से उजागर होती हैं और उत्पाद में पहले से ही बंडल होती हैं। तो, जहां .Net SDK एक बड़े डाउनलोड के रूप में आता है, पायथन में सबसे नज़दीकी चीज़ अपेक्षाकृत छोटा ऐड-इन विज़ार्ड डाउनलोड है।
दूसरी ओर, अजगर है लेने वाली / COM इंटरफ़ेस लागू करने में सक्षम है, लेकिन अजगर से COM उपयोग कर किसी भी ArcGIS एसडीके के साथ बंडल या ArcGIS सहायता प्रणाली में दर्ज नहीं है। यदि आप आर्कगिस में विकसित करने के लिए नए हैं, तो आपको प्रवेश करने के लिए प्रवेश के लिए एक अवरोध पर्याप्त होना चाहिए जब तक कि आप वास्तव में नहीं जानते कि आप क्या कर रहे हैं। आप यहाँ Python में COM कर सकते हैं, लेकिन यह एक Turing Tarpit के काफी करीब है कि जब तक आप विशेषज्ञ-स्तरीय उपयोगकर्ता पहले से ही COM और ArcObjects के ins और बहिष्कार से परिचित नहीं हो जाते, तब तक समय व्यतीत करना कठिन होगा।
मैं आपको आर्कपी के साथ क्या कर सकता हूं, यह देखने की सलाह दूंगा । आप बहुत से कार्यों को स्वचालित कर सकते हैं जैसे कि जियोप्रोसेसिंग टूल को कॉल करना और मैप दस्तावेजों के बैच हेरफेर करना , और पायथन एड-इन आपको आर्कपी की आधार क्षमताओं के अलावा कुछ निश्चित परिभाषित घटना सिंक और कुछ संवाद नियंत्रण का उपयोग करने देता है। यदि आप Python में अपने कार्य को पूरा करने के तरीके के बारे में नहीं सोच सकते हैं तो प्रलेखन क्या कहता है (Python Add-In Wizard में उजागर नहीं होने वाली घटनाओं में आपको कुछ जटिल यूजर इंटरफेस इंटरैक्शन या हुक की जरूरत है या केवल ArcObjects में उपलब्ध कुछ का उपयोग करें) , तब अपना विकास एक .Net ऐड-इन में करें।
क्षमा करें यह कठिन और तेज़ हाँ या कोई उत्तर की तुलना में अधिक बारीक है, लेकिन इससे आपको कुछ असर होना चाहिए कि क्या आपको अपने ऐड-इन में पायथन या .Net मार्ग जाना चाहिए।
मुझे लगता है कि मुझे इस प्रकटीकरण को जोड़ना चाहिए: मैंने आर्कगिस में ऐड-इन के लिए पायथन की विशिष्ट कार्यक्षमता को बहुत डिजाइन और विकसित किया है।