先去百度开放平台申请ak。http://lbsyun.baidu.com/

进来之后

按照步骤走,先登录百度账号,然后申请成为开发者,然后申请ak密钥

填写完毕后提交,会给你邮箱发个激活邮件

点击申请密钥

然后点击提交

这个时候,你就可以拿着这个ak去使用百度地图了。

使用

执行

  1. npm install vue-baidu-map

  

然后再main.js里加上(注意你自己的ak密钥)

  1. import BaiduMap from 'vue-baidu-map'
  2.  
  3. Vue.use(BaiduMap, {
  4. ak: 'GpRqD2Sowifs********RRRRVl9'
  5. });

  

然后就可以在组件里使用了,最简单的一个例子

  1. <template>
  2. <div>
  3. <baidu-map class="map" :center="map.center" :zoom="map.zoom" @ready="handler">
  4. <!--缩放-->
  5. <bm-navigation anchor="BMAP_ANCHOR_TOP_LEFT"></bm-navigation>
  6. <!--定位-->
  7. <bm-geolocation anchor="BMAP_ANCHOR_BOTTOM_RIGHT" :showAddressBar="true" :autoLocation="true"></bm-geolocation>
  8. <!--点-->
  9. <bm-marker :position="map.center" :dragging="map.dragging" animation="BMAP_ANIMATION_DROP">
  10. <!--提示信息-->
  11. <bm-info-window :show="map.show">Hello~</bm-info-window>
  12. </bm-marker>
  13. </baidu-map>
  14. </div>
  15. </template>
  16.  
  17. <script>
  18. export default {
  19. name: "demo",
  20. data: () => ({
  21. map:{
  22. center: {lng: 121.4472540000, lat: 31.3236200000},
  23. zoom: 15,
  24. show: true,
  25. dragging: true
  26. },
  27. }),
  28. methods: {
  29. handler ({BMap, map}) {
  30. let me = this;
  31. console.log(BMap, map)
  32. // 鼠标缩放
  33. map.enableScrollWheelZoom(true);
  34. // 点击事件获取经纬度
  35. map.addEventListener('click', function (e) {
  36. console.log(e.point.lng, e.point.lat)
  37. })
  38. }
  39. }
  40. }
  41. </script>
  42.  
  43. <style scoped>
  44. .map {
  45. width: 100%;
  46. height: 400px;
  47. }
  48. </style>

  

然后其它页面引入这个组件即可,注:这只是个helloworld哦

实际上运用的话,是需要将数据传递给父组件的,比如经纬度之类的。比如:

  1. <template>
  2. <div>
  3. <a-row :gutter="16">
  4. <a-col :span="12">
  5. <a-form-item v-if="map.isAdd" label="关键词">
  6. <a-input v-model="map.keyword"/>
  7. </a-form-item>
  8. </a-col>
  9. <a-col :span="12">
  10. <a-form-item v-if="map.isAdd" label="地区">
  11. <a-input v-model="map.location"/>
  12. </a-form-item>
  13. </a-col>
  14. </a-row>
  15.  
  16. <baidu-map class="map" :center="map.center" :zoom="map.zoom" @ready="handler">
  17. <bm-navigation anchor="BMAP_ANCHOR_TOP_LEFT"></bm-navigation>
  18. <bm-geolocation anchor="BMAP_ANCHOR_BOTTOM_RIGHT" :showAddressBar="true" :autoLocation="true"></bm-geolocation>
  19. <bm-local-search v-if="map.isAdd" class="search" :keyword="map.keyword" :auto-viewport="true" :location="map.location"></bm-local-search>
  20. </baidu-map>
  21. </div>
  22. </template>
  23.  
  24. <script>
  25. export default {
  26. name: "simple-map",
  27. props: {
  28. map: {
  29. type: Object
  30. }
  31. },
  32. data: () => ({
  33.  
  34. }),
  35. methods: {
  36. handler ({BMap, map}) {
  37. let me = this;
  38. console.log(BMap, map)
  39. // 鼠标缩放
  40. map.enableScrollWheelZoom(true);
  41. // 点击事件获取经纬度
  42. map.addEventListener('click', function (e) {
  43. console.log(e.point.lng, e.point.lat)
  44. me.$emit('select-location', {
  45. lng: e.point.lng,
  46. lat: e.point.lat
  47. });
  48. })
  49. }
  50. }
  51. }
  52. </script>
  53.  
  54. <style scoped>
  55. .map {
  56. width: 100%;
  57. height: 400px;
  58. }
  59. .map .search{
  60. margin-bottom: 65px;
  61. }
  62. </style>

  

父组件

  1. <simple-map :map="mapForAdd" @select-location="selectLocation"></simple-map>
  2.  
  3. selectLocation: function (e) {
  4. // 这里用到了antDesign,不再科普了。实际上就是获取子组件传来的数据
  5. this.formForAdd.setFieldsValue({
  6. longitude: e.lng,
  7. latitude: e.lat,
  8. })
  9. }

  

