Map~Map(divid, options, successedCallback, failedCallback)

地图对象,承载图层,控件,叠加物的容器。
地图对象,是其它大多数对象存在的前提。对于图层、地理要素、模型、控件,它是一个dom容器。

Summary

Methods:
addControl

添加一个地图控件。注意:同类型的控件只能添加一个,之后的都会被忽略,起不到控件本来的作用

addLayer

添加图层。将图层添加到图层容器中。

addLayers

添加一组图层。该方法根据图层在数组中的先后顺序,依次将图层添加到地图上。

addLight

给地图添加精准光源

destroy

地图销毁。和Map相关的事件、控件、DOM元素以及地图对象本身都将从内存中移除。

detectAllFeaturesAtPixel

拾取当前位置的所有要素,相互覆盖的也会被拾取,贴地要素的拾取建议使用detectFeaturesAtPixel

detectFeaturesAtPixel

在地图上搜索给定像素的地理元素,被遮挡的视为不可见。注意:无法搜索图片式图层中的地理要素/模型。

disableInteractive

取消和要素的交互

disableLight

关闭地图光照,但不删除光照对象

enableInteractive

激活和要素的交互,要素所在图层的enableHashCode=true时可以进行交互。
要素包含{module:feature~Vector}、{module:model~Stretch}、{module:model~Obj}、{module:model~FbxModel}、{module:model/gltf~GLTF};
交互行为:onClick、onHover。其中,移动端仅支持onClick。

enableLight

全局开启地图的光照

flyTo

滑行动画实现地图移动倾斜缩放,仅适用于二维地图的漫游,三维地形有穿模的风险,该方法无法保证。

get3DCoordinateFromPixel

获取地图中的要素与鼠标射线相交的三维坐标。如果鼠标射线和指定图层中的要素没有相交,则返回鼠标射线与地表的相交点的坐标,其中Z值为0。
该方法用于检测鼠标射线与地图中要素的相交情况,返回交点坐标

getAllLayers

获取加载到地图上的所有图层。

getAllLights

获取地图上的所有精准光源

getBearing

获取地图当前的方位角

getCamera

获取相机对象。

getCenter

获取地图视窗中心的地理坐标。

getContext

获取绘制上下文

getControlByType

获取指定类型的控件。

getControls

获取添加到地图上的所有控件。

getCoordinateFromPixel

计算屏幕像素位置所对应的地理坐标。
该方法在两种情况下计算的准确度将降低:
1.地理坐标超出地图视窗的地理范围时;
2.地图旋转的俯仰角较大时,偏离地图中心越远,准确度越低。

getCrs

获取当前地图的坐标系对象。

getEnvironment

获取全局光照

getExtent

获取当前地图视窗的地理范围。

getExtentZoom

返回包含给定extent的最适合的zoom

getFogColor

获取雾的颜色

getGeoGridLayer

获取地理网格(经纬网)图层对象

getHeightByCoord

获取指定坐标点位,在地图三维场景中的实际高程。当传入的坐标点经纬度,不在地图范围内时,或者没有地图数据时(此时webgl深度值为1),会返回null。

getHighlightColor

获取全局高亮颜色

getLandColor

获取陆地颜色

getLayerCount

获取图层数量。

getLayersByName

根据名称获取图层对象。

getLayerZIndex

获取图层的顺序(zIndex)。

getMaxResolution

获取当前地图的最大分辨率。

getMaxZoom

获取地图最大缩放级别。

getMinResolution

获取当前地图的最小分辨率。

getMinZoom

获取地图最小缩放级别。

getPanEnable

返回一个值,指示当前地图是否允许平移。

getPitch

获取地图当前的俯仰角

getPixelFromCoordinate

计算地理坐标对应的屏幕像素位置。起算点是当前屏幕坐标系原点。
该方法在三种情况下计算的准确度将降低:
1.当地理坐标超出地图视窗的地理范围时;
2.当地图旋转的俯仰角较大时,偏离地图中心越远准确度越低;
3.地理坐标的Z分量接近甚至超出相机高度时。

getPixelRatio

获取设备物理像素和设备独立像素之间的比率

getResolution

获取地图分辨率。如果传入zoom参数,则返回对应缩放级别的分辨率,否则返回当前缩放级别的分辨率。

getResolutions

获取地图分辨率数组。

getRestrictedExtent

获取允许访问的最大地理范围

getRidgeAndValleyLines

获取当前地图范围内的山脊线、山谷线矢量数据。此功能考虑到性能,没有做非常精细的计算,提取到的山脊线、山谷线仅作为示意。

getRotateAngle

获取地图当前的方位角或俯仰角

getRotateEnable

返回一个值,指示当前地图是否允许旋转。

getScale

获取当前地图比例尺分母,根据地图的分辨率、坐标系和当前级别计算得出。

getSkyImage

获取天空背景图片

getSunlight

获取日照光对象

getViewport

计算当前地图视口的像素范围。

getZoom

获取地图缩放级别。如果传入res参数,则在分辨率数组中寻找最接近res且不小于res的级别,否则返回地图的当前缩放级别。

getZoomEnable

返回一个值,指示当前地图是否允许缩放。

getZoomWithInterval

获取地图当前缩放层级,当创建地图时参数zoomInterval不为1,且地图缩放级别不在整数级别时,此时返回的值则有小数部分。

