ArcGIS wendet beim Herstellen einer Verbindung mit einer Datenquelle bestimmte Regeln an. Wenn ArcGIS eine Verbindung mit einer Datenbank herstellt und Daten in dieser liest, gilt Folgendes:
Objektnamen
Datenbankmanagementsysteme haben unterschiedliche Definitionen von zulässigen Zeichen für Objektnamen. Die meisten müssen mit einem Buchstaben beginnen und dürfen keine Leerzeichen, umgekehrte Schrägstriche oder reservierte DBMS-Schlüsselwörter enthalten. Einige lassen Sonderzeichen wie Schrägstriche (/), Unterstriche (_), Dollarzeichen ($), Bindestriche (-), Punkte (.) oder Groß- und Kleinschreibung zu. In manchen Fällen lässt das DBMS die Verwendung von Sonderzeichen und reservierten Schlüsselwörtern zu oder erzwingt die Verwendung von Groß- oder Kleinbuchstaben in Namen, wenn Sie den Objektnamen in Trennzeichen wie Anführungszeichen angeben.
Objektnamen werden in ArcGIS jedoch nicht durch Trennzeichen getrennt. Erstellen Sie keine Tabellen, Feature-Classes, Datenbanken, Benutzer*, Rollen oder andere Objektnamen, die Trennzeichen erfordern, wenn sie mit ArcGIS verwendet werden. Das Objekt wird in der Datenbank erstellt, Sie können jedoch nicht über ArcGIS darauf zugreifen.
*SQL Server-Benutzernamen, die Sonderzeichen enthalten, sind durch Trennzeichen getrennt, um Active Directory Groups- und Windows Authenticated-Anmeldenamen vollständig zu unterstützen.
Namenslänge
ArcGIS kann Datenbankobjekte wie Tabellen, Sichten und Benutzer lesen und (in manchen Fällen) erstellen. Die maximale in ArcGIS zulässige Namenslänge ist hier aufgelistet.
Bei der aufgeführten Zeichenanzahl wird davon ausgegangen, dass ANSI-Text verwendet wird. UTF-8-Zeichen verwenden mindestens doppelt so viele Byte wie ANSI-Zeichen, sodass sich die Anzahl der zulässigen Zeichen reduziert.
ALTIBASE | Dameng | DB2 | Informix | Netezza | Oracle | PostgreSQL | SAP HANA | SQL Server | Teradata | |
---|---|---|---|---|---|---|---|---|---|---|
Datenbankname | 31 | 31 | 8 | 31 | 31 | 30 | 31 | 31 | 31 | 31 |
Feldname (Spaltenname) | 31 | 31 | 31 | 31 | 31 | 30 | 31 | 31 | 31 | 31 |
Indexname | 40 | 128 | 128 | 128 | n. z. | 30 | 63 | 127 | 128 | 128 |
Kennwort | 22 (ALTIBASE unter Windows) 16 (ALTIBASE unter Nicht-Windows-Betriebssystemen) | 31 | 31 | 31 | 31 | 31 | 31 | 127 | 31 | 30 |
Tabellen- oder Feature-Class-Name | 40 | 128 | 128 | 128 | 128 | 30 | 63 | 127 | 128 | 128 |
Benutzername | 31 | 31 | 30 | 31 | 31 | 30 | 31 | 31 | 31 | 31 |
Name der Sicht | 40 | 128 | 128 | 128 | 128 | 30 | 63 | 127 | 128 | 128 |
Geometrieüberprüfung
Wenn Sie Daten in einer Datenbank mit einem ArcGIS-Client erstellen, überprüft ArcGIS die Geometrie basierend auf bestimmten Regeln. Wenn die Geometrie, die Sie in einem ArcGIS-Client konstruieren, ungültig ist, lässt ArcGIS nicht zu, dass Sie sie in die Geodatabase einfügen.
Die Konstruktorfunktionen "ST_Geometry" von Esri und IBM und die ArcGIS-API nutzen die Esri Shape-Bibliothek zur Überprüfung von Geometriedaten bei der Erstellung des Features. Daher werden auch dann, wenn Sie ein "ST_Geometry"-Shape von Esri und IBM mit SQL erstellen, Validierungsregeln angewendet und ungültige Geometrien nicht in die Datenbank festgeschrieben.
Andere räumliche Datentypen wie "SDO_Geometry", PostGIS-Geometrie und Microsoft SQL Server-Geometrie oder -Geographie haben eigene Konstruktorfunktionen und verwenden eigene Regeln zur Überprüfung der Geometrie. Diese Regeln entsprechen möglicherweise nicht denen, die von ArcGIS angewendet wurden. ArcGIS-Clients überprüfen die Geometrie, wenn die Daten gelesen werden, und zeigen keine Geometrien an, die die Validierungsregeln der ArcGIS-Geometrie verletzen. Wenn Sie eine Verbindung mit einer Datenbank herstellen, die Daten enthält, die außerhalb von ArcGIS erstellt wurden, müssen Sie die von ArcGIS angewendeten Regeln beachten.
Validierungsregeln für Punkte
- Die Fläche und die Länge von Punkten entspricht 0,0.
- Der Envelope eines einzelnen Punktes ist gleich den XY-Werten des Punktes.
- Der Envelope eines Multipart-Punktes entspricht dem kleinsten umgebenden Rechteck.
Validierungsregeln für einfache Linien oder Linestrings
- Jedes Element muss mindestens zwei verschiedene Punkte haben.
- Kein Teil darf sich selbst schneiden. Die Ausgangs- und Endpunkte können gleich sein, aber der sich ergebende Ring wird nicht als Polygon behandelt.
- Teile dürfen sich an den Endpunkten berühren.
- Die Länge ist die Summe aller Teile.
Validierungsregeln für Linien oder Spaghetti-Zeichenfolgen
- Linien dürfen sich schneiden.
- Jedes Element muss mindestens zwei verschiedene Punkte haben.
- Die Länge ist die Summe aller Teile.
Validierungsregeln und -vorgänge für Polygone
- Dangles sind ungültig.
- Für Liniensegmente, die das Polygon bilden, wird überprüft, ob sie geschlossen sind (Z-Koordinaten an Start- und Endpunkten müssen gleich sein) und sich nicht schneiden.
- Bei Polygonen mit Löchern müssen sich die Löcher vollständig innerhalb der äußeren Grenze befinden. Alle Löcher, die außerhalb der äußeren Grenze liegen, sind ungültig.
- Ein Loch, das eine äußere Grenze an einem einzelnen gemeinsamen Punkt berührt, wird in eine Inversion des Polygons konvertiert.
- Mehrere Löcher, die sich an gemeinsamen Punkten berühren, werden zu einem einzelnen Loch kombiniert.
- Multipart-Polygone dürfen sich nicht schneiden. Zwei Teile dürfen sich jedoch an einem Punkt berühren.
- Multipart-Polygone dürfen keine gemeinsame Grenze haben.
- Falls zwei Ringe über eine gemeinsame Grenze verfügen, werden sie zu einem Ring zusammengeführt.
- Der gesamte Geometrieumfang, einschließlich der Grenzen aller Löcher in Kreisringpolygonen, wird berechnet und als Länge der Geometrie gespeichert.
- Die Fläche wird berechnet.
- Der Envelope wird berechnet.
- Die Punkte eines Polygons werden gegen den Uhrzeigersinn gespeichert, obwohl ArcGIS-Clients Punkte in beide Richtungen zurückgeben können. Wenn Sie ein Polygon erzeugen, das Koordinaten im Uhrzeigersinn enthält, ändert ArcGIS die Rotation, um sicherzustellen, dass die Koordinaten eine Richtung gegen den Uhrzeigersinn aufweisen.
In diesem Beispiel ist der Startpunkt "a", und die richtige Koordinatenbeschreibung lautet "a,b,c,d,a".
- Ein Polygon kann Inversionen aufweisen. Dabei handelt es sich um Leerräume im Polygon, die die äußere Grenze berühren.
- Umgekehrte Polygone weisen einen inneren Ring auf, der die äußere Grenze berührt. Diese werden nicht als Kreisringpolygone angesehen.
- Wenn ein Polygon ein Kreisringloch hat, wird die äußere Grenze zuerst gelesen. Die Punkte der Löcher werden in entgegengesetzter Richtung zur äußeren Grenze gespeichert.
In der folgenden Abbildung wird die äußere Grenze als "a,b,c,d,a" beschrieben, und das Loch wird als "e,f,g,h,e" beschrieben. Das Feature wird für das gesamte Polygon als a,b,c,d,a,e,f,g,h,e gespeichert.
- Wenn sich zwei Löcher an einem Punkt berühren, werden sie als ein Loch behandelt, nicht als zwei.
In diesem Beispiel sind die zwei inneren Flächen ein einzelnes Loch, weil sie den gemeinsamen Punkt "g" aufweisen.
- Die Kombination aus Polygonen und Polygonen mit Löchern kann relativ komplex werden. Dies ist in der nächsten Grafik dargestellt. Die äußere Grenze ist ein See mit einer Insel. Die Insel verfügt über einen kleinen See.
Es ist möglich, diese Polygone als ein, zwei oder drei Features darzustellen. Sie können jedes Polygon als getrenntes Feature speichern. Der größere See ist ein Kreisringpolygon. Die Grenze des großen Sees ist die äußere Grenze, während die Insel die Grenze des einzelnen Kreisringlochs ist. Die Insel ist ebenfalls ein Kreisringpolygon. Die Grenze der Insel ist die äußere Grenze, und der kleine See ist das Loch. Der kleine See ist ein einzelnes Polygon.
Werden die Seen als die entscheidenden Features angesehen, steht ein Feature mit einem Loch für den großen See und ein zweites Shape für den kleinen See. Sie können zum Darstellen des Features auch ein Multipart-Polygon verwenden. Der erste Polygon-Teil ist der große See mit einem Kreisringloch, das die Insel darstellt. Der zweite Teil ist der kleine See.
- Nil-Geometrien sind gültig und fungieren als Platzhalter. Sie ermöglichen eine Attributzeile, ohne entsprechende Geometrie. Ein Beispiel, bei dem sich eine leere Geometrie ergibt, ist eine Anforderung für den Schnittpunkt von zwei Polygonen, die sich nicht schneiden.
Da sich die Flächen A und B nicht berühren, ergibt sich für eine Schnittpunktabfrage eine leere Geometrie.
- Features haben räumliche Dimensionen. Ein Feature, das nur über XY-Koordinaten verfügt, ist zweidimensional. Ein Feature, das über Z-Koordinaten oder Messwerte verfügt, ist dreidimensional. Außerdem kann ein Feature über einen leeren Messwert verfügen.
Räumliche Metadaten
Geodatabases speichern Metadaten zu den räumlichen Daten, die sie enthalten. ArcGIS-Clients können Informationen zum Entitätstyp der Feature-Class (z. B. Punkte, Linien oder Polygone), zur Dimensionalität (X-, Y- Z- oder M-Koordinaten ), zum Raumbezug, zur eindeutigen Kennung und zur Feature-Class-Ausdehnung aus Geodatabase-Systemtabellen lesen. Dieselben Tabellen sind nicht verfügbar, wenn ArcGIS eine Verbindung mit einer Feature-Class in einer Datenbank herstellt. Aus diesem Grund muss ArcGIS diese Informationen aus anderen Quellen abrufen.
Wenn Sie eine Feature-Class (räumliche Tabelle) in ArcMap ziehen, wird ein Abfrage-Layer erstellt. Zum Definieren des Abfrage-Layers führt ArcMap die folgenden Schritte aus:
- Aus der Datenbank werden Informationen über die räumliche Tabelle abgerufen, z. B. Dimensionalität, Raumbezug und Geometrietyp.
- Wenn diese Informationen für die Tabelle als Ganzes nicht definiert sind, liest ArcMap die erste Zeile der Tabelle und nutzt die Informationen aus diesem Feature.
- Können Raumbezug, Geometrietyp oder Dimensionalität anhand der ersten Zeile nicht bestimmt werden, z. B. wenn die Tabelle keine Daten enthält oder die Zeile einen benutzerdefinierten Raumbezug verwendet, werden Sie zur Eingabe dieser Informationen für die Layer-Definition aufgefordert.
- ArcMap fragt die Datenbank nach einer Spalte ungleich NULL ab, die als eindeutige Kennung (ObjectID) für die Zeilen in dieser Tabelle verwendet werden kann. Kann keine geeignete Zeile gefunden werden, werden Sie aufgefordert, eine ObjectID für die Tabelle zu definieren.
- Als letztes berechnet ArcMap die Ausdehnung des Layers, wenn Sie diesen der Karte hinzufügen.
Da die Anzeige in der Karte auf einem Abfrage-Layer basiert, können Sie die Definition des Abfrage-Layers öffnen und ändern. Wenn beispielsweise die Feature-Class Punkte und Polygone enthält, können Sie die Definition des Abfrage-Layers öffnen und den anzuzeigenden Geometrietyp auswählen. Das Gleiche gilt, wenn die Feature-Class mehrere räumliche Spalten enthält. Auch hier können Sie die Definition des Abfrage-Layers öffnen und die Abfrage so ändern, dass sie stattdessen eine der anderen räumlichen Spalten enthält. Beachten Sie jedoch, dass die Abfrage nicht so geändert werden kann, dass nicht unterstützte Datentypen angezeigt werden.