高德地图自定义车辆定位marker以及弹出框窗口

2023-11-09

地图安装

npm install vue-amap --save

项目中设置高德地图

安装成功后在main.js设置以下内容

import VueAMap from 'vue-amap'
Vue.use(VueAMap)
VueAMap.initAMapApiLoader({
  key: '你的key',
  plugin: ['AMap.MouseTool', 'AMap.PolyEditor', 'AMap.ToolBar', 'AMap.MapType', 'AMap.PlaceSearch', 'AMap.Geolocation', 'AMap.Geocoder', 'AMap.DistrictSearch', 'AMap.InfoWindow'],
  v: '1.4.4',
  uiVersion: '1.0',
})

组件中引入安装好的高德组件:

<el-amap :amap-manager="amapManager" :events="events" :center="center" :zoom="zoom" :plugin="plugin" class="amap-demo" />
import { AMapManager, lazyAMapApiLoaderInstance } from 'vue-amap'
const amapManager = new AMapManager() // 新建生成地图画布

export default {
  data() {
    const self = this 
    return {
      car: require('@/assets/images/car1.png'), // 车辆图片
      map: null,
      amapManager,
      marker: null,
      events: {
        init(o) {
          lazyAMapApiLoaderInstance.load().then(() => {
            self.initMap()
          })
        },
      },
      center: [121.472644, 31.231706],
      zoom: 10,
      plugin: ['AMap.Autocomplete', 'AMap.PlaceSearch', 'AMap.Scale', 'AMap.OverView', 'AMap.ToolBar', 'AMap.MapType', 'AMap.PolyEditor', 'AMap.CircleEditor', 'AMap.Geocoder', 'AMap.Geolocation', 'AMap.InfoWindow'],
    }
  },
  methods: {
    // 初始化地图
    initMap() {
      const map = amapManager.getMap()
      this.map = map
    },
    initCar() {
      // 构建车辆
      const that = this
      AMapUI.loadUI(['overlay/SimpleInfoWindow', 'overlay/SimpleMarker'], function (SimpleInfoWindow, SimpleMarker) {
        for (let i = 0; i < that.vehicleInfoList.length; i++) {
          const item = that.vehicleInfoList[i]

          const marker = new SimpleMarker({
            iconStyle: that.car,
            // 显示定位点
            // showPositionPoint:true,
            map: that.map,
            position: [item.longitude, item.latitude],
            // Marker的label(见https://lbs.amap.com/api/javascript-api/reference/overlay/#Marker)
            label: {
              content: item.vehicleNo,
              offset: new AMap.Pixel(0, 30),
            },
          })

          const infoWindow = new SimpleInfoWindow({
            // 模板, underscore
            infoTitle: '',
            infoBody: `<div class="vehicleCar">
              <div>车型:${item.vehicleTypeName}</div>
              <div>司机:${item.driverName}</div>
              <div>联系方式:${item.driverPhone}</div>
              <div>已配数:${item.assignedWaybillCount}</div>
              <button class="mybtn">添加车辆</button>
            </div>`,
            // 基点指向marker的头部位置
            offset: new AMap.Pixel(0, -31),
          })

          marker.on('click', function () {
            that.openInfoWin(infoWindow, marker)
          })

          infoWindow.get$InfoBody().on('click', '.mybtn', function (event) {
            // 阻止冒泡
            event.stopPropagation()

            that.addVehicleInfo(item)
          })
        }
      })
    }
  },
  openInfoWin(infoWindow, marker) {
     infoWindow.open(this.map, marker.getPosition())
   },
}

车辆图片

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

