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


    一、安装及引入

    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 时“鉴权失败“ 可在”控制台“->“查看应用”->“设置” 确认是否已获得“逆地理编码服务”权限。
    如有其他问题,可通过“反馈与帮助”反馈给我们。

  • 相关阅读:
    memcached学习——memcached的内存分配机制Slab Allocation、内存使用机制LRU、常用监控记录(四)
    memcached学习——分布式算法(Consistant hash + 虚拟节点)(三)
    memcached学习——常用命令+基于java客户端的3种简单实现(二)
    memcached学习——大纲简介 && 安装(基于centos6.5)、启动、关闭memcached(一)
    Swing入门学习
    SVNKit学习——使用High-Level API管理Working Copy示例(六)
    SVNKit学习——使用低级别的API(ISVNEditor接口)直接操作Repository的目录和文件(五)
    SVNKit学习——基于Repository的操作之print repository tree、file content、repository history(四)
    SVNKit学习——Setting Up A Subversion Repository 创建仓库(三)
    SVNKit学习——wiki+简介(二)
  • 原文地址:https://www.cnblogs.com/dancer0321/p/14030409.html
Copyright © 2020-2023  润新知