Use Echarts para desenhar mapas de ruas e cidades (bigmap)

A demanda requer o desenho de um mapa do distrito de Putuo em Xangai, ruas e cidades específicas. O Echart comum só pode desenhar mapas de províncias e cidades, mas não pode fornecer dados específicos de ruas e cidades. Assim, você pode obter dados específicos por meio do bigmap.

  1. Baixe o bigmap (escolha a segunda versão onipotente)

imagem.png

  1. Baixe o arquivo .kml da rua desejada no bigmap

imagem.png imagem.png

3. Após o download bem-sucedido, o arquivo .kml precisa ser convertido em json

Importe o arquivo .kml para geojson.io. Se houver vários arquivos .kml, importe-os um por um. Depois que a importação for bem-sucedida, a área direita é o arquivo json que precisamos e a parte esquerda é a forma correspondente ao map que iremos desenhar depois (isso pode ser ignorado. ), copie os dados do json e salve no projeto (aqui eu salvo em public/static/map.json)

Endereço: geojson.io/#map=12.59/…

imagem.png

4. Os dados mais importantes já estão disponíveis e você pode começar a desenhar com o echart

Primeiro instale echarts

npm install echarts
复制代码

Em seguida, importe-o diretamente no arquivo vue sob demanda (para importação global, consulte a documentação do echarts)

import * as echarts from 'echarts';
复制代码

Aqui também precisamos usar axios para solicitar os dados json que acabamos de ter, então instale axios

npm i axios
复制代码

importar axios

import axios from 'axios
复制代码

Como todos sabemos depois de usar echarts, precisamos definir um contêiner div para renderizar o mapa

<div id="main" style="width: 300px; height: 500px"></div>
复制代码

Como meu requisito é entrar na página e renderizar diretamente, escrevi o código js diretamente no gancho montado

imagem.png

Deveria ter sido concluído aqui, mas após rodar, constatou-se que foi reportado um erro!

imagem.png

Consulte este artigo: t.csdn.cn/2mozQ

Motivo: Existem duas áreas descontínuas no mapa gerado, o tipo é GeometryCollection e não há solução para este tipo em echarts: coloque dois dados de array descontínuos juntos e o tipo é Polygon. Para obter detalhes, consulte o artigo acima.

efeito final:

imagem.png

おすすめ

転載: juejin.im/post/7186944817639718973