您现在的位置: 首页 > SDK开发 > 开发指南


多边形标注绘制 polygonMarker

创建矩形标注(以下代码都要在地图加载完成后调用map.on('loadComplete')

 
function addRectangleMaker(coord) {
var rectangleMarker = new esmap.ESPolygonMarker({
    //设置颜色
    color: '#9F35FF',
    //设置透明度
    alpha: .3,
    //设置边框线的宽度
    lineWidth: 1,
    //设置高度
    height: 6,
    points: {
        //设置为矩形
        type: 'rectangle',
        //设置此形状的中心坐标
        center: {
            x: coord.x,
            y: coord.y
        },
        //设置矩形的宽度
        width: 30,
        //设置矩形的高度
        height: 30
    }
});

//获取第一层的楼层对象  
var floor = map.getFloor(1);        
//获取或者新建一个name为‘mypoly’的多边形标注层    
var layer =  floor.getOrCreateLayerByName('mypoly', esmap.ESLayerType.POLYGON_MARKER); 
//添加标注
layer.addMarker(rectangleMarker);

};

addRectangleMaker(coord) //此处传入墨卡托坐标,下同

创建圆形标注


function addCircleMaker(coord, radius) {
// console.log("+1!")
circleMaker = new esmap.ESPolygonMarker({
    //设置颜色
    color: '#3CF9DF',
    //设置透明度
    alpha: 0.3,
    //设置边框线的宽度
    lineWidth: 2,
    //设置高度
    height: 6,
    points: {
        //设置为圆形
        type: 'circle',
        //设置此形状的中心坐标
        center: {
            x: coord.x,
            y: coord.y
        },
        //设置半径
        radius: radius,
        //设置段数,默认为40段
        segments: 40,
    }
});

//获取第一层的楼层对象  
var floor = map.getFloor(1);        
//获取或者新建一个name为‘mypoly’的多边形标注层    
var layer =  floor.getOrCreateLayerByName('mypoly', esmap.ESLayerType.POLYGON_MARKER); 
//添加标注
layer.addMarker(rectangleMarker);

}

创建自定义形状标注


function addMyPolygonMaker() {
//创建PolygonMarker自定义形状的顶点数组
var coords = [
    { x: map.center.x + 20, y: map.center.y + 20, z: 26 },
    { x: map.center.x + 40, y: map.center.y + 40, z: 26 },
    { x: map.center.x + 60, y: map.center.y + 20, z: 26 },
    { x: map.center.x + 40, y: map.center.y + 10, z: 26 },
    { x: map.center.x + 10, y: map.center.y, z: 26 },
];
polygonMarker = new esmap.ESPolygonMarker({
    //设置透明度
    alpha: .5,
    //设置边框线的宽度
    lineWidth: 1,
    //设置高度
    height: 6,
    //设置多边形坐标点
    points: coords
});

//获取第一层的楼层对象  
var floor = map.getFloor(1);        
//获取或者新建一个name为‘mypoly’的多边形标注层    
var layer =  floor.getOrCreateLayerByName('mypoly', esmap.ESLayerType.POLYGON_MARKER); 
//添加标注
layer.addMarker(rectangleMarker);
}

删除多边形标注

您可以根据图层删除多边形标注:

   layer.remove(marker)   //删除某个标注
   layer.removeAll()   //删除图层下所有标注
当然,也可以直接删除这个图层。

    floorLayer.removeLayersByTypes(esmap.ESLayerType.POLYGON_MARKER);