地图

map

解释: 地图

属性说明:
属性名类型默认值说明最低版本
longitudeNumber-中心经度-
latitudeNumber-中心纬度-
scaleNumber16缩放级别,取值范围为4-21-
markersArray-标记点-
polylineArray-路线-
polygonsArray-多边形(工具暂不支持)2.0.13
circlesArray--
controlsArray-控件-
include-pointsArray-缩放视野以包含所有给定的坐标点-
show-locationBoolean-显示带有方向的当前定位点-
enable-3DBooleanfalse显示3D楼块(工具暂不支持)2.0.13
show-compassBooleanfalse显示指南针(工具暂不支持)2.0.13
enable-overlookingBooleanfalse开启俯视(工具暂不支持)2.0.13
enable-zoomBooleantrue是否支持缩放(工具暂不支持)2.0.13
enable-scrollBooleantrue是否支持拖动(工具暂不支持)2.0.13
enable-rotateBooleanfalse是否支持旋转(工具暂不支持)2.0.13
bindmarkertapEventHandle-点击标记点时触发-
bindcallouttapEventHandle-点击标记点对应的气泡时触发-
bindcontroltapEventHandle-点击控件时触发-
bindregionchangeEventHandle-视野发生变化时触发-
bindtapEventHandle-点击地图时触发-
bindupdatedEventHandle-在地图渲染更新完成时触发-

markers

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

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

callout

属性说明:
属性名说明类型
content文本String
color文本颜色String
fontSize文字大小Number
borderRadiuscallout边框圆角Number
bgColor背景色String
padding文本边缘留白Number
display‘BYCLICK’:点击显示; ‘ALWAYS’:常显String
textAlign文本对齐方式。有效值: left, right, centerString
#### label 属性说明:
属性名说明类型
content文本String
color文本颜色String
fontSize文字大小Number
xlabel的坐标,原点是 marker 对应的经纬度Number
ylabel的坐标,原点是 marker 对应的经纬度Number
borderWidth边框宽度Number
borderColor边框颜色String
borderRadius边框圆角Number
bgColor背景色String
padding文本边缘留白Number
textAlign文本对齐方式。有效值: left, right, centerString

polyline

解释:指定一系列坐标点,从数组第一项连线至最后一项

属性说明:
属性名说明类型必填备注
points经纬度数组Array[{latitude: 0, longitude: 0}]
color线的颜色String8位十六进制表示,后两位表示alpha值,如:#000000AA
width线的宽度Number-
dottedLine是否虚线Boolean默认false
arrowLine带箭头的线Boolean默认false,开发者工具暂不支持该属性
arrowIconPath更换箭头图标String在arrowLine为true时生效
borderColor线的边框颜色String-
borderWidth线的厚度Number

circles

解释:在地图上显示圆

属性说明:
属性名说明类型必填备注
latitude纬度Number浮点数,范围 -90 ~ 90
longitude经度Number浮点数,范围 -180 ~ 180
color描边的颜色String8位十六进制表示,后两位表示alpha值,如:#000000AA
fillColor填充颜色String8位十六进制表示,后两位表示alpha值,如:#000000AA
radius半径Number-
strokeWidth描边的宽度Number

controls

解释:在地图上显示控件,控件不随着地图移动

属性说明:
属性名说明类型必填备注
id控件idNumber在控件点击事件回调会返回此id
position控件在地图的位置Object控件相对地图位置
iconPath显示的图标String项目目录下的图片路径,支持相对路径写法,以’/‘开头则表示相对智能小程序根目录;也支持临时路径
clickable是否可点击Boolean默认不可点击

position

属性说明:

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

地图组件的经纬度必填, 如果不填经纬度则默认值是北京的经纬度。

示例在开发者工具中预览效果

  1. <!-- map.swan -->
    <map id="myMap"
    style="width: 100%"
    scale="{{scale}}"
    longitude="{{longitude}}"
    latitude="{{latitude}}"
    markers="{{markers}}"
    position="{{position}}"
    showLocation="{{showLocation}}"
    polyline="{{polyline}}"
    controls="{{controls}}"
    circles="{{circles}}"
    bindmarkertap="onMarkertap" bindcallouttap="onCallouttap" bindcontroltap="onControltap" bindregionchange="onRegionchange" bindtap="onTap" bindupdated="onUpdated"></map>

  1. Page({
    data: {
    scale: 16,
    latitude: '40.048828',
    longitude: '116.280412',
    markers: [{
    markerId: '1',
    latitude: '40.052751',
    longitude: '116.278796'
    }, {
    markerId: '2',
    latitude: '40.048828',
    longitude: '116.280412',
    callout: {
    display: 'ALWAYS',
    content: '百度科技园'
    }
    }, {
    markerId: '3',
    latitude: '40.049655',
    longitude: '116.27505',
    callout: {
    display: 'ALWAYS',
    content: '西山壹号院'
    }
    }],
    showLocation: '1',
    polyline: [{
    points: [{
    longitude: 116.278796,
    latitude: 40.048828
    }, {
    longitude: 116.27505,
    latitude: 40.049655
    }],
    color: '#FF5F41FF',
    width: 2,
    dottedLine: true
    }],
    controls: [{
    controlId: 1,
    iconPath: '/images/api_logo.png',
    position: {
    left: 0,
    top: 100,
    width: 50,
    height: 50
    },
    clickable: true
    }],
    circles: [{
    latitude: '40.052751',
    longitude: '116.278796',
    color: '#FF5F41FF',
    fillColor: '#21FFFFFF',
    radius: '200',
    strokeWidth: '2'
    }]
    },
    onReady() {
    console.log('map ready');
    this.mapContext = swan.createMapContext('myMap');
    },
    onMarkertap(e) {
    console.log('onMarkertap callback:');
    console.log(e);
    },
    onCallouttap(e) {
    console.log('onCallouttap callback:');
    console.log(e);
    },
    onControltap(e) {
    console.log('onControltap callback:');
    console.log(e);
    },
    onRegionchange(e) {
    console.log('onRegionchange callback:');
    console.log(e);
    },
    onTap(e) {
    console.log('onTap callback:');
    console.log(e);
    },
    onUpdated(e) {
    console.log('onUpdated callback::');
    console.log(e);
    }
    })

说明:

  • map 组件是由客户端创建的原生组件,它的层级是最高的,不能通过 z-index 控制层级;
  • 请勿在 scroll-view、swiper、picker-view、movable-view 中使用 map 组件;
  • CSS 动画对 map 组件无效。

媒体组件画布