微信小程序学习实录3(环境部署、百度地图微信小程序、单击更换图标、弹窗信息、导航、支持腾讯百度高德地图调起)

287 篇文章 17 订阅
订阅专栏
143 篇文章 30 订阅
订阅专栏
13 篇文章 1 订阅
订阅专栏
本文介绍了如何在微信小程序中集成百度地图JSAPI,包括环境部署的步骤,如声明所需私有信息和设置请求合法域名。核心代码示例展示了如何实现POI单击更换颜色和导航功能。同时,文章指出了小程序基于腾讯地图开发的局限性。
摘要由CSDN通过智能技术生成

百度地图微信小程序JavaScript API(简称小程序JSAPI),支持在微信小程序中使用百度数据资源。小程序JSAPI是对百度地图Web服务API中的部分接口按照微信小程序的规范进行了前端JS封装,方便了微信小程序开发者的调用。部分接口对返回的POI等数据按照微信小程序的数据格式进行了处理,可直接用于小程序的map中。

一、环境部署

1.need to be declared in the requiredPrivateInfos

wx.getLocation need to be declared in the requiredPrivateInfos field in app.json/ext.json(env: Windows,mp,1.06.2303220; lib: 2.31.1)

官方说明:
requiredPrivateInfos

自 2022 年 7 月 14 日后发布的小程序,使用以下8个地理位置相关接口时,需要声明该字段,否则将无法正常使用申明需要使用的地理位置相关接口,类型为数组。
目前支持以下项目:

  • getFuzzyLocation: 获取模糊地理位置
  • getLocation: 获取精确地理位置
  • onLocationChange: 监听实时地理位置变化事件
  • startLocationUpdate: 接收位置消息(前台
  • startLocationUpdateBackground:
  • 接收位置消息(前后台) chooseLocation: 打开地图选择位置
  • choosePoi: 打开POI列表选择位置
  • chooseAddress: 获取用户地址信息

注:若使用以上接口,均需在小程序管理后台,「开发」-「开发管理」-「接口设置」中自助开通该接口权限。

在这里插入图片描述

在这里插入图片描述

    "requiredPrivateInfos": [
        "getLocation",
        "onLocationChange",
        "startLocationUpdateBackground",
        "chooseAddress"
    ],

2.api.map.baidu.com 不在以下 request 合法域名

https://api.map.baidu.com 不在以下 request 合法域名列表中,请参考文档:https://developers.weixin.qq.com/miniprogram/dev/framework/ability/network.html

在这里插入图片描述
解决方案:
设置请求合法域名,才能正常使用百度小程序 JavaScript API。
登录微信小程序-> “设置” -> “开发设置” -> “服务器域名” ->添加 https://api.map.baidu.com; -> 点击"保存并提交"。

3.width and heigth of marker id 9 are required

[渲染层错误] [Component] : width and heigth of marker id 9 are required(env: Windows,mp,1.06.2303220; lib: 2.31.1)

在这里插入图片描述
在这里插入图片描述

二、核心代码

鉴于百度地图微信小程序依然是基于腾讯地图map组件开发的,因此在功能的拓展性、更新速度都不很理想。本案例是基于百度地图微信小程序的基础,予以开发。

  1. wx.showModal,弹窗功能
  2. POI坐标单击更换颜色功能(百度地图原有功能);
  3. wx.openLocation,导航(支持腾讯、百度、高德、APPLE地图功能)

在这里插入图片描述
电脑端的导航和手机端预览导航有差异,见下图:
在这里插入图片描述

(一)逻辑层index.js

  1. 引入百度地图API接口,并配置全局变量
var bmap = require('../../libs/bmap-wx.min.js');
var wxMarkerData = [];
  1. Marker单击事件
 //POI单击事件
    makertap: function (e) {
        var that = this;
        var id = e.markerId;
        that.showSearchInfo(wxMarkerData, id);
        that.changeMarkerColor(wxMarkerData, id);
    },
  1. 引入百度地图对象
    此处的AK为对应的微信小程序的key.
 //加载即引入百度地图
    onLoad: function () {
        //引入百度地图对象
        var that = this;
        var BMap = new bmap.BMapWX({
            ak: 'OGwPpKV6Y6GiLb3***'
        });
        var fail = function (data) {
            console.log(data)
        };
        //获取POI数据
        this.getMarkers()
    },
  1. 调用API数据接口
//调用API数据接口
    getMarkers() {
        var that = this;
        wx.request({
            url: 'https://test.com/data/api/marker.json',
            method: "GET",
            success: function (res) {
                wxMarkerData = res.data.data
                //console.log(wxMarkerData)
                that.setData({
                    markers: wxMarkerData,
                    latitude: wxMarkerData[0].latitude,
                    longitude: wxMarkerData[0].longitude
                });
            },
            fail: function (err) {
                console.log(err)
            }
        })
    },

数据格式如下:
在这里插入图片描述
5. 弹窗及导航事件函数

  //点击显示信息,调整为新窗口
    showSearchInfo: function (data, i) {
        wx.showModal({
            title: data[i].title,
            content: data[i].address,
            showCancel: true, //是否显示取消按钮
            cancelText: "关闭", //默认是“取消”
            cancelColor: '#000', //取消文字的颜色
            confirmText: "导航", //默认是“确定”
            confirmColor: '#000', //确定文字的颜色
            success(res) {
                if (res.confirm) {
                    console.log('用户点击导航')
                    let latitude = parseFloat(data[i].latitude)
                    let longitude = parseFloat(data[i].longitude)
                    let name = data[i].title
                    let address = data[i].address
                    wx.openLocation({
                        latitude,
                        longitude,
                        name,
                        address,
                        scale: 18
                    })
                } else if (res.cancel) {
                    console.log('用户点击关闭')
                }
            }
        })
    },
  1. 单击更换图标函数
 //单击更换图标
    changeMarkerColor: function (data, id) {
        var that = this;
        var markersTemp = [];
        for (var i = 0; i < data.length; i++) {
            if (i === id) {
                data[i].iconPath = "../../img/marker_yellow.png";
            } else {
                data[i].iconPath = "../../img/marker_red.png";
            }
            markersTemp[i] = data[i];
        }
        that.setData({
            markers: markersTemp
        });
    }

(二)渲染层index.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>

(三)样式表index.wxss

.map_container{
    height: 100vh;
    width: 100%;
}

.map {
    height: 100%;
    width: 100%;
}

@漏刻有时

写文章

热门文章

  • DevTools 无法加载 SourceMap 错误:状态代码 404,net::ERR_HTTP_RESPONSE_CODE_FAILURE 23250
  • GIS数据格式坐标转换(地球坐标WGS84、GCJ-02、火星坐标、百度坐标BD-09、国家大地坐标系CGCS2000) 18981
  • Echarts高级进阶教程:图表渲染大数据量导致卡顿加载时间慢等问题的解决方案 18504
  • 百度地图采集经纬度坐标数据定位的javascript实战开发(地理坐标拾取系统、地址定位点选插件、实时定位、数据导入、地理编码、位置纠偏) 15755
  • 百度地图开发mapStyle个性化地图styleJson的配色解决方案 14999

分类专栏

  • AIGC 付费 115篇
  • javascript 191篇
  • 小程序 13篇
  • excle 3篇
  • Python 46篇
  • echarts 205篇
  • 漏刻有时 287篇
  • layui 59篇
  • mysql 30篇
  • 地图开发 143篇
  • api 16篇
  • 实战教程 5篇
  • nodejs 2篇
  • vuejs 3篇
  • threejs 6篇
  • php 198篇
  • 环境部署 44篇
  • 开源程序 6篇
  • thinkphp 2篇
  • html/css 23篇

最新评论

  • 掌握PHP生成器:中等规模数据集流式处理与CSV导出的开发实战技巧

    漏刻有时: [code=php] // 设置执行时间限制为无限制 set_time_limit(0); // 增加内存限制 ini_set('memory_limit', '512M'); [/code]

  • 掌握PHP生成器:中等规模数据集流式处理与CSV导出的开发实战技巧

    漏刻有时: 读取数据库的方式。

  • 掌握PHP生成器:中等规模数据集流式处理与CSV导出的开发实战技巧

    漏刻有时: [code=php] <?php // 数据库配置 $host = 'localhost'; $dbname = 'your_database_name'; $username = 'your_username'; $password = 'your_password'; try { // 创建PDO实例 $pdo = new PDO("mysql:host=$host;dbname=$dbname", $username, $password); $pdo->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION); // 打开CSV文件 $fp = fopen('output.csv', 'w'); // 写入表头 $title = ['传感器ID', '名称', '别称', '单位类型', '传感器类型', '地址号', '寄存器地址', '实时数据', '排序', '公式(上传)', '公式(下达)', '配置信息', '分组ID', '设备类别', '指标类别', 'IP地址', '变化过滤值', '数据精度', '储存策略', '区域', '位置', '开关记录', '总高度', '最大值', '最小值', '数据确认次数']; fputcsv($fp, $title); // 执行SQL查询 $stmt = $pdo->query('SELECT * FROM your_table_name'); // 替换为你的表名 // 使用生成器来逐行处理数据 foreach (getDataSource($stmt) as $row) { fputcsv($fp, $row); } // 关闭文件 fclose($fp); } catch (PDOException $e) { die("数据库连接失败: " . $e->getMessage()); } // 生成器函数 function getDataSource($stmt) { while ($row = $stmt->fetch(PDO::FETCH_ASSOC)) [/code]

  • 基于百度地图WebGL版二次开发的数据可视化大屏(白天黑夜模式自动切换、标注聚合功能、历史路线轨迹查询)

    蓝蜗牛_: 链接的仓库中没找到视频中的样例哎,麻烦指条路呢,感谢!

  • 火狐浏览器设置秘籍:让https协议下的ws不加密时运行无阻(WebSocket connection HTTPS)

    ha_lydms: 优质好文支持支持,优质好文支持支持

大家在看

  • 用Pyhton爬虫API数据获取商品SKU信息实战指南
  • JAVA面试题全套新版合集!
  • 基于Spring Boot的JavaWeb在线考试系统设计与实践
  • 【最新Java必过毕设选题】基于微信小程序的“口腔助手”微信小程序设计与实现(源码+万字LW+答辩PPT)
  • 利用ChatGPT优化毕业论文写作:高效、智能的文献管理指南

最新文章

  • 保护数据安全:JS前端加密与PHP后端解密实战教程,让敏感信息更安全
  • 微信小程序学习实录10:轻松获取用户昵称、头像与登录openid实战攻略
  • 微信小程序学习实录9:掌握wx.chooseMedia实现多图片文件上传功能(选择图片、预览图片、上传图片)
2024
10月 4篇
09月 5篇
08月 7篇
07月 2篇
06月 2篇
05月 4篇
04月 11篇
03月 8篇
01月 8篇
2023年275篇
2022年74篇
2021年207篇
2020年402篇
2019年66篇

目录

目录

评论 9
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

漏刻有时

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或 充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值

深圳坪山网站建设公司佛山企业网站优化运营如何优化网站提升排名seo优化网站更好地服务用户武侯区网站优化seo网站优化过度怎么办企业新网站如何优化网络营销东明县网站优化公司关键词优化网站有用吗黑河怎么做网站优化苏州网站优化排名河南卫浴行业网站优化推广怎么样福田大型网站优化在线推广网站内部链接优化有哪些方面深圳网站首页关键词优化费用网站排名怎么优化选哪家网站做优化门云云速捷出众大型网站压力测试及优化方案惠州企业网站关键词优化技巧邢台网站优化怎么做松江区百度网站优化定制方案网站优化过程中的内链网站建设优化话术网站关键词优化教学视频主机网站优化怎么优化网站设计好的网站设计优化技术网站如何自己做优化大石桥公司网站优化乐山网站建设和优化费用南沙企业网站优化推广教程香港通过《维护国家安全条例》两大学生合买彩票中奖一人不认账让美丽中国“从细节出发”19岁小伙救下5人后溺亡 多方发声卫健委通报少年有偿捐血浆16次猝死汪小菲曝离婚始末何赛飞追着代拍打雅江山火三名扑火人员牺牲系谣言男子被猫抓伤后确诊“猫抓病”周杰伦一审败诉网易中国拥有亿元资产的家庭达13.3万户315晚会后胖东来又人满为患了高校汽车撞人致3死16伤 司机系学生张家界的山上“长”满了韩国人?张立群任西安交通大学校长手机成瘾是影响睡眠质量重要因素网友洛杉矶偶遇贾玲“重生之我在北大当嫡校长”单亲妈妈陷入热恋 14岁儿子报警倪萍分享减重40斤方法杨倩无缘巴黎奥运考生莫言也上北大硕士复试名单了许家印被限制高消费奥巴马现身唐宁街 黑色着装引猜测专访95后高颜值猪保姆男孩8年未见母亲被告知被遗忘七年后宇文玥被薅头发捞上岸郑州一火锅店爆改成麻辣烫店西双版纳热带植物园回应蜉蝣大爆发沉迷短剧的人就像掉进了杀猪盘当地回应沈阳致3死车祸车主疑毒驾开除党籍5年后 原水城县长再被查凯特王妃现身!外出购物视频曝光初中生遭15人围殴自卫刺伤3人判无罪事业单位女子向同事水杯投不明物质男子被流浪猫绊倒 投喂者赔24万外国人感慨凌晨的中国很安全路边卖淀粉肠阿姨主动出示声明书胖东来员工每周单休无小长假王树国卸任西安交大校长 师生送别小米汽车超级工厂正式揭幕黑马情侣提车了妈妈回应孩子在校撞护栏坠楼校方回应护栏损坏小学生课间坠楼房客欠租失踪 房东直发愁专家建议不必谈骨泥色变老人退休金被冒领16年 金额超20万西藏招商引资投资者子女可当地高考特朗普无法缴纳4.54亿美元罚金浙江一高校内汽车冲撞行人 多人受伤

深圳坪山网站建设公司 XML地图 TXT地图 虚拟主机 SEO 网站制作 网站优化