Summary
Methods:
addControl |
添加一个地图控件。注意:同类型的控件只能添加一个,之后的都会被忽略,起不到控件本来的作用 |
addLayer |
添加图层。将图层添加到图层容器中。通过zIndex来确定图层在图层容器中的上下压盖顺序,值越大,会压盖值小的图层,故显示在上面。如果图层已经添加到地图上,则不会执行添加操作 |
addLayers |
添加一组图层。该方法根据图层在数组中的先后顺序,依次将图层添加到地图上。 |
destroy |
地图销毁。和Map相关的事件、控件、DOM元素以及地图对象本身都将从内存中移除。 |
detectFeaturesAtPixel |
在地图上搜索给定像素附近的地理要素/模型。注意:无法搜索图片式图层中的地理要素/模型。 |
disableInteractive |
取消和要素的交互 |
enableInteractive |
激活和要素的交互,要素所在图层的enableHashCode=true时可以进行交互。 |
flyTo |
滑行动画实现地图移动倾斜缩放 |
getAllLayers |
获取加载到地图上的所有图层。 |
getCenter |
计算地图视窗中心的地理坐标。 |
getControlByType |
获取指定类型的控件。 |
getControls |
获取添加到地图上的所有控件。 |
getCoordinateFromPixel |
计算屏幕像素位置所对应的地理坐标。 |
getCrs |
获取当前地图的坐标系对象。 |
getExtent |
获取当前地图视窗的地理范围。 |
getHighlightColor |
获取全局高亮颜色 |
getLayerCount |
获取图层数量。 |
getLayersByName |
根据名称获取图层对象。 |
getLayerZIndex |
获取图层的顺序。 |
getMaxResolution |
获取当前地图的最大分辨率。 |
getMaxZoom |
获取地图最大缩放级别。 |
getMinResolution |
获取当前地图的最小分辨率。 |
getMinZoom |
获取地图最小缩放级别。 |
getPanEnable |
返回一个值,指示当前地图是否允许平移。 |
getPixelFromCoordinate |
计算地理坐标对应的屏幕像素位置。起算点是当前屏幕坐标系原点。 |
getResolution |
获取地图分辨率。如果传入zoom参数,则返回对应缩放级别的分辨率,否则返回当前缩放级别的分辨率。 |
getResolutions |
获取地图分辨率数组。 |
getRestrictedExtent |
获取允许访问的最大地理范围 |
getScale |
获取当前地图比例尺分母,根据地图的分辨率、坐标系和当前级别计算得出。 |
getViewport |
计算当前地图视口的像素范围。 |
getZoom |
获取地图缩放级别。如果传入res参数,则在分辨率数组中寻找最接近res且不小于res的级别,否则返回地图的当前缩放级别。 |
getZoomEnable |
返回一个值,指示当前地图是否允许缩放。 |
printMap |
打印地图。如果地图存在多个canvas容器,只打印最下方的canvas容器里的内容。 |
redraw |
重绘地图 |
removeAllLayers |
去除与地图对象挂接的所有图层。图层对象脱离地图对象后依然存在,直到彻底销毁这些图层。 |
removeControl |
移除地图控件。 |
removeLayer |
从地图对象的图层数组中移除指定图层。注意:图层对象脱离地图对象后依然存在,直到该图层被彻底销毁。 |
setCenter |
设置地图的中心点和缩放级别。 |
setHighlightColor |
设置全局高亮颜色值 |
setLayerZIndex |
调整当前图层在所有图层中的位置(zIndex)。zIndex决定了图层的渲染顺序。 |
setMaxZoom |
设置地图最大缩放级别。 |
setMinZoom |
设置地图最小缩放级别。 |
setPanEnable |
激活或者禁用平移控件。 |
setResolutions |
设置地图分辨率数组。 |
setRestrictedExtent |
设置允许访问的最大地理范围 暂时未实现 |
setZoomEnable |
激活或者禁用缩放控件。 |
stopFly |
停止地图滑行,销毁当前的滑行动画 |
zoomIn |
调用该方法一次,地图将放大一级,直到最大级别。 |
zoomOut |
调用该方法一次,地图将缩小一级,直到最小级别。 |
zoomTo |
将地图缩放到指定级别。 |
zoomToExt |
缩放到指定的地理范围。 |
Constructor
new Map(divid, options, callback)
Parameters:
Name | Type | Description | ||||||||||||||||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
divid |
String | HTMLElement | 一个div元素id属性值或者html元素。Map对象被构造的同时,会在该div内自动创建一个canvas元素作为图层容器。 |
||||||||||||||||||||||||||||||
options |
Object | 地图选项,其中坐标系选项是必须要指明的。
|
||||||||||||||||||||||||||||||
callback |
function | 地图初始化回调函数,地图其他逻辑的编写都要在回调函数中开始执行。默认执行函数:控制台输出"The map is completed!" |
Example
//要在body元素中添加<div id="hmap"></div>
let res=[
1.40625,//全球 360/256
0.703125,
0.3515625,
0.17578125,
0.087890625,
0.0439453125,
0.02197265625,
0.010986328125,
0.0054931640625,
0.00274658203125,
0.001373291015625,
0.0006866455078125,
0.00034332275390625,
0.000171661376953125,
0.0000858306884765629,
0.0000429153442382814,
0.000021457672119140625,
0.000010728836059570312,
0.000005364418029785156,//街道
0.000002682209014892578,
0.000001341104507446289];//地图分辨率
let coord = new hmap.basetype.Coordinate(120.435078, 30.19345, 0);
let mapOptions = {
zoom: 12,//地图初始化时的级别
center: coord,//地图初始化时的中心点
resolutions: res,//地图的分辨率数组
crs:new hmap.proj.Crs('4326')//地图采用的坐标系
};
let map = new hmap.Map("hmap", mapOptions,callback);//"hmap"为地图容器div元素的id
//Map对象初始化完成后执行的方法
function callback(){
console.log("Map 对象初始化完成!");
}
Methods
-
addControl(control)
-
添加一个地图控件。注意:同类型的控件只能添加一个,之后的都会被忽略,起不到控件本来的作用
Parameters:
Name Type Description control
module:control~Control 地图控件。
Throws:
当添加重复控件的时候会抛出异常
Example
let map = new hmap.Map('hmap', mapOptions);//'hmap'为地图容器div元素的id名 let panControl = new hmap.control.Pan(); map.addControl(panControl);
-
addLayer(layer, zIndex)
-
添加图层。将图层添加到图层容器中。通过zIndex来确定图层在图层容器中的上下压盖顺序,值越大,会压盖值小的图层,故显示在上面。如果图层已经添加到地图上,则不会执行添加操作
Parameters:
Name Type Description layer
module:layer~Layer 图层对象。
zIndex
Number 一个整数,用以指定Layer在图层容器中的上下叠加順序,值越大,会压盖值小的图层,故显示在上面。不传或传null时,会自动赋值:该值取该图层容器中所有图层zIndex最大值+1。
Throws:
当zIndex不为整数的时候
Example
let map = new hmap.Map("hmap", mapOptions); const vecLayer1 = new hmap.layer.VectorLayer(); map.addLayer(vecLayer1,3); const vecLayer2 = new hmap.layer.VectorLayer(); map.addLayer(vecLayer2,null);
-
addLayers(layers)
-
添加一组图层。该方法根据图层在数组中的先后顺序,依次将图层添加到地图上。
Parameters:
Name Type Description layers
Array.<module:layer~Layer> 图层数组。
Example
let map = new hmap.Map("hmap", mapOptions);//"hmap"为地图容器div元素的id名 let tileOrigin = new hmap.basetype.Coordinate(-180, 90); let tmsOptions = { matrixOrigin: tileOrigin,//切片原点 dataFormat: "png"//切片文件的格式 }; let tmsLayer = new hmap.layer.TMSLayer("杭州地图", "http://ip:port/GeoData/map/SpiritMap/vec/", tmsOptions);//url地址为:地图切片的地址 map.addLayer(tmsLayer); let vecLayer1 = new hmap.layer.VectorLayer("矢量图层1"); let vecLayer2 = new hmap.layer.VectorLayer('矢量图层2');
-
destroy()
-
地图销毁。和Map相关的事件、控件、DOM元素以及地图对象本身都将从内存中移除。
-
detectFeaturesAtPixel(pixel, layerNames, tolerance) → {Array.<Object>}
-
在地图上搜索给定像素附近的地理要素/模型。注意:无法搜索图片式图层中的地理要素/模型。
Parameters:
Name Type Default Description pixel
module:basetype~Pixel 一个屏幕像素。
layerNames
Array.<String> null 图层名称组成的数组。返回的地理要素/模型仅限于指定的图层之内,如果不指定,则查询所有图层。
tolerance
Number 5 容差值,默认值为5,单位为像素。在容差范围内搜索到的地理要素/模型都会作为结果返回。
Returns:
Array.<Object> -地理要素/模型的数组。如果没有检测到任何对象则返回空数组。
Example
let pixel = new hmap.basetype.Pixel(200, 100); let layerName="测试"; let results = map.detectFeaturesAtPixel(pixel, [layerName], 3);
-
disableInteractive()
-
取消和要素的交互
-
enableInteractive()
-
激活和要素的交互,要素所在图层的enableHashCode=true时可以进行交互。
要素包含{module:feature~Vector};
交互行为:onClick、onHover -
flyTo(options, finishCallback)
-
滑行动画实现地图移动倾斜缩放
Parameters:
Name Type Description options
Object 动画选项
Name Type Description desCoord
module:basetype~Coordinate 移动到的目标位置
desZoom
Number 缩放到的目标级别
duration
Number 动画持续时间,以毫秒为单位 默认1500毫秒
finishCallback
function 滑行动画结束后回调
Example
map.flyTo({ desCoord:new hmap.basetype.Coordinate(120,30), duration:5000, desZoom:15 }, function(){ console.log("滑行结束"); })
-
getAllLayers(type) → {Array.<module:layer~Layer>}
-
获取加载到地图上的所有图层。
Parameters:
Name Type Default Description type
Boolean 1 一个整数,表示要返回哪些类型的图层,默认值为1。
1 返回所有图层,包括地图叠加层。
0 返回的图层中不包含地图叠加层。 -
getCenter() → {module:basetype~Coordinate}
-
计算地图视窗中心的地理坐标。
-
getControlByType(controlType)
-
获取指定类型的控件。
Parameters:
Name Type Description controlType
String 控件类型。有以下几种枚举值:
hmap.control.controlType.DrawFeature
hmap.control.controlType.Handler
hmap.control.controlType.Magnifier
hmap.control.controlType.Measure
hmap.control.controlType.MiniMap
hmap.control.controlType.MousePosition
hmap.control.controlType.MouseTipControl
hmap.control.controlType.Pan
hmap.control.controlType.Plot
hmap.control.controlType.Rotate
hmap.control.controlType.ScaleBar
hmap.control.controlType.ZoomExample
let zoom=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对象时,抛出异常;
Example
let map = new hmap.Map("hmap", mapOptions, callback);//"hmap"为地图容器div元素的id名 //Map对象初始化完成后执行的方法 function callback(){ let pixel = new hmap.basetype.Pixel(100, 50); let result = map.getCoordinateFromPixel(pixel); console.log(result); //new hmap.basetype.Coordinate(120.13982, 30.34331, 0)在地图未旋转的情况下可以得到该测试结果 }
-
getCrs() → {module:proj~Crs}
-
获取当前地图的坐标系对象。
-
getExtent() → {module:basetype~Extent|null}
-
获取当前地图视窗的地理范围。
Example
let map = new hmap.Map("hmap", mapOptions, callback);//"hmap"为地图容器div元素的id名 //Map对象初始化完成后执行的方法 function callback(){ let result = map.getExtent(); console.log(result); // new hmap.basetype.Extent(120.108235,30.176284,120.761921,30.210616) }
-
getHighlightColor() → {module:style~Color}
-
获取全局高亮颜色
Returns:
module:style~Color -
getLayerCount() → {Number}
-
获取图层数量。
Returns:
Number -图层数量。
-
getLayersByName(name) → {Array.<module:layer~Layer>}
-
根据名称获取图层对象。
Parameters:
Name Type Description name
String 图层名称。
-
getLayerZIndex(layer) → {Number}
-
获取图层的顺序。
Parameters:
Name Type Description layer
module:layer~Layer 图层对象
Returns:
Number -图层的zIndex值
-
getMaxResolution() → {Number}
-
获取当前地图的最大分辨率。
Returns:
Number -最大分辨率。
-
getMaxZoom() → {Number}
-
获取地图最大缩放级别。
Returns:
Number -最大缩放级别。
-
getMinResolution() → {Number}
-
获取当前地图的最小分辨率。
Returns:
Number -最小分辨率。
-
getMinZoom() → {Number}
-
获取地图最小缩放级别。
Returns:
Number -最小缩放级别。
-
getPanEnable() → {Boolean}
-
返回一个值,指示当前地图是否允许平移。
Returns:
Boolean -true表示允许平移,false表示不允许平移。
-
getPixelFromCoordinate(coord) → {module:basetype~Pixel}
-
计算地理坐标对应的屏幕像素位置。起算点是当前屏幕坐标系原点。
该方法在三种情况下计算的准确度将降低:
1.当地理坐标超出地图视窗的地理范围时;
2.当地图旋转的俯仰角较大时,偏离地图中心越远准确度越低;
3.地理坐标的Z分量接近甚至超出相机高度时。Parameters:
Name Type Description coord
module:basetype~Coordinate 地理坐标。转换过程考虑地理坐标的高程分量。
Throws:
coord参数不是坐标module:basetype~Coordinate对象时,抛出异常;
Example
let map = new hmap.Map("hmap", mapOptions, callback);//"hmap"为地图容器div元素的id名 //Map对象初始化完成后执行的方法 function callback(){ let coord = new hmap.basetype.Coordinate(120.13982, 30.34331, 0); let result = map.getPixelFromCoordinate(coord); console.log(result); //new hmap.basetype.Pixel(100, 50)在地图未旋转的情况下可以得到该测试结果 }
-
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}
-
获取允许访问的最大地理范围
-
getScale() → {Number}
-
获取当前地图比例尺分母,根据地图的分辨率、坐标系和当前级别计算得出。
Returns:
Number -当前地图比例尺分母。
Example
let map = new hmap.Map("hmap", mapOptions, callback);//"hmap"为地图容器div元素的id名 //Map对象初始化完成后执行的方法 function callback(){ let result = map.getScale(); console.log(result); //54070.29327392578 }
-
getViewport() → {Array.<Number>}
-
计算当前地图视口的像素范围。
Returns:
Array.<Number> -像素范围。
Example
let map = new hmap.Map("hmap", mapOptions, callback);//"hmap"为地图容器div元素的id名 //Map对象初始化完成后执行的方法 function callback(){ let result = map.getViewport(); console.log(result); // [0, 0, 1904, 100] }
-
getZoom(res) → {Number}
-
获取地图缩放级别。如果传入res参数,则在分辨率数组中寻找最接近res且不小于res的级别,否则返回地图的当前缩放级别。
Parameters:
Name Type Description res
Number 分辨率。
Returns:
Number -缩放级别。
-
getZoomEnable() → {Boolean}
-
返回一个值,指示当前地图是否允许缩放。
Returns:
Boolean -true表示允许缩放,false表示不允许缩放。
-
printMap()
-
打印地图。如果地图存在多个canvas容器,只打印最下方的canvas容器里的内容。
-
redraw()
-
重绘地图
-
removeAllLayers()
-
去除与地图对象挂接的所有图层。图层对象脱离地图对象后依然存在,直到彻底销毁这些图层。
-
removeControl(control)
-
移除地图控件。
Parameters:
Name Type Description control
module:control~Control 地图控件
-
removeLayer(layer)
-
从地图对象的图层数组中移除指定图层。注意:图层对象脱离地图对象后依然存在,直到该图层被彻底销毁。
Parameters:
Name Type Description layer
module:layer~Layer | module:layer~OverlayLayer 要删除的图层。
-
setCenter(center, zoom)
-
设置地图的中心点和缩放级别。
Parameters:
Name Type Description center
module:basetype~Coordinate 地图中心点的地理坐标。设置中心点时,Z值坐标无效。
zoom
Number 地图缩放级别。如果参数小于最小的缩放级别,则缩小到最小级级别;反之如果参数大于最大级别,则放大到最大级别。
Throws:
center参数不是坐标module:basetype~Coordinate对象时,抛出异常;
-
setHighlightColor(color) → {module:Map~Map}
-
设置全局高亮颜色值
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比最大缩放级别大。 -
setPanEnable(enablePan)
-
激活或者禁用平移控件。
Parameters:
Name Type Description enablePan
Boolean true表示激活,false表示禁用。
-
setResolutions(resolutions) → {module:Map~Map}
-
设置地图分辨率数组。
Parameters:
Name Type Description resolutions
Array.<Number> 分辨率数组。
-
setRestrictedExtent(extent)
-
设置允许访问的最大地理范围 暂时未实现
Parameters:
Name Type Description extent
module:basetype~Extent 允许访问的最大地理范围
-
setZoomEnable(enableZoom)
-
激活或者禁用缩放控件。
Parameters:
Name Type Description enableZoom
Boolean true表示激活,false表示禁用。
-
stopFly()
-
停止地图滑行,销毁当前的滑行动画
-
zoomIn()
-
调用该方法一次,地图将放大一级,直到最大级别。
-
zoomOut()
-
调用该方法一次,地图将缩小一级,直到最小级别。
-
zoomTo(zoom)
-
将地图缩放到指定级别。
Parameters:
Name Type Description zoom
Number 地图的缩放级别,类型为正整数。如果参数小于最小的缩放级别,则缩小到最小级级别;反之如果参数大于最大级别,则放大到最大级别。
-
zoomToExt(ext)
-
缩放到指定的地理范围。
Parameters:
Name Type Description ext
module:basetype~Extent 地理范围,超出最大层级按照最大层级显示。