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)