W3Cschool
恭喜您成為首批注冊用戶
獲得88經(jīng)驗值獎勵
該組件是地圖組件。同一個頁面需要展示多個 map 組件的話,需要使用不同的 ID 。map 組件是由客戶端創(chuàng)建的原生組件,原生組件的層級是最高的,所以頁面中的其他組件無論設(shè)置 z-index 為多少,都無法在原生組件之上。
相關(guān)API:my.createMapContext(mapId)
<view>
<map id="map" longitude="120.131441" latitude="30.279383" scale="{{scale}}" controls="{{controls}}"
onControlTap="controltap" markers="{{markers}}"
onMarkerTap="markertap"
polyline="{{polyline}}"
circles="{{circles}}"
panels="{{panels}}"
onRegionChange="regionchange"
onTap="tap"
onPanelTap="onPanelTap"
show-location style="width: 100%; height: 300px;"
include-points="{{includePoints}}"></map>
<button onTap="changeScale">改scale</button>
<button onTap="getCenterLocation">getCenterLocation</button>
<button onTap="moveToLocation">moveToLocation</button>
<button onTap="changeCenter">改center</button>
<button onTap="changeMarkers">改markers</button>
</view>
Page({
data: {
scale: 14,
longitude: 120.131441,
latitude: 30.279383,
markers: [{
iconPath: "/image/green_tri.png",
id: 10,
latitude: 30.279383,
longitude: 120.131441,
width: 50,
height: 50
},{
iconPath: "/image/green_tri.png",
id: 11,
latitude: 30.279383,
longitude: 120.131441,
width: 50,
height: 50,
customCallout: {
type: 1,
time: '1',
},
fixedPoint:{
originX: 400,
originY: 400,
},
iconAppendStr: '黃龍時代廣場黃龍時代廣場黃龍時代廣場黃龍時代廣場test'
}],
includePoints: [{
latitude: 30.279383,
longitude: 120.131441,
}],
polyline: [{
points: [{
longitude: 120.131441,
latitude: 30.279383
}, {
longitude: 120.128821,
latitude: 30.278200
}, {
longitude: 120.131618,
latitude: 30.277600
}, {
longitude: 120.132520,
latitude: 30.279393
}, {
longitude: 120.137517,
latitude: 30.279383
}],
color: "#FF0000DD",
width: 5,
dottedLine: false
}],
circles: [{
latitude: 30.279383,
longitude: 120.131441,
color: "#000000AA",
fillColor: "#000000AA",
radius: 80,
strokeWidth: 5,
}],
controls: [{
id: 5,
iconPath: '../../resources/pic/2.jpg',
position: {
left: 0,
top: 300 - 50,
width: 50,
height: 50
},
clickable: true
}],
panels:[{
id:6,
// 布局參考 map 高級定制渲染
layout: {
params:{
title:"標題欄",
bgColor:"#DC143C"
},
src:"/layout/map_callout.xml"
},
position: {
left: 0,
bottom: 0,
width: 200,
height: 84
},
}],
},
onReady(e) {
// 使用 my.createMapContext 獲取 map 上下文
this.mapCtx = my.createMapContext('map')
},
getCenterLocation() {
this.mapCtx.getCenterLocation(function (res) {
console.log(res.longitude)
console.log(res.latitude)
})
},
moveToLocation() {
this.mapCtx.moveToLocation()
},
regionchange(e) {
console.log('regionchange', e);
// 注意:如果縮小或者放大了地圖比例尺以后,請在 onRegionChange 函數(shù)中重新設(shè)置 data 的
// scale 值,否則會出現(xiàn)拖動地圖區(qū)域后,重新加載導(dǎo)致地圖比例尺又變回縮放前的大小。
if (e.type === 'end') {
this.setData({
scale: e.scale
});
}
},
markertap(e) {
console.log('marker tap', e);
},
controltap(e) {
console.log('control tap', e);
},
tap() {
console.log('tap:');
},
onPanelTap(e) {
console.log('paneltap:', e);
},
changeScale() {
this.setData({
scale: 8,
});
},
changeCenter() {
this.setData({
longitude: 113.324520,
latitude: 23.199994,
includePoints: [{
latitude: 23.199994,
longitude: 113.324520,
}],
});
},
//支持地圖不接受手勢事件, isGestureEnable為1 表示支持,為0表示不支持
gestureEnable() {
this.mapCtx.gestureEnable({isGestureEnable:1});
},
//地圖是否顯示比例尺, showsScale 為1表示顯示,為0表示不顯示
showsScale() {
this.mapCtx.showsScale({isShowsScale:1});
},
//地圖是否顯示指南針, showsCompass 為1表示顯示,為0表示不顯示
showsCompass() {
this.mapCtx.showsCompass({isShowsCompass:1});
},
changeMarkers() {
this.setData({
markers: [{
iconPath: "/image/green_tri.png",
id: 10,
latitude: 21.21229,
longitude: 113.324520,
width: 50,
height: 50
}],
includePoints: [{
latitude: 21.21229,
longitude: 113.324520,
}],
});
},
})
屬性 | 類型 | 默認值 | 說明 | 最低版本 |
---|---|---|---|---|
style | String | - | 內(nèi)聯(lián)樣式 。 | - |
class | String | - | 樣式名 。 | - |
latitude | Number | - | 中心緯度。 | 1.10.0 |
longitude | Number | - | 中心經(jīng)度。 | 1.10.0 |
scale | Number | 16 | 縮放級別,取值范圍為 5-18 。 | 1.10.0 |
skew | Number | 0 | 傾斜角度,范圍 0 ~ 40 , 關(guān)于 z 軸的傾角 | 1.20.0 |
rotate | Number | 0 | 傾斜角度,范圍 0 ~ 40 , 關(guān)于 z 軸的傾角 | 1.20.0 |
markers | Array | - | 覆蓋物,在地圖上的一個點繪制圖標。 | 1.10.0 |
polyline | Array | - | 覆蓋物,多個連貫點的集合(路線)。 | 1.10.0 |
circles | Array | - | 覆蓋物,圓。 | 1.10.0 |
controls | Array | - | 在地圖 View 之上的一個控件。 | 1.10.0 |
polygon | Array | - | 覆蓋物,多邊形。 | 1.10.0 |
show-location | Boolean | - | 是否顯示帶有方向的當(dāng)前定位點。 | 1.10.0 |
include-points | Array | - | 視野將進行小范圍延伸包含傳入的坐標。[{ latitude: 30.279383, longitude: 120.131441, }] |
1.10.0 |
include-padding | Object | - | 視野在地圖 padding 范圍內(nèi)展示。{ left:0, right:0, top:0, bottom:0 } |
1.11.0 |
ground-overlays | Array | - | 覆蓋物,自定義貼圖。[{ // 右上,左下 'include-points':[{ latitude: 39.935029, longitude: 116.384377, },{ latitude: 39.939577, longitude: 116.388331, }], image:'/image/overlay.png', alpha:0.25, zIndex:1 }] |
1.11.0 |
tile-overlay | Object | - | 覆蓋物,網(wǎng)格貼圖。{ url:'http://xxx', type:0, // url類型 tileWidth:256, tileHeight:256, zIndex:1, } |
1.11.0 |
custom-map-style | String | - | 設(shè)置地圖樣式。 default:默認樣式light:精簡樣式 | 1.20.0 |
panels | Array | - | 基于 map 高級定制渲染,設(shè)置覆蓋在地圖上的 view | 1.23.0 |
setting | Object | - | 設(shè)置。{ // 手勢 gestureEnable: 1, // 比例尺 showScale: 1, // 指南針 showCompass: 1, //雙手下滑 tiltGesturesEnabled: 1, // 交通路況展示 trafficEnabled: 0, // 地圖 POI 信息 showMapText: 0, // 高德地圖 logo 位置 logoPosition: { centerX: 150, centerY: 90 } } |
- |
onMarkerTap | EventHandle | - | 點擊 Marker 時觸發(fā)。{ markerId, latitude, longitude, } |
1.10.0 |
onCalloutTap | EventHandle | - | 點擊 Marker 對應(yīng)的 callout 時觸發(fā)。{ markerId, latitude, longitude, } |
1.10.0 |
onControlTap | EventHandle | - | 點擊 control 時觸發(fā)。{ controlId } |
1.10.0 |
onRegionChange | EventHandle | - | 視野發(fā)生變化時觸發(fā)。{ type: "begin/end", latitude, longitude, scale } |
1.10.0 |
onTap | EventHandle | - | 點擊地圖時觸發(fā)。{ latitude, longitude, } |
1.10.0 |
onPanelTap | EventHandle | - | 點擊 panel 時觸發(fā){ panelId, layoutId,} |
1.23.0 |
標記點,用于在地圖上顯示標記的位置。
注意:
屬性 | 說明 | 類型 | 必填 | 備注 | 最低版本 |
---|---|---|---|---|---|
id | 標記點 id | Number | 否 | 標記點 id,點擊事件回調(diào)會返回此 id。 | - |
latitude | 緯度 | Float | 是 | 范圍 -90 ~ 90。 | - |
longitude | 經(jīng)度 | Float | 是 | 范圍 -180 ~ 180。 | - |
title | 標注點名 | String | 否 | - | - |
iconPath | 顯示的圖標 | String | 是 | 項目目錄下的圖片路徑,不能用相對路徑只能用 / 開頭的絕對路徑。示例:/pages/image/test.jpg | - |
iconLayout | Object | map 高級定制渲染繪制 marker 樣式 | 否 | 優(yōu)先級高于 iconPath, 對象參照 layout。 | 1.23.0 |
rotate | 旋轉(zhuǎn)角度 | Number | 否 | 順時針旋轉(zhuǎn)的角度,范圍 0 ~ 360,默認為 0。 | - |
alpha | 標注的透明度 | Number | 否 | 是否透明,默認為 1。 | - |
width | 標注圖標寬度 | Number | 否 | 默認為圖片的實際寬度。 | - |
height | 標注圖標高度 | Number | 否 | 默認為圖片的實際高度。 | - |
displayRanges | Array | 標明在特定地圖縮放級別下展示 | 否 | 默認所有級別下都展示;指定只在特定級別范圍展示:[{ "from": 10, "to": 15 }] |
1.23.0 |
callout | 自定義標記點上方的氣泡窗口 | Object | 否 | marker 上的氣泡,地圖上最多同時展示一個,綁定 onCalloutTap。{ content:"xxx" } |
- |
anchorX | 經(jīng)緯度在標注圖標的錨點-橫向值 | Double | 否 | 這兩個值需要成對出現(xiàn),anchorX 表示橫向(0-1),Y 表示豎向(0-1),anchorX:0.5,anchorY:1表示底邊中點。 | - |
anchorY | 經(jīng)緯度在標注圖標的錨點-豎向值 | Double | 否 | - | |
customCallout | callout 背景自定義目前只支持高德地圖 style | Object | 否 | { "type": 2, "descList": [{ "desc": "預(yù)計", "descColor": "#333333" }, { "desc": "5分鐘", "descColor": "#108EE9" }, { "desc": "到達", "descColor": "#333333" }], "isShow": 1 } |
- |
iconAppendStr | marker 圖片可以來源于 View | String | 否 | 和 iconPath 一起使用,會將 iconPath 對應(yīng)的圖片及該字符串共同生成一個圖片,當(dāng)成 marker 的圖標。 | - |
iconAppendStrColor | marker 圖片可以來源于 View,底部描述文本顏色 | String | 否 | 默認是:#33B276。 | - |
fixedPoint | 基于屏幕位置扎點 | Object | 否 | 基于屏幕位置扎點。{ //距離地圖左上角的像素數(shù),Number originX:100, originY:100 } |
- |
markerLevel | marker 在地圖上的繪制層級 | Number | 否 | 與地圖上其他覆蓋物統(tǒng)一的 Z 坐標系。 | 1.10.0 |
label | marker 上的氣泡 | Object | 否 | marker 上的氣泡,地圖上可同時展示多個,綁定 onMarkerTap。{ content:"Hello Label", color:"#000000", fontSize:12, borderRadius:"3", bgColor:"#ffffff", padding:5, } |
1.12.0 |
style | 自定義 marker 樣式 | Object | 否 | 自定義 marker 的樣式和內(nèi)容。 | 1.11.0 |
![]() |
用于構(gòu)造多邊形對象。
屬性 | 說明 | 類型 | 必填 | 備注 | 最低版本 |
---|---|---|---|---|---|
points | 經(jīng)緯度數(shù)組 | Array | 是 | [{ latitude: 0, longitude: 0 }] |
1.10.0 |
color | 線的顏色 | String | 否 | 用 8 位十六進制表示,后兩位表示 alpha 值,如:#eeeeeeAA。 | 1.10.0 |
fillColor | 填充色 | String | 否 | 用 8 位十六進制表示,后兩位表示 alpha 值,如:#eeeeeeAA。 | 1.10.0 |
width | 線的寬度 | Number | 否 | - | 1.10.0 |
displayRanges | 標明在特定地圖縮放級別下展示 | Array | 否 | 默認所有級別下都展示;指定只在特定級別范圍展示:[{ "from": 12, "to": 17 }] |
1.23.0 |
用于指定一系列坐標點,從數(shù)組第一項連線至最后一項。
屬性 | 說明 | 類型 | 必填 | 備注 | 最低版本 |
---|---|---|---|---|---|
points | 經(jīng)緯度數(shù)組 | Array | 是 | [{ latitude: 0, longitude: 0 }] |
- |
color | 線的顏色 | String | 否 | 用 8 位十六進制表示,后兩位表示 alpha 值,如:#eeeeeeAA。 | - |
width | 線的寬度 | Number | 否 | - | - |
dottedLine | 是否虛線 | Boolean | 否 | 默認 false。 | - |
iconWidth | 使用紋理時的寬度 | Number | 否 | - | 1.11.0 |
zIndex | 覆蓋物的 Z 軸坐標 | Number | - | - | 1.11.0 |
iconPath | 紋理 | String | - | 項目目錄下的圖片路徑,可以用相對路徑寫法,以'/'開頭則表示相對小程序根目錄, 如果有 iconPath,會忽略 color。但是 iconPath 可以和 colorList 聯(lián)合使用,這樣紋理會浮在彩虹線上方,為避免覆蓋彩虹線,紋理圖片背景色可以設(shè)置透明。 | 1.11.0 |
colorList | 彩虹線 | Array | - | 彩虹線,分段依據(jù) points。例如 points 有5個點,那么 colorList 就應(yīng)該傳 4 個顏色值,依此類推。如果 colorList 數(shù)量小于4,那么剩下的線路顏色和最后一個顏色一樣。[ "#AAAAAA", "#BBBBBB" ] |
1.12.0 |
用于在地圖上顯示圓。
屬性 | 說明 | 類型 | 必填 | 備注 | 最低版本 |
---|---|---|---|---|---|
latitude | 緯度 | Float | 是 | 范圍 -90 ~ 90。 | 1.10.0 |
longitude | 經(jīng)度 | Float | 是 | 范圍 -180 ~ 180。 | 1.10.0 |
color | 描邊的顏色 | String | 否 | 用 8 位十六進制表示,后兩位表示 alpha 值,如:#eeeeeeAA。 | 1.10.0 |
fillColor | 填充顏色 | String | 否 | 用 8 位十六進制表示,后兩位表示 alpha 值,如:#eeeeeeAA。 | 1.10.0 |
radius | 半徑(米) | Number | 是 | - | 1.10.0 |
strokeWidth | 描邊的寬度 | Number | 否 | - | 1.10.0 |
用于在地圖上顯示控件,控件不隨著地圖移動。
屬性 | 說明 | 類型 | 必填 | 備注 | 最低版本 |
---|---|---|---|---|---|
id | 控件id | Number | 否 | 控件 id,點擊事件回調(diào)會返回此 id。 | 1.10.0 |
position | 控件在地圖的位置 | Object | 是 | 相對地圖位置。 | 1.10.0 |
iconPath | 顯示的圖標 | String | 是 | 項目目錄下的圖片路徑,可以用相對路徑寫法,以'/'開頭則表示相對小程序根目錄。 | 1.10.0 |
clickable | 是否可點擊 | Boolean | 否 | 默認為 false。 | 1.10.0 |
控件在地圖的位置,以及控件的大小。
屬性 | 說明 | 類型 | 必填 | 備注 |
---|---|---|---|---|
left | 距離地圖的左邊界多遠 | Number | 否 | 默認為0 |
top | 距離地圖的上邊界多遠 | Number | 否 | 默認為0 |
width | 控件寬度 | Number | 否 | 默認為圖片寬度 |
height | 控件高度 | Number | 否 | 默認為圖片高度 |
自定義標記點上方的氣泡窗口。
屬性 | 說明 | 類型 | 必填 | 備注 |
---|---|---|---|---|
content | 內(nèi)容 | String | 否 | 默認為空(null) |
自定義 callout 背景。
屬性名 | 說明 | 類型 | 必填 | 備注 |
---|---|---|---|---|
type | 樣式類型 | Number | 是 | 0 為黑色 style,1 為白色 style,2 為背景+文本,見下圖。 |
time | 時間 | String | 是 | 時間值。 |
descList | 描述數(shù)組 | Array | 是 | 描述數(shù)組。{ "type": 0, "time": "3", "descList": [{ "desc": "點擊立即打車", "descColor": "#ffffff" }], "isShow": 1 } |
layout | 使用 map 高級定制渲染 | Object | 否 | 優(yōu)先級最高, layout 對象參照 layout 定義 |
基于屏幕位置的扎點。
屬性 | 說明 | 類型 | 必填 | 備注 |
---|---|---|---|---|
originX | 橫向像素點 | Number | 是 | 距離地圖左上角的像素數(shù)值,從 0 開始。 |
originY | 縱向像素點 | Number | 是 | 距離地圖左上角的像素數(shù)值,從 0 開始。 |
地圖組件的經(jīng)緯度是必需設(shè)置的, 若未設(shè)置經(jīng)緯度,則默認是北京的經(jīng)緯度。
結(jié)構(gòu) | 圖片示例 | 最低版本 |
---|---|---|
{ type:1, text1:"Style1", icon1:'xxx', icon2:'xxx' } |
![]() |
1.11.0 |
{ type:2, text1:"Style2", icon1:'xxx', icon2:'xxx' } |
![]() |
1.12.0 |
{ type:3, icon:xxx, //選填 text:xxx, //必填 color:xxx, //默認#33B276 bgColor:xxx, //默認#FFFFFF gravity:"left/center/right", //默認 center fontType:"small/standard/large" //默認standard } |
1.13.0 |
結(jié)構(gòu) | 圖片示例 | 最低版本 |
---|---|---|
{ "type": 0, "time": "3", "descList": [{ "desc": "點擊立即打車", "descColor": "#ffffff" }], "isShow": 1 } |
![]() |
1.10.0 |
{ "type": 1, "time": "3", "descList": [{ "desc": "點擊立即打車", "descColor": "#333333" }], "isShow": 1 } |
![]() |
1.10.0 |
{ "type": 2, "descList": [{ "desc": "預(yù)計", "descColor": "#333333" }, { "desc": "5分鐘", "descColor": "#108EE9" }, { "desc": "到達", "descColor": "#333333" }], "isShow": 1 } |
![]() |
1.10.0 |
屬性 | 必填 | 備注 |
---|---|---|
content | 是 | - |
color | 否 | 默認"#000000" |
fontsize | 否 | 默認14 |
borderRadius | 否 | 默認20 |
bgColor | 否 | 默認"#FFFFFF" |
padding | 否 | 默認10 |
結(jié)構(gòu) | 圖鑒 | 最低版本 |
---|---|---|
{ content:"Hello Label", color:"#000000", fontSize:16, borderRadius:"5", bgColor:"#ffffff", padding:12, } |
![]() |
10.1.38 |
錯誤碼信息請參見:
可使用 my.openLocation。
optimize 屬性設(shè)置了 true 后,如果需要獲取 scale 值,必須要使用 onRegionChange。
目前不支持。
可以使用 polygon 進行繪制。
不支持。
目前不支持更改。
Copyright©2021 w3cschool編程獅|閩ICP備15016281號-3|閩公網(wǎng)安備35020302033924號
違法和不良信息舉報電話:173-0602-2364|舉報郵箱:jubao@eeedong.com
掃描二維碼
下載編程獅App
編程獅公眾號
聯(lián)系方式:
更多建議: