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);