moveMapToDiv

移动地图到指定的div中。该方法,将把已创建好的地图对象,从放置当前地图对象的div元素中移除,并添加到指定的新的div中。

panTo

将地图移动到指定坐标,忽略坐标的Z值。

pauseFly

暂停地图滑行

printMap

截图功能。提供地图canvas上渲染内容的截图,地图叠加层(OverlayLayer)所添加要素为div,不包括在内。

redraw

重绘地图

removeAllLayers

去除与地图对象挂接的所有图层。图层对象脱离地图对象后依然存在,直到彻底销毁这些图层。

removeControl

移除地图控件。

removeEnvironment

移除全局光照

removeLayer

从地图对象的图层数组中移除指定图层。注意:图层对象脱离地图对象后依然存在,直到该图层被彻底销毁。

removeLight

从地图上删除指定的精准光源

removeSkybox

移除天空盒背景

resize

当窗口改变时,更改相机参数,用户设置全屏或者取消全屏时,检测不到窗口变化,需要手动调用此方法

resumeFly

继续地图滑行

rotate

按照指定的角度与旋转类型来旋转地图。

setCenter

设置地图的中心点和缩放级别。

setCloudStatus

设置地图天空云朵状态

setDepthMode

地图场景纵深感模式设置,支持0和1两种。
模式0的纵深感较浅,适用于VectorTileLayer、TMSLayer等网格式图层;模式1的纵深感相当于模式0的纵深感的5倍,适用于地理解决方案图层、矢量图层、模型图层、S3MLayer、Tile3DLayer等。

setEnvironment

设置全局光照,可以在设置天空盒之后直接调用,无需source参数

setFlySpeedRatio

设置地图滑行动画的速度倍率

setFogColor

设置雾的颜色

setHighlightColor

设置全局高亮颜色值

setLandColor

设置地图的陆地背景色

setLayerZIndex

调整当前图层在所有图层中的位置(zIndex)。zIndex决定了图层的渲染顺序。

setMaxZoom

设置地图最大缩放级别。

setMinZoom

设置地图最小缩放级别。

setMouseCursor

设置鼠标样式。

setPanEnable

激活或者禁用平移控件。

setPixelRatio

设置设备物理像素和设备独立像素之间的比率,一般是为window.devicePixelRatio

setResolutions

设置地图分辨率数组。

setRestrictedExtent

设置允许访问的最大地理范围

setRotateEnable

激活或者禁用旋转控件。

setSkybox

设置天空盒背景,需要传入6个长度的图片路径数组,图片的顺序依次为前、后、上、下、左、右
不传或误传,则使用hmap.initState.resource目录下images/customSky/中的天空盒图片

setSkyImage

设置天空的背景,设置前需移除天空盒背景。若未设置此值,地图天空将按照天空盒背景或者雾化的颜色来渲染。

setSplitScreenMode

设置分屏模式,取值为1|2|3。默认为1不分屏,2代表左右两屏,3代表上下两屏。
注:!!!已废弃,分屏推荐使用分屏控件hmap.control.Roller或者hmap.frame.SplitScreenFrame

setZoomEnable

激活或者禁用缩放控件。

setZoomInterval

设置地图级别改变一级时,需要滚轮滚动的次数。

startAutoRotate

开启自动旋转,如果处于自动旋转状态,再次调用相同方向的自动旋转则为无效操作

stopAutoRotate

停止自动旋转

stopFly

停止地图滑行,销毁当前的滑行动画

transition

场景过渡

updateLight

更新光照

useSkyboxLand

是否使用天空盒的地面。矢量切片不建议,会破坏样式风格。

zoomIn

调用该方法一次,地图将放大一级,直到最大级别。

zoomOut

调用该方法一次,地图将缩小一级,直到最小级别。

zoomTo

将地图缩放到指定级别。

zoomToExt

缩放到指定的地理范围。若缩放层级超出最大层级按照最大层级显示。

Constructor

new Map(divid, options, successedCallback, failedCallback)

Parameters:
Name Type Description
divid String | HTMLElement

一个div元素id属性值或者html元素。Map对象被构造的同时,会在该div内自动创建一个canvas元素作为图层容器。

options Object

地图选项,其中坐标系选项是必须要指明的。

Name Type Description
center module:basetype~Coordinate

必须,一个地理坐标,表示地图被初始化时的视窗中心。随着地图视窗范围变化,这个值会跟随一起改变。

crs module:proj~Crs

必须,地图的坐标系,如果不指定则默认WGS-84。

maxPitch Number

地图的最大俯仰角角度,取值范围0 ~ 150,默认值为65。

pitch Number

地图俯仰角。表示视线方向和垂直地表方向形成的夹角。地图俯仰角不能小于0。

bearing Number

地图方位角,取值[-360,360]。以指北针方向为起始方向,绕垂直地表方向顺时针旋转过的角度为方位角。

resolutions Array.<Number>

分辨率数组,分辨率数组中每个元素对应地图每个缩放级别的分辨率。

scaleDenominators Array.<Number>

比例尺数组,比例尺数组中每个元素对应地图每个缩放级别的比例尺。在使用resolutions选项时,本选项不生效。

zoom Number

地图默认缩放级别。

minLevel Number

可以缩放到的最小比例级别,默认为2。

afTime Number

