您当前的位置: 首页> JavaScript API 通用版 > 核心类

Class:核心类/Map
目录
构造函数
构造函数 描述
构造函数描述Map(container:String|HTMLElement, center: Point |KeyPoint|GbPoint, zoom:Number [, opts:MapOptions]) 在指定的容器内创建地图实例,之后需要调用Map.load()方法对地图进行初始化。 (container为指定容器节点对象或ID;center为地图初始化中心点位置坐标;zoom为地图初始化级别;opts为可选地图配置参数)
MapOptions
属性 类型 描述
minZoom Number 地图允许展示的最小级别。
maxZoom Number 地图允许展示的最大级别。
enableAutoResize Boolean 是否自动适应容器尺寸变化,默认禁用。
viewBounds Bounds 地图允许展示的可视范围。
style Number 地图默认风格。(版本>=V3.0)
核心方法
方法 返回值 描述
load() none 加载地图, 在创建地图实例后必须调用此方法才会正常加载地图。
updateMap() none 更新地图有一些操作需要修改状态值以后执行该方法。(版本>=V3.0)
配置方法
方法 返回值 描述
enableInertialDragging() none 启用地图惯性拖拽,默认禁用。
disableInertialDragging() none 禁用地图惯性拖拽。
enableDoubleClickZoom() none 启用双击放大,默认启用。
disableDoubleClickZoom() none 禁用双击放大。
enableKeyboard() none 启用键盘操作,默认启用。键盘的上、下、左、右键可连续移动地图。PgUp、PgDn、Home和End键会使地图平移其1/2的大小。+、-键会使地图放大或缩小一级。
disableKeyboard() none 禁用键盘操作。
enableCenterIcon([o:Object{ width: Number, height: Number, image: String }]) none 启用地图中心点图标,默认禁用。(o为可选参数,属性分别为中心图片宽度、中心图片高度、中心图片地址)
disableCenterIcon() none 禁用地图中心点图标。
enableMouseToolPan() none 启用鼠标工具边界自动平移地图,默认启用。
disableMouseToolPan() none 禁用鼠标工具边界自动平移地图。
setBorder(image:Object{ left:String, right:String, top:String, bottom:String }) none 设置地图盒子边界样式。(left、right、top、bottom最少传一个对象属性,属性分别为左边界样式、右边界样式、上边界样式、下边界样式;image为背景图片,上下边界图片高度必须为6px,左右边界图片宽度必须为6px)
enableDragging() none 启用地图拖拽,默认启用。
disableDragging() none 禁用地图拖拽。
enableScrollWheelZoom() none 启用滚轮缩放,默认启用。
disableScrollWheelZoom() none 禁用滚轮缩放。
enablePinchToZoom() none 启用双指触控缩放,默认启用。
disablePinchToZoom() none 禁用双指触控缩放。
enableAutoResize() none 启用自动适应容器尺寸变化,默认禁用。
disableAutoResize() none 禁用自动适应容器尺寸变化。
getDefaultCursor() String 返回地图默认的鼠标指针样式。
setDefaultCursor(cursor:String) none 设置地图默认的鼠标指针样式。参数cursor应符合CSS的cursor属性规范。
getDraggingCursor() String 返回拖拽地图时的鼠标指针样式。
setDraggingCursor(cursor:String) none 设置拖拽地图时的鼠标指针样式。参数cursor应符合CSS的cursor属性规范。
setMinZoom(zoom:Number) none 设置地图允许的最小级别。取值不得小于地图类型所允许的最小级别。
setMaxZoom(zoom:Number) none 设置地图允许的最大级别。取值不得大于地图类型所允许的最大级别。
setMapRender(renderData:Object) none 设置地图表达。
setDisplayControl(ctrlData:Object) none 地图显示配置项。
getDrawTool() Object :DrawTool
  • 工具类DrawTool操作对象实例,在多实例地图中使用(V3.1新增)
changeCurrentTool(tool:String) none
  • 此接口为实现地图工具切换。 tool为工具关键字,详见tool关键字对照表(V3.1新增)
