Open expression method of QGIS electronic chart based on graphic
By using QGIS and its QML style language and rendering engine, the problem of closed electronic nautical chart standards has been solved, and standardized display and efficiency improvement of marine geographic information systems have been achieved.
Patent Information
- Authority / Receiving Office
- CN · China
- Patent Type
- Patents(China)
- Current Assignee / Owner
- THE CHINESE PEOPLES LIBERATION ARMY 92859 TROOPS
- Filing Date
- 2023-01-10
- Publication Date
- 2026-07-14
Smart Images

Figure CN116580165B_ABST
Abstract
Description
Technical Field
[0001] This invention belongs to the field of geographic information technology, and in particular to an open-ended graphic representation method based on QGIS electronic nautical charts. Background Technology
[0002] As a carrier of various maritime elements, nautical charts are the "eyes" for understanding the ocean and an indispensable tool for ocean development. Compared to common land maps, nautical charts also express the real world through symbolic language, but their symbols form a self-contained system with strong professional requirements. Based on the medium, nautical chart symbols are mainly divided into paper chart symbols and electronic chart symbols. For paper chart symbols, most chart-producing countries currently follow the International Chart Standard (standard code S-4) established by the International Hydrographic Organization (IHO), although some countries may make appropriate adjustments based on their own circumstances. For electronic chart symbols, countries worldwide generally adopt the IHO's S-52 standard (specifically, the symbol library is named Preslib), and its symbol styles differ significantly from those of paper chart symbols. Electronic charts provide important basic information for various marine geographic information systems, but their S-52 display standard is relatively closed, data is difficult to obtain, and the threshold is high. Specialized information systems need to be developed to achieve standardized display, which to some extent limits the technological development and industry application of marine geographic information systems.
[0003] To address the difficulty in using existing electronic nautical chart standards, which involve two aspects: symbol primitives and symbolization instructions, several papers in recent years have explored open-ended solutions with some success. Regarding symbol primitives, the existing S-52 standard uses HPGL instructions, which are complex to construct and parse, and have very little software support. Improvement methods include TrueType, PostScript, and SVG. As for symbolization instructions, the S-52 standardization includes basic symbolization and conditional symbolization. The former is a set of mapping rules that directly achieve "element → symbol," while the latter is a set of mapping rules that require complex nested / jump functions. Existing literature mainly explores modifications using SLD (Symbolized Ledger), but these only focus on basic symbolization, neglecting conditional symbolization, and the symbolic expression capabilities of SLD itself are relatively limited. Summary of the Invention
[0004] The purpose of this invention is to overcome the shortcomings of the prior art and propose an open graphic representation method based on QGIS electronic nautical charts. This method uses QGIS and its QML style language to achieve standardized display of electronic nautical charts, providing an effective way to establish a marine geographic information system with electronic nautical charts as the base map.
[0005] The technical problem solved by this invention is achieved through the following technical solution:
[0006] An open-ended graphic representation method based on QGIS electronic nautical charts includes the following steps;
[0007] Step 1: Use the GDAL library to construct an OpenGIS geometric model from the electronic nautical chart data, and at the same time read the attribute information corresponding to the geometric model;
[0008] Step 2: Configure a QML file for each type of feature containing attribute information;
[0009] Step 3: Use QML and SVG through the rendering engine to display the electronic chart data normally.
[0010] Moreover, the specific implementation method of step 2 is as follows: first, the electronic chart data is preprocessed, and then the preprocessed electronic chart data is classified into points, lines and surfaces, and basic symbolization is performed using the S-52 standard. After that, conditional symbolization is processed.
[0011] Furthermore, the specific implementation method of the preprocessing is as follows: the variables in the original SVG file of the electronic chart data chart symbols are replaced with actual values, wherein the variables are stored in the svgStyle.css file, and the original SVG file of the electronic chart data chart symbols is downloaded from the IHO website.
[0012] Furthermore, the basic symbolization processing using the S-52 standard includes processing point objects, line objects, area objects, and text annotations, wherein processing point objects includes point objects without attributes and point objects with attributes.
[0013] The process for handling objects without attributes is as follows:
[0014] ① Select "Single symbol" as the symbol type;
[0015] ② Select the SVG marker in the Symbol layer marker;
[0016] ③ Following the symbolization instructions, select Embed File and import the .svg symbol;
[0017] ④ Set the symbol size Width and Height. When the attribute condition includes the ORIENT attribute, select Edit in Rotation to edit and rotate the symbol according to ORIENT.
[0018] ⑤ Set the symbol level in advanced-symbol levels;
[0019] The processing procedure for objects with attribute points is as follows:
[0020] ① The symbolization type should be rule-based;
[0021] ② Add the same number of symbols based on the number of conditions;
[0022] ③ Symbolize according to different attribute conditions. The symbolization method for each symbol is the same as that for point objects without attributes.
[0023] ④ When the attribute condition includes the ORIENT attribute, select Edit in Rotation to edit and rotate the symbol according to ORIENT;
[0024] ⑤ Set the symbol level in Symbol Levels.
[0025] Furthermore, the processed line markers include line markers without attributes and line markers with attributes.
[0026] The processing procedure for objects without attribute lines is as follows:
[0027] ① Select "Single symbol" as the symbol type;
[0028] ② Symbolize according to the different line commands LS or LC;
[0029] ③ Set the symbol level in advanced-symbol levels;
[0030] The processing procedure for objects with attribute lines is as follows:
[0031] ① The symbolization type should be rule-based;
[0032] ② Add the corresponding number of symbols based on the number of conditions;
[0033] ③ Symbolize according to the different line commands LS or LC;
[0034] ④ Set the symbol level in Symbol Levels.
[0035] Furthermore, the specific implementation method for symbolization based on the line command LS is as follows:
[0036] In the LS command, select Simple line in the Symbol layer marker and set the symbol color, width, and type;
[0037] The specific implementation method for symbolization based on the line command LC is as follows:
[0038] The LC command is configured according to the XML format of the line symbol file. The LC file includes two types of data: dash and symbol. For dash data, select Simple line in Symbol layer marker. The length of dash is set in dashpattern. For symbol, select Marker line in Symbol layer marker. Select SVGmarker for the symbol and set the symbol size.
[0039] Furthermore, the processed surface objects include surface objects without attributes and surface objects with attributes.
[0040] The process for handling objects without attributes is as follows:
[0041] ① Select "Single symbol" as the symbol type;
[0042] ② Symbolize according to the different face commands AC or AP;
[0043] ③ Set the symbol level in advanced-symbol levels;
[0044] The processing procedure for objects with attributes is as follows:
[0045] ① The symbolization type should be rule-based;
[0046] ② Add the corresponding number of symbols based on the number of conditions;
[0047] ③ Symbolize according to the different face commands AC or AP;
[0048] ④ Set the symbol level in Symbol Levels;
[0049] The specific implementation method for symbolization based on the surface command AC is as follows:
[0050] In the AC command, select Simple fill in the Symbol layer marker and set the fill color (Color).
[0051] The specific implementation method for symbolization based on the AP command is as follows:
[0052] In the AP command, select SVG fill in the Symbol layer marker to set the SVG symbol for the fill.
[0053] Furthermore, the processed text annotations include attribute-free text annotations and attribute-based text annotations.
[0054] The processing procedure for text annotations without attributes is as follows:
[0055] ① Select "Single labels" as the symbol type;
[0056] ② Symbolize according to the different text annotation commands TX or TE;
[0057] The processing procedure for attributed text annotations is as follows:
[0058] ① Choose rule-based labeling as the symbolization type;
[0059] ② Add the corresponding number of symbols based on the number of conditions;
[0060] ③ Symbolize according to the different text annotation commands TX or TE;
[0061] ④ Set the symbol level in Symbol Levels;
[0062] Furthermore, the specific implementation method for symbolization based on the text annotation command TX is as follows:
[0063] The TX command displays only a specific attribute of an object;
[0064] The specific implementation method for symbolization based on the text annotation command TE is as follows:
[0065] The TE command adds prefixes or suffixes to attributes or controls the number of significant digits, and sets the display content of the annotation (Label with), font (Font), font size (Size), style (Style), color (Color), number of texts displayed per line (Wraplineto), text placement (Quadrant), and offset (Offset X, Y).
[0066] The condition symbolization process is as follows: based on the specific content of the CS command in the Preslib symbol library, point, line, surface, and text annotation symbolization methods are combined. For nested and jump-to-complex sub-procedures, the script extension mechanism is used to embed and provide the main procedure call.
[0067] The advantages and positive effects of this invention are:
[0068] This invention constructs OpenGIS geometric models from electronic nautical chart data using the GDAL library, while simultaneously reading the corresponding attribute information from these models. It then configures QML files for each type of feature containing attribute information and finally uses a rendering engine to display the electronic nautical chart data correctly using QML and SVG. Addressing the issue of insufficient openness in IHO electronic nautical chart symbolization rules, this invention employs QGIS and its QML style language to achieve standardized display of electronic nautical charts, providing an effective approach for establishing marine geographic information systems based on electronic nautical charts. Attached Figure Description
[0069] Figure 1 This is a flowchart of the present invention;
[0070] Figure 2 This is a schematic diagram of the Symbology tab in this invention;
[0071] Figure 3 This is a schematic diagram of the Labels tab of the present invention;
[0072] Figure 4 This is a schematic diagram illustrating the substitution relationship between variable values and actual values in svgStyle.css of this invention;
[0073] Figure 5 This is a schematic diagram illustrating the replacement of variable values and actual values in svgStyle.css of this invention;
[0074] Figure 6 This is a schematic diagram of the modification result of the present invention;
[0075] Figure 7 Illustration 1 shows the symbolization of the point markers in this invention;
[0076] Figure 8 Illustration 2 shows the symbolization of the point markers in this invention;
[0077] Figure 9 Figure 3 illustrates the symbolization of the point markers in this invention;
[0078] Figure 10 Figure 4 illustrates the symbolization of the point markers in this invention;
[0079] Figure 11 Figure 5 illustrates the symbolization of the point markers in this invention;
[0080] Figure 12 This is a schematic diagram illustrating the symbolic representation of the LS line object in this invention;
[0081] Figure 13 This is a symbolic illustration of the LC line object of the present invention;
[0082] Figure 14 This is a schematic diagram of the XML format file of the present invention;
[0083] Figure 15 This is a schematic diagram illustrating the Dash setup method of the present invention;
[0084] Figure 16 This is a schematic diagram illustrating the method for setting symbols according to the present invention;
[0085] Figure 17 A schematic diagram illustrating the symbol offset setting of this invention;
[0086] Figure 18 This invention provides a symbolic representation of the attribute line objects.
[0087] Figure 19 This is a symbolic representation of the AC command surface of the present invention;
[0088] Figure 20 This is a symbolic illustration of the AP command surface of the present invention;
[0089] Figure 21 This is a schematic diagram illustrating the configuration method of point and line symbols in the surface object of the present invention;
[0090] Figure 22 This is a schematic diagram of the method for configuring attribute surface marker symbols according to the present invention;
[0091] Figure 23 This is a diagram illustrating the TX and TE text symbolization configuration of the present invention;
[0092] Figure 24 To set depth zone parameters using global variables;
[0093] Figure 25 A diagram illustrating the rules corresponding to the symbolization of the condition "DEPARE03";
[0094] Figure 26 A diagram illustrating the Python implementation method for the condition symbolization of "SEABED01". Detailed Implementation
[0095] The present invention will be further described in detail below with reference to the accompanying drawings.
[0096] This invention utilizes QGIS software, based on the S-52 standard, to convert S-57 data to an open standard, and to convert the closed S-52 standard to the QML open standard.
[0097] In the S-52 database, objects are categorized into three types based on points, lines, and polygons: ASYMREFS and ASYMREFT are polygon objects, LSYMREFS are line objects, and PSYMREFS and PSYMREFT are point objects. When using QGIS for data transformation, first load any S-57 dataset into QGIS as the foundation for the transformation. Then, based on the point, line, and polygon classifications, perform basic symbolization processing using the S-52 standard. Similarly, when loading and viewing data, it's necessary to select the corresponding data type.
[0098] In data processing, different layers are selected according to different data types, and symbolization is performed in the layer properties (double-click the S-57 data layer to open the layer properties panel). For symbolization of points, lines, and polygons, select the Symbolology tab, as shown below. Figure 2 As shown, the Labels tab is used to select text annotation symbolization. Figure 3 As shown.
[0099] An open-ended graphic representation method based on QGIS electronic nautical charts, such as Figure 1 As shown, it includes the following steps;
[0100] Step 1: Use the GDAL library to construct an OpenGIS geometric model from the electronic nautical chart data, and at the same time read the attribute information corresponding to the geometric model.
[0101] Step 2: Configure a QML file for each type of feature containing attribute information.
[0102] The specific implementation method of this step is as follows: First, the electronic chart data is preprocessed. Then, the preprocessed electronic chart data is classified into points, lines and surfaces, and basic symbolization is performed using the S-52 standard. After that, conditional symbolization is processed.
[0103] The specific implementation method of preprocessing is as follows: replace the variables in the original SVG file of electronic chart data chart symbols (downloaded from the IHO website) with the actual values (the variable values are stored in the svgStyle.css file).
[0104] Among them, such as Figure 4 The image shows the substitution relationship between variable values and actual values in svgStyle.css, as follows: Figure 5 As shown,
[0105] class="sl f0 sCHMGD",
[0106] It should be transformed into
[0107] style="stroke-linecap:round;stroke-linejoin:round;fill:none;
[0108] stroke:#C045D1"
[0109] The results of the renovation are as follows Figure 6 As shown.
[0110] Basic symbolization processing of S-57 data using the S-52 standard includes processing point objects, line objects, area objects, and text annotations. Processing point objects includes both attribute-less and attribute-containing point objects.
[0111] The process for handling objects without attributes is as follows:
[0112] ①, such as Figure 7 As shown, select Single symbol as the symbolization type;
[0113] ② Select the SVG marker in the Symbol layer marker;
[0114] ③, such as Figure 8 As shown, following the symbolization instructions, select EmbedFile and import .svg symbols; where EmbedFile is the embedded .svg data, so that the generated qml format file can be directly loaded and displayed on other computers;
[0115] ④ Set the symbol size Width and Height. When the attribute condition includes the ORIENT attribute, select Edit in Rotation to edit and rotate the symbol according to ORIENT.
[0116] ⑤, such as Figure 9 As shown, set the symbol level in advanced-symbol levels;
[0117] The processing procedure for objects with attribute points is as follows:
[0118] ①, such as Figure 10 As shown, the symbolization type is selected as Rule-based;
[0119] ② Add the same number of symbols based on the number of conditions;
[0120] ③ Symbolize according to different attribute conditions. The symbolization method for each symbol is the same as that for point objects without attributes.
[0121] ④, such as Figure 11As shown, when the attribute condition includes the ORIENT attribute, select Edit in Rotation to edit and rotate the symbol according to ORIENT.
[0122] ⑤ Set the symbol level in Symbol Levels.
[0123] Processing line markers includes line markers without attributes and line markers with attributes.
[0124] The processing procedure for objects without attribute lines is as follows:
[0125] ① Select "Single symbol" as the symbol type;
[0126] ② Symbolize according to the different line commands LS or LC;
[0127] ③ Set the symbol level in advanced-symbol levels;
[0128] The processing procedure for objects with attribute lines is as follows:
[0129] ① The symbolization type should be rule-based;
[0130] ② Add the corresponding number of symbols based on the number of conditions;
[0131] ③ Symbolize according to the different line commands LS or LC;
[0132] ④ Set the symbol level in Symbol Levels.
[0133] The specific implementation method for symbolization based on the line command LS is as follows:
[0134] like Figure 12 As shown, in the LS command, select Simple line in Symbol layer marker and set the symbol color, width, and type;
[0135] The specific implementation method for symbolization based on the line command LC is as follows:
[0136] like Figure 13 As shown, the LC command is configured according to the XML format of the line symbol file. The LC file includes two types of data: dash and symbol. For dash data, select "Simple line" in the Symbol layer marker. The dash length is set in the dashpattern. For symbols, select "Marker line" in the Symbol layer marker, choose the SVG marker, and set the symbol size. This results in the following: Figure 14 The XML file shown indicates that the symbol spacing is 8.6mm, the dash start point is 1, the length is 6, and the position of the symbol EMAREMG1 is 4. The dash settings are as follows: the first symbol length is 0, the space distance is 1; the second dash length is 6, the space distance is 1.6. See the effect for details. Figure 15 The method for setting the symbol is to select "with interval" in Marker placement, such as... Figure 16 As shown, the spacing is set to 8.6, the symbol spacing in the XML file, and the starting position of the symbol is set to 4 in Offset along line.
[0137] When there are multiple dashes, the spacing is set in the dash pattern; when there are multiple symbols, marker lines are repeatedly added and set. Additionally, the correctness of the LC command configuration can be checked in S-100. When symbols have offsets, they are set in the x and y values of the offset, such as... Figure 17 .
[0138] In some line files, the interval length in LineStyles is less than the length of the symbol. In this case, it should be configured according to the shortest length of the symbol. Pay attention to the configuration of with interval.
[0139] Processing surface objects includes surface objects without attributes and surface objects with attributes.
[0140] The process for handling objects without attributes is as follows:
[0141] ①, such as Figure 18 As shown, the symbolization type is set to Single symbol;
[0142] ② Symbolize according to the different face commands AC or AP;
[0143] ③ Set the symbol level in advanced-symbol levels;
[0144] The processing procedure for objects with attributes is as follows:
[0145] ① The symbolization type should be rule-based;
[0146] ② Add the corresponding number of symbols based on the number of conditions;
[0147] ③ Symbolize according to the different face commands AC or AP;
[0148] ④, such as Figure 22As shown, the symbol level is set in Symbol Levels.
[0149] The specific implementation method for symbolization based on the face command AC is as follows:
[0150] like Figure 18 As shown, in the AC command, select Simple fill in the Symbol layer marker and set the fill color (Color).
[0151] The specific implementation method for symbolization based on the AP command is as follows:
[0152] like Figure 20 As shown, in the AP command, select SVG fill in the Symbol layer marker to set the SVG symbol for the fill.
[0153] like Figure 21 As shown, the symbolization of area objects includes the configuration of point objects and line objects. The method for setting point objects is the same as the symbolization method for point objects mentioned above. The only difference is that the symbol configuration method in QGIS is different. Specifically, in Symbol layer marker, Centroid fill is selected and SVG marker is used for filling. If Simple fill is LC or LS, it is configured according to the method mentioned above.
[0154] Text annotation processing includes text annotations without attributes and text annotations with attributes.
[0155] The processing procedure for text annotations without attributes is as follows:
[0156] ①, such as Figure 22 As shown, the symbolization type is set to Single labels;
[0157] ② Symbolize according to the different text annotation commands TX or TE;
[0158] The processing procedure for attributed text annotations is as follows:
[0159] ① Choose rule-based labeling as the symbolization type;
[0160] ② Add the corresponding number of symbols based on the number of conditions;
[0161] ③ Symbolize according to the different text annotation commands TX or TE;
[0162] ④ Set the symbol level in Symbol Levels.
[0163] like Figure 23As shown, the specific implementation method for symbolization based on the text annotation command TX is as follows:
[0164] The TX command displays only a specific attribute of an object;
[0165] The specific implementation method for symbolization based on the text annotation command TE is as follows:
[0166] The TE command adds prefixes or suffixes to attributes or controls the number of significant digits, and sets the display content of the annotation (Label with), font (Font), font size (Size), style (Style), color (Color), number of texts displayed per line (Wraplineto), text placement (Quadrant), and offset (Offset X, Y).
[0167] The conditional symbolization process in this step is as follows: based on the specific content of the CS command in the Preslib symbol library, the aforementioned symbolization methods such as point markers, line markers, surface markers, and text annotations are combined and used. For complex sub-procedures such as nesting and jumps, the Python script extension mechanism is used to embed them and provide the main procedure call.
[0168] In this embodiment, the electronic nautical chart condition symbolization in QGIS should be extended using Python, while also requiring the comprehensive utilization of symbol conversion, rule construction, and global variables. Taking the "DEPARE03" condition symbolization used in the electronic nautical chart depth zone (DEPARE) element as an example, since it uses five variables—deep water contour lines (DEEP_CONTOUR), safety contour lines (SAFETY_CONTOUR), shallow water contour lines (SHALLOW_CONTOUR), shallow water pattern (SHALLOW_PATTERN), and two-color shading (TWO_SHADES)—it is necessary to create these variables in QGIS and assign them default values, such as... Figure 24 As shown; corresponding to the S-52 standard lookup table, the conditional symbolization of depth area (DEPARE) features in QGIS also uses "rule-based" as the entry point, calling the corresponding Python function "SEABED01" in the expression of each "rule," such as... Figures 25-26 As shown.
[0169] Step 3: Use QML and SVG through the rendering engine to display the electronic chart data normally.
[0170] To verify the effectiveness of the invention, C1100104.000 nautical chart data was used as an example. There were no significant differences between the two overall; only minor differences existed, which did not affect the overall display effect. In terms of display effect, QGIS has the capability to achieve standardized display of electronic nautical charts. In terms of display efficiency, QGIS refreshes a single nautical chart in 1-2 seconds, while eLaneViewer refreshes in less than 0.5 seconds. Therefore, there is significant room for improvement in efficiency when using QGIS for electronic nautical chart display. This is mainly because QGIS uses dynamic rule parsing and Python scripts, which are less efficient than embedding symbolic rules within the system.
[0171] It should be emphasized that the embodiments described in this invention are illustrative rather than limiting. Therefore, this invention includes, but is not limited to, the embodiments described in the specific implementation. Any other implementations derived by those skilled in the art based on the technical solutions of this invention are also within the scope of protection of this invention.
Claims
1. An open-ended graphic representation method based on QGIS electronic nautical charts, characterized in that: Includes the following steps; Step 1: Use the GDAL library to construct an OpenGIS geometric model from the electronic nautical chart data, and at the same time read the attribute information corresponding to the geometric model; Step 2: Configure a QML file for each type of feature containing attribute information; First, the electronic chart data is preprocessed. Then, the preprocessed electronic chart data is classified into points, lines and surfaces, and basic symbolization is performed using the S-52 standard. Finally, conditional symbolization is performed. Basic symbolization processing using the S-52 standard includes processing point objects, line objects, area objects, and text annotations. Processing point objects includes both attribute-less and attribute-based point objects. The process for handling objects without attributes is as follows: ① Select "Single symbol" as the symbol type; ② Select the SVG marker in the Symbol layer marker; ③ Following the symbolization instructions, select Embed File and import the .svg symbol; ④ Set the symbol size Width and Height. When the attribute condition includes the ORIENT attribute, select Edit in Rotation to edit and rotate the symbol according to ORIENT. ⑤ Set the symbol level in advanced-symbol levels; The processing procedure for objects with attribute points is as follows: ① The symbolization type should be rule-based; ② Add the same number of symbols based on the number of conditions; ③ Symbolize according to different attribute conditions. The symbolization method for each symbol is the same as that for point objects without attributes. ④ When the attribute condition includes the ORIENT attribute, select Edit in Rotation to edit and rotate the symbol according to ORIENT; ⑤ Set the symbol level in Symbol Levels; Processing line markers includes line markers without attributes and line markers with attributes. The processing procedure for objects without attribute lines is as follows: ① Select "Single symbol" as the symbol type; ② Symbolize according to the different line commands LS or LC; ③ Set the symbol level in advanced-symbol levels; The processing procedure for objects with attribute lines is as follows: ① The symbolization type should be rule-based; ② Add the corresponding number of symbols based on the number of conditions; ③ Symbolize according to the different line commands LS or LC; ④ Set the symbol level in Symbol Levels; The specific implementation method for symbolization based on the line command LS is as follows: In the LS command, select Simple line in the Symbol layer marker and set the symbol color, width, and type; The specific implementation method for symbolization based on the line command LC is as follows: The LC command is configured according to the XML format of the line symbol file. The LC file includes two types of data: dash and symbol. For dash data, select Simple line in Symbol layer marker. The length of dash is designed in dash pattern. For symbol, select Marker line in Symbol layer marker. Select SVG marker for symbol and set the symbol size. Processing surface objects includes surface objects without attributes and surface objects with attributes. The process for handling objects without attributes is as follows: ① Select "Single symbol" as the symbol type; ② Symbolize according to the different face commands AC or AP; ③ Set the symbol level in advanced-symbol levels; The processing procedure for objects with attributes is as follows: ① The symbolization type should be rule-based; ② Add the corresponding number of symbols based on the number of conditions; ③ Symbolize according to the different face commands AC or AP; ④ Set the symbol level in Symbol Levels; Step 3: Use QML and SVG through the rendering engine to display the electronic chart data normally.
2. The open-ended graphic representation method based on QGIS electronic nautical charts according to claim 1, characterized in that: The specific implementation method of the preprocessing is as follows: replace the variables in the original SVG file of electronic chart data symbols with actual values, wherein the variables are stored in the svgStyle.css file, and the original SVG file of electronic chart data symbols is downloaded from the IHO website.
3. The open-ended graphic representation method based on QGIS electronic nautical charts according to claim 1, characterized in that: The specific implementation method for symbolization based on the surface command AC is as follows: In the AC command, select Simple fill in the Symbol layer marker and set the fill color (Color). The specific implementation method for symbolization based on the AP command is as follows: In the AP command, select SVG fill in the Symbol layer marker to set the SVG symbol for the fill.
4. The open-ended graphic representation method based on QGIS electronic nautical charts according to claim 1, characterized in that: Text annotation processing includes text annotations without attributes and text annotations with attributes. The processing procedure for text annotations without attributes is as follows: ① Select "Single labels" as the symbol type; ② Symbolize according to the different text annotation commands TX or TE; The processing procedure for attributed text annotations is as follows: ① Choose rule-based labeling as the symbolization type; ② Add the corresponding number of symbols based on the number of conditions; ③ Symbolize according to the different text annotation commands TX or TE; ④ Set the symbol level in Symbol Levels.
5. The open-ended graphic representation method based on QGIS electronic nautical charts according to claim 4, characterized in that: The specific implementation method for symbolization based on the text annotation command TX is as follows: The TX command displays only a specific attribute of an object; The specific implementation method for symbolization based on the text annotation command TE is as follows: The TE command adds prefixes or suffixes to attributes or controls the number of significant digits, and sets the label display content (Label with), font (Font), font size (Size), style (Style), color (Color), number of texts displayed per line (Wrapline to), text placement (Quadrant), and offset (Offset X, Y).
6. The open-ended graphic representation method based on QGIS electronic nautical charts according to claim 1, characterized in that: The condition symbolization process is as follows: based on the specific content of the CS command in the Preslib symbol library, point, line, surface, and text annotation symbolization methods are combined. For nested and jump-to-complex sub-procedures, the script extension mechanism is used to embed and provide the main procedure call.