geoPath

geoPath 可以用来结合 geojson 绘制地图。

开始使用

geoPath
import { Chart } from '@antv/g2';
import { feature } from 'topojson-client';

Promise.all([
  fetch('https://assets.antv.antgroup.com/g2/us-10m.json').then((res) =>
    res.json(),
  ),
  fetch('https://assets.antv.antgroup.com/g2/unemployment2.json').then((res) =>
    res.json(),
  ),
]).then((values) => {
  const [us, unemployment] = values;
  const counties = feature(us, us.objects.counties).features;

  const chart = new Chart({
    container: 'container',
  });

  chart.options({
    type: 'geoPath',
    coordinate: { type: 'albersUsa' },
    data: {
      value: counties,
      transform: [
        {
          type: 'join',
          join: unemployment,
          on: ['id', 'id'],
          select: ['rate'],
        },
      ],
    },
    scale: {
      color: {
        type: 'sequential',
        palette: 'ylGnBu',
        unknown: '#fff',
      },
    },
    encode: { color: 'rate' },
  });

  chart.render();
});

更多的案例,可以查看图表示例页面。

选项

目前 geoPath 除了和通用 mark 相同的 API 和配置项,还有一个特殊的就是 projection 映射,当前 G2 内置了 d3-geo 的所有映射。

FAQ

如何绘制一个中国地图?

地图最终是由地理数据决定,所以需要在互联网上找到一个中国行政地图的 geoJson 或 topoJson 数据,并将此数据应用于当前的示例 DEMO 中。

topoJson

import { Chart } from '@antv/g2';
import { feature } from 'topojson-client';

const chart = new Chart({
  container: 'container',
});

fetch('xxx/china.topo.json').then(async (res) => {
  const data = await res.json();
  const features = feature(data, data.objects.default).features;

  chart.options({
    type: 'geoPath',
    coordinate: { type: 'mercator' },
    data: features,
    style: { stroke: 'white' },
  });

  chart.render();
});

geoJson

import { Chart } from '@antv/g2';

const chart = new Chart({
  container: 'container',
});

fetch('xxx/china.json').then(async (res) => {
  const data = await res.json();
  const features = data.features;

  chart.options({
    type: 'geoPath',
    coordinate: { type: 'mercator' },
    data: features,
    style: { stroke: 'white' },
  });

  chart.render();
});
全站搜索
文档与示例输入关键词开始搜索

输入关键词,查找文档、API 与示例

选择打开Esc关闭