vue+高德离线地图vue-amap开发

2023-10-31

前言:

       在使用多次高德离线地图的插件 vue-amap  感觉收获还是很多的,这里来整理下相关资料

效果图:

目录:

 

实现步骤:(源码在最下面)

一、安装插件

二、template配置基础的地图组件

三、data里面定义相关数据

四、撒点的实现,

1、template:

2、data部分定义字段:

3、methods里面动态加点,我这里还给对应的点加弹框了

五、给每个点配置弹框

1、template:

2、data部分定义字段:

3、methods里面动态加点,我这里还给对应的点加弹框了

六、画线

1、template:

2、data部分定义字段:

七、画范围

1、template:

2、data部分定义字段:

源码:

 


实现步骤:(源码在最下面)

一、安装插件

cnpm install vue-amap --save

二、template配置基础的地图组件

 <el-amap
                vid="amapDemo1"
                :center="center"
                :zoom="zoom"
                :plugin="plugin"
        >
</el-amap>

三、data里面定义相关数据

        center: [108.90315, 34.21903], // 中心位置
        zoom: 14,

四、撒点的实现,

1、template:

2、data部分定义字段:

3、methods里面动态加点,我这里还给对应的点加弹框了

五、给每个点配置弹框

1、template:

2、data部分定义字段:

3、methods里面动态加点,我这里还给对应的点加弹框了

六、画线

1、template:

2、data部分定义字段:

七、画范围

1、template:

2、data部分定义字段:

源码:

<template>
    <div class="mapDiv">
        <el-amap
                vid="amapDemo1"
                :center="center"
                :zoom="zoom"
                :plugin="plugin"
        >
            <!-- 在地图上标记点 -->
            <el-amap-marker
                    v-for="(marker,index) in markers"
                    :position="marker.position"
                    :events="marker.events"
                    :content="marker.content"
                    :key="index"
                    >
            </el-amap-marker>
            <!--在地图上显示窗口提示框-->
            <el-amap-info-window
                    v-if="window"
                    :position="window.position"
                    :visible="window.visible"
                    :content="window.content"
            ></el-amap-info-window>
            <!--轨迹线路-->
            <el-amap-polyline
                    :editable="polyline.editable"
                    :path="polyline.path"
                    :events="polyline.events">
            </el-amap-polyline>
            <!--圆点标记-->
            <el-amap-circle
                    v-for="circle in circles"
                    :center="circle.center"
                    :radius="circle.radius"
                    :fill-opacity="circle.fillOpacity"
                    :events="circle.events">
            </el-amap-circle>
        </el-amap>
    </div>
</template>

