uniapp微信小程序实现地图展示控件

news/2024/7/10 2:23:53 标签: uni-app, 微信小程序, 前端, vue

最终实现效果:

地图上展示控件,并可以点击。

目录

一、前言

二、在地图上展示控件信息 点击后可进行绘制面图形

1.使用cover-view将控件在地图上展示

2.设置控件样式,使用好看的图标

3.控件绑定点击事件


一、前言

原本使用的是controls,但是我发现官方明确说明,这个功能即将废弃,所以这里控件的展示我使用了cover-view

二、在地图上展示控件信息 点击后可进行绘制面图形

1.使用cover-view将控件在地图上展示

HTML部分

<!-- 展示地图信息  标绘位置情况 -->
<view class="myMap">
	<u-divider text="地图展示"></u-divider>
	<map id="mymap" class="myMap_map">
		<cover-view class="myMap_map__cover-view">
			<cover-view class="myMap_map__cover-view_mapControls">
				<!-- 显示绘制的控件-->
				<cover-view class="myMap_map__cover-view_mapControls_drawControl"></cover-view>
			</cover-view>
		</cover-view>
	</map>
</view>

设置CSS样式

// 地图模块样式
.myMap{
	width:100%;
	height: 500rpx;
	&_map{
		width: 100%;
		height: 450rpx;
		
		&__cover-view{
			position: absolute;
			top:calc(50% - 150rpx);
			left:calc(50% - 150rpx);
			
			&_mapControls{
				display: flex;
				flex-direction: column;
				align-items: center;
				
				&_drawControl{
					width: 50px;
					height: 50px;
					background-color: #ff0000
				}
			}
		}
	}
}

展示效果

2.设置控件样式,使用好看的图标

将控件移动到屏幕中地图的合适位置,并使用cover-image展示好看的图标展示

HTML部分

<!-- 展示地图信息  标绘位置情况 -->
<view class="myMap">
	<u-divider text="地图展示"></u-divider>
	<map id="mymap" class="myMap_map">
		<cover-view class="myMap_map__cover-view">
			<cover-view class="myMap_map__cover-view_mapControls">
				<!-- 显示绘制的控件-->
				<cover-view class="myMap_map__cover-view_mapControls_drawControl">
					<cover-image class="myMap_map__cover-view_mapControls_drawControl_drawicon" :src="mapData.drawIconPath"></cover-image>
					<cover-view class="myMap_map__cover-view_mapControls_drawControl_drawText">标绘位置</cover-view>
				</cover-view>
			</cover-view>
		</cover-view>
	</map>
</view>

CSS设置地图

// 地图模块样式
.myMap{
	width:100%;
	height: 500rpx;
	&_map{
		width: 100%;
		height: 450rpx;
		
		&__cover-view{
			position: absolute;
			top:40rpx;
			left:35rpx;
			
			&_mapControls{
				display: flex;
				flex-direction: column;
				align-items: center;
				
				&_drawControl{
					display: flex;
					align-items: center;
					justify-content: center;
					flex-direction: column;
					width: 48px;
					height: 48px;
					background-color: #fff;
					border-radius: 5px;
					
					&_drawicon{
						width: 20px;
						height: 20px;
						margin-bottom: 6px;
					}
					
					&_drawText{
						font-size: 10px;
						color: #00AF99;
					}
				}
			}
		}
	}
}

展示效果:

3.控件绑定点击事件

直接在控件的cover-view上绑定click事件

点击效果:


http://www.niftyadmin.cn/n/5229167.html

相关文章

华为全屋智能5.0,无为而“智”

在赖特西塔里埃森混凝土墙的中心壁龛里&#xff0c;一块铜牌上刻着一些英文&#xff0c;意思是“建筑的意义不是屋顶和墙&#xff0c;而是人们生活于其中的空间”。 这句话&#xff0c;取自老子《道德经》中的“凿户牖以为室&#xff0c;当其无&#xff0c;有室之用”。 《理想…

最新Midjourney绘画提示词Prompt

最新Midjourney绘画提示词Prompt 一、AI绘画工具 SparkAi【无需魔法使用】&#xff1a; SparkAi是目前国内一款的ChatGPT对接OpenAI软件系统。那么如何搭建部署AI创作ChatGPT&#xff1f;小编这里写一个详细图文教程吧&#xff01;本系统使用NestjsVueTypescript框架技术&am…

kubernetes(k8s)容器内无法连接同所绑定的Service ClusterIP问题记录

kubernetes(k8s)容器内无法连接同所绑定的Service ClusterIP问题记录 1. k8s环境 k8s使用kubernetes-server-linux-amd64_1.19.10.tar.gz 二进制bin 的方式手动部署 k8s 版本: [rootmaster ~]# kubectl version Client Version: version.Info{Major:"1", Minor:&…

SPI学习

SPI介绍 SPI&#xff1a;串行外设设备接口&#xff08;Serial Peripheral Interface&#xff09;&#xff0c;是一种高速的&#xff0c;全双工&#xff0c;同步通信总线。 全双工&#xff1a;同一时刻&#xff0c;能同时接收数据和发送数据。 半双工&#xff1a;同一时刻&am…

docker的知识点,以及使用

Docker 是一个开源的应用容器引擎&#xff0c;可以让开发者将应用程序及其依赖项打包至一个可移植的容器中&#xff0c;从而实现快速部署、可扩展和依赖项隔离等特性。下面是 Docker 的一些知识点以及使用方法&#xff1a; Docker 的组成部分包括 Docker 引擎、Docker 镜像、Do…

硫酸钡行业分析:预计2028年将达到8.3亿美元

硫酸钡常用于消化道造影&#xff0c;据国内使用者报道&#xff0c;粗细不匀型硫酸钡&#xff0c;优于细而匀的硫酸钡。硫酸钡是一种用于白色颜料、纸张、橡胶、X光检查时使用的填充剂。具有低硬度、接近直角交叉的完全解理、高密度、遇盐酸不起泡沫的板状结晶&#xff0c;与类似…

华为eNSP AR2220路由器配置教程

文章目录 华为eNSP AR2220路由器配置教程基础配置系统初始化设置用户密码配置设备IP地址 接口配置LAN接口配置WAN接口配置 路由配置静态路由配置动态路由协议配置OSPF配置 安全配置防火墙配置 故障排除查看接口状态日志和诊断测试网络连通性 华为eNSP AR2220路由器配置教程 华…

RubyMine 2023 年下载、安装、使用教程,详细图解

大家好&#xff0c;今天为大家带来的是RubyMine 2023 年下载、安装、使用教程&#xff0c;详细图解。 文章目录 1 RubyMine 简介2 RubyMine 下载、安装教程RubyMine 下载RubyMine 安装 3 RubyMine 汉化4. 常用快捷键一级必会二级进阶 1 RubyMine 简介 RubyMine 是一个为 Ruby …