SMap.Map
Zhangchao2 (讨论 | 贡献) (→参数) |
Zhangchao2 (讨论 | 贡献) |
||
(未显示1个用户的3个中间版本) | |||
第795行: | 第795行: | ||
---- | ---- | ||
− | ====removeOverlaysByType(type:Constant):void==== | + | ====removeOverlaysByType(type:SMap.Constant):void==== |
:根据overlay类型删除overlay对象。 | :根据overlay类型删除overlay对象。 | ||
======参数====== | ======参数====== | ||
− | :'''type''':Constant 覆盖物的类型。取值为:SMap.Overlay.TYPE_*。 | + | :'''type''':SMap.Constant 覆盖物的类型。取值为:SMap.Overlay.TYPE_*。 |
+ | |||
======返回值====== | ======返回值====== | ||
:void。 | :void。 | ||
第883行: | 第884行: | ||
---- | ---- | ||
− | ====removeTileLayer(layerType:[[Constant]], tileLayerId:String):void==== | + | ====removeTileLayer(layerType:[[SMap.Constant]], tileLayerId:String):void==== |
:删除地图上的叠加图层。 | :删除地图上的叠加图层。 | ||
======参数====== | ======参数====== | ||
− | :'''layerType''':[[Constant]] 地图叠加层类型。 取值为:SMap.TL_TRAFFIC,实时交通层;SMap.TL_CUSTOM_MAP,用户自定义图层。 | + | :'''layerType''':[[SMap.Constant]] 地图叠加层类型。 取值为:SMap.TL_TRAFFIC,实时交通层;SMap.TL_CUSTOM_MAP,用户自定义图层。 |
:'''tileLayerId''':String 地图叠加层Id。 | :'''tileLayerId''':String 地图叠加层Id。 | ||
第989行: | 第990行: | ||
===[鼠标工具]=== | ===[鼠标工具]=== | ||
− | ====setCurrentMouseTool(ctrlName:[[Constant]]):void==== | + | ====setCurrentMouseTool(ctrlName:[[SMap.Constant]]):void==== |
:设置鼠标当前功能。 | :设置鼠标当前功能。 | ||
======参数====== | ======参数====== | ||
− | :'''ctrlName''':[[Constant]] 鼠标当前功能选项。取值: | + | :'''ctrlName''':[[SMap.Constant]] 鼠标当前功能选项。取值: |
::(a)SMap.PAN_WHEELZOOM:焦点模式下滚轮放大缩小,拖动移图<br /> | ::(a)SMap.PAN_WHEELZOOM:焦点模式下滚轮放大缩小,拖动移图<br /> | ||
::(b)SMap.ADD_MARKER:添加标注<br /> | ::(b)SMap.ADD_MARKER:添加标注<br /> | ||
第1,055行: | 第1,056行: | ||
:'''object''':Object 事件发生的对象。 | :'''object''':Object 事件发生的对象。 | ||
− | :'''eventType''':[[Constant]] 事件类型。取值:事件类型常量。 | + | :'''eventType''':[[SMap.Constant]] 事件类型。取值:事件类型常量。 |
:'''fn''':Function 事件处理函数。 | :'''fn''':Function 事件处理函数。 | ||
第1,074行: | 第1,075行: | ||
---- | ---- | ||
− | ====removeEventListener(object:Object, eventType:[[Constant]], fn:Function):void==== | + | ====removeEventListener(object:Object, eventType:[[SMap.Constant]], fn:Function):void==== |
:注销事件。 | :注销事件。 | ||
======参数====== | ======参数====== | ||
:'''object''':Object 事件发生的对象。 | :'''object''':Object 事件发生的对象。 | ||
− | :'''eventType''':[[Constant]] 事件类型,具体见addEventListener()方法中列出的所有事件类型。 | + | :'''eventType''':[[SMap.Constant]] 事件类型,具体见addEventListener()方法中列出的所有事件类型。 |
:'''fn''':Function 事件处理函数。 | :'''fn''':Function 事件处理函数。 |
2011年3月22日 (二) 17:05的最后版本
说明
- Map类封装Ajax地图组件,对地图的操作都是通过它完成。通过创建一个Map对象并调用地图的相应方法就可以在页面中显示地图,实现基本的地图功能。
构造函数
SMap.Map(container:String, mapOption:SMap.MapOptions)
- 初始化SMap.Map类的一个新实例。
参数
- container:String 装载地图组件容器的Id,例如<div>标签的id。
- mapOption:SMap.MapOptions 地图初始化时的参数选项,目前为可选项。
示例
<head> <script type="text/javascript"> var mapObj; function mapInit() { mapObj = new SMap.Map("map");//地图初始化 } </script> </head> <body onload="mapInit();"> <div id="map" style="width:500px;height:300px"></div> </body>
方法
[获取地图状态]
getCenter():SMap.LngLat
- 返回SMap.LngLat类对象,该对象代表当前地图中心点的位置。
参数
- 无。
返回值
- SMap.LngLat 地图中心点经纬度对象。
示例
var center = mapObj.getCenter();//获取中心点经纬度对象。 alert(center.lngX+","+center.latY);//通过对象的属性返回经纬度坐标。
getZoomLevel():Number
- 返回当前地图的zoom级别。
参数
- 无。
返回值
- Number 地图zoom级别,范围为从3到17,数值越大,地图内容越详细。
示例
alert(mapObj.getZoomLevel());//通过警告框返回地图zoom级别。
getSize():SMap.Size
- 返回SMap.Size类对象,该对象表示地图视口的像素大小。
参数
- 无。
返回值
- SMap.Size 返回地图视口的像素大小。
示例
var size = mapObj.getSize(); alert(size.height+","+size.width);//通过警告框返回像素大小
getScale():Number
- 返回当前地图中心点的比例尺,即一个像素代表的距离,单位为米。
参数
- 无。
返回值
- Number 当前地图中的一个像素代表的距离,单位为米。
示例
alert(mapObj.getScale());
getPixelBounds():SMap.PixelBounds
- 返回地图视野范围矩形区域左上方和右下方的像素坐标。其中左上方像素坐标为(minX,minY),右下方坐标为(maxX,maxY)。
参数
- 无。
返回值
- SMap.PixelBounds 返回当前地图视野范围像素坐标的范围。
示例
var pixelBounds = mapObj.getPixelBounds(); alert(pixelBounds.maxX+","+ pixelBounds.maxY+","+ pixelBounds.minX+","+ pixelBounds.minY);
getLngLatBounds():SMap.LngLatBounds
- 返回SMap.LngLatBounds类对象,该对象表示地图视野范围矩形区域西南和东北角点的经纬度坐标。
参数
- 无。
返回值
- SMap.LngLatBounds 地图窗口矩形区域框经纬度坐标。
示例
var bounds=mapObj.getLngLatBounds(); alert(bounds.southWest.lngX+","+bounds.southWest.latY+";"+bounds.northEast.lngX+","+bounds.northEast.latY);
getLngLatByOffset(originalLngLat:SMap.LngLat, WEOffset:Number, SNOffset:Number, radius:Number):SMap.LngLat
- 根据原始点经纬度坐标和偏移量计算新的经纬度坐标,注意偏移量的单位为米。
参数
- originalLngLat:SMap.LngLat 原始点经纬度坐标。
- WEOffset:Number 东西方向的偏移量,向东为正,向西为负。
- SNOffset:Number 南北方向的偏移量,向北为正,向南为负。
- radius:Number 地球半径,可选项,默认为6378137米。
返回值
- SMap.LngLat 偏移后位置点的经纬度坐标。
示例
var cen = mapObj.getLngLatByOffset(new SMap.LngLat("116.39746427536011","39.9086663756386"), 5000, 5000); alert(cen.lngX+","+cen.latY);
getContinuousZoom():Boolean
- 返回地图缩放时是否具有连续缩放效果的参数。
参数
- 无。
返回值
- Boolean 如果地图缩放时带连续缩放效果返回true,否则返回false。
示例
alert(mapObj.getContinuousZoom());
getDragEnabled():Boolean
- 返回地图是否允许拖拽的状态。
参数
- 无。
返回值
- Boolean 如果允许地图拖拽返回true,否则返回false。
示例
alert(mapObj.getDragEnabled());
getZoomEnabled():Boolean
- 返回地图是否允许缩放的状态。
参数
- 无。
返回值
- Boolean 如果允许地图缩放返回true,否则返回false。
示例
alert(mapObj.getZoomEnabled());
getKeyboardEnabled():Boolean
- 返回键盘工具是否有效参数。键盘工具操作地图包括用键盘方向键移动地图和用主键盘“+”、“-”来缩放地图。
参数
- 无。
返回值
- Boolean 如果允许键盘操作地图返回true,否则返回false。
示例
alert(mapObj.getKeyboardEnabled());
[修改地图状态]
setCenter(center:SMap.LngLat):void
- 设置地图中心点的经纬度坐标。
参数
- center:SMap.LngLat 地图中心点的经纬度坐标。取值:偏数字坐标的范围:经度方向上为-180-180,纬度方向上为-85-85。
返回值
- void。
事件
- MAP_MOVE_START事件、MAP_MOVE_END事件、MAP_MOVING事件。
示例
var mapObj = new SMap.Map("mapObj"); mapObj.setCenter(new SMap.LngLat("116.39746427536011", "39.9086663756386"));
setZoomLevel(zoomLevel:Number):void
- 设置地图的缩放级别。
参数
- zoomLevel:Number 地图的zoom级别 ,范围从3到17,数值越大,图上信息越详细。如果是浮点型将进行去尾取整。
返回值
- void。
事件
- ZOOM_START事件、ZOOM_END事件、ZOOM_CHANGED事件。
示例
mapObj.setZoomLevel(17);//设置地图zoom级别为17。
setZoomAndCenter(zoom:Number, center:SMap.LngLat):void
- 同时设置地图的中心点及zoom级别。
参数
- zoom:Number 显示缩放级别。如果是浮点型将进行去尾取整。
- center:SMap.LngLat 设定的地图中心点经纬度坐标。
返回值
- void。
事件
- ZOOM_START事件、ZOOM_CHANGED事件、ZOOM_END事件、MAP_MOVE_START事件、MAP_MOVING事件、MAP_MOVE_END事件。
注释
- 如果要同时设置中心点和缩放级别,应使用Map.setZoomAndCenter方法,而不是分别调用Map.setCenter方法和Map.setZoomLevel方法。
示例
mapObj.setZoomAndCenter(17, new SMap.LngLat("116.39746427536011", "39.9086663756386"));
setContinuousZoom(isContinuous:Boolean):void
- 设置地图缩放时是否有连续缩放效果。
参数
- isContinuous:Boolean 是否具有连续缩放的效果。
返回值
- void。
示例
mapObj.setContinuousZoom(true);
setDragEnabled(dragEnabled:Boolean):void
- 设置地图是否允许拖拽。
参数
- dragEnabled:Boolean 是否允许地图拖拽。
返回值
- void。
注释
- 仅对鼠标拖拽地图有效。
示例
mapObj.setDragEnabled(false);
setZoomEnabled(zoomEnabled:Boolean):void
- 设置是否允许地图缩放。
参数
- zoomEnabled:Boolean 是否允许地图缩放。
返回值
- void。
注释
- 地图缩放方法包括通过鱼骨条缩放地图、鼠标双击放大、键盘缩放地图以及zoomIn()、zoomOut()方法。
示例
mapObj.setZoomEnabled(false);
setLngLatBounds(bounds:SMap.LngLatBounds):void
- 根据经纬度bounds设置最合适的地图位置和zoom级别。
参数
- bounds:SMap.LngLatBounds 通过西南、东北角的经纬度坐标构建的经纬度矩形区域。
返回值
- void。
事件
- ZOOM_START事件、ZOOM_CHANGED事件、ZOOM_END事件、MAP_MOVE_START事件、MAP_MOVING事件、MAP_MOVE_END事件。
示例
mapObj.setLngLatBounds(new SMap.LngLatBounds(new SMap.LngLat('58','23',1),new SMap.LngLat('116','24',1)));
zoomIn(lnglat:SMap.LngLat):void
- 放大地图的一个级别。
参数
- lnglat:SMap.LngLat 地图缩放时的焦点坐标。默认为空,即中心点放大。
返回值
- void。
事件
- ZOOM_START事件、ZOOM_END事件、ZOOM_CHANGED事件。
注释
- 除了使用该方法进行放大地图以外,还可以使用鱼骨条、鼠标双击、键盘“+”方法来放大地图。
示例
mapObj.zoomIn(new SMap.LngLat("116.39746427536011","39.9086663756386"));
zoomOut(lnglat:SMap.LngLat):void
- 缩小地图的一个级别。
参数
- lnglat:SMap.LngLat 地图缩放时的焦点坐标。默认为空,即中心点缩小。
返回值
- void。
事件
- ZOOM_START事件、ZOOM_END事件、ZOOM_CHANGED事件。
注释
- 除了使用该方法,还可以使用鱼骨条、键盘“-”方法来缩小地图。
示例
mapObj.zoomOut(new SMap.LngLat("116.39746427536011","39.9086663756386"));
panDirection(dx:SMap.Constant, dy:SMap.Constant):void
- 朝着指定的方向滑动地图宽度一半的距离。
参数
- dx:SMap.Constant :其值为SMap.EAST和SMap.WEST,其中SMap.EAST表示向右方滑动,SMap.WEST表示向左方滑动。
- dy:SMap.Constant :其值为SMap.NORTH和SMap.SOUTH,其中SMap.NORTH表示向上方滑动,SMap.SOUTH表示向下方滑动。
返回值
- void。
事件
- MAP_MOVE_START事件、MAP_MOVE_END事件、MAP_MOVING事件。
示例
mapObj.panDirection(SMap.EAST, SMap.SOUTH);//地图朝右下滑动地图宽度一半的距离。
panTo(center:SMap.LngLat):void
- 设置地图的中心点到指定的坐标。
参数
- center:SMap.LngLat :目标位置中心点经纬度。
返回值
- void。
事件
- MAP_MOVE_START事件、MAP_MOVING事件、MAP_MOVE_END事件。
示例
mapObj.panTo(new SMap.LngLat("116.39746427536011","39.9086663756386"));
panBy(position:SMap.Size, time:Number, sliding:SMap.Constant):void
- 地图按指定时间和移动方式滑动指定的像素距离。
参数
- position:SMap.Size 参数的属性width和height说明:
- 值为地图移动的像素距离。
- 正负符号来确定移动方向:
- width,正数往东(右),负数 往西(左)
- height,正数往南(下),负数 往北(上)
- time:Number 地图移动指定像素距离需要花费的时间(单位毫秒)。
- sliding:SMap.Constant 地图移动方式。取值:SMap.SLIDING_LINEAR,线性移动(默认);SMap.SLIDING_EXPO,幂指数移动;SMap.SLIDING_QUAD,四分法移动。
返回值
- void。
事件
- MAP_MOVE_START事件、MAP_MOVE_END事件、MAP_MOVING事件。
示例
mapObj.panBy(new SMap.Size(500,400),1000, SMap.SLIDING_LINEAR);
setCtrlPanelState(ctrlName:SMap.Constant, state:SMap.Constant):void
- 设置地图上的控制面板是否显示。
参数
- ctrlName:SMap.Constant 控件名称。取值为:SMap.OVERVIEW_CTRL:鹰眼;SMap.TOOLBAR_CTRL:工具条;SMap.SCALE_CTRL:比例尺。
- state:SMap.Constant 显示状态。取值为:SMap.SHOW:显示;SMap.HIDE:隐藏;SMap.MINIMIZE:最小化(只适用鹰眼)。
返回值
- void。
示例
//在地图初始化加载了鹰眼、工具条和比例尺后,可以通过以下方法控制其显示或隐藏的状态。 mapObj.setCtrlPanelState(SMap.OVERVIEW_CTRL, SMap.SHOW); //显示鹰眼 mapObj.setCtrlPanelState(SMap.OVERVIEW_CTRL, SMap.HIDE); //隐藏鹰眼 mapObj.setCtrlPanelState(SMap.OVERVIEW_CTRL, SMap.MINIMIZE); //最小化鹰眼 mapObj.setCtrlPanelState(SMap.TOOLBAR_CTRL, SMap.SHOW); //显示工具条 mapObj.setCtrlPanelState(SMap.TOOLBAR_CTRL, SMap.HIDE); //隐藏工具条 mapObj.setCtrlPanelState(SMap.SCALE_CTRL, SMap.SHOW); //显示比例尺 mapObj.setCtrlPanelState(SMap.SCALE_CTRL, SMap.HIDE); //隐藏比例尺
setOverviewState(state:SMap.Constant):void
- 通过改变参数来操纵鹰眼。
参数
- state:SMap.Constant 鹰眼状态。取值为:SMap.MINIMIZE:最小化鹰眼;SMap.SHOW:打开鹰眼,默认值为SHOW;SMap.HIDE:隐藏鹰眼。
返回值
- void。
示例
mapObj.setOverviewState(SMap.SHOW); //打开鹰眼 mapObj.setOverviewState(SMap.MINIMIZE); //最小化鹰眼 mapObj.setOverviewState(SMap.HIDE); //隐藏鹰眼
loadCtrlPanel(ctrlName:SMap.Constant, opt:Object):void
- 加载地图控制面板。
参数
- ctrlName:SMap.Constant 地图控件名称。取值为:SMap.TOOLBAR_CTRL(工具条)。
- opt:Object 加载地图控制面板参数选项。当ctrlName为TOOLBAR_CTRL时opt结构为:{toolbarPos:SMap.Point,toolbar:SMap.Constant},其中第一个属性表示工具条的位置,第二个参数表示工具条的类型(必填)。
返回值
- void。
示例
var toolbarOpt={}; toolbarOpt.toolbarPos=new SMap.Point(2,5); toolbarOpt.toolbar=SMap.SMALL; mapObj.loadCtrlPanel(SMap.TOOLBAR_CTRL,toolbarOpt);//加载鱼骨条
addControl(div:Dom):void
- 加载用户自定义控件。
参数
- div:Dom 用户自定义dom。
返回值
- void。
示例
function setButtonStyle_(button) { button.style.textDecoration = "underline"; button.style.color = "#0000cc"; button.style.backgroundColor = "white"; button.style.font = "small Arial"; button.style.border = "1px solid black"; button.style.padding = "2px"; button.style.marginBottom = "3px"; button.style.textAlign = "center"; button.style.width = "6em"; button.style.cursor = "pointer"; } function draw() { var container = document.createElement("div"); container.id = "dingding"; container.style.top = "10px"; container.style.left = "10px"; container.style.zIndex = "1005"; container.unselectable = "on"; container.style.position = "absolute"; var zoomInDiv = document.createElement("div"); setButtonStyle_(zoomInDiv); container.appendChild(zoomInDiv); zoomInDiv.appendChild(document.createTextNode("放大")); mapObj.addDomListener(zoomInDiv, "click", function(evt) { mapObj.zoomIn(); }); var zoomOutDiv = document.createElement("div"); setButtonStyle_(zoomOutDiv); container.appendChild(zoomOutDiv); zoomOutDiv.appendChild(document.createTextNode("缩小")); mapObj.addDomListener(zoomOutDiv, "click", function(evt) { mapObj.zoomOut(); }); return container; } var div = draw(); mapObj.addControl(div);
setKeyboardEnabled(enabled:Boolean):void
- 设置键盘操作是否有效。
参数
- enabled:Boolean 当该参数值为“true”时表示可以使用键盘操作地图;当为“false”时表示禁止键盘操作地图。
返回值
- void。
示例
mapObj.setKeyboardEnabled(true);
savePosition():void
- 保存地图当前中心点位置和zoom级别,只是存储下来,并不能被调用返回存储值。
参数
- 无。
返回值
- void。
示例
mapObj.savePosition();
returnToSavedPosition():void
- 返回到由上次保存的地图中心点位置和zoom级别所确定的视野范围状态。
参数
- 无。
返回值
- void。
注释
- 该方法需与 savePosition方法成对使用。
示例
mapObj.returnToSavedPosition();
clearMap():void
- 删除地图上的所有覆盖物和叠加层。
参数
- 无。
返回值
- void。
示例
mapObj.clearMap();
destroy():void
- 注销地图对象,包括地图对象内的所有对象。
参数
- 无。
返回值
- void。
注释
- 在清空存放地图的DIV前,必须先调用此方法。
示例
mapObj.destroy(); document.getElementById("map").innerHTML = "";
[添加覆盖物]
addOverlay(overlay:SMap.Overlay, isToFitView:Boolean):void
- 向地图添加覆盖物(如标记,线,面等)。
参数
- overlay:SMap.Overlay 地图覆盖对象,继承自SMap.Overlay对象。
- isToFitView:Boolean 设置是否为自动适应视野,默认为false。当设置为ture时,所添加的点线面覆盖物能自动适应地图视野级别。
返回值
- void。
事件
- ADD_OVERLAY事件。当第二个参数为true时,会触发MAP_MOVE_START事件、MAP_MOVING事件和MAP_MOVE_END事件。
注释
- 当添加SMap.GroudImage时地图会自适应到初始加载SMap.GroudImage的视野级别,并且图片左上角与地图左上角对齐。
示例
var arr = new Array(); arr.push(new SMap.LngLat(116.36890411376953 ,39.913423004886866)); arr.push(new SMap.LngLat(116.38212203979492,39.9011768955094)); arr.push(new SMap.LngLat(116.38727188110351,39.91250133090293)); arr.push(new SMap.LngLat(116.39825820922851 ,39.904600759441024)); //设置线样式 var linest = new SMap.LineStyle(); linest.alpha = 1; linest.color = 0xFF3300; linest.thickness = 3; linest.lineType=SMap.LINE_SOLID; //设置标注参数选项 var tipOption = new SMap.TipOptions(); tipOption.title="title"; tipOption.content="content"; //tip内容 //设置线的参数选项 var lineopt = new SMap.LineOptions(); lineopt.lineStyle = linest; lineopt.tipOption = tipOption; lineopt.canShowTip = true; //在地图上添加多折线覆盖物 var line = new SMap.Polyline(arr,lineopt); mapObj.addOverlay(line,true);
addOverlays(overlays:Array, azc:Boolean):void
- 向地图添加一组覆盖物(如标记,线,面等)。
参数
- overlays:Array 地图覆盖对象(继承自SMap.Overlay)的数组。
- azc:Boolean 是否自动调整视野到能在地图范围内显示这些Overlays,默认为false。
返回值
- void。
事件
- ADD_OVERLAY事件。当第二个参数为true时,会触发MAP_MOVE_START事件、MAP_MOVING事件和MAP_MOVE_END事件。
示例
//在本例中,marker、line、polygon分别是标注点、多折线、多边形的覆盖物。代码片将三种覆盖物加到数组中,然后通过该方法同时显示到地图上。 var arr = new Array(); arr.push(marker); arr.push(line); arr.push(polygon); mapObj.addOverlays(arr,true);
updateOverlay(overlay:SMap.Overlay):void
- 更新Overlay对象,可以更新Marker、Polyline及Area对象。使用该方法既可以更新整个对象,也可以更新原始对象的部分属性特征。
参数
- overlay:SMap.Overlay 地图覆盖物对象,可以更新Marker、Polyline及Area对象。
返回值
- void。
事件
- ADD_OVERLAY事件。
注释
- 使用该方法更新SMap.Marker、SMap.Polyline及SMap.Area时不能更新其经纬度坐标。
示例
//以下代码片使用updateOverlay()方法更新原始对象的部分属性特征。 function addLine() { var arr = new Array(); arr.push(new SMap.LngLat(116.36890411376953 ,39.913423004886866)); arr.push(new SMap.LngLat(116.38212203979492,39.9011768955094)); arr.push(new SMap.LngLat(116.38727188110351,39.91250133090293)); arr.push(new SMap.LngLat(116.39825820922851 ,39.904600759441024)); var tipOption = new SMap.TipOptions(); tipOption.title="多折线"; tipOption.content="这是一条多折线"; var lineOpt = new SMap.LineOptions(); lineOpt.tipOption = tipOption; lineOpt.canShowTip = true; var polyline = new SMap.Polyline(arr,lineOpt); polyline.id = "polyline"; mapObj.addOverlay(polyline,true); } function updateline() { var obj= mapObj.getOverlayById("polyline"); obj.option.tipOption.title="更新后的线"; obj.option.tipOption.content="这是一个更新后的线"; obj.option.canShowTip=true; mapObj.updateOverlay(obj); }
setOverlayEditableById(overlayId:String, isEditable:Boolean):void
- 设置overlay是否为可编辑状态。
参数
- overlayId:String 要修改的overlay对象的id。
- isEditable:Boolean overlay是否为可编辑状态。缺省该参数时,默认为不可编辑状态。
返回值
- void。
注释
- 圆形覆盖物目前无法编辑。
示例
mapObj.setOverlayEditableById("polyline",true);
setOverlayToTopById(overlayId:String):void
- 设置指定的覆盖物位于同类覆盖物的最顶层。
参数
- overlayId:String 要置顶的overlay对象的id。
返回值
- void。
注释
- 在地图引擎中不同类覆盖物处于不同层。setOverlayToTopById方法只能调整同层覆盖物之间的层次关系,不能调整不同层覆盖物之间的层次关系。
本地图引擎的层次关系为:Box位于顶层;Marker、GroundImage、Label位于中间层;Polyline、Area位于最低层。
示例
mapObj.setOverlayToTopById("marker"); //将ID为marker的点覆盖物置于所有点的最顶层
setOverlayVisibleById(overlayId:String, isVisible:Boolean):void
- 设置overlay是否显示。
参数
- overlayId:String 覆盖物对象的id。
- isVisible:Boolean 指定id的覆盖物是否可见。
返回值
- void。
示例
mapObj.setOverlayVisibleById(“marker”,true); //marker是地图上已存在的点对象ID。
setFitview(overlays:Array):void
- 设置覆盖物到合适的地图视野级别。
参数
- overlays:Array 覆盖物对象列表或者覆盖物对象ID列表。
返回值
- void。
事件
- ZOOM_CHANGED事件、ZOOM_END事件、MAP_MOVE_END事件。
示例
mapObj.setFitview(overlayArr);//overlayArr为覆盖物对象列表
getOverlayById(overlayId:String):SMap.Overlay
- 通过Id获得指定的覆盖物对象,并可以通过该对象获得对象属性值。
参数
- overlayId:String 覆盖物对象列表或者覆盖物对象ID列表。
返回值
- SMap.Overlay 指定Id的覆盖物对象。
注释
- 要想获得指定覆盖物对象,首先必须添加该覆盖物。
示例
var overlay=mapObj.getOverlayById("marker"); alert(overlay.lnglat.lngX);
getOverlaysByType(type:SMap.Constant):Array
- 根据overlay类型得到overlay对象。
参数
- type:SMap.Constant 覆盖物的类型。取值为:SMap.Overlay.TYPE_*。
返回值
- Array 指定类型的覆盖物对象数组。
注释
- 要想获得指定覆盖物对象,首先必须添加该覆盖物。
- SMap.Overlay.TYPE_AREA类型覆盖物返回二维数组,其它类型覆盖物均返回一维数组。
示例1
function getOverlaysByType(type) { var arr = mapObj.getOverlaysByType(type); if(arr.length==0){ return ; } if(arr[0].TYPE==SMap.Overlay.TYPE_MARKER){ alert("第一个对象的Id是:"+arr[0].id+";位置点是:"+arr[0].lnglat.lngX+";"+arr[0].lnglat.latY); } }
示例2
//SMap.Overlay.TYPE_AREA类型覆盖物返回二维数组 var arr=mapObj.getOverlaysByType(SMap.Overlay.TYPE_AREA); for(var i=0;i<arr.length;i++) for(var j=0;j<arr.length;j++) if (arr[i][j]!=null && arr[i][j].TYPE==SMap.Overlay.TYPE_CIRCLE){ alert(arr[i][j].TYPE+"/"+arr[i][j].id); }
removeOverlayById(overlayId:String):void
- 删除地图上指定id的地图覆盖物。
参数
- overlayId:String 待删除对象的Id。
返回值
- Array 指定类型的覆盖物对象数组。
事件
- REMOVE_OVERLAY事件。
示例
mapObj.removeOverlayById("marker"); //删除Id为"marker"的对象
removeOverlaysByType(type:SMap.Constant):void
- 根据overlay类型删除overlay对象。
参数
- type:SMap.Constant 覆盖物的类型。取值为:SMap.Overlay.TYPE_*。
返回值
- void。
事件
- REMOVE_OVERLAY事件。
示例
mapObj.removeOverlaysByType(SMap.Overlay.TYPE_MARKER); //删除所有的标识点
removeOverlay(overlay:SMap.Overlay):void
- 删除地图上指定的地图覆盖物。
参数
- overlay:SMap.Overlay 待删除的对象。
返回值
- void。
事件
- REMOVE_OVERLAY事件。
示例
mapObj.removeOverlay(line) ; //删除line覆盖物对象。
removeOverlays(overlays:Array):void
- 一次删除地图上多个覆盖物对象。
参数
- overlays:Array 待删除的覆盖物对象数组。
返回值
- void。
事件
- REMOVE_OVERLAY事件。
示例
mapObj.removeOverlays(arr);
removeAllOverlays():void
- 删除地图上所有的覆盖物(overlays)对象。
参数
- 无。
返回值
- void。
事件
- CLEAR_OVERLAYS事件。
示例
mapObj.removeAllOverlays(); //删除mapObj地图对象上所有覆盖物。
[叠加层]
addTileLayer(tileLayer:SMap.TileLayer):void
- 向地图叠加切片图层。
参数
- tileLayer:SMap.TileLayer 地图叠加切片图层对象。
返回值
- void。
注释
- 如果是实时交通层,当zoom大于等于10以上显示,目前支持的城市有:北京、上海。
示例1
var tl = new SMap.TileLayer(SMap.TL_TRAFFIC); //添加实时交通层 mapObj.addTileLayer(tl);
示例2
var tileLayerOptions =new SMap.TileLayerOptions(); //添加用户自定义图层 tileLayerOptions.tileUrl="http://your url?z=[z]&x=[x]&y=[y]"; tileLayerOptions.layerId="layer1"; var tl = new SMap.TileLayer(SMap.TL_CUSTOM_MAP,tileLayerOptions); mapObj.addTileLayer(tl);
removeTileLayer(layerType:SMap.Constant, tileLayerId:String):void
- 删除地图上的叠加图层。
参数
- layerType:SMap.Constant 地图叠加层类型。 取值为:SMap.TL_TRAFFIC,实时交通层;SMap.TL_CUSTOM_MAP,用户自定义图层。
- tileLayerId:String 地图叠加层Id。
返回值
- void。
注释
- 删除SMap.TL_TRAFFIC图层时,不用指定tileLayerId参数。
示例1
mapObj.removeTileLayer(SMap.TL_TRAFFIC);
示例2
mapObj.removeTileLayer(SMap.TL_CUSTOM_MAP, "layer1");
[右键菜单]
addMenuItems(arr:Array):Array
- 添加右键菜单的菜单项,传入的参数是数组,可以一次传入多个。
参数
- arr:Array SMap.MenuItem实例化对象的数组。
返回值
- Array 说明:返回SMap.MenuItem的id数组,与传入的SMap.MenuItem数组相对应。如果在传入SMap.MenuItem对象有id时,直接把这个id返回,如果没有,自动生成一个id。
示例
//下列代码片中的menuItem1、menuItem2是已经实例化的SMap.MenuItem对象。 arr.push(menuItem1); arr.push(menuItem2); var test= mapObj.addMenuItems(arr);
- 删除右键菜单子项。
参数
- menuItemId:String|Array 右键菜单的id或者Id集合。
返回值
- void。
示例
mapObj.removeMenuItems('22');
[信息窗口]
openTip(position:SMap.LngLat, tipOptions):void
- 显示地图的信息窗口。
参数
- position:SMap.LngLat 信息窗口的显示位置。
- tipOptions:SMap.TipOptions tip窗口显示内容,显示风格选项。
返回值
- void。
事件
TIP_OPEN事件。
示例
//本例中,tipOption是事先定义好的tip选项对象。 mapObj.openTip(new SMap.LngLat(116.39825820922851,39.904600759441024),tipOption);
openOverlayTip(overlayId:String):void
- 显示SMap.Overlay对象的信息窗口。
参数
- overlayId:String 要打开tip的覆盖物的Id。
返回值
- void。
事件
TIP_OPEN事件。
示例
//本例中,“marker”是事先定义好的标注点的id。 mapObj.openOverlayTip('marker');
closeTip():void
- 关闭信息窗口。
参数
- 无。
返回值
- void。
事件
TIP_BEFORE_CLOSE事件、TIP_CLOSE事件。
示例
mapObj.closeTip(); //关闭mapObj对象上所有的信息窗口。
[鼠标工具]
setCurrentMouseTool(ctrlName:SMap.Constant):void
- 设置鼠标当前功能。
参数
- ctrlName:SMap.Constant 鼠标当前功能选项。取值:
- (a)SMap.PAN_WHEELZOOM:焦点模式下滚轮放大缩小,拖动移图
- (b)SMap.ADD_MARKER:添加标注
- (c)SMap.DRAW_LINE:画线
- (d)SMap.DRAW_POLYGON:画多边形
- (e)SMap.DRAW_RECTANGLE:画矩形
- (f)SMap.DRAW_CIRCLE:画圆
- (g)SMap.RULER:测直线距离,当长度小于1000米时,结果单位为米; 大于等于1000米时,结果单位为公里,并保留小数点后两位
- (h)SMap.COMPUTE_AREA:测量多边形的面积, 当面积小于1000000米时,结果单位为平方米; 大于等于1000000米时,结果单位为平方公里,并保留小数点后两位
- (i)SMap.FRAME_ZOOMIN:拉框放大
- (j)SMap.FRAME_ZOOMOUT:拉框缩小
- (a)SMap.PAN_WHEELZOOM:焦点模式下滚轮放大缩小,拖动移图
返回值
- void。
事件
- (1)PAN_WHEELZOOM能触发的事件类型:ZOOM_START事件、ZOOM_END事件、ZOOM_CHANGED事件MAP_MOVE_START事件、MAP_MOVE_END事件、MAP_MOVING事件
- (2)ADD_MARKER能触发的事件:ADD_OVERLAY事件
- (3)DRAW_RECTANGLE、DRAW_CIRCLE能触发的事件:MOUSE_DOWN事件、MOUSE_UP事件、MOUSE_CLICK事件、ADD_OVERLAY事件
- (4)DRAW_LINE 、DRAW_POLYGON能触发的事件类型: MOUSE_UP事件、MOUSE_DOWN事件、MOUSE_UP事件、ADD_OVERLAY事件
- (5)FRAME_ZOOMIN、FRAME_ZOOMOUT能触发的事件类型:ZOOM_START事件、ZOOM_END事件、ZOOM_CHANGED事件
- (6)RULER能触发的事件类型:ADD_OVERLAY事件、MEASURE_END、MEASURE_STEP事件
- (7)COMPUTE_AREA能触发的事件类型:ADD_OVERLAY事件、MEASURE_END事件
示例
mapObj.setCurrentMouseTool(SMap.DRAW_LINE); //通过鼠标画线 mapObj.setCurrentMouseTool(SMap.DRAW_RECTANGLE); //通过鼠标画矩形 mapObj.setCurrentMouseTool(SMap.DRAW_POLYGON); //通过鼠标画多边形 mapObj.setCurrentMouseTool(SMap.ADD_MARKER); //鼠标标注 mapObj.setCurrentMouseTool(SMap.PAN_WHEELZOOM); //通过鼠标滑轮放大、缩小、拖动地图,此为鼠标默认的功能 mapObj.setCurrentMouseTool(SMap.COMPUTE_AREA); mapObj.setCurrentMouseTool(SMap.FRAME_ZOOMIN); mapObj.setCurrentMouseTool(SMap.RULER); mapObj.setCurrentMouseTool(SMap.DRAW_CIRCLE);
[GSP行业应用]
markerMoveTo(markerId:String, lnglat:SMap.LngLat):void
- 开始移动指定的marker对象。
参数
- markerId:String SMap.Marker对象的id。
- lnglat:SMap.LngLat 目标点的经纬度坐标。
返回值
- void。
注释
- 要想调用此方法,必须先使用Map.addOverlay()方法在地图上添加marker对象。
示例
mapObj.markerMoveTo("mark", new SMap.LngLat(116.398258, 39.9046));
[注册(注销)事件]
addEventListener(object:Object, eventType:SMap.Constant, fn:Function):void
- 添加(注册)事件处理函数,当eventType事件发生时,执行fn方法。
参数
- object:Object 事件发生的对象。
- eventType:SMap.Constant 事件类型。取值:事件类型常量。
- fn:Function 事件处理函数。
返回值
- void。
注释
- 可以向一个事件注册多个事件处理函数,在事件发生时,事件处理函数按注册时的顺序执行。
示例
//下面的代码片段定义了一个函数,执行的操作为隐藏鹰眼。 //然后把这个函数注册到开始缩放地图事件上,当开始缩放地图时时,执行该方法,结果为缩放地图之前,隐藏鹰眼。 function startZoom(event) { mapObj.setOverviewState(SMap.HIDE); } mapObj.addEventListener(mapObj,SMap.ZOOM_START,startZoom);
removeEventListener(object:Object, eventType:SMap.Constant, fn:Function):void
- 注销事件。
参数
- object:Object 事件发生的对象。
- eventType:SMap.Constant 事件类型,具体见addEventListener()方法中列出的所有事件类型。
- fn:Function 事件处理函数。
返回值
- void。
示例
//下面的代码片段卸载了一个地图完成事件函数。 mapObj.removeEventListener(mapObj,SMap.MAP_READY, mapReady);
addDomListener(div:Dom, eventType:String, fn:Function):void
- 注册div向外发送的事件。
参数
- div:Dom 事件发生的对象。
- eventType:String 事件类型。取值:click、mousemove、mousedown、mouseout、mouseover、mouseup。
- fn:Function 事件处理函数。
返回值
- void。
示例
var zoomInDiv = document.createElement("div"); mapObj.addDomListener(zoomInDiv, "click", function(evt) { mapObj.zoomIn(); });
[地图工具]
fromLngLatToContainerPixel(lnglat:SMap.LngLat):SMap.Point
- 将点的经纬度坐标转换成容器的屏幕坐标。
参数
- lnglat:SMap.LngLat 点的经纬度坐标。
返回值
- SMap.Point 返回点的屏幕坐标。
示例
var lng=mapObj.getCenter().lngX; var lat=mapObj.getCenter().latY; var pixel=mapObj.fromLngLatToContainerPixel(new SMap.LngLat(lng,lat)); alert(pixel.x+";"+pixel.y);
fromContainerPixelToLngLat(containerPt:SMap.Point):SMap.LngLat
- 将点的屏幕坐标转换为经纬度坐标。
参数
- containerPt:SMap.Point 点的屏幕坐标。
返回值
- SMap.LngLat 返回点的经纬度坐标。
示例
var lnglat=mapObj.fromContainerPixelToLngLat(new SMap.Point(250,150)); alert(lnglat.lngX+";"+lnglat.latY);
文档更新时间: 2011-03-22