Erstellen eines Python Add-In-Werkzeugs

Erstellen eines Add-In-Werkzeugs

Ein Werkzeug funktioniert ähnlich wie eine Schaltfläche. Das Werkzeug erfordert jedoch zuerst eine Benutzerinteraktion mit der Desktop-Anwendung und führt dann basierend auf dieser Interaktion die Geschäftslogik aus. Das Werkzeug Vergrößern Vergrößern in ArcMap ist ein gutes Beispiel: Sie klicken oder ziehen zunächst ein Rechteck über eine Karte, und erst dann wird die Anzeige neu gezeichnet und die Inhalte im entsprechenden Bereich detaillierter angezeigt.

In diesem Thema erfahren Sie, wie Sie mithilfe des Python Add-In-Assistenten ein Werkzeug in einer neuen Werkzeugleiste erstellen. Bevor Sie mit dem Workflow beginnen, stellen Sie sicher, dass Sie ein ArcMap Add-In-Projekt erstellt haben und die Projekteinstellungen angegeben haben. Weitere Informationen finden Sie unter Erstellen eines Add-In-Projekts. Dieser Workflow gilt für das Erstellen eines Werkzeugs für ArcMap, Sie können den Prozess jedoch auch anwenden, um ein Werkzeug zur einer beliebigen ArcGIS for Desktop-Anwendung hinzuzufügen. In diesem Thema wird der Prozess zum Erstellen eines einfachen Werkzeugs für "Netz erstellen" näher erläutert. Die vom Add-In-Assistenten erstellte Python-Klasse wird dann näher untersucht, um die Eigenschaften und Methoden zu erläutern, die die Funktionen für das Werkzeug bereitstellen.

Zum Erstellen eines Add-In-Werkzeugs sind folgende Schritte erforderlich:

