Räumliche SQL Server-Datentypen und ArcGIS

Geodatabases unterstützen das Speichern von Vektordaten mithilfe der Microsoft-Datentypen "geometry" und "geography" in Microsoft SQL Server. Diese Typen sind automatisch in SQL Server verfügbar und erfordern keine separate Installation. Sie haben außerdem die Möglichkeit, Datenbanktabellen, die Felder (Spalten) vom Typ "Geometry" oder "Geography" enthalten, über ArcGIS aufzurufen.

Verwenden Sie den Geometriespeichertyp mit ArcGIS, wenn Folgendes zutrifft:

  • Das Koordinatensystem, das Sie verwenden möchten, ist kein geographisches Koordinatensystem oder ist nicht im SQL Server-Data Dictionary definiert.
  • Sie möchten Z- oder M-Werte mit dem Shape speichern.

Verwenden Sie den Geographiespeichertyp mit ArcGIS, wenn Folgendes zutrifft:

  • Das Koordinatensystem, das Sie verwenden möchten, ist im SQL Server-Data Dictionary definiert.
  • Die Daten decken große räumliche Ausdehnungen ab, und Sie müssen SQL-Flächen- und -Längenberechnungen verwenden.
  • Sie müssen die Interpolation für große elliptische Bögen für räumliche SQL-Abfragen verwenden.

    Die SQL-Flächen und -Längenberechnungen, die Linieninterpolation für große elliptische Bögen verwenden, können sich deutlich von der Planar-Linieninterpolation über große räumliche Ausdehnungen unterscheiden.

Verwenden von Konfigurationsschlüsselwörtern zum Angeben räumlicher Datentypen

Standardmäßig verwenden Geodatabases in SQL Server den räumlichen Datentyp "geometry". Um den geography-Typ für die Feature-Class-Speicherung in Geodatabases in SQL Server zu verwenden, müssen Sie einen der folgenden Schritte ausführen:

  • Wenn die meisten Benutzer meistens den geography-Typ für die räumlichen Daten verwenden, ändern Sie GEOMETRY_STORAGE-Konfigurationsparameter unter dem DEFAULTS-Konfigurationsschlüsselwort in GEOGRAPHY. Standardmäßig verwenden alle in der Geodatabase erstellten Feature-Classes den geography-Typ. Anweisungen dazu finden Sie unter Ändern von Konfigurationsschlüsselwörtern.
  • Wenn nur ein Teil der Daten im geography-Typ gespeichert wird, geben Sie beim Erstellen von Features-Classes ein Konfigurationsschlüsselwort an, das den GEOMETRY_STORAGE-Konfigurationsparameter GEOGRAPHY bezeichnet. Das Schlüsselwort GEOGRAPHY wird bereitgestellt. Sie können jedoch auch ein benutzerdefiniertes Schlüsselwort erstellen.

Wählen Sie beim Erstellen von Feature-Classes in einer SQL Server-Datenbank (nicht in einer Geodatabase) das Schlüsselwort "geometry" oder "geography" aus.

Registrieren einer vorhandenen räumlichen Tabelle bei der Geodatabase

Wenn Sie mit einer Anwendung eines Drittanbieters oder mit SQL Tabellen erstellt haben, die in der Datenbank, in der die Geodatabase gespeichert wird, Felder mit räumlichen Datentypen von SQL Server enthalten, können Sie diese Tabellen bei der Geodatabase registrieren, um die Geodatabase-Funktionalität (z. B. Beziehungsklassen, Topologie, Versorgungsnetze, Parcel-Fabrics) nutzen oder Subtypes, Standardwerte, Domänen oder Validierungsregeln verwenden zu können. Hierzu müssen die Tabellen die folgenden Voraussetzungen erfüllen:

  • Der Benutzer, von dem die Tabelle registriert wird, muss deren Besitzer sein.
  • Die Tabelle muss ein einzelnes räumliches Feld vom Typ "geometry" oder "geography" enthalten.
  • Alle Shapes in dem Feld müssen den gleichen räumlichen Datentyp (Punkte, Linien oder Polygone, Multipoints, Multilinestrings oder Multipolygone) aufweisen.

    Das Hinzufügen von Shapes eines anderen Typs zu dem Feld mittels SQL, nachdem Sie die Tabelle in der Geodatabase registriert haben, wird nicht unterstützt und führt zu einem unvorhersehbaren Verhalten der Feature-Class.

  • Alle Shapes in dem Feld müssen dieselbe Raumbezugs-ID (SRID) aufweisen.
  • Die bei der Registrierung angegebene SRID muss in der Systemtabelle "SDE_spatial_references" enthalten sein. Wenn dies nicht der Fall ist, muss die Projektion bei der Registrierung definiert werden.
  • Wenn die Tabelle einen Primärschlüssel enthält, muss sie gruppiert sein.
