Import a Military Overlay: MilX, Vector and Image

This chapter shows how you can import your MilX layers. Or you can import your own layers from vector or bitmap graphics.

Hint:

Quick answer — bring in an overlay or map data

  • An overlay from another map.army user or unit (.milxlyz): Layer-Manager, Load MilX. See MilX Layers.
  • An overlay from a NATO C2 system (.nvg): the globe button, Export/Import in other formats. See NVG.
  • GIS data, a route or a track (KML, GPX, GeoJSON, SHP): Vector Layers. See Vector Layers.
  • A scanned or georeferenced map: Image Layers. See Image Layers.

Overview

The map.army Layers panel listing 'Local MilX Layers' with the collapsed 'Vector Layers' and 'Image Layers' groups below

The following types of data layers can be imported into map.army:

TypeDescription
MilXTactical Situation which was ceated in map.army and exported.
Vector GraphicAny graphic in vector format
Image GraphicAny raster image

Two things an import can do that surprise people

Hint:

Above roughly 6000 symbols in the project, newly added layers are hidden. map.army warns you, and then switches every layer added since the last check to invisible to keep the map usable. Your data is intact and the layers are in the Layer-Manager — they are simply not drawn. Switch the ones you need back on. If a large import “did not arrive”, check visibility before you import it again.

A layer whose name is already taken is renamed on import. map.army appends to the name to keep it unique and shows a notification. Two imports of the same file therefore produce two layers, not one merged one.

MilX Layers

Files with the extension .milxlyz — or the uncompressed .milxly, which loads just the same — were exported from the generator for military situations. These can be imported again, displayed and further processed.

If you have already created layers on your map, the imported layers are always added. Existing layers are not changed. If an imported layer has the same name as one already open, it is added under a numbered name, for example New Layer 1, and a notification tells you so.

Layer-Manager toolbar in map.army under 'Local MilX Layers' with the second icon, Load MilX, circled

NATO Vector Graphics (NVG)

Layer-Manager toolbar in map.army under 'Local MilX Layers' with the fourth icon, the globe for other formats, circled

map.army also reads NVG — NATO Vector Graphics, the NATO standard for exchanging a tactical picture between different systems. It arrives as a layer you can carry on editing, and it can be written back out again. It has its own page: NVG import and export.

Vector Layers

The map.army 'Vector Layers' panel expanded to its 'Local' tab with 'Select Folder…' and the add-layer icon

You can import vector graphics as layers and display them in the situation map. The panel has two tabs, and a layer belongs to one or the other:

  • Local — files from your own machine.
  • Online — a layer fetched from a URL. Only these travel with a shared project, because a share carries the address the layer came from rather than its content. See Share vector and image layers.

Supported formats

A Format row above the file picker offers four buttons — KML, GPX, JSON, SHP:

FormatExtensionsWhat it is
KML.kmlKeyhole Markup Language (e.g. from Google Earth)
GPX.gpxThe GPS Exchange Format, for tracks, routes and waypoints
JSON.json, .geojsonGeoJSON, the open format for geographic data — both extensions are the same format
SHP.shpEsri shapefile, the common GIS vector format

Loading a file normally sets the format for you from its name. The one case where you have to set it yourself is a URL with no file extension — a download link like …/export?id=4711 tells map.army nothing, so pick the format before you load.

Three ways to load a layer

  1. A single file — Select File…, and choose it.
  2. A whole folder — Select Folder…, offered where your browser provides the file-system directory picker (today, Chrome and Edge on the desktop). This is how a layer comes back later: map.army writes a small settings file next to each layer file, recording its opacity, colour and visibility, and picks the folder up again at the next start. Only files that already have such a settings file are loaded — a folder of files map.army has never seen loads nothing, with no message.
  3. A URL — fill in URL and a Name. Your browser fetches it, which is why a server that does not permit cross-origin requests will fail here even though the address works in a browser tab.
Hint: Nothing appears until you press the green Add Layer button. All three routes only stage the layer — choosing the file is not adding it. This is the most common reason an import seems to do nothing at all, and it applies to image layers in exactly the same way.
Vector Layers, Online tab: URL and Name filled in, file loaded, the green Add Layer button ringed