<script>
    import Vue from 'vue'
    import VueAMap from 'vue-amap'
    Vue.use(VueAMap)
    let amapManager = new VueAMap.AMapManager()
    export default {
        props: {

        },
        data () {
            return {
                amapManager,
                center: [108.90315, 34.21903], // 中心位置
                zoom: 14,
                makerConf: {
                    position: [108.90315, 34.21903],
                    content: ''
                },
                markers: [],
                //线路
                polyline: {
                    path: [
                        [108.864231, 34.246916],
                        [108.860626, 34.254436],
                        [108.840885, 34.252024],
                        [108.839168, 34.218815],
                        [108.911609, 34.228467]
                    ],
                    events: {
                        click(e) {
                            alert('click polyline');
                        },
                        end: (e) => {
                            let newPath = e.target.getPath().map(point => [point.lng, point.lat]);
                            console.log(newPath);
                        }
                    },
                    editable: false,//是否显示线路上的点
                },
                // 当前窗口
                currentWindow: {
                    position: [0, 0],
                    content: '',
                    events: {},
                    visible: false
                },
                // 窗口信息框
                windows: [],
                window:'',
                // plugin: [
                //     'VueAMap.Scale',   //右下角缩略图插件 比例尺
                //     'VueAMap.OverView',//地图鹰眼插件
                //     'VueAMap.ToolBar', //地图工具条
                //     'VueAMap.MapType', //类别切换控件,实现默认图层与卫星图、实施交通图层之间切换的控制
                //     'VueAMap.Geolocation', //定位控件,用来获取和展示用户主机所在的经纬度位置
                //     'VueAMap.loadUI',
                //     'VueAMap.Autocomplete', //输入提示插件
                //     'VueAMap.PlaceSearch', //POI搜索插件
                //     "VueAMap.PolyEditor", //编辑 折线多,边形
                //     "VueAMap.CircleEditor", //圆形编辑器插件
                // ],
                // ToolBar工具条插件、MapType插件、Scale比例尺插件、OverView鹰眼插件
                plugin: ['ToolBar',
                    // {
                    //     pName: 'MapType',
                    //     defaultType: 0,
                    //     events: {
                    //         init (o) {
                    //             console.log(o)
                    //         }
                    //     }
                    // },
                    {
                    pName: 'Scale',
                    events: {
                        init (instance) {
                            console.log(instance)
                        }
                    }
                },
                    {
                    pName: 'OverView',
                    events: {
                        init (instance) {
                            console.log(instance)
                        }
                    }
                }],

                //圆形范围
                circles: [
                    {
                        center: [108.90315, 34.21903],
                        radius: 800,
                        fillOpacity: 0.5,
                        events: {
                            click: () => {
                                alert('click');
                            }
                        }
                    }
                ]

            };
        },

        components: {},

        computed: {},

        created() {
            this.initMapData();
        },

        mounted() {
            this.markAndText();
        },

        methods: {
            // 初始化地图
            initMapData(){
                VueAMap.initAMapApiLoader({
                    // 高德的key
                    key: 'a6cc107ba8279ad6eee8d7e6498c6c8e',
                    // 插件集合
                    plugin: [
                        'AMap.Scale',   //右下角缩略图插件 比例尺
                        'AMap.OverView',//地图鹰眼插件
                        'AMap.ToolBar', //地图工具条
                        'AMap.MapType', //类别切换控件,实现默认图层与卫星图、实施交通图层之间切换的控制
                        'AMap.Geolocation', //定位控件,用来获取和展示用户主机所在的经纬度位置
                        'AMapUI.loadUI',
                        'AMap.Autocomplete', //输入提示插件
                        'AMap.PlaceSearch', //POI搜索插件
                        "AMap.PolyEditor", //编辑 折线多,边形
                        "AMap.CircleEditor", //圆形编辑器插件
                    ],
                    uiVersion: '1.0.11', // 版本号

                    resizeEnable: true,
                    rotateEnable:true,
                    pitchEnable:true,
                    pitch:80,
                    rotation:-15,
                    viewMode:'3D',//开启3D视图,默认为关闭
                    buildingAnimation:true,//楼块出现是否带动画

                    expandZoomRange:true,
                    zooms:[3,28],
                    zoom: 12,
                    center: [ 108.90315, 34.21903], // 中心位置
                })
            },

            //配置撒点和对应的数据信息
            markAndText(){
                let markerData = [
                    {
                        position:[108.90315, 34.21903],
                        text:'这里第一个点'
                    },
                    {
                        position: [108.88071, 34.230738],
                        text:'这里第二个点'
                    },
                    {
                        position:[108.911609, 34.228467],
                        text:'这里第三个点'
                    },

                ];
                let markers = [];
                let windows = [];
                let self = this;
                markerData.forEach((item,i)=>{
                    markers.push({
                        position: item.position,
                        // content:'<div class="prompt">${ 111 }</div>',
                        events: {
                            click() {
                                self.windows.forEach(window => {
                                    window.visible = false;
                                });

                                self.window = self.windows[i];
                                self.$nextTick(() => {
                                    self.window.visible = true;
                                });
                            }
                        }
                    });
                    windows.push({
                        position: item.position,
                        content: `<div class="prompt">${ item.text }</div>`,
                        visible: true
                    });
                })

                this.markers = markers;
                this.windows = windows;
            },

        },

        watch: {}
    }

</script>
<style lang='less' scoped>
    .mapDiv{
        width:100%;
        height: 800px;
    }
