Vue.jsとamCharts 4を使って地図を表示する パート2

# はじめに
この記事は「[Vue.jsとamCharts 4を使って地図を表示する](https://qiita.com/KaiShoya/items/04bb2177147677374233)」の続編です。
前回の記事で断念した、地図の一部のみを表示・除外する方法を書いていきます。

プロジェクトの作成方法やApp.vueの構成は前回の記事と同じです。

## プロジェクト作成

```sh
# プロジェクト作成
$ vue create sample-map
$ cd sample-map
# amchartsインストール
$ yarn add @amcharts/amcharts4
$ yarn add @amcharts/amcharts4-geodata
# サーバー起動
$ yarn serve
```

### 日本地図表示

```App.vue
<template>
  <div id="chartdiv"></div>
</template>

<script>
import * as am4core from "@amcharts/amcharts4/core"
import * as am4maps from "@amcharts/amcharts4/maps"
// 日本地図のgeodataを取得
import am4geodata_japanLow from "@amcharts/amcharts4-geodata/japanHigh"

export default {
  mounted () {
    let map = am4core.create("chartdiv", am4maps.MapChart)
    map.geodata = am4geodata_japanLow
    map.projection = new am4maps.projections.Miller()
    var polygonSeries = map.series.push(new am4maps.MapPolygonSeries())
    polygonSeries.useGeodata = true
  },
  beforeDestroy () {
    if (this.map) {
      this.map.dispose()
    }
  }
}
</script>
<style scoped>
#chartdiv {
  width: 100%;
  height: 600px;
}
</style>
```


# 地図の一部のみを表示する
[MapPolygonSeriesのinclude](https://www.amcharts.com/docs/v4/reference/mappolygonseries/#include_property)に都道府県の[ISOコード](https://ja.wikipedia.org/wiki/ISO_3166-2:JP)を指定することでその地域のみ表示することができます。
今回は九州のISOコードを指定しました。

```javascript
polygonSeries.include = [
  "JP-40",
  "JP-41",
  "JP-42",
  "JP-43",
  "JP-44",
  "JP-45",
  "JP-46",
  "JP-47",
]
```
![Screen Shot 2019-12-05 at 17.57.23.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/36872/24a12d1b-0c26-1d13-72b6-0e2e52cf113c.png)
<details><summary>App.vue</summary><div>

```App.vue
<template>
  <div id="chartdiv"></div>
</template>

<script>
import * as am4core from "@amcharts/amcharts4/core"
import * as am4maps from "@amcharts/amcharts4/maps"
// 日本地図のgeodataを取得
import am4geodata_japanLow from "@amcharts/amcharts4-geodata/japanHigh"

export default {
  mounted () {
    let map = am4core.create("chartdiv", am4maps.MapChart)
    map.geodata = am4geodata_japanLow
    map.projection = new am4maps.projections.Miller()
    var polygonSeries = map.series.push(new am4maps.MapPolygonSeries())
    polygonSeries.useGeodata = true
    polygonSeries.include = [
      "JP-40",
      "JP-41",
      "JP-42",
      "JP-43",
      "JP-44",
      "JP-45",
      "JP-46",
      "JP-47",
    ]
  },
  beforeDestroy () {
    if (this.map) {
      this.map.dispose()
    }
  }
}
</script>
<style scoped>
#chartdiv {
  width: 100%;
  height: 600px;
}
</style>
```
</div></details>

# 地図の一部のみ除外する
先ほどとは逆に、九州のみ除外したい！という需要があるかもしれません。
九州以外のISOコードをincludeに指定することで実現可能ですが、かなり面倒臭いです。
そんな時は[exclude](https://www.amcharts.com/docs/v4/reference/mappolygonseries/#exclude_adapter)を使います。

```javascript
polygonSeries.exclude = [
  "JP-40",
  "JP-41",
  "JP-42",
  "JP-43",
  "JP-44",
  "JP-45",
  "JP-46",
  "JP-47",
]
```
![Screen Shot 2019-12-05 at 18.07.07.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/36872/ae1efa24-18d7-bfbe-1c4f-8ff178311fb4.png)
<details><summary>App.vue</summary><div>

```App.vue
<template>
  <div id="chartdiv"></div>
</template>

<script>
import * as am4core from "@amcharts/amcharts4/core"
import * as am4maps from "@amcharts/amcharts4/maps"
// 日本地図のgeodataを取得
import am4geodata_japanLow from "@amcharts/amcharts4-geodata/japanHigh"

export default {
  mounted () {
    let map = am4core.create("chartdiv", am4maps.MapChart)
    map.geodata = am4geodata_japanLow
    map.projection = new am4maps.projections.Miller()
    var polygonSeries = map.series.push(new am4maps.MapPolygonSeries())
    polygonSeries.useGeodata = true
    polygonSeries.exclude = [
      "JP-40",
      "JP-41",
      "JP-42",
      "JP-43",
      "JP-44",
      "JP-45",
      "JP-46",
      "JP-47",
    ]
  },
  beforeDestroy () {
    if (this.map) {
      this.map.dispose()
    }
  }
}
</script>
<style scoped>
#chartdiv {
  width: 100%;
  height: 600px;
}
</style>
```
</div></details>

# おわり
日本語・英語問わずほとんど参考文献の見つからない、地図の一部のみを表示・除外する方法を書いてみました。
前回の記事から半年経ちますが、日本で流行ってる感じは全くしませんね(~_~;)
公式のサンプルがハイレベルすぎて参考にならないのがネックなのかもしれません。
また気が向いたらパート3を書こうと思います。