帧时间,单位ms。缺省值16,在hmap,为优化交互的流畅度,大量数据会被分配到多帧处理,避免卡帧,可以通过该值进行调优,以平衡帧率和数据处理效率。

maxLevel Number

可以缩放到的最大比例级别,默认为分率数组对应的长度。

restrictedExtent module:basetype~Extent

允许访问的地图的最大范围,超过该范围时地图将不能被拖拽显示。

enableRotate Boolean

是否允许旋转地图,默认为true。如果为false,地图对象在初始化后不能旋转,除非增加旋转控件。

enablePan Boolean

是否允许平移地图,默认为true。如果为false,地图对象在被构造后不能够被平移,除非增加平移控件。

enableZoom Boolean

是否允许缩放地图,默认为true。如果为false,地图对象在初始化后不能缩放,除非添加缩放控件。

enableDamping Boolean

是否开启地图阻尼(惯性),默认为true,即地图的旋转、平移会受交互控件的惯性影响。

dampingFactor Number

阻尼因子(损耗因子),取值[0,1],参数越小,损耗越小,惯性影响越明显。

showGraticule Boolean

是否显示地理网格,默认为false。

enableLight Boolean

是否开启地图光照,默认为true,即为地图添加一个默认的光照。

zoomInterval Number

地图级别改变一级时,需要滚轮滚动的次数,默认为5。如,当前地图为15级,将在滚动zoomInterval次后,当图层是栅格图层如TMS、WMS时,在放大或者缩小时,会出现图片模糊的情况,此时建议使用默认值,消除图片模糊的情况。

hoverDelayTime Number

鼠标移动时,停留的时间阈值,单位:ms。如果停留时间大于等于该阈值则理解为一次hover,缺省值:50。

maxThreads Number

地图最大线程数,地图中的一些图层比如Tile3dLayer、S3mLayer、VectorTileLayer使用了多线程,在这里统一设置线程池的线程个数,默认为3,对于CPU运算速度越快,核心数越多的计算机,可以调大线程数提高CPU利用率,提升图层性能。

enableFrameAA Boolean

当地图中添加了帧效果时,是否开启抗锯齿,默认为false。

enableSky Boolean

模拟天空在不同高度的颜色,以及星空背景,默认为false。当为true时,天空颜色分为多层,其中最下层为雾化颜色,最上层为星空背景,同时天空盒背景及动态云效果均不生效。设置天空纹理填充时,天空颜色分层不生效。

isLGD Boolean

是否启用对数深度。默认值,false。该属性为深度修正、补偿类设置,主要优化硬件精度不够导致远裁面深度精度低,从而出现的干涉现象,如面在倾斜时破碎、闪烁等。
当该属性设置为true时,平行光阴影、剖面分析、阴影率分析、三维热力图、可视域可视面积/不可视面积计算、获取地图视图范围内指定经纬度的高度、计算线贴地图三维图层表面距离、多边形贴地图表面面积、测量控件三维测量等功能不可用。

maxIndexedDbCapacity Number

indexedDb的配额,当indexedDb数据占用的硬盘达到这个配额时,会删除掉一部分旧的不常用的数据,释放硬盘,默认值为100,单位GB

pixelRatio Number

可选,默认为1,范围[0.25,5],设备上物理像素和设备独立像素(dips)的比例,一般用于高清屏(注意和屏幕大小无关)。

scaledWithDOM Boolean

跟随DOM元素缩放。默认值false。开启后,对地图div容器设置transform:scale()的时候,地图也会按比例缩放。请注意,开启此选项时,浏览器缩放和计算机显示设置缩放对地图显示效果的影响将被消除。

successedCallback function

地图初始化成功的回调函数,地图其他逻辑的编写都要在回调函数中开始执行。默认执行函数:控制台输出"The map is completed!"

failedCallback function

地图初始化失败的回调函数,该回调函数中可以处理和地图无关的业务逻辑,默认为null。

Example
//要在body元素中添加<div id="hmap"></div>
let coord = new hmap.basetype.Coordinate(120.435078, 30.19345, 0);
let mapOptions = {
         zoom: 12,//地图初始化时的级别
         center: coord,//地图初始化时的中心点
         crs:new hmap.proj.Crs('4326')//地图采用的坐标系
     };
//"hmap"为地图容器div元素的id
let map = new hmap.Map("hmap", mapOptions,callback);
//Map对象初始化完成后执行的方法
function callback(){
    console.log("Map 对象初始化完成!");
}

Members

frameHelper

帧辅助对象

Methods

addControl(control)

添加一个地图控件。注意:同类型的控件只能添加一个,之后的都会被忽略,起不到控件本来的作用

Parameters:
Name Type Description
control module:control~Control

地图控件。

Example
let panControl = new hmap.control.Pan();
map.addControl(panControl);

addLayer(layer, zIndex)

添加图层。将图层添加到图层容器中。

Parameters:
Name Type Description
layer module:layer~Layer | module:layer~OverlayLayer | module:layer~ThreeJSLayer

图层对象。包括三类图层:1、继承自Layer的矢量图层、矢量切片图层、栅格切片图层、流式矢量切片图层、地形地貌图层、路况图层等;2、地图叠加层;3、ThreeJSLayer

zIndex Number | null

