diff --git a/src/lib/marble/StyleBuilder.cpp b/src/lib/marble/StyleBuilder.cpp --- a/src/lib/marble/StyleBuilder.cpp +++ b/src/lib/marble/StyleBuilder.cpp @@ -605,6 +605,8 @@ s_defaultStyle[GeoDataFeature::AdminLevel10] = StyleBuilder::Private::createStyle(1.5, 0.0, "#DF9CCF", "#DF9CCF", false, true, Qt::SolidPattern, Qt::DotLine, Qt::FlatCap, false, QVector< qreal >() << 0.3 << 0.3 ); s_defaultStyle[GeoDataFeature::AdminLevel11] = StyleBuilder::Private::createStyle(1.5, 0.0, "#DF9CCF", "#DF9CCF", false, true, Qt::SolidPattern, Qt::DotLine, Qt::FlatCap, false, QVector< qreal >() << 0.3 << 0.3 ); + s_defaultStyle[GeoDataFeature::BoundaryMaritime] = StyleBuilder::Private::createStyle(2.0, 0.0, "#88b3bf", "#88b3bf", false, true, Qt::SolidPattern, Qt::SolidLine, Qt::FlatCap, false ); + s_defaultStyle[GeoDataFeature::Satellite] = GeoDataStyle::Ptr(new GeoDataStyle( MarbleDirs::path( "bitmaps/satellite.png" ), QFont( defaultFamily, defaultSize, 50, false ), defaultLabelColor )); @@ -757,7 +759,16 @@ GeoDataLineStyle lineStyle = style->lineStyle(); lineStyle.setCosmeticOutline(true); - if (visualCategory >= GeoDataFeature::HighwayService && + if(visualCategory == GeoDataFeature::AdminLevel2){ + if (osmData.containsTag("maritime", "yes") ) { + lineStyle.setColor("#88b3bf"); + polyStyle.setColor("#88b3bf"); + if( osmData.containsTag("marble:disputed", "yes") ){ + lineStyle.setPenStyle( Qt::DashLine ); + } + } + } + else if (visualCategory >= GeoDataFeature::HighwayService && visualCategory <= GeoDataFeature::HighwayMotorway) { if (parameters.tileLevel >= 0 && parameters.tileLevel <= 7) { @@ -807,7 +818,6 @@ lineStyle.setPhysicalWidth(ok ? qBound(0.1f, width, 200.0f) : 0.0f); } } - GeoDataStyle::Ptr newStyle(new GeoDataStyle(*style)); newStyle->setPolyStyle(polyStyle); newStyle->setLineStyle(lineStyle); diff --git a/src/lib/marble/geodata/data/GeoDataFeature.h b/src/lib/marble/geodata/data/GeoDataFeature.h --- a/src/lib/marble/geodata/data/GeoDataFeature.h +++ b/src/lib/marble/geodata/data/GeoDataFeature.h @@ -413,6 +413,8 @@ AdminLevel10, AdminLevel11, + BoundaryMaritime, + //Custom OSM Tags Landmass, UrbanArea, diff --git a/src/lib/marble/geodata/data/GeoDataFeature.cpp b/src/lib/marble/geodata/data/GeoDataFeature.cpp --- a/src/lib/marble/geodata/data/GeoDataFeature.cpp +++ b/src/lib/marble/geodata/data/GeoDataFeature.cpp @@ -451,6 +451,7 @@ s_visualCategoryNames[AdminLevel9] = "AdminLevel9"; s_visualCategoryNames[AdminLevel10] = "AdminLevel10"; s_visualCategoryNames[AdminLevel11] = "AdminLevel11"; + s_visualCategoryNames[BoundaryMaritime] = "BoundaryMaritime"; s_visualCategoryNames[LastIndex] = "LastIndex"; } diff --git a/src/lib/marble/layers/GeometryLayer.cpp b/src/lib/marble/layers/GeometryLayer.cpp --- a/src/lib/marble/layers/GeometryLayer.cpp +++ b/src/lib/marble/layers/GeometryLayer.cpp @@ -360,7 +360,7 @@ s_defaultMinZoomLevels[GeoDataFeature::AdminLevel10] = 8; s_defaultMinZoomLevels[GeoDataFeature::AdminLevel11] = 8; - + s_defaultMinZoomLevels[GeoDataFeature::BoundaryMaritime] = 1; for ( int i = 0; i < GeoDataFeature::LastIndex; ++i ) { s_maximumZoomLevel = qMax( s_maximumZoomLevel, s_defaultMinZoomLevels[i] ); } diff --git a/src/lib/marble/osm/OsmPresetLibrary.cpp b/src/lib/marble/osm/OsmPresetLibrary.cpp --- a/src/lib/marble/osm/OsmPresetLibrary.cpp +++ b/src/lib/marble/osm/OsmPresetLibrary.cpp @@ -44,6 +44,8 @@ s_visualCategories[ OsmTag( "admin_level", "10" ) ] = GeoDataFeature::AdminLevel10; s_visualCategories[ OsmTag( "admin_level", "11" ) ] = GeoDataFeature::AdminLevel11; + s_visualCategories[ OsmTag( "boundary", "maritime" ) ] = GeoDataFeature::BoundaryMaritime; + s_visualCategories[ OsmTag( "amenity", "restaurant" ) ] = GeoDataFeature::FoodRestaurant; s_visualCategories[ OsmTag( "amenity", "fast_food" ) ] = GeoDataFeature::FoodFastFood; s_visualCategories[ OsmTag( "amenity", "pub" ) ] = GeoDataFeature::FoodPub; diff --git a/tools/shp2osm/polyshp2osm.py b/tools/shp2osm/polyshp2osm.py --- a/tools/shp2osm/polyshp2osm.py +++ b/tools/shp2osm/polyshp2osm.py @@ -258,11 +258,11 @@ 'Pacific Groupings': [], 'Admin-1 boundary': [('boundary', 'administrative'), ('admin_level', '4')], 'Map unit boundary':[], - 'Marine Indicator Treaty':[], - 'Marine Indicator Median':[], - 'Boundary Treaty':[], - 'Marine Indicator 200 mi nl':[], - 'Marine Indicator Disputed':[], + 'Marine Indicator Treaty':[('boundary', 'administrative'), ('admin_level', '2'), ('maritime', 'yes'), ('border_type', 'territorial')], + 'Marine Indicator Median':[('boundary', 'administrative'), ('admin_level', '2'), ('maritime', 'yes'), ('border_type', 'territorial')], + 'Boundary Treaty':[('boundary', 'administrative'), ('admin_level', '2'), ('maritime', 'yes'), ('border_type', 'territorial')], + 'Marine Indicator 200 mi nl':[('boundary', 'maritime'), ('border_type', 'eez')], + 'Marine Indicator Disputed':[('boundary', 'administrative'), ('admin_level', '2'), ('maritime', 'yes'), ('border_type', 'territorial'), ('marble:disputed', 'yes')], 'Claim boundary': [('boundary', 'administrative'), ('admin_level', '2')], 'Reference line': [('boundary', 'administrative'), ('admin_level', '2')], 'Breakaway': [('boundary', 'administrative'), ('admin_level', '2')],