支付寶小程序地圖組件 地圖·map高級定制渲染

2020-09-18 11:12 更新

高級定制渲染是地圖組件的能力擴展,使小程序地圖具備動態(tài)定制地圖覆蓋物渲染布局的能力。

注意:IDE 模擬器暫不支持調(diào)試,請在真機進行相關(guān)調(diào)試。

Tips

  • 定制渲染的 XML 布局文件支持編寫模板參數(shù),標準是“${參數(shù)名稱}”,在設(shè)置 layout 時可以通過傳遞 params 參數(shù),地圖渲染時會根據(jù)傳遞的模板參數(shù)動態(tài)渲染。

  • 引用的 AXML 文件要放在小程序根目錄下,不能放在 pages 目錄下,否則顯示不出來。

  • 布局的 XML 文件默認會被 IDE 打包工具忽略,需要在根目錄 mini.project.json 配置規(guī)則里將 xml 打到小程序中。

  {
     "include":["*/*.xml"] // 配置包含 xml
  }

相關(guān)組件:map 地圖

使用說明

高級定制渲染組件的詳細能力描述如下:

  • 針對 marker 的 icon 圖標和 customCallout 氣泡進行定制渲染。
  • 針對 marker 的 icon 圖標進行的定制渲染布局不支持點擊事件。
  • 針對 marker 的 customCallout 氣泡進行定制渲染的布局提供點擊事件響應(yīng)能力。在 calloutTap 事件響應(yīng)點擊事件,此時 data 數(shù)據(jù)字段會多一個 layoutId 標識事件點擊目標,layoutId 即為定制渲染布局中的被點擊組件的 ID。
  • 以下為渲染前與渲染相對布局后對比圖

imageimage

示例代碼

布局示例

相對布局

<!--.xml--><box>
    <image width='60' height='60' src='https://gw.alipayobjects.com/mdn/rms_a8e3ca/afts/img/A*1NvpQqfbis8AAAAAAAAAAABkARQnAQ'/>
    <text text='X1' color='#FFFFFF' font-size='8' background-color='#FF0000' 
        border-radius='6' padding-left='3' padding-right='3' right='0'/>
</box>

效果示例

image

水平布局

<!--.xml--><box layout='horizontal'>
    <text id='test1' clickable='true' text='測試1' padding-left='8' padding-right='8' 
        font-size='16' border-radius='6' background-color='#FF0000'/>
    <text id='test2' clickable='true' text='測試2' padding-left='8' padding-right='8' 
        font-size='16' border-radius='6' background-color='#FF0000'/>
</box>

效果示例

image

垂直布局

<!--.xml--><box layout='vertical'>
    <text id='test1' clickable='true' text='測試1' padding-left='8' padding-right='8' 
        font-size='16' border-radius='6' background-color='#FF0000'/>
    <text id='test2' clickable='true' text='測試2' padding-left='8' padding-right='8' 
        font-size='16' border-radius='6' background-color='#FF0000'/>
</box>

效果示例

image

復(fù)雜布局

<!--.xml--><box layout='vertical'>
  <text text='標題欄' font-size='16' color='#FFFFFF'/>
  <box layout='horizontal'>
    <text id='dh' clickable='true' text='導(dǎo)航' color='#FFFFFF' 
          padding-left='8' padding-right='8' font-size='16' 
          border-radius='6' background-color='#1591CF'/>
    <text id='xc' clickable='true' text='相冊' color='#FFFFFF' 
          padding-left='8' padding-right='8' font-size='16' 
          border-radius='6' background-color='#1591CF'/>
    <text id='wxt' clickable='true' text='衛(wèi)星圖' color='#FFFFFF' 
          padding-left='8' padding-right='8' font-size='16'
          border-radius='6' background-color='#1591CF'/>
  </box>
</box>

效果示例

image

調(diào)用示例

<!-- layout/marker_icon.xml-->
<box>
    <image width='60' height='60' src='https://gw.alipayobjects.com/mdn/rms_a8e3ca/afts/img/A*1NvpQqfbis8AAAAAAAAAAABkARQnAQ'/>
    <text text='X${count}' color='#FFFFFF' font-size='8' background-color='#FF0000' 
        border-radius='6' padding-left='3' padding-right='3' right='0'/>
</box>
<!-- layout/marker_customcallout.xml-->
<box layout='vertical' background-color='${bgColor}'>
  <text text='${title}' font-size='16' color='#FFFFFF'/>
  <box layout='horizontal'>
    <text id='dh' clickable='true' text='導(dǎo)航' color='#FFFFFF' 
          padding-left='8' padding-right='8' font-size='16' 
          border-radius='6' background-color='#1591CF'/>
    <text id='xc' clickable='true' text='相冊' color='#FFFFFF' 
          padding-left='8' padding-right='8' font-size='16' 
          border-radius='6' background-color='#1591CF'/>
    <text id='wxt' clickable='true' text='衛(wèi)星圖' color='#FFFFFF' 
          padding-left='8' padding-right='8' font-size='16'
          border-radius='6' background-color='#1591CF'/>
  </box>
