.. _map:
:wx_comp:`map`
===========================
版本:|release| 更新:|today|
.. versionadded:: 1.0.0 低版本需做 :ref:`compatibility` 。
.. versionadded:: 2.4.0 组件属性的长度单位支持传入单位(rpx/px) , 默认为px。
地图。相关api :func:`wx.createMapContext` 。
个性化地图能力可在小程序后台“ :menuselection:`设置 --> 开发者工具 --> 腾讯位置服务` ”申请开通。
设置 ``subkey`` 后,小程序内的地图组件均会使用该底图效果。详见 `《小程序个性地图使用指南》 `_
+--------------------+------------------+--------+------+----------------------------------------------+----------+
| 属性 | 类型 | 默认值 | 必填 | 说明 | 最低版本 |
+====================+==================+========+======+==============================================+==========+
| longitude | number | | 是 | 中心经度 | 1.0.0 |
+--------------------+------------------+--------+------+----------------------------------------------+----------+
| latitude | number | | 是 | 中心纬度 | 1.0.0 |
+--------------------+------------------+--------+------+----------------------------------------------+----------+
| scale | number | 16 | 否 | 缩放级别,取值范围为5-18 | 1.0.0 |
+--------------------+------------------+--------+------+----------------------------------------------+----------+
| markers | Array. | | 否 | 标记点 | 1.0.0 |
+--------------------+------------------+--------+------+----------------------------------------------+----------+
| covers | Array. | | 否 | 即将移除,请使用 markers | 1.0.0 |
+--------------------+------------------+--------+------+----------------------------------------------+----------+
| polyline | Array. | | 否 | 路线 | 1.0.0 |
+--------------------+------------------+--------+------+----------------------------------------------+----------+
| circles | Array. | | 否 | 圆 | 1.0.0 |
+--------------------+------------------+--------+------+----------------------------------------------+----------+
| controls | Array. | | 否 | 控件(即将废弃,建议使用 cover-view 代替) | 1.0.0 |
+--------------------+------------------+--------+------+----------------------------------------------+----------+
| include-points | Array. | | 否 | 缩放视野以包含所有给定的坐标点 | 1.0.0 |
+--------------------+------------------+--------+------+----------------------------------------------+----------+
| show-location | boolean | false | 否 | 显示带有方向的当前定位点 | 1.0.0 |
+--------------------+------------------+--------+------+----------------------------------------------+----------+
| polygons | Array. | | 否 | 多边形 | 2.3.0 |
+--------------------+------------------+--------+------+----------------------------------------------+----------+
| subkey | string | | 否 | 个性化地图使用的key,仅初始化地图时有效 | 2.3.0 |
+--------------------+------------------+--------+------+----------------------------------------------+----------+
| enable-3D | boolean | false | 否 | 展示3D楼块(工具暂不支持) | 2.3.0 |
+--------------------+------------------+--------+------+----------------------------------------------+----------+
| show-compass | boolean | false | 否 | 显示指南针 | 2.3.0 |
+--------------------+------------------+--------+------+----------------------------------------------+----------+
| enable-overlooking | boolean | false | 否 | 开启俯视 | 2.3.0 |
+--------------------+------------------+--------+------+----------------------------------------------+----------+
| enable-zoom | boolean | true | 否 | 是否支持缩放 | 2.3.0 |
+--------------------+------------------+--------+------+----------------------------------------------+----------+
| enable-scroll | boolean | true | 否 | 是否支持拖动 | 2.3.0 |
+--------------------+------------------+--------+------+----------------------------------------------+----------+
| enable-rotate | boolean | false | 否 | 是否支持旋转 | 2.3.0 |
+--------------------+------------------+--------+------+----------------------------------------------+----------+
| bindtap | eventhandle | | 否 | 点击地图时触发 | 1.0.0 |
+--------------------+------------------+--------+------+----------------------------------------------+----------+
| bindmarkertap | eventhandle | | 否 | 点击标记点时触发,会返回marker的id | 1.0.0 |
+--------------------+------------------+--------+------+----------------------------------------------+----------+
| bindcontroltap | eventhandle | | 否 | 点击控件时触发,会返回control的id | 1.0.0 |
+--------------------+------------------+--------+------+----------------------------------------------+----------+
| bindcallouttap | eventhandle | | 否 | 点击标记点对应的气泡时触发,会返回marker的id | 1.2.0 |
+--------------------+------------------+--------+------+----------------------------------------------+----------+
| bindupdated | eventhandle | | 否 | 在地图渲染更新完成时触发 | 1.6.0 |
+--------------------+------------------+--------+------+----------------------------------------------+----------+
| bindregionchange | eventhandle | | 否 | 视野发生变化时触发 | 2.3.0 |
+--------------------+------------------+--------+------+----------------------------------------------+----------+
| bindpoitap | eventhandle | | 否 | 点击地图poi点时触发 | 2.3.0 |
+--------------------+------------------+--------+------+----------------------------------------------+----------+
marker 标记点用于在地图上显示标记的位置
+------------+--------------------------------------+---------------+------+------------------------------------------------------------------------------------------------------------+----------+
| 属性 | 说明 | 类型 | 必填 | 备注 | 最低版本 |
+============+======================================+===============+======+============================================================================================================+==========+
| id | 标记点 id | number | 否 | marker 点击事件回调会返回此 id。建议为每个 marker 设置上 number 类型 id,保证更新 marker 时有更好的性能。 | |
+------------+--------------------------------------+---------------+------+------------------------------------------------------------------------------------------------------------+----------+
| latitude | 纬度 | number | 是 | 浮点数,范围 -90 ~ 90 | |
+------------+--------------------------------------+---------------+------+------------------------------------------------------------------------------------------------------------+----------+
| longitude | 经度 | number | 是 | 浮点数,范围 -180 ~ 180 | |
+------------+--------------------------------------+---------------+------+------------------------------------------------------------------------------------------------------------+----------+
| title | 标注点名 | string | 否 | | |
+------------+--------------------------------------+---------------+------+------------------------------------------------------------------------------------------------------------+----------+
| zIndex | 显示层级 | number | 否 | | 2.3.0 |
+------------+--------------------------------------+---------------+------+------------------------------------------------------------------------------------------------------------+----------+
| iconPath | 显示的图标 | string | 是 | 项目目录下的图片路径,支持相对路径写法,以'/'开头则表示相对小程序根目录;也支持临时路径和网络图片(2.3.0) | |
+------------+--------------------------------------+---------------+------+------------------------------------------------------------------------------------------------------------+----------+
| rotate | 旋转角度 | number | 否 | 顺时针旋转的角度,范围 0 ~ 360,默认为 0 | |
+------------+--------------------------------------+---------------+------+------------------------------------------------------------------------------------------------------------+----------+
| alpha | 标注的透明度 | number | 否 | 默认 1,无透明,范围 0 ~ 1 | |
+------------+--------------------------------------+---------------+------+------------------------------------------------------------------------------------------------------------+----------+
| width | 标注图标宽度 | number/string | 否 | 默认为图片实际宽度 | |
+------------+--------------------------------------+---------------+------+------------------------------------------------------------------------------------------------------------+----------+
| height | 标注图标高度 | number/string | 否 | 默认为图片实际高度 | |
+------------+--------------------------------------+---------------+------+------------------------------------------------------------------------------------------------------------+----------+
| callout | 自定义标记点上方的气泡窗口 | Object | 否 | 支持的属性见下表,可识别换行符。 | 1.2.0 |
+------------+--------------------------------------+---------------+------+------------------------------------------------------------------------------------------------------------+----------+
| label | 为标记点旁边增加标签 | Object | 否 | 支持的属性见下表,可识别换行符。 | 1.2.0 |
+------------+--------------------------------------+---------------+------+------------------------------------------------------------------------------------------------------------+----------+
| anchor | 经纬度在标注图标的锚点,默认底边中点 | Object | 否 | {x, y},x 表示横向(0-1),y 表示竖向(0-1)。{x: .5, y: 1} 表示底边中点 | 1.2.0 |
+------------+--------------------------------------+---------------+------+------------------------------------------------------------------------------------------------------------+----------+
| aria-label | 无障碍访问,(属性)元素的额外描述 | string | 否 | | 2.5.0 |
+------------+--------------------------------------+---------------+------+------------------------------------------------------------------------------------------------------------+----------+
marker 上的气泡 callout
+--------------+-------------------------------------------+--------+----------+
| 属性 | 说明 | 类型 | 最低版本 |
+==============+===========================================+========+==========+
| content | 文本 | string | 1.2.0 |
+--------------+-------------------------------------------+--------+----------+
| color | 文本颜色 | string | 1.2.0 |
+--------------+-------------------------------------------+--------+----------+
| fontSize | 文字大小 | number | 1.2.0 |
+--------------+-------------------------------------------+--------+----------+
| borderRadius | 边框圆角 | number | 1.2.0 |
+--------------+-------------------------------------------+--------+----------+
| borderWidth | 边框宽度 | number | 2.3.0 |
+--------------+-------------------------------------------+--------+----------+
| borderColor | 边框颜色 | string | 2.3.0 |
+--------------+-------------------------------------------+--------+----------+
| bgColor | 背景色 | string | 1.2.0 |
+--------------+-------------------------------------------+--------+----------+
| padding | 文本边缘留白 | number | 1.2.0 |
+--------------+-------------------------------------------+--------+----------+
| display | 'BYCLICK':点击显示; 'ALWAYS':常显 | string | 1.2.0 |
+--------------+-------------------------------------------+--------+----------+
| textAlign | 文本对齐方式。有效值: left, right, center | string | 1.6.0 |
+--------------+-------------------------------------------+--------+----------+
marker 上的气泡 label
+--------------+-------------------------------------------+--------+----------+
| 属性 | 说明 | 类型 | 最低版本 |
+==============+===========================================+========+==========+
| content | 文本 | string | 1.2.0 |
+--------------+-------------------------------------------+--------+----------+
| color | 文本颜色 | string | 1.2.0 |
+--------------+-------------------------------------------+--------+----------+
| fontSize | 文字大小 | number | 1.2.0 |
+--------------+-------------------------------------------+--------+----------+
| x | label的坐标(废弃) | number | 1.2.0 |
+--------------+-------------------------------------------+--------+----------+
| y | label的坐标(废弃) | number | 1.2.0 |
+--------------+-------------------------------------------+--------+----------+
| anchorX | label的坐标,原点是 marker 对应的经纬度 | number | 2.1.0 |
+--------------+-------------------------------------------+--------+----------+
| anchorY | label的坐标,原点是 marker 对应的经纬度 | number | 2.1.0 |
+--------------+-------------------------------------------+--------+----------+
| borderWidth | 边框宽度 | number | 1.6.0 |
+--------------+-------------------------------------------+--------+----------+
| borderColor | 边框颜色 | string | 1.6.0 |
+--------------+-------------------------------------------+--------+----------+
| borderRadius | 边框圆角 | number | 1.6.0 |
+--------------+-------------------------------------------+--------+----------+
| bgColor | 背景色 | string | 1.6.0 |
+--------------+-------------------------------------------+--------+----------+
| padding | 文本边缘留白 | number | 1.6.0 |
+--------------+-------------------------------------------+--------+----------+
| textAlign | 文本对齐方式。有效值: left, right, center | string | 1.6.0 |
+--------------+-------------------------------------------+--------+----------+
polyline 指定一系列坐标点,从数组第一项连线至最后一项
+---------------+--------------+---------+------+--------------------------------------+----------+
| 属性 | 说明 | 类型 | 必填 | 备注 | 最低版本 |
+===============+==============+=========+======+======================================+==========+
| points | 经纬度数组 | array | 是 | [{latitude: 0, longitude: 0}] | |
+---------------+--------------+---------+------+--------------------------------------+----------+
| color | 线的颜色 | string | 否 | 十六进制 | |
+---------------+--------------+---------+------+--------------------------------------+----------+
| width | 线的宽度 | number | 否 | | |
+---------------+--------------+---------+------+--------------------------------------+----------+
| dottedLine | 是否虚线 | boolean | 否 | 默认 false | |
+---------------+--------------+---------+------+--------------------------------------+----------+
| arrowLine | 带箭头的线 | boolean | 否 | 默认 false,开发者工具暂不支持该属性 | 1.2.0 |
+---------------+--------------+---------+------+--------------------------------------+----------+
| arrowIconPath | 更换箭头图标 | string | 否 | 在 arrowLine 为 true 时生效 | 1.6.0 |
+---------------+--------------+---------+------+--------------------------------------+----------+
| borderColor | 线的边框颜色 | string | 否 | 1.2.0 | |
+---------------+--------------+---------+------+--------------------------------------+----------+
| borderWidth | 线的厚度 | number | 否 | 1.2.0 | |
+---------------+--------------+---------+------+--------------------------------------+----------+
polygon 指定一系列坐标点,根据 points 坐标数据生成闭合多边形
+-------------+-------------------+--------+------+-------------------------------+----------+
| 属性 | 说明 | 类型 | 必填 | 备注 | 最低版本 |
+=============+===================+========+======+===============================+==========+
| points | 经纬度数组 | array | 是 | [{latitude: 0, longitude: 0}] | 2.3.0 |
+-------------+-------------------+--------+------+-------------------------------+----------+
| strokeWidth | 描边的宽度 | number | 否 | | 2.3.0 |
+-------------+-------------------+--------+------+-------------------------------+----------+
| strokeColor | 描边的颜色 | string | 否 | 十六进制 | 2.3.0 |
+-------------+-------------------+--------+------+-------------------------------+----------+
| fillColor | 填充颜色 | string | 否 | 十六进制 | |
+-------------+-------------------+--------+------+-------------------------------+----------+
| zIndex | 设置多边形Z轴数值 | number | 否 | | 2.3.0 |
+-------------+-------------------+--------+------+-------------------------------+----------+
circle 在地图上显示圆
+-------------+------------+--------+------+-------------------------+
| 属性 | 说明 | 类型 | 必填 | 备注 |
+=============+============+========+======+=========================+
| latitude | 纬度 | number | 是 | 浮点数,范围 -90 ~ 90 |
+-------------+------------+--------+------+-------------------------+
| longitude | 经度 | number | 是 | 浮点数,范围 -180 ~ 180 |
+-------------+------------+--------+------+-------------------------+
| color | 描边的颜色 | string | 否 | 十六进制 |
+-------------+------------+--------+------+-------------------------+
| fillColor | 填充颜色 | string | 否 | 十六进制 |
+-------------+------------+--------+------+-------------------------+
| radius | 半径 | number | 是 | |
+-------------+------------+--------+------+-------------------------+
| strokeWidth | 描边的宽度 | number | 否 | |
+-------------+------------+--------+------+-------------------------+
control 在地图上显示控件,控件不随着地图移动。即将废弃,请使用 cover-view
+-----------+------------------+---------+------+-----------------------------------------------------------------------------------------+
| 属性 | 说明 | 类型 | 必填 | 备注 |
+===========+==================+=========+======+=========================================================================================+
| 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 |
+----------+--------------------------+--------+-----------------------------------------------------------+
| causedBy | 导致视野变化的原因 | string | 拖动地图导致(drag)、缩放导致(scale)、调用接口导致(update) |
+----------+--------------------------+--------+-----------------------------------------------------------+
.. tip:: 个性化地图暂不支持工具中调试。请先使用微信客户端进行测试。
.. tip:: 地图中的颜色值color/borderColor/bgColor等需使用6位(8位)十六进制表示,8位时后两位表示alpha值,如:#000000AA
.. tip:: 地图组件的经纬度必填, 如果不填经纬度则默认值是北京的经纬度。
.. tip:: map 组件使用的经纬度是火星坐标系,调用 wx.getLocation 接口需要指定 type 为 gcj02
.. tip:: 请注意原生组件使用限制。
示例代码
:download:`在开发者工具中预览效果 `
.. code:: html
.. code::
// map.js
Page({
data: {
markers: [{
iconPath: '/resources/others.png',
id: 0,
latitude: 23.099994,
longitude: 113.324520,
width: 50,
height: 50
}],
polyline: [{
points: [{
longitude: 113.3245211,
latitude: 23.10229
}, {
longitude: 113.324520,
latitude: 23.21229
}],
color: '#FF0000DD',
width: 2,
dottedLine: true
}],
controls: [{
id: 1,
iconPath: '/resources/location.png',
position: {
left: 0,
top: 300 - 50,
width: 50,
height: 50
},
clickable: true
}]
},
regionchange(e) {
console.log(e.type)
},
markertap(e) {
console.log(e.markerId)
},
controltap(e) {
console.log(e.controlId)
}
})