首页 > 其他分享 >Echatrs引入高德地图并获取地图实例进行高德地图API调用

Echatrs引入高德地图并获取地图实例进行高德地图API调用

时间:2024-11-21 09:58:56浏览次数:1  
标签:const 地图 高德 API amap plugins echarts

1、安装Echarts高德地图扩展echarts-extension-amap;

npm i echarts-extension-amap --save

2、引入Echarts和高德地图;

npm i echarts --save
npm i @amap/amap-jsapi-loader --save

3、需要先创建高德地图实例,才能调用Echarts API来引入地图;
useAMap.ts

import * as AMapLoader from "@amap/amap-jsapi-loader";
interface plugins {
  loaderPlugins?: string[];
  AMapUIPlugins?: string[];
}

const getMapKeyByOrgId = () => {
  const key = "[申请的高德key]";
  // @ts-ignore
  window._AMapSecurityConfig = {
    securityJsCode: "[key对应安全密钥]",
  };
  return key;
};

export async function useAMapLoader(
  plugins: plugins = { loaderPlugins: [], AMapUIPlugins: [] }
) {
  const key = getMapKeyByOrgId();
  return await AMapLoader.load({
    key, // 申请好的Web端开发者Key,首次调用 load 时必填
    version: "2.0", // 指定要加载的 JSAPI 的版本,缺省时默认为 1.4.15
    plugins: plugins.loaderPlugins, // 需要使用的的插件列表,如比例尺'AMap.Scale'等
    AMapUI: {
      // 是否加载 AMapUI,缺省不加载
      version: "1.1", // AMapUI 缺省 1.1, JSAPI v2.0 版本需要使用AMapUI 组件库的 v1.1版本。
      plugins: plugins.AMapUIPlugins, // 需要加载的 AMapUI ui插件
    },
  });
}

3、创建高德地图实例并在Echarst引入高德

<template>
  <!-- 地图实例 -->
  <div id="map-contain" class="map-contain"></div>
  <!-- echarts绘制地图 -->
  <div id="echarts-2d-map" class="echarts-2d-map" ref="echarts2dContain"></div>
</template>

<script setup lang="ts">
import { ref, onMounted } from 'vue';
import * as echarts from 'echarts';
import "echarts-extension-amap";
import { useAMapLoader } from './useAMap';

const echarts2dContain = ref<HTMLElement>();
let amap: AMap.Map;

// init amap
const initMap = async () => {
  if (!amap) {
    amap = await useAMapLoader({ loaderPlugins: ['AMap.DistrictSearch'] });
    const mapOption: AMap.MapOptions = {
      center: [85.817916, 41.662527],
      zoom: 17,
      // @ts-ignore
      forceVector: true,
    };
    new AMap.Map('map-contain', mapOption);
  }
}

// init echarts-2d
const initEcharts2d = (districtData) => {
  const myChart = echarts.init(echarts2dContain.value, 'echarts-2d-map');
  myChart.setOption({
    amap: {
      // 高德地图中心经纬度
      center: [85.817916, 41.662527],
      // 高德地图缩放
      zoom: 5.8,
      // 启用resize
      resizeEnable: true,
      // 移动过程中实时渲染 默认为true 如数据量较大 建议置为false
      renderOnMoving: false,
      // mapStyle: 'amap://styles/dark',
      // viewMode: '3D',
      // pitch: 60,
    },
  });

  // @ts-ignore 获取到高德地图实例 
  const mapModel = myChart.getModel().getComponent('amap').getAMap();
  // 调用高德API
}

onMounted(async () => {
  await initMap();
  await initEcharts2d();
})
</script>

<style scoped lang="less">
  .echarts-2d-map {
    height: 90vh;
    width: 90vw;
  }
</style>

获取到的变量 mapModel 就是在Echarts中引入的地图实例,可直接调用高德API进行操作。
例:

// 监听地图缩放
mapModel.on("zoomend", () => {
  const totalZoom = mapModel.getZoom(); //获取地图级别
  console.log('Zoom', totalZoom);
});

