Click here to view and discuss this page in DocCommentXchange. In the future, you will be sent there automatically.

SAP Sybase SQL Anywhere 16.0 (Deutsch) » SQL Anywhere Server - Unterstützung für räumliche Daten » Räumliche Daten » Praktische Einführung: Mit den räumlichen Funktionen experimentieren

 

Lektion 5: Ausgabe von räumlichen Daten in SVG

In dieser Lektion erstellen Sie ein SVG-Dokument, um ein Multipolygon in WKT anzuzeigen. Sie können Geometrien in das SVG-Format zur Anzeige in Interactive SQL oder in einer SVG-kompatiblen Anwendung exportieren.

Voraussetzungen

In dieser Lektion wird davon ausgegangen, dass Sie bereits alle vorherigen Lektionen abgeschlossen haben. Siehe Lektion 1: Zusätzliche Maßeinheiten und räumliche Bezugssysteme installieren.

In dieser Lektion wird davon ausgegangen, dass Sie die Rollen und Privilegien haben, die im Abschnitt "Privilegien" am Anfang dieser praktischen Einführung aufgeführt sind: Praktische Einführung: Mit den räumlichen Funktionen experimentieren.

 Aufgabe
  1. Führen Sie folgende Anweisung in Interactive SQL aus, um eine Variable mit einer Beispielgeometrie zu erstellen:

    CREATE OR REPLACE VARIABLE @svg_geom 
    ST_Polygon = (NEW ST_Polygon('Polygon ((1 1, 5 1, 5 5, 1 5, 1 1), (2 2, 2 3, 3 3, 3 2, 2 2))'));
  2. Führen Sie folgende SELECT-Anweisung in Interactive SQL aus, um die ST_AsSVG-Methode aufzurufen:

    SELECT @svg_geom.ST_AsSVG() AS svg;

    Die Ergebnismenge hat eine einzelne Zeile, die sich in einem SVG-Bild befindet. Sie können das Bild mit der Funktion SVG-Vorschau in Interactive SQL anzeigen. Hierzu doppelklicken Sie auf die Ergebniszeile und wählen Sie die Registerkarte SVG-Vorschau. Sie sollten eine Quadratgeometrie innerhalb einer anderen Quadratgeometrie sehen.

    Hinweis

    Standardmäßig kürzt Interactive SQL-Werte im Fensterausschnitt Ergebnisse auf 256 Zeichen. Wenn Interactive SQL den Fehler meldet, dass der vollständige Spaltenwert nicht gelesen werden konnte, erhöhen Sie den Kürzungswert. Klicken Sie dazu auf Extras » Optionen und anschließend im linken Fensterausschnitt auf SQL Anywhere. Ändern Sie auf der Registerkarte Ergebnisse die Option Kürzungslänge auf einen hohen Wert, z.B. 5000. Klicken Sie auf OK, um Ihre Änderungen zu speichern, führen Sie die Abfrage erneut aus und klicken Sie dann noch einmal doppelt auf die Zeile.

  3. Der letzte Schritt zeigte, wie ein SVG-Bild in Interactive SQL in der Vorschau angezeigt wird. Es kann jedoch sinnvoller sein, das resultierende SVG-Bild in eine Datei zu schreiben, sodass es von einer externen Anwendung gelesen werden kann. Hierzu können Sie die xp_write_file-Systemprozedur oder die WRITE_CLIENT_FILE-Funktion [Zeichenfolge] verwenden, um in eine Datei des Datenbankservers oder des Clientcomputers zu schreiben. In diesem Beispiel wird die OUTPUT-Anweisung [Interactive SQL] verwendet.

    Führen Sie in Interactive SQL folgende SELECT-Anweisung aus, um die ST_AsSVG-Methode aufzurufen und die Geometrie in eine Datei namens myPolygon.svg auszugeben.

    SELECT @svg_geom.ST_AsSVG();
    OUTPUT TO 'c:\\temp\\massdata\\myPolygon.svg' 
    QUOTE '' 
    ESCAPES OFF 
    FORMAT TEXT

    Sie müssen die Klauseln QUOTE '' und ESCAPES OFFeinbeziehen, da Zeilenvorschubzeichen und einfache Anführungszeichen sonst zur Beibehaltung von Leerzeichen in den XML-Code eingefügt werden, wodurch eine ungültige SVG-Datei ausgegeben würde.

  4. Öffnen Sie die SVG-Datei in einem Webbrowser oder in einer Anwendung, die die Anzeige von SVG-Bildern unterstützt. Alternativ dazu können Sie die SVG-Datei auch in einem Texteditor öffnen, um den XML-Code für die Geometrie anzuzeigen.

  5. Die ST_AsSVG-Methode generiert aus einer einzelnen Geometrie ein SVG-Bild. In manchen Fällen soll ein SVG-Bild mit allen Formen in einer Gruppe generiert werden. Die ST_AsSVGAggr-Methode ist eine Aggregatfunktion, die mehrere Geometrien in einem einzigen SVG-Bild kombiniert. Erstellen Sie zunächst in Interactive SQL eine Variable, um das SVG-Bild zu speichern, und generieren Sie sie mit der ST_AsSVGAggr-Methode.

    CREATE OR REPLACE VARIABLE @svg XML;
    SELECT ST_Geometry::ST_AsSVGAggr( geometry, 'attribute=fill="black"' )
    INTO @svg
    FROM Massdata;

    Die Variable @svg enthält nun ein SVG-Bild, das alle PLZ-Regionen in der Massdata-Tabelle darstellt. 'attribute=fill="black"' gibt die Füllfarbe an, die für das generierte Bild verwendet wird. Wenn keine Farbe angegeben wird, verwendet der Datenbankserver eine willkürliche Füllfarbe. Nachdem die Variable mit dem gewünschten SVG-Bild erstellt wurde, kann sie in eine Datei zur Anzeige in anderen Anwendungen geschrieben werden. Führen Sie folgende Anweisung in Interactive SQL aus, um das SVG-Bild in eine Datei auf dem Datenbankserver zu schreiben.

    CALL xp_write_file( 'c:\\temp\\Massdata.svg', @svg );

    Die WRITE_CLIENT_FILE-Funktion könnte auch verwendet werden, um eine Datei relativ zur Clientanwendung zu schreiben. Dabei wären jedoch möglicherweise weitere Schritte erforderlich, um sicherzustellen, dass entsprechende Privilegien aktiviert sind. Wenn Sie das SVG-Bild in einer Anwendung öffnen, das SVG-Daten unterstützt, sollte folgendes Bild angezeigt werden.

    Das SVG-Bild, das das Aggregat aller PLZ-Regionen im Staat Massachusetts darstellt.

    Das Bild ist nicht einheitlich schwarz. Es sind kleine Lücken zwischen den Grenzen benachbarter Postleitzahlregionen zu erkennen. Dies sind weiße Linien zwischen den Geometrien, die charakteristisch dafür sind, wie das SVG-Bild gerendert wird. In den Daten sind nicht tatsächlich Lücken vorhanden. Breitere weiße Linien sind Flüsse und Seen.

Ergebnisse

Die Geometrie wurde als SVG-Bild angezeigt.

Nächste Schritte

Gehen Sie weiter zu Lektion 6: Räumliche Daten projizieren.

 Siehe auch