惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

Google DeepMind News
Google DeepMind News
爱范儿
爱范儿
J
Java Code Geeks
L
LangChain Blog
V
V2EX
大猫的无限游戏
大猫的无限游戏
S
SegmentFault 最新的问题
博客园 - Franky
Microsoft Azure Blog
Microsoft Azure Blog
Jina AI
Jina AI
Blog — PlanetScale
Blog — PlanetScale
奇客Solidot–传递最新科技情报
奇客Solidot–传递最新科技情报
The Cloudflare Blog
博客园 - 司徒正美
B
Blog
G
Google Developers Blog
Stack Overflow Blog
Stack Overflow Blog
罗磊的独立博客
OSCHINA 社区最新新闻
OSCHINA 社区最新新闻
Apple Machine Learning Research
Apple Machine Learning Research
Engineering at Meta
Engineering at Meta
MyScale Blog
MyScale Blog
有赞技术团队
有赞技术团队
Hugging Face - Blog
Hugging Face - Blog

博客园 - ^Mao^

不同缩放下适配 vxe-table 3D饼图 openlayer实现给线的附近添加点,点支持移动 element-plus el-select html导出pdf openlayers增加移动功能 适配 部分页面统计用户访问时长 openlayers基本使用(街景+标注+绘制) 使用openlayer绘制街景地图 正则表达式--取对应表达式的值 vue2实现el-table-column多级效果 echarts-雷达图 echarts--地图 散点图效果 echarts散点图区域设置 vant 的vant-uploader组件问题 Threejs学习 test
Echarts-普通地图和3D地图实现
^Mao^ · 2025-03-21 · via 博客园 - ^Mao^

效果图

实现代码

<template>
  <div class="app">
    <h1>普通地图----------------</h1>
    <div class="map-container" ref="map_ref"></div>
    <h1>3D地图----------------</h1>
    <div class="map-container" ref="map_ref_2"></div>
  </div>
</template>

<script>
import * as echarts from 'echarts'
import 'echarts-gl'
// 1. 引入china国家的json数据
// import * as geojson from 'world-geojson'
// const china_json = geojson.forCountry('china')
import china_json from './config/china.json'
echarts.registerMap('china', china_json)

export default {
  data() {
    return {
      chart_instance: null,
      chart_instance_2: null,
    }
  },
  mounted() {
    this.initMap()
    this.initMap2()
  },
  methods: {
    initMap() {
      const chart_instance = echarts.init(this.$refs.map_ref)
      var option = {
        series: [
          {
            type: 'map',
            map: 'china',
            label: {
              show: true,
              color: '#000', //地图初始化区域字体颜色
              fontSize: 10,
              formatter: function (params) {
                if (params.name == '黑龙江省') return params.name
                return ''
              },
            },
            itemStyle: {
              // 未选择区域的样式
              normal: {
                areaColor: '#eeeeee',
                color: 'white',
                borderColor: 'gray',
                borderWidth: 1,
              },
              emphasis: {
                // 选择区域的样式
                areaColor: '#ffdf33',
              },
            },
            data: [
              {
                name: '广东省', //这个对应的是json的数据
                selected: true, // 将该区域设置为默认高亮
              },
            ],
          },
        ],
      }
      chart_instance.setOption(option)
      this.chart_instance = chart_instance
    },
    initMap2() {
      const chart_instance = echarts.init(this.$refs.map_ref_2)
      var option = {
        geo3D: {
          map: 'china', //注册地图的名字
          roam: true, //开启鼠标缩放和平移漫游。默认不开启
          itemStyle: {
            color: '#eee', // 背景

            opacity: 1, //透明度
            borderWidth: 1, // 边框宽度
            borderColor: 'gray', // 边框颜色
            fontSize: 10, //
          },
          emphasis: {
            itemStyle: {
              color: '#ffdf33',
            },
          },
          label: {
            show: true,
          },
          viewControl: {
            distance: 100,
            alpha: 45, // 上下旋转的角度
            beta: 0, // 左右旋转的角度
          },
          regions: [
            {
              name: '广东省',
              itemStyle: {
                color: '#f00',
              },
            },
          ],
        },
      }
      chart_instance.setOption(option)
      this.chart_instance_2 = chart_instance
    },
  },
}
</script>

<style lang="less" scoped>
.map-container {
  height: 600px;
  border: 1px solid;
}
</style>

参考文档