If a load fails, the message tells you which of the three went wrong: “Could not load the file … please check if the URL is correct. If the issue persists, check the CORS (Cross-Origin Resource Sharing) settings on your server” is the URL route; “Incorrect Format” means the extension is not one of the five above.

Hint: A .kmz cannot be loaded directly — unzip it first. KMZ is a zipped KML, and the vector import reads the file as text, so it accepts .kml only. Rename or extract the archive to get the .kml inside it and load that. (Going the other way is different: an export to KML always writes a .kmz — see KML / KMZ Export.)

A shapefile is read as the single .shp file

map.army reads the .shp on its own. A shapefile is really a set of files, and the two that are not read matter:

  • The .dbf holds the attributes, so feature names and properties do not come across.
  • The .prj holds the projection, so coordinates are taken as WGS84 longitude and latitude.

A shapefile in a national projection therefore lands in the wrong place, with no error to tell you so. If your data is projected, convert it to WGS84 GeoJSON in your GIS before loading it — that also keeps the attributes.

Turn a vector layer into a MilX layer

A vector layer is a backdrop: you can see it and restyle it, but you cannot edit its features as military symbols. The Convert button on the layer’s row changes that — an icon-only button whose tooltip reads Convert the layer to MilX and add it to the project. It works for all four formats.

Each feature becomes one MSS graphic, chosen by what the feature is: a point for a placemark or waypoint, a line for a polyline, route or track, an area for a polygon. Line and area styling is carried across where the source declares it — line colour and width, fill colour and transparency — so a styled KML arrives looking much as it did. GPX routes and tracks each get their own fixed colour instead, since GPX has no standard colour of its own.

What does not come across:

  • The feature’s description — balloon text, popup content and the icon a KML names through an href. Every converted feature carries a standard MSS symbol, not the source’s own icon.
  • Anything beyond 15 characters of the name. The feature name becomes the symbol’s text modifier, which MIL-STD-2525 limits, so “Bridge over the Aare, southern crossing” arrives truncated. Shorten names in the source file if they have to stay readable.

You end up with both layers. Converting creates a new MilX layer and leaves the vector layer exactly where it was, so the same features are drawn twice — once as the backdrop and once as symbols. Hide or remove the vector layer once you are happy with the conversion.

Hint: Doubled symbols after converting a Google Earth KML. Where a placemark’s style carries both a balloon and an icon — a combination Google Earth writes routinely — that one placemark is read as two features, so you get two symbols stacked at the same spot. That is separate from the backdrop layer above: here the duplicates sit inside the converted layer itself. Delete them after converting, or strip the balloon styling from the KML first.

The resulting MilX layer is an ordinary editable layer: it accepts the full tactical-graphics editor and exports as .milxlyz.

The generic symbol the conversion assigns is not permanent. Select a converted graphic, open the MSS Symbol Editor, and use Base Symbol… in the modifier menu to search for the symbol it should actually be. To retag a batch, set one graphic correctly, copy it, select the rest on the map and paste — they all take that symbol at once. Converted points swap freely; a converted line or area can only become another free-form line or area, and the app refuses anything incompatible rather than changing it silently. See Symbol Editor.

KML import notes

KML files of moderate size import reliably; very large vector inputs may exceed per-symbol point limits — split into smaller files if needed.

What you can change after a vector import

An imported vector layer is not fixed in place. Its row in the Layers panel offers:

ControlWhat it does
OpacityA slider, for fading the layer back so your military symbols stay readable on top of it
Colour optionsRestyles the imported features, which is the fix when a source file’s own colours did not survive the import
Layer SourceA read-only readout in the same panel, showing the URL an online layer came from or the file name of a local one — the way to find out what a layer you were sent actually is
DownloadSaves this one layer back out on its own
Convert (icon only)Turns the vector layer into a MilX layer, so its features become editable military symbols — see above
Show / hideThe eye, for taking the layer off the map without removing it
RemoveThe bin, tooltip Remove the layer

Opacity is the one worth reaching for first: an imported route or boundary set often arrives far more prominent than the situation you are drawing over it.

