Loading [MathJax]/jax/output/CommonHTML/config.js
前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >专栏 >Vue中使用高德地图POI搜索

Vue中使用高德地图POI搜索

作者头像
tianyawhl
发布于 2020-06-28 03:18:59
发布于 2020-06-28 03:18:59
2.7K11
代码可运行
举报
文章被收录于专栏:前端之攻略前端之攻略
运行总次数:1
代码可运行

创建 loadMap.js

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
/**
 * 动态加载高德地图
 *
 * @export
 * @param {*} key 高德地图key
 * @param {*} plugins 高德地图插件
 * @param {string} [v='1.4.14'] 高德地图版本
 * @returns
 */
export default function loadMap(key, plugins, v = '1.4.14') {
    return new Promise(function(resolve, reject) {
        if (typeof AMap !== 'undefined') {
            // eslint-disable-next-line no-undef
            resolve(AMap)
            return true
        }
        window.onCallback = function() {
            // eslint-disable-next-line no-undef
            resolve(AMap)
        }
        let script = document.createElement('script')
        script.type = 'text/javascript'
        script.src = `https://webapi.amap.com/maps?v=${v}&key=${key}&plugin=${plugins}&callback=onCallback`
        script.onerror = reject
        document.head.appendChild(script)
    })
}

在.vue页面中引入loadMap.js

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
import loadMap from "../assets/js/loadMap";

html模板

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
<template>
  <div>
    <div id="GDMap" style="height:400px;"></div>
    <div id="panel"></div>
    <input id="tipinput" type="text" />
  </div>
</template>

 用到的2个插件  "AMap.Autocomplete", "AMap.PlaceSearch",

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
<script>
import loadMap from "../assets/js/loadMap";
export default {
  name: "barChart",
  data() {
    return {
      inputContent: "",
      // 地图实例
      GDMap: null,
      // 加载的一些插件
      // 更多参考:https://lbs.amap.com/api/javascript-api/guide/abc/plugins#plugins
      plugins: [
        "AMap.Autocomplete",
        "AMap.PlaceSearch",
        "AMap.OverView",
        "AMap.MouseTool",
        "AMap.PolyEditor",
        "AMap.RectangleEditor",
        ="AMap.DistrictLayer",
        "AMap.CustomLayer"
      ],
      // key
      key: "3862bb74758c8d185100ed5df030949d",
      //key: "64c880093eda5bd293e4d5c324e5131b", Autocomplete没有效果
      // 地图版本
      v: "1.4.4"
    };
  },
  mounted() {
    loadMap(this.key, this.plugins, this.v)
      .then(AMap => {
        this.GDMap = new AMap.Map("GDMap", {
          zoom: 10
          //center: [119.947, 31.7728]
        });
        this.GDMap.on("complete", () => {
          console.log("completed");
          var auto = new AMap.Autocomplete({
            input: "tipinput"
          });

          var placeSearch = new AMap.PlaceSearch({
            map: this.GDMap
          }); //构造地点查询类
          AMap.event.addListener(auto, "select", select); //注册监听,当选中某条记录时会触发
          AMap.event.addListener(placeSearch,"markerClick",(e)=>{
            console.log(e.data.location.lng,e.data.location.lat) // 经纬度
          })
          function select(e) {
            placeSearch.setCity(e.poi.adcode);
            placeSearch.search(e.poi.name); //关键字查询查询
          }
        });
      })
      .catch(() => {
        console.log("地图加载失败!");
      });
  },
  methods: {}
};
</script>
<style>
#panel {
  position: absolute;
  background-color: white;
  max-height: 90%;
  overflow-y: auto;
  top: 10px;
  right: 10px;
  width: 280px;
}
</style>

