Skip to content

v0.2.50..v0.2.51 changeset OgrUtilities.cpp

Garret Voltz edited this page Jan 15, 2020 · 1 revision
diff --git a/hoot-core/src/main/cpp/hoot/core/io/OgrUtilities.cpp b/hoot-core/src/main/cpp/hoot/core/io/OgrUtilities.cpp
index 527d44a..2decf5d 100644
--- a/hoot-core/src/main/cpp/hoot/core/io/OgrUtilities.cpp
+++ b/hoot-core/src/main/cpp/hoot/core/io/OgrUtilities.cpp
@@ -61,13 +61,13 @@ void OgrUtilities::loadDriverInfo()
   _drivers.push_back(OgrDriverInfo(".csv",      "CSV",            true,     true,   GDAL_OF_VECTOR));
   _drivers.push_back(OgrDriverInfo(".gml",      "GML",            true,     true,   GDAL_OF_VECTOR));
   _drivers.push_back(OgrDriverInfo(".gpx",      "GPX",            true,     true,   GDAL_OF_VECTOR));
-  _drivers.push_back(OgrDriverInfo(".kml",      "KML/LIBKML",     true,     true,   GDAL_OF_ALL));
-  _drivers.push_back(OgrDriverInfo(".kmz",      "LIBKML",         true,     true,   GDAL_OF_ALL));
+  _drivers.push_back(OgrDriverInfo(".kml",      "LIBKML",         true,     true,   GDAL_OF_VECTOR));
+  _drivers.push_back(OgrDriverInfo(".kmz",      "LIBKML",         true,     true,   GDAL_OF_VECTOR));
   _drivers.push_back(OgrDriverInfo(".dxf",      "DXF",            true,     true,   GDAL_OF_VECTOR));
   //  Order is important here for the two FileGDB drivers, grab the first for read ops and the second for write
   _drivers.push_back(OgrDriverInfo(".gdb",      "OpenFileGDB",    true,     false,  GDAL_OF_VECTOR));
   _drivers.push_back(OgrDriverInfo(".gdb",      "FileGDB",        true,     true,   GDAL_OF_VECTOR));
-  _drivers.push_back(OgrDriverInfo(".gpkg",      "GPKG",          true,     true,   GDAL_OF_ALL));
+  _drivers.push_back(OgrDriverInfo(".gpkg",     "GPKG",           true,     true,   GDAL_OF_ALL));
   _drivers.push_back(OgrDriverInfo(".pix",      "PCIDSK",         true,     true,   GDAL_OF_ALL));
   _drivers.push_back(OgrDriverInfo(".sql",      "PGDump",         true,     true,   GDAL_OF_VECTOR));
   _drivers.push_back(OgrDriverInfo(".gtm",      "GPSTrackMaker",  true,     true,   GDAL_OF_VECTOR));
@@ -203,7 +203,7 @@ std::shared_ptr<GDALDataset> OgrUtilities::openDataSource(const QString& url, bo
 //    options["Z_POSSIBLE_NAMES"] = ConfigOptions().getOgrReaderCsvZfield();
     options["KEEP_GEOM_COLUMNS"] = ConfigOptions().getOgrReaderCsvKeepGeomFields();
   }
-  if (QString(driverInfo._driverName) == "OGR_OGDI")
+  else if (QString(driverInfo._driverName) == "OGR_OGDI")
   {
     // From the GDAL docs:
     // From GDAL/OGR 1.8.0, setting the OGR_OGDI_LAUNDER_LAYER_NAMES configuration option
@@ -211,6 +211,10 @@ std::shared_ptr<GDALDataset> OgrUtilities::openDataSource(const QString& url, bo
     // For example : watrcrsl_hydro instead of 'watrcrsl@hydro(*)_line'
     options["OGR_OGDI_LAUNDER_LAYER_NAMES"] = ConfigOptions().getOgrReaderOgdiLaunderLayerNames();
   }
+  else if (QString(driverInfo._driverName) == "LIBKML")
+  {
+    options["OSM_USE_CUSTOM_INDEXING"] = "NO";
+  }
 
   std::shared_ptr<GDALDataset> result(static_cast<GDALDataset*>(GDALOpenEx(url.toUtf8().data(),
     driverInfo._driverType, (driverInfo._driverName != NULL ? drivers : NULL), options.getCrypticOptions(), NULL)));
Clone this wiki locally