Style and colour preservation

map.army parses geometry and standard style properties from vector imports, but per-feature colour and styling attributes from third-party tools may not be preserved:

  • GPX does not have a standardised colour property in the core schema. Some tools (Garmin, Scribblemaps) write a non-standard topografix:color extension that map.army does not parse — imported features fall back to the default style.
  • JSON / GeoJSON likewise have no schema-mandated style attribute; styles vary by producer and most extensions are not parsed.
  • KML is the best case: <LineStyle> colour and width and <PolyStyle> fill are honoured, including styles a placemark reaches through a <StyleMap>. What is not honoured is the <IconStyle> href — a custom icon becomes a standard MSS symbol.

So a KML authored with proper line and fill styles keeps its appearance through both the import and a conversion to MilX, while a GPX track or a bare GeoJSON arrives in the default dark grey whatever the source tool showed you. If colour matters and the format cannot carry it, set it afterwards with the layer’s own colour options.

Image Layers

The map.army 'Image Layers' panel expanded to its 'Local' tab with 'Select Images Folder…' and the add-layer icon

An image layer lays a picture — a scanned or photographed map, an aerial photograph, a sketch — over the base map. map.army accepts these formats:

EndingFormat
*.pngPortable Network Graphics — raster graphics format with lossless data compression
*.jpg, *.jpegJPEG — the most common photo format
*.bmpWindows Bitmap
*.webpWebP — compressed image format developed by Google
*.svgScalable Vector Graphics — drawn as a picture, not as editable vector shapes

How to add an image layer

  1. Open Layers, expand Image Layers and click the Add Layer icon.
  2. Choose where the image comes from:
    • Local — Select File… picks one image from your device. In Chrome and Edge on the desktop you can instead pick a whole folder with Select Images Folder…; see Save the placement for next time for what that adds.
    • Online — enter the image’s URL: and a Name:, then click Load. The server that hosts the image must allow other sites to load it; map-tile servers usually do.
  3. Under Geo Reference, place the image on the map — see Place the image below.
  4. Click the green Add Layer button. Until you do, the image is only staged in the dialog and not part of your map — this final step is the one most often missed, and the cause of “my image layer is not showing” reports.
A staged image layer in map.army: source (1), placement modes (2), Coordinate System (3), map area (4) and Add Layer (5)
  1. Where the image comes from — Local or Online, here an online map tile with its URL:, Name: and Load.
  2. The placement modes: the upload icon (from a file), Ref. Points, Interactive and Manual.
  3. Coordinate System of the coordinates shown below it.
  4. Map area for the image — the coordinates of the image’s top, left, right and bottom edges.
  5. Add Layer adds the image to your map.

The slider above Add Layer sets how opaque the image is.

Hint: Very large images: if a picture is too big for the browser, map.army reports Unable to load the image and suggests reducing its size or splitting it into two separate images. Each half can then be added as its own image layer.

Place the image

As soon as the image has loaded, Interactive is selected and the picture is laid over the middle of the map, inside a dashed frame with coloured handles:

An image layer being placed in Interactive mode: dashed frame with magenta, yellow, cyan and green handles
Drag…to…
inside the picturemove it
the green handle (bottom-right corner)resize it, keeping its proportions
a cyan handle (middle of the right or bottom edge)stretch only the width or only the height
the yellow handle (top-right corner)rotate it
the magenta handle (on the top edge)make it more or less transparent while you place it

Map area for the image follows along and shows where the picture sits, in the map’s own coordinate system (Web Mercator, in metres).

The other placement modes:

  • From a file — the upload icon left of Ref. Points. The quickest route when the image came with a world file (.pgw, .jgw, .j2w, .tfw, .wld — see Export as Georeferenced Image) or with a placement file you saved earlier from map.army (.json, see below). Load the image first, then click the upload icon and pick the file — a placement file picked before the image has loaded is ignored. A world file says nothing about its coordinate system, so choose the right one under Coordinate System before you click Add Layer.
  • Ref. Points — fix the picture by three points you can recognise on both the image and the map. See the next section.
  • Manual — type the edges of the image yourself.
