Mehr

Ogr2ogr kann KML-Datenquelle nicht öffnen open


Ich habe einige Wikimapia-Daten mit der wikimapia.api heruntergeladen. Alles ist A-OK, seit ich dies in Google Earth geöffnet habe und alles an seinem Platz ist. Ich muss es jedoch in ein Shapefile umwandeln oder die Daten in QGIS übertragen, da es Impt-Polygone gibt.

Mit GDAL Complete für OS X von kyngchaos versuche ich, den Befehl ogr2ogr auszuführen.

$ ogr2ogr -f "ESRI Shapefile" mountain.shp api.wikimapia.org-4.kml FEHLER 4: Kann api.wikimapia.org-4.kml nicht öffnen FEHLER: Datenquelle 'api.wikimapia.org-4.kml' kann nicht geöffnet werden ' mit den folgenden Treibern.

usw. Diese heißen Berge, die ich in QGIS importieren möchte.


Ogr2ogr verarbeitet Ihre Daten problemlos, das Shapefile-Format jedoch nicht. Ogrinfo zeigt, dass Ihre Daten eine Geometrie vom Typ Geometrycollection enthalten. Die Sammlung erfolgt durch die Kombination einer Linienfolge und eines Punkts.

GEOMETRYSAMMLUNG ( LINESTRING ( 120.9954464 6.040449 0, 120.9953874 6.0402356 0, 120.9957951 6.0401396 0, 120.9958595 6.040337 0, 120.9958595 6.040337 0, 120.9954464 6.040449 0 ), PUNKT ( 120.9954464 6.040449 0 )

Sie haben zwei Probleme:

  1. Geometriesammlungen können nicht im Shapefile gespeichert werden.
  2. Das Auflösen der Sammlung in primitive Elemente reicht für eine Rettung nicht aus, da Linienfolgen und Punkte nicht in einem gleichen Shapefile gespeichert werden können.

Um Ihre KML-Daten in Shapefiles umzuwandeln, müssen Sie zwei Schritte ausführen:

  1. Explodieren Sie die Kollektionen in grundlegende Geometrien
  2. Sortieren Sie die Geometrien nach dem Geometrietyp und speichern Sie Linien in einem Shapefile und zeigen Sie auf ein anderes.

Ich würde die Aufgabe mit ogr2ogr erledigen, indem ich GML als Zwischendateiformat verwende. Es werden insgesamt drei Befehle benötigt, die Sie unten finden. Ich habe die ungefährlichen Warnungen eingefügt, weil Sie möglicherweise keine andere Einschränkung in Shapefiles kennen: Attributnamen können max. 10 Zeichen. Ich entschuldige mich für die kryptischen Layer-Erstellungsoptionen, die zum Definieren des expliziten Shapefile-Typs (-lco SHPT=) verwendet werden, aber in Ihrem Anwendungsfall müssen sie einfach vorhanden sein.

ogr2ogr -f GML habib.gml habib_mosque.kmz -explodecollections ogr2ogr -f "ESRI Shapefile" habib_point.shp habib.gml -sql "select * from habib_mosque where OGR_GEOMETRY="POINT"" -lco SHPT=POINT unter 6 . Normalized/la Feldname: 'description' bis 'descriptio' Warnung 6: Normalisierter/gewaschener Feldname: 'altitudeMode' bis 'altitudeMo' ogr2ogr -f "ESRI Shapefile" habib_line.shp habib.gml -sql "select * from habib_mosque where OGR_GEOMETRY=" LINESTRING"" -lco SHPT=ARC Warnung 6: Normalisierter/gewaschener Feldname: 'description' bis 'descriptio' Warnung 6: Normalisierter/gewaschener Feldname: 'altitudeMode' bis 'altitudeMo'

Hier ist das Endergebnis mit dem Umriss auf einer Ebene und dem Referenzpunkt auf einer anderen Ebene.


Ich habe den ganzen Tag damit verbracht, einen Weg zu finden, jede der Ausgabedateien von Wikimapia in eine Form umzuformatieren, die ich in R laden kann - und das hat es endlich getan. Vielen Dank!! Die einzige Schlüsseländerung, die ich vornehmen musste (außer der offensichtlichen) war "select * from Layer0"


Schau das Video: PostGIS - - Export PostGIS table to GML, KML (Oktober 2021).