高德地图JSAPIvue项目的使用

2023-10-31

最近在项目中使用高德地图JSAPI,遇到一些问题整理一下做个总和记录,希望能帮到看到文章的大家

1)关于引用

    npm i @amap/amap-jsapi-loader --save 然后创建好地图容器后引入地图

    注意避坑的点: (1)使用loca可视化的时候地图模式一定换成3d以及指定版本号(2)记得设置秘钥,这里是按官网的,初始话完成后直接在生命周期调用即可

window._AMapSecurityConfig = {
    securityJsCode: "",//秘钥
}
//初始化地图
initMap(){
    AMapLoader.load({
    key: "", // 申请好的Web端开发者Key,首次调用 load 时必填
    version:"2.0", // 指定要加载的 JSAPI 的版本,缺省时默认为 1.4.15
    plugins:['AMap.Walking'],// 需要使用的的插件列表,如比例尺'AMap.Scale'等
    Loca:{ 
      version: '2.0.0'
    },
  }).then((AMap)=>{
      this.map = new AMap.Map("map",{  //设置地图容器id
        resizeEnable: true,
        viewMode:"3D",    //是否为3D地图模式
        zoom:13,           //初始化地图级别
        mapStyle: 'amap://styles/darkblue',//地图初始样式,这里选择的是深蓝色
        center:[xxxx, xxxxx], //初始化地图中心点位置
      });
      this.loca = new Loca.Container({
        map: this.map
      );
  }).catch(e=>{
      console.log(e);
  })
}

2)添加点标记

添加点标记时可以事先把labelsarr在data里面存起来方便之后的删除,这里我并没有这样做,点标记携带数据的话可以在new AMap.Marker的时候直接加一个自定义属性扔里面,也可以在之后直接绑上去

      //循环添加点标记数组
      labelsfn(arr = [],str){
        let labelsarr = [] //这个就是存点标记数据的数组
        arr.forEach((item,i)=>{ //这里是传了一堆坐标,直接循环去建立点标记数据
          let icon = new AMap.Icon({
              // 图标尺寸
              size: new AMap.Size(40,40),
              // 图标的取图地址
              image: `图片地址`,
              // 图标所用图片大小
              imageSize: new AMap.Size(40, 40),
          });
          let marker = new AMap.Marker({
              anchor: 'bottom-center', //设置锚点
              offset: new AMap.Pixel(0,8), //设置偏移量
              icon: icon,
              position:[item.longitude || 0,item.latitude || 0] // 位置
          })
          marker.content = ""
          marker.emit('click', {target: marker});
          marker.on('click', "这里是事件函数"); // 点标记添加事件
          labelsarr.push(marker)//最后把点标记数据push进数组
        })
        this.map.add(labelsarr);// 添加到地图
      },

注意避坑的点:(1):点标记点击出来的对话框,因为是在marker.contrnt这里写的对话框内容,如果要绑定事件,可以使用这个方法,但是只能传一个参数,还不能是对象,有大佬可以给指点指点

  created(){
    let thet = this
    window.events = (item)=>{
      //事件
    }
  },

3)删除点标记

上面说过在地图上添加点标记前可以把labelsarr存在data里这里就可以用到

//删除点标记
removelabel(){
    this.map.remove("存起来的点标记数据");
},

4)规划路径

通常规划路径是一个终点一个始点,但是该项目是多个始点一个终点,所以我是这么写的,

//规划路径
routewking(starting,end){ //传一个终点,一个其他坐标数组
     starting.forEach((item,index)=>{
       //步行导航
       let walking = new AMap.Walking({
           map: this.map,
           hideMarkers: true,
           autoFitView: false
       }); 
       //根据起终点坐标规划步行路线
       walking.search([item.longitude,item.latitude], end, function(status, result) {
          if (status === 'complete') {
            //console.log('步行路线数据查询成功');
          } else {
            //console.log('步行路线数据查询失败' + result);
          } 
       });
       this.maparr.push(walking) //把规划好的路径存在data里
     })
},

注意避坑的来了,当我使用这个生成路径后之后的删除就出问题了,思来想去就是在push的时候他只保留了一条路径,删除时就删不干净,所以我先把数据存起来,之后在删除的时候就可以循环删除

      //删除路径
      removewking(){
          this.maparr.forEach((item)=>{
            item.clear()
          })
      },

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

