BUG

BUG-000122070: Shapes that are stored using third-party spatial types may display incorrectly or not at all

Last Published: May 12, 2020

Beschreibung

In ArcGIS können bestimmte Shapes aus einer Feature-Class, die mit räumlichen Datentypen von Drittanbietern in einer Enterprise-Datenbank gespeichert wurden, nicht angezeigt werden. Zu diesen Typen gehören die SQL Server-Typen "geometry" und "geography" sowie die PostGIS-Typen "geometry" und "geography". In diesen Fällen wurden die Shapes von anderen Anwendungen als ArcGIS eingefügt.

  • In ArcGIS können keine ungültigen Shapes angezeigt werden (Shapes, die auf der Datenbankebene als ungültig erachtet werden). In diesem Fall wird ein Datenbankfehler zurückgegeben, der besagt, dass die räumliche Funktion für das ungültige Shape nicht ausgeführt werden konnte.
  • Auf der Datenbankebene als gültig erachtete Shapes können in ArcGIS angezeigt werden, allerdings werden sie in bestimmten Fällen nicht ordnungsgemäß angezeigt, oder es wird ein Fehler in der Shape-Integrität zurückgegeben. Dazu zählen folgende Shapes:
    • Shapes mit Einschlüssen oder Löchern, die die Außenhülle an genau einem Punkt berühren
    • Shapes mit verbundenen inneren Ringen oder zwei oder mehr inneren Ringen, die einander an genau einem Punkt berühren, aber nicht die Außenhülle berühren

Ursache

Für Shapes, die auf der Datenbankebene als ungültig erachtet werden, wird von ArcGIS immer ein Fehler zurückgegeben. Für Shapes, die auf der Datenbankebene als gültig erachtet werden, wurde in früheren ArcGIS-Versionen beim Abfragen der Shapes eine interne Shape-Überprüfung ausgeführt, um sicherzustellen, dass sie ordnungsgemäß angezeigt wurden.Beim Abrufen komplexerer Geometrien und zahlreicher Zeilen kann die Shape-Überprüfung erhebliche Kosten verursachen.  

Deshalb wurde in ArcGIS 10.6 ein Performance-Fix eingeführt, durch den die Shape-Überprüfung für räumliche Datentypen von Drittanbietern, z. B. den SQL Server- oder PostGIS-Typ "geometry", deaktiviert wurde.  

In Fällen, in denen die Bearbeitung ausschließlich mit ArcGIS erfolgt, macht sich dies nur durch eine Performance-Steigerung bemerkbar, da in ArcGIS kein Shape eingefügt würde, das dort nicht gelesen oder angezeigt werden könnte.In Fällen, in denen die Bearbeitung außerhalb von ArcGIS (in SQL oder anderen Anwendungen) stattfindet, könnte dies bedeuten, dass eingefügte Shapes Einschlüsse oder einander berührende Ringe aufweisen, die in ArcGIS Anzeigeprobleme verursachen können.

  • Das folgende Beispiel zeigt einen Fall, in dem das Shape in ArcGIS möglicherweise nicht ordnungsgemäß angezeigt wird:
    POLYGON ((0 0, 50 0, 50 50, 0 50, 0 0), (0 0, 2 5, 5 5, 5 2, 0 0), (10 10, 10 20, 20 20, 20 10, 10 10))
  • Dieses WKT-Polygon wird in ArcGIS nicht ordnungsgemäß angezeigt:
    POLYGON ((0 0, 50 0, 50 50, 0 50, 0 0), (10 10, 10 20, 20 20, 20 10, 10 10), (0 0, 2 5, 5 5, 5 2, 0 0))

Der einzige Unterschied ist die Position des inneren Rings, der den äußeren Ring an einem einzigen Punkt berührt. Zum Anzeigen in ArcGIS muss dieser berührende innere Ring im WKT direkt nach dem äußeren Ring aufgelistet werden.

  • Das nächste Beispiel zeigt einen Fall, bei dem in ArcGIS ein Fehler in der Shape-Integrität auftreten kann.
    Das folgende WKT-Polygon wird in ArcGIS ordnungsgemäß angezeigt:
    POLYGON ((0 0, 0 50, 50 50, 50 0, 0 0), (10 10, 20 10, 20 20, 10 20, 10 10), (20 20, 30 20, 30 30, 20 30, 20 20))
  • Für das folgende WKT-Format wird in ArcGIS ein Fehler in der Shape-Integrität zurückgegeben:
    POLYGON ((0 0, 0 50, 50 50, 50 0, 0 0), (20 20, 30 20, 30 30, 20 30, 20 20), (10 10, 20 10, 20 20, 10 20, 10 10)) 

Hier ist der einzige Unterschied die Reihenfolge der beiden inneren Ringe, die sich an einem einzigen Punkt im WKT berühren.

Hinweis: Es kann weitere, in diesem Artikel nicht beschriebene Szenarien geben, in denen ein vergleichbares Verhalten auftritt.

Problemumgehung

Wenn Sie räumliche Daten außerhalb von ArcGIS, bearbeiten, sollten Sie beim Einfügen von Shapes wie den in diesem Artikel genannten besonders bedacht vorgehen. Bei Polygon-Shapes mit Löchern sollte immer zuerst die äußere Grenze aufgelistet werden und dann erst die Löcher. Wenn ein Polygon eine Inversion aufweist, d. h. leere Räume im Flächen-Shape, die die äußere Grenze an einem einzigen Punkt berühren, muss die Inversion direkt nach der äußeren Grenze aufgelistet werden. Wenn sich zwei Löcher an einem Punkt berühren, sollte das linke untere Loch vor dem anderen Loch, das es berührt, aufgelistet werden.

Artikel-ID:000023345

Hilfe von ArcGIS-Expert*innen erhalten

Technischen Support kontaktieren

Die Esri Support-App herunterladen

Zu den Download-Optionen

Weitere Informationen zu diesem Thema erkunden