Programmierung mit ArcObjects - PowerPoint PPT Presentation

1 / 26
About This Presentation
Title:

Programmierung mit ArcObjects

Description:

Programmierung mit ArcObjects Proseminar Geoinformation II Frank M nster Inhalt 1. Einf hrung - Was ist ArcObjects? Was ist die Component Object Model (COM ... – PowerPoint PPT presentation

Number of Views:87
Avg rating:3.0/5.0
Slides: 27
Provided by: fmue1
Category:

less

Transcript and Presenter's Notes

Title: Programmierung mit ArcObjects


1
Programmierung mit ArcObjects
Proseminar Geoinformation II
Frank Münster
2
Inhalt
  • 1. Einführung - Was ist ArcObjects?
  • Was ist die Component Object Model
    (COM)-Architektur?
  • 2. Einbinden von Funktionen in ArcMap
  • Aufgabe 1 Custom Toolbar
  • 3. Programmierung
  • Programmiersprachen / Syntax
  • ArcObjects Developer Help
  • Programmbeispiel Zoom in
  • Aufgabe 2 Zoom out / Message Box

3
Was ist ArcObjects?
  • ArcObjects ist eine Bibliothek von Klassen, aus
    der die ArcGis-Software besteht.
  • ArcObjects ist nach Microsofts COM (Component
    Object Model)-Architektur aufgebaut
  • Es ist also keine Programmiersprache
  • Programmierung Visual Basic, VBA, C, u.a.

4
Anwendungsmöglichkeiten
  • Erweiterung der Software
  • Hinzufügen neuer Funktionen
  • Vereinfachen häufig genutzter Vorgänge (Makros)

5
Die COM-Architektur
  • COM ist eine Art Standard oder Norm der
    Software-Entwicklung.
  • Genauer Es ist eine Client / Server-Architektur
  • Server stellt Funktionalitäten bereit und der
    Client nutzt diese.
  • COM ermöglicht die Kommunikation zwischen
    Objekten auf binärer Ebene (Maschinencode)
  • Vorteil Objekte können auf binärer Ebene
    wiederverwendet werden, Weiterentwickler
    brauchen keinen Zugang zum Quelltext.
  • Client muß lediglich wissen, welche Funktionen
    vom Server zur Verfügung gestellt werden, um sie
    durch Methodenaufrufe zu nutzen.

6
Interface-Based-Programming
  • Objekte besitzen Schnittstellen (Interfaces).
  • Kommunikation zwischen den Objekten läuft über
    ihre Schnittstellen ab.
  • Das Interface definiert, was ein Objekt tun
    kann, die Klasse definiert, wie es getan wird.
  • Wie es intern getan wird, braucht der
    Programmierer nicht zu wissen.

7
Einbinden von Funktionen
  • Neue Funktionen müssen irgendwie in die Software
    integriert werden, um sie nutzbar zu machen.
  • Erzeugen einer neuen Toolbar

8
Erzeugen einer Toolbar
Menü Tools
Customize clicken...
9
Erzeugen einer Toolbar
Toolbars-Karte...
New... clicken...
OK...
10
Funktionen hinzufügen
Neue Toolbar
Commands-Karte...
Funktionen aus dem Commands-Menü per Drag
Drop auf die neue Toolbar übertragen...
11
Icons ändern
Bei offenem Customize-Fenster Rechtsclick auf das
Icon...
Change Button Image...
12
Aufgabe 1
  • Kopieren Sie die Dateien Europa4.mxd und
    Europa4.mxt aus dem Verzeichnis V\F_M in Ihr
    Home-Verzeichnis.
  • Öffnen Sie Europa4.mxt (Template) in ArcMap.
  • Erzeugen Sie eine Toolbar, speichern Sie diese in
    Europa4.mxt. (Tools-Menü, Customize clicken)
  • Fügen Sie die Funktion Pan hinzu, ändern Sie
    danach das Button-Image.

13
Programmierung
  • Durch die COM-Architektur ist die Entwicklung mit
    ArcObjects relativ unabhängig von der
    Programmiersprache.
  • Programmiert werden kann u.a. mit C, Visual
    Basic, VBA, etc.

14
Programmierung
  • In das System ist bereits ein Microsoft
    Visual-Basic-Editor integriert.
  • Die hier verwendete Sprache ist jedoch nicht
    Visual Basic, sondern Visual Basic for
    Applications (VBA).
  • Der Unterschied Mit Visual Basic können
    eigenständige Programme erstellt werden, VBA
    funktioniert jedoch nur in der entsprechenden
    Applikation (hier ArcMap).
  • Die Syntax ist jedoch die gleiche wie bei Visual
    Basic.

15
Visual Basic - Syntax (1)
Sub kennzeichnet den Beginn einer Prozedur oder
eines Programms, End Sub das Ende. Mit dem
Apostroph lassen sich Kommentare markieren.
Sub Prozedur() Programmtext End Sub
Dim ... As ... ist die Variablen-deklaration in
VBA und VB. Die Variable i wird als ganze Zahl
eingeführt (Integer).
Dim i As Integer
16
Visual Basic - Syntax (2)
Zeiger Anstatt der üblichen Variablen-zuweisung
ohne Set wird hier in der Variablen pDoc ein
Zeiger auf das Objekt ThisDocument
gespeichert.
Set pDoc ThisDocument
Statt den aus Java bekannten geschweiften
Klammern werden in VB/ VBA die Kommandos einer
If-Anwei-sung duch Then und End If markiert.
If altb Then ... End If
17
Message Box
Um mit dem Benutzer in Dialog zu treten, ist die
aus Visual Basic stammende Message Box ein
wichtiges und einfach anzuwendendes Hilfsmittel.
18
Message Box - Beispiel
Dim Antwort As Integer Antwort
MsgBox(Meldung", vbYesNo, Titel") If Antwort
vbYes Then ... End If
Art der Box
Text in der Titelzeile
Text in der Box
19
Erzeugen eines Makro (1)
Tools-Menü...
Macros... clicken
20
Erzeugen eines Makro (2)
Macro name eintragen...
Create clicken...
  • Nach diesen Schritten öffnet sich automatisch der
    Visual Basic-Editor und man kann den Programmtext
    schreiben.

21
Erzeugen eines Makro (3)
Nach dem Erzeugen Makro ist unter Customize /
Commands in der Kategorie Macros verfügbar.
Von hier aus kann das Makro nun per Drag Drop
in eine Custom Toolbar integriert werden.
22
ArcObjects Developer Help
Programmegt Gisgt ArcGISgt ArcObjects Developer Help
23
ArcObjects Developer Help
24
ArcObjects Developer Help
  • Detaillierte Beschreibung aller Klassen,
    Interfaces, Methoden usw.
  • Teilweise mit Programmbeispielen
  • Wichtig zum Verständnis vorhandener Quelltexte
  • Nützlich um neue Methoden und Möglichkeiten des
    Systems kennenzulernen.

25
Programmbeispiel
Sub NeuerZoom() Dim pDoc As IMxDocument Dim
pEnv As IEnvelope Set pDoc ThisDocument Set
pEnv pDoc.ActiveView.Extent pEnv.Expand 0.5,
0.5, True pDoc.ActiveView.Extent
pEnv pDoc.ActiveView.Refresh End Sub
26
Aufgabe 2
  • Unter V\F_m liegt das vorherige Beispiel als
    Macro.txt vor. Erzeugen Sie ein Macro und
    kopieren Sie das Beipiel hinein.
  • Integrieren Sie das Makro in Ihre Custom-Toolbar.
  • Der Programmtext soll nun so verändert werden,
    daß das Makro zunächst einzoomt, dann auf Anfrage
    hin (über die Message Box) wieder zurückzoomt.
  • Dim Antwort As Integer
  • Antwort MsgBox(Meldung", vbYesNo, Titel")
  • If Antwort vbYes Then ...
  • Tip Um herauszufinden, wie man herauszoomt,
    verwenden Sie ArcObjects Developer
    Help (Expand-Methode)!
Write a Comment
User Comments (0)
About PowerShow.com