# Extending (Maps example)

> WestCoast Charts 1.1.5, release, public Core release, on npm. HTML: https://westcoast-charts.com/gallery/maps/extending/ · Index for agents: https://westcoast-charts.com/llms.txt

Inline GeoJSON (our own: a fictional campus) with a bubble layer on top, no registry needed.

- Chart type: `map` (Map)
- Collection: Maps · Maps
- Raw configuration: https://westcoast-charts.com/gallery-src/maps/extending.js
- Standalone example: https://westcoast-charts.com/embed/samples/wcc/gallery/premium/maps/extending.html

## Setup

```js
import WestCoastCharts from 'west-coast-charts'
import types from 'west-coast-charts/types'
import premium from 'west-coast-charts/premium'
import 'west-coast-charts/maps/world' // registers the map shapes

WestCoastCharts.use(types).use(premium)
const WestCoastChartsPremium = premium
WestCoastCharts.setLicenseKey(LICENCE_KEY) // paid production licence; localhost evaluation needs no key
```

## Options

```js
const options = {
  chart: {
    height: 420,
    toolbar: {
      show: false
    },
    type: "map"
  },
  series: [
    {
      name: "Occupancy %",
      data: [
        {
          id: "lab",
          value: 64
        },
        {
          id: "lib",
          value: 88
        },
        {
          id: "hall",
          value: 31
        }
      ]
    },
    {
      name: "Sensors",
      type: "bubble",
      data: [
        {
          name: "S1",
          lon: 0.005,
          lat: 0.004,
          value: 3
        },
        {
          name: "S2",
          lon: 0.015,
          lat: 0.008,
          value: 5
        },
        {
          name: "S3",
          lon: 0.028,
          lat: 0.006,
          value: 2
        },
        {
          name: "S4",
          lon: 0.017,
          lat: 0.018,
          value: 4
        }
      ]
    }
  ],
  plotOptions: {
    map: {
      map: {
        type: "FeatureCollection",
        features: [
          {
            type: "Feature",
            id: "lab",
            properties: {
              name: "Lab"
            },
            geometry: {
              type: "Polygon",
              coordinates: [
                [
                  [0, 0],
                  [0.02, 0],
                  [0.02, 0.012],
                  [0, 0.012],
                  [0, 0]
                ]
              ]
            }
          },
          {
            type: "Feature",
            id: "lib",
            properties: {
              name: "Library"
            },
            geometry: {
              type: "Polygon",
              coordinates: [
                [
                  [0.022, 0],
                  [0.034, 0],
                  [0.034, 0.012],
                  [0.022, 0.012],
                  [0.022, 0]
                ]
              ]
            }
          },
          {
            type: "Feature",
            id: "hall",
            properties: {
              name: "Hall"
            },
            geometry: {
              type: "Polygon",
              coordinates: [
                [
                  [0, 0.014],
                  [0.034, 0.014],
                  [0.034, 0.022],
                  [0, 0.022],
                  [0, 0.014]
                ]
              ]
            }
          }
        ]
      },
      projection: "equirectangular",
      sphere: false,
      fit: "map"
    }
  },
  theme: {
    mode: "light",
    preset: "coastal"
  }
}

const chart = new WestCoastCharts(document.querySelector('#chart'), options)
await chart.render()
```

## Verify

- Text check (Library 1.1.5): load `west-coast-charts/agent/describe` and call `chart.describe({ format: "json" })` for the actual drawn state. The live reader is on this example’s HTML page.
- Command line (Public agent tools 0.2.3, tested with Library 1.1.5; available from the versioned GitHub release and npm, https://westcoast-charts.com/docs/cli/index.md): `wcc chart export maps-extending.json --out maps-extending.svg --with-table` (save the options above as JSON first)