Hinweis:

Durch die Aktivierung einer Geodatabase in einer vorhandenen Datenbank werden vorhandene Tabellen nicht automatisch in der Geodatabase registriert. Alle Tabellen oder Feature-Classes, die Bestandteil der Geodatabase sein sollen, müssen getrennt in der Geodatabase registriert werden.

Erstellen eines räumlichen Index

SQL Server erfordert einen Primärschlüssel für die Tabelle, damit ein räumlicher Index erstellt werden kann.

In ArcGIS

Wenn Sie mit ArcGIS eine Feature-Class mit einem Geometry- oder einem Geography-Feld erstellen, erstellt ArcGIS standardmäßig einen gruppierten Primärschlüssel für das ObjectID-Feld der Business-Tabelle. Als Nächstes erstellt ArcGIS einen räumlichen Index anhand von SQL Server-Standardwerten. Wenn die Feature-Class als Feature-Class für die traditionelle Versionierung registriert ist, werden ein gruppierter Primärschlüssel für das ObjectID- und State-ID-Feld der Adds-Tabelle sowie ein räumlicher Index erstellt.

ArcGIS berechnet den Rahmen der Feature-Class mit einem räumlichen Geometry- oder Geography-Feld als Ausdehnung der zu indizierenden Daten. Alle Features außerhalb dieses Bereichs werden nicht indiziert. Sie werden jedoch in räumlichen Abfragen zurückgegeben. Wenn die Feature-Class-Ausdehnung nicht festgelegt wird, wird der maximale Koordinatenbereich für das Raumbezugssystem der Feature-Class als umgebendes Rechteck verwendet. Sie können eine Feature-Class-Ausdehnung über das Dialogfeld Eigenschaften: Feature-Class festlegen oder neu berechnen. Wenn die Feature-Class sich in einer Geodatabase befindet, wird das umgebende Rechteck basierend auf der aktuellen Ausdehnung angepasst, sobald der räumliche Index gelöscht und neu erstellt wird.

Außerhalb von ArcGIS

Für räumliche Tabellen, die außerhalb von ArcGIS erstellt wurden, z. B. mit SQL, müssen Sie in der Tabelle einen Primärschlüssel und mit SQL einen räumlichen Index erstellen. Anweisungen und Beispiele Sie finden in der Microsoft SQL Server-Dokumentation.

Für die Speicherung zusätzlicher geometrischer Elemente fügt ArcGIS ein Feld hinzu.

Die Typen "Geometry" und "Geography" können nicht alle Typen von geometrischen Elementen speichern, die von Geodatabases unterstützt werden müssen. Wenn Sie also eine Feature-Class erstellen oder registrieren, die in einer Geodatabase in SQL Server den Speichertyp "Geometry" oder Geography" verwendet, wird die Business-Tabelle in ArcGIS um ein Feld erweitert, um diese zusätzlichen geometrischen Elemente aufnehmen zu können. Der Name des Feldes lautet gdb_geomattr_data. Zu den zusätzlichen geometrischen Elementen gehören folgende:

  • parametrische Objekte, z. B. mit erweiterten Bearbeitungswerkzeugen erstellte Kreisbögen und Bézierkurven
  • PointIDs
  • Multipatch-Features
  • Oberflächenmuster aus der Erweiterung "ArcGIS Spatial Analyst"

Wenn ArcGIS erkennt, dass die Datenquelle diese zusätzlichen geometrischen Elemente enthält, wird eine einfache geometrische Repräsentation im Feld shape gespeichert, und die unveränderten Daten (darunter die zusätzlichen Elemente) werden im Feld gdb_geomattr_data gespeichert.

Beim Registrieren einer Tabelle oder Sicht, die ein Feld mit dem Namen gdb_geomattr_data enthält, müssen die Daten im Feld die geometrischen Elemente sein, die mit dem Objekt verknüpft sind.

Geographische Einheiten von SQL Server in ArcGIS

Die Messwerte für Geographiedaten liegen in der Regel in Metern vor. Die Maßeinheit wird in der Tabelle "sys.spatial_ref_system" angegeben. Überprüfen Sie dort, welche Einheit für den EPSG-Wert (European Petroleum Survey Group) verwendet wird, der mit den Daten verknüpft ist.