uniapp微信小程序地图实现周边

news2024/11/17 17:30:02

官方说明:小程序JavascriptSDK使用指南 - 微信小程序解决方案 | 腾讯位置服务icon-default.png?t=N7T8https://lbs.qq.com/product/miniapp/jssdk/

  1. 先申请腾讯地图的开发者密钥,申请地址:腾讯位置服务 - 立足生态,连接未来

  2. 申请密钥时,需要勾选webServiceAPI和微信小程序

  3. 下载微信小程序JavaScriptSDK,微信小程序JavaScriptSDK v1.0,解压后,将qqmap-wx-jssdk.min.js放入到项目目录中

  4. 在点击需要查询的配套设施时,调用search方法,设置搜索条件keyword和location

  5. 在回调success中,将返回的结果通过marker标到地图上,或者以文本的形式展示在列表中

效果展示:

调用qqmapsdk.search方法

qqmapsdk.search({
		keyword: name,//搜索周边poi,比如:“酒店” “餐饮” “娱乐” “学校” 等等
		page_size: 5, //每页条目数,最大限制为20条,默认值10
		location: that.mapxx.latitude + ',' + that.mapxx.longitude,//①String格式:lat<纬度>,lng<经度>(例:location: ‘39.984060,116.307520’)
		success: function(res) { //搜索成功后的回调
			wx.hideToast({});
			let arrlist = [];
			for (var i = 0; i < res.data.length; i++) {
				arrlist.push({ // 获取返回结果,放到mks数组中
					title: res.data[i].title,
					latitude: res.data[i].location.lat,
					longitude: res.data[i].location.lng,
					distance: res.data[i]._distance,
				})
			}
			// 每次不用重新赋值,通过下标给需要的赋值
			that.peripheralsData = arrlist;//前台需要展示的数组
		},
		fail: function(res) {
			console.log(res);
		},
		complete: function(res) {
		}
	});

周边配套设置的完整代码部分

HTML

<view class="infoBox_peripherals">
     <view class="infoBox_peripherals_title">
    	 <view class="infoBox_peripherals_title__left">
    		 <view class="infoBox_peripherals_title__left_bgbox"></view>
    		 <view>周边配套</view>
    	 </view>
     </view>
     <view class="infoBox_peripherals_mapbox">
    	<map class="infoBox_peripherals_mapbox__map" id="map" :latitude="mapxx.latitude" :longitude="mapxx.longitude"
    	:scale="mapxx.scale" :markers="mapxx.markers"
    	></map>
     </view>
     <view class="infoBox_peripherals_tabs">
    	 <u-tabs :list="list"
    	 :current="tabsCurrent"
    	 @click="tabsClick"
    	 ></u-tabs>
     </view>
     <view class="infoBox_peripherals_tabsitem">
    	 <view v-for="(item,index) in peripheralsData" :key="index" class="infoBox_peripherals_tabsitem_items">
    		 <view class="infoBox_peripherals_tabsitem_items_left">
    			 <image src="../../static/index/location-icon1@2x.png" style="width: 26rpx;height: 34rpx;"></image>
    			 <view class="infoBox_peripherals_tabsitem_items_left_text">{{item.title}}</view>
    		 </view>
    		 <view class="infoBox_peripherals_tabsitem_items_right">{{item.distance}}m</view>
    	 </view>
     </view>
    </view>

CSS

