.NET'ten arcpy / python mu arıyorsunuz?


15

Python'un bir .NET ArcGIS Eklentisine veya Uzantısına nasıl entegre edilebileceğini gösteren mevcut örnekler var mı? .NET'te form olaylarından (örneğin düğme tıklamaları) çağırmak istediğiniz bir dizi python komut dosyası var. Ayrıca bir .NET formundan komut dosyasında değişkenleri ayarlamak mümkün olmak istiyorum.

Madde işareti ısırmalı ve bu komut dosyalarını .NET'te yeniden yazmalı mıyım yoksa python kodunu kaydırmanın basit bir yolu var mı?

Yanıtlar:


25

Arcpy'nin aslında ArcObjects çevresinde bir sarıcı olduğunu unutmayın. Ancak sadece yeniden yazmak istemediğiniz bazı Python betiklerini çağırmaya çalışıyorsanız, argümanlarınızla python yürütülebilir dosyasını çağıran bir işlem oluşturabilirsiniz.

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();

Bununla da çok güzel çok iş parçacıklı şeyler yapabileceğinizi unutmayın.


0

Sorunuzdan .NET'e ne kadar bağlı olduğunuzdan emin değilim, ancak Masaüstü için ArcGIS 10.1 (veya üstü) kullanıyorsanız, daha basit bir yaklaşımın bir Python Eklentisi kullanmak olacağını düşünüyorum :

ArcGIS 10.1, Python'u Masaüstü eklentilerini yazmak için kullanılan diller listesine ekleyerek masaüstü işlevselliğini genişletmek için kolay bir çözüm sunar. Python eklentilerinin geliştirilmesini kolaylaştırmak için Python Eklenti Sihirbazı'nı indirip kullanmanız gerekir. Sihirbaz, eklentinin çalışması için gereken tüm dosyaları oluşturur.

Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.