use cases

Google My Maps Export to GeoJSON and Which Styles Survive

Google My Maps is where a lot of maps start: a school trip, a list of venues, a delivery route, built by someone who never opened a GIS. When the map needs to go somewhere else, My Maps exports it as KML or KMZ. Each layer becomes a folder, the colour and icon of every pin becomes a pair of styles, and the table of extra fields becomes ExtendedData.

Then someone converts that to GeoJSON for a website, and the map comes out grey.

What’s in the Export

$ ikml inspect field-trip.kml
field-trip.kml
  Format:       KML, 3.4 KiB
  Namespace:    http://www.opengis.net/kml/2.2
  Placemarks:   3
  Geometry:     1 LineString, 2 Point
  Coordinates:  6
  Extent:       lon 35.2134 to 35.2291, lat 31.7767 to 31.7801
  Folders:      3
  Styles:       4 Style, 2 StyleMap

Structure:
    Document Field trip 2026
      Folder Meeting points: 2 placemark(s); 2 Point
      Folder Routes: 1 placemark(s); 1 LineString

Attribute fields:
  contact                  2 placemark(s) (Data)
  capacity                 2 placemark(s) (Data)
  length_km                1 placemark(s) (Data)

Styles:
  Style    #icon-1899-0288D1-normal used by 0: icon https://www.gstatic.com/mapspro/images/stock/503-wht-blank_maps.png, label
  Style    #icon-1899-0288D1-highlight used by 0: icon https://www.gstatic.com/mapspro/images/stock/503-wht-blank_maps.png, label
  StyleMap #icon-1899-0288D1     used by 2: normal #icon-1899-0288D1-normal, highlight #icon-1899-0288D1-highlight
  Style    #line-E65100-3000-normal used by 0: line
  Style    #line-E65100-3000-highlight used by 0: line
  StyleMap #line-E65100-3000     used by 1: normal #line-E65100-3000-normal, highlight #line-E65100-3000-highlight

Issues:
  INFO    remote-ref  Style 'icon-1899-0288D1-normal' (line 12)
          2 references to files on www.gstatic.com, first here. They load from the
          internet and are not inside the file.

0 error(s), 0 warning(s), 1 note(s).

Two layers, three placemarks, three custom fields. Each style comes as a pair, a normal and a highlight version joined by a StyleMap, which is how My Maps changes a pin when you hover over it. The icons are pictures on Google’s servers, which iKML notes: they’ll load only while those addresses keep working.

What the Conversion Keeps

$ ikml convert field-trip.kml field-trip.geojson --report
Converted field-trip.kml (kml) to field-trip.geojson (geojson, 768 bytes).

What changes from kml to geojson:

  [CHANGED] Styles and colors (3)
    GeoJSON has no styling. 3 placemarks use 2 shared styles. iKML keeps
    line color and width, fill color and opacity, and marker color as
    simplestyle-spec properties (stroke, stroke-width, stroke-opacity, fill,
    fill-opacity, marker-color) for 3 of them. Mapbox, geojson.io and GitHub
    read these; most other tools ignore them.

  [LOST] Style details with no GeoJSON equivalent (3)
    These have no simplestyle-spec property and are dropped: icon images (2
    placemarks), icon hotspots (2), label color and scale (2), highlight
    styles from 2 StyleMaps.

  [KEPT] Folder structure (2)
    GeoJSON is a flat list of features, so 2 folders are flattened. iKML
    keeps each placemark's folder path in a "folder" property (for example
    "Survey / Gates"), and converting back to KML rebuilds the folders.

  [LOST] Folder and document descriptions (1)
    Descriptions on folders and documents have no place in GeoJSON.

  [KEPT] Attribute data (ExtendedData) (5)
    5 ExtendedData values become feature properties.

  [KEPT] Descriptions (1)
    1 description is kept in a "description" property. 1 contains HTML,
    which stays HTML; GeoJSON viewers may show it as plain text.

  [LOST] Tessellate (1)
    Lines that follow the terrain are a KML display setting with no GeoJSON
    equivalent.

Before: 0 error(s), 0 warning(s). After: 0 error(s), 0 warning(s).

ikml convert reporting what a Google My Maps export keeps and loses on the way to GeoJSON.

GeoJSON has no styling of its own, but there’s a widely read convention, Mapbox’s simplestyle-spec: properties named stroke, fill, marker-color and a few more. iKML writes those, so the route keeps its orange line and the pins keep their colour in tools that read the convention, such as geojson.io and GitHub’s map preview. The icon pictures and the hover styles have no equivalent, and the report says so.

The layers become a folder property on each feature, and the custom fields become ordinary properties, which is usually what a website wants.

Before You Publish It

If the map is going on a public website, read the descriptions first. My Maps descriptions often hold phone numbers and notes meant for the group, and a conversion carries every one of them into the GeoJSON. ikml inspect lists the attribute fields, so you can see what’s in there before it goes online.