ArcGIS und räumliche Datentypen von Microsoft

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

Geometry vgl. mit Geography

Die Microsoft-Datentypen "geometry" und "geography" bieten den SQL-Zugriff auf räumliche Daten. In den folgenden Abschnitten werden andere Eigenschaften der beiden räumlichen Typen verglichen. Weitere Informationen zu den räumlichen Datentypen von Microsoft finden Sie in der SQL Server-Dokumentation.

Geometrie

  • Der Typ "geometry" unterstützt jedes X/Y-Koordinatensystem.
  • Planare (Ebene, euklidisch) Berechnungen und lineare Interpolation zwischen Stützpunkten werden zum Rendern und für räumliche Vergleiche verwendet.
  • Entspricht Version 1.1.9 der Simple Features-Spezifikation von Open Geospatial Consortium, Inc. (OGC) und ist mit dem ISO SQL/MM-Standard konform.

Sie können den Geometriespeichertyp mit ArcGIS verwenden, wenn Folgendes zutrifft:

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

Geographie

  • Der Typ "Geography" unterstützt viele standardmäßige geographische Koordinatensysteme wie GPS-Längengrad und -Breitengrad.

    Microsoft erfordert die Verwendung von SRIDs und die Definition des geographischen Koordinatensystems im SQL Server-Data Dictionary.

  • Ein Ellipsoid-Modell (runde Erde) und die Interpolation einer großen Ellipse aus Liniensegmenten zwischen Stützpunkten wird für Berechnungen und räumliche Vergleiche verwendet.
  • Verwendet eine globale (kugelförmige) Layer-Ausdehnung.

    Koordinaten der Daten können die globale Ausdehnung nicht überschreiten.

  • In SQL Server 2008 und 2008 R2 müssen Features kleiner sein als eine einzelne Hemisphäre.
  • Falls Sie SQL Server 2008 oder 2008 R2 verwenden, dürfen mit ArcGIS verwendete Features keine Z- oder M-Koordinaten aufweisen.

Der Geography-Speichertyp mit ArcGIS kann in folgenden Fällen verwendet werden:

  • Das Koordinatensystem, das Sie verwenden möchten, ist im SQL Server-Data Dictionary definiert.
  • Sie verwenden SQL Server 2008 oder 2008 R2 und müssen Z- oder M-Werte für Features speichern.
  • Sie verwenden SQL Server 2012, bei dem Z- und M-Werte für ArcGIS unterstützt werden.
  • Ihre Daten decken große räumliche Ausdehnungen ab und Sie müssen SQL-Flächen- und -Längenberechnungen verwenden.

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

  • Sie müssen die Linieninterpolation für große Ellipsen für räumliche SQL-Abfragen verwenden.

Verwenden von räumlichen Datentypen von Microsoft mit ArcGIS

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

Standardmäßig verwenden Geodatabases in SQL Server den Microsoft Geometry-Typ. Wenn Sie den Microsoft Geography-Typ zur Speicherung in Geodatabases in Standort-SQL Server-Datenbanken verwenden möchten, müssen Sie entweder (1) den Parameter GEOMETRY_STORAGE unterhalb des Konfigurationsschlüsselworts DEFAULTS in der Tabelle "SDE_dbtune" in GEOGRAPHY ändern oder (2) beim Erstellen von Feature-Classes ein Konfigurationsschlüsselwort angeben, das für den Parameter GEOMETRY_STORAGE den Wert GEOGRAPHY festlegt.

Sie sollten nur den Parameter GEOMETRY_STORAGE unter dem Schlüsselwort DEFAULTS ändern, wenn die Mehrzahl der Benutzer zumeist Geography für ihre Daten verwendet. Falls nur einige der Daten im Geography-Typ gespeichert werden, legen Sie ein separates Schlüsselwort fest, wenn die Feature-Class erstellt wird. Das Schlüsselwort "GEOGRAPHY" wird bereitgestellt, Sie können jedoch auch ein eigenes benutzerdefiniertes Schlüsselwort erstellen.

Verwenden Sie den Verwaltungsbefehl "sdedbtune", um die Werte in der Tabelle "SDE_dbtune" zu ändern. Dieser Befehl kann mit dem ArcSDE-Anwendungsserver für Microsoft SQL Server installiert werden.

Wählen Sie beim Erstellen von Feature-Classes in SQL Server-Datenbanken das Schlüsselwort "geometry" oder "geography" aus.

Registrieren einer vorhandenen räumlichen Tabelle in der Geodatabase

Wenn Sie mit einer Anwendung eines Drittanbieters oder mit SQL Tabellen erstellt haben, die Spalten mit räumlichen Datentypen von Microsoft enthalten, können Sie diese Tabellen in der Geodatabase registrieren, um die Geodatabase-Funktionalität (z. B. Beziehungsklassen, Topologie, geometrische Netze, Cadastral Fabrics, Terrains oder Schemas) nutzen oder Subtypes, Standardwerte, Domänen oder Validierungsregeln verwenden zu können. Hierzu müssen die Tabellen bestimmte Voraussetzungen erfüllen:

  • Der Benutzer, von dem die Tabelle registriert wird, muss deren Besitzer sein.
  • Die Tabelle muss eine einzelne räumliche Spalte vom Typ "geometry" oder "geography" enthalten.
  • Alle Shapes in der Spalte 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 der Spalte mittels SQL, nachdem Sie die Tabelle in der Geodatabase registriert haben, wird ebenfalls nicht unterstützt und führt zu einem unvorhersehbaren Verhalten der Feature-Class.

  • Alle Shapes in der Spalte 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.

Informationen zum Registrieren der Tabelle in der Geodatabase mit ArcGIS for Desktop finden Sie unter Registrieren einer Tabelle in der Geodatabase.

HinweisHinweis:

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 Indexes

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 einer Geometry- oder einer Geography-Spalte in einer Geodatabase erstellen, erstellt ArcGIS standardmäßig über die Zeilenspalte-ID (ObjectID) der Business-Tabelle einen gruppierten Primärschlüssel. Danach erstellt es auf Grundlage des Werte-Satzes für den Parameter B_MS_SPINDEX des Konfigurationsschlüsselworts in der Tabelle "SDE_dbtune", die beim Erstellen der Feature-Class verwendet wurde, einen räumlichen Index. Wenn die Feature-Class als versioniert registriert ist, wird ein gruppierter Primärschlüssel für die Zeilen-ID- und Status-ID-Spalte der Adds-Tabelle erstellt. Der räumliche Index wird dann basierend auf den Werten für den Parameter A_MS_SPINDEX im Konfigurationsschlüsselwort erstellt, die beim Erstellen der Feature-Class verwendet wurden. Der Standardwert für beide Parameter lautet wie folgt:

GRIDS = (MEDIUM, MEDIUM, MEDIUM, MEDIUM), CELLS_PER_OBJECT = 16

Weitere Informationen zum Festlegen von Werten in der Tabelle "SDE_dbtune" finden Sie unter Ändern des Inhalts der Tabelle DBTUNE.

Wenn Sie in ArcGIS eine Feature-Class mit einer räumlichen Geometry- oder Geography-Spalte in einer Datenbank oder einer Geodatabase erstellen, wird das umgebende Rechteck der Feature-Class außerdem als Ausdehnung der zu indizierenden Daten berechnet. Alle Features außerhalb dieses Bereichs werden nicht indiziert. Sie werden jedoch weiterhin 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 die Registerkarte Feature-Ausdehnung des Dialogfeldes Eigenschaften: Feature-Class festlegen oder neu berechnen. Wenn die Feature-Class sich in einer Geodatabase befindet, wird das umgebende Rechteck basierend auf der aktuellen Layer-Ausdehnung angepasst, sobald der Layer vom Nur-Lade-E/A-Modus in den normalen E/A-Modus wechselt.

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. Nachfolgend ist die SQL-Syntax zum Erstellen eines räumlichen Indexes für eine Tabelle dargestellt, die eine Geometry-Spalte enthält:

CREATE SPATIAL INDEX <index_name>
 ON <table> (<spatial column>)
 USING GEOMETRY_GRID
 WITH (
  BOUNDING_BOX = minx,miny,maxx,maxy),
  GRIDS = (low|medium|high, low|medium|high, low|medium|high, low|medium|high), 
  CELLS_PER_OBJECT = n,
  <other regular btree index options like filegroups, fill factors, etc>
 )

Anhand der folgenden Syntax wird ein räumlicher Index für eine Geography-Spalte erstellt:

CREATE SPATIAL INDEX <index_name>
 ON <table> (<spatial column>)
 USING GEOGRAPHY_GRID
 WITH (
  GRIDS = (low|medium|high, low|medium|high, low|medium|high, low|medium|high),
  CELLS_PER_OBJECT = n,
  <other regular btree index options like filegroups, fill factors, etc>
 )

Bekannte Einschränkungen bei der Verwendung von SQL Server Geography mit ArcGIS

Nachfolgend finden Sie eine Liste von Aspekten, die Sie beachten müssen, wenn Sie SQL Server Geography-Daten in der Enterprise-Geodatabase als SQL_GEORASTER speichern.

  • Wenn Sie SQL Server 2008 oder 2008 R2 verwenden, kann ArcGIS bei dieser Version keine Z- oder M-Werte im Geography-Datentyp speichern. Wenn Sie vorhandene Daten in die Geodatabase einfügen, z. B. ein Shapefile oder eine Feature-Class aus einer anderen Geodatabase, und diese mit dem Datentyp "geography" gespeichert werden müssen, darf das eingehende Dataset keine 3D-Attribute (z) oder Messwertattribute (m) aufweisen.

    Die Z- und M-Attribute müssen deaktiviert werden, bevor die Daten in eine Geodatabase in SQL Server 2008 oder 2008 R2 importiert werden können. Alternativ können Sie Daten mit 3D- oder Messwertattributen in Feature-Classes, die den Speichertyp "geometry" oder "Compressed Binary" verwenden, oder in Geodatabases in SQL Server 2012 importieren.

  • Die Messwerte für Geographiedaten liegen größtenteils in Metern vor. Die Maßeinheit wird in "sys.spatial_ref_system" angegeben. Überprüfen Sie dort, welche Einheit für den EPSG-Wert verwendet wird, der mit den Daten verknüpft ist.
  • Durch das Zoomen auf eine globale Ausdehnung für eine Feature-Class mit dem Speichertyp "geometry" in SQL Server 2008 kann ein räumlicher Filter erstellt werden, der die Hemisphäre-Regel erzwingt oder Koordinaten außerhalb gültiger Geographie-Ausdehnungen aufweist, woraufhin die Erstellung der Form des Filters fehlschlägt und die Abfrage kein Ergebnis zurückgibt.
5/9/2014