</style>

到此就结束了

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

vue+高德离线地图vue-amap开发 的相关文章

  • 每日一题:蒟蒻

    蒟蒻 题目 Daimayuan Online Judge map可以一一映射 按键值从小到大排序 AC代码 include
  • Java知识点之Map(一)

    Map Map相关的内容在面试过程中都是一个重要的点 问深了会涉及到很多数据结构和线程相关的问题 你了解Map吗 常用的Map有哪些 Map是定义了适合存储 键值对 元素的接口 常见的Map实现类有HashMap Hashtable Lin
  • 2022Robocom省赛(本科组)RC-u1 不要浪费金币

    哲哲最近在玩一个游戏 击杀怪物能获得金币 这里记击杀第 i 个怪物获得的金币数量为 Pi 然而这个游戏允许拥有的金币数量是有上限的 当超过时 超过上限的部分就会被系统光明正大地吃掉 哲哲就拿不到了 为了不浪费金币 哲哲决定 当下一个要击杀的
  • 正确使用STL-MAP中Erase函数 一切尽在代码中。

    include
  • map和set的概念及使用

    1 什么是关联式容器 关联式容器也是用来存储数据的 与序列式容器不同的是 其里面存储的是
  • vue-cli3.0引入高德3d动画效果方法一:

    前言 因为两个方法代码量都特别大 这里分2个页面详细说一下 这个页面是方法一 包括vue cli3 0中使用和html中使用两种示例 注意 这里有想看另一种方法的童鞋请点入口 https blog csdn net qq 41619796
  • (ros/navigation/slam_gmapping) map_server地图服务器

    http wiki ros org map server 概述 map server提供map server ROS节点 它提供地图数据作为一个ROS服务器 也提供map saver命令行功能 能动态生成保存到文件中的地图 地图格式 包中通
  • 【深度学习】——如何提高map值

    目录 代码获取 map原理 map提高技巧 技巧总结 实战 1 效果不佳map55 55 1 单独调整get dr txt py中的self iou 0 3 2 单独调整get map py中的minoverlap 3 同时调整minove
  • 用openlayers在加载离线瓦片(里面附带下载瓦片的软件,请往下看)

    首先先来看看效果 这个是谷歌卫星图 然后我们说说怎么实现的吧 div style width 100 height 800px div
  • JavaScript学习笔记(11) map、reduce

    map map 方法定义在JavaScript的Array中 调用Array的map 方法 传入我们自己的函数 就可以得到结果 来一个例子 use strict function pow x return x x var arr 1 2 3
  • 7-52 两个有序链表序列的交集 (20 分)(思路加详解尾插法)come Boby!

    一 题目 已知两个非降序链表序列S1与S2 设计函数构造出S1与S2的交集新链表S3 输入格式 输入分两行 分别在每行给出由若干个正整数构成的非降序序列 用 1表示序列的结尾 1不属于这个序列 数字用空格间隔 输出格式 在一行中输出两个输入
  • java8的lambda中的map相关操作

    0 入门详解篇 1 史上最简单入门 java8的lambda中的map相关操作 基础及注意事项图文详解 2 java8的lambda中collect接口案例及原理详解 官方文档解读 3 java8 封装lambda泛型工具类之list转为m
  • vue+openlayer实现:拖拽、旋转、缩放、拉伸、移动等功能以及对应的监听事件

    前言 openlayer 是有他自己的扩展插件 ol ext 我们这里用他来实现图形的操作 拖拽 旋转 缩放 拉伸 移动等等功能 以及他的监听事件 毕竟我们作图以后是需要保存数据给后端 存到数据库的 相关资料 1 ol ext官方地址 入口
  • map的常用用法详解

    头文件 include
  • vue高德地图marker批量标记与InfoWindow提示框

    一 前言 由于数据量大 如果一个一个添加marker会造成页面卡顿 所以在此就使用了批量标记 特此研究出一下几种方法 在高德平台获取key 高德开放平台 高德地图API 二 批量添加marker标记 1 海量点标记 MassMarks 优点
  • Vue 引入高德地图 vue-amap

    一 在高德开发平台 获取Key 已有可跳过 高德开发者平台 链接地址 1 控制台 我的应用 创建应用 添加key 创建应用 新建应用 选择web端 JS平台 last 到这里的 key 就有了 还得到了一个安全密钥 二 引入vue amap
  • java 根据地址返回经纬度

    根据地址返回经纬度 param addr return 返回经纬度数据 latLng 0 经度 latLng 1 维度 public static String getCoordinate String addr String latLng
  • 理解目标检测当中的mAP

    我们在评价一个目标检测算法的 好坏 程度的时候 往往采用的是pascal voc 2012的评价标准mAP 网上一些资料博客参差不齐 缺乏直观易懂的正确说明 希望这篇博文能够给大家一点帮助 mAP历史 目标检测的mAP计算方式在2010年的
  • mongdb 建立地图索引,删除,查询

    方式一 创建 db shop ensureIndex loc 2dsphere 2Dsphere索引 用于存储和查找球面上的点 db shop ensureIndex loc 2d 2D索引 用于存储和查找平面上的点 本人项目用的这种 查询
  • 2020年团体程序设计天梯赛-总决赛 L2-2 口罩发放

    L2 2 口罩发放 25分 输入格式 输出格式 输入样例 输出样例 样例解释 题解 L2 2 口罩发放 25分 为了抗击来势汹汹的 COVID19 新型冠状病毒 全国各地均启动了各项措施控制疫情发展 其中一个重要的环节是口罩的发放 某市出于