遇到的问题:有的key会使输入提示无效,换个key 就好了。官网的例子回调函数要改成箭头函数,否则this指向会有问题。

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
1 条评论
热度
最新
你好 我想请问 我换了几个Web端的KEY都用不了搜索,我是个人开发者身份,是要企业认证才可以的吗。
你好 我想请问 我换了几个Web端的KEY都用不了搜索,我是个人开发者身份,是要企业认证才可以的吗。
回复回复点赞举报
推荐阅读
编辑精选文章
换一批
高德地图悬浮在marker上显示文字
主要用到 mouseover 和 mouseout 方法 <div id="GDMap" style="height: calc(100vh - 200px)"></div> showMap() { loadMap(this.key, this.plugins, this.v) .then((AMap) => { this.GDMap = new AMap.Map("GDMap", { zoom: 11,
tianyawhl
2021/09/26
3.3K0
js模板字符串中使用循环遍历数据
模板字符串可以嵌入变量, 模板字符串使用反引号 (` `) 来代替普通字符串中的用双引号和单引号。模板字符串可以包含特定语法({expression})的占位符。我们经常用的是`my name is {name}`,如果是下面的格式,怎么处理比较方便
tianyawhl
2021/07/27
5.6K0
高德地图画线、清除线与改变颜色
画线-------是通过创建 new AMap.Polyline实例 并添加到地图上 polyline.setMap(this.GDMap);
tianyawhl
2020/10/28
6.6K0
高德地图信息框作为组件
信息框如果用html拼接字符串的方式来实现,感觉比较麻烦,下面是使用组件的方式来实现。
tianyawhl
2022/01/20
5070
vue3微前端架构——基于蚂蚁qiankun框架
因为vite打包代码时,内部的esbuild会tree shake掉与qiankun相关的生命周期钩子,
liulun
2020/12/08
3.9K0
vue 初始化高德地图
由于项目中需要,但是vue-AMap 又满足不了项目需求。只能赶鸭子上架,看看怎么引入高德原生 地图 api 。( 三大步骤 )
小蔚
2020/09/07
1K0
vue+web端聊天室|网页端vue聊天系统
使用了Vue2.5.6+Vuex+vue-router+vue-gemini-scrollbar+swiper+elementUI等技术开发,实现了发送消息、表情(动图),图片、视频预览,仿微信右键菜单、截图可直接粘贴至编辑框发送。
andy2018
2019/05/01
11.9K1
vue+web端聊天室|网页端vue聊天系统
高质量编码--Excel POI点高德地图展示
Excel文件里记录着POI点信息(包含经纬度),这些记录也可以分类别保存在不同的sheet里。下面介绍如何根据sheet名称,自动把Excel里的点位信息在地图上分组点标记展示,地图展示选用高德地图API。
MiaoGIS
2023/01/18
9470
高质量编码--Excel POI点高德地图展示
几年没碰过前端了,Vue集成高德地图花费我三个小时。
几年没碰过前端了,最近闲来无事在捣鼓一个小项目,项目中一个功能涉及到地图组件,没想到在集成高德地图时遇到好几个问题,耗时3小时最终攻克,遂特此记录。如果有跟我同样情况的,希望可以帮助到你。
王二蛋
2024/06/24
7800
前端系列19集-vue3引入高德地图,响应式,自适应
在项目目录中使用npm或yarn安装高德地图的JavaScript API库。你可以使用以下命令之一:
达达前端
2023/10/08
1.5K0
前端系列19集-vue3引入高德地图,响应式,自适应
基于高德地图开发 Web 应用
前段时间换了工作,从以前的 996 变成了现在的 965,周末有了一些空闲时间,于是就想着写一些文章和大家分享一下。思考了很久,最终确定了主题为前端高德地图的教程。
拿我格子衫来
2022/01/24
5K2
基于高德地图开发 Web 应用
高德地图开放平台 原
平台地址:http://lbs.amap.com/api/javascript-api/example/amap-ui-districtcluster/custom-cluster-marker
晓歌
2018/08/15
8.2K0
高德地图开放平台
                                                                            原
高德地图上放多个视频,并有切换按钮
难点是地图上标签里面的按钮怎么与vue事件结合,可以通过显示marker的时候执行一个vue事件,在vue事件中通过事件委托的方式绑定事件
tianyawhl
2021/09/26
1.1K0
vue 高德天气接口,高德自定义天气图片
<div class="temperature">{{ temperature || defaultTemperature }}°C</div>
用户7957495
2021/11/03
1.5K0
高德地图api接口调用_高德地图步行导航怎么看方向
高德地图API官网:高德开放平台 | 高德地图API。由于博主是基于前端 Vue 框架进行开发的,所以针对地图 JavaScript API 结合 Vue 展开介绍。
全栈程序员站长
2022/10/04
3K0
高德地图api接口调用_高德地图步行导航怎么看方向
【vue引用原生高德地图并多点标注】
发布者:全栈程序员栈长,转载请注明出处:https://javaforall.cn/143667.html原文链接:https://javaforall.cn
全栈程序员站长
2022/08/26
7630
仿高德地图实现输入起点和终点规划路径并可切换
本文结合高德API和MapboxGL,仿照手机版高德地图实现用户输入起点和终点位置并模糊搜索选择具体位置,根据选择的起始点位置规划路径,并实现多条路径的切换展示。
牛老师讲GIS
2025/05/31
900
仿高德地图实现输入起点和终点规划路径并可切换
vue + 高德地图
https://lbs.amap.com/api/javascript-api-v2/summary
用户4396583
2024/09/23
3370
高德地图绘制多边形与编辑
<div id="GDMap" style="height: calc(100vh - 100px)"></div> <div style="display:none"> <ContextMenuCom ref="ContextMenuCom"></ContextMenuCom> </div> 使用2个插件 "AMap.MouseTool" , "AMap.PolygonEditor" 模拟数据结构  GDMap: null, lnglat
tianyawhl
2023/03/08
1.1K0
百度地图使用记录
loadBaiduMap.js export default function loadBaiduMap(ak) { return new Promise(function (resolve, reject) { // window.onload = function () { // resolve(BMapGL) // } window.init = function(){ resolve(BMapG
tianyawhl
2022/12/21
5970
推荐阅读
相关推荐
高德地图悬浮在marker上显示文字
更多 >
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
本文部分代码块支持一键运行,欢迎体验
本文部分代码块支持一键运行,欢迎体验