Skip to content
GEOSAT
Back to blog
Open GIS
Open GIS2026-09-23GEOSAT5 min read

Rebuild ArcGIS symbology, labels and layouts in QGIS

Test cartographic equivalence by scale and output; a similar-looking screen is not enough.

Editorial review: 2026-09-23

QGISOpen GIS

A map communicates categories, hierarchy and precision. Changing applications can change that meaning through line weights or label priorities even when geometry is identical. Use an approved output as the reference and record page size, scale, CRS, fonts and classification rules.

Separate data, rules and layout

Prepare copies of two or three representative layers. Include categorical data, numeric values and long labels. Export a table of class boundaries and labels from the original system. Do not recalculate quantiles by default: changed boundaries change the map's interpretation.

In QGIS, rebuild the renderer first: single symbol, categorized, graduated or rule based. Test nulls and unknown codes with a visible category. QML files preserve QGIS styles; SLD supports a useful server-oriented subset but does not automatically transport an entire ArcGIS layout.

Check the environment

Run this in the QGIS Python console to record the installed version and current project CRS:

Code example
from qgis.core import Qgis, QgsProject
print(Qgis.QGIS_VERSION)
print(QgsProject.instance().crs().authid())

The output should identify your installed release and expected project code. A correct code does not establish that every layer has the right source CRS. Inspect each source and compare known control points. For institutional cartography, document the selected datum transformation and availability of required grid files.

Rebuild labels and outputs

Configure the field or expression, priority, collision rules, visible scale range and size units. If the destination lacks the original fonts, install them under the appropriate license or agree a substitute. A label visible on the canvas may disappear in a PDF because of scale or available space; inspect both products.

Create the layout with explicit dimensions. Link the legend to the correct map and check automatically resized elements. Include a scale bar and the date of the data, not merely the export date. Export a PDF and a fixed-resolution image for comparison with the reference.

Acceptance test

Review the full extent and three details: a dense area, a page edge and a location containing null attributes. Check categories, units, orientation, legibility and legend membership. Automated image comparison can detect pixel changes, but cartographic review determines whether the changes are acceptable. Save the project, styles and font information with the review evidence. If an expression has no equivalent, describe its behavior and reproduce its result before releasing the map.

Separate cartographic meaning from file conversion

Inventory one representative map at three scales: overview, operational and detailed. For each layer record the classification field, category order, null treatment, symbol units, label expression, visible scale range and any externally supplied fonts or SVG symbols. A visually similar screenshot at one scale can conceal a different decision at another scale.

Create a small design table before rebuilding the style:

ElementExample requirementVerification
Asset statusActive: filled circle; review: outlined triangleBoth remain distinguishable in grayscale
Unclassified recordVisible neutral symbolNew code is not silently invisible
Text labelAsset code, optional conditionNull condition produces no stray separator
Road hierarchyOrdering based on road classMinor road does not cover primary road
Print scaleAgreed operational scaleText and line widths remain legible in PDF

Choose symbol units deliberately. Millimetres keep a stable printed symbol size; map units tie size to the territory represented. Translating an apparent screen width without recording its units is a frequent source of inconsistent exports.

Rebuild labels as expressions

For synthetic fields asset_code and condition, a QGIS label expression can avoid empty punctuation:

Code example
coalesce("asset_code", 'No code') ||
CASE
  WHEN "condition" IS NULL OR trim("condition") = '' THEN ''
  ELSE ' · ' || "condition"
END

Test the expression against a normal code, a null condition, an accented description and the longest realistic label. Set priority and collision rules according to the map's purpose. A missing label can be intentional suppression, not lost data. Inspect dense locations where several candidates compete.

Save reusable layer styling as QML and reload it against a second layer with the same schema. Then deliberately rename a referenced field in a disposable copy: the failure makes the dependency visible. If a map server is the target, separately test the server's supported styling format; a QML file is not a universal interchange contract.

Rebuild a layout with fixed comparison conditions

  1. Export the reference map with its page size, extent, scale and legend captured.
  2. Reproduce those values in QGIS before adjusting symbols. Comparing different extents wastes time on differences caused by framing.
  3. Add data-source attribution, date, CRS where relevant and a clear synthetic-data label for a lab output.
  4. Export vector PDF and a raster preview. Inspect clipping, transparency, legend ordering and missing font substitutions.
  5. Open the PDF on a machine that did not create it. Verify that links, text and page orientation survive delivery.

For an Atlas, use a stable page identifier and explicitly sort the coverage layer. Check the first page, last page, smallest feature, largest feature and a feature with no matching detail records. Confirm that a changed filter cannot silently exclude an expected page.

Decide what fidelity actually means

Agree which differences matter before spending time making two renderers pixel-identical. A cadastral code that is unreadable is material; a small anti-aliasing difference may not be. Record mandatory colors and symbols, minimum readable type, required page dimensions and accepted export formats. Have the person who uses the map approve the printed or delivered output.

For follow-on work, connect the saved style to the QGIS desktop pilot. The handover must include fonts and symbol assets only when their licenses permit redistribution. Keep evidence of those licenses alongside the actual project assets.

Sources and documentation

Next step

Continue in the Open GIS collection. For a specific project, use the total-cost calculator and request an assessment.

Related articles