Elements图层用于添加任意dom对象,其自身是一个div,所以用户可以向该图层上添加任意dom对象,并且支持第三方扩展应用。 在第三方扩展应用中,只需要将第三方应用的dom对象添加到Elements图层的div中,使用getDiv方法可以获得Elements图层的div。
| SuperMap. | Elements图层用于添加任意dom对象,其自身是一个div,所以用户可以向该图层上添加任意dom对象,并且支持第三方扩展应用。 在第三方扩展应用中,只需要将第三方应用的dom对象添加到Elements图层的div中,使用getDiv方法可以获得Elements图层的div。 | 
| Properties | |
| isFixed | {Boolean} 设置当前图层在鼠标拖动及放大缩小时位置是否固定,默认为 false。 | 
| Constructor | |
| SuperMap. | 创建一个Elements layer | 
| Functions | |
| getDiv | 获取该图层的div,用户往这个div里添加任意对象、 | 
| getLayerPxFromLonLat | 把地理坐标转换为Elements图层的像素坐标。 通常使用此函数将用户或第三方应用的Dom对象关联到地图中,使Dom能够随地图缩放和移动。 实现Dom地图缩放和移动常需用到map的相关事件,如movestart,moveend等。例如: 1.将dom对象放置在地理要素“北京”所在位置。 | 
| getOffset | 获取当前图层相对于左上角点的像素偏移量。 | 
创建一个Elements layer
| name | {String} 图层的名称。 | 
       var elementsLayer = new SuperMap.Layer.Elements("elementsLayer");
map.addLayers([elementsLayer]);
var elementsDiv = elementsLayer.getDiv();
      
      在获取Elements的div后,通常需要指定该div(图层)的大小,例如:设置该div(图层)的大小为地图大小。
var size = map.getSize(); elementsDiv.style.width = size.w; elementsDiv.style.height = size.h;
向Elements的div中添加dom,最简单的方式是使用Dom函数appendChild,例如:elementsDiv.appendChild(TheDom);此处的TheDom可以是用户自己的Dom对象,也可以是第三方扩展中的Dom对象,下面是一个添加简单dom对象的示例,
       var myDom = document.createElement("img");
myDom.src = "images/circle.png";
elementsDiv.appendChild(myDom);
      
     
getLayerPxFromLonLat:function( lonlat ) 
把地理坐标转换为Elements图层的像素坐标。 通常使用此函数将用户或第三方应用的Dom对象关联到地图中,使Dom能够随地图缩放和移动。 实现Dom地图缩放和移动常需用到map的相关事件,如movestart,moveend等。例如: 1.将dom对象放置在地理要素“北京”所在位置。
//代码片段1: var lonlatLT = elementsLayer.getLayerPxFromLonLat(new SuperMap.LonLat(115.38803641666053,40.90618904574261));//myDom 左上角位置 var lonlatRB = elementsLayer.getLayerPxFromLonLat(new SuperMap.LonLat(117.38803641666053,38.90618904574261));//myDom 右下角位置 //设置dom的大小 myDom.style.width = lonlatRB.x - lonlatLT.x +"px"; myDom.style.height = lonlatRB.y - lonlatLT.y + "px"; var lonlat = elementsLayer.getLayerPxFromLonLat(new SuperMap.LonLat(116.38803641666053,39.90618904574261));//北京市坐标 //设置dom的位置 myDom.style.position = "absolute"; myDom.style.left = lonlat.x - (lonlatRB.x - lonlatLT.x)/2 + "px"; myDom.style.top = lonlat.y- (lonlatRB.y - lonlatLT.y)/2 + "px";
2.通过监听map的moveend来实现Dom地图缩放和移动。
       map.events.on({moveend: function (evt) {  //
           if(evt.zoomChanged){      //判断是否缩放
               var level = map.getZoom();    //通过map获得缩放的级数
               if(level > 2){
                   myDom.src = "images/marker.png";
                   myDom.style.opacity = "0.5";
               }
             else{
                   myDom.src = "images/circle.png";
                   myDom.style.opacity = "1";
               }
           }
     //在地图移动结束后,通常需要重置Dom的位置。复制上面示例中的“代码片段1”到此处即可。
}});
      
      | lonlat | {SuperMap.LonLat}地理坐标 | 
获取该图层的div,用户往这个div里添加任意对象、
getDiv:function() 
把地理坐标转换为Elements图层的像素坐标。 通常使用此函数将用户或第三方应用的Dom对象关联到地图中,使Dom能够随地图缩放和移动。 实现Dom地图缩放和移动常需用到map的相关事件,如movestart,moveend等。例如: 1.将dom对象放置在地理要素“北京”所在位置。
getLayerPxFromLonLat:function( lonlat ) 
获取当前图层相对于左上角点的像素偏移量。
getOffset:function()