diff --git a/src/mbgl/tile/vector_tile_data.cpp b/src/mbgl/tile/vector_tile_data.cpp index b0290d4d4..232f2481d 100644 --- a/src/mbgl/tile/vector_tile_data.cpp +++ b/src/mbgl/tile/vector_tile_data.cpp @@ -1,5 +1,6 @@ #include #include +#include namespace mbgl { @@ -40,7 +41,15 @@ FeatureIdentifier VectorTileFeature::getID() const { const GeometryCollection& VectorTileFeature::getGeometries() const { if (!lines) { const auto scale = static_cast(util::EXTENT) / feature.getExtent(); - lines = feature.getGeometries(scale); + + try { + lines = feature.getGeometries(scale); + } + catch(const std::runtime_error& ex) { + Log::Error(Event::ParseTile, "Could not get geometries: %s", ex.what()); + lines = GeometryCollection(); + } + if (feature.getVersion() < 2 && feature.getType() == mapbox::vector_tile::GeomType::POLYGON) { lines = fixupPolygons(*lines); }