// 周边设备
&_peripherals{
    background: #FFFFFF;
    box-shadow: 0rpx 4rpx 20rpx 0rpx rgba(0, 0, 0, 0.05);
    border-radius: 16rpx;
    margin-bottom: 80rpx;

&_title{
    display: flex;
    justify-content: space-between;
    padding: 14px 12px;
    font-size: 14px;
    letter-spacing: 1px;
&__left{
	display: flex;
	font-size: 24rpx;
	font-weight: 600;
	color: #00A39C;
	
	&_bgbox{
		width: 6rpx;
		height: 28rpx;
		background: #00A39C;
		border-radius: 3rpx;
		margin-right: 12rpx;
	}
}
&__right{
	font-weight: 600;
	
	&__green{
		color:#00AF99;
	}
	&__yellow{
		color:#FBAD00;
	}
}
}

&_mapbox{
width: 100%;
height: 400rpx;
border-radius: 12rpx;
padding: 12px 14px;
box-sizing: border-box;

display: flex;
justify-content: center;
align-items: center;
background-color: #fff;
&__map{
	height: 398rpx;
	width: 100%;
	border-radius: 5px;
	background-color: #fff;
}
}
&_tabs{
// padding: 12px 14px;
}

&_tabsitem{
padding: 14px 12px;

&_items{
	display: flex;
	align-items: center;
	justify-content: space-between;
	margin-bottom: 18rpx;
	
	&_left{
		display: flex;
		align-items: center;
		font-size: 28rpx;
		font-weight: 400;
		color: #333333;
		
		&_text{
			margin-left: 10rpx;
		}
	}
	&_right{
		font-size: 24rpx;
		font-weight: 400;
		color: #999999;
	}
}
}
}

JS

<script>
	import {runSQL,information} from '../../common/util/wxutils.js';
	let  QQMapWX = require('../../common/map/qqmap-wx-jssdk.min.js');
	let qqmapsdk;
	qqmapsdk = new QQMapWX({
		key: information.key
	});
	let infowidth = 32,infoheight = 42;
	let infoiconPath = '../../static/mapview/loaction-red.png';
	
	export default {
		data(){
			return{
				list:[
					{name:'交通'},
					{name:'学校'},
					{name:'医疗'},
					{name:'生活'},
					{name:'休闲'}
				],
				peripheralsData:[],
				// 地图相关
				mapxx:{
					latitude:35.931616,
					longitude:120.008822,
					scale:16,
					markers:{
						id:0,
						latitude:35.931616,
						longitude:120.008822,
						iconPath:infoiconPath,
					}
				}
			}
		},
		onLoad(data) {
			
			this.initmap();
			// 自动调用周边查询
			this.searchNearby('交通');
		},
		filters : {
			filtercou(item){
				if(!item){
					return '暂未采集';
				}else{
					return item;
				}
			}
		},
		methods:{
			// 地图相关
			// 周边查询,切换tabs
			tabsClick(item){
				console.log(item);
				this.searchNearby(item.name);
			},
			searchNearby(name){
				let that = this;
                        	wx.showToast({
                        		title: '请稍后',
                        		icon: 'loading',
                        		duration: 2000
                        	})
                        	qqmapsdk.search({
                        		keyword: name,
                        		page_size: 5, 
                        		location: that.mapxx.latitude + ',' + that.mapxx.longitude,
                        		success: function(res) { //搜索成功后的回调
                        			wx.hideToast({});
                        			let arrlist = [];
                        			for (var i = 0; i < res.data.length; i++) {
                        				arrlist.push({ // 获取返回结果,放到mks数组中
                        					title: res.data[i].title,
                        					latitude: res.data[i].location.lat,
                        					longitude: res.data[i].location.lng,
                        					distance: res.data[i]._distance,
                        				})
                        			}
                        			// 每次不用重新赋值,通过下标给需要的赋值
                        			that.peripheralsData = arrlist;
                        		},
                        		fail: function(res) {
                        			console.log(res);
                        		},
                        		complete: function(res) {
                        		}
                        	});
			},
			initmap(){
                        	//获取当前的地理位置
                        	let vthis = this;
                        	uni.getLocation({
                        	    type: 'gcj02',
                        	    success: function (res) {
                        			vthis.mapxx.latitude = res.latitude;
                        			vthis.mapxx.longitude = res.longitude;
                        			vthis.mapxx.markers = [{
                        				id:1,
                        				latitude:res.latitude,
                        				longitude:res.longitude,
                        				iconPath:infoiconPath
                        			}];
                        	        console.log('当前位置的经度:' + res.longitude);
                        	        console.log('当前位置的纬度:' + res.latitude);
                        	    }
                        	});
			}
		}
	}
</script>

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1012033.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

【MySQL基础|第三篇】--- 详谈SQL中的DQL语句