高德地图自定义车辆定位marker以及弹出框窗口 的相关文章

  • 通过 jQuery 从输入类型=“文件”多个中删除文件

    我在使用 PHP 和 jQuery 上传文件时遇到问题 表单可以一次上传多个图像 这些图像可以在滑块中预览 表单还包含两个字段标题和描述 滑块通过 jQuery 工作 当用户通过单击选择文件来选择多个图像时
  • xpath:选择中断标签之前和之后的文本节点

    考虑以下因素 混合 br and br text1 br text2 br text3 br text4 br text5 如何找到每个文本节点 我正在考虑符合 br 标签之前或之后的条件的东西 但不确定是否 br and br 在 xpa
  • iOS Safari Mobile 禁用上一个和下一个选择输入

    上周五我发现了关于此问题的类似问题 但似乎无法再次找到它 如果有人能指出我正确的方向 那就太好了 本质上我在一个页面上有多个选择菜单 第一个在加载时填充 第二个在第一个选择时填充 够简单的 但是 在 iOS 设备中 当您点击选择元素时 它会
  • `ie9` - contenteditable false 在父级可编辑时不起作用

    我正在尝试制作内容可编辑和不可编辑的容器 用户可以通过 3 种方式使用它 他们可以将内容与non editable 他们可以将内容与editable 他们可以在不选择其中之一的情况下放置内容 可编辑 我正在努力实现以下目标 content
  • 随机定位的 div,不重叠

    所有 div 都像我需要的那样 随机 放置 但它们偶尔会重叠 这只是一个机会问题 我怎样才能防止这种情况发生 理想情况下我能够设置它们之间的最小距离 我可以通过进一步开发当前的 javascript 来实现这一目标吗 我需要考虑完全不同的方
  • 跨浏览器:禁用输入字段的不同行为(文本可以/不能复制)

    我有一个被禁用的输入 html 字段 在某些浏览器 Chrome Edge Internet Explorer 和 Opera 中可以选择并复制文本 但至少在 Firefox 中这是不可能的 您可以通过在不同浏览器中执行以下代码来测试
  • CSS:缩放字体大小以适应父块元素的高度

    我发现的几乎每个问题和答案都谈到了视口大小 这确实不是我的问题 拿着这支笔 https codepen io njt1982 pen pZjZNM https codepen io njt1982 pen pZjZNM 我有一个非常基本的
  • 使用 JQuery 预填充选择字段的下拉选项验证

    我有这个 JQuery 片段来防止选择已在另一个字段中选择的下拉选项 var coll select name service on change function coll each function var val this value
  • 如何在没有分页装饰的情况下渲染 ngTable?

    在我的小型 AngularJS 应用程序中 我使用 ngTable 库渲染多个表格 只有一个可以使用分页 其他的内容总是少于一页 每个渲染的 ngTable 似乎都在表格下方添加了 10 25 50 100 选择器 对于我的大多数桌子来说
  • 两个 Div 之间的固定宽度间隙

    有谁知道如何修复两个 div 之间的间隙 我有一个主要内容 Div 里面有两个带有图片的 Div 视图的宽度为 768 像素 当我开始拉伸视图时 两张图片开始相互远离 但理想情况下 主要内容 Div 应该在周围有空白的情况下拉伸 并且图片之
  • 通过 JavaScript 检测浏览器换行

    我需要 javascript 来检测每个浏览器包装的文本行并将其包装到 span class line 我读过一些关于测量每个单词的 y 轴的文章 但还没有看到可靠的解决方案 这是我到目前为止所拥有的 看到它Jsfiddle http js
  • 使用纯javascript选择最接近id的id

    div div TEXT div div div div TEXT div div div TEXT div 如何选择最接近div1的div2 关注w3docs https www w3 org TR html4 struct global
  • html 和 body 元素的高度

    我一直在互联网上查找 min height 和 height 属性如何在 body 和 html 元素上工作 我在很多地方都看到过下面的代码 html height 100 body min height 100 上面的内容可以与其他一些
  • 如何在同一页面上使用AJAX处理多个表单

    我有一个表单 当我单击 提交 时 它就被提交了 然后该表单隐藏 操作页面的结果显示在 div 中 classname dig 它工作正常 但是当我添加另一个表单时 它停止正常工作并且所有表单同时提交 我如何更改我的代码 done click
  • 如何更改bootstrap中form-control弹出窗口中必填字段的默认消息?

  • Vue:通过 CSS 选择组件的最简洁方法是什么?

    我有一个bar成分 它的使用方式如下
  • Iframe 相对路径挑战

    我有一个页面 在页面内有一个 Iframe 目录如下 Folder1 Folder2 IframeCSS IframeCSS Css iframePage1 html stuff css parentPage1 html 在 iframeP
  • 如何阻止破折号自行包裹?

    我有一个标题 标题最后一个单词的末尾是一个破折号 单词和破折号之间没有空格 当浏览器窗口变小时 破折号会中断并换成新行 在自己的行上有一个破折号是不好的排版 如何停止破折号之前的换行 以便最后一个单词运行到新行 这是代码 h1 XYZ co
  • 为什么元素上的负底部边距会降低该元素父元素的高度?

    这可能是由于边距折叠造成的 我知道边距折叠 至少知道它如何影响相邻元素 但我不明白当涉及负边距时它如何在嵌套元素上工作 例如 在此标记和随附的 CSS 中 Markup div class parent div class child Ch
  • CSS 是否有不等于选择器?

    CSS中有类似 不等于 的东西吗 例如 我有以下代码 input 但对于某些输入 我需要将其作废 我想通过将类 reset 添加到输入标签来做到这一点 例如

