uniapp 点击按钮打开地图,显示当前定位 和 指定标点

效果如图 ,  左边是我指定的标点位置, 右边是我自己的定位位置

研究了一整天,终于搞出来了, 刚开始以为要用第三方插件,一直在试高德,腾讯这些, 都没搞好,结果发现根本不用第三方 。。。 很简单的

上代码。  

直接复制粘贴,就是我上图的效果

 1 , iconPath 是标注点图标 ,要改成自己目录下的图片 ,默认的图标很丑,我自己改了

2 , 自定义标记点 , 我这里是写死的经纬度,实际开发可以发请求用接口返回的经纬度 

3 ,markers 就是标记点数组, id是唯一标识

4 , :scale 是地图的缩放比例,自己去调,看怎么样最好

<template>
	<view>
		<map
			class="map"
			:longitude="longitude"
			:latitude="latitude"
			:show-location="true"
			:markers="markers"
			:scale="16"
            style="width: 100%; height: 450px;"
			
		></map>
	</view>
</template>


<script>
export default {
	data() {
		return {
			// 用户当前定位信息
			latitude:"",
			longitude:"",
			// 自定义标记点
			markers: [{
				id: 2,
				latitude: '23.124088',
				longitude: '113.369389',
				iconPath:'../../static/phone.jpg',
				width: 30,
				height: 30,
			}]
		}
	},
	onLoad() {
		this.init()
	},
	methods: {
		// 初始化
		init() {
			let that = this
			// 拿到用户所在位置信息
			uni.getLocation({
				type: 'gcj02',
				success:(res)=> {
					
						this.latitude=res.latitude,
						this.longitude=res.longitude,
					that.markers.push({
						id:1,
						latitude:this.latitude,
						longitude:this.longitude,
						iconPath:'../../static/location.jpg',
						width: 30,
						height: 30,
					})
				}
				
			
			})
		}

	}
}

</script>

<style scoped>
map{
	width: 100%;
	height:600px
}
</style>

### 实现 UniApp 中腾讯地图点击标点事件 在 UniApp 开发环境中,通过集成腾讯地图 SDK 可以轻松实现地图上的标点功能,并为其绑定点击事件。以下是关于如何实现这一功能的具体说明: #### 1. 地图初始化与标点创建 在使用腾讯地图之前,需先完成地图组件的初始化工作。可以通过 `map` 组件加载地图,并利用腾讯地图 API 创建标点。具体来说,在页面配置文件中引入 `map` 组件后,可以在 JavaScript 文件中调用腾讯地图的相关方法来设置标点。 ```html <template> <view> <!-- 使用 map 组件 --> <map id="myMap" :latitude="latitude" :longitude="longitude" scale="14"> <cover-view v-for="(marker, index) in markers" :key="index" class="marker"> <cover-image @click="handleMarkerClick(marker)" :src="marker.iconPath" mode="aspectFit"></cover-image> </cover-view> </map> </view> </template> <script> export default { data() { return { latitude: 39.9087, longitude: 116.3975, markers: [ { iconPath: '/static/marker.png', id: 'm1' }, { iconPath: '/static/marker2.png', id: 'm2' } ] }; }, methods: { handleMarkerClick(marker) { console.log('Clicked marker:', marker.id); this.showInfoWindow(marker); // 显示信息窗体逻辑 }, showInfoWindow(marker) { uni.showToast({ title: `You clicked on ${marker.id}`, icon: 'none' }); } } }; </script> ``` 上述代码展示了如何在地图上放置多个标点,并为每个标点绑定点击事件[^1]。 #### 2. 处理标点点击事件 当用户点击某个标点时,触发对应的回调函数处理业务逻辑。通常情况下,开发者会希望显示一个信息窗体或者跳转到详情页等功能。这一步骤的关键在于监听用户的交互动作并作出响应。 对于更复杂的需求,例如动态更新信息窗体中的内容,则需要额外编写数据渲染逻辑以及绑定更多事件处理器。例如,可以借助 Vue 的双向绑定机制实时修改 DOM 结构,从而达到动态调整界面的效果[^3]。 #### 3. 自定义标点样式与行为扩展 除了基本的地图标注外,还可以进一步定制化这些标记的表现形式及其交互方式。比如更换默认图标、改变大小颜色等属性;亦或是增加动画效果让用户体验更加友好。所有这一切都可以基于腾讯地图提供的丰富接口去完成[^2]。 #### 注意事项 - 确保已正确申请腾讯地图 Key 并将其填入项目配置当中。 - 如果涉及到跨平台兼容性问题,请测试不同终端设备下的表现差异。 ```javascript // 示例:获取当前地理位置 wx.getLocation({ type: 'gcj02', success(res) { const latitude = res.latitude; const longitude = res.longitude; console.log(`Current Location(${latitude}, ${longitude})`); } }); ```
评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值