微博开放平台
微连接
移动应用
网站接入
电商服务商
电商商家
数据服务
数据服务
合作伙伴
微博支付
轻应用
粉丝服务
文档
推广
我的应用
登录
weibo
开发文档
首页
平台政策与指引
概述
平台公约
新手指南
开发者协议
应用运营管理规范
微连接分级管理办法
应用审核产品指南
应用安全开发注意事项
平台应用设计规范
微服务接入指南
微博登录接入
用微博帐号登录
授权机制
移动应用接入
移动应用介绍
移动应用SSO授权
微博Deep Link
媒体接入平台
头条文章开放接口
视频上传开放接口
电商接入平台
电商服务商接入
电商商家端接入
电商平台能力接口
粉丝服务平台
粉丝服务平台
新手接入指南
微信开发者迁移指南
接收消息
发送消息
自定义菜单
用户管理
生成带参数的二维码
Fans Service Platform
商业接口
商业数据接入指南
订阅服务手册(中文版)
订阅服务手册(英文版)
商业接口-REST API
商业数据常见问题
网站接入
网站接入介绍
微博API
微博API
接口访问频次权限
资源下载
SDK
微博标识下载
常见问题
联系我们
工具箱
链入页面
链出更改
特殊页面
查看源代码
跳转到:
导航
,
搜索
根据下列原因,你没有权限编辑本页:
您刚才请求的操作只有这个用户组中的用户才能使用:
用户
您可以查看并复制此页面的源代码:
==说明== :Map类封装Ajax地图组件,对地图的操作都是通过它完成。通过创建一个Map对象并调用地图的相应方法就可以在页面中显示地图,实现基本的地图功能。 ==构造函数== ====SMap.Map(container:String, mapOption:[[SMap.MapOptions]])==== :初始化[[SMap.Map]]类的一个新实例。 ======参数====== :'''container''':String 装载地图组件容器的Id,例如<div>标签的id。 :'''mapOption''':[[SMap.MapOptions]] 地图初始化时的参数选项,目前为可选项。 ======示例====== <pre> <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> </pre> ==方法== ===[获取地图状态]=== ====getCenter():[[SMap.LngLat]]==== :返回[[SMap.LngLat]]类对象,该对象代表当前地图中心点的位置。 ======参数====== :无。 ======返回值====== :[[SMap.LngLat]] 地图中心点经纬度对象。 ======示例====== <pre> var center = mapObj.getCenter();//获取中心点经纬度对象。 alert(center.lngX+","+center.latY);//通过对象的属性返回经纬度坐标。 </pre> ---- ====getZoomLevel():Number==== :返回当前地图的zoom级别。 ======参数====== :无。 ======返回值====== :Number 地图zoom级别,范围为从3到17,数值越大,地图内容越详细。 ======示例====== <pre> alert(mapObj.getZoomLevel());//通过警告框返回地图zoom级别。 </pre> ---- ====getSize():[[SMap.Size]]==== :返回[[SMap.Size]]类对象,该对象表示地图视口的像素大小。 ======参数====== :无。 ======返回值====== :[[SMap.Size]] 返回地图视口的像素大小。 ======示例====== <pre> var size = mapObj.getSize(); alert(size.height+","+size.width);//通过警告框返回像素大小 </pre> ---- ====getScale():Number==== :返回当前地图中心点的比例尺,即一个像素代表的距离,单位为米。 ======参数====== :无。 ======返回值====== :Number 当前地图中的一个像素代表的距离,单位为米。 ======示例====== <pre> alert(mapObj.getScale()); </pre> ---- ====getPixelBounds():[[SMap.PixelBounds]]==== :返回地图视野范围矩形区域左上方和右下方的像素坐标。其中左上方像素坐标为(minX,minY),右下方坐标为(maxX,maxY)。 ======参数====== :无。 ======返回值====== :[[SMap.PixelBounds]] 返回当前地图视野范围像素坐标的范围。 ======示例====== <pre> var pixelBounds = mapObj.getPixelBounds(); alert(pixelBounds.maxX+","+ pixelBounds.maxY+","+ pixelBounds.minX+","+ pixelBounds.minY); </pre> ---- ====getLngLatBounds():[[SMap.LngLatBounds]]==== :返回[[SMap.LngLatBounds]]类对象,该对象表示地图视野范围矩形区域西南和东北角点的经纬度坐标。 ======参数====== :无。 ======返回值====== :[[SMap.LngLatBounds]] 地图窗口矩形区域框经纬度坐标。 ======示例====== <pre> var bounds=mapObj.getLngLatBounds(); alert(bounds.southWest.lngX+","+bounds.southWest.latY+";"+bounds.northEast.lngX+","+bounds.northEast.latY); </pre> ---- ====getLngLatByOffset(originalLngLat:[[SMap.LngLat]], WEOffset:Number, SNOffset:Number, radius:Number):[[SMap.LngLat]]==== :根据原始点经纬度坐标和偏移量计算新的经纬度坐标,注意偏移量的单位为米。 ======参数====== :'''originalLngLat''':[[SMap.LngLat]] 原始点经纬度坐标。 :'''WEOffset''':Number 东西方向的偏移量,向东为正,向西为负。 :'''SNOffset''':Number 南北方向的偏移量,向北为正,向南为负。 :'''radius''':Number 地球半径,可选项,默认为6378137米。 ======返回值====== :[[SMap.LngLat]] 偏移后位置点的经纬度坐标。 ======示例====== <pre> var cen = mapObj.getLngLatByOffset(new SMap.LngLat("116.39746427536011","39.9086663756386"), 5000, 5000); alert(cen.lngX+","+cen.latY); </pre> ---- ====getContinuousZoom():Boolean==== :返回地图缩放时是否具有连续缩放效果的参数。 ======参数====== :无。 ======返回值====== :Boolean 如果地图缩放时带连续缩放效果返回true,否则返回false。 ======示例====== <pre> alert(mapObj.getContinuousZoom()); </pre> ---- ====getDragEnabled():Boolean==== :返回地图是否允许拖拽的状态。 ======参数====== :无。 ======返回值====== :Boolean 如果允许地图拖拽返回true,否则返回false。 ======示例====== <pre> alert(mapObj.getDragEnabled()); </pre> ---- ====getZoomEnabled():Boolean==== :返回地图是否允许缩放的状态。 ======参数====== :无。 ======返回值====== :Boolean 如果允许地图缩放返回true,否则返回false。 ======示例====== <pre> alert(mapObj.getZoomEnabled()); </pre> ---- ====getKeyboardEnabled():Boolean==== :返回键盘工具是否有效参数。键盘工具操作地图包括用键盘方向键移动地图和用主键盘“+”、“-”来缩放地图。 ======参数====== :无。 ======返回值====== :Boolean 如果允许键盘操作地图返回true,否则返回false。 ======示例====== <pre> alert(mapObj.getKeyboardEnabled()); </pre> ---- ===[修改地图状态]=== ====setCenter(center:[[SMap.LngLat]]):void==== :设置地图中心点的经纬度坐标。 ======参数====== :'''center''':[[SMap.LngLat]] 地图中心点的经纬度坐标。取值:偏数字坐标的范围:经度方向上为-180-180,纬度方向上为-85-85。 ======返回值====== :void。 ======事件====== :MAP_MOVE_START事件、MAP_MOVE_END事件、MAP_MOVING事件。 ======示例====== <pre> var mapObj = new SMap.Map("mapObj"); mapObj.setCenter(new SMap.LngLat("116.39746427536011", "39.9086663756386")); </pre> ---- ====setZoomLevel(zoomLevel:Number):void==== :设置地图的缩放级别。 ======参数====== :'''zoomLevel''':Number 地图的zoom级别 ,范围从3到17,数值越大,图上信息越详细。如果是浮点型将进行去尾取整。 ======返回值====== :void。 ======事件====== :ZOOM_START事件、ZOOM_END事件、ZOOM_CHANGED事件。 ======示例====== <pre> mapObj.setZoomLevel(17);//设置地图zoom级别为17。 </pre> ---- ====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方法。 ======示例====== <pre> mapObj.setZoomAndCenter(17, new SMap.LngLat("116.39746427536011", "39.9086663756386")); </pre> ---- ====setContinuousZoom(isContinuous:Boolean):void==== :设置地图缩放时是否有连续缩放效果。 ======参数====== :'''isContinuous''':Boolean 是否具有连续缩放的效果。 ======返回值====== :void。 ======示例====== <pre> mapObj.setContinuousZoom(true); </pre> ---- ====setDragEnabled(dragEnabled:Boolean):void==== :设置地图是否允许拖拽。 ======参数====== :'''dragEnabled''':Boolean 是否允许地图拖拽。 ======返回值====== :void。 ======注释====== :仅对鼠标拖拽地图有效。 ======示例====== <pre> mapObj.setDragEnabled(false); </pre> ---- ====setZoomEnabled(zoomEnabled:Boolean):void==== :设置是否允许地图缩放。 ======参数====== :'''zoomEnabled''':Boolean 是否允许地图缩放。 ======返回值====== :void。 ======注释====== :地图缩放方法包括通过鱼骨条缩放地图、鼠标双击放大、键盘缩放地图以及zoomIn()、zoomOut()方法。 ======示例====== <pre> mapObj.setZoomEnabled(false); </pre> ---- ====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事件。 ======示例====== <pre> mapObj.setLngLatBounds(new SMap.LngLatBounds(new SMap.LngLat('58','23',1),new SMap.LngLat('116','24',1))); </pre> ---- ====zoomIn(lnglat:[[SMap.LngLat]]):void==== :放大地图的一个级别。 ======参数====== :'''lnglat''':[[SMap.LngLat]] 地图缩放时的焦点坐标。默认为空,即中心点放大。 ======返回值====== :void。 ======事件====== :ZOOM_START事件、ZOOM_END事件、ZOOM_CHANGED事件。 ======注释====== :除了使用该方法进行放大地图以外,还可以使用鱼骨条、鼠标双击、键盘“+”方法来放大地图。 ======示例====== <pre> mapObj.zoomIn(new SMap.LngLat("116.39746427536011","39.9086663756386")); </pre> ---- ====zoomOut(lnglat:[[SMap.LngLat]]):void==== :缩小地图的一个级别。 ======参数====== :'''lnglat''':[[SMap.LngLat]] 地图缩放时的焦点坐标。默认为空,即中心点缩小。 ======返回值====== :void。 ======事件====== :ZOOM_START事件、ZOOM_END事件、ZOOM_CHANGED事件。 ======注释====== :除了使用该方法,还可以使用鱼骨条、键盘“-”方法来缩小地图。 ======示例====== <pre> mapObj.zoomOut(new SMap.LngLat("116.39746427536011","39.9086663756386")); </pre> ---- ====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事件。 ======示例====== <pre> mapObj.panDirection(SMap.EAST, SMap.SOUTH);//地图朝右下滑动地图宽度一半的距离。 </pre> ---- ====panTo(center:[[SMap.LngLat]]):void==== :设置地图的中心点到指定的坐标。 ======参数====== :'''center''':[[SMap.LngLat]] :目标位置中心点经纬度。 ======返回值====== :void。 ======事件====== :MAP_MOVE_START事件、MAP_MOVING事件、MAP_MOVE_END事件。 ======示例====== <pre> mapObj.panTo(new SMap.LngLat("116.39746427536011","39.9086663756386")); </pre> ---- ====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事件。 ======示例====== <pre> mapObj.panBy(new SMap.Size(500,400),1000, SMap.SLIDING_LINEAR); </pre> ---- ====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。 ======示例====== <pre> //在地图初始化加载了鹰眼、工具条和比例尺后,可以通过以下方法控制其显示或隐藏的状态。 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); //隐藏比例尺 </pre> ---- ====setOverviewState(state:[[SMap.Constant]]):void==== :通过改变参数来操纵鹰眼。 ======参数====== :'''state''':[[SMap.Constant]] 鹰眼状态。取值为:SMap.MINIMIZE:最小化鹰眼;SMap.SHOW:打开鹰眼,默认值为SHOW;SMap.HIDE:隐藏鹰眼。 ======返回值====== :void。 ======示例====== <pre> mapObj.setOverviewState(SMap.SHOW); //打开鹰眼 mapObj.setOverviewState(SMap.MINIMIZE); //最小化鹰眼 mapObj.setOverviewState(SMap.HIDE); //隐藏鹰眼 </pre> ---- ====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。 ======示例====== <pre> var toolbarOpt={}; toolbarOpt.toolbarPos=new SMap.Point(2,5); toolbarOpt.toolbar=SMap.SMALL; mapObj.loadCtrlPanel(SMap.TOOLBAR_CTRL,toolbarOpt);//加载鱼骨条 </pre> ---- ====addControl(div:Dom):void==== :加载用户自定义控件。 ======参数====== :'''div''':Dom 用户自定义dom。 ======返回值====== :void。 ======示例====== <pre> 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); </pre> ---- ====setKeyboardEnabled(enabled:Boolean):void==== :设置键盘操作是否有效。 ======参数====== :'''enabled''':Boolean 当该参数值为“true”时表示可以使用键盘操作地图;当为“false”时表示禁止键盘操作地图。 ======返回值====== :void。 ======示例====== <pre> mapObj.setKeyboardEnabled(true); </pre> ---- ====savePosition():void==== :保存地图当前中心点位置和zoom级别,只是存储下来,并不能被调用返回存储值。 ======参数====== :无。 ======返回值====== :void。 ======示例====== <pre> mapObj.savePosition(); </pre> ---- ====returnToSavedPosition():void==== :返回到由上次保存的地图中心点位置和zoom级别所确定的视野范围状态。 ======参数====== :无。 ======返回值====== :void。 ======注释====== :该方法需与 savePosition方法成对使用。 ======示例====== <pre> mapObj.returnToSavedPosition(); </pre> ---- ====clearMap():void==== :删除地图上的所有覆盖物和叠加层。 ======参数====== :无。 ======返回值====== :void。 ======示例====== <pre> mapObj.clearMap(); </pre> ---- ====destroy():void==== :注销地图对象,包括地图对象内的所有对象。 ======参数====== :无。 ======返回值====== :void。 ======注释====== :在清空存放地图的DIV前,必须先调用此方法。 ======示例====== <pre> mapObj.destroy(); document.getElementById("map").innerHTML = ""; </pre> ---- ===[添加覆盖物]=== ====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]]的视野级别,并且图片左上角与地图左上角对齐。 ======示例====== <pre> 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); </pre> ---- ====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事件。 ======示例====== <pre> //在本例中,marker、line、polygon分别是标注点、多折线、多边形的覆盖物。代码片将三种覆盖物加到数组中,然后通过该方法同时显示到地图上。 var arr = new Array(); arr.push(marker); arr.push(line); arr.push(polygon); mapObj.addOverlays(arr,true); </pre> ---- ====updateOverlay(overlay:[[SMap.Overlay]]):void==== :更新Overlay对象,可以更新Marker、Polyline及Area对象。使用该方法既可以更新整个对象,也可以更新原始对象的部分属性特征。 ======参数====== :'''overlay''':[[SMap.Overlay]] 地图覆盖物对象,可以更新Marker、Polyline及Area对象。 ======返回值====== :void。 ======事件====== :ADD_OVERLAY事件。 ======注释====== :使用该方法更新SMap.Marker、SMap.Polyline及SMap.Area时不能更新其经纬度坐标。 ======示例====== <pre> //以下代码片使用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); } </pre> ---- ====setOverlayEditableById(overlayId:String, isEditable:Boolean):void==== :设置overlay是否为可编辑状态。 ======参数====== :'''overlayId''':String 要修改的overlay对象的id。 :'''isEditable''':Boolean overlay是否为可编辑状态。缺省该参数时,默认为不可编辑状态。 ======返回值====== :void。 ======注释====== :圆形覆盖物目前无法编辑。 ======示例====== <pre> mapObj.setOverlayEditableById("polyline",true); </pre> ---- ====setOverlayToTopById(overlayId:String):void==== :设置指定的覆盖物位于同类覆盖物的最顶层。 ======参数====== :'''overlayId''':String 要置顶的overlay对象的id。 ======返回值====== :void。 ======注释====== :在地图引擎中不同类覆盖物处于不同层。setOverlayToTopById方法只能调整同层覆盖物之间的层次关系,不能调整不同层覆盖物之间的层次关系。 本地图引擎的层次关系为:Box位于顶层;Marker、GroundImage、Label位于中间层;Polyline、Area位于最低层。 ======示例====== <pre> mapObj.setOverlayToTopById("marker"); //将ID为marker的点覆盖物置于所有点的最顶层 </pre> ---- ====setOverlayVisibleById(overlayId:String, isVisible:Boolean):void==== :设置overlay是否显示。 ======参数====== :'''overlayId''':String 覆盖物对象的id。 :'''isVisible''':Boolean 指定id的覆盖物是否可见。 ======返回值====== :void。 ======示例====== <pre> mapObj.setOverlayVisibleById(“marker”,true); //marker是地图上已存在的点对象ID。 </pre> ---- ====setFitview(overlays:Array):void==== :设置覆盖物到合适的地图视野级别。 ======参数====== :'''overlays''':Array 覆盖物对象列表或者覆盖物对象ID列表。 ======返回值====== :void。 ======事件====== :ZOOM_CHANGED事件、ZOOM_END事件、MAP_MOVE_END事件。 ======示例====== <pre> mapObj.setFitview(overlayArr);//overlayArr为覆盖物对象列表 </pre> ---- ====getOverlayById(overlayId:String):[[SMap.Overlay]]==== :通过Id获得指定的覆盖物对象,并可以通过该对象获得对象属性值。 ======参数====== :'''overlayId''':String 覆盖物对象列表或者覆盖物对象ID列表。 ======返回值====== :[[SMap.Overlay]] 指定Id的覆盖物对象。 ======注释====== :要想获得指定覆盖物对象,首先必须添加该覆盖物。 ======示例====== <pre> var overlay=mapObj.getOverlayById("marker"); alert(overlay.lnglat.lngX); </pre> ---- ====getOverlaysByType(type:SMap.Constant):Array==== :根据overlay类型得到overlay对象。 ======参数====== :'''type''':SMap.Constant 覆盖物的类型。取值为:SMap.Overlay.TYPE_*。 ======返回值====== :Array 指定类型的覆盖物对象数组。 ======注释====== :要想获得指定覆盖物对象,首先必须添加该覆盖物。 :SMap.Overlay.TYPE_AREA类型覆盖物返回二维数组,其它类型覆盖物均返回一维数组。 ======示例1====== <pre> 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); } } </pre> ======示例2====== <pre> //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); } </pre> ---- ====removeOverlayById(overlayId:String):void==== :删除地图上指定id的地图覆盖物。 ======参数====== :'''overlayId''':String 待删除对象的Id。 ======返回值====== :Array 指定类型的覆盖物对象数组。 ======事件====== :REMOVE_OVERLAY事件。 ======示例====== <pre> mapObj.removeOverlayById("marker"); //删除Id为"marker"的对象 </pre> ---- ====removeOverlaysByType(type:SMap.Constant):void==== :根据overlay类型删除overlay对象。 ======参数====== :'''type''':SMap.Constant 覆盖物的类型。取值为:SMap.Overlay.TYPE_*。 ======返回值====== :void。 ======事件====== :REMOVE_OVERLAY事件。 ======示例====== <pre> mapObj.removeOverlaysByType(SMap.Overlay.TYPE_MARKER); //删除所有的标识点 </pre> ---- ====removeOverlay(overlay:[[SMap.Overlay]]):void==== :删除地图上指定的地图覆盖物。 ======参数====== :'''overlay''':[[SMap.Overlay]] 待删除的对象。 ======返回值====== :void。 ======事件====== :REMOVE_OVERLAY事件。 ======示例====== <pre> mapObj.removeOverlay(line) ; //删除line覆盖物对象。 </pre> ---- ====removeOverlays(overlays:Array):void==== :一次删除地图上多个覆盖物对象。 ======参数====== :'''overlays''':Array 待删除的覆盖物对象数组。 ======返回值====== :void。 ======事件====== :REMOVE_OVERLAY事件。 ======示例====== <pre> mapObj.removeOverlays(arr); </pre> ---- ====removeAllOverlays():void==== :删除地图上所有的覆盖物(overlays)对象。 ======参数====== :无。 ======返回值====== :void。 ======事件====== :CLEAR_OVERLAYS事件。 ======示例====== <pre> mapObj.removeAllOverlays(); //删除mapObj地图对象上所有覆盖物。 </pre> ---- ===[叠加层]=== ====addTileLayer(tileLayer:[[SMap.TileLayer]]):void==== :向地图叠加切片图层。 ======参数====== :'''tileLayer''':[[SMap.TileLayer]] 地图叠加切片图层对象。 ======返回值====== :void。 ======注释====== :如果是实时交通层,当zoom大于等于10以上显示,目前支持的城市有:北京、上海。 ======示例1====== <pre> var tl = new SMap.TileLayer(SMap.TL_TRAFFIC); //添加实时交通层 mapObj.addTileLayer(tl); </pre> ======示例2====== <pre> 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); </pre> ---- ====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====== <pre> mapObj.removeTileLayer(SMap.TL_TRAFFIC); </pre> ======示例2====== <pre> mapObj.removeTileLayer(SMap.TL_CUSTOM_MAP, "layer1"); </pre> ---- ===[右键菜单]=== ====addMenuItems(arr:Array):Array==== :添加右键菜单的菜单项,传入的参数是数组,可以一次传入多个。 ======参数====== :'''arr''':Array [[SMap.MenuItem]]实例化对象的数组。 ======返回值====== :Array 说明:返回SMap.MenuItem的id数组,与传入的SMap.MenuItem数组相对应。如果在传入SMap.MenuItem对象有id时,直接把这个id返回,如果没有,自动生成一个id。 ======示例====== <pre> //下列代码片中的menuItem1、menuItem2是已经实例化的SMap.MenuItem对象。 arr.push(menuItem1); arr.push(menuItem2); var test= mapObj.addMenuItems(arr); </pre> ---- ====removeMenuItems(menuItemId:String|Array):void==== :删除右键菜单子项。 ======参数====== :'''menuItemId''':String|Array 右键菜单的id或者Id集合。 ======返回值====== :void。 ======示例====== <pre> mapObj.removeMenuItems('22'); </pre> ---- ===[信息窗口]=== ====openTip(position:[[SMap.LngLat]], tipOptions):void==== :显示地图的信息窗口。 ======参数====== :'''position''':[[SMap.LngLat]] 信息窗口的显示位置。 :'''tipOptions''':[[SMap.TipOptions]] tip窗口显示内容,显示风格选项。 ======返回值====== :void。 ======事件====== TIP_OPEN事件。 ======示例====== <pre> //本例中,tipOption是事先定义好的tip选项对象。 mapObj.openTip(new SMap.LngLat(116.39825820922851,39.904600759441024),tipOption); </pre> ---- ====openOverlayTip(overlayId:String):void==== :显示SMap.Overlay对象的信息窗口。 ======参数====== :'''overlayId''':String 要打开tip的覆盖物的Id。 ======返回值====== :void。 ======事件====== TIP_OPEN事件。 ======示例====== <pre> //本例中,“marker”是事先定义好的标注点的id。 mapObj.openOverlayTip('marker'); </pre> ---- ====closeTip():void==== :关闭信息窗口。 ======参数====== :无。 ======返回值====== :void。 ======事件====== TIP_BEFORE_CLOSE事件、TIP_CLOSE事件。 ======示例====== <pre> mapObj.closeTip(); //关闭mapObj对象上所有的信息窗口。 </pre> ---- ===[鼠标工具]=== ====setCurrentMouseTool(ctrlName:[[SMap.Constant]]):void==== :设置鼠标当前功能。 ======参数====== :'''ctrlName''':[[SMap.Constant]] 鼠标当前功能选项。取值: ::(a)SMap.PAN_WHEELZOOM:焦点模式下滚轮放大缩小,拖动移图<br /> ::(b)SMap.ADD_MARKER:添加标注<br /> ::(c)SMap.DRAW_LINE:画线<br /> ::(d)SMap.DRAW_POLYGON:画多边形<br /> ::(e)SMap.DRAW_RECTANGLE:画矩形<br /> ::(f)SMap.DRAW_CIRCLE:画圆<br /> ::(g)SMap.RULER:测直线距离,当长度小于1000米时,结果单位为米; 大于等于1000米时,结果单位为公里,并保留小数点后两位<br /> ::(h)SMap.COMPUTE_AREA:测量多边形的面积, 当面积小于1000000米时,结果单位为平方米; 大于等于1000000米时,结果单位为平方公里,并保留小数点后两位<br /> ::(i)SMap.FRAME_ZOOMIN:拉框放大<br /> ::(j)SMap.FRAME_ZOOMOUT:拉框缩小<br /> ======返回值====== :void。 ======事件====== :(1)PAN_WHEELZOOM能触发的事件类型:ZOOM_START事件、ZOOM_END事件、ZOOM_CHANGED事件MAP_MOVE_START事件、MAP_MOVE_END事件、MAP_MOVING事件<br /> :(2)ADD_MARKER能触发的事件:ADD_OVERLAY事件<br /> :(3)DRAW_RECTANGLE、DRAW_CIRCLE能触发的事件:MOUSE_DOWN事件、MOUSE_UP事件、MOUSE_CLICK事件、ADD_OVERLAY事件<br /> :(4)DRAW_LINE 、DRAW_POLYGON能触发的事件类型: MOUSE_UP事件、MOUSE_DOWN事件、MOUSE_UP事件、ADD_OVERLAY事件<br /> :(5)FRAME_ZOOMIN、FRAME_ZOOMOUT能触发的事件类型:ZOOM_START事件、ZOOM_END事件、ZOOM_CHANGED事件<br /> :(6)RULER能触发的事件类型:ADD_OVERLAY事件、MEASURE_END、MEASURE_STEP事件<br /> :(7)COMPUTE_AREA能触发的事件类型:ADD_OVERLAY事件、MEASURE_END事件<br /> ======示例====== <pre> 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); </pre> ---- ===[GSP行业应用]=== ====markerMoveTo(markerId:String, lnglat:[[SMap.LngLat]]):void==== :开始移动指定的marker对象。 ======参数====== :'''markerId''':String [[SMap.Marker]]对象的id。 :'''lnglat''':[[SMap.LngLat]] 目标点的经纬度坐标。 ======返回值====== :void。 ======注释====== :要想调用此方法,必须先使用Map.addOverlay()方法在地图上添加marker对象。 ======示例====== <pre> mapObj.markerMoveTo("mark", new SMap.LngLat(116.398258, 39.9046)); </pre> ---- ===[注册(注销)事件]=== ====addEventListener(object:Object, eventType:[[SMap.Constant]], fn:Function):void==== :添加(注册)事件处理函数,当eventType事件发生时,执行fn方法。 ======参数====== :'''object''':Object 事件发生的对象。 :'''eventType''':[[SMap.Constant]] 事件类型。取值:事件类型常量。 :'''fn''':Function 事件处理函数。 ======返回值====== :void。 ======注释====== :可以向一个事件注册多个事件处理函数,在事件发生时,事件处理函数按注册时的顺序执行。 ======示例====== <pre> //下面的代码片段定义了一个函数,执行的操作为隐藏鹰眼。 //然后把这个函数注册到开始缩放地图事件上,当开始缩放地图时时,执行该方法,结果为缩放地图之前,隐藏鹰眼。 function startZoom(event) { mapObj.setOverviewState(SMap.HIDE); } mapObj.addEventListener(mapObj,SMap.ZOOM_START,startZoom); </pre> ---- ====removeEventListener(object:Object, eventType:[[SMap.Constant]], fn:Function):void==== :注销事件。 ======参数====== :'''object''':Object 事件发生的对象。 :'''eventType''':[[SMap.Constant]] 事件类型,具体见addEventListener()方法中列出的所有事件类型。 :'''fn''':Function 事件处理函数。 ======返回值====== :void。 ======示例====== <pre> //下面的代码片段卸载了一个地图完成事件函数。 mapObj.removeEventListener(mapObj,SMap.MAP_READY, mapReady); </pre> ---- ====addDomListener(div:Dom, eventType:String, fn:Function):void==== :注册div向外发送的事件。 ======参数====== :'''div''':Dom 事件发生的对象。 :'''eventType''':String 事件类型。取值:click、mousemove、mousedown、mouseout、mouseover、mouseup。 :'''fn''':Function 事件处理函数。 ======返回值====== :void。 ======示例====== <pre> var zoomInDiv = document.createElement("div"); mapObj.addDomListener(zoomInDiv, "click", function(evt) { mapObj.zoomIn(); }); </pre> ---- ===[地图工具]=== ====fromLngLatToContainerPixel(lnglat:[[SMap.LngLat]]):[[SMap.Point]]==== :将点的经纬度坐标转换成容器的屏幕坐标。 ======参数====== :'''lnglat''':[[SMap.LngLat]] 点的经纬度坐标。 ======返回值====== :[[SMap.Point]] 返回点的屏幕坐标。 ======示例====== <pre> var lng=mapObj.getCenter().lngX; var lat=mapObj.getCenter().latY; var pixel=mapObj.fromLngLatToContainerPixel(new SMap.LngLat(lng,lat)); alert(pixel.x+";"+pixel.y); </pre> ---- ====fromContainerPixelToLngLat(containerPt:[[SMap.Point]]):[[SMap.LngLat]]==== :将点的屏幕坐标转换为经纬度坐标。 ======参数====== :'''containerPt''':[[SMap.Point]] 点的屏幕坐标。 ======返回值====== :[[SMap.LngLat]] 返回点的经纬度坐标。 ======示例====== <pre> var lnglat=mapObj.fromContainerPixelToLngLat(new SMap.Point(250,150)); alert(lnglat.lngX+";"+lnglat.latY); </pre> ----
返回到
SMap.Map
。
反馈
分享
顶部