โทรหา arcpy / python จาก. NET หรือไม่


15

มีตัวอย่างที่แสดงว่า python สามารถรวมเข้ากับ. NET ArcGIS Addin หรือนามสกุลได้หรือไม่? ฉันมีชุดของสคริปต์หลามที่ฉันต้องการโทรจากเหตุการณ์ฟอร์ม (เช่นการคลิกปุ่ม) ใน. NET ฉันต้องการตั้งค่าตัวแปรในสคริปต์จากรูปแบบ. NET

ฉันควรกัดสัญลักษณ์แสดงหัวข้อย่อยและเขียนสคริปต์เหล่านี้ใหม่ใน. NET หรือมีวิธีที่ง่ายต่อการตัดโค้ดไพ ธ อนหรือไม่?

คำตอบ:


25

โปรดทราบว่า Arcpy นั้นเป็นตัวหุ้มรอบ ArcObjects แต่ถ้าคุณแค่พยายามเรียกใช้สคริปต์ Python บางตัวที่คุณไม่ต้องการเขียนใหม่คุณสามารถวางกระบวนการที่เรียก python ที่สามารถเรียกทำงานได้ด้วย args ของคุณ

var startInfo = new ProcessStartInfo() {
   CreateNoWindow = false,
   UseShellExecute = false,
   FileName = pathToPythonRuntime,
   WindowStyle = ProcessWindowStyle.Hidden,
   Arguments = pathToYourPythonScriptYouDoNotWantToRewrite+" "+yourOtherArgsEtc
 };
var exeProcess= Process.Start(startInfo);
//If you need synchronous execution you can do this
exeProcess.WaitForExit();

โปรดทราบว่าคุณสามารถทำมัลติเธรดที่เจ๋ง ๆ ได้เช่นกัน


0

จากคำถามของคุณฉันไม่แน่ใจว่าคุณแต่งงานกับ. NET อย่างไร แต่ถ้าคุณใช้ ArcGIS 10.1 (หรือใหม่กว่า) สำหรับเดสก์ท็อปฉันคิดว่าวิธีที่ง่ายกว่าคือการใช้Python AddIn :

ArcGIS 10.1 แนะนำ Python ในรายการภาษาสำหรับการเขียนโปรแกรมเสริมบนเดสก์ท็อปทำให้คุณมีทางออกที่ง่ายในการขยายการทำงานของเดสก์ท็อป เพื่อให้การพัฒนา Python เพิ่มเติมง่ายขึ้นคุณต้องดาวน์โหลดและใช้ Python Add-In Wizard เพื่อประกาศประเภทของการปรับแต่ง ตัวช่วยสร้างจะสร้างไฟล์ที่จำเป็นทั้งหมดที่จำเป็นสำหรับการเพิ่มเข้าใช้งาน

โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.