页面(效果就是点击地图上的点,传递经纬度)

Vue项目引入百度地图的更多相关文章

  1. vue项目接入百度地图

    方法一 :使用第三方工具 vue-baidu-map 安装命令: yarn add vue-baidu-map --save 文档地址:https://dafrok.github.io/vue-bai ...

  2. vue项目 调用百度地图 BMap is not defined

    这次老板新接了一个四点半官网页面,使用vue来写.emm……我感觉整个人都不好了,两天半解决了20个静态页面.还好vue写页面简直飞快,遇到一个vue的新坑,使用百度地图. 研究了好一会,总是报错BM ...

  3. vue项目使用百度地图API获取经纬度

    一.首先在百度api注册获得ak密钥 二.进行引入 (1).第一种方式: 直接在vue中index.html中用script标签引入. //你的ak密钥需要替换真实的你的ak码 <script ...

  4. vue中引入百度地图

    xxx.vue <template> <div> <el-input v-model="inputaddr"> </el-input> ...

  5. VUE 中引入百度地图(vue-Baidu-Map)

    1.安装 $ npm install vue-baidu-map --save 2.全局注册,在main.js中引入以下代码 import BaiduMap from 'vue-baidu-map' ...

  6. vue项目,百度地图api高亮选取区域,高亮某个地区,行政区域等

    效果如下: var blist = [] ,maxZoom: });// 创建地图实例 var point = new window.BMap.Point(89.48,31.57); map.cent ...

  7. react项目中引入百度地图打包报错问题

    一.我正常引入百度地图,调试时候是好使的,但是打包时候就报错 引入方法如下: 报错如图 正常调试是好使的,但是打包报这个错,解析不了这个BMap,那么怎么办呢? 然后我就转用了window办法,虽然因 ...

  8. Vue中使用百度地图——根据输入框输入的内容,获取详细地址

    知识点:在Vue.js项目中调用百度地图API,实现input框,输入地址,在百度地图上定位到准确地址,获得到经纬度 参考博客:  百度地图的引用,初步了解参考博客:http://blog.csdn. ...

  9. Vue中使用百度地图——设置地图标注

    知识点:创建Map实例,为指定的位置设置标注 参考博客:https://www.cnblogs.com/liuswi/p/3994757.html 1.效果图:初始化地图,设置指定经纬度为地图中心点坐 ...

随机推荐

  1. springboot集成jsp,访问jsp页面下载问题

    1.导入相关依赖     (存在jsp页面下载问题,可能是缺少tomcat-embed-jasper的依赖对jsp的支持) <parent> <groupId>org.spri ...

  2. POJ3616-Milking Time-(dp)

    题意:牛有m个时间段可以挤奶,每个时间段的开始时间,结束时间,挤奶量不尽相同,寄完一次需要休息r时间,求在n时间内如何安排牛挤奶产量最大. 解题: 1.休息r时间,当做结束时间需要+r 2.以结束时间 ...

  3. webpack打包vue单文件组件

    一.vue单文件组件 ①文件扩展名为 .vue 的 就是single-file components(单文件组件) ②参考文档:单文件组件 二.webpack加载第三方包 ①项目中,如果需要用到一些第 ...

  4. hive基础知识二

    1. Hive的分区表 1.1 hive的分区表的概念 在文件系统上建立文件夹,把表的数据放在不同文件夹下面,加快查询速度. 1.2 hive分区表的构建 创建一个分区字段的分区表 hive> ...

  5. 获取shell脚本自身所在目录

    解决了使用ln -s target linkName创造软链接无法正确取到真实脚本的问题. #!/bin/bash SOURCE="$0" while [ -h "$SO ...

  6. 利用 Matplotlib 绘图

    各类绘图 ## 导入包 import matplotlib as mpl import matplotlib.pyplot as plt import seaborn as sns ## 参数设置 # ...

  7. limma 包

    limma:Linear Models for Microarray and RNA-Seq Data http://www.bioconductor.org/packages/release/bio ...

  8. 为什么 Redis 单线程能支撑高并发?

    阅读本文大概需要 4 分钟. 作者:Draveness 最近在看 UNIX 网络编程并研究了一下 Redis 的实现,感觉 Redis 的源代码十分适合阅读和分析,其中 I/O 多路复用(mutipl ...

  9. FZU Monthly-201905 获奖名单

    FZU Monthly-201905 获奖名单 冠军: 郑学贵 S031702338 一等奖: 林闽沪 S131700309 罗继鸿 S031702524 二等奖: 苏锦程 S031802325 林鑫 ...

  10. stream_context_create解析

    (PHP 4 >= 4.3.0, PHP 5, PHP 7) stream_context_create — 创建资源流上下文 说明¶ stream_context_create ([ arra ...