微信小程序地图导航实例讲解

article/2025/10/21 1:00:28

微信小程序地图导航实例讲解

  • 先上演示视频
    • 准备工作
    • 如下在app.json中添加
  • watch页面代码
    • watch.wxml
    • watch.wxss
    • watch.js
  • connect导航页面
    • 使用在腾讯位置服务需要获取key
    • 地图选点
      • 当用户未点击选址时,默认传入用户当前地址,可以在onShow方法中定义
    • 代码解读
  • 地图导航

先上演示视频

微信小程序地图导航

准备工作

  1. 首先创建好页面和添加地图导航和选址插件,【需要授权】

如下在app.json中添加

 "pages":["pages/watch/watch","pages/connect/connect"],"plugins": {"routePlan": {"version": "1.0.5","provider": "wx50b5593e81dd937a"},"chooseLocation": {"version": "1.0.3","provider": "wx76a9a06e5b4e693e"}},"permission": {"scope.userLocation": {"desc": "你的位置信息将用于小程序位置接口的效果展示"}},

保存后会报错,提示添加插件
在这里插入图片描述
点击添加
在这里插入图片描述

  1. app.json中添加tabBar
 "tabBar": {"color": "#bfbfbf","selectedColor": "#d4237a","list": [{"pagePath": "pages/watch/watch","text": "商品展示","iconPath": "/assets/icon/goods_nor.png","selectedIconPath": "/assets/icon/goods.png"},{"pagePath": "pages/connect/connect","text": "联系我","iconPath": "/assets/icon/address_nor.png","selectedIconPath": "/assets/icon/address.png"}]},
  1. 删除app.wxss中的样式代码
  2. 保存即可预览watch页面内容

watch页面代码

watch.wxml

<view class="container"><view class="header">部分商品展示--更多请到店参观</view><view class="watch" wx:for="{{watchData}}" wx:key="id" class="main"><swiper class="swiper" autoplay circular interval="3000"><swiper-item wx:for="{{item.urls}}" wx:for-item="urls" wx:key="index"><image src="{{urls}}" data-url="{{urls}}" data-urls="{{item.urls}}" mode="aspectFit" bindtap="_previewImg"></image></swiper-item></swiper><view class="title"><view><text class="brandtitle">品牌: </text><text class="ibrandtitle">{{item.brand}}</text></view><view><text class="pricetitle">原价: </text><text class="ipricetitle">{{item.price}}</text></view><view><text class="newpricetitle">折后价: </text><text class="inewpricetitle">{{item.newprice}}</text></view></view></view></view>

watch.wxss

/* pages/watch/watch.wxss */
.main{width: 100vm;margin: 10rpx auto;display: flex;border-bottom: 4rpx solid pink;
}
.swiper{width: 550rpx;height: 550rpx;
}
.title{display: flex;
flex-direction: column;
justify-content: space-evenly
}
.brandtitle{
color: palevioletred;
font-weight: bold;
}
.pricetitle{
color: blueviolet;
font-weight: bold;
}
.newpricetitle{
color: red;
font-weight: bold;
}
.swiper image{display: block;width: 500rpx;height: 500rpx;padding: 20rpx;
}
.header{color: gray;text-align: center;margin: 10rpx
}

watch.js