地图状态方法
方法 返回值 描述
getCenter() Point 获取当前中心点。
getZoom() Number 获得缩放级别。(范围为从3到19,数值越大,地图内容越详细)
getBounds() Bounds 获得视图范围。
pointInMap(point: Point |KeyPoint|GbPoint) Boolean 判断点是否在视图内。
getDistance(aPoint: Point |KeyPoint|GbPoint, bPoint: Point |KeyPoint|GbPoint) Number 计算两点间的距离(单位为:米)。
getPoint2LineDistance(point: Point |KeyPoint|GbPoint, aPoint: Point |KeyPoint|GbPoint, bPoint: Point |KeyPoint|GbPoint) Number 计算点到线段的距离,point为目标点,aPointbPoint为目标线段的起终点。(单位为:米)。
getShapeAcreage(points: Array< Point |KeyPoint|GbPoint>) Number 计算多边形的面积(单位为:平方米)
getSize() Size 获得地图视图的宽高大小。
getViewport(points:Array< Point |KeyPoint|GbPoint> [,margins: Array]) Viewport 根据提供的坐标获得最佳的地图视野。此方法仅返回视野信息,不会将新的中心点和级别作用到当前地图上。 (margins为视野调整的预留边距,数组的四个数值分别表示上、右、下、左边距,默认预留边距为[6, 6, 6, 6]。)
getBoundsByDistance( point: Point |KeyPoint|GbPoint, d: Number) Bounds 通过中心点和半径,获取圆形外框。(point为中心点坐标;d为半径,单位为:米,取值范围为:100-5000)。
修改地图状态方法
方法 返回值 描述
centerAndZoom(center: Point |KeyPoint|GbPoint|String,zoom:Number) none 地图定位并且缩放到对应级别。center除了可以为坐标点外,还支持城市名。
setCenter(center: Point |KeyPoint|GbPoint|String) none 设置地图中心点。center除了可以为坐标点外,还支持城市名。(如果该点在当前的地图视图中已经可见,则会以平滑动画的方式移动到中心点位置)。
setCurrentCity(city:String) none 设置地图城市。
setZoom(zoom:Number) none 设置缩放级别。(范围为从4到19,数值越大,地图内容越详细)。
setZoomFloat(zoom:Float) none 设置缩放级别。(范围为从4.0到19.9,可以设置浮点数级别,版本>=V3.0)。
pan (offsetx:Number, offsety:Number) none 平移地图。(offsetx和offsety都以像素表示,正负数代表平移方向)。
zoomIn([point: Point |KeyPoint|GbPoint]) none 放大地图。(point可选参数,是放大地图的中心位置)。
zoomOut([point: Point |KeyPoint|GbPoint]) none 缩小地图。(point可选参数,是缩小地图的中心位置)。
setSize (width:Number,height:Number) none 设置地图视图的大小。
setViewport(points:Array< Point |KeyPoint|GbPoint> [,margins: Array]) none 根据提供的坐标设置最佳的地图视野,调整后的视野会保证包含提供的坐标。 (margins为视野调整的预留边距,数组的四个数值分别表示上、右、下、左边距,默认预留边距为[6, 6, 6, 6]。)
setLookDownAngle(Angle:Number) none 设置地图俯视角度。 (每个比例尺设置最大俯视角度会不相同,超出最大值会设置为最大角度,版本>=V3.0)
setRotateAngle(Angle:Number) none 设置地图旋转角度。 (每个比例尺设置最大旋转角度会不相同,超出最大值会设置为最大角度,版本>=V3.0)
setLookDownLock(type:Bool,Angle:Number) none 锁定地图俯视角度。 (type:true是锁定,false是解锁;Angle可选参数,锁定在特定的一个角度,默认0 ;版本>=V3.0)
setRotateLock(type:Bool,Angle:Number) none 锁定地图转角度。 (type:true是锁定,false是解锁;Angle可选参数,锁定在特定的一个角度,默认0 ;版本>=V3.0)
控件方法
方法 返回值 描述
addMapControl (contrl: Control|Navigation|Overview|Scale |InfoWindow|CustomPanel) none 将控件添加到地图,一个控件实例只能向地图中添加一次。
removeMapControl (contrl: Control|Navigation|Overview|Scale |InfoWindow|CustomPanel) none 从地图中移除控件。如果控件从未被添加到地图中,则该移除不起任何作用。
getUserContainer() HTMLElement 返回地图的容器元素。当创建用户自定义控件时,需要自行实现Control.initialize()方法,并将控件的容器元素添加到地图上,通过此方法可获得地图容器。
setCopyrightColor(color: String) none 设置版权信息的字体颜色。
openInfoWindow(win: InfoWindow|CustomPanel, point: Point ) none 在地图上打开信息窗口。
closeInfoWindow() none 关闭在地图上打开的信息窗口。在标注上打开的信息窗口也可通过此方法进行关闭。
右键菜单方法
方法 返回值 描述
addContextMenu(menu: ContextMenu, data: String) none 添加地图容器的右键菜单。 (data为自定义回传值,用于当菜单项被点击时回调函数的第二个参数回传值)
removeContextMenu(menu: ContextMenu) none 移除地图容器的右键菜单。
点线面方法
方法 返回值 描述
addLayer(layer:Layer|Overlay) none 添加图层/自定义覆盖物
removeLayer(layer:Layer|Overlay) none 移除图层/自定义覆盖物
removeLayerById(id:String) none 通过ID移除图层
clearLayer() none 清空所有图层,包括自定义覆盖物
clearDistance() none 清除所有测距
getLayerById(id:String) Layer 获取图层
pointToOverlayPixel(point: Point |KeyPoint|GbPoint) Pixel 将地理坐标转换为对应的标注容器的坐标,此方法用于自定义覆盖物。
overlayPixelToPoint(pixel:Pixel) Point 根据标注容器的坐标获取对应的地理坐标,此方法用于自定义覆盖物。
gotoObject(layerid:String,id:String [,left: Number,top: Number]) none 将点线面对象定位到地图视图中心点位置,并置顶。 (layerid:图层ID号,id:点线面对象ID号,lefttop为可选参数,分别代表偏移中心点位置的横向距离和纵向距离)
addHotspot(hotspot:Hotspot) none 向地图添加一个热区
removeHotspot(hotspot:Hotspot) none 移除某个地图热区
clearHotspots() none 清空地图所有热区
坐标变换方法
方法 返回值 描述
pixelToPoint(pixel: Pixel) Point 像素坐标转换为地理坐标
pointToPixel(point: Point |KeyPoint|GbPoint) Pixel 地理坐标转换为像素坐标
kcodeToPoint(kcode: String) Point K码坐标转换为地理坐标
pointToKcode(point: Point |KeyPoint|GbPoint) String 地理坐标转换为K码坐标
BAIDUtoKCode(longitude:Number, latitude:Number) String 百度地图坐标转换为K码
事件方法
方法 返回值 描述
addEventListener(key:String, fun:Function) none 添加地图事件。(key参数详见事件Key对照表;fun为回调函数)
removeEventListener (key:String) none 移除地图事件。(key参数详见事件Key对照表)
事件Key对照表
事件Key 回传值(回调函数) 描述
mapchange desc:String, code:String, regions:Array< { name: String,code: String }> (回传参数为三个,分别代表中心点的位置描述、地理编码和行政区域详细等级列表) 地图平移、缩放或定位引起地图发生变化时触发此事件
zoomstart none 地图更改缩放级别开始时触发此事件
zoomend none 地图更改缩放级别结束时触发此事件
movestart none 地图移动开始时触发此事件
moving none 地图移动过程中触发此事件
moveend none 地图移动结束时触发此事件
dragstart none 开始拖拽地图时触发
dragging none 拖拽地图过程中触发
dragend none 停止拖拽地图时触发
click Point (事件响应的鼠标位置坐标) 左键单击地图时触发此事件。(相当于触控按下touchstart)
mousemove Point (事件响应的鼠标位置坐标) 鼠标在地图区域移动过程中触发此事件(相当于触控移动touchmove)
mouseup Point (事件响应的鼠标位置坐标) 鼠标在地图上弹起时触发此事件 (相当于触控松开touchend)
mouseover none 鼠标移入地图区域时触发此事件
mouseout none 鼠标移出地图区域时触发此事件
dblclick Point (事件响应的鼠标位置坐标) 鼠标双击地图时会触发此事件。 (当双击时,产生的事件序列为: click click dblclick)
rightclick Point (事件响应的鼠标位置坐标) 右键单击地图时触发此事件
resize none 地图可视区域大小发生变化时会触发此事件
rectselect Object :{selects: Array,lt: Point , rb: Point } (回传值为一个对象,包括:selects被选中对象集合数组,lt矩形框的左上角坐标,rb矩形框的右下角坐标;selects数组中的成员是一个对象,包括:id被选中对象的ID,name被选中对象的名称,styleid被选中对象的表达ID,layerid被选中对象所属图层ID) 每次完成一次框选操作时触发此事件
circleselect Object :{selects: Array,c: Point , r:Number, rm:Number} (回传值为一个对象,包括:selects被选中对象集合数组,c圆形的中心点坐标,r圆形的半径(坐标单位),rm圆形的半径(单位为米);selects数组中的成员是一个对象,包括:id被选中对象的ID,name被选中对象的名称,styleid被选中对象的表达ID,layerid被选中对象所属图层ID) 每次完成一次圆选操作时触发此事件
polygonselect Object :{selects: Array,points: Array< Point>} (回传值为一个对象,包括:selects被选中对象集合数组,points组成多边形的点坐标集合数组;selects数组中的成员是一个对象,包括:id被选中对象的ID,name被选中对象的名称,styleid被选中对象的表达ID,layerid被选中对象所属图层ID) 每次完成一次多边形选操作时触发此事件
distanceend Object :{ distance:Number, points: Array< Point>} (回传值为一个对象,包括:distance此次测距总距离,points此次测距经过的点坐标集合数组) 每次完成一次测距操作时触发此事件
drawchartstart 标记操作回传值Object :{ type:Number, typeName: String} 拖拽操作回传值Object :{ layerid:String, id: String, type:Number, typeName: String, points: Array< Point>} (回传值Object为一个对象,包括:layerid为所属图层ID,id为标记的ID,typetypeName都为标记类型,points为标记的坐标集合数组【若为图片标注或文本标注时,points的长度为1,为标注点的坐标位置;若为折线或多边形时,points为组成线或多边形的坐标串;若为圆形或矩形时,points的长度为2,分别为矩形外框的左上角坐标和右下角坐标】) 每次开始一次标记操作或开始一次拖拽单个标记操作前触发此事件。(标记类型【type, typeName】包括图片标注【1, marker】、文本标注【2, label】、折线【3, polyline】、多边形【4,polygon】、圆形【5, circle】、矩形【6, rectangle】)
drawcharting Object :{ layerid:String, id: String, type:Number, typeName: String, points: Array< Point>} 每次标记操作或一次拖拽单个标记操作过程中触发此事件
drawchartend Object :{ layerid:String,id: String, type:Number, typeName: String, points: Array< Point>} (回传值Object为一个对象,包括:layerid为所属图层ID,id为标记的ID,typetypeName都为标记类型,points为标记的坐标集合数组【若为图片标注或文本标注时,points的长度为1,为标注点的坐标位置;若为折线或多边形时,points为组成线或多边形的坐标串;若为圆形或矩形时,points的长度为2,分别为矩形外框的左上角坐标和右下角坐标】) 每次完成一次标记操作或完成一次拖拽单个标记操作时触发此事件。(标记类型【type, typeName】包括图片标注【1, marker】、文本标注【2, label】、折线【3, polyline】、多边形【4, polygon】、圆形【5, circle】、矩形【6, rectangle】)
gesturechange none 每次完成一次多点触控移动后触发此事件
模型加载
(自 5.0 新增)
方法 返回值 描述
loadGLTF(url,option,rotateXAngle,rotateYAngle,rotateZAngle) Object
加载gltf并显示
url:gltf地址
option = {
position: [x, y, z], // 必须, 设置gltf模型位置;其中position[2]表示高度,单位为米,不设置默认为0
position_type: 0, // 非必须,0 凯立德坐标 2国测局坐标
scale: 1, // 非必须,设置模型缩放倍数
scene: 0, // 非必须,设置当前场景序号
rotation:[x, y, z] //旋转角度(弧度单位)
animate: 1, //非必须,是否启动动画过渡
opacity:非必须,透明度[0, 1], // 0 表示全透明,1表示不透明
resolution: 1000, //非必须,点与点之间的时间以毫秒为单位
sharpness: 0.2, //非必须,样条之间路径弯曲程度的度量
immediatelyUpdate: true, // 非必须,是否立即更新
carPerspective: 0, //非必须,是否中心点移动
resetColor: true, // 非必须,恢复至模型默认颜色(包含透明度)
color: 'rgb(255, 0, 0)', // 非必须,设置模型(24位)颜色;比如 红色 :'rgb(255, 0, 0)'
animation:{"name":动画名字(可通过getGLTFAnimations获取), "loop":是否循环播放, "duration":间隔},
refValue: {id:'gltfID'}, //自定义参数,可在回调函数中获取
movingStartCallback:this.movingStartCallback, // 非必须,每帧移动前回调
movingCallback:this.movingCallback, // 非必须,移动回调
moveendCallback:this.moveendCallback, // 非必须,移动结束前回调
clickCallback:this.clickCallback, // 非必须,点击回调
mouseoverCallback:this.mouseoverCallback, //非必须,鼠标移入回调
mouseoutCallback:this.mouseoutCallback // 非必须,鼠标移出回调
}
rotateXAngle/rotateYAngle/rotateZAngle:xyz的旋转角度(弧度单位)
loadGLTF(Object) Bool
判断该URL的GLTF是否加载完成
Object:{该参数为loadGLTF返回值}
removeGLTF(Object) Void
移除该URL的GLTF模型
Object:{该参数为loadGLTF返回值}
setGLTFOption(Object,option) Void
设置GLTF选项
option:同loadGLTF方法option参数
Object:{该参数为loadGLTF返回值}
getGLTFAnimations(Object) StringArray
获取GLTF的动画
-返回动画名字列表
Object:{该参数为loadGLTF返回值}
涟漪加载
(自 5.0 新增)
方法 返回值 描述
addRippleCircle(id, position, centerRadius, radius, stacks, rgbaColor, imageURL, animations, renderScales) Object
加载并设置涟漪位置
id:'rippple', //涟漪id保持唯一
position:[x,y,z], //地图坐标
centerRadius:20, //中心圈大小(单位米)
radius:200, //外圈大小(单位米)
stacks:3, //外圈层数,默认1
rgbaColor:'#f00', //颜色(图片优先)
imageURL:URL, //图片路径
animations:{
opacity:[1, 0.2], //从中心到边缘的透明度变化,默认值[1, 0.2]
interval:50, //时间间隔,默认50毫秒
step:5, //步长(单位米),默认根据间隔等分计算
}
renderScales:[4,22]//显示的比例尺范围,默认所有比例尺
deleteRippleCircle(id) none
id:'rippple' //涟漪id保持唯一
三维广告牌加载
(自 5.0 新增)
方法 返回值 描述
add3DObject(typename, option) Number
添加3D对象
typename:'plane' //对象类型名字。plane平面,即四边形
option = {
position: [x, y, z], // 必须, 位置;其中position[2]表示高度,单位为米,不设置默认为0
width: 20, // 必须, 宽度
'height': 20, // 必须, 高度
'color':'rgba(255, 0, 0, 1)', //非必须,颜色
'images':['url1', 'url2', '...'], //非必须,图片url数组
'imgIdx':0, //非必须,多当前图片时,设置的显示序号
'rotation':[x, y, z], //非必须,xyz三个方向的 自转 角度(弧度单位)
'offset':[x, y, z], //非必须,(相对于position)偏移位置(米单位)
'revolution':[x, y, z], //非必须,xyz三个方向的 公转(绕position旋转) 角度(弧度单位)
'visible':true, //非必须,是否显示
'immediatelyUpdate':true, //非必须,是否立即更新
'side':'front', //非必须,可见显示面:'front' == 正面可见, 'double' == 双面可见, 'back' == 反面可见
}
//返回值:成功返回 3D对象ID, 失败返回 undefined
set3DObjectOption(id, option) Bool
设置广告牌切换
id:成功加载返回的对象ID
option:同add3DObject方法option参数
remove3DObject(uid) Bool
uid: 3D对象ID(通过 add3DObject 返回)
//返回值:成功返回 true, 失败返回 undefined