diff --git a/src/plugins/runner/osm/OsmRelation.cpp b/src/plugins/runner/osm/OsmRelation.cpp --- a/src/plugins/runner/osm/OsmRelation.cpp +++ b/src/plugins/runner/osm/OsmRelation.cpp @@ -60,12 +60,15 @@ GeoDataFeature::GeoDataVisualCategory outerCategory = OsmPresetLibrary::determineVisualCategory(m_osmData); if (outerCategory == GeoDataFeature::None) { // Try to determine the visual category from the relation members + bool categoryChanged = false; foreach(qint64 wayId, outerWays) { GeoDataFeature::GeoDataVisualCategory const category = OsmPresetLibrary::determineVisualCategory(ways[wayId].osmData()); - if (category != GeoDataFeature::None) { - outerCategory = category; + if( categoryChanged && category != outerCategory ) { + outerCategory = GeoDataFeature::None; break; } + outerCategory = category; + categoryChanged = true; } } foreach(qint64 wayId, outerWays) {