Hint: Manual placement does not work in the current version (6.1.1). You can choose a coordinate system and type the four edges, but map.army keeps drawing the image where it was before — and after switching to WGS84 it is not drawn at all. Choosing a different Coordinate System also does not convert the numbers already in the fields. Until this is fixed, place the image with Interactive, Ref. Points, or a world file or placement file.

Place an image with reference points

When you have no world file — a scanned map, a photographed overlay — you can georeference the image yourself: tell map.army which point on the picture lies on which point of the ground, so that it lines up with the map underneath.

  1. Load the image and click Ref. Points. Coordinate System switches to Custom…; choose a coordinate system from the list — or paste a Proj4 definition under Custom… — before you add the layer.
  2. Right-click a feature you can recognise on the image — a road junction, a bridge, a building corner — and choose Image Point A.
  3. Right-click the same feature on the map and choose Map Point A.
  4. Repeat for B and C. As soon as all three pairs are set, the picture is placed. Each point is shown as a labelled cross that you can drag to correct it.
  5. Click Add Layer.
Ref. Points in map.army: Coordinate System (1), hint (2), right-click menu with Image Point A–C (3) and Map Point A–C (4)
Hint: Exactly three pairs are used. Spread them across the picture — three points close together, or on one straight line, fix the far side badly; points on one line are refused with Bad points. The small coordinate table under the hint only shows the points: typing in it changes nothing, so drag the crosses instead.

Save the placement for next time

After Add Layer, the image’s row under Image Layers carries a download icon, Save placement of image overlay (download as file for reuse). It saves a small placement file named after the image — Bern.png gets Bern.png.json. Next time, load the image, click the upload icon and pick that file, and the picture lands exactly where it was.

If you work from a folder (Select Images Folder…), map.army reads and writes these .json files next to the images by itself, and the download icon is not needed.

Image layers and the .milxlyz format

Image-layer placement coordinates are written to a settings file named after the layer file and placed next to it — Bern.png gets Bern.png.json, one per layer. Vector layers get the same treatment. To preserve an image layer across sessions, keep the layer file and its settings file together — when you re-open the picker and select the same directory, map.army restores the original placement automatically. An image without a settings file still loads — you then place it again.

Image layers are not embedded inside .milxlyz exports. When you share or save your work as MilX, the image-layer content is left behind. To share a map that includes an image layer, either share the image file separately, or use an online-source image layer — see Share Online-Source Layers.

Image layers for custom graphics and fictional maps

Image layers are the supported workaround for any use case that needs non-standard graphics on the map:

  • Scanned campaign maps or historical maps as a background.
  • Fictional-nation maps for wargaming or roleplaying scenarios.
  • Custom emblems, unit crests, or other artwork on top of the MIL-STD-2525 symbols.

These graphics ride on a separate image layer; they are not embedded into individual military symbols (the MIL-STD-2525 / JC3IEDM exchange format cannot carry arbitrary images on symbols). For amplifying icons that do attach to a symbol, use an Icon Extension Modifier — see Symbols → Symbol Editor.

Removing a layer you loaded from a folder

Hint: Removing an image or vector layer deletes its file from the folder you granted — not just the layer from the map. This applies wherever you picked a working directory: Chrome or Edge on the desktop, installed as a PWA or in an ordinary browser tab. The deletion goes straight to the file system, not the recycle bin, and it applies to vector files exactly as it does to images. Keep a copy of the source file elsewhere before adding it as a layer.

A second quirk affects load order: if you open a .milxlyz first and then add an image layer in the same session, the image layer may not be picked up automatically on the next session reload. The reliable workflow is to add the image layer first, position it, then load any MilX layers on top. If you hit a state where the image layer does not return on reload, re-add it manually from the saved image and its settings file.

Image layer vs. base-map switching

Importing an image layer is supported in the public web app and is the right tool for adding a custom backdrop to a map.

Switching the base map itself to a private WMTS / WMS provider (so the underlying map tiles change) is a different mechanism. One such service can be passed in the link — see Connect Your Own Map Service. Having the app’s whole map list come from your own providers, selectable in the Options panel, is configured per deployment; see the FAQ entry on the professional version.

Last updated: