百度地图在前端开发中的运用

摘要:
--中心和缩放属性必须存在,否则将不会渲染贴图。--@ready:加载映射API后执行的代码,不要调用BMap类--˃˂!Ak=your Ak&output=json&coordtype=wgs84ll&location=31.225696656361121.49884033194//GET请求注意:当前版本是V3.0接口文档,自2019年6月18日起,新用户不能使用V2.0和以前的版本。旧用户仍然可以继续使用V2.0及以前的版本来请求反向地理编码服务。为了确保用户体验,建议您尽快迁移到V3.0。

一、安装及引入

1、在vue中安装依赖

$ npm install vue-baidu-map --save

在vue脚手架main.js中引入

import BaiduMap from 'vue-baidu-map'
 
Vue.use(BaiduMap, {
    ak: 'Yo8oGhNGslHc4B8Qs8EWI4BvU3Qt4Zla'
}); 

2、cdn

<script src="https://unpkg.com/vue-baidu-map"></script>

3、申请ak及具体过程请参照官网

  (1)官网:http://lbsyun.baidu.com/index.php?title=jspopularGL

  (2)vue开发文档:https://dafrok.github.io/vue-baidu-map/#/

二、个别案例介绍

1、在地图上不同地点标出不同颜色的点

<!--center和zoom属性必须要有,否则地图不渲染。-->
<!--@ready:地图 API 加载完毕后执行的代码,不要在 vue 自身的生命周期中调用 BMap 类-->
<!--ak:百度地图密钥,没有会报错-->
<baidu-map class="map" :center="center" :zoom="zoom" @ready="handler" :scroll-wheel-zoom="true">
<!--      这里使用<template>循环只是为了减少代码结构,使用<div>循环效果一样的,看个人习惯-->
        <template v-for="(item,index) in points">
          <bm-marker :key="index" :position="item.site" :dragging="false"   :icon="{url: item.url, size: { 30, height: 40}}" @click="infoWindowOpen(item)"></bm-marker>
        </template>
        <bm-info-window @close="infoWindowClose2" @open="infoWindowOpen2" :position="site" :show="show">
        {{content}}
        </bm-info-window>
</baidu-map>
handler ({BMap, map}) {
      console.log(BMap, map)
      // 地图中心点
      this.center.lng = 116.315064
      this.center.lat =  40.043554
      this.zoom = 15
      this.addPoints()
},
addPoints () {
      // 随便给的几个点
      this.points = [
          {
            site:{
              lng: '116.315064',
              lat: ' 40.043554'
            },
            value: '嘉华大厦',
            id: 3,
            url: ''
          },
          {
            site:{
              lng: '116.306754',
              lat: '40.047459'
            },
            value: '八维研修学院',
            id: 2,
            url: ''
          },
          {
            site:{
              lng: '116.32508',
              lat: '40.030197'
            },
            value: '北京体育大学',
            id: 1,
            url: ''
          },
          {
            site:{
              lng: '116.302227',
              lat: '40.033954'
            },
            value: '兴天海园',
            id: 4,
            url: ''
          }
      ]
      // 根据id区别图标,相对路径要使用require()
      for(let item of this.points){
        let path = ''
        switch (item.id) {
            case 1:
                path = require('../../assets/redIcon.gif')
                break;
            case 2:
                path = require('../../assets/yellowIcon.png')
                break;
            case 3:
                path = require('../../assets/blueIcon.png')
                break;
            case 4:
                path = require('../../assets/blackIcon.png')
                break;
        }
        item.url = path
      }
}

2、根据经纬度返回该点的信息及城市码citycode(逆地理编码服务)

$.ajax({
    url:'http://api.map.baidu.com/reverse_geocoding/v3/?ak=你的ak&output=json&coordtype=wgs84ll&location=31.225696563611,121.49884033194',
    dataType: 'jsonp',
    callback: 'BMap._rd._cbk43398',
    success: function(res) {
          console.log(res);
    },
    error:function(res) {
          console.log(res);
    }
});

接口功能介绍

逆地理编码

http://api.map.baidu.com/reverse_geocoding/v3/?ak=您的ak&output=json&coordtype=wgs84ll&location=31.225696563611,121.49884033194 //GET请求

注意:当前为V3.0版本接口文档,V2.0及以前版本自2019.6.18起新用户无法使用。老用户仍可继续使用V2.0及以前版本请求实现逆地理编码服务,为保障用户体验,建议您尽快迁移到V3.0版本。
如在使用V3.0 时“鉴权失败“ 可在”控制台“->“查看应用”->“设置” 确认是否已获得“逆地理编码服务”权限。
如有其他问题,可通过“反馈与帮助”反馈给我们。

免责声明:文章转载自《百度地图在前端开发中的运用》仅用于学习参考。如对内容有疑问,请及时联系本站处理。

上篇Rails的静态资源管理(二)—— 如何使用 Asset PipelineHyper-V和其他虚拟机共存 【转】下篇

宿迁高防,2C2G15M,22元/月;香港BGP,2C5G5M,25元/月 雨云优惠码:MjYwNzM=

相关文章

前端规范标准(一)

目录 1 、 规范目的 2 、 基本准则 3 、 文件规范 4 、 文件规范 5 、 html 书写规范 6 、 css 书写规范 7 、 JavaScript 书写规范 8 、 图片规范 9 、 注释规范 10 、 开发及测试工具约定 11 、 其他规范 12 、 CSS Hack   1  规范目的 为提高团队协作效率, 便于后台人员添加功能及前...

java如何台生成二维码详解

现在呢说明页面上展示二维码的两种方式: 1.使用img标签的src来请求生成二维码,后台会直接返回; 2.此处跟上方意思相似,获取到url给img标签设置src属性; 特别注意:如果url有amp;,需求替换为空 amp; = & 特别注意:如果要传递到后台的url还是个url并且带参数,需要使用encodeURIComponent方法来设置传参,...

前端模块化那点事-个人总结

模块化 其实我理解的模块化就是封装代码,将一个功能的代码封装到一个模块,然后需要使用时就加载这个模块 模块化开发的好处: 避免变量污染,命名冲突 提高代码复用率 提高维护性 依赖关系的管理 原生模块化 所谓的“原生模块化”,是指模块化规范没有诞生之前的所使用的一种代码封装方式 函数封装 函数都是挂载在window对象上的,也叫全局函数封装(全局fu...

webp图片实践之路

最近,我们在项目中实践了webp图片,并且抽离出了工具模块,整合到了项目的基础模板中。传闻IOS10也将要支持webp,那么使用webp带来的性能提升将更加明显。估计在不久的将来,webp会成为标配。 本文主要分享一下我们在webp图片使用上的实践之路。   我们会从三部分来聊聊webp这个话题。 什么是webp,它有什么用? 使用webp的常规方法以及...

zabbix3.0.4 部署之七 (zabbix3.0.4 邮件报警) &amp;amp; 微信报警

[root@sv-zabbix ~]# cat /usr/local/zabbix/share/zabbix/alertscripts/sendEmail.sh #!/bin/bash#SMTP_server='smtp.mxhichina.com'    # SMTP服务器#username='11'     # 用户名#password='11'   ...

Requests库入门实例

了解了Requests库的基本用法,附上一篇理论链接https://www.cnblogs.com/hao11/p/12593419.html 我们就可以做一些小实例了 1.亚马逊商品的爬取 首先用get方法对亚马逊网站发送请求,然后看返回的状态码,此处503不是200,表明没有成功, 然后要看text内容,首先检查编码格式,header中不存在,用备...