Uniapp中的map属性(秒懂地图各种功能)

一、map介绍

1.概念

        map 组件是一个嵌入式地图视图,可以显示指定区域的地图并支持多种交互操作。它通常依赖于第三方地图服务(例如高德地图、百度地图、腾讯地图等),并通过 API 获取地图数据和功能。UniApp 提供的 map 组件封装了这些 API,使得开发者能够更便捷地在应用中使用地图功能。

2. 主要功能

  1. 定位功能

    显示用户当前位置:通过 show-location 属性,可以在地图上显示用户当前位置,通常用于需要提供实时定位的应用,如导航或共享位置的功能。
  2. 标记点(Markers)

    在地图上标记多个位置,标记点可以自定义图标、文本等信息,通常用于表示兴趣点、商店、餐馆、景点等。
  3. 地图缩放

    控制地图的缩放级别,可以通过 scale 属性来调整显示的范围。比如在城市级别显示或街道级别显示,缩放级别越大,地图显示越详细。
  4. 绘制路线(Polyline)

    使用折线绘制路径或轨迹,适合显示路线图,如驾车路线、步行路线等。可以通过 polyline 属性传入一系列坐标点,连接成一条折线。
  5. 绘制圆形(Circles)和多边形(Polygons)

    可以在地图上绘制圆形或多边形区域,适用于标注特定区域或兴趣区域,比如限定的服务区域或活动范围。
  6. 显示当前位置

    show-location 属性用于控制是否显示当前位置的小圆点,用户可以查看他们的实时位置。
  7. 旋转功能

    rotate 属性允许用户旋转地图,适用于展示地图的不同角度,给用户提供更加灵活的视角。
  8. 3D 地图

    如果设备支持,可以通过 enable-3D 启用 3D 地图视图,增强用户的沉浸感,特别适合展示具有地形变化的区域。
  9. 地图控件

    controls 属性允许用户自定义控件的位置,例如添加放大缩小按钮、定位按钮等,增强用户交互体验。
  10. 区域范围显示

    include-points 属性用于调整地图的显示区域,使得给定的多个坐标点都能显示在视野内,非常适合用于多标记的情况,确保所有标记都能被用户看到。

3. 使用场景

  1. 导航和路线规划

    通过标记起点和终点,绘制路线,可以帮助用户规划出行路线,尤其是驾车、步行或骑行路径。
  2. 位置展示

    在地图上显示某些位置的标记,帮助用户找到商店、餐馆、景点等地点。
  3. 地理定位和实时定位

    实时定位用户的当前位置,并在地图上展示,常用于打车、外卖、社交等应用中。
  4. 展示地图视角

    通过旋转、缩放地图,或者展示 3D 地图,增强用户的沉浸感,提升地图交互体验。
  5. 区域标注

    可以通过绘制圆形或多边形来标注特定区域,适用于某些商圈、服务区或活动范围的标注。

二、map组件中常见属性和方法

1. longitude 和 latitude:

  • 作用:定义地图显示的中心点的经纬度,地图会以此为中心显示。
  • 类型Number
  • 默认值0
  • 使用场景:设置地图的初始位置,通常用在地图初始化时指定一个具体的经纬度。
  • 示例:
以下是uniappmap组件的所有属性: | 属性名 | 类型 | 默认值 | 必填 | 描述 | | :----: | :--: | :----: | :--: | :--: | | id | String | | 否 | map组件的唯一标识符,用于在事件处理函数中识别组件 | | style | String/Object | | 否 | map组件的样式,可以是一个字符串或对象 | | class | String | | 否 | map组件的class属性,用于设置组件的样式 | | latitude | Number | | 是 | 中心点的纬度 | | longitude | Number | | 是 | 中心点的经度 | | scale | Number | 16 | 否 | 缩放级别,取值范围为5-18 | | markers | Array | | 否 | 标记点,格式为[{id: 0, latitude: 0, longitude: 0, title: '', iconPath: '', width: '', height: '', callout: {}}],其中callout为自定义标记点上方的气泡 | | polyline | Object | | 否 | 路线,格式为{points: [], color: '', width: '', dottedLine: false},其中points为坐标数组,color为线的颜色,width为线的宽度,dottedLine为是否为虚线 | | circles | Array | | 否 | 圆形,格式为[{latitude: 0, longitude: 0, color: '', fillColor: '', radius: '', strokeWidth: 1}] | | controls | Array | | 否 | 控件,格式为[{id: 0, position: {}, iconPath: '', clickable: true}],其中position为控件的位置,可选值为'leftTop'、'rightTop'、'rightBottom'、'leftBottom' | | include-points | Array | | 否 | 缩放视野以包含所有给定的坐标点,格式为[{latitude: 0, longitude: 0}] | | show-location | Boolean | false | 否 | 是否显示当前位置 | | polygons | Array | | 否 | 多边形,格式为[{points: [], strokeWidth: 1, strokeColor: '', fillColor: ''}] | | subkey | String | | 否 | 用于在腾讯地图开发平台申请的key | | layer-style | Number | 1 | 否 | 地图样式,可选值为0、1、2、3 | | rotate | Number | 0 | 否 | 旋转角度,范围为0-360,逆时针旋转 | | skew | Number | 0 | 否 | 倾斜角度,范围为0-40 | | enable-overlooking | Boolean | false | 否 | 是否开启俯视 | | enable-3D | Boolean | false | 否 | 是否开启3D模式 | | enable-compass | Boolean | false | 否 | 是否显示指南针 | | enable-zoom | Boolean | true | 否 | 是否支持缩放 | | enable-scroll | Boolean | true | 否 | 是否支持拖动 | | enable-rotate | Boolean | false | 否 | 是否支持旋转 | | enable-tilt | Boolean | false | 否 | 是否支持倾斜 | | setting | Object | {} | 否 | 地图设置,可设置以下属性:<br>showLocation: 是否显示当前位置<br>showScale: 是否显示比例尺<br>subKey: 用于在腾讯地图开发平台申请的key<br>style: 地图样式,可选值为'normal'、'satellite'、'dark'、'light'、'fresh'、'bus' | | bindregionchange | EventHandle | | 否 | 拖动地图时触发 | | bindtap | EventHandle | | 否 | 点击地图时触发 | | bindmarkertap | EventHandle | | 否 | 点击标记点时触发 | | bindcallouttap | EventHandle | | 否 | 点击标记点上方的气泡时触发 | | bindcontroltap | EventHandle | | 否 | 点击控件时触发 | | bindupdated | EventHandle | | 否 | 地图更新时触发 | | bindpoitap | EventHandle | | 否 | 点击地图上的坐标点时触发 |
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值