随机推荐

  • Flutter 常用插件

    dio http请求库 flutter swiper carousel slider 图片 轮播组件库 package info url launcher 系统库 app相关信息 打电话 发邮件等 pull to refresh flutt
  • 数据结构题目汇总

    求整数最大间隔 性能 hash算法应用 题目描述 请输出数字序列的最大间隔 请使用以下伪随机数生成函数 rand32 生成伪随机数 int seed int rand return seed seed 214013L 2531011L gt
  • 通过Restful api接口上传文件

    Restful api接口获取文件流的方法如下 from requests toolbelt import MultipartEncoder with open ch01 mp4 rb as f file stream f read m M
  • 计算机视觉实战项目(图像分类+目标检测+目标跟踪+姿态识别+车道线识别+车牌识别)

    图像分类 教程博客 传送门链接 链接 在本教程中 您将学习如何使用迁移学习训练卷积神经网络以进行图像分类 您可以在 cs231n 上阅读有关迁移学习的更多信息 本文主要目的是教会你如何自己搭建分类模型 耐心看完 相信会有很大收获 废话不多说
  • 初探Javascript模块化开发

    随着简单网页逐渐变成交互复杂的网站应用 网页上的Javascript代码也变得越来越庞大 越来越复杂 加之随即而来的多人协作分工的开发方式 每个人只负责其中一个或者几个很小的功能模块 最终必须通过把各个功能模块组合才能变成一个完整的功能 而
  • 2023.9.6 Redis 的基本介绍

    目录 Redis 的介绍 Redis 用作缓存和存储 session 信息 Redis 用作数据库 消息队列 消息队列是什么 Redis 用作消息队列 Redis 的介绍 特点 内存中存储数据 奠定了 Redis 进行访问和存储时的快 可编
  • Java多线程专题-synchronized的使用

    为什么有线程安全问题 当多个线程同时共享同一个全局变量或静态变量 做写的操作时 可能会发生数据冲突问题 也就是线程安全问题 但是做读操作是不会发生数据冲突问题 使用同步方式解决线程安全 问 如何解决多线程之间线程安全问题 答 使用多线程之间
  • 学习SVG(十)滤镜

    什么是滤镜 使用滤镜后 在SVG中不会直接将图形渲染到画布上 是先将图形的像素保存到缓存中 然后将滤镜指定的操作应用图形的像素对象中 然后在把新的图形像素对象展示在画布上 使用filter元素指定一组 滤镜元素 在渲染图形对象时 将该操作应
  • 南航数据分析与挖掘课设1(上)——基于多元线性回归模型,ARIMA序列的中国GDP增长影响因素研究及预测(R语言)

    基于多元线性回归模型 ARIMA序列的中国GDP增长影响因素研究及预测 摘要 在国民经济发展的过程中 国内生产总值 GDP 是指按国家市场价格计算的一个国家 或地区 所有常驻单位在一定时期内生产活动的最终成果 常被公认为是衡量国家经济状况的
  • centos7 安装Anaconda3 亲测成功

    目录 Anaconda简介 1 下载 1 1 创建一个文件夹来存放安装包 1 2 进入到文件夹里面 1 3 wget命令行下载 1 4 下载情况 2 开始安装 2 1 进入到存放文件的位置 2 2 运行 sh 文件 2 3 进入注册信息页面
  • python中heapq的使用

    目录 1 heapq heapify list 2 heapq heappush heap item 3 heapq heappop heap 4 heapq nlargest n heap 5 heap nsmallest n heap
  • 用Flair(PyTorch构建的NLP开发包)进行文本分类

    Flair是一个基于PyTorch构建的NLP开发包 它在解决命名实体识别 NER 语句标注 POS 文本分类等NLP问题时达到了当前的顶尖水准 本文将介绍如何使用Flair构建定制的文本分类器 简介 文本分类是一种用来将语句或文档归入一个
  • 笔记——尤老师讲笔试

    1 Function内部不能使用时间延迟 也不能使用 这种事件触发 只能实现一些组合逻辑运算 也不能调用task task可以有时间延迟 function不可以用时间延迟 Verilog 中的 task 是一种不可综合的语法 它既提供了从不
  • 实例分割之 Mask R-CNN

    论文地址 Mask R CNN 代码地址 facebookresearch Detectron Mask R CNN是在Faster R CNN的基础上进行了改进 Faster R CNN主要是用来进行目标识别的 为了能够进行实例分割 Ma
  • SpringBoot项目-执行查询-抛出关于zeroDateTimeBehavior异常提示

    错误信息 The connection property zeroDateTimeBehavior only accepts values of the form exception round or convertToNull The v
  • [论文阅读:姿态识别&Transformer] 2110 HRFormer: High-Resolution Transformer for Dense Prediction

    论文阅读 姿态识别 Transformer 2110 HRFormer High Resolution Transformer for Dense Prediction 文章目录 论文阅读 姿态识别 Transformer 2110 HRF
  • js对象数组去重问题

    const arr2 id 1 name 张三 id 2 name 李四 id 1 name 张三 id 2 name 李四 const newArr arr2 filter currentValue currentIndex selfLi
  • boost电路公式详解

    这个是我在设计boost电路遇到问题时找的文章 觉得说的很好 所以就转载过来方便查看 原文链接 https www eet china com mp a68179 html 以下是那边文章的内容 我们知道 不论是buck 还是boost电路
  • Centos7搭建简单的Samba服务器

    目录 背景要求 环境准备 在centos7中搭建一个简单的samba服务器用于测试 帮助理解samba服务的简易用法 背景要求 设置公共目录 所有人可以访问 权限为只 读 为结算中心和技术部分别建立单独的目录 只 允许公司总经理和对应部门员
  • 高德地图自定义车辆定位marker以及弹出框窗口

    地图安装 npm install vue amap save 项目中设置高德地图 安装成功后在main js设置以下内容 import VueAMap from vue amap Vue use VueAMap VueAMap initAM