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. Verwenden Sie diese Datentypen, wenn Sie mit SQL auf Ihre räumlichen Daten zugreifen möchten.
Der Microsoft-Datentyp "geometry" ähnelt vorhandenen räumlichen GIS-Datentypen: Er verwendet Koordinaten in einer beliebigen Ebene, z. B. definierte Projektionen.
Der Microsoft-Datentyp "geography" wird für Daten auf einem Sphäroid verwendet, die mit Breitengrad- und Längengradkoordinaten gespeichert werden.
Die beiden Typen unterscheiden sich hinsichtlich der verwendeten Methode für räumliche Berechnungen. Weitere Informationen zu den räumlichen Datentypen von Microsoft finden Sie in der SQL Server-Dokumentation.
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. Ein Schlüsselwort wird bereitgestellt: GEOGRAPHY. Alternativ können Sie jedoch auch ein eigenes benutzerdefiniertes Schlüsselwort erstellen.
Registrieren einer vorhandenen räumlichen Tabelle in der Geodatabase
Wenn Sie mit einer Anwendung eines Drittanbieters oder SQL Tabellen erstellt haben, die die Microsoft-Spalten "geometry" oder "geography" enthalten, können Sie diese Tabellen in der Geodatabase registrieren, um die Geodatabase-Funktionalität nutzen zu können, wie z. B. Beziehungsklassen, Topologie, geometrische Netze, Cadastral Fabrics, Terrains oder Schemas, oder um 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.
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 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 DBTUNE-Tabelle.
Wenn Sie in ArcGIS eine Feature-Class mit einer räumlichen Geometry- oder Geography-Spalte 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. Jedes Mal, wenn der Layer vom Nur-Lade-E/A-Modus in den normalen E/A-Modus wechselt, wird das umgebende Rechteck basierend auf der aktuellen Ausdehnung angepasst. Alternativ können Sie eine Feature-Class-Ausdehnung auch über die Registerkarte Feature-Ausdehnung des Dialogfeldes Eigenschaften: Feature-Class festlegen oder neu berechnen.
... 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- oder Geography-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>
)
Bekannte Einschränkungen bei der Verwendung von SQL Server Geography mit einer Enterprise-Geodatabase
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.
- ArcGIS kann 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 Sie die Daten importieren. Alternativ können Sie Daten mit 3D- oder Messwertattributen in Feature-Classes importieren, die den Speichertyp "geometry" oder "Compressed Binary" verwenden.
- 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.
- In dieser Version von ArcGIS müssen die einzelnen Features und alle Teile eines Multipart-Features in einer einzelnen Hemisphäre liegen.