weltAufbau Shape-Datei

<< Klicken um das Inhaltsverzeichnis anzuzeigen >>

Navigation:  technische Referenz >

weltAufbau Shape-Datei

Previous pageReturn to chapter overviewNext page

Die detaillierte technische Spezifikation von Shape-Dateien aller Typen (Punkt, Linie, Polygon, Multipoint etc.) kann hier von der ESRI-Homepage als PDF-Datei abgerufen werden. Der Aufbau der Shape-Dateien vom Typ Punkt wird im folgenden erklärt. Dies stellt die einfachste Variante einer Shape-Datei dar und ist für Fremdprogramme, die Daten an den Karten-Explorer übergeben wollen am relevantesten.

Ein Shape-Datei besteht obligatorisch aus 3 Dateien:

1.*.shp (z.B. rinder.shp) enthält die Geometrie der darzustellenden Objekte und differiert im Aufbau stark mit dem Typ der Shape-Datei. Für den Typ 1=Punkt jedoch ist der Aufbau einfach strukturiert, da ein Punkt hier immer aus 2 Koordinaten besteht.

2.*.shx (z.B. rinder.shx) ist eine Index-Datei mit festem Aufbau, die einen Zeiger auf jedes Element in der Geometrie-Datei (*.shp) enthält. Da die Geometrie-Datei i.d.R. nicht fest strukturiert ist, Polygone beispielsweise zwischen 3 und ∞ viele Punkte enthalten können, ist diese Datei für den nichtsequentiellen Zugriff auf die Geometriedaten unerlässlich.

3.*.dbf (z.B. rinder.dbf) stellt eine dBase-Datei dar, die die Attribute, die mit dem Geo-Objekt assoziiert sind, enthält.

Zusätzlich können u.a. Dateien (*.sbn, *.sbx, *.prj, *.avl, *.lyr, *.lyr.xml, *.cpg) mit einer Shape-Datei assoziiert sein, die z.B. Attribute-Indizes, räumliche Indizes, Angaben über Projektion, Legenden, Einfärbungen und Codepages enthalten. Diese Dateien sind fakultativ und werden hier nicht näher erläutert.

Geometrie-Datei (*.shp)

Datei-Header (100 Byte)

Datensatz-Header (8 Byte)

Datensatz-Inhalt (? Byte, bei Punkt 20 Byte)

Datensatz-Header ...

Datensatz-Inhalt ...

Datei-Header

Position

Feld

Wert

Typ

Byte-Order

Byte 0

Datei-Code

9994

Long (Integer)

Big (endian)

Byte 4..23

nicht benutzt

0

Long (Integer)

Big

Byte 24

Dateilänge

Länge in 16-bit-Words

bei Punkt 50+14*Datensätze

Long (Integer)

Big

Byte 28

Version

1000

Long (Integer)

Little

Byte 32

Shape-Typ

1=Punkt

(3=Linie, 5=Polygon, 8=Multipoint)

Long (Integer)

Little

Byte 36

Ausdehnung

Xmin

Real8 (Double)

Little

Byte 44

Ausdehnung

Ymin

Real8 (Double)

Little

Byte 52

Ausdehnung

Xmax

Real8 (Double)

Little

Byte 60

Ausdehnung

Ymax

Real8 (Double)

Little

Byte 68..99

nicht benutzt

0

Real8 (Double)

Little

Der Karten-Explorer kann ungenutzte Bereiche des Datei-Headers verwenden, um die Angaben zur Projektion (verweisKoordinatensystem, Bezugssystem und Streifen) mit der Shape-Datei zu speichern.

Position

Feld

Wert

Typ

Byte-Order

Byte 88

Koordinatensystem

0=unbekannt

1..n verweisKonstanten

Long (Integer)

Little

Byte 92

Bezugssystem

0=unbekannt

1..n verweisKonstanten

Long (Integer)

Little

Byte 96

Streifen

0=unbekannt

1..n verweisKonstanten

Long (Integer)

Little

Datensatz-Header

Position

Feld

Wert

Typ

Byte-Order

Byte 0

Datensatz

Datensatz-Nummer

Long (Integer)

Big

Byte 4

Länge

Länge des Datensatzes in 16-bit-Words, beim Typ Punkt immer 10 Byte, bei Polygon usw. ist der Wert von der Anzahl der Punkte abhängig.

Long (Integer)

Big

Datensatz-Inhalt bei Typ Punkt

Position

Feld

Wert

Typ

Byte-Order

Byte 0

Shape-Typ

1

Long (Integer)

Little

Byte 4

X

X bzw. Rechtswert

Real8 (Double)

Little

Byte 12

Y

Y bzw. Hochwert

Real8 (Double)

Little

Shape-Dateien verwenden für alle Variablen, die die Dateiorganisation betreffen (Datei- und Datensatzlänge, Offsets) das Mainframe-Format "Big Endian" (Sun, Motorola), für alle datenbezogenen Adressen das Format "Little Endian" (Intel).

Big Endian: Ein Datenformat für die Übertragung oder Speicherung binärer Daten, in denen das höchstwertige Byte an erster Stelle kommt. Intel-basierte Systeme verwenden einen entgegen gesetzte Byte-Reihenfolge, so dass ggf. folgende Konvertierung für Variablen vom Typ Long vorgenommen werden muss:

Byte1Byte2Byte3Byte4 > Byte4Byte3Byte2Byte1

Index-Datei (*.shx)

Index-Datei-Header

Der Datei-Header ist identisch mit dem der Geometriedatei, wobei die Dateilänge sich aus 50+4*Anzahl der Datensätze ergibt.

Index-Datensatz

Position

Feld

Wert

Typ

Byte-Order

Byte 0

Offset

Anzahl der 16-bit-Words vom Dateistart bis zum Beginn des Datensatzes in der Geometrie-Datei

 

bei Punkt: 50*(Datensatz-1)*14

Long (Integer)

Big

Byte 4

Länge

Länge des Datensatzes in 16-bit-Words in der Geometrie-Datei (bei Punkt immer 10)

Long (Integer)

Big

dBase-Datei (*.dbf)

Es handelt sich um eine dBase-Datei im Format dBase III oder dBase IV. Jeder Datensatz entspricht einem Geo-Objekt. Anzahl und Reihenfolge der Datensätze in Geometrie-Datei und dBase-Datei stimmen überein.