移动应用中地图是必不可缺的内容,通过地图我们可以很直观地表现出地理信息,为此小程序提供了组件和定位相关的API,在给出其属性值之前,我们先用代码来测试以及看一看它的效果:
示例代码如下:
Page({
data:{
latitude:30.5491861989,
longitude:104.0680165911,
scale:5,
//设置标记点
markers:[
{iconPath:"../../images/flag.ico",id:0,latitude:30.5491861989,longitude:104.0680165911,width:30,height:30},
{iconPath:"../../images/flag.ico",id:1,latitude:30.5468852218,longitude:104.056858833,width:30,height:30}
],
//设置路线
polyline:[{
//按顺序设置点
points:[
{longitude:104.0680165911,latitude:30.5491861989},
{longitude:104.0687752749,latitude:30.5493485980},
{longitude:104.0688698344,latitude:30.5470634483},
{longitude:104.0568588833,latitude:30.5468832218}
],
color:"#000ffDD",
width:2,
dottedLine:true
}],
//设置2个图标
controls:[{
id:1,iconPath:'../../images/location.ico',
position:{left:0,top:250,width:30,height:30},
clickable:true
}]
},
//地图发生变化时触发
regionchange(e){
//type可以区分是开始拖动还是结束拖动
console.log(e.type)
},
//标记点点击时触发
markertap(e){
//根据标记点markId区分
console.log(e.markerId)
},
//点击control设置的图标
controltap(e){
//通过MarkId区分按钮
console.log(e.controlId)
}
})
执行结果如下:
属性名 | 类型 | 默认值 | 说明 | 最低版本 |
---|---|---|---|---|
longitude | Number | 中心经度 | ||
latitude | Number | 中心纬度 | ||
scale | Number | 16 | 缩放级别,取值范围为5-18 | |
markers | Array | 标记点 | ||
covers | Array | 即将移除,请使用 markers | ||
polyline | Array | 路线 | ||
polygons | Array | 多边形 | 2.3.0 | |
circles | Array | 圆 | ||
controls | Array | 控件(即将废弃,建议使用 cover-view 代替) | ||
include-points | Array | 缩放视野以包含所有给定的坐标点 | ||
show-location | Boolean | 显示带有方向的当前定位点 | ||
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 |
bindmarkertap | EventHandle | 点击标记点时触发,会返回marker的id | ||
bindcallouttap | EventHandle | 点击标记点对应的气泡时触发,会返回marker的id | 1.2.0 | |
bindcontroltap | EventHandle | 点击控件时触发,会返回control的id | ||
bindregionchange | EventHandle | 视野发生变化时触发 | 2.3.0起增加causedBy |
|
bindtap | EventHandle | 点击地图时触发 | ||
bindupdated | EventHandle | 在地图渲染更新完成时触发 | 1.6.0 | |
bindpoitap | EventHandle | 点击地图poi点时触发 | 2.3.0 |
注意: covers 属性即将移除,请使用 markers 替代
markers
标记点用于在地图上显示标记的位置
属性 | 说明 | 类型 | 必填 | 备注 | 最低版本 |
---|---|---|---|---|---|
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 | 否 | 默认为图片实际宽度,单位px(2.4.0起支持rpx) | |
height | 标注图标高度 | Number / String | 否 | 默认为图片实际高度,单位px(2.4.0起支持rpx) | |
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 / String | 1.2.0 |
borderRadius | 边框圆角 | Number / String | 1.2.0 |
borderWidth | 边框宽度 | Number / String | 2.3.0 |
borderColor | 边框颜色 | String | 2.3.0 |
bgColor | 背景色 | String | 1.2.0 |
padding | 文本边缘留白 | Number / String | 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 / String | 1.2.0 |
x | label的坐标(废弃) | Number | 1.2.0 |
y | label的坐标(废弃) | Number | 1.2.0 |
anchorX | label的坐标,原点是 marker 对应的经纬度 | Number / String | 2.1.0 |
anchorY | label的坐标,原点是 marker 对应的经纬度 | Number / String | 2.1.0 |
borderWidth | 边框宽度 | Number / String | 1.6.0 |
borderColor | 边框颜色 | String | 1.6.0 |
borderRadius | 边框圆角 | Number / String | 1.6.0 |
bgColor | 背景色 | String | 1.6.0 |
padding | 文本边缘留白 | Number / String | 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 |
polygons
指定一系列坐标点,根据 points 坐标数据生成闭合多边形,最低版本2.3.0
属性 | 说明 | 类型 | 必填 | 备注 | 最低版本 |
---|---|---|---|---|---|
points | 经纬度数组 | Array | 是 | [{latitude: 0, longitude: 0}] | |
strokeWidth | 描边的宽度 | Number | 否 | ||
strokeColor | 描边的颜色 | String | 否 | 十六进制 | |
fillColor | 填充颜色 | String | 否 | 十六进制 | |
zIndex | 设置多边形Z轴数值 | Number | 否 |
circles
在地图上显示圆
属性 | 说明 | 类型 | 必填 | 备注 |
---|---|---|---|---|
latitude | 纬度 | Number | 是 | 浮点数,范围 -90 ~ 90 |
longitude | 经度 | Number | 是 | 浮点数,范围 -180 ~ 180 |
color | 描边的颜色 | String | 否 | 十六进制 |
fillColor | 填充颜色 | String | 否 | 十六进制 |
radius | 半径 | Number | 是 | |
strokeWidth | 描边的宽度 | Number | 否 |
controls
在地图上显示控件,控件不随着地图移动。即将废弃,请使用 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) |
地图组件的经纬度必填, 如果不填经纬度则默认值是北京的经纬度。
具体内容请参考微信官方文档:https://developers.weixin.qq.com/miniprogram/dev/component/map.html