Mer

Kan ogr2ogr lese .kmz-filer? Hvordan?


Forsøke et løp av fabrikkenogr2ogrprosessen med en KMZ-fil mislyktes:

FEIL: Kan ikke åpne datakilden 'Rail.kmz' med følgende drivere.

Er det et triks? (Åpenbar løsning er å pakke ut .kmz først, men det er noen ganger klumpete, og du vet ikke hva den interne strukturen vil være nøyaktig.)

GDAL 1.11.0, utgitt 2014/04/16


GDAL har to drivere for KML, "KML" http://www.gdal.org/drv_kml.html og "LIBKML" http://www.gdal.org/drv_libkml.html. LIBKML-driveren kan lese KMZ-filer utenom boksen. Dette fungerer for meg med GDAL 2.1-dev-versjonen fra gisinternals.com:

Få testdata fra https://code.google.com/p/kml-samples/

Kjør ogrinfo:

ogrinfo time-stamp-point.kmz -al -so INFO: Åpen for "time-stamp-point.kmz" ved hjelp av driveren 'LIBKML' vellykket. Lagnavn: tidsstempelpunkt Geometri: Ukjent (hvilken som helst) Antall funksjoner: 361 Omfang: (-122.556706, 37.848038) - (-122.536226, 37.860470) Lag SRS WKT: GEOGCS ["WGS 84", DATUM ["WGS_1984", SPHEROID ["WGS 84", 6378137,298.257223563, AUTHORITY ["EPSG", "7030"]], TOWGS84 [0,0,0,0,0,0,0], AUTHORITY ["EPSG", "6326"] ], PRIMEM ["Greenwich", 0, AUTHORITY ["EPSG", "8901"]], UNIT ["degree", 0.0174532925199433, AUTHORITY ["EPSG", "9108"]], AUTHORITY ["EPSG", "4326 "]] Navn: String (0.0) beskrivelse: String (0.0) tidsstempel: DateTime (0.0) begynner: DateTime (0.0) slutt: DateTime (0.0) altitudeMode: String (0.0) tessellate: Integer (0.0) extrude: Integer (0.0 ) synlighet: Heltall (0.0) tegne Bestilling: Heltall (0.0) ikon: String (0.0)

KML-driveren kan ikke forsøke KML-filer med zip, men det er en enkel løsning ved å bruke GDAL vsizip-systemet https://trac.osgeo.org/gdal/wiki/UserDocs/ReadInZip.

Test med KML-driver (legg merke til hvordan du hopper over standard LIBKML-driver hvis begge driverne er installert):

ogrinfo /vsizip/time-stamp-point.kmz -al -so --config ogr_skip libkml FEIL 1: Tilfeldig tilgang støttes ikke for / vsizip Måtte åpne datakilde skrivebeskyttet. INFO: Åpne '/vsizip/time-stamp-point.kmz' ved hjelp av driveren 'KML' vellykket. Lagnavn: TimeStamp'ed Points Geometry: 3D Point Feature Count: 361 Omfang: (-122.556706, 37.848038) - (-122.536226, 37.860470) Layer SRS WKT: GEOGCS ["WGS 84", DATUM ["WGS_1984", SPHEROID [" WGS 84 ", 6378137,298.257223563, AUTHORITY [" EPSG "," 7030 "]], TOWGS84 [0,0,0,0,0,0,0], AUTHORITY [" EPSG "," 6326 "]], PRIMEM ["Greenwich", 0, AUTHORITY ["EPSG", "8901"]], UNIT ["degree", 0.0174532925199433, AUTHORITY ["EPSG", "9108"]], AUTHORITY ["EPSG", "4326"]] Navn: String (0.0) Beskrivelse: String (0.0)

Legg også merke til at KML-driveren finner langt mindre attributter fra dataene, så jeg vil anbefale å få en GDAL som har LIBKML-driver.


Du må bruke LibKML-driveren i stedet for den eldre KML-en. Dette krever at GDAL bygges med libkml-støtte.

Det høres ut som om GDAL-binærfiler du har ikke har denne støtten innebygd; i henhold til dokumentene:

Merk at hvis du bygger og inkluderer denne LIBKML-driveren, blir den standardleseren til KML for ogr ...

Du må enten gjenoppbygge GDAL eller finne en bygning med den støtten.

Eller bare pakk ut KMZ-ene og bruk KML-driveren.


Se videoen: Python Create Custom KML File Map Layers (September 2021).