一个整数,用以指定Layer在图层容器中的上下叠加顺序,值大的会压盖值小的图层,故显示在上面。不传或传null时,会自动赋值:该值取该图层容器中所有图层zIndex最大值+1。

Throws:

zIndex不是正整数时,抛出异常;

Example
map.addLayer(layer);

addLayers(layers)

添加一组图层。该方法根据图层在数组中的先后顺序,依次将图层添加到地图上。

Parameters:
Name Type Description
layers Array.<(module:layer~Layer|module:layer~OverlayLayer|module:layer~ThreeJSLayer)>

图层对象数组。包括三类图层:1、继承自Layer的矢量图层、矢量切片图层、栅格切片图层、流式矢量切片图层、地形地貌图层、路况图层等;2、叠加层;3、ThreeJSLayer。

Example
map.addLayers([layer1,layer2]);

addLight(light)

给地图添加精准光源

Parameters:
Name Type Description
light module:light~Light

要添加到地图的光源

destroy()

地图销毁。和Map相关的事件、控件、DOM元素以及地图对象本身都将从内存中移除。

detectAllFeaturesAtPixel(pixel, layers, tolerance) → {Array.<Object>}

拾取当前位置的所有要素,相互覆盖的也会被拾取,贴地要素的拾取建议使用detectFeaturesAtPixel

Parameters:
Name Type Default Description
pixel Pixel

当前鼠标位置

layers Array.<VectorLayer>

图层实例的数组,默认获取所有矢量图层

tolerance Number 1

拾取容差值,像素单位,在鼠标位置点周围容差范围内的要素,都会被拾取到,默认为1,最大值为3。

Returns:
Array.<Object> -

地理要素/模型的数组。如果没有检测到任何对象则返回空数组。

detectFeaturesAtPixel(pixel, layerNames, tolerance) → {Array.<Object>}

在地图上搜索给定像素的地理元素,被遮挡的视为不可见。注意:无法搜索图片式图层中的地理要素/模型。

Parameters:
Name Type Default Description
pixel module:basetype~Pixel

一个屏幕像素。

layerNames Array.<String> null

图层名称组成的数组。返回的地理要素/模型仅限于指定的图层之内,如果不指定,则查询所有图层。

tolerance Number 1

拾取容差值,像素单位,在鼠标位置点周围容差范围内的要素,都会被拾取到,默认为1,最大值为3。

Returns:
Array.<Object> -

地理要素/模型的数组。如果没有检测到任何对象则返回空数组。

Example
let pixel = new hmap.basetype.Pixel(200, 100);
let results = map.detectFeaturesAtPixel(pixel);

disableInteractive()

取消和要素的交互

disableLight()

关闭地图光照,但不删除光照对象

enableInteractive()

激活和要素的交互,要素所在图层的enableHashCode=true时可以进行交互。
要素包含{module:feature~Vector}、{module:model~Stretch}、{module:model~Obj}、{module:model~FbxModel}、{module:model/gltf~GLTF};
交互行为:onClick、onHover。其中,移动端仅支持onClick。

enableLight()

全局开启地图的光照

flyTo(options, finishCallback, stepCallback)

滑行动画实现地图移动倾斜缩放,仅适用于二维地图的漫游,三维地形有穿模的风险,该方法无法保证。

Parameters:
Name Type Description
options Object

动画选项

Name Type Description
desCoord module:basetype~Coordinate

移动到的目标位置

desZoom Number

缩放到的目标级别

pitch Number

旋转的俯仰角变化量,相对角度

bearing Number

旋转的方位角变化量,相对角度

duration Number

动画持续时间,以毫秒为单位

finishCallback function

滑行动画结束后回调

stepCallback function

滑行动画每一帧回调,回调函数的参数是个Object变量(设为stepData),stepData.percentage为当前的漫游进度,stepData.center为当前地图中心点,stepData.zoom为当前地图级别,stepData.pitch为当前俯仰角,step.bearing为当前方位角。

Example
map.flyTo({
     desCoord:new hmap.basetype.Coordinate(120,30),
     pitch:50,
     bearing:30,
     duration:5000,
     desZoom:15
 }, () => {
   console.log("滑行结束");
 }, (stepData) => {
   console.log(stepData);
})
Deprecated:
  • Yes

get3DCoordinateFromPixel(pixel, layerNames) → {module:basetype~Coordinate}

获取地图中的要素与鼠标射线相交的三维坐标。如果鼠标射线和指定图层中的要素没有相交,则返回鼠标射线与地表的相交点的坐标,其中Z值为0。
该方法用于检测鼠标射线与地图中要素的相交情况,返回交点坐标

Parameters:
Name Type Description
pixel module:basetype~Pixel

屏幕像素。

layerNames Array.<String>

参与坐标拾取的图层名称数组,注意:参与坐标拾取的图层初始化时需要将可选项enableHashCode设置为true。

Throws:

pixel参数不是像素module:basetype~Pixel对象时,抛出异常;

Returns:
module:basetype~Coordinate -

相交点坐标。

getAllLayers(type) → {Array.<(module:layer~Layer|module:layer~OverlayLayer)>}

获取加载到地图上的所有图层。

Parameters:
Name Type Default Description
type Number 1

一个整数,表示要返回哪些类型的图层,默认值为1。
1 返回所有图层,包括叠加层。
0 返回的图层中不包含叠加层。

Returns:
Array.<(module:layer~Layer|module:layer~OverlayLayer)> -