随机推荐

  • 宝塔7.9最新企业版免授权无后门

    宝塔面板大家应该都知道吧 今天带来的是宝塔面板企业版免授权 无需绑定账号版本 用ssh链接上我们的服务器输入下列命令回车 然后过一会会让输入一个东西 输y即可 与正版宝塔安装步骤一致 yum install y wget wget O in
  • mysql干货——数据库字符集和校对规则详解

    一 什么是字符集 字符是多个文字和符号的总称 包括各个国家的文字 标点符号 图形符号 数字等 字符集多个字符的集合 字符集合种类较多 每个字符集包含的字符的个数不同 对于字符集不支持的字符 则以乱码显示 常见的字符集有ASCII字符集 GB
  • 2、matlab 图像分割(1)

    目的 利用图像的坐标点 判断出想要分割出的部分 利用 matlab 语法实现分割 1 基本语法 1 1 定义矩阵 var 1 2 3 4 5 6 定义一个 2 3 的矩阵 该变量会出现在工作区 可以在命令行用变量输出该矩阵 1 2 find
  • Unity协同详解以及与多线程的区别使用

    转载自 http blog csdn net linuxheik article details 45392945 1 什么是协调程序 unity协程是一个能暂停执行 暂停后立即返回 直到中断指令完成后继续执行的函数 它类似一个子线程单独出
  • 深入理解Interpreter模式

    1 Interpreter模式是一个能给人留下深刻印象的模式 The Interpreter pattern describes how to define a grammar for simple languages represent
  • 本地容灾异地备份,本地容灾和异地容灾

    关于容来自灾备份 备份也是容灾的一种方式 我们认为应用级的备份是最传统的 在应用层进行复制 一般成本低廉数据级的容灾 只得是从存储层进行备份 这种备份的机制往往是实时的 适合关键的业务 并且能够做到实时的挂载 相对第一种 毕竟成本高一些 但
  • 用chargpt一分钟,一键生成PPT!

    ChatGPT狂飙160天 世界已经不是之前的样子 新建了人工智能中文站https ai weoknow com 每天给大家更新可用的国内可用chatGPT资源 这是 ChatGPT 从入门到精通 第 13 篇基础教程 有同学留言 问 还有
  • 页面缓存————Expires header(顺便提下ASP.NET常用的VaryByParam实现缓存)

    从事ASP NET开发也有1年多了 这期间发生了许许多多的事情 经过苦难的层层磨练 渐渐对ASP NET这个很多人说 简单易掌握 的东西有了逐步的认识和理解 自己也在慢慢的成长 在这1年多的期间非常感谢franky大哥给我前端上的指导 感觉
  • 贝叶斯分类(这个讲的比较清晰,一看就明白)

    原文地址 http www cnblogs com leoo2sk archive 2010 09 17 naive bayesian classifier html 1 2 分类问题综述 对于分类问题 其实谁都不会陌生 说我们每个人每天都
  • HDF5库的下载

    HDF5是科学计算中最常用的分层式数据存储格式 大部分计算软件都需要它的支持 然而 最近在下载HDF5库的时候 我突然发现 官方的下载链接竟然都指向了AWS 在国庆大背景下我的梯子被战略性封闭 于是全部404 不过这样就难住我了嘛 不可能的
  • oracle导出表结构的几种办法,oracle表结构和数据导出时的一些勾选项说明

    使用pl sql developer导出oracle数据库的表结构和表数据时 有一些勾选项供用户选择 需要用户根据实际情况进行勾选或取消 导出方法如下 一 只导出表结构 1 使用pl sql developer登陆数据库 2 选择Tools
  • [Pytorch系列-70]:开发环境 - 可视化工具visdom安装与使用方法

    作者主页 文火冰糖的硅基工坊 文火冰糖 王文兵 的博客 文火冰糖的硅基工坊 CSDN博客 本文网址 https blog csdn net HiWangWenBing article details 122073099 目录 第1章 概述
  • IP地址和网络地址及广播地址解析

    IP地址 IP地址有IPV4和IPV6两种 IPV4 由32位二进制数组成 一般用点分十进制来表示 IPV6 由128位组成 一般用冒号分隔 十六进制来表示 IP地址由两部分组成 网络部分 NETWORK 主机部分 HOST 例 192 1
  • 基于iscroll实现下拉和上拉刷新

    基于iscroll实现下拉和上拉刷新 2015 02 07 javascript moblie 插件 iscroll上拉刷新 js上拉刷新 js下拉刷新 在原生APP的开发中 有一个常见的功能 就是下拉刷新的功能 这个想必大家都是知道的 但
  • Sqlite嵌入式内存数据库的优化

    0 场景及问题 目前网关项目在使用Sqlite的数据库存储数据 但是我们使用的方式和一般的数据库使用有区别 导致出现了两个问题 Sqlite3占用内存迅速增长 这种增长是cat proc fd号 statm 的显示增长 区别于 sqlite
  • Android OpenGL ES 2.0绘图:绘制纹理

    http mobile 51cto com aengine 437172 htm public class MyGLSurfaceView extends GLSurfaceView public MyGLSurfaceView Conte
  • PanGu-Coder2华为盘古大模型来了!

    视学算法报道 机器之心编辑部 这次 华为代码生成大模型盘古 Coder2 采用了一种类似于 RLHF 基于人类反馈的强化学习 的框架 相较前代实现了更高的一次生成通过率 随着大模型成为 AI 开发新范式 将大语言模型集成至编程领域 完成代码
  • xenserver VM假死

    使用XenServer作为虚拟化平台 经常会有用户反映虚拟机会假死 并亮起非正常的Yellow图标 a 虚拟机不可用 这种现象发生的非常随机 发生在不固定的主机 不固定的虚拟机上 b 使用XenCenter无法正常的将其ShutDown 包
  • static关键字的四种用法

    在java的关键字中 static和final是两个我们必须掌握的关键字 不同于其他关键字 他们都有多种用法 而且在一定环境下使用 可以提高程序的运行性能 优化程序的结构 下面我们先来了解一下static关键字及其用法 static关键字
  • vue+高德离线地图vue-amap开发

    前言 在使用多次高德离线地图的插件 vue amap 感觉收获还是很多的 这里来整理下相关资料 效果图 目录 实现步骤 源码在最下面 一 安装插件 二 template配置基础的地图组件 三 data里面定义相关数据 四 撒点的实现 1 t