Title: Programmierung mit ArcObjects
1Programmierung mit ArcObjects
Proseminar Geoinformation II
Frank Münster
2Inhalt
- 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
3Was 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.
4Anwendungsmöglichkeiten
- Erweiterung der Software
- Hinzufügen neuer Funktionen
- Vereinfachen häufig genutzter Vorgänge (Makros)
5Die 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.
6Interface-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.
7Einbinden von Funktionen
- Neue Funktionen müssen irgendwie in die Software
integriert werden, um sie nutzbar zu machen. - Erzeugen einer neuen Toolbar
8Erzeugen einer Toolbar
Menü Tools
Customize clicken...
9Erzeugen einer Toolbar
Toolbars-Karte...
New... clicken...
OK...
10Funktionen hinzufügen
Neue Toolbar
Commands-Karte...
Funktionen aus dem Commands-Menü per Drag
Drop auf die neue Toolbar übertragen...
11Icons ändern
Bei offenem Customize-Fenster Rechtsclick auf das
Icon...
Change Button Image...
12Aufgabe 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.
13Programmierung
- 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.
14Programmierung
- 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.
15Visual 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
16Visual 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
17Message Box
Um mit dem Benutzer in Dialog zu treten, ist die
aus Visual Basic stammende Message Box ein
wichtiges und einfach anzuwendendes Hilfsmittel.
18Message 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
19Erzeugen eines Makro (1)
Tools-Menü...
Macros... clicken
20Erzeugen eines Makro (2)
Macro name eintragen...
Create clicken...
- Nach diesen Schritten öffnet sich automatisch der
Visual Basic-Editor und man kann den Programmtext
schreiben.
21Erzeugen 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.
22ArcObjects Developer Help
Programmegt Gisgt ArcGISgt ArcObjects Developer Help
23ArcObjects Developer Help
24ArcObjects 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.
25Programmbeispiel
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
26Aufgabe 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)!