diff --git a/gpxsee.qrc b/gpxsee.qrc
index 9447f545..50b98bac 100644
--- a/gpxsee.qrc
+++ b/gpxsee.qrc
@@ -166,6 +166,8 @@
icons/map/marine/windmill.png
icons/map/marine/flagstaff.png
icons/map/marine/deviation-dolphin.png
+ icons/map/marine/kelp.png
+ icons/map/marine/eddies.png
diff --git a/icons/map/marine/breakers.png b/icons/map/marine/breakers.png
index aca4ca16..089d2a5a 100644
Binary files a/icons/map/marine/breakers.png and b/icons/map/marine/breakers.png differ
diff --git a/icons/map/marine/eddies.png b/icons/map/marine/eddies.png
new file mode 100644
index 00000000..db6c6de1
Binary files /dev/null and b/icons/map/marine/eddies.png differ
diff --git a/icons/map/marine/kelp.png b/icons/map/marine/kelp.png
new file mode 100644
index 00000000..cfb0695a
Binary files /dev/null and b/icons/map/marine/kelp.png differ
diff --git a/icons/map/marine/overfalls.png b/icons/map/marine/overfalls.png
index 269bb0d8..105c0963 100644
Binary files a/icons/map/marine/overfalls.png and b/icons/map/marine/overfalls.png differ
diff --git a/src/map/ENC/attributes.h b/src/map/ENC/attributes.h
index c76f78fd..9c7bb18b 100644
--- a/src/map/ENC/attributes.h
+++ b/src/map/ENC/attributes.h
@@ -14,6 +14,7 @@
#define CATSIL 63
#define CATSCF 65
#define CATWAT 69
+#define CATWED 70
#define CATWRK 71
#define COMCHA 77
#define CURVEL 84
diff --git a/src/map/ENC/mapdata.cpp b/src/map/ENC/mapdata.cpp
index b572e6f7..a0300abb 100644
--- a/src/map/ENC/mapdata.cpp
+++ b/src/map/ENC/mapdata.cpp
@@ -241,6 +241,18 @@ static QString sistat(uint type)
}
}
+static QString weed(uint type)
+{
+ switch (type) {
+ case 2:
+ return "Wd";
+ case 3:
+ return "Sg";
+ default:
+ return QString();
+ }
+}
+
MapData::Point::Point(uint type, const Coordinates &c, const QString &label,
const QVector ¶ms) : _type(type), _pos(c), _label(label)
{
@@ -262,6 +274,9 @@ MapData::Point::Point(uint type, const Coordinates &c, const QString &label,
if (_label.isEmpty())
_label = sistat(type & 0xFF);
_type = TYPE(SISTAT);
+ } else if (type>>16 == WEDKLP) {
+ if (_label.isEmpty())
+ _label = weed(type & 0xFF);
} else if (type>>16 == LNDELV && params.size()) {
if (_label.isEmpty())
_label = QString::fromLatin1(params.at(0))
@@ -558,7 +573,8 @@ MapData::Attr MapData::pointAttr(const ISO8211::Record &r, uint OBJL)
|| (OBJL == I_SISTAT && key == I_CATSIT)
|| (OBJL == RDOCAL && key == TRAFIC)
|| (OBJL == I_RDOCAL && key == TRAFIC)
- || (OBJL == SILTNK && key == CATSIL))
+ || (OBJL == SILTNK && key == CATSIL)
+ || (OBJL == WEDKLP && key == CATWED))
subtype = av.at(1).toByteArray().toUInt();
else if (OBJL == I_DISMAR && key == CATDIS)
subtype |= av.at(1).toByteArray().toUInt();
diff --git a/src/map/ENC/objects.h b/src/map/ENC/objects.h
index 81a89765..caf28b51 100644
--- a/src/map/ENC/objects.h
+++ b/src/map/ENC/objects.h
@@ -92,6 +92,7 @@
#define UWTROC 153
#define UNSARE 154
#define WATTUR 156
+#define WEDKLP 158
#define WRECKS 159
#define M_COVR 302
diff --git a/src/map/ENC/style.cpp b/src/map/ENC/style.cpp
index 4545e5a8..85460a8b 100644
--- a/src/map/ENC/style.cpp
+++ b/src/map/ENC/style.cpp
@@ -323,12 +323,15 @@ void Style::pointStyle(qreal ratio)
_points[TYPE(PYLONS)] = Point(QImage(":/marine/pylon.png"));
_points[SUBTYPE(I_BERTHS, 6)] = Point(QImage(":/marine/fleeting-area.png"));
_points[SUBTYPE(WATTUR, 1)] = Point(QImage(":/marine/breakers.png"));
+ _points[SUBTYPE(WATTUR, 2)] = Point(QImage(":/marine/eddies.png"));
_points[SUBTYPE(WATTUR, 3)] = Point(QImage(":/marine/overfalls.png"));
_points[SUBTYPE(WATTUR, 4)] = Point(QImage(":/marine/overfalls.png"));
_points[TYPE(PILBOP)] = Point(QImage(":/marine/boarding-place.png"));
_points[TYPE(SISTAT)] = Point(QImage(":/marine/pylon.png"));
_points[TYPE(SLCONS)] = Point(QImage(":/marine/construction.png"), Small);
_points[TYPE(CURENT)] = Point(QImage(":/marine/current.png"));
+ _points[SUBTYPE(WEDKLP, 0)] = Point(QImage(":/marine/kelp.png"));
+ _points[SUBTYPE(WEDKLP, 1)] = Point(QImage(":/marine/kelp.png"));
_points[SUBTYPE(SMCFAC, 7)] = Point(svg2img(":/POI/restaurant-11.svg",
ratio), Small);