当前位置:首页 > uni-app

uniapp 地图组件

2026-03-05 06:56:48uni-app

uniapp 地图组件使用指南

uniapp 提供了 map 组件用于在应用中嵌入地图功能,支持展示地图、标记位置、路线规划等。以下是详细的使用方法和注意事项。

基础用法

在页面中添加 map 组件,设置基本属性:

uniapp 地图组件

<template>
  <view>
    <map 
      id="myMap" 
      :latitude="latitude" 
      :longitude="longitude" 
      :markers="markers"
      style="width: 100%; height: 300px;">
    </map>
  </view>
</template>

<script>
export default {
  data() {
    return {
      latitude: 39.908823,
      longitude: 116.397470,
      markers: [{
        id: 1,
        latitude: 39.908823,
        longitude: 116.397470,
        title: '北京市',
        iconPath: '/static/location.png'
      }]
    }
  }
}
</script>

属性说明

  • latitudelongitude:地图中心点的经纬度。
  • markers:标记点数组,支持自定义图标、标题等。
  • scale:地图缩放级别,默认为 16。
  • show-location:是否显示用户当前位置。

交互功能

通过 @markertap 监听标记点点击事件:

uniapp 地图组件

<map 
  @markertap="handleMarkerTap"
  :markers="markers">
</map>

<script>
export default {
  methods: {
    handleMarkerTap(e) {
      console.log('标记点被点击', e.markerId)
    }
  }
}
</script>

地图控件

添加控件(如指南针、缩放按钮):

<map 
  :controls="controls"
  @controltap="handleControlTap">
</map>

<script>
export default {
  data() {
    return {
      controls: [{
        id: 1,
        position: { left: 10, top: 10 },
        iconPath: '/static/compass.png',
        clickable: true
      }]
    }
  },
  methods: {
    handleControlTap(e) {
      console.log('控件被点击', e.controlId)
    }
  }
}
</script>

路线规划

调用 uni.getLocation 获取当前位置,结合地图组件实现路线规划:

uni.getLocation({
  type: 'gcj02',
  success: (res) => {
    this.latitude = res.latitude
    this.longitude = res.longitude
  }
})

注意事项

  • 地图组件在部分平台上需要配置权限,例如高德地图或腾讯地图的 SDK 配置。
  • 真机调试时需确保已申请相关定位权限。
  • markerscontrols 的数据变化需通过 setData 更新。

通过以上方法,可以快速实现 uniapp 中的地图功能,满足大多数应用场景需求。

标签: 组件地图
分享给朋友:

相关文章

uniapp倒计时组件

uniapp倒计时组件

uniapp倒计时组件实现方法 使用内置组件实现 uniapp提供了<countdown>组件用于倒计时功能,支持自定义格式和样式。示例代码如下: <countdown :t…

vue table组件实现

vue table组件实现

Vue 表格组件实现方案 基础表格实现 使用<table>标签结合v-for指令渲染数据是最简单的实现方式: <template> <table> &…

如何缓存react组件

如何缓存react组件

缓存React组件的方法 React.memo 使用React.memo对函数组件进行浅比较缓存,避免不必要的重新渲染。适用于props不变的场景。 const MemoizedComponen…

vue 实现弹窗组件

vue 实现弹窗组件

Vue 弹窗组件实现 基础弹窗组件结构 创建一个名为Modal.vue的文件,定义弹窗的基础结构和样式: <template> <div class="modal-mask"…

vue实现图片组件

vue实现图片组件

Vue 实现图片组件的方法 基础图片组件实现 创建一个基础的图片组件,支持动态传入图片路径和替代文本。在Vue项目中新建一个ImageComponent.vue文件: <template>…

vue组件实现computed

vue组件实现computed

Vue 组件中实现 computed 的方法 在 Vue 组件中,computed 用于声明计算属性,根据依赖的响应式数据动态计算并返回结果。计算属性具有缓存机制,只有当依赖的数据发生变化时才会重新计…