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

SQL Anywhere 12.0.1 (Deutsch) » SQL Anywhere Server - Unterstützung für räumliche Daten » Verwendung räumlicher Daten » Praktische Einführung: Mit den räumlichen Funktionen experimentieren

 

Lektion 3: Die Daten der ESRI-Formdatei einlesen

Diese Lektion zeigt, wie Sie ermitteln, welche Spalten in der ESRI-Formdatei enthalten sind, und wie Sie diese Informationen verwenden, um eine Tabelle zu erstellen, in die Sie die Daten einlesen.

 Laden der räumlichen Daten aus der ESRI-Formdatei in die Datenbank
  1. Da die räumlichen Daten einem spezifischen räumlichen Bezugssystems zugeordnet sind, müssen Sie sie beim Einlesen der Daten in die Datenbank in dasselbe räumliche Bezugssystem einlesen oder zumindest in eines mit der gleichen Definition. Um die Informationen des räumlichen Bezugssystems für die ESRI-Formdatei zu ermitteln, öffnen Sie die Projektdatei c:\temp\massdata\tl_2009_25_zcta5.prj in einem Texteditor. Diese Datei enthält die benötigten Informationen über das räumliche Bezugssystem.

    GEOGCS["GCS_North_American_1983", DATUM["D_North_American_1983",
    SPHEROID["GRS_1980",6378137,298.257222101]], 
    PRIMEM["Greenwich",0],UNIT["Degree",0.017453292519943295]]

    Die Zeichenfolge GCS_North_American_1983 ist der Name des räumlichen Bezugssystems, dem die Daten zugeordnet ist.

  2. Eine kurze Abfrage der Ansicht ST_SPATIAL_REFERENCE_SYSTEM, SELECT * FROM ST_SPATIAL_REFERENCE_SYSTEMS WHERE srs_name='GCS_North_American_1983';, zeigt, dass dieser Name nicht in der Liste der vordefinierten räumlichen Bezugssysteme enthalten ist. Sie können jedoch eine Abfrage für ein räumliches Bezugssystem mit derselben Definition erstellen und dieses stattdessen verwenden.

    SELECT *
    FROM ST_SPATIAL_REFERENCE_SYSTEMS
    WHERE definition LIKE '%1983%' 
    AND definition LIKE 'GEOGCS%';

    Die Abfrage gibt ein einziges räumliches Bezugssystem, NAD83, mit SRID 4269 zurück, das die gleiche Definition hat. Dies ist die SRID, die Sie den Daten zuordnen werden, die Sie aus der Formdatei einlesen.

  3. Führen Sie in Interactive SQL folgende Anweisung aus, um eine Tabelle namens Massdata zu erstellen, die Formdatei in die Tabelle einzulesen und den Daten die SRID 4269 zuzuweisen. Beachten Sie, dass der Einlesevorgang etwas dauern kann.

    CALL st_geometry_load_shapefile ( 'c:\\temp\\massdata\\tl_2009_25_zcta5.shp', 
    4269, 
    'Massdata' );

    Siehe st_geometry_load_shapefile-Systemprozedur

    Hinweis

    Der Import-Assistent unterstützt auch das Einlesen von Daten aus Formdateien. Siehe Importieren von Daten mit dem Import-Assistenten (Interactive SQL).

  4. Fragen Sie in Interactive SQL Abfrage die Tabelle ab, um die Daten anzuzeigen, die in der Formdatei waren:

    SELECT * FROM Massdata;

    Jede Zeile in den Ergebnissen gibt Daten für eine PLZ-Region an:

    Die Geometrie-Spalte enthält die Forminformationen der PLZ-Region als Polygon (ein Bereich) oder Multipolygon (zwei oder mehr nicht zusammenhängende Bereiche).

  5. Die Spalte ZCTA5CE enthält Zipcodes (Postleitzahlen). Um die Verwendung dieser Spalte später in der praktischen Einführung zu erleichtern, führen Sie die folgende ALTER TABLE-Anweisung in Interactive SQL aus, um den Spaltennamen auf ZIP zu ändern:

    ALTER TABLE Massdata
    RENAME ZCTA5CE TO ZIP; 
  6. Die beiden Spalten INTPTLON und INTPTLAT stellen die X- und Y-Koordinaten für die Mittelpunkte der Zipcode-Regionen dar. Führen Sie die folgende ALTER TABLE-Anweisung in Interactive SQL aus, um eine Spalte namens CenterPoint vom Typ ST_Point erstellen und um den X- und Y-Wert in einen Wert in CenterPoint zu verwandeln.

    ALTER TABLE Massdata
    ADD CenterPoint AS ST_Point(SRID=4269)
    COMPUTE( new ST_Point( CAST( INTPTLON AS DOUBLE ), CAST( INTPTLAT AS DOUBLE ), 4269 ) );

    Nun stellt jeder ST_Point-Wert in Massdata.CenterPoint den Mittelpunkt der Zipcode-Region dar, die in Massdata.geometry gespeichert ist.

  7. Um eine einzelne Geometrie (eine PLZ-Region) als Form anzuzeigen, doppelklicken Sie auf einen beliebigen Wert (ausgenommen den ersten) in Massdata.geometry und klicken Sie dann im Fenster Wert von Spalte auf die Registerkarte Räumliche Vorschau.

    Wenn Sie in einer Fehlermeldung darauf hingewiesen werden, dass der Wert zu lang ist oder dass Sie einen Primärschlüssel in die Ergebnisse einbeziehen müssen, liegt das daran, dass der Wert für die Anzeige in Interactive SQL gekürzt wurde. Um dies zu beheben, können Sie die Abfrage ändern und eine Primärschlüsselspalte in die Ergebnisse einbeziehen oder die Einstellung Kürzungslänge anpassen. Wenn Sie den Primärschlüssel nicht bei jeder Abfrage einer Geometrie für die Anzeige in Interactive SQL einbeziehen wollen, wird die Einstellung der Kürzungslänge empfohlen.

    Zum Ändern der Einstellung Kürzungslänge für Interactive SQL klicken Sie auf Extras » Optionen » SQL Anywhere und legen Sie Kürzungslänge auf einen hohen Wert fest, z. B. auf 100000.

  8. Um den gesamten Datensatz als eine einzige Form anzuzeigen, klicken Sie auf Extras » Spatial Viewer, um den Spatial Viewer von SQL Anywhere zu öffnen, und führen Sie folgende Abfrage in Interactive SQL aus:

    SELECT geometry FROM Massdata
    UNION ALL SELECT CenterPoint FROM Massdata;
    Der Staat von Massachusetts wird in Form von farbigen Polygonen angezeigt, die jeweils eine PLZ-Region darstellen. Ein Punkt in einem Polygon markiert seinen Mittelpunkt.
  9. Fahren Sie fort mit Lektion 4: Räumliche Daten abfragen.