ApexMaps 0.2.0 launched on July 30, 2026 as a new library in the ApexCharts family for choropleths, bubble maps, markers and great-circle routes, with the boundary geometry built in. It is a new package, so nothing in an existing ApexCharts project needs to change.

Key takeaways

  • A 26-pack geometry registry ships with the library, fetched lazily at one request per pack.
  • Five series types: choropleth, bubble, marker, arc and line, plus an automatic basemap.
  • A map that answers a question is in every plan; a map that becomes an application is Premium.
  • Accessibility is never gated, in any tier.
  • 3,231 US counties pan and zoom at a p95 of 3.1 ms per frame, because each frame writes one transform.
  • Wrappers: react-apexmaps, vue-apexmaps and ngx-apexmaps, typed against ApexMaps' own options.

A choropleth in two option keys

Name a geometry pack and join your data to it. There is no boundary file to find, host or parse:

import ApexMaps from 'apexmaps'

const map = new ApexMaps(document.querySelector('#map'), {
  geo: { map: 'world/countries@110m' },
  series: [
    {
      name: 'Unemployment rate',
      joinBy: ['iso_a3', 'code'],
      data: [
        { code: 'FRA', value: 7.3 },
        { code: 'DEU', value: 5.7 },
      ],
    },
  ],
})

await map.render()

The rest is a default meant to be shipped: Equal Earth projection, quantile classes, an OkLab-sampled ramp, a legend with the computed breaks, and a distinct color for unmatched regions. The registry covers world countries and coastline, US states and counties, EU NUTS levels 0 through 3, and admin-1 for 15 more countries. Bubbles size by the square root of value so area tracks the number; markers come in seven shapes, colored by category with colorBy. See Choropleth.

Routes, drilldown and linked maps

These are Premium. Arc and line series draw connections: arcs are great circles by default, and a route that crosses the antimeridian leaves one edge of the map and re-enters on the other.

series: [
  {
    type: 'arc',
    name: 'Weekly flights',
    data: [{ from: [103.99, 1.36], to: [-0.45, 51.47], value: 900 }],
    endpoints: { show: true },
  },
]

Drilldown shows only the children of the clicked feature, finding the parent from the geometry's own fields, and declines with a stated reason rather than landing on an empty map. Linked maps share a selection: shift-drag a box on one, and every map with the same link: { group } brushes in sync.

Try the arcs demo, then read Arcs and Routes.

Which ApexMaps features need a license?

The choropleth, bubble and marker series, every projection and geometry pack, joins including fuzzyJoin, export and the accessibility layer are covered by the Community License, free under $2M in annual revenue, budget or funding; see pricing. Clustering, drilldown, annotations, arc and line routes, custom projections and linked selection need Premium or above at any company size, and render with a watermark without a key.

The geometry carries its own licenses: Natural Earth and US Census TIGER are public domain, and Eurostat GISCO is CC BY 4.0 with attribution rendered automatically. Licensing has the full table.

Installing

npm install apexmaps
npm install apexmaps react-apexmaps   # or vue-apexmaps, ngx-apexmaps

Start with the ApexMaps overview, Installation & Usage, the React, Vue or Angular guide, and the demo gallery.

Frequently asked questions

Is ApexMaps free?

Not unconditionally. The core maps fall under the Community License, free under $2M in annual revenue, budget or funding. Interactive application features need a Premium license at any company size, but you can evaluate each one without a key under a watermark first.

Why is a country gray on my ApexMaps choropleth?

Usually a join failure: a data key that matches no feature, such as "Ivory Coast" against "Côte d'Ivoire". In development ApexMaps logs how many rows matched and suggests the nearest key, and `map.diagnoseJoin()` returns the same report. Matching stays exact unless you pass `fuzzyJoin: true`, which is in every plan.

Can I host the ApexMaps geometry myself?

Yes. Packs load from jsDelivr by default, one request per pack, and never enter your bundle. For offline or air-gapped deployments, install `apexmaps-geo` and pass a loader or your own base URL to `ApexMaps.setGeoSource()`.

Do I need a separate license key for ApexMaps?

No. A key bought for ApexCharts, ApexGrid or ApexStock already covers maps, because one key works across the whole Apex family. Pass it to `ApexMaps.setLicense()` before rendering to remove the watermark from Premium features.