一个包含图层的数组。

getAllLights() → {Array.<module:light~Light>}

获取地图上的所有精准光源

Returns:
Array.<module:light~Light> -

添加到地图上的所有精准光源,包括点光源、平行光、聚光灯

getBearing() → {Number}

获取地图当前的方位角

Returns:
Number -

地图方位角

getCamera() → {module:util~Camera}

获取相机对象。

Returns:
module:util~Camera -

相机对象。

Example
let camera = map.getCamera();

getCenter() → {module:basetype~Coordinate}

获取地图视窗中心的地理坐标。

Returns:
module:basetype~Coordinate -

地理坐标。

getContext() → {WebglContext}

获取绘制上下文

Returns:
WebglContext

getControlByType(controlType)

获取指定类型的控件。

Parameters:
Name Type Description
controlType String

控件类型。有以下几种枚举值:

Example
map.getControlByType(hmap.control.controlType.Zoom);

getControls() → {Array.<module:control~Control>}

获取添加到地图上的所有控件。

Returns:
Array.<module:control~Control> -

控件数组

getCoordinateFromPixel(pixel) → {module:basetype~Coordinate}

计算屏幕像素位置所对应的地理坐标。
该方法在两种情况下计算的准确度将降低:
1.地理坐标超出地图视窗的地理范围时;
2.地图旋转的俯仰角较大时,偏离地图中心越远,准确度越低。

Parameters:
Name Type Description
pixel module:basetype~Pixel

屏幕像素。

Throws:

pixel参数不是像素module:basetype~Pixel对象时,抛出异常;

Returns:
module:basetype~Coordinate -

地理坐标。转换过程忽略地理坐标的高程分量。

Example
let pixel = new hmap.basetype.Pixel(100, 50);
 let result = map.getCoordinateFromPixel(pixel);

getCrs() → {module:proj~Crs}

获取当前地图的坐标系对象。

Returns:
module:proj~Crs -

坐标系信息。

getEnvironment() → {module:light~Environment}

获取全局光照

getExtent() → {module:basetype~Extent}

获取当前地图视窗的地理范围。

Returns:
module:basetype~Extent -

地理范围,不大于当前坐标系支持的最大范围。

Example
let result = map.getExtent();

getExtentZoom(extent) → {Number}

返回包含给定extent的最适合的zoom

Parameters:
Name Type Description
extent module:basetype~Zoom

范围对象

Returns:
Number

getFogColor() → {module:style~Color}

获取雾的颜色

Returns:
module:style~Color -

雾气颜色

getGeoGridLayer() → {module:layer~GeoGridLayer}

获取地理网格(经纬网)图层对象

Returns:
module:layer~GeoGridLayer -

地理网格图层

getHeightByCoord(coord) → {Number|null}

获取指定坐标点位,在地图三维场景中的实际高程。当传入的坐标点经纬度,不在地图范围内时,或者没有地图数据时(此时webgl深度值为1),会返回null。

Parameters:
Name Type Description
coord module:basetype~Coordinate

待计算高程的坐标点。

Returns:
Number | null -

传入坐标在地图三维场景中的实际高程,单位和地图单位一致。如果是4326坐标系,可以通过地图对象上的getDegreePerMeter方法,进行地图单位和米的转换。

getHighlightColor() → {module:style~Color}

获取全局高亮颜色

Returns:
module:style~Color -

全局高亮颜色

getLandColor() → {module:style~Color}

获取陆地颜色

Returns:
module:style~Color -

陆地颜色

getLayerCount() → {Number}

获取图层数量。

Returns:
Number -

图层数量。

getLayersByName(name) → {Array.<(module:layer~Layer|module:layer~OverlayLayer)>}

根据名称获取图层对象。

Parameters:
Name Type Description
name String

图层名称。

Returns:
Array.<(module:layer~Layer|module:layer~OverlayLayer)> -

名称为给定值的图层数组。

getLayerZIndex(layer) → {Number}

获取图层的顺序(zIndex)。

Parameters:
Name Type Description
layer module:layer~Layer

图层对象

Returns:
Number -

图层的zIndex值

getMaxResolution() → {Number}

获取当前地图的最大分辨率。

Throws:

分辨率数组为空时,抛出异常;

Returns:
Number -

最大分辨率。

getMaxZoom() → {Number}

获取地图最大缩放级别。

Returns:
Number -

最大缩放级别。

getMinResolution() → {Number}

获取当前地图的最小分辨率。

Throws:

分辨率数组为空时,抛出异常;

Returns:
Number -

最小分辨率。

getMinZoom() → {Number}

获取地图最小缩放级别。

Returns:
Number -

最小缩放级别。

getPanEnable() → {Boolean}

返回一个值,指示当前地图是否允许平移。

Returns:
Boolean -

true表示允许平移,false表示不允许平移。

getPitch() → {Number}

获取地图当前的俯仰角

Returns:
Number -

地图俯仰角

getPixelFromCoordinate(coord) → {module:basetype~Pixel}

计算地理坐标对应的屏幕像素位置。起算点是当前屏幕坐标系原点。
该方法在三种情况下计算的准确度将降低:
1.当地理坐标超出地图视窗的地理范围时;
2.当地图旋转的俯仰角较大时,偏离地图中心越远准确度越低;
3.地理坐标的Z分量接近甚至超出相机高度时。

