一、在开发微信小程序地图的过程中,有这样一个需求,用户发表祝福语,然后存入数据库,可以在地图上显示用户头像并且点击用户头像时显示祝福语。

二、自己在开发时遇到的问题:

1.微信头像是网络图片,而地图的markers中的iconPath只能使用本地图片

2.将网络图片缓存到本地,但是因为小程序的异步执行导致图片不能显示

三、解决办法:

1.解决微信头像是网络图片的问题,可以使用wx.downloadFile({})方法来将头像缓存到本地,然后再将本地路径赋给iconPath即可,第一个不能使用网络图片的问题解决。

2.异步请求导致本地缓存的图片不能在地图上显示,我的解决办法是,先通过request请求获取到祝福语后,用for循环赋值给markers,iconPath路径填写一个本地路径,同时调用一个方法,获取当前用户头像的本地缓存路径,获取成功后赋值给markers中每个对象的iconPath,所以一般来说,地图上的图片会有切换,首先显示的是本地的统一的图片,经过一段时间的请求后,图片一个个变为用户头像。

四、相关操作代码

getBlessing: function(){var that = this;var getUserPic = function (pic_url,i) {let cachePath;if(pic_url==null || pic_url=='') return;wx.downloadFile({url: pic_url,success: (pathInfo) => {// pathInfo.path 这是下载成的缓存链接,模拟器marker有时不支持http开头,真机不影响,得去掉http:/cachePath = pathInfo.tempFilePath.replace("http:/", '').replace("https:/", '')//真机中无需replace,都支持,var mak = "markers[" + i +"].iconPath";that.setData({[mak]: cachePath})}})}wx.request({url: '你的后台请求地址',method: 'POST',success: function (res) {var list = res.data.list;var tempArr = [];var includeArr = [];var item = {};var includeItem = {};for (var i = 0; i < list.length; i++) {var pic = getUserPic(list[i].user.user_pic,i);item = {iconPath: '/images/icon/small-logo.png',id: list[i].id,latitude: list[i].latitude,longitude: list[i].longitude,width: 30,height: 30,alpha: 0.8,callout: {content: list[i].content,color: '#FFFFFF',fontSize: 10,borderRadius: 10,bgColor: '#F44336',padding: 5,display: 'BYCLICK',//'BYCLICK':点击显示; 'ALWAYS':常显}}includeItem = {latitude: list[i].latitude,longitude: list[i].longitude,}tempArr.push(item);includeArr.push(includeItem);}that.setData({markers: tempArr,includepoints: includeArr,count: res.data.count})console.log(that.data.markers)}})},

五、效果截图

微信小程序地图使用用户头像标记相关推荐

  1. php取微信名字和头像,微信小程序如何获取用户头像和昵称

    本文介绍了微信小程序如何获取用户头像和昵称,分享给大家,具体如下: 代码user.wxml: {{userInfo.nickName}} user.js //sort.js //獲取應用實例 var ...

  2. 微信小程序——读取显示用户头像昵称

    微信小程序--读取显示用户头像昵称 代码仓库地址 一.实验目标 1.学习使用快速启动模板创建小程序的方法: 2.学习不使用模板手动创建小程序的方法. 二.实验步骤 2.1 自动生成小程序 完成开发者注 ...

  3. 【微信小程序】获取用户头像和ID

    课程 中国海洋大学22夏<移动软件开发> 实验名称 实验1:第一个微信小程序 一.实验目标 1.学习使用快速启动模板创建小程序的方法: 2.学习不使用模板手动创建小程序的方法. 二.实验步 ...

  4. 微信小程序最新调用用户头像以及昵称

    众所周知:微信小程序开发是面对"公告"编程,小程序的api更新迭代之快,让人叫苦不堪,,, 最近开发小程序项目时,获取用户头像和昵称的方式发生了很大的改变: 它居然绑定到一个 bu ...

  5. 微信小程序如何获取用户头像昵称

    微信小程序登录用户头像昵称已经不支持支持获取,因为用户的scope.userInfo权限已经回收,可以使用昵称头像填写进行完善用户信息,按照官方推荐会显示用户在微信的头像和昵称,本文介绍一下实现方案. ...

  6. 关于微信小程序如何获取用户头像(保存到本地)新方法

    传统接口wx.getUserInfo的效果会弹出一个给用户的弹窗,需要用户授权,但是在使用时候会有官方log提醒你,这个方法需要升级.新方法则无需用户授权,使用方法如下: <open-data ...

  7. 【微信小程序开发】用户头像昵称获取规则调整 2022

    之前通过wx.getUserInfo获取用户的头像.昵称等信息 2021年4月调整为通过wx.getUserProfile获取用户的头像.昵称等信息 详情请看:https://developers.w ...

  8. 微信小程序直接获取用户头像、昵称等(无需按钮授权)

    直接使用微信提供的组件 在页面使用获取用户头像.昵称 头像是直接返回图片需要对样式进行修改,其它数据也是直接展示 头像圆角需要加这个,否则实现不了

  9. 微信小程序无法获取用户头像和昵称,微信小程序获取昵称为微信用户,头像为灰色,请使用下面方式过去

    getUserProfile(e) { wx.getUserProfile({ desc: '使用户得到更好的体验', success: (res) => { console.log(" ...

最新文章

  1. 【Spring实战】—— 3 使用facotry-method创建单例Bean总结
  2. ajax方法完整的事件流
  3. android服务的原理,Android学习笔记:IntentService
  4. Linux之CentOS用ifconfig没显示ip显示了inet6
  5. 闪退的解决方法_王者荣耀2.0不闪退需要什么手机?王者荣耀2.0闪退解决方法
  6. 一步步编写操作系统3 部署工作环境 3
  7. urban数据集_JUST技术|CK实现时序数据管理
  8. IntelliJ IDEA版本:Ultimate、Community、EAP版本的区别
  9. 【转载】水木算法讨论题
  10. 如何提高生产力(四)、兼职为什么很难操作?
  11. 探秘联想台北研发中心 扒一扒system x是如何炼成的?
  12. 设计python游戏贪吃蛇_Python 贪吃蛇游戏
  13. [绍棠] Xcode9无线调试教程
  14. UNIAPP使用MathJax解析数学公式
  15. 互联网DSP广告系统架构及关键技术解析 | 广告行业资深架构师亲述
  16. 在mysql中创建用户并授权
  17. CPP】【const 指针与引用】实验3实验内容5
  18. 函数式编程与Lambda表达式
  19. [转载]尺度函数与小波函数
  20. 教你将Linux配置为代理防火墙(转)

热门文章

  1. 高中同学相识二十年聚会
  2. 急救常识1-急救的目标、原则、流程
  3. linux7.0可以装什么宝塔版本,宝塔 7.0.3 专业开心版一键安装可使用
  4. 连接器插针固定方式究竟有那几种?
  5. 行为型模式(7)——解释器模式
  6. 模拟CMOS集成电路设计入门学习(5)
  7. 高可用架构,期刊下载
  8. 日语的主要国家与城市
  9. Git,SourceTree,小乌龟之间的关系?
  10. 示波器测试超声换能器波形/压电陶瓷片波形