个人主页&#xff1a;兜里有颗棉花糖 欢迎 点赞&#x1f44d; 收藏✨ 留言✉ 加关注&#x1f493;本文由 兜里有颗棉花糖 原创 收录于专栏【MySQL学习专栏】&#x1f388; 本专栏旨在分享学习MySQL的一点学习心得&#xff0c;欢迎大家在评论区讨论&#x1f48c; 前言 DQL&…

浙江工商大学MBA项目哪些人在报考?职务、就业、薪资……

9月下旬到10月下旬是每一年全国研究生网上报名的时间&#xff0c;这段时间内很多MBA考生要确定自己最终一志愿报考的学校和专业&#xff0c;在浙江省内&#xff0c;如果不想报考浙江大学的话&#xff0c;那么其余还有8个MBA项目可以选择。本期杭州达立易考教育为大家整理了浙工…

使用 kind 搭建 Kubernetes学习环境

什么是 kind &#xff1f; kind &#xff08; Kubernetes in Docker &#xff09; 让 你 能 够 在 本 地 计 算 机 上 运 行 Kubernetes 。 使 用 这 个 工 具 需 要 你 安 装 Docker 或 者 Podman 。 kind 将 Kubernetes 所需要的所有组件&#xff0c; 全部部署在一个 Docker …

微信小程序 非机动车车辆充电维修管理系统

本课题要求实现一套非机动车车辆管理系统&#xff0c;系统主要包括&#xff08;管理员服务端和学生微信端、车辆管理员微信端、辅导员服务端、车辆管理员服务端、辅导员微信端&#xff09;六个模块功能。 设计并实现了非机动车车辆管理系统。系统选用java语言&#xff0c;应用S…

【Android取证篇】华为设备跳出“允许USB调试“界面方法的不同方法

【Android取证篇】华为设备跳出"允许USB调试"界面方法的不同方法 华为设备在鸿蒙OS3系统之后&#xff0c;部分设备启用"允许USB调试"方式会有所变化&#xff0c;再次做个记录—【蘇小沐】 1.实验环境 系统版本Windows 11 专业工作站版22H2&#xff08;2…

【送书活动】朋友圈大佬都去读研了,这份备考书单我码住了

前言 「作者主页」&#xff1a;雪碧有白泡泡 「个人网站」&#xff1a;雪碧的个人网站 「推荐专栏」&#xff1a; ★java一站式服务 ★ ★ React从入门到精通★ ★前端炫酷代码分享 ★ ★ 从0到英雄&#xff0c;vue成神之路★ ★ uniapp-从构建到提升★ ★ 从0到英雄&#xff…

AIGC做题能力谁家强呢?

通义千问刚发布了&#xff0c; 想和文心一言比较一下&#xff0c;就简单的问了三个问题 1 挖了个坑的鸡兔同笼问题&#xff0c;12个头35个脚的情况求解。 通义千问能意识到鸡兔脚都是偶数&#xff0c;计算出现小数点就自动舍弃了&#xff0c;结果就是7鸡5兔一共34只脚。 拒绝…

重点--环形缓冲区-----适合在通信中接收数据

为什么要用环形缓冲区 当有大量数据的时候&#xff0c;我们不能存储所有的数据&#xff0c;那么计算机处理数据的时候&#xff0c;只能先处理先来的&#xff0c;处理之后就会把数据释放掉&#xff0c;再处理下一个。那么已经处理的数据的内存就会被浪费掉。因为后来的数据只能往…

冠达管理:央行降准0.25个百分点 释放流动性超5000亿

人民银行昨日发布消息称&#xff0c;为巩固经济上升向好根底&#xff0c;坚持活动性合理富余&#xff0c;决定于9月15日下调金融组织存款准备金率0.25个百分点&#xff08;不含已执行5%存款准备金率的金融组织&#xff09;。本次下调后&#xff0c;金融组织加权平均存款准备金率…

SwiftUI Swift iOS iPadOS 实现更改 App 图标