Parameters:
Name Type Description
coord module:basetype~Coordinate

地理坐标。转换过程考虑地理坐标的高程分量。

Throws:

coord参数不是坐标module:basetype~Coordinate对象时,抛出异常;

Returns:
module:basetype~Pixel -

屏幕像素。

Example
let coord = new hmap.basetype.Coordinate(120.13982, 30.34331, 0);
let result = map.getPixelFromCoordinate(coord);

getPixelRatio() → {Number}

获取设备物理像素和设备独立像素之间的比率

Returns:
Number

getResolution(zoom) → {Number}

获取地图分辨率。如果传入zoom参数,则返回对应缩放级别的分辨率,否则返回当前缩放级别的分辨率。

Parameters:
Name Type Description
zoom Number

缩放级别。

Throws:

分辨率数组为空时,抛出异常;
参数zoom比0小,或大于等于分辨率数组的长度时,抛出异常。

Returns:
Number -

地图分辨率。

getResolutions() → {Array.<Number>}

获取地图分辨率数组。

Returns:
Array.<Number> -

分辨率数组。

getRestrictedExtent() → {module:basetype~Extent}

获取允许访问的最大地理范围

Returns:
module:basetype~Extent -

允许访问的最大地理范围

getRidgeAndValleyLines(precision, mode) → {Object}

获取当前地图范围内的山脊线、山谷线矢量数据。此功能考虑到性能,没有做非常精细的计算,提取到的山脊线、山谷线仅作为示意。

Parameters:
Name Type Default Description
precision Number 5

精度,值越大,精度越高,耗时也越久,值范围为1——10,默认值为5。

mode Number 0

类型,当值为0时,同时计算山脊线、山谷线;当值为1时,仅计算山脊线;当值为2时,仅计算山谷线。默认值为0。

Returns:
Object -

一个对象,其中属性ridgeLines为山脊线,属性valleyLines为山谷线,当计算山脊线和山谷线时,山脊线和山谷线均为数组,否则为null。

getRotateAngle(type) → {Number}

获取地图当前的方位角或俯仰角

Parameters:
Name Type Description
type String

旋转类型,可选类型为"bearing"和"pitch"。"bearing"为方位角,"pitch"为俯仰角。

Returns:
Number -

方位角或俯仰角的值

getRotateEnable() → {Boolean}

返回一个值,指示当前地图是否允许旋转。

Returns:
Boolean -

true表示允许旋转,false表示不允许旋转。

getScale() → {Number}

获取当前地图比例尺分母,根据地图的分辨率、坐标系和当前级别计算得出。

Returns:
Number -

当前地图比例尺分母。

Example
let result = map.getScale();

getSkyImage() → {Image}

获取天空背景图片

Returns:
Image -

天空背景图片

getSunlight() → {module:light~SunLight}

获取日照光对象

Returns:
module:light~SunLight -

日照光对象

getViewport() → {Array.<Number>}

计算当前地图视口的像素范围。

Returns:
Array.<Number> -

像素范围。

Example
let result = map.getViewport();

getZoom(res) → {Number}

获取地图缩放级别。如果传入res参数,则在分辨率数组中寻找最接近res且不小于res的级别,否则返回地图的当前缩放级别。

Parameters:
Name Type Description
res Number

分辨率。

Returns:
Number -

缩放级别。

getZoomEnable() → {Boolean}

返回一个值,指示当前地图是否允许缩放。

Returns:
Boolean -

true表示允许缩放,false表示不允许缩放。

getZoomWithInterval() → {Number}

获取地图当前缩放层级,当创建地图时参数zoomInterval不为1,且地图缩放级别不在整数级别时,此时返回的值则有小数部分。

Returns:
Number -

地图当前缩放层级

moveMapToDiv(idOrElement)

移动地图到指定的div中。该方法,将把已创建好的地图对象,从放置当前地图对象的div元素中移除,并添加到指定的新的div中。

Parameters:
Name Type Description
idOrElement String | HTMLElement

将要放置地图的目标div,或者其id。如果目标div元素在该页面嵌套的iframe中,不能传入id,需通过iframe获取到div元素作为参数传入,可参考示例代码。