Schritte:
  1. Erstellen Sie eine Werkzeugleiste.

    Klicken Sie auf die Registerkarte Add-In Contents, und deklarieren Sie die Add-In-Anpassungen. Ein Werkzeug kann sich auf einer Werkzeugleiste befinden, aber nicht in einem Menü. Eine Anleitung zum Erstellen einer eigenen Werkzeugleiste finden Sie unter Erstellen einer Add-In-Werkzeugleiste.

  2. Erstellen Sie das Werkzeug.

    Klicken Sie mit der rechten Maustaste auf die neue Werkzeugleiste, und wählen Sie New Tool aus.

    Erstellen eines Add-In-Werkzeugs

    Ein Werkzeug verfügt über verschiedene Eigenschaften, die Sie einstellen können. In der folgenden Liste sind alle Eigenschaften mit einer kurzen Beschreibung aufgeführt. Diese Eigenschaften sind in der Datei config.xml für das Projekt gespeichert.

    Eigenschaft

    Beschreibung

    Caption (erforderlich)

    Legt den Titel des Werkzeugs fest. In der folgenden Abbildung sehen Sie, wie der Titel im ArcGIS Add-In-Manager verwendet wird, um die verschiedenen Arten von Anpassungen zu identifizieren (der Add-In-Typ ist in Klammern identifiziert):

    Eigenschaften des Netzwerkzeugs im Add-In-Manager

    In der nächsten Abbildung sehen Sie, wie der Titel als Text verwendet wird, um das Werkzeug auf der Werkzeugleiste zu identifizieren:

    Add-In-Werkzeug "Netz erstellen" in ArcMap

    Class (erforderlich)

    Die Python-Klasse, die das Werkzeug darstellt. In der Python-Klasse schreiben Sie die Geschäftslogik für das Werkzeug. Diese Klasse ist wichtig, da sie ausgeführt wird, wenn in einer Desktop-Anwendung auf das Werkzeug geklickt wird. Verwenden Sie die Python Benennungsregeln zum Erstellen der Klasse. Python-Klassen verwenden Groß- und Kleinschreibung in den Namen. In diesem Beispiel erstellen wir eine Klasse namens "CreateFishnet".

    ID (erforderlich)

    Der eindeutige Name, mit dem das Werkzeug identifiziert wird. Es ist möglich, dass Sie mehrere Werkzeuge für ein bestimmtes Projekt erstellen, und diese ID wird verwendet, um zwischen den verschiedenen Werkzeugen zu unterscheiden. Idealerweise sollten Sie die Standard-ID durch einen aussagekräftigeren Wert ersetzen. Die ID darf keine Leerzeichen enthalten. Sie können Unterstriche als Trennzeichen zwischen Wörtern verwenden. Verwenden Sie keine Python-Schlüsselwörter. Reservierte Wörter finden Sie in der Python-Dokumentation.

    ToolTip (optional)

    Eine kurze Beschreibung, die angezeigt wird, wenn der Mauszeiger in einer Desktop-Anwendung über dem Werkzeug pausiert.

    Message (optional)

    Eine ausführlichere Beschreibung der Funktionsweise des Werkzeugs. Ähnlich wie beim ToolTip wird diese Meldung zusammen mit dem ToolTip angezeigt, wenn der Mauszeiger über dem Werkzeug pausiert.

    Image (optional)

    Dabei sollte es sich um ein Bild mit 16x16 Pixeln handeln, welches das Werkzeug symbolisiert. Das Bild muss eines der folgenden Formate haben: .png, .gif oder .bmp. Das Bild wird in den Ordner "Images" im Add-In-Projekt kopiert.

    Der letzte Abschnitt des Werkzeugs sind Überschrift und Inhalt der Hilfe. Diese Eigenschaften ermöglichen Ihnen, Informationen bereitzustellen, die angezeigt werden, wenn ein Benutzer die kontextsensitive Hilfe aufruft. Dies sind Popup-Fenster, die so lange am Bildschirm angezeigt werden, bis der Benutzer auf eine andere Stelle klickt.

    Der Abschnitt der kontextsensitiven Hilfe besteht aus folgenden Eigenschaften:

    Eigenschaft

    Beschreibung

    Heading (optional)

    Gibt Informationen zum Inhalt der Hilfe an.

    Content (optional)

    Der Inhalt der Hilfe für das Werkzeug.

    Nachdem Sie die Eigenschaften eingegeben haben, klicken Sie zum Speichern auf die Schaltfläche Save unten im Assistenten. Daraufhin werden alle erforderlichen Dateien und Ordner im Arbeitsordner erstellt.

  3. Bearbeiten Sie das Python-Skript und aktualisieren die Python-Klasse, um die Funktion zum Erstellen eines Polygonnetzes einzubauen.

    Ein Interessenbereich wird definiert, indem Sie mit der Maus ein Rechteck aufziehen. Die Netzgröße ist auf 10 Zeilen x 10 Spalten festgelegt. Zum Hinzufügen der Funktion zum benutzerdefinierten Werkzeug führen Sie die folgenden Schritte aus:

    1. Bearbeiten Sie das Python-Skript im Ordner Install, der sich im Arbeitsordner befindet, den Sie mit dem Assistenten erstellt haben.

      Es sollte eine Klasse mit demselben Namen vorhanden sein, den Sie im Assistenten eingegeben haben. Benennen Sie diese Klasse nicht um, da der Klassenname in der Datei config.xml referenziert wird. Erläuterungen zu den einzelnen Funktionen und Eigenschaften der Klasse finden Sie unter Werkzeug-Klasse.

    2. Aktualisieren Sie die Funktionen wie unten dargestellt.

      Dieser Code liefert die Funktionalität zum Erstellen eines Polygonnetzes mit 10 Zeilen x 10 Spalten.

      def __init__(self):
          self.enabled = True
          self.cursor = 3
          self.shape = 'Rectangle'
          
      def onRectangle(self, rectangle_geometry):
          """Occurs when the rectangle is drawn and the mouse button is released.
          The rectangle is a extent object."""
      
          extent = rectangle_geometry
          # Create a fishnet with 10 rows and 10 columns.
          if arcpy.Exists(r'in_memory\fishnet'):
              arcpy.Delete_management(r'in_memory\fishnet')
          fishnet = arcpy.CreateFishnet_management(r'in_memory\fishnet',
                                  '%f %f' %(extent.XMin, extent.YMin),
                                  '%f %f' %(extent.XMin, extent.YMax),
                                  0, 0, 10, 10,
                                  '%f %f' %(extent.XMax, extent.YMax),'NO_LABELS',
                                  '%f %f %f %f' %(extent.XMin, extent.YMin, extent.XMax, extent.YMax), 'POLYGON')
          arcpy.RefreshActiveView()
          return fishnet
      
    3. Speichern Sie das Skript.
  4. Testen des Werkzeugs

    Nachdem Sie das Werkzeug erstellt und den Skriptcode hinzugefügt haben, müssen Sie die Add-In-Datei erstellen und testen, bevor Sie sie freigeben. Eine Anleitung dazu finden Sie unter Testen von Add-Ins.

  5. Nun können Sie das Add-In bereitstellen und freigeben.

    Eine Anleitung zum Bereitstellen und Freigeben eines Add-Ins finden Sie unter Freigeben von Add-Ins.

Verwandte Themen

9/11/2013