地图

优质
小牛编辑
135浏览
2023-12-01

地图。

属性类型默认值是否必填说明
longitudeNumber中心经度
latitudeNumber中心纬度
scaleNumber16缩放级别,取值范围3-20
themeStringnormal主题(satellite 或 normal)只在初始化时有效,不能动态变更(仅Android支持)
showLocationBooleanfalse显示带有方向的当前定位点
includePointsArray(point)缩放视野以包含所有给定的坐标点,point为经纬度{"longitude":0,"latitude":0}
markersArray(marker)标记点
polylineArray(polyline)路线
circlesArray(circle)
controlsArray(control)控件
bindmarkertapeventhandler点击标记点时触发
bindcallouttapeventhandler点击标记点对应的气泡时触发
bindcontroltapeventhandler点击控件触发
bindregionchangeeventhandler视野发生变化时触发
bindtapeventhandler点击地图时触发

marker(标记点)

用于在地图上显示标记的位置

属性说明类型必填备注
id标记点 idnumbermarker 点击事件回调会返回此 id,如果要接收回调事件最好传入id
latitude纬度Number浮点数,范围 -90 ~ 90
longitude经度Number浮点数,范围 -180 ~ 180
title标注点名String点击时显示,callout存在时将被忽略
iconPath显示的图标String项目目录下的图片路径,仅支持代码包路径
rotate旋转角度Number顺时针旋转的角度,范围 0 ~ 360,默认为 0
alpha标注透明度Number默认 1,无透明,范围 0 ~ 1
width宽度Number默认为图片实际宽度
height高度Number默认为图片实际高度
callout自定义标记点上方的气泡窗口Object气泡
anchor经纬度在标注图标的锚点,默认底边中点Object{x, y},x 表示横向(0-1),y 表示竖向(0-1)。{x: .5, y: 1} 表示底边中点
marker上的气泡callout
属性类型说明
contentString文本
colorString文本颜色
fontSizeNumber文字大小
borderRadiusNumber边框圆角
borderWidthNumber边框宽度
borderColorString边框颜色
bgColorString背景色
paddingNumber文本边缘留白
displayString'BYCLICK':点击显示; 'ALWAYS':常显,不传默认为 'BYCLICK'
textAlignString文本对齐方式。有效值: left, right, center

polyline

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

属性类型必填说明
pointsArray(point)经纬度数组
colorString线的颜色
widthNumber线的宽度
dottedLineBoolean是否虚线,默认false
arrowLineBoolean带箭头的线,默认false
arrowIconPathString箭头图标路径(在 arrowLine 为 true 时生效)
borderColorString线的边框颜色
borderWidthNumber线的边框宽度

circle

在地图上显示圆

属性类型必填说明
latitudeNumber纬度
longitudeNumber经度
colorString描边的颜色
fillColorString填充颜色
radiusNumber半径
strokeWidthNumber描边的宽度

control

属性类型必填说明
idNumber控件id,在控件点击事件回调会返回此id
positionObject控件在地图的位置
iconPathString项目目录下的图片路径,仅支持代码包路径
clickableBoolean是否可点击,默认false,不可点击

示例代码

jxml

<map
    style="width: 100%; height: 300px;"
    latitude="{{latitude}}"
    longitude="{{longitude}}"
    markers="{{markers}}    
    polyline="{{polyline}}"
    circles="{{circle}}"
    controls="{{controls}}"
    includePoints="{{includePoints}}"
    theme="{{theme}}"
    showLocation="{{showLocation}}"
    bindcontroltap="controltap"
    bindmarkertap="markertap"
    bindcallouttap="callouttap"
    bindregionchange="mapRegionChange"
    bindtap="tap"
>
</map>

JS

var callout ={
   content:"callout",
   color:"#FF0000",
   fontSize:12,
   borderRadius:5,
   borderWidth:2,
   borderColor:"#000000",
   bgColor:"#D3D3D3",
   padding:3,
   display:"BYCLICK",
  textAlign:"center"
};

var markers=[{
      id:1,
      latitude: 39.78619723,
      longitude: 116.56373978,
      iconPath:"../../../../image/location_marker.png",
      title:"first Marker",
      rotate:3,
      alpha:0.8,
      width: 50,
      height: 50,
      callout:callout,
      }];
Page({
  data: {
    latitude: 39.78619723,
    longitude: 116.56373978,
    scale:18,
    showLocation:false,
    includePoints:[{
      longitude: 116.38791,
      latitude: 39.999591
    },{
       longitude: 116.562938,
        latitude: 39.786752
    }],
    markers: markers,
    circle:[{
        latitude: 39.78619723,
        longitude: 116.56373978,
        color:"#DC143C",
        radius:10,
        fillColor:"#FFD700",
        strokeWidth:2
       }],
    polyline: [{
      points: [{
        longitude: 116.56373978,
        latitude: 39.78619723
      }, {
        longitude: 116.5616369247,
        latitude: 39.7865764743
      },
      {
        longitude: 116.5577960014,
        latitude: 39.7904347438
      },
      {
        longitude: 116.5541911125,
        latitude: 39.7888024254
      },
      {
        longitude: 116.5516054630,
        latitude: 39.7916630790
      },
      {
        longitude: 116.5486335754,
        latitude: 39.7902533770
      },{
        longitude: 116.5472710133,
        latitude: 39.7912921076
      }],
      color:"#DC143C",
      width: 7,
      dottedLine: false,
      arrowLine:true,
      arrowIconPath:"../../../../image/arrow.png",
      borderColor:"#000000",
      borderWidth:1
    }],
    controls: [{
      id: 1,
      iconPath: '../../../../image/controls.png',
      position: {
        left: 0,
        top: 300 - 50,
        width: 50,
        height: 50
      },
      clickable: true
    }]
  },
  controltap(e){
    console.log("点击control事件回调",e);
  },
  markertap(e){
    console.log("点击marker事件回调",e.detail);
  },
  callouttap(e){
     console.log("点击callout事件回调",e.detail);
  },
  tap(e){
     console.log("点击map事件回调",e.detail);
  },
  mapRegionChange(e){
    console.log("地图视野发生变化",e.detail);
  }
});