Example
...
let map = new hmap.Map(hmapDiv);
let childIframe = document.getElementById('childIframe);
let targetDiv = childIframe.contentDocument.getElementById(targetId);
map.changeMapDom(targetDiv);

panTo(coordinate)

将地图移动到指定坐标,忽略坐标的Z值。

Parameters:
Name Type Description
coordinate module:basetype~Coordinate

移动到的坐标位置

pauseFly()

暂停地图滑行

printMap()

截图功能。提供地图canvas上渲染内容的截图,地图叠加层(OverlayLayer)所添加要素为div,不包括在内。

redraw(type)

重绘地图

Parameters:
Name Type Default Description
type Number 0

可选值0|1,缺省值为0。
0:map内的所有图层都清屏,并重新绘制。
1:图层的redraw调用时会设置type为1,图层范围内重新绘制。

removeAllLayers()

去除与地图对象挂接的所有图层。图层对象脱离地图对象后依然存在,直到彻底销毁这些图层。

removeControl(control)

移除地图控件。

Parameters:
Name Type Description
control module:control~Control

地图控件

removeEnvironment()

移除全局光照

removeLayer(layer)

从地图对象的图层数组中移除指定图层。注意:图层对象脱离地图对象后依然存在,直到该图层被彻底销毁。

Parameters:
Name Type Description
layer module:layer~Layer | module:layer~OverlayLayer | module:layer~ThreeJSLayer

要删除的图层。

removeLight(light)

从地图上删除指定的精准光源

Parameters:
Name Type Description
light module:light~Light

要删除的光源

removeSkybox()

移除天空盒背景

resize()

当窗口改变时,更改相机参数,用户设置全屏或者取消全屏时,检测不到窗口变化,需要手动调用此方法

resumeFly()

继续地图滑行

rotate(type, angle, baseZero) → {Number}

按照指定的角度与旋转类型来旋转地图。

Parameters:
Name Type Default Description
type String

旋转类型,可选类型为"bearing"和"pitch"。"bearing"为方位角,表示指北针绕垂直地表方向顺时针旋转过的角度;"pitch"为俯仰角,表示视线方向和垂直地表方向形成的夹角,俯仰角的设置值若大于最大俯仰角,则按最大俯仰角设置。地图俯仰角不能小于0。

angle Number

旋转的角度,单位为度。其中,bearing:正北方向为0度,绕Z轴逆时针旋转为正;pitch:平行于屏幕为0,绕X轴逆时针旋转为正。

baseZero Boolean false

是否从0度开始旋转,true:从0度开始旋转;false:在上一个旋转角度基础上继续旋转的角度。缺省值:false。

Returns:
Number -

旋转的总角度。假如当前地图已经旋转的角度为N,那么返回值所表示的角度为N+angle。

setCenter(center, zoom)

设置地图的中心点和缩放级别。

Parameters:
Name Type Description
center module:basetype~Coordinate

地图中心点的地理坐标。设置中心点时,Z值坐标无效。

zoom Number

地图缩放级别。如果参数小于最小的缩放级别,则缩小到最小级级别;反之如果参数大于最大级别,则放大到最大级别。

Throws:

center参数不是坐标module:basetype~Coordinate对象时,抛出异常;

setCloudStatus(options)

设置地图天空云朵状态

Parameters:
Name Type Description
options null | Object

可选项,当参数为null时,不显示云朵。

Name Type Description
cloudCover Number

天空的云朵覆盖率,默认0.4,值越高云朵越多(注意:1.0不代表完全覆盖)。

shadowRatio Number

云朵底部阴影的比例,默认值0.5。

shadowThickness Number

云朵底部阴影深浅程度,默认值0.2。

timeRate Number

云朵随时间变化的速率,默认值0.7。

scale Number

云朵的缩放比例,会对云朵覆盖率有一定程度的影响,默认值0.5。

setDepthMode(mode)

地图场景纵深感模式设置,支持0和1两种。
模式0的纵深感较浅,适用于VectorTileLayer、TMSLayer等网格式图层;模式1的纵深感相当于模式0的纵深感的5倍,适用于地理解决方案图层、矢量图层、模型图层、S3MLayer、Tile3DLayer等。

Parameters:
Name Type Default Description
mode Number 0

纵深感模式

async setEnvironment(source, options) → {Promise}

设置全局光照,可以在设置天空盒之后直接调用,无需source参数

Parameters:
Name Type Description
source Array.<String> | String | module:light~AmbientLight

全局光照用到的天空盒子对应的六张图片的路径或者全景图对应的HDR文件,或环境光对象,特殊的标识为“skybox”将直接从天空盒获取环境光数据

options Object

可选项

Name Type Description
exposure Number

曝光度,默认为1,可以通过该值调整场景整体亮度;

gamma Number

Gamma校正,默认为1

renderSkybox Boolean

渲染环境光到天空盒子,会覆盖setSkybox结果

Returns:
Promise

setFlySpeedRatio(ratio)

设置地图滑行动画的速度倍率

Parameters:
Name Type Description
ratio Number

地图滑行动画的速度倍率,默认1,speedRatio大于1表示加速,小于1表示减速,小于等于0的设置无效。

Example
map.setFlySpeedRatio(2); //2倍率速度滑行

setFogColor(color)

设置雾的颜色

Parameters:
Name Type Description
color module:style~Color

雾颜色

setHighlightColor(color) → {module:Map~Map}

设置全局高亮颜色值

Parameters:
Name Type Description
color module:style~Color

全局高亮颜色值

Returns:
module:Map~Map -

地图对象

setLandColor(color)

设置地图的陆地背景色

Parameters:
Name Type Description
color module:style~Color

背景颜色

setLayerZIndex(layer, zIndex)

调整当前图层在所有图层中的位置(zIndex)。zIndex决定了图层的渲染顺序。

Parameters:
Name Type Description
layer module:layer~Layer | module:layer~OverlayLayer

要调整的图层。

zIndex Number

图层的位置。

setMaxZoom(zoom)

设置地图最大缩放级别。

Parameters:
Name Type Description
zoom Number

地图最大缩放级别。

Throws:

下述情况下将抛出异常:
1.参数zoom非整数值;
2.参数zoom小于0,或大于等于分辨率数组的长度;
3.参数zoom比最小缩放级别小。

setMinZoom(zoom)

设置地图最小缩放级别。

Parameters:
Name Type Description
zoom Number

地图最小缩放级别。

Throws:

下述情况下将抛出异常:
1.参数zoom非整数值;
2.参数zoom小于0,或大于等于分辨率数组的长度;
3.参数zoom比最大缩放级别大。

setMouseCursor(cursor)

设置鼠标样式。

Parameters:
Name Type Description
cursor String

鼠标样式。CSS中的鼠标光标值,如需自定义图标请注意以下几点:1、大小不能大于32*32 2、最好是 ico,cur格式 3、在逗号后面加通用光标

Example
map.setMouseCursor("url('/img/cursor.ico'), pointer");

setPanEnable(enablePan)

激活或者禁用平移控件。

Parameters:
Name Type Description
enablePan Boolean

true表示激活,false表示禁用。

setPixelRatio(pixelRatio)

设置设备物理像素和设备独立像素之间的比率,一般是为window.devicePixelRatio

Parameters:
Name Type Description
pixelRatio Number

范围在[0.25, 5]

setResolutions(resolutions) → {module:Map~Map}

设置地图分辨率数组。

Parameters:
Name Type Description
resolutions Array.<Number>

分辨率数组。

Returns:
module:Map~Map -

地图对象。

setRestrictedExtent(extent)

设置允许访问的最大地理范围

Parameters:
Name Type Description
extent module:basetype~Extent

允许访问的最大地理范围

setRotateEnable(enableRotate)

激活或者禁用旋转控件。

Parameters:
Name Type Description
enableRotate Boolean

true表示激活,false表示禁用。

setSkybox(images, callback)

设置天空盒背景,需要传入6个长度的图片路径数组,图片的顺序依次为前、后、上、下、左、右
不传或误传,则使用hmap.initState.resource目录下images/customSky/中的天空盒图片

Parameters:
Name Type Description
images Array.<String> | null | String | undefined

图片路径数组,如果传值为字符串,则会去resource路径下,images文件夹中寻找该字符串名称的天空盒文件夹,字符串有“blueSky”、"blueStar"、“cloudSky”、“customSky”、“night”、“seaSky”、“sunny”、“sunrise”、“twilight”等枚举可使用。

callback function | undefined

天空盒图片加载完成后的回调

Throws:

不传或误传images参数,抛出异常;

setSkyImage(img)

设置天空的背景,设置前需移除天空盒背景。若未设置此值,地图天空将按照天空盒背景或者雾化的颜色来渲染。

Parameters:
Name Type Description
img Image | String | null

Image对象或Image的url, 若值为null则不使用天空背景,此时若也未设置天空盒背景,则采用雾化颜色渲染。
图片大小建议,宽度:与屏幕宽度一致时为最佳,高度:以地图最大倾斜时,天空或雾化部分的高度为最佳。

setSplitScreenMode(splitScreen)

设置分屏模式,取值为1|2|3。默认为1不分屏,2代表左右两屏,3代表上下两屏。
注:!!!已废弃,分屏推荐使用分屏控件hmap.control.Roller或者hmap.frame.SplitScreenFrame

Parameters:
Name Type Default Description
splitScreen Number 1

分屏模式

Deprecated:
  • Yes

setZoomEnable(enableZoom)

激活或者禁用缩放控件。

Parameters:
Name Type Description
enableZoom Boolean

true表示激活,false表示禁用。

setZoomInterval(zoomInterval)

设置地图级别改变一级时,需要滚轮滚动的次数。

Parameters:
Name Type Description
zoomInterval Number

地图级别改变一级时,需要滚轮滚动的次数

startAutoRotate(type, speed)

开启自动旋转,如果处于自动旋转状态,再次调用相同方向的自动旋转则为无效操作

Parameters:
Name Type Default Description
type String clockwise

旋转方向,旋转方向分顺时针'clockwise'与逆时针'inverse',默认顺时针旋转

speed Number 1

旋转速度,默认值为1 可以设置的范围为0-100,按照需要的速率调节

stopAutoRotate()

停止自动旋转

stopFly()

停止地图滑行,销毁当前的滑行动画

transition(speed, onReady, onComplete)

场景过渡

Parameters:
Name Type Default Description
speed Number 1

场景变换速度,默认为1

onReady function | undefined

场景转换准备好,因场景过渡的原始纹理获取是个异步的过程,所以增加了回调

onComplete function | undefined

场景变换完成后回调

updateLight(light)

更新光照

Parameters:
Name Type Description
light module:light~Light

要更新的光源

useSkyboxLand(useLand)

是否使用天空盒的地面。矢量切片不建议,会破坏样式风格。

Parameters:
Name Type Description
useLand Boolean

是否使用天空盒地面

zoomIn()

调用该方法一次,地图将放大一级,直到最大级别。

zoomOut()

调用该方法一次,地图将缩小一级,直到最小级别。

zoomTo(zoom)

将地图缩放到指定级别。

Parameters:
Name Type Description
zoom Number

地图的缩放级别,类型为正整数。如果参数小于最小的缩放级别,则缩小到最小级级别;反之如果参数大于最大级别,则放大到最大级别。

zoomToExt(ext, fit)

缩放到指定的地理范围。若缩放层级超出最大层级按照最大层级显示。

Parameters:
Name Type Default Description
ext module:basetype~Extent

地理范围

fit Boolean false

是否严格包围地理范围,默认为false,设置为true使得上下或左右边界和视图重合。