SMap.Map

跳转到: 导航, 搜索
(参数)
 
(未显示1个用户的6个中间版本)
第406行: 第406行:
 
----
 
----
  
====setOverviewState(state:[[Constant]]):void====
+
====setOverviewState(state:[[SMap.Constant]]):void====
 
:通过改变参数来操纵鹰眼。
 
:通过改变参数来操纵鹰眼。
 
======参数======
 
======参数======
第747行: 第747行:
 
----
 
----
  
====getOverlaysByType(type:Constant):Array====
+
====getOverlaysByType(type:SMap.Constant):Array====
 
:根据overlay类型得到overlay对象。
 
:根据overlay类型得到overlay对象。
 
======参数======
 
======参数======
:'''type''':Constant 覆盖物的类型。取值为:SMap.Overlay.TYPE_*。
+
:'''type''':SMap.Constant 覆盖物的类型。取值为:SMap.Overlay.TYPE_*。
 +
 
 
======返回值======
 
======返回值======
 
:Array 指定类型的覆盖物对象数组。
 
:Array 指定类型的覆盖物对象数组。
第794行: 第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。
第882行: 第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。
第988行: 第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,054行: 第1,056行:
 
:'''object''':Object 事件发生的对象。
 
:'''object''':Object 事件发生的对象。
  
:'''eventType''':[[Constant]] 事件类型。取值:事件类型常量。
+
:'''eventType''':[[SMap.Constant]] 事件类型。取值:事件类型常量。
  
 
:'''fn''':Function 事件处理函数。
 
:'''fn''':Function 事件处理函数。
第1,073行: 第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);

removeMenuItems(menuItemId:String|Array):void

删除右键菜单子项。
参数
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:拉框缩小
返回值
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