小程序服务器配置地图,微信小程序接入腾讯地图

总共是 3 步,接入还是非常简单的。

1. 首先你需要登录当前小程序的账号

197149f9e376

在控制台开发那一栏中,选择开发者工具,就能开通腾讯位置服务了。按顺序点,我记得是需要手机号。然后在设置选项中,拿到APPID

197149f9e376

点开详情,就能修改当前开发的小程序设置了,在基本信息中将APPID填上。

这时候我们就能在小程序中使用map组件了。

2. 在app.json中添加permission

,"permission": {

"scope.userLocation": {

"desc": "你的位置信息将用于小程序位置接口的效果展示"

}

},

然后写个界面

wxss

/* pages/map/map.wxss */

page {

height: 100%;

}

.view {

width: 100%;

height: 100%;

}

map {

width: 100%;

height: 100%;

background-color: #f7f7f7;

}

3. 获取用户的位置

这里先说wx.getLocation,这个方法是显示用户在当前map上的位置,和openLocation不同,不需要用户手动位置信息授权,体验较好。

wx.getLocation({

type: 'gcj02',

altitude: true,

//定位成功,更新定位结果

success: function(res) {

var latitude = res.latitude

var longitude = res.longitude

var speed = res.speed

var accuracy = res.accuracy

that.setData({//赋值

longitude: longitude,

latitude: latitude,

speed: speed,

accuracy: accuracy

})

}, //定位失败回调

fail: function() {

wx.hideLoading();

console.log("getLocationFail")

},

complete: function() {

//隐藏定位中信息进度

wx.hideLoading()

}

})

4. 多个位置标记

有时候我会想实现类似摩拜单车的地图功能,打开地图,能够查看现有单车的位置。这时候需要在地图上做多个标记。

197149f9e376

这里比较关键的一点就是marker这个参数,是可以传入数组的。官网上也有类似的Demo,这样我们想要的功能就实现了。至于定位的参数,当然是问服务器大哥们要啦。

197149f9e376

Ok,让我们开搞。

wx.showLoading({

title: '加载中',

mask: true

})

//请求所有点

wx.request({

url: 'http://192.168.14.62:8080/map.json',

data: {

},

method: "GET",

header: {

"content-type": "application/json"

},

success: function(res) {

console.log(res.data.location)

var location = res.data.location;

var mks = [];

if ("" != res.data.location || res.data.location != null) {

for (var i = 0; i < location.length; i++) {

mks.push({ //赋值数组

id: location[i].id,

latitude: location[i].latitude,

longitude: location[i].longitude,

iconPath: '../../images/anchor.png', //图标路径

width: 30,

height: 30

})

}

that.setData({

markers: mks

}), wx.hideLoading();

}

}

})

197149f9e376

5. 点击markers图标跳转页面

一种需求,点击标志地点,跳转到详情页面。

这个需求比较简单,一般都是带参数的跳转。

这里需要注意的是 markers绑定点击事件必须给markers的id属性赋值。不然点击事件会失效。看下代码。

添加点击事件bindmarkertap

跳转并传递id参数

//点击事件处理

skipToDetails: function(e) {

console.log("click" + e.markerId)

//跳转

wx.navigateTo({

url: '../record_details/record_details?id=' + e.markerId //详情

})

},

搞定。

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值