# map

地图。相关 api qa.createMapContext

组件属性的长度单位默认为 px,支持传入单位(rpx/px)。

属性 类型
默认值
必填
说明
longitude number 中心经度
latitude number 中心纬度
scale number 16 缩放级别,取值范围为 3-20
markers Array.<marker> 标记点
polyline Array.<polyline> 路线
circles Array.<circle>
controls Array.<control> 控件(即将废弃,建议使用 cover-view 代替)
include-points Array.<point> 缩放视野以包含所有给定的坐标点
show-location boolean false 显示带有方向的当前定位点
polygons Array.<polygon> 多边形
show-compass boolean false 显示指南针
enable-overlooking boolean false 开启俯视
enable-zoom boolean true 是否支持缩放
enable-scroll boolean true 是否支持拖动
enable-rotate boolean false 是否支持旋转
bindtap eventhandle 点击地图时触发
bindmarkertap eventhandle 点击标记点时触发,会返回 marker 的 id
bindcontroltap eventhandle 点击控件时触发,会返回 control 的 id
bindcallouttap eventhandle 点击标记点对应的气泡时触发,会返回 marker 的 id
bindupdated eventhandle 在地图渲染更新完成时触发
bindregionchange eventhandle 视野发生变化时触发
bindpoitap eventhandle 点击地图 poi 点时触发

# marker

标记点用于在地图上显示标记的位置

属性 说明 类型 必填 备注
id 标记点 id number marker 点击事件回调会返回此 id。建议为每个 marker 设置上 number 类型 id,保证更新 marker 时有更好的性能。
latitude 纬度 number 浮点数,范围 -90 ~ 90
longitude 经度 number 浮点数,范围 -180 ~ 180
title 标注点名 string 点击时显示,callout 存在时将被忽略
zIndex 显示层级 number
iconPath 显示的图标 string 项目目录下的图片路径,支持相对路径写法,以'/'开头则表示相对快应用根目录;也支持临时路径和网络图片
rotate 旋转角度 number 顺时针旋转的角度,范围 0 ~ 360,默认为 0
alpha 标注的透明度 number 默认 1,无透明,范围 0 ~ 1
width 标注图标宽度 number/string 默认为图片实际宽度
height 标注图标高度 number/string 默认为图片实际高度
callout 自定义标记点上方的气泡窗口 Object 支持的属性见下表,可识别换行符。
label 为标记点旁边增加标签 Object 支持的属性见下表,可识别换行符。
anchor 经纬度在标注图标的锚点,默认底边中点 Object {x, y},x 表示横向(0-1),y 表示竖向(0-1)。{x: .5, y: 1} 表示底边中点

# marker 上的气泡 callout

属性 说明 类型
content 文本 string
color 文本颜色 string
fontSize 文字大小 number
borderRadius 边框圆角 number
bgColor 背景色 string
padding 文本边缘留白 number
display 'BYCLICK':点击显示; 'ALWAYS':常显 string
textAlign 文本对齐方式。有效值: left, right, center string

# marker 上的气泡 label

属性 说明 类型
content 文本 string
color 文本颜色 string
fontSize 文字大小 number
anchorX label 的坐标,原点是 marker 对应的经纬度 number
anchorY label 的坐标,原点是 marker 对应的经纬度 number
borderRadius 边框圆角 number
bgColor 背景色 string
padding 文本边缘留白 number
textAlign 文本对齐方式。有效值: left, right, center string

# polyline

指定一系列坐标点,从数组第一项连线至最后一项形成曲线

属性 说明 类型 必填 备注
points 经纬度数组 array [{latitude: 0, longitude: 0}]
color 线的颜色 string
width 线的宽度 number
dottedLine 是否虚线 boolean 默认 false
arrowLine 带箭头的线 boolean 默认 false,开发者工具暂不支持该属性
arrowIconPath 更换箭头图标 string 在 arrowLine 为 true 时生效

# polygon

指定一系列坐标点,根据 points 坐标数据生成闭合多边形

属性 说明 类型 必填 备注
points 经纬度数组 array [{latitude: 0, longitude: 0}]
strokeWidth 描边的宽度 number
strokeColor 描边的颜色 string
fillColor 填充颜色 string
zIndex 设置多边形 Z 轴数值 number

# circle

在地图上显示圆

属性 说明 类型 必填 备注
latitude 纬度 number 浮点数,范围 -90 ~ 90
longitude 经度 number 浮点数,范围 -180 ~ 180
color 描边的颜色 string
fillColor 填充颜色 string
radius 半径 number
strokeWidth 描边的宽度 number

# control

属性 说明 类型 必填 备注
id 控件 id number 在控件点击事件回调会返回此 id
position 控件在地图的位置 object 控件相对地图位置
iconPath 显示的图标 string 项目目录下的图片路径,支持相对路径写法,以'/'开头则表示相对快应用根目录;也支持临时路径
clickable 是否可点击 boolean 默认不可点击

# position

属性 说明 类型 必填 备注
left 距离地图的左边界多远 number 默认为 0
top 距离地图的上边界多远 number 默认为 0
width 控件宽度 number 默认为图片宽度
height 控件高度 number 默认为图片高度

# bindregionchange 返回值

属性 说明 类型 备注
type 视野变化开始、结束时触发 string 视野变化开始为 begin,结束为 end

# Bug & Tip

  • 地图中的颜色值 color/bgColor/strokeColor/fillColor 等使用 6 位(8 位)十六进制表示,8 位时后两位表示 alpha 值,如:#000000AA,或者使用'rgb(0,0,0)','rgba(0,0,0,0.8)'表示。
  • 地图组件的经纬度必填, 如果不填经纬度则默认值是北京的经纬度。
  • map 组件使用的经纬度是国测局坐标系,调用 qa.getLocation 接口需要指定 typegcj02
  • 请注意原生组件使用限制

# 使用效果

map

# 示例代码

<!-- map.qxml -->
<map
  id="map"
  longitude="114.0596562624"
  latitude="22.5681825638"
  controls="{{controls}}"
  bindcontroltap="controltap"
  markers="{{markers}}"
  bindmarkertap="markertap"
  polyline="{{polyline}}"
  bindregionchange="regionchange"
  show-location
  style="width: 100%; height: 300px;"
></map>
1
2
3
4
5
6
7
8
9
10
11
12
13
14
// map.js
Page({
  data: {
    markers: [
      {
        iconPath: 'marker.jpg',
        id: 0,
        latitude: 22.5681825638,
        longitude: 114.0596562624,
        width: 50,
        height: 50
      }
    ],
    polyline: [
      {
        points: [
          {
            longitude: 114.0596562624,
            latitude: 22.5681825638
          },
          {
            longitude: 119.07,
            latitude: 22.5681825638
          }
        ],
        color: '#000000',
        width: 2,
        dottedLine: true
      }
    ],
    controls: [
      {
        id: 1,
        iconPath: 'control.jpg',
        position: {
          left: 100,
          top: 200,
          width: 50,
          height: 50
        },
        clickable: true
      }
    ]
  },
  regionchange(e) {
    console.log(e.type)
  },
  markertap(e) {
    console.log(e.markerId)
  },
  controltap(e) {
    console.log(e.controlId)
  }
})
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54

在线客服