Vue使用高德地图搜索功能

2023-11-15

  1. 下载依赖

yarn add @amap/amap-jsapi-loader

2、初始化高德地图 设置key和秘钥

<template>
    <div class="page-box">
        <el-input id="mapInput" type="text" value="请输入关键字:(选定后搜索)" onfocus='this.value=""' placeholder="请输入活动地址" />
        <!-- 百度地图  -->
        <div id="bai-du-map">
            <!-- 技术支持和联系方式  -->
        </div>
    </div>
</template>

<script>
    import AMapLoader from "@amap/amap-jsapi-loader";
    // 设置安全密钥
    window._AMapSecurityConfig = {
        securityJsCode: '01749f31f7a3a451c2e1xxxxxxx',
    }
    export default {
        data() {
            return {
                map: null,
                mouseTool: null,
                overlays: [],
                auto: null,
                placeSearch: null,
            };
        },
        created() {
            this.initMap()
        },
        methods: {
            initMap() {
                AMapLoader.load({
                    "key": "3748e65db671fcc6eb43d3bbxxxx",
                    "version": "2.0",   // 指定要加载的 JSAPI 的版本,缺省时默认为 1.4.15
                    "plugins": [] // 插件
                }).then((AMap) => {
                    console.log(1)
                    // 初始化地图
                    this.map = new AMap.Map('bai-du-map', {
                        viewMode: "2D",  //  是否为3D地图模式
                        zoom: 13,   // 初始化地图级别
                        center: [113.65553, 34.748764], //中心点坐标  郑州
                        resizeEnable: true
                    });
                }).catch(e => {
                    console.log(e);
                });
            },
        },
    };
</script>

<style scoped>
    #bai-du-map {
        overflow: hidden;
        width: 400px;
        height: 300px;
        margin: 0;
        font-family: "微软雅黑";
        position: absolute;
        right: 35%;
        top: 40%;
    }
</style>

<style scoped lang="less">
    /* 隐藏高德logo  */
    .amap-logo {
        display: none !important;
    }

    /* 隐藏高德版权  */
    .amap-copyright {
        display: none !important;
    }
</style>

这样就能渲染出地图来了

3、使用高德地图API插件 实现搜索定位功能

<template>
    <div class="page-box">
        <el-input id="mapInput" type="text" value="请输入关键字:(选定后搜索)" onfocus='this.value=""' placeholder="请输入活动地址" />
        <!-- 百度地图  -->
        <div id="bai-du-map">
            <!-- 技术支持和联系方式  -->
        </div>
    </div>
</template>

<script>
    import AMapLoader from "@amap/amap-jsapi-loader";
    // 设置安全密钥
    window._AMapSecurityConfig = {
        securityJsCode: '01749f31f7a3a451c2e1cxxxxxxx',
    }
    export default {
        data() {
            return {
                map: null,
                mouseTool: null,
                overlays: [],
                auto: null,
                placeSearch: null,
            };
        },
        created() {
            this.initMap()
        },
        methods: {
            initMap() {
                AMapLoader.load({
                    "key": "3748e65db671fcc6eb43d3bbxxxxxxx",
                    "version": "2.0",   // 指定要加载的 JSAPI 的版本,缺省时默认为 1.4.15
                    "plugins": ['AMap.AutoComplete', 'AMap.PlaceSearch'],//这里一定要注意 驼峰式 我没注意这块 找问题浪费了很多时间
                }).then((AMap) => {
                    // 初始化地图
                    this.map = new AMap.Map('bai-du-map', {
                        viewMode: "2D",  //  是否为3D地图模式
                        zoom: 13,   // 初始化地图级别
                        center: [113.65553, 34.748764], //中心点坐标  郑州
                        resizeEnable: true
                    });
                    var autoOptions = {
                        // 城市,默认全国 
                        // city: "北京",
                        // 使用联想输入的input的id
                        input: "mapInput"
                    }
                    this.auto = new AMap.AutoComplete(autoOptions);
                    this.placeSearch = new AMap.PlaceSearch({
                        map: this.map,
                        // panel: "panel", // 结果列表将在此容器中进行展示。
                        // city: "010", // 兴趣点城市
                        autoFitView: true, // 是否自动调整地图视野使绘制的 Marker点都处于视口的可见范围
                        extensions: 'base' //返回基本地址信息
                    });
                    this.auto.on("select", this.select);//注册监听,当选中某条记录时会触发

                }).catch(e => {
                    console.log(e);
                });
            },
            select(e) {
                this.placeSearch.setCity(e.poi.adcode);
                this.placeSearch.search(e.poi.name);  //关键字查询查询
            }

        },
    };
</script>

<style scoped>
    #bai-du-map {
        overflow: hidden;
        width: 400px;
        height: 300px;
        margin: 0;
        font-family: "微软雅黑";
        position: absolute;
        right: 35%;
        top: 40%;
    }
</style>

<style scoped lang="less">
    /* 隐藏高德logo  */
    .amap-logo {
        display: none !important;
    }

    /* 隐藏高德版权  */
    .amap-copyright {
        display: none !important;
    }
</style>

最后就大功告成了

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

Vue使用高德地图搜索功能 的相关文章

