diff --git a/gpxsee.qrc b/gpxsee.qrc index 8a1a9b40..c40bd291 100644 --- a/gpxsee.qrc +++ b/gpxsee.qrc @@ -331,6 +331,7 @@ icons/map/marine/international-maritime-boundary.png icons/map/marine/straight-territorial-sea-baseline.png icons/map/marine/seaward-limit-of-territorial-sea.png + icons/map/marine/seaward-limit-of-contiguous-zone.png diff --git a/icons/map/marine/seaward-limit-of-contiguous-zone.png b/icons/map/marine/seaward-limit-of-contiguous-zone.png new file mode 100644 index 00000000..b9c41e0e Binary files /dev/null and b/icons/map/marine/seaward-limit-of-contiguous-zone.png differ diff --git a/src/map/ENC/attributes.h b/src/map/ENC/attributes.h index 153960b0..8502882b 100644 --- a/src/map/ENC/attributes.h +++ b/src/map/ENC/attributes.h @@ -26,6 +26,7 @@ #define DRVAL1 87 #define ELEVAT 90 #define FUNCTN 94 +#define JRSDTN 103 #define LITVIS 108 #define OBJNAM 116 #define ORIENT 117 diff --git a/src/map/ENC/mapdata.cpp b/src/map/ENC/mapdata.cpp index 98ce2b1e..924bb393 100644 --- a/src/map/ENC/mapdata.cpp +++ b/src/map/ENC/mapdata.cpp @@ -488,6 +488,8 @@ MapData::Poly::Poly(uint type, const Polygon &path, const Attributes &attr, subtype = CATSLC; else if (type == I_SLCONS) subtype = I_CATSLC; + else if (type == ADMARE) + subtype = JRSDTN; switch (type) { case DEPARE: diff --git a/src/map/ENC/objects.h b/src/map/ENC/objects.h index aea5ebce..b393893b 100644 --- a/src/map/ENC/objects.h +++ b/src/map/ENC/objects.h @@ -4,6 +4,7 @@ #define TYPE(t) ((t)<<16) #define SUBTYPE(t, s) (((t)<<16)|(s)) +#define ADMARE 1 #define AIRARE 2 #define ACHBRT 3 #define ACHARE 4 @@ -88,6 +89,8 @@ #define SLOTOP 126 #define SMCFAC 128 #define SOUNDG 129 +#define STSLNE 132 +#define TESARE 135 #define TSELNE 145 #define TSSBND 146 #define TSSLPT 148 diff --git a/src/map/ENC/style.cpp b/src/map/ENC/style.cpp index e4939ef5..9dd5a6ac 100644 --- a/src/map/ENC/style.cpp +++ b/src/map/ENC/style.cpp @@ -288,10 +288,14 @@ void Style::polygonStyle() _polygons[SUBTYPE(I_BERTHS, 6)] = _polygons[TYPE(BERTHS)]; _polygons[TYPE(I_TRNBSN)] = Polygon(Qt::NoBrush, QPen(QColor(0xeb, 0x49, 0xeb), 1, Qt::DashLine)); - _polygons[TYPE(CONZNE)] = Polygon(Qt::NoBrush, QPen(QColor(0xeb, 0x49, 0xeb), - 1, Qt::DashDotLine)); _polygons[TYPE(PILBOP)] = Polygon(Qt::NoBrush, QPen(QColor(0xeb, 0x49, 0xeb), 1, Qt::DashLine)); + _polygons[TYPE(CONZNE)] = Polygon( + QImage(":/marine/seaward-limit-of-contiguous-zone.png")); + _polygons[TYPE(TESARE)] = Polygon( + QImage(":/marine/seaward-limit-of-territorial-sea.png")); + _polygons[SUBTYPE(ADMARE, 2)] = Polygon( + QImage(":/marine/international-maritime-boundary.png")); _drawOrder << TYPE(LNDARE) << SUBTYPE(DEPARE, 0) << SUBTYPE(DEPARE, 1) @@ -339,7 +343,8 @@ void Style::polygonStyle() << SUBTYPE(I_RESARE, 25) << SUBTYPE(RESARE, 26) << SUBTYPE(I_RESARE, 26) << TYPE(CBLARE) << TYPE(PIPARE) << TYPE(PRCARE) << TYPE(I_TRNBSN) << TYPE(PILBOP) << SUBTYPE(MARCUL, 0) << SUBTYPE(MARCUL, 1) - << SUBTYPE(MARCUL, 2) << SUBTYPE(MARCUL, 3) << TYPE(CONZNE); + << SUBTYPE(MARCUL, 2) << SUBTYPE(MARCUL, 3) << TYPE(CONZNE) + << TYPE(TESARE) << SUBTYPE(ADMARE, 2); } void Style::lineStyle(qreal ratio) @@ -428,6 +433,8 @@ void Style::lineStyle(qreal ratio) Qt::DashLine)); _lines[SUBTYPE(RDOCAL, 4)] = Line(QPen(QColor(0xeb, 0x49, 0xeb), 1, Qt::DashLine)); + _lines[TYPE(STSLNE)] = Line( + QImage(":/marine/straight-territorial-sea-baseline.png")); } void Style::pointStyle(qreal ratio)