</box>
// marker數(shù)據(jù)const markers=[{
    id: 5,
    latitude: 30.275052,
    longitude: 120.140716,
    width: 60,
    height: 60,
    iconLayout:{
      params:{
        count:"1"
      },
      src:"/layout/marker_icon.xml"
    },
    customCallout:{
      canShowOnTap:true,
      layout:{
        params:{
          title:"標題欄",
          bgColor:'#FF00FF'
        },
        src:"/layout/marker_customcallout.xml"
      },
      layoutBubble:{
        style:"bubble",
        bgColor:"#898986",
        borderRadius:0,
        padding:16
      }
    }
 }];

通用屬性

下面所呈列的所有屬性均適用于高級定制渲染組件。

屬性名 類型 默認值 描述 支持版本
id String - 元素標識。說明:不要設(shè)置為 0,否則會出現(xiàn)獲取為空現(xiàn)象。 支付寶10.1.92 基礎(chǔ)庫1.23.0
width Number - 元素的寬度 支付寶10.1.92 基礎(chǔ)庫1.23.0
height Number - 元素的高度 支付寶10.1.92 基礎(chǔ)庫1.23.0
left Number 0 元素的左側(cè)外邊距 支付寶10.1.92 基礎(chǔ)庫1.23.0
top Number 0 元素上方的外邊距 支付寶10.1.92 基礎(chǔ)庫1.23.0
right Number - 元素的右側(cè)外邊距 支付寶10.1.92 基礎(chǔ)庫1.23.0
bottom Number - 元素下方的外邊距 支付寶10.1.92 基礎(chǔ)庫1.23.0
background-color String #00000000 元素的背景顏色 支付寶10.1.92 基礎(chǔ)庫1.23.0
padding Number 0 元素的所有內(nèi)邊距 支付寶10.1.92 基礎(chǔ)庫1.23.0
padding-left Number 0 元素的左側(cè)內(nèi)邊距 支付寶10.1.92 基礎(chǔ)庫1.23.0
padding-top Number 0 元素上方的內(nèi)邊距 支付寶10.1.92 基礎(chǔ)庫1.23.0
padding-right Number 0 元素的右側(cè)內(nèi)邊距 支付寶10.1.92 基礎(chǔ)庫1.23.0
padding-bottom Number 0 元素下方的內(nèi)邊距 支付寶10.1.92 基礎(chǔ)庫1.23.0
border-color String #00000000 元素的邊框顏色 支付寶10.1.92 基礎(chǔ)庫1.23.0
border-radius Number 0 元素的圓角邊框圓角半徑 支付寶10.1.92 基礎(chǔ)庫1.23.0
border-width Number 0 元素的邊框?qū)挾?/td> 支付寶10.1.92 基礎(chǔ)庫1.23.0

組件

地圖高級定制渲染組件包含 box(區(qū)域)、text(文本)、image(圖片)、lottie(動畫)。

box

屬性名 類型 默認值 描述 支持版本
layout String relative 布局類型:relative:相對布局horizontal:水平布局vertical:垂直布局、復(fù)雜布局注意:iOS 在 10.1.92 以下版本不支持 horizontal 和 vertical。 支付寶10.1.92 基礎(chǔ)庫1.23.0
horizontal-align String - 子元素水平對齊方式,有效值:middle 支付寶10.1.92 基礎(chǔ)庫1.23.0
vertical-align String - 子元素垂直對齊方式,有效值:middle 支付寶10.1.92 基礎(chǔ)庫1.23.0

text

屬性名 類型 默認值 描述 支持版本
text String - 文本內(nèi)容 支付寶10.1.92 基礎(chǔ)庫1.23.0
color String #000000 文本顏色 支付寶10.1.92 基礎(chǔ)庫1.23.0
font-size Number - 文本字體大小 支付寶10.1.92 基礎(chǔ)庫1.23.0
clickable Boolean false 文本是否可點擊響應(yīng)事件 支付寶10.1.92 基礎(chǔ)庫1.23.0
number-of-lines Number - 文本最大顯示行數(shù) 支付寶10.1.92 基礎(chǔ)庫1.23.0
stroke-color String #FFFFFFFF 文本文字描邊顏色 支付寶10.1.92 基礎(chǔ)庫1.23.0
stroke-width Number - 文本文字描邊寬度 支付寶10.1.92 基礎(chǔ)庫1.23.0
text-align String left 文本對齊方式。有效值:left,center,right 支付寶10.1.92 基礎(chǔ)庫1.23.0
font-weight String normal 文本字體粗細程度。有效值:normal,bold 支付寶10.1.92 基礎(chǔ)庫1.23.0

image

屬性名 類型 默認值 描述 支持版本
src String - 圖片路徑 支付寶10.1.92 基礎(chǔ)庫1.23.0
placeholder String - 占位圖路徑 支付寶10.1.92 基礎(chǔ)庫1.23.0

lottie

屬性名 類型 默認值 描述 支持版本
src String - 動畫路徑 支付寶10.1.92 基礎(chǔ)庫1.23.0
以上內(nèi)容是否對您有幫助:
在線筆記
App下載
App下載

掃描二維碼

下載編程獅App

公眾號
微信公眾號

編程獅公眾號