// pages/watch/watch.js
Page({_previewImg: function (e) {var currentImg = e.currentTarget.dataset.url;var tempArr = [];tempArr = e.currentTarget.dataset.urls;wx.previewImage({current: currentImg, // 当前显示图片的http链接 Stringurls: tempArr // 需要预览的图片http链接列表 Array})},/*** 页面的初始数据*/data: {watchData: [{id: 1,url: "https://img.alicdn.com/imgextra/i1/738790163/O1CN01hvCVV21D4h970Plt2_!!0-saturn_solar.jpg_240x240xz.jpg_.webp",urls: ["https://img.alicdn.com/imgextra/i3/2206840659250/O1CN01cSGVrK2ICYBbcKkZ5_!!2206840659250.jpg_430x430q90.jpg","https://img.alicdn.com/imgextra/i2/2206840659250/O1CN01ExT7GW2ICYC5LGVMG_!!2206840659250.jpg_430x430q90.jpg","https://img.alicdn.com/imgextra/i3/2206840659250/O1CN01saVX4U2ICYBaTOMfU_!!2206840659250.jpg_430x430q90.jpg"],brand: "卡地亚",introduce: "",price: 7988,newprice: 5699},{id: 2,url: "https://img.alicdn.com/imgextra/https://img.alicdn.com/imgextra/i4/1985007071/O1CN01B9d2Xt226Z9v4eUAK_!!1985007071.jpg_430x430q90.jpg",urls: ["https://img.alicdn.com/imgextra/https://img.alicdn.com/imgextra/i4/1985007071/O1CN01B9d2Xt226Z9v4eUAK_!!1985007071.jpg_430x430q90.jpg","https://img.alicdn.com/imgextra/https://img.alicdn.com/imgextra/i2/1985007071/O1CN01WrKRkK226Z9lzvChL_!!1985007071.jpg_430x430q90.jpg","https://img.alicdn.com/imgextra/https://img.alicdn.com/imgextra/i1/1985007071/O1CN01C0DwPz226Z9nYE196_!!1985007071.jpg_430x430q90.jpg","https://img.alicdn.com/imgextra/https://img.alicdn.com/imgextra/i2/1985007071/O1CN01sux8uu226Z5sVg2gL_!!1985007071.jpg_430x430q90.jpg"],brand: "罗宾",introduce: "",price: 3988,newprice: 1399},{id: 3,url: "https://img.alicdn.com/imgextra/https://img.alicdn.com/bao/uploaded/i2/632846530/O1CN01P70gIa1y6mtj5Bqvc_!!632846530.jpg_430x430q90.jpg",urls: ["https://img.alicdn.com/imgextra/https://img.alicdn.com/imgextra/i4/632846530/O1CN01QPS9gt1y6mtmeaa2m_!!632846530.jpg_430x430q90.jpg","https://img.alicdn.com/imgextra/https://img.alicdn.com/imgextra/i2/632846530/O1CN01TGkU971y6mtoHLB1y_!!632846530.jpg_430x430q90.jpg","https://img.alicdn.com/imgextra/https://img.alicdn.com/imgextra/i2/632846530/O1CN01uVpbe11y6mtliiVT9_!!632846530.jpg_430x430q90.jpg","https://img.alicdn.com/imgextra/https://img.alicdn.com/imgextra/i4/632846530/O1CN01fE6zvS1y6mtlLPYuB_!!632846530.jpg_430x430q90.jpg"],brand: "飞亚达",introduce: "指针",price: 6988,newprice: 2080},{id: 4,url: "https://gd3.alicdn.com/imgextra/i3/1087294774/O1CN01cEwzwz1l8XNcPMh8t_!!1087294774.png_400x400.jpg",urls: ["https://gd1.alicdn.com/imgextra/i1/2208527172/O1CN0187IQHI22qp8DevuRc_!!2208527172.jpg_400x400.jpg","https://gd1.alicdn.com/imgextra/i1/2208527172/O1CN01MtUdUb22qp8D7E97C_!!2208527172.jpg_400x400.jpg","https://gd2.alicdn.com/imgextra/i2/2208527172/O1CN01xCUyn622qp8COsWI5_!!2208527172.jpg"],brand: "梭伦",introduce: "",price:5688,newprice:3860}]}
})

connect导航页面

使用在腾讯位置服务需要获取key

请设置key授权本小程序appId,设置请点击https://lbs.qq.com/console/mykey.html
添加key
key创建成功
点击 进入key设置
启用小程序

地图选点

记得引入插件

const chooseLocation = requirePlugin('chooseLocation');
 _pickStartAddress: function(e) {var that = this;console.log('选取地址', e);let latitude = that.data.location.latitude;let longitude = that.data.location.longitude;console.log("latitude", latitude);console.log("longitude", longitude);this.getUserLocation();const key = 'JODBZ-3K2CD-TP643-PIP4E-12345-I4FR5'; //使用在腾讯位置服务申请的keyconst referer = '百里快讯'; //调用插件的app的名称const location = JSON.stringify({latitude: latitude,longitude: longitude});const category = '生活服务,娱乐休闲';wx.navigateTo({url: 'plugin://chooseLocation/index?key=' + key + '&referer=' + referer + '&location=' + location + '&category=' + category});},

当用户未点击选址时,默认传入用户当前地址,可以在onShow方法中定义

 /*** 生命周期函数--监听页面显示*/onShow: function() {this.getUserLocation();const location = chooseLocation.getLocation();console.log(location)this.setData({startAddressInfo: location})},

代码解读

其中 this.getUserLocation();为了初始化获取地图中心点位置
否则无法进行地图选址

const location = chooseLocation.getLocation();是获取选完址后的值
如下图:
在这里插入图片描述

this.setData({startAddressInfo: location})

是将获取的值作为起点地址

地图导航

 _handleSubmit: function(e) {console.log("开始导航", e);// let plugin = requirePlugin('routePlan');const key = 'JODBZ-3K2CD-TP643-PIP4E-12345-I4FR5'; //使用在腾讯位置服务申请的keyconst referer = '百里快讯'; //调用插件的app的名称let endPoint = this.data.endAddressInfo;endPoint = JSON.stringify(endPoint);let startPoint = this.data.startAddressInfo;startPoint = JSON.stringify(startPoint);console.log("==startPoint---", startPoint);let mode = this.data.mode;if (startPoint == 'null') {console.log("无起点进来了");wx.navigateTo({url: 'plugin://routePlan/index?key=' + key + '&referer=' + referer + '&endPoint=' + endPoint + '&navigation=1' + '&mode=' + mode})} else {console.log("有起点进来了");wx.navigateTo({url: 'plugin://routePlan/index?key=' + key + '&referer=' + referer + '&endPoint=' + endPoint + '&startPoint=' + startPoint + '&navigation=1' + '&mode=' + mode});}},

此时我们就可以完成导航任务了。
我这里的导航终点是固定的位置:
data数据如下:

data: {location: {},startAddressInfo: {},endAddressInfo: {address: "湖北省武汉市武昌区武车路与长喻路交叉口东南",city: "武汉市",latitude: 30.574808,longitude: 114.323756,name: "F6漫时区"},mode: "driving"},

其中的mode是出行方式。
完整代码请微信搜索公众号【小猪IT技术栈】,进入公众号回复“小程序导航”查看。


http://chatgpt.dhexx.cn/article/SofEwDwq.shtml

相关文章

微信小程序——地图(定位,多个标记点)

效果图 指定为位置 Page({data: {longitude: 113.14278, //地图界面中心的经度latitude: 23.02882, //地图界面中心的纬度markers: [ //标志点的位置//位置0{id: 0,iconPath: "../images/1.png",latitude: 23.04308268848755,longitude: 113.13562655285273,width: …

Poi读取Excel时的日期操作(原创)

在java读取excel获取数据存入数据库时&#xff0c;经常会遇到多种日期类型和时间类型混用的情况 比如这样&#xff0c;一边是纯日期&#xff0c;一边是“年月日 时分秒”形式&#xff0c; 很多时候我们需要直接根据内容来区分二者&#xff0c;从而将取到的时间值转换成与excel…

Java用poi实现读取Excel文件内容

使用poi读取Excel文件 前言 用户可以直接读取本地文件&#xff0c;也可以通过上传文件的形式读取excel 注意&#xff1a;poi对于读取到空白行的时候&#xff0c;会默认的认为是最后一行&#xff0c;将不会再读取空白行下面的数据 第一步 导入依赖 <dependency><gro…

使用poi读取Excel中的数据到数据库

大家好今儿给大家带来的是使用poi读取Excel中的数据到数据库 目录 大家好今儿给大家带来的是使用poi读取Excel中的数据到数据库1.poi简单介绍2.poi操作excel3.代码部分(可直接用)4.测试5.总结 1.poi简单介绍 POI是Apache出品的一个开源的专门用来操作我们Microsoft Office格式…

POI读取Excel浅谈

POI读取Excel浅谈 博客分类&#xff1a; J2EEJava开源Servlet/Jsp设计模式 Excel Ruby Office Apache Microsoft 先看代码&#xff0c;挨句解释&#xff1a; 一般遍历使用两种方式&#xff0c;1&#xff1a;得到总的行数和每行的列数&#xff0c;然后循环。2&#xff1a;使用…

【Java】POI读取Excel的两种模式

用户模式 基本使用 usermodel相关包&#xff0c;对用户友好&#xff0c;在ss包下有统一的接口&#xff0c;但它是把整个文件读取到内存中&#xff0c;对于大量数据很容易内存溢出&#xff0c;所以只能用来处理小量数据 示例代码 public static List<Map<String, Stri…

使用POI读取EXCEL中的所有Sheet表

使用POI读取EXCEL中的所有Sheet表 最近接触到了多sheet页的导入导出功能&#xff0c;现举例如何 使用POI&#xff0c;通过多个循环读取EXCEL中的所有Sheet表内容。 package poitest; import java.io.File; import java.io.FileInputStream; import org.apache.poi.hssf.u…

poi读取Excel文档(.xls .xlsx)包含合并单元格

例子&#xff1a; 结果&#xff1a; 开始&#xff1a;----------------------------------- 导入的poi <!-- https://mvnrepository.com/artifact/org.apache.poi/poi --><dependency><groupId>org.apache.poi</groupId><artifactId>poi</ar…

Java教程:使用POI读取excel文档(根据BV1bJ411G7Aw整理)

Java教程&#xff1a;使用POI读取excel文档&#xff08;根据BV1bJ411G7Aw整理&#xff09; 最近公司需要我做一个导出Excel表格的功能&#xff0c;为此来学习一下POI&#xff0c;在这里记录一下学习笔记。B站直接搜BV1bJ411G7Aw就能找到视频。 一、简介 poi如何操作表格 二…

poi读取excel模板,并填充数据

一、POI介绍 Apache POI是Apache软件基金会的开放源码函式库&#xff0c;POI提供API给Java程序对Microsoft Office格式档案读和写的功能。 基本功能&#xff1a; HSSF &#xff0d; 提供读写Microsoft Excel格式档案的功能。 XSSF &#xff0d; 提供读写Microsoft Excel OOXM…

java使用poi操作读取Excel文件

在上代码之前首先说说Excel文件的一些名词 工作区workbook&#xff1a;可以理解为一个Excel文件&#xff0c;比如LinkL.xlsx文件 表sheet&#xff1a;一个.xlsx文件中的不同表 行row&#xff1a;表中的一行数据 单元格cell&#xff1a;每一行中的每一个数据就是单元格 附&…

使用Java通过POI读取EXCEL中的数据

这里有个Excel&#xff0c;怎么使用java读取excel中的数据呢&#xff1f; 文件存放位置&#xff1a; 首先引入poi的jar包 <dependency><groupId>org.apache.poi</groupId><artifactId>poi</artifactId><version>3.17</version></…

使用POI读取excel文件内容

1.前言 项目中要求读取excel文件内容&#xff0c;并将其转化为xml格式。常见读取excel文档一般使用POI和JExcelAPI这两个工具。这里我们介绍使用POI实现读取excel文档。 2.代码实例&#xff1a; package edu.sjtu.erplab.poi;import java.io.FileInputStream;import java.io.Fi…

使用POI读取Excel文件

使用POI读取Excel文件 一、前言 用户可以通过上传excel文件&#xff0c;后端通过读取excel文件的内容并将内容写入数据库中以便更好的使用。 本文档使用的excel的工具类既可以读取有合并单元格的文件也可以读取没有合并单元格的文件&#xff0c;并且读取到单元格的数据进行了…

POI读写Excel的基本使用

一、Excel导入导出的应用场景 1、数据导入&#xff1a;减轻录入工作量 2、数据导出&#xff1a;统计信息归档 3、数据传输&#xff1a;异构系统之间数据传输 二、POI简介&#xff08;Apache POI&#xff09; 1、什么是POI Apache POI是Apache软件基金会的开放源码函式库&…

C# 加载DotNetBar组件

C#作为前端的开发软件&#xff0c;使用的人很多&#xff0c;但是原生的C#界面较为简陋&#xff0c;已经不能满足公司级的开发工作了&#xff0c;今天这篇博客的主要内容是讲一下怎么在C#端使用一个可以提升界面美感的第三方控件&#xff0c;DotNetBar 首先去官网下载最新的DotN…

DevComponents.DotNetBar2 美化包使用以及验证教程

使用这个美化包是在别人项目上看到的&#xff0c;遇到一些懵逼问题&#xff0c;不断总结&#xff0c;所以写一下教程 DotNetBar 美化包控件不可编辑问题&#xff1a; 如图&#xff1a; 解决办法&#xff1a; 安装DotNetBar 这个软件&#xff08;有试用版&#xff09;&#xff…

winform DevComponents.DotNetBar2 添加到工具栏方法

当C#项目引入皮肤组件&#xff0c;或其他组件是&#xff0c;发现工具框里面没有引用的组件怎么办&#xff1f; 1.组件的引用 我是把下载好的*.dll组件&#xff0c;复制到项目的\bin\Debug\路径下&#xff0c;然后在项目处右键-->添加引用&#xff0c;这样组件就引入项目了…

DotNetBar控件的多文档界面的实现

DotNetBar是一个不错的DotNET控件套装&#xff0c;原来是一个DLL文件&#xff0c;能够做出很漂亮的界面效果&#xff0c;记得在8.0以前的版本&#xff0c;好像实现多文档界面稍显得麻烦一些&#xff0c;我的Winform框架、WCF框架虽然也提供了这样多文档的界面&#xff0c;不过都…

C#之DotNetBar2使用方法 - itemPanel1

用itemPanel做个按钮菜单&#xff0c;模拟用来操控开关按钮 对象buttonItem1的属性&#xff08;itempanel可以添加的子控件列表对象&#xff0c;根据需要选择&#xff0c;这里用到的Button&#xff09; 可以用控件自带的样式&#xff0c;也可以用代码控制&#xff0c;也可以预先…