diff --git a/gpxsee.qrc b/gpxsee.qrc index 0a75cbfa..1dd6164d 100644 --- a/gpxsee.qrc +++ b/gpxsee.qrc @@ -176,6 +176,9 @@ icons/map/marine/fence-line.png icons/map/marine/crane.png icons/map/marine/distance-mark.png + icons/map/marine/conveyor-line.png + icons/map/marine/pipeline-overhead.png + icons/map/marine/coast-guard.png diff --git a/icons/map/marine/coast-guard.png b/icons/map/marine/coast-guard.png new file mode 100644 index 00000000..2e578de2 Binary files /dev/null and b/icons/map/marine/coast-guard.png differ diff --git a/icons/map/marine/conveyor-line.png b/icons/map/marine/conveyor-line.png new file mode 100644 index 00000000..38e88999 Binary files /dev/null and b/icons/map/marine/conveyor-line.png differ diff --git a/icons/map/marine/pipeline-overhead.png b/icons/map/marine/pipeline-overhead.png new file mode 100644 index 00000000..e1331f92 Binary files /dev/null and b/icons/map/marine/pipeline-overhead.png differ diff --git a/src/map/ENC/iso8211.cpp b/src/map/ENC/iso8211.cpp index df7dcffc..05d809ae 100644 --- a/src/map/ENC/iso8211.cpp +++ b/src/map/ENC/iso8211.cpp @@ -194,7 +194,7 @@ bool ISO8211::readDDR(QFile &file) int len = readDR(file, fields); if (len < 0) { - _errorString = "Not a ENC file"; + _errorString = "Not a ISO8211 file"; return false; } diff --git a/src/map/ENC/mapdata.cpp b/src/map/ENC/mapdata.cpp index 7387155e..40432464 100644 --- a/src/map/ENC/mapdata.cpp +++ b/src/map/ENC/mapdata.cpp @@ -717,8 +717,10 @@ MapData::MapData(const QString &path): _fileName(path) _errorString = ddf.errorString(); return; } - if (!processRecord(record, gv, COMF, _name)) + if (!processRecord(record, gv, COMF, _name)) { + _errorString = "Invalid S-57 record"; return; + } } Rect b; diff --git a/src/map/ENC/objects.h b/src/map/ENC/objects.h index 053a9707..f73bb4a3 100644 --- a/src/map/ENC/objects.h +++ b/src/map/ENC/objects.h @@ -22,7 +22,9 @@ #define CBLOHD 21 #define CBLSUB 22 #define CANALS 23 +#define CGUSTA 29 #define COALNE 30 +#define CONVYR 34 #define CRANES 35 #define DAMCON 38 #define DWRTPT 41 @@ -49,6 +51,7 @@ #define OBSTRN 86 #define OFSPLF 87 #define PILPNT 90 +#define PIPOHD 93 #define PIPSOL 94 #define PONTON 95 #define PRCARE 96 @@ -60,6 +63,7 @@ #define RIVERS 114 #define ROADWY 116 #define SLCONS 122 +#define SILTNK 125 #define SLOTOP 126 #define SOUNDG 129 #define TSELNE 145 @@ -81,6 +85,7 @@ #define I_FERYRT 17013 #define I_HULKES 17020 #define I_PONTON 17021 +#define I_PIPOHD 17024 #define I_FLODOC 17025 #define I_BCNLAT 17028 #define I_BOYLAT 17029 diff --git a/src/map/ENC/style.cpp b/src/map/ENC/style.cpp index 848baa43..571f9396 100644 --- a/src/map/ENC/style.cpp +++ b/src/map/ENC/style.cpp @@ -36,6 +36,8 @@ void Style::defaultPolygonStyle() Qt::DashDotDotLine)); _polygons[TYPE(OBSTRN)] = Polygon(Qt::NoBrush, QPen(QColor("#000000"), 1.5, Qt::DotLine)); + _polygons[TYPE(UWTROC)] = Polygon(Qt::NoBrush, QPen(QColor("#000000"), 1.5, + Qt::DotLine)); _polygons[TYPE(PONTON)] = Polygon(QBrush("#333333")); _polygons[TYPE(I_PONTON)] = Polygon(QBrush("#333333")); _polygons[TYPE(HULKES)] = Polygon(QBrush("#333333")); @@ -82,6 +84,8 @@ void Style::defaultPolygonStyle() _polygons[TYPE(I_GATCON)] = Polygon(QBrush("#000000")); _polygons[TYPE(I_TERMNL)] = Polygon(QBrush(QColor("#b8b04b")), QPen(QColor("#966118"))); + _polygons[TYPE(SILTNK)] = Polygon(QBrush("#d98b21"), QPen(QColor("#966118"), + 2)); _drawOrder << TYPE(M_COVR) << TYPE(LNDARE) << SUBTYPE(DEPARE, 0) @@ -89,14 +93,15 @@ void Style::defaultPolygonStyle() << TYPE(UNSARE) << SUBTYPE(DEPARE, 4) << SUBTYPE(DEPARE, 5) << SUBTYPE(DEPARE, 6) << TYPE(LAKARE) << TYPE(CANALS) << TYPE(DYKCON) << TYPE(RIVERS) << TYPE(DRGARE) << TYPE(FAIRWY) << TYPE(BUAARE) - << TYPE(BUISGL) << TYPE(AIRARE) << TYPE(BRIDGE) << TYPE(I_BRIDGE) - << TYPE(I_TERMNL) << TYPE(SLCONS) << TYPE(I_SLCONS) << TYPE(PONTON) - << TYPE(I_PONTON) << TYPE(HULKES) << TYPE(I_HULKES) << TYPE(FLODOC) - << TYPE(I_FLODOC) << TYPE(DRYDOC) << TYPE(DAMCON) << TYPE(PYLONS) - << TYPE(MORFAC) << TYPE(GATCON) << TYPE(I_GATCON) << TYPE(DMPGRD) - << TYPE(TSEZNE) << TYPE(OBSTRN) << TYPE(DWRTPT) << SUBTYPE(ACHARE, 1) - << SUBTYPE(I_ACHARE, 1) << SUBTYPE(RESARE, 9) << SUBTYPE(RESARE, 2) - << SUBTYPE(I_RESARE, 2) << TYPE(PRCARE); + << TYPE(BUISGL) << TYPE(SILTNK) << TYPE(AIRARE) << TYPE(BRIDGE) + << TYPE(I_BRIDGE) << TYPE(I_TERMNL) << TYPE(SLCONS) << TYPE(I_SLCONS) + << TYPE(PONTON) << TYPE(I_PONTON) << TYPE(HULKES) << TYPE(I_HULKES) + << TYPE(FLODOC) << TYPE(I_FLODOC) << TYPE(DRYDOC) << TYPE(DAMCON) + << TYPE(PYLONS) << TYPE(MORFAC) << TYPE(GATCON) << TYPE(I_GATCON) + << TYPE(DMPGRD) << TYPE(TSEZNE) << TYPE(OBSTRN) << TYPE(UWTROC) + << TYPE(DWRTPT) << SUBTYPE(ACHARE, 1) << SUBTYPE(I_ACHARE, 1) + << SUBTYPE(RESARE, 9) << SUBTYPE(RESARE, 2) << SUBTYPE(I_RESARE, 2) + << TYPE(PRCARE); } void Style::defaultLineStyle() @@ -141,6 +146,9 @@ void Style::defaultLineStyle() _lines[TYPE(BERTHS)] = Line(QPen(QColor("#333333"), 2)); _lines[TYPE(I_BERTHS)] = Line(QPen(QColor("#333333"), 2)); _lines[TYPE(FNCLNE)] = Line(QImage(":/marine/fence-line.png")); + _lines[TYPE(CONVYR)] = Line(QImage(":/marine/conveyor-line.png")); + _lines[TYPE(PIPOHD)] = Line(QImage(":/marine/pipeline-overhead.png")); + _lines[TYPE(I_PIPOHD)] = Line(QImage(":/marine/pipeline-overhead.png")); } void Style::defaultPointStyle() @@ -200,6 +208,7 @@ void Style::defaultPointStyle() _points[SUBTYPE(I_DISMAR, 1)] = Point(QImage(":/marine/distance-mark.png")); _points[SUBTYPE(I_DISMAR, 1)].setTextColor(QColor("#ffffff")); _points[SUBTYPE(I_DISMAR, 1)].setTextFontSize(Small); + _points[TYPE(CGUSTA)] = Point(QImage(":/marine/coast-guard.png")); } Style::Style()