ArcMap symbology for web map servers
Publishing a map that was designed in ArcMap on GeoServer or MapServer means describing the same
classes and symbols in Styled Layer Descriptor (SLD). Writing that by hand for a layer with fifty
unique values takes hours. Upload the .mxd or .lyr file with "Layer styles" and you get an
SLD 1.0 file for every layer, together with QML files for QGIS.
Each SLD holds:
- one rule per class, with a filter on the classified field: equality filters for unique values (one condition per field when the classes use several fields), ranges for class breaks;
- scale denominators from the layer's visible scale range;
- polygon, line and point symbolizers for every symbol layer: fill colours and opacity, hatches as graphic fills, outline widths, dash patterns, line caps and joins, well-known marks for simple markers, embedded pictures for picture markers and fills;
- text symbolizers for the labels, with the label expression, font, size, colour and halo.
Sizes are converted from ArcMap points to the pixels SLD uses (at the OGC standard rendering pixel size), so symbols keep their proportions on the server.
Things to check
- SLD has fewer symbol types than ArcMap. Gradients, marker lines and complex multi-layer symbols are simplified; the QML file next to it keeps them for QGIS, which can also export SLD of its own after you adjust the style.
- Label expressions that use scripting functions are reduced to the fields they read.
- The rule filters use the field names stored in the document; check them against the published layer, as databases may change the case of names.
More about what this tool reads and writes: ArcMap MXD to QGIS Converter.