Xcode: 14.3.1 更改 App 图标 淘宝&#xff0c;支付宝&#xff0c;有道翻译有时候会随着运营活动去调整图标&#xff0c;比如 双 11。&#xff08;这个很简单&#xff0c;替换一下 AppIcon 就可以了&#xff09;Github App 提供了多套图标可以修改。&#xff08;需要配置 &…

誉天在线项目-UML状态图+泳道图

什么是UML UML&#xff08;Unified Modeling Language&#xff09;是一种用于软件系统建模的标准化语言。它提供了一组图形符号和规范&#xff0c;用于描述和设计软件系统的结构、行为和交互。 UML图形符号包括类图、用例图、时序图、活动图、组件图、部署图等&#xff0c;每…

原生微信小程序中进行 API 请求

原生微信小程序中进行 API 请求 当在原生微信小程序中进行 API 请求时&#xff0c;封装请求可以提高代码的可维护性和可扩展性。在本篇博客中&#xff0c;我们将一步步介绍如何进一步封装请求&#xff0c;并添加请求超时、拦截器和请求取消功能。 第一步&#xff1a;基本请求封…

生产设备上的静电该如何处理?

在工厂生产车间里有很多机械设备&#xff0c;在生产运作过程中&#xff0c;难免会产生大量静电&#xff0c;静电会产生许多危害。 例如&#xff0c;1、会使电子设备故障、误操作而引起的电磁干扰。 2、电子元件或集成电路的静电击穿; 3、高压静电放电引起触电; 4、静电放电引起…

一种新的图像去噪方式:图像修补+斑点检测的预处理

灵感来源于我之前写的一篇博客&#xff1a;图像处理&#xff1a;基于cv2.inpaint()图像修补。 这种方式可以有效的去除白色的噪点&#xff0c;这里我们需要一张噪点的图像&#xff0c;你可以用下面的代码随机生成一张噪点图片&#xff1a; import cv2 import numpy as np # i…

EDI经营许可证办理要求及流程全解!

我们正处在互联网的大时代&#xff0c;从事互联网行业又会想到电商&#xff0c;提到电商企业&#xff0c;大家会关注这个平台是否合法或是否靠谱&#xff0c;那除了对这个电商品牌的认知以外&#xff0c;还会关注其是否合法合规为用户提供货物购买交易服务&#xff0c;是否具备…

评价模型:层次分析法

1. 模型建立 1.1 建立层次结构模型 在深入分析实际问题的基础上&#xff0c;将有关的各个因素按照不同属性自上而下地分解成若干层次&#xff0c;同一层的诸因素从属于上一层的因素或对上层因素有影响&#xff0c;同时又支配下一层的因素或受到下层因素的作用。最上层为目标层…

day10常用API

1.API 1.1API概述 什么是API ​ API (Application Programming Interface) &#xff1a;应用程序编程接口 java中的API ​ 指的就是 JDK 中提供的各种功能的 Java类&#xff0c;这些类将底层的实现封装了起来&#xff0c;我们不需要关心这些类是如何实现的&#xff0c;只需要…

奶牛个体识别 奶牛身份识别

融合YOLOv5s与通道剪枝算法的奶牛轻量化个体识别方法 Light-weight recognition network for dairy cows based on the fusion of YOLOv5s and channel pruning algorithm 论文链接 知网链接 DOI链接 该文章讨论了奶牛花斑、光照条件、不同剪枝方法、不同剪枝率对准确率的影响…

【C语言】指针查漏补缺

【C语言】指针查漏补缺 预备知识一维整数数组字符数组字符常量数组字符串常量二维数组 预备知识 sizeof 是计算对象或者类型创建的对象所占内存空间的大小&#xff0c;单位是字节 sizeof 是操作符&#xff0c;不是函数 strlen 求字符串长度的&#xff0c;计算的是字符串中\0之…

向量的概念、向量组的概念

目录 向量的概念、向量组的概念 向量的基本运算 线性表出、线性相关、线性无关 向量的概念、向量组的概念 向量&#xff08;Vector&#xff09;是一个有次序的数所组成的数组&#xff0c;通常用来表示一个物理量或者一个对象在空间中的移动。向量可以表示位置、速度、力等物…