当前位置: 首页 > news >正文

uniapp小程序自定义聚合点

注:

1.默认的聚合点可以点击自动展示子级点位,但是自定义的聚合点在ios上无法触发markerClusterClick的监听,至今未解决,不知啥原因

2.ios和安卓展示的点位样式还有有差别

源码附上

<template><view class="marker-map"><map id="mapId" style="width: 100%; height:1342rpx ;" :latitude="latitude" :longitude="longitude"show-location show-scale :scale="zoom" @regionchange="regionchange" @updated="update" @callouttap='callouttap'></map><view class="layer flex-column align-end"><view class="cur-location justify-center align-center" @click="backCenter"><image :src="imgConf.position" mode="" style="width:60%;height: 60%;"></image></view><view class="list"><u-transition :show="showMarkerListPop" mode="fade-up"><mapMarkerList @onclose="showMarkerListPop=false" /></u-transition></view></view></view>
</template><script>import mapMarkerList from './components/mapMarkerList.vue'import imgConf from '@/utils/imgConf.js'export default {components: {mapMarkerList},data() {return {imgConf,longitude: 104.04311,latitude: 30.64242,markers: [], // 使用 marker点击事件 需要填写idfixedHeight: 60,zoom: 16,showMarkerListPop: false}},created() {this.mapContext = uni.createMapContext("mapId", this);console.log("this.mapContext", this.mapContext);// 使用默认聚合效果时可注释下一句this.bindEvent()this.getDotList();},methods: {bindEvent() {this.mapContext.initMarkerCluster({enableDefaultStyle: false,zoomOnClick: true,gridSize: 100,complete(res) {console.log('initMarkerCluster', res)}});// enableDefaultStyle 为 true 时不会触发该事件this.mapContext.on('markerClusterCreate', res => {const clusters = res.clustersconst markers = clusters.map(cluster => {const {center,clusterId,markerIds} = clusterreturn {...center,width: 1,height: 1,clusterId, // 必须iconPath: '',label: {content: '盛世年华' + "(" + "2" + "套)" + '\n' + '12' + '元起',color: "#ffffff",fontSize: 11,borderRadius: 8,bgColor: "#0090FF",padding: 10,textAlign: 'center',anchorX: 0,anchorY: -56,}// callout: {// 	content: '盛世年华' + "(" + "2" + "套)" + '\n' + '12' + '元起',// 	color: "#ffffff",// 	fontSize: 11,// 	borderRadius: 8,// 	bgColor: "#0090FF",// 	padding: 10,// 	textAlign: 'center',// 	display: 'ALWAYS',// },}})this.mapContext.addMarkers({markers,clear: false,complete(res) {console.log('clusterCreate addMarkers', res)}})})this.mapContext.on("markerClusterClick", (ClusterInfo) => {console.log("点击聚合点", ClusterInfo); //[id1,id2]});},// 获取所有点位/async getDotList(params) {// const res = await getDot(params)const resPosition = [{longitude: 113.324520,latitude: 23.099994,title: '盛世年华1',num: 1,price: 35500},{longitude: 102.04320,latitude: 31.64242,title: '盛世年华2',num: 1,price: 35500},{longitude: 102.04313,latitude: 30.64242,title: '盛世年华3',num: 1,price: 15500},{longitude: 113.326520,latitude: 31.64242,title: '盛世年华4',num: 3,price: 25500},]const markers = []resPosition.forEach((p, i) => {markers.push(Object.assign({}, {id: i + 1,iconPath: '',joinCluster: true,width: 2,height: 2,callout: {content: p.title + "(" + p.num + "套)" + '\n' + p.price + '元起',color: "#ffffff",fontSize: 11,borderRadius: 8,bgColor: "#0090FF",padding: 10,textAlign: 'center',display: 'ALWAYS',},}, p))})this.markers = JSON.parse(JSON.stringify(markers))this.mapContext.addMarkers({markers: this.markers,clear: false,complete(res) {console.log('addMarkers', res)}})// .map((item, index) => {// 	if (item.lnglat === '') {// 		return undefined// 	}// 	var location = item.x.split(",");// 	let iconPath = ''// 	let label = item.name.length > 20 ? item.name.substr(0, 18) + '...' : item.name;// 	label = label.length > 10 ? label.substr(0, 10) + '\n' + label.substr(10) : label;// 	return {// 		id: index,// 		longitude: Number(location[0]),// 		latitude: Number(location[1]),// 		iconPath,// 		joinCluster: this.zoom > 18 ? false : true,// 		width: 50,// 		height: 60,// 		name: item.name,// 		label: {// 			content: label,// 			anchorX: 20,// 			anchorY: -45,// 			color: '#333',// 			fontSize: 14// 		}// 	}// }).filter(i => i !== undefined)console.log('markers', this.markers)if (this.markers.length === 0) {uni.showToast({title: '暂无相关点位信息',icon: "none"})this.longitude = 92.066757this.latitude = 31.473608this.zoom = 16return}// })},// 点击标记点callouttap(e) {this.showMarkerListPop = true// 根据markerid查找console.log('点击标记点E', e) //e.markerId},regionchange() {// this.mapContext.getScale({// 	success: (res) => {// 		this.zoom = res.scale// 	}// })},update() {console.log('渲染更新完成') //e.markerId},// 定位到当前位置backCenter() {uni.getLocation({type: 'gcj02',success: (res) => {if (res.longitude && res.latitude) {this.latitude = Number(res.latitude)this.longitude = Number(res.longitude)this.zoom = 16.01 // 必须要有层级的变化,下面的方法才能生效this.mapContext.moveToLocation({longitude: this.longitude,latitude: this.latitude,success: (res) => {this.zoom = 16.03},fail: (info) => {console.log(info)}})} else {uni.showToast({title: '无法获取当前定位'})}},fail(err) {uni.showToast({title: '无法获取当前定位'})}});},}}
</script><style lang="scss" scoped>.marker-map {.layer {position: fixed;z-index: 999;width: 100%;right: 0;bottom: 0;}.cur-location {width: 86rpx;height: 86rpx;background: #FFFFFF;box-shadow: 0rpx 0rpx 8rpx 1rpx rgba(0, 144, 255, 0.15);border-radius: 20rpx 20rpx 20rpx 20rpx;margin-right: 30rpx;margin-bottom: 50rpx;}.list {width: 100%;height: 100%;}}
</style>

相关文章:

uniapp小程序自定义聚合点

注&#xff1a; 1.默认的聚合点可以点击自动展示子级点位&#xff0c;但是自定义的聚合点在ios上无法触发markerClusterClick的监听&#xff0c;至今未解决&#xff0c;不知啥原因 2.ios和安卓展示的点位样式还有有差别 源码附上 <template><view class"marke…...

Spring Boot在线考试系统:JavaWeb技术的应用案例

2相关技术 2.1 MYSQL数据库 MySQL是一个真正的多用户、多线程SQL数据库服务器。 是基于SQL的客户/服务器模式的关系数据库管理系统&#xff0c;它的有点有有功能强大、使用简单、管理方便、安全可靠性高、运行速度快、多线程、跨平台性、完全网络化、稳定性等&#xff0c;非常…...

Linux在服务器多节点下面如何快速查找日志

背景&#xff1a;最近在查找一个核心服务的后台日志&#xff0c;发现竟然部署了十几个节点&#xff0c;而且没使用ELK来做日志处理&#xff0c;所以查找日志非常不方便&#xff0c;不可能一个服务节点一个服务地找&#xff0c;所以通过同事间互相沟通找到一个方法&#xff0c;通…...

模数转换ADC0804的应用

【实验目的】 学习如何用单片机控制ADC0804芯片进行数模转换&#xff0c;掌握数码管动态扫描显示的原理。 【实验现象】 拧动AD旁边的电位器&#xff0c;会在数码管的前三位显示0-255之间的数值。 【实验说明】 动态扫描&#xff1a;就六位数码管显示123456举例说明如下&#x…...

CBAM中关于碳关税抵销

碳关税是欧盟为应对气候变化、防止 “碳泄漏” 而推出的一种边境调节机制。该机制的目的就是拉平进口产品与欧盟产品的碳成本&#xff0c;迫使其他国家建立碳市场或征收碳税&#xff0c;提高碳价&#xff0c;以达到和欧盟相同的水平&#xff0c;同时也有助于欧盟实现其气候目标…...

2.5 windows xp,ReactOS系统快速系统调用的实现

windows xp&#xff0c;ReactOS系统快速系统调用的实现 windows xp&#xff0c;ReactOS系统快速系统调用的实现 文章目录 **windows xp&#xff0c;ReactOS系统快速系统调用的实现**快速系统调用进入R0我们看MSR寄存器中的内容到底是啥子快速系统调用返回PspLookupKernelUserE…...

AI助力广交会,人工智能在制造业有哪些应用场景?

随着科技的飞速发展&#xff0c;人工智能&#xff08;AI&#xff09;正以前所未有的速度渗透到传统制造业中&#xff0c;为中国传统制造业注入了新的活力与变革&#xff0c;也为中国外贸的持续增长增添了更多底气。 在10月15日—19日举办的第136届中国进出口商品交易会上&…...

ElementPlus-Table表格-单选--TypeScript进阶篇

今天看个例子&#xff0c;这个例子是ElementPlus的组件Table表格下面的单选 <template> <el-table ref"singleTableRef" :data"tableData" highlight-current-row style"width: 100%" current-change"hand…...

三大智能体平台深度对比:字节Coze、百度AppBuilder、智谱智能体优劣解析

字节Coze智能体是一个多功能平台&#xff0c;具备丰富的功能和技能扩展能力。以下是它的一些核心功能和特性&#xff1a; 功能与技能 1. 插件功能 Coze智能体可以通过插件调用外部API&#xff0c;扩展智能体的能力。例如&#xff0c;它可以执行以下操作&#xff1a; 搜索信…...

【Flutter】基础入门:自定义Widget

在 Flutter 开发中&#xff0c;除了使用丰富的内置 Widgets 构建界面外&#xff0c;自定义 Widget 是让你的应用更灵活和个性化的重要手段。Flutter 允许你根据需求自定义 StatelessWidget 和 StatefulWidget&#xff0c;以实现复杂的 UI 组件或功能模块。 本教程将通过实例讲…...

程序员日志之DNF手游装备武器升级55级攻略

目录 传送门正文日志1、概要2、布甲3、皮甲4、轻甲5、重甲6、板甲7、武器 传送门 SpringMVC的源码解析&#xff08;精品&#xff09; Spring6的源码解析&#xff08;精品&#xff09; SpringBoot3框架&#xff08;精品&#xff09; MyBatis框架&#xff08;精品&#xff09; M…...

Java项目-基于springcloud框架的分布式架构网上商城系统项目实战(附源码+文档)

作者&#xff1a;计算机学长阿伟 开发技术&#xff1a;SpringBoot、SSM、Vue、MySQL、ElementUI等&#xff0c;“文末源码”。 开发运行环境 开发语言&#xff1a;Java数据库&#xff1a;MySQL技术&#xff1a;SpringBoot、Vue、Mybaits Plus、ELementUI工具&#xff1a;IDEA/…...

ComfyUI_LayerStyle节点介绍

✨原作者地址 ComfyUI_LayerStyle是一个很强大的节点组&#xff0c;支持了大量图像处理的基础节点。这篇是简单搬运和翻译原作者的内容&#xff0c;方便大家更方便快速的了解这个节点的价值。 https://github.com/chflame163/ComfyUI_LayerStyle ✨节点描述 节点根据功能分…...

SQL Injection | SQL 注入 —— 时间盲注

关注这个漏洞的其他相关笔记&#xff1a;SQL 注入漏洞 - 学习手册-CSDN博客 0x01&#xff1a;时间盲注 —— 理论篇 时间盲注&#xff08;Time-Based Blind SQL Injection&#xff09;是一种常见的 SQL 注入技术&#xff0c;适用于那些页面不会返回错误信息&#xff0c;只会回…...

最新开发项目H5商城小程序源码系统 带源代码安装包以及搭建部署教程

系统概述 在当今数字化迅猛发展的时代&#xff0c;电子商务已成为企业拓展市场、提升品牌影响力的重要手段。H5商城小程序作为一种跨平台、轻量级的应用形式&#xff0c;凭借其无需下载安装、即用即走的特性&#xff0c;迅速赢得了广大用户的青睐。为了满足企业对高质量H5商城…...

5大绝招揭秘:Cursor如何让RESTful API开发效率提升300%?

5大绝招揭秘:Cursor如何让RESTful API开发效率提升300%? 在当今快速迭代的软件开发世界中&#xff0c;高效构建RESTful API已成为开发者的必备技能。今天&#xff0c;我们将为大家介绍一款强大的AI辅助工具——Cursor&#xff0c;它能让您的API开发事半功倍。 Cursor Compos…...

鸿蒙开发,在 ArkTS 中,如何使用 Column 实现垂直居中对齐

面向万物互联时代&#xff0c;华为提出了“一次开发多端部署、可分可合自由流转、统一生态原生智能”三大应用与服务开发理念。针对多设备、多入口、服务可分可合等特性&#xff0c;华为提供了多种能力协助开发者降低开发门槛。HarmonyOS基于JS/TS语言体系&#xff0c;构建了全…...

红日安全vulnstack (一)

目录 环境搭建 本机双网卡 Kali IP 靶机IP Web GetShell 前期信息收集 Yxcms后台模板 Getshell PHPMyAdmin日志 Getshell into outfile写入一句话 X phpmyadmin 日志写入一句话 后渗透 MSF 生成木马上线 提取用户hash值 **hash**加密方式 MSF权限Shell至CS CS …...

为什么SSH协议是安全的?

SSH的传输层协议&#xff08;Transport Layer Protocol&#xff09;和用户鉴权协议&#xff08;Authentication Protocol&#xff09;确保数据的传输安全&#xff0c;这里只介绍传输层协议&#xff0c;是SSH协议的基础。 本文针对SSH2协议。 1、客户端连接服务器 服务器默认…...

主键 外键

主键 外键 在关系型数据库中&#xff0c;主键&#xff08;Primary Key&#xff09;和外键&#xff08;Foreign Key&#xff09;是用于维护数据完整性和建立表之间关系的重要概念。 主键&#xff08;Primary Key&#xff09; 定义: 主键是一个或多个列的组合&#xff0c;其值能…...

G - Road Blocked 2

G - Road Blocked 2 思路 只有当一条边是从 1 1 1到 n n n的所有最短路构成的图的桥时&#xff0c;去掉这条边&#xff0c;最短路才会变大 所以就可以用最短路加tarjan解决这道题了 怎么判断一条边是否可以构成最短路呢&#xff0c;比如求 1 1 1到 n n n的最短路&#xff0…...

R语言绘制Venn图(文氏图、温氏图、维恩图、范氏图、韦恩图)

Venn图&#xff0c;又称文氏图&#xff0c;标题中其他名字也是它的别称&#xff0c;由封闭圆形组成&#xff0c;代表不同集合。圆形重叠部分表示集合交集&#xff0c;非重叠处为独有元素。在生物学、统计学等领域广泛应用&#xff0c;可展示不同数据集相似性与差异&#xff0c;…...

【Vue.js】vue2 项目在 Vscode 中使用 Ctrl + 鼠标左键跳转 @ 别名导入的 js 文件和 .vue 文件

js 文件跳转 需要安装插件 Vetur 然后需要我们在项目根目录下添加 jsconfig.json 配置&#xff0c;至于配置的作用&#xff0c;可以参考我的另外一篇博客&#xff1a; 【React 】react 创建项目配置 jsconfig.json 的作用 它主要用于配置 JavaScript 或 TypeScript 项目的根…...

NVM配置与Vue3+Vite项目快速搭建指南

本文目录 1、配置环境1.1 NVM1、nvm常用命令 1.2 Mac配置环境1、安装nvm 1.3 Window配置环境1、安装nvm 2、 项目搭建2.1 项目依赖2.2 安装依赖2.3 配置1、别名配置2、创建样式及图片文件夹3、路由 2.4 项目搭建效果2.5 项目结构 在当今快速发展的前端技术领域中&#xff0c;掌…...

面试“利器“——微学时光

大家好&#xff0c;我是程序员阿药。微学时光是一款专为计算机专业学生和IT行业求职者设计的面试刷题小程序&#xff0c;它汇集了丰富的计算机面试题和知识点&#xff0c;旨在帮助用户随时随地学习和复习&#xff0c;提高自身的技术能力和面试技巧。 主题 随时随地学习&#x…...

【Unity】【游戏开发】游戏引擎是如何模拟世界的

【核心感悟】 游戏引擎通过两个维度的合并来模拟这个时间。 一个维度叫物理模型。 一个维度叫视觉模型。 对于物理模型&#xff0c;我们需要用物理引擎给予行为。 对于视觉模型&#xff0c;我们需要用动画去给予行为。 物理模型是真实机制&#xff0c;视觉模型是艺术表现&…...

vscode配置conda虚拟环境【windows系统】

安装好anacondavscode里安装python插件 3.点击左侧插件 如图1&#xff0c;再2&#xff0c;再点击3小星星激活conda环境 最后下方栏就出现conda环境了。就可以用啦...

libgpiod在imx8平台交叉编译说明

如下记录是在 imx8上测试使用 参考博主的文章 iMX6ULL 库移植 | Libgpiod 库的交叉编译及使用指南(linux) 编译说明 1: build.sh代码如下所示&#xff0c;先执行 source build.sh&#xff0c;注意修改交叉编译工具链为自己本地的地址&#xff1b; 2&#xff1a;执行 ./autogen…...

无人机之自主飞行关键技术篇

无人机自主飞行指的是无人机利用先进的算法和传感器&#xff0c;实现自我导航、路径规划、环境感知和自动避障等能力。这种飞行模式大大提升了无人机的智能化水平和操作的自动化程度。 一、传感器技术 传感器是无人机实现自主飞行和数据采集的关键组件&#xff0c;主要包括&a…...

performance.timing

performance.timing 是 Web 性能 API 的一部分&#xff0c;用于获取页面加载过程中的各个时间戳。这些时间戳可以帮助开发者分析页面加载性能&#xff0c;找出潜在的瓶颈。performance.timing 返回一个 PerformanceTiming 对象&#xff0c;该对象包含了多个属性&#xff0c;每个…...