微信小程序地图插件系列(二):微信小程序使用百度地图(不定期补充知识点)

前言

当我们在使用一些地图相关软件的情况下,他会显示选择那种。一般都有高德地图,百度地图等。那么我们在微信小程序中也想使用这种功能需要怎么办呢?

本文地址链接
微信小程序-百度地图SDK官方文档

微信小程序地图插件系列其他文章
微信小程序地图插件系列(一):微信小程序使用高德地图


效果展示

地点在这里插入图片描述
上面坐标图片路径需要自己更换。

一、准备阶段

  • 1、在百度地图开发平台中注册成为开发者。
  • 2、申请开发者密钥(AK),其中需要填写小程序appid。
  • 3、下载并解压百度地图微信小程序SDK

二、快速上手

  • 1、创建一个小程序
  • 2、创建一个map文件夹,并创建page页面
  • 3、打开map.js文件,用下面的代码完全替换原代码。
// 引用百度地图微信小程序JSAPI模块 
var bmap = require('../../libs/bmap-wx.js'); 
var wxMarkerData = []; 
Page({ 
    data: { 
        markers: [], 
        latitude: '', 
        longitude: '', 
        placeData: {} 
    }, 
    makertap: function(e) { 
        var that = this; 
        var id = e.markerId; 
        that.showSearchInfo(wxMarkerData, id); 
        that.changeMarkerColor(wxMarkerData, id); 
    }, 
    onLoad: function() { 
        var that = this; 
        // 新建百度地图对象 
        var BMap = new bmap.BMapWX({ 
            ak: '您的ak' 
        }); 
        var fail = function(data) { 
            console.log(data) 
        }; 
        var success = function(data) { 
            wxMarkerData = data.wxMarkerData; 
            that.setData({ 
                markers: wxMarkerData 
            }); 
            that.setData({ 
                latitude: wxMarkerData[0].latitude 
            }); 
            that.setData({ 
                longitude: wxMarkerData[0].longitude 
            }); 
        } 
       // 发起POI检索请求 
        BMap.search({ 
            "query": '酒店', 
            fail: fail, 
            success: success, 
            // 此处需要在相应路径放置图片文件 
            iconPath: '../../img/marker_red.png', 
            // 此处需要在相应路径放置图片文件 
            iconTapPath: '../../img/marker_red.png' 
        }); 
    }, 
    showSearchInfo: function(data, i) { 
        var that = this; 
        that.setData({ 
            placeData: { 
                title: '名称:' + data[i].title + '\n', 
                address: '地址:' + data[i].address + '\n', 
                telephone: '电话:' + data[i].telephone 
            } 
        }); 
    }, 
    changeMarkerColor: function(data, i) { 
        var that = this; 
        var markers = []; 
        for (var j = 0; j < data.length; j++) { 
            if (j == i) { 
                // 此处需要在相应路径放置图片文件 
                data[j].iconPath = "../../img/marker_yellow.png"; 
            } else { 
                // 此处需要在相应路径放置图片文件 
                data[j].iconPath = "../../img/marker_red.png"; 
            } 
            markers[j](data[j]); 
        } 
        that.setData({ 
            markers: markers 
        }); 
    } 
})
  • 4、打开pages/map/map.wxml文件,用下面代码完全替换
<view class="map_container"> 
  <map class="map" id="map" longitude="{{longitude}}" latitude="{{latitude}}" scale="14" show-location="true" markers="{{markers}}" bindmarkertap="makertap"></map> 
</view> 
<view class="place_info"> 
  <text>{{placeData.title}}</text> 
  <text>{{placeData.address}}</text> 
  <text>{{placeData.telephone}}</text> 
</view> 
  • 5、拷贝样式代码到 pages/index/index.wxss文件
.map_container{ 
    height: 300px; 
    width: 100%; 
} 

.map { 
    height: 100%; 
    width: 100%; 
} 
  • 6、点击保存,他会出现下属提示

getLocation需要在app.json中声明permission

  • 7、找到app.json文件,在配置上添加如下代码即可。
 "permission": {
    "scope.userLocation":{
      "desc": "点击确认"
    }
  },

这里请大家对应替换自己pages/map/map.js中的图片路径。以便于更直观的看到效果。

总结

上述只是一个初探,后续会在这里继续更新。公司项目还没搞定,就先入个门。想继续和我完成后续学习的同志们,请关注我。以便于我更新后能通知到您!!!

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值