Verwenden Sie Echarts, um Karten auf Straßen- und Stadtebene zu zeichnen (Bigmap)

Die Forderung erfordert das Zeichnen einer Karte des Bezirks Putuo in Shanghai, bestimmter Straßen und Städte. Ordinary Echart kann nur Karten von Provinzen und Städten zeichnen, aber keine spezifischen Daten auf Straßen- und Stadtebene liefern. So können Sie spezifische Daten über Bigmap abrufen.

  1. Laden Sie Bigmap herunter (wählen Sie die zweite allmächtige Version)

Bild.png

  1. Laden Sie die .kml-Datei der gewünschten Straße in Bigmap herunter

Bild.png Bild.png

3. Nach erfolgreichem Download muss die .kml-Datei in json konvertiert werden

Importieren Sie die .kml-Datei in geojson.io. Wenn mehrere .kml-Dateien vorhanden sind, importieren Sie sie nacheinander. Nachdem der Import erfolgreich war, ist der rechte Bereich die benötigte json-Datei und der linke Teil die entsprechende Form Karte, die wir später zeichnen werden (dies kann ignoriert werden. ), die json-Daten kopieren und im Projekt speichern (hier speichere ich sie in public/static/map.json)

Adresse: geojson.io/#map=12.59/…

Bild.png

4. Die wichtigsten Daten sind bereits vorhanden, und dann können Sie mit dem Zeichnen mit Echor beginnen

Installieren Sie zuerst Echarts

npm install echarts
复制代码

Importieren Sie es dann bei Bedarf direkt in die vue-Datei (für den globalen Import lesen Sie bitte die echarts-Dokumentation)

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

Hier müssen wir auch axios verwenden, um die JSON-Daten anzufordern, die wir gerade hatten, also installieren Sie axios

npm i axios
复制代码

Axios importieren

import axios from 'axios
复制代码

Wie wir alle nach der Verwendung von Echorts wissen, müssen wir einen Div-Container definieren, um die Karte zu rendern

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

Da meine Anforderung darin besteht, die Seite direkt aufzurufen und zu rendern, habe ich den js-Code direkt in den gemounteten Hook geschrieben

Bild.png

Es hätte hier abgeschlossen werden sollen, aber nach dem Ausführen wurde festgestellt, dass ein Fehler gemeldet wurde!

Bild.png

Siehe diesen Artikel: t.csdn.cn/2mozQ

Grund: Es gibt zwei diskontinuierliche Bereiche in der generierten Karte, der Typ ist GeometryCollection, und es gibt keine Lösung für diesen Typ in Echarts: Fügen Sie zwei diskontinuierliche Array-Daten zusammen, und der Typ ist Polygon. Einzelheiten entnehmen Sie bitte dem obigen Artikel.

Endeffekt:

Bild.png

Acho que você gosta

Origin juejin.im/post/7186944817639718973
Recomendado
Clasificación