随机推荐

  • vue和ajax

    常用发送ajax的方法 xhr jQury get post axios fetch window内置 promise风格 会把返回数据包两层promise 而且兼容不好 v resouce server1 js const express
  • java获取文件夹下所有图片_【windows技巧】快速获取文件夹内所有文件名称列表...

    转自 百度经验 https jingyan baidu com article 3aed632e3917c870108091d1 html 1 打开一个文件夹 gt 2 新建一个TXT文档 将名字命名为 文档列表 gt 3 在TXT文档里输
  • c++什么时候生成默认拷贝构造函数

    需要默认拷贝构造函数原因 如果不提供默认拷贝构造函数 编译器会按照位拷贝进行拷贝 位拷贝指的是按字节进行拷贝 有些时候位拷贝出现的不是我们预期的行为 会取消一些特性 以下是需要默认拷贝构造函数的必要条件 1 类成员也是一个类 该成员类有拷贝
  • 如何实现无线网卡上外网+有线上内网=同时上网

    网上那些花里胡哨的 一顿操作然并卵 已补充成功操作详情 请翻到最后面查看 前面内容请忽视 至少我现在根本实现不了 但是会比拔插网线换来换去方便些 记录下 需要的自取 实例 一 开始 1 管理员打开cmd命令 2 route print 查看
  • chatgpt赋能python:怎么让Python执行完不关闭的SEO

    怎么让Python执行完不关闭的SEO 作为一名有十年Python编程经验的工程师 我深知Python在SEO技术中的重要性 然而 很多人可能不知道如何让Python执行完任务后不关闭 这将会影响我们的SEO效果 因此 在这篇文章中 我将向
  • xlwt:ValueError: column index (256) not an int in range(256)

    xlwt最大列只支持255列 超过范围会报错 可以考虑用xlsxwriter
  • 安卓已死?毕业一年萌新的Android大厂面经,年薪超过80万!

    前言 最近我一直在面试高级工程师 不管初级 高级 程序员 我想面试前 大家刷题一定是是少不了吧 我也一样 我在网上找了很多面试题来看 最近又赶上跳槽的高峰期 好多粉丝 都问我要有没有最新面试题 索性 我就把我看过的和我面试中的真题 及答案都
  • layer.msg 的time 时间停留问题

    layer msg 同上 icon 1 time 2000 2秒关闭 如果不配置 默认是3秒 function do something time 属性为弹框停留时间 单位为毫秒 tipsMore 属性为是否同时显示多个弹框 true为显示
  • 顺序表与数组

    顺序表是在计算机内存中以数组的形式保存的线性表 顺序表是指用一组地址连续的存储单元依次存储数据元素的线性结构 线性表采用顺序存储的方式存储就称之为顺序表 顺序表是将表中的结点依次存放在计算机内存中一组地址连续的存储单元中 线性表采用指针链接
  • Python 如何将字符串转为字典

    在工作中遇到一个小问题 需要将一个 python 的字符串转为字典 比如字符串 user info name john gender male age 28 我们想把它转为下面的字典 user dict name john gender m
  • Kubespray-offline v2.21.0-1 下载 Kubespray v2.22.1 离线部署 kubernetes v1.25.6

    文章目录 1 目标 2 预备条件 3 vcenter 创建虚拟机 4 系统初始化 4 1 配置网卡 4 2 配置主机名 4 3 内核参数 5 打快照 6 安装 git 7 配置科学 8 安装 docker 9 下载介质 9 1 下载安装 d
  • Linux文件编程常用函数详解——exit()和_exit()函数

    两个函数的区别
  • MongoDB未授权访问漏洞复现及加固

    说明 仅供技术学习交流 请勿用于非法行为 否则后果自负 0x01 漏洞简述 MongoDB是一个介于关系数据库和非关系数据库之间的产品 是非关系数据库当中功能最丰富 最像关系数据库的 它支持的数据结构非常松散 是类似json的bson格式
  • K8s Pod 控制器(一)

    K8s workload architecture 一 RC RS 控制器 控制Pod 使Pod拥有自愈 多副本 扩缩容的能力 RC的定义包括如下几个部分 1 Pod期待的副本数 replicas 2 用于筛选目标Pod的Label Sel
  • vscode常用快捷键使用

    Ctrl K S 全部保存 Save All Ctrl S 保存 Save ctrl f 搜索 alt 方向键右 跳转到定义 F12 转到定义 Go to Definition alt 方向键左 返回跳转 F1 或 Ctrl Shift P
  • 【华为OD机试真题 python】最大平分数组【2022 Q4

    题目描述 最大平分数组 给定一个数组nums 可以将元素分为若干个组 使得每组和相等 求出满足条件的所有分组中 最大的平分组个数 输入描述 第一行输入 m 接着输入m个数 表示此数组 数据范围 1 lt M lt 50 1 lt nums
  • 漫画:什么是中台?

    没有中台的时代 在传统IT企业 项目的物理结构是什么样的呢 无论项目内部的如何复杂 都可分为 前台 和 后台 这两部分 什么是前台 首先 这里所说的 前台 和 前端 并不是一回事 所谓前台即包括各种和用户直接交互的界面 比如web页面 手机
  • CH1-Android基础入门

    文章目录 目标 一 资源的管理与使用 1 1 图片资源 1 2 主题和样式资源 1 3 布局资源 1 4 字符串资源 1 5 颜色资源 定义颜色值 1 6 尺寸资源 Android支持的尺寸单位 二 程序调试 2 1 单元测试 2 2 注意
  • hive中解决中文乱码

    一 个人初始开发环境的基本情况以及Hive元数据库说明 hive的元数据库改成了mysql 安装完mysql之后也没有进行其它别的设置 hive site xml中设置元数据库对应的配置为 jdbc mysql crxy99 3306 hi
  • Vue使用高德地图搜索功能

    下载依赖 yarn add amap amap jsapi loader 2 初始化高德地图 设置key和秘钥