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.
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.
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.
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
Der Import-Assistent unterstützt auch das Einlesen von Daten aus Formdateien. Siehe Importieren von Daten mit dem Import-Assistenten (Interactive SQL).
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).
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; |
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.
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.
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; |
Fahren Sie fort mit Lektion 4: Räumliche Daten abfragen.
![]() |
Kommentieren Sie diese Seite in DocCommentXchange.
|
Copyright © 2012, iAnywhere Solutions, Inc. - SQL Anywhere 12.0.1 |