2 回复
592944557 OR 1196097915 ,原生插件找我~
针对uni-app中map插件的需求,我们可以实现一个基本的地图展示功能,并添加一些常用的功能点,比如定位当前位置、标记点等。以下是一个简单的代码示例,展示了如何在uni-app中使用map插件。
首先,确保你的uni-app项目已经创建并配置好。然后,在你的页面文件中(比如pages/index/index.vue
),可以按照以下步骤实现地图功能。
1. 页面模板(template)
<template>
<view class="container">
<map
id="map"
:longitude="longitude"
:latitude="latitude"
:scale="scale"
:markers="markers"
show-location
style="width: 100%; height: 100%;"
@locationchange="onLocationChange"
></map>
<button @click="centerLocation">定位到当前位置</button>
</view>
</template>
2. 脚本部分(script)
<script>
export default {
data() {
return {
longitude: 116.397428, // 默认经度
latitude: 39.90923, // 默认纬度
scale: 14, // 默认缩放级别
markers: [] // 标记点数组
};
},
methods: {
onLocationChange(e) {
this.longitude = e.detail.longitude;
this.latitude = e.detail.latitude;
this.markers = [
{
id: 1,
latitude: e.detail.latitude,
longitude: e.detail.longitude,
title: '当前位置'
}
];
},
centerLocation() {
const that = this;
uni.getLocation({
type: 'gcj02', // 返回可以用于uni.openLocation的经纬度
success(res) {
that.longitude = res.longitude;
that.latitude = res.latitude;
that.markers = [
{
id: 1,
latitude: res.latitude,
longitude: res.longitude,
title: '当前位置'
}
];
}
});
}
}
};
</script>
3. 样式部分(style)
<style scoped>
.container {
width: 100%;
height: 100vh;
display: flex;
flex-direction: column;
justify-content: space-between;
align-items: center;
}
button {
margin-top: 10px;
}
</style>
说明
- 模板部分:使用
<map>
组件展示地图,并绑定相关属性和事件。 - 脚本部分:定义了地图的初始经纬度、缩放级别和标记点数组。通过
onLocationChange
方法处理位置变化事件,更新经纬度和标记点。centerLocation
方法用于手动定位到当前位置。 - 样式部分:简单的样式布局,使地图占据整个视口高度,按钮位于底部。
这个示例展示了如何在uni-app中使用map插件实现基本的地图功能,你可以根据实际需求进一步扩展和定制。