以上。

标签:const,地图,高德,API,amap,plugins,echarts
From: https://www.cnblogs.com/wttt123/p/18558916

相关文章

  • JavaApi---第一节
    JavaApi高级编程JavaApi什么是JavaApi?JavaApi是一组预先定义好的类和接口,帮助开发者快速开发程序JavaApi就是学会如何使用别人编写的类和接口Api应用程序的接口函数与类的集合实际就是别人写好的类Java中常用的包Java.lang:基础语言包java.util:......
  • Qt/C++离线地图的加载和交互/可以离线使用/百度和天地图离线/支持手机上运行
    一、前言说明在地图应用中,有很多时候是需要断网环境中离线使用的,一般会采用两种做法,一种是只下载好离线瓦片地图,然后根据不同的缩放和经纬度坐标绘制瓦片。这种方式优点是任何地图都支持,只需要拿到瓦片即可,缺点是其他的接口都需要自己处理,比如覆盖物的绘制,工作量巨大,尽管Qt的qml......
  • JavaAPI.05.JDBC的使用(改查)
    JDBC对象与方法目录JDBC对象与方法ConnectionPreparedStatementResultSetJDBC修改操作:SQL语句根据id修改信息JDBC查询操作:SQL语句模糊查询集合承载查询原始查询区间查询(价格)查询分六步走ConnectionConnection接口表示应用程序与特定数据库之间的连接(会话)......
  • 一看就懂的 UniApp 数据缓存 API:一篇文章带你玩转本地存储!
    UniApp数据缓存API全面解析与最佳实践在多平台跨端开发中,数据缓存是不可或缺的功能。UniApp提供了一套强大的数据缓存API,支持本地数据的存储、读取、删除和管理,适用于多种开发场景。本文将详细介绍这些API的功能、参数及使用方法,并分享一些实际开发中的应用技巧。数据缓......
  • APISIX干货:详解API管理利器,启动与部署一步到位(上)
    文章目录第一章APISIX简介1、什么是APISIX2、架构组成3、组件功能4、组件特点5、启动步骤第二章安装部署2.1裸金属2.2Docker部署2.3K8S部署概述管好微服务,成为云原生时代的新难题。从建好微服务到管好微服务,差的虽是一个字,连接起两边的却需要大量的微服务落......
  • 高德地图轨迹播放
    MapDemo<template><div><button@click="clearMap">清除地图</button><button@click="initTrack">初始化轨迹</button><button@click="playTrack">轨迹播放</button><button......
  • 无法从我的应用程序连接到位于本地主机8000的FAST API服务器,该应用程序在停靠容器下运
    无法从我的应用程序连接到位于本地主机8000的FASTAPI服务器,该应用程序在停靠容器下运行问题:无法从我的应用程序连接到位于本地主机8000的FASTAPI服务器解决步骤:1.首先,确保你的本地电脑上已经安装了Docker。如果没有安装,可以前往Docker官网下载并安装。2.安装完成后,你需......
  • Ocelot集成Consul实现api网关与服务发现
    前言没看dotnet微服务之API网关Ocelot的请先看,这篇文章接上面文章安装consul#自定义网络,自定义网络可以指定容器IP,这样服务器重启consul集群也可以正常运行。dockernetworkcreate--driverbridge--subnet=172.21.0.0/16--gateway=172.21.0.16adnc_consuldockerrun-d......
  • webapi调用
    一、查询即时库存内容  client=K3CloudApiClient("https://suninfinit.ik3cloud.com/K3Cloud/");  loginResult=client.ValidateLogin("1361434108470788096","王传志","1qaz@WSX3edc",2052);    resultType=JObject.Parse(logi......
  • 高德地图区域掩模设置背景透明
    使用高德地图创建区域掩模,参考高德地图api,效果如下:不难发现绘制的地图自带了默认的颜色和背景图,如图:需求为需要透出父元素中的背景图,那么就需要将绘制高德地图节点和canvas的背景去除。1、可通过直接设置CSS去除类名amap-container的背景图;.amap-container{backgroun......