高德地图JSAPIvue项目的使用 的相关文章

  • 在 Node.js 中生成带条形码的 pdf

    我在用https github com devongovett pdfkit https github com devongovett pdfkit生成 PDF 文件 我可以简单地使用类似的方法 app get get pdf req re
  • Javascript 对象属性名称

    在 C 中 可以将对象属性的名称作为字符串值获取 名称 对象 Property gt myProperty 这可以在 Javascript Typescript 中完成吗 Object Keys 是我找到的唯一东西 但它给了我所有的键 示例
  • 如何在React Native的MapView中设置标记

    我想在React Native中的MapView上设置一个标记 但是通过官方文档找不到任何信息MapView https facebook github io react native docs mapview html content 如
  • 从选择 onChange 调用 javascript 函数 [重复]

    这个问题在这里已经有答案了 所以我有一个简单的 HTML 选择框和一个 javascript 警报功能 我希望选择框有一个 onchange 事件来调用 javascript 警报函数 这是我到目前为止所拥有的 HTML div Type
  • 将时间戳转换为一个数组

    在应用程序脚本 谷歌表中运行 我从 API 获取时间戳并返回此结果 1 6370611672429312E18 1 63706107263277082E18 我执行此代码并且工作正常 但问题不在数组中 我每次都需要它在数组中 const t
  • Javascript 作为对象键的函数与块中标记函数之间的语法冲突

    假设您有一个支持两者的浏览器带标签的函数声明 https developer mozilla org en US docs Web JavaScript Reference Statements label Labeled function
  • EmberJS:对象作为查询参数来刷新模型

    我遵循了查询参数指南 http guides emberjs com v1 11 0 routing query params http guides emberjs com v1 11 0 routing query params 而且效
  • 检查用户设备的 GPS 是否开启

    我正在使用 jQuery Mobile 和 PHP 开发一个应用程序 我没有使用 Phonegap 或其他框架 我需要找到用户的geolocation 如果用户设备的 GPS 关闭 那么我无法获取位置 现在我需要查找用户设备的 GPS 是否
  • .points 不透明度/大小在三个.js 内

    我回来回答有关 points 的第二个问题 这次想知道如何将不透明度从 0 更改为 1 然后又回到距发射器的特定像素距离内 var particleCount 14 particles new THREE Geometry pMateria
  • 使用 float:left 与 display:inline-block 的 jQuery UI 拖放排序比较

    我这里有两个例子 这两个例子之间的唯一区别是 一种使用display inline block 另一种使用float left li doc item 显示 内联块 与 li doc item float left 我的问题是 displa
  • Angular 4 Http POST 不起作用

    我希望每个人都做得很好 我最近开始使用 Angular 4 4 我一直在尝试将数据发布到我的 api 服务器 但不幸的是它不起作用 我花了大约两天的时间 但仍然没有成功 甚至已经尝试过 6 7 篇文章角 io https angular i
  • ES6 模块范围

    我有代码 lib js var a a export var b b main js console log a a variable is not available in a global scope import b from lib
  • 当php脚本通过ajax运行时显示进度条

    我有一个通过 ajax 向服务器提交值的表单
  • vuejs中如何获取组件编译后的html内容

    我有一个这样的组件
  • onPress 方法中箭头函数与普通函数的行为

    正在学习 Native React 并学习更多关于 javascript 的知识 所以我仍然不明白它的行为的很多事情 我使用 TouchableOpacity 及其 onPress 属性创建了一个按钮组件 为了让它工作 我必须发送我想要执行
  • Three.js点击单个粒子

    In this example http jsfiddle net agqq96bq 2 您可以看到 2 个可点击的粒子 但它们都受到点击的影响 另外 我只想检测粒子上的点击 而不将它们过滤出场景 像这儿 if intersects len
  • 如何跨多个文件跨越 javascript 命名空间?

    我永远忽略了javascript 几年前我开始使用 jQuery 这样我就可以过得去 但随着我开始更多地进行 TDD 我昨天决定真正深入研究 javascript 之后可能还有咖啡脚本 在我的 ASP NET Web 窗体应用程序中 我有很
  • Vue - 调度完成后调用 store getter?

    我正在使用 Laravel 5 7 Vue2 Vuex 我在调度调用完成后让 Vue 返回存储值时遇到一些困难 我的申请流程如下 我单击一个提交按钮 该按钮调用组件上的 validate Validate 分派到我的 addLease 操作
  • 将引导程序弹出框保留在视口内

    我正在尝试使用带有按钮的侧边栏创建一个菜单 每个按钮都有一个指定的包含相关数据的弹出窗口 不幸的是 其中一个弹出窗口可能包含任意数量的行 并且在某些情况下它可能部分位于视口之外 See http jsfiddle net bfd9f 1 h
  • JavaScript 阶乘防止无穷大

    我一直在 JavaScript 中使用这个函数来计算阶乘数 var f function factorial n if n 0 n 1 return 1 if f n gt 0 return f n return f n factorial

随机推荐

  • vue项目怎么修改项目名称

    1 在package json文件中 修改name成你想要的新名字 2 删掉node modules文件夹 3 修改根目录下面的index html文件中的title 改完以后 vue文件中的title就改过来了 4 重新下载依赖 npm
  • 业务架构视图该怎么画?

    业务架构全景视图是快速理解业务运作形态的重要工具 该视图不应以IT视角绘制 业务元素及其结构应是绘制重点 商业模式画布中业对务元素进行了标准化 将其业务活动展开可得到一份精炼的业务全景视图 两者可互为补充 由于篇幅限制和认知曲线 应该控制全
  • 2020年 IEEE VIS 科学可视化与体渲染论文整理与分析

    因为最近工作的关系 需要研究一下IEEE VIS中2017年以后的与我之前主要方向 体渲染 医学可视化 有关的论文 我把这些年全部的论文进行了筛选和梳理 总共筛选出57篇论文 打算写一个文章来记录这些内容 这个栏目是2020年的5篇论文的介
  • 把Collection转化为XML

    IList
  • zlib库源码编译

    文章目录 zlib库源码编译 简介 源码编译 Windows vs2017 64位版本编译 zlib库源码编译 简介 该篇博客主要用于记录zlib库的源码编译方法 根据自己在源码编译过程中踩得坑进行记录 既便于后续自己学习 也希望能够帮助他
  • SDK 开发中见到的问题

    问题1 Could not build module MySDK 原因是 在pubulic的头文件中导入的头文件都需要导入到pubulic中 m文件中头文件不需要导入 问题2 Missing submodule subHeader 原因是
  • PyDev Eclipse使用技巧说明

    PyDev Package Explorer 创建项目 在开展工作之前 需要创建一个新的项目 在 Eclipse 菜单栏中 选择 File gt New gt Project gt Pydev gt Pydev Project 单击 Nex
  • 求函数【线段树】【2020牛客寒假算法基础集训营2】

    首先 这个区间很容易让人想到是区间操作 那么就是来推公式吧 我们从中不难发现 从两个值到四个值 可以是相当于 其中 两个 括号中的值是不是有点相似 我们是不是可以将它放在线段树上来进行维护了 include
  • CVPR 2022

    作者 cocoon 编辑 3D视觉开发者社区 前言 FAIR又出新作了 一篇 2020年代的卷积网络 的横空出世 让国内外CV圈的眼光都聚焦于此 不少大牛都纷纷下场参与讨论 研究团队以Transformer的一些设计原则以及训练技巧为标 尽
  • 引用与指针有什么区别?

    引用与指针有什么区别 指针和引用都是地址的概念 指针指向一块内存 它的内容是所指内存的地址 引用是某块内存的别名 程序为指针变量分配内存区域 而不为引用分配内存区域 指针使用时要在前加 引用可以直接使用 引用在定义时就被初始化 之后无法改变
  • Java 异常

    目录 1 自己不处理 交给调用者处理 1 1 throws 声明一个异常 1 2 throw 抛出一个异常 2 自己处理异常 2 1 try catch 2 2 try catch的常见问题 3 Throwable 的成员方法 4 自定义异
  • [2021.9.13][OpenGL ES 3.0编程指南]1 OpenGL ES 3.0简介

    1 1 OpenGL ES 3 0 OpenGL ES 3 0实现了具有可编程着色功能的图形管线 由两个规范组成 OpenGL ES 3 0 API规范和OpenGL ES着色语言3 0规范 图1 1展示了OpenGL ES 3 0 图形管
  • java网络编程01——网络基本概念

    阅读 java网络编程 等诸多资料个人所思所想读书笔记 1 网络 因特网 两种方式回答问题 其一是描述因特网的基本构成即构成因特网的基本硬件和软件组件 其二根据分布式应用提供服务的联网基础设施描述因特网 因特网是世界范围的计算机网络 即是一
  • 服务器光信号闪红灯是什么意思,路由器光信号闪红灯是什么意思

    现在不少宽带在安装之后还需要配备一个路由器用来接收光纤信号 在路由器上会有几个指示灯 如果你的路由器信号灯一直闪红灯知道是什么意思吗 一起来了解一下吧 闪红灯的意思 宽带 费 现在宽带基本都是后付费模式 因为 费的时间太 运营商直接关掉了宽
  • 矩阵通高效监管企业新媒体矩阵,账号集中管理与运营数据分析

    越来越多的企业在全网布局旗下账号 希望通过社媒传播矩阵 以内容连接产品与用户 达成增加销售线索或扩大品牌声量的目的 构建矩阵的优势在于 内容能多元发展 聚集不同平台流量 多种营销渠道自主掌控 分散单一平台传播风险 各平台账号间也能协同互补
  • JavaScript中Math.max()和Math.min()方法

    JavaScript中Math max 和Math min 方法 Math是JavaScript中的对象 不是构造函数 可以用来执行数学任务 1 Math max max 返回给定的一组数据中的最大值 但是不接收数组作为参数 参考用法
  • vue3.0 兼容ie浏览器

    vue3 0 兼容ie浏览器 安装babel polyfill npm install save babel polyfill 在main js里面引入 一定要在最上面 第一行 import babel polyfill 安装完成后会有ba
  • HTML页面结构

  • Unity实现点击显示不同UI

    在开发过程中经常遇到切换显示不同UI的需求 实现方案有2套 1 创建两个场景A B 在A中点击某个button后触发切换事件后加载B场景现在新的场景信息 优点 是逻辑简单 在不同的场景中创建对应的UI即可 缺点是当两个场景中有重复显示的模型
  • 高德地图JSAPIvue项目的使用

    最近在项目中使用高德地图JSAPI 遇到一些问题整理一下做个总和记录 希望能帮到看到文章的大家 1 关于引用 npm i amap amap jsapi loader save 然后创建好地图容器后引入地图 注意避坑的点 1 使用loca可