三维可视化场景绘制多边形标注

创建矩形标注 (以下代码都要在 map.on('loadComplete') 中调用)

    map.on('loadComplete', function () {
      // 创建一个多边形对象
      var rectangleMarker = new esmap.ESPolygonMarker({
        color: '#9F35FF',    // 填充颜色
        alpha: 0.3,          // 透明度
        lineWidth: 1,        // 边框宽度
        height: 6,           // 距离地面高度
        points: {            
          type: 'rectangle', // 设置为矩形
          center: {          // 设置此形状的中心坐标
            x: map.center.x,
            y: map.center.y
          },
          width: 30,         // 设置矩形宽度
          height: 30         // 设置矩形长度
        }
      });

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

创建圆形标注

    map.on('loadComplete', function () {
      // 创建一个多边形对象
      var circleMaker = new esmap.ESPolygonMarker({
        color: '#9F35FF',    // 填充颜色
        alpha: 0.3,          // 透明度
        lineWidth: 1,        // 边框宽度
        height: 6,           // 距离地面高度
        points: {
          type: 'circle',    // 设置为圆形
          center: {          // 设置此形状的中心坐标
              x: coord.x,
              y: coord.y
          },
          radius: 10,     // 设置半径大小
          segments: 40,   // 设置段数,值越大越光滑,默认为40段
        }
      });

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

创建自定义多边形标注

    map.on('loadComplete', function () {
      // 创建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 },
      ];

      // 创建一个多边形对象
      var polygonMarker  = new esmap.ESPolygonMarker({
        color: '#9F35FF',    // 填充颜色
        alpha: 0.3,          // 透明度
        lineWidth: 1,        // 边框宽度
        height: 6,           // 距离地面高度
        points: coords       
      });

      // 获取第一层的楼层对象  
      var floor = map.getFloor(1);
      // 获取或者新建一个name为'mypoly'的多边形标注层    
      var layer = floor.getOrCreateLayerByName('mypoly', esmap.ESLayerType.POLYGON_MARKER);
      // 添加标注
      layer.addMarker(polygonMarker);
});
  
参数说明:
参数
说明
类型
可选值
默认值
是否必填
color
图形的颜色
String
颜色单词 || 十六进制颜色码
#f2561a
alpha
透明度
Number
0-1
0.5
lineWidth
边框的宽度
Number || String
——
1
height
距离地板的高度
Number || String
——
6
points
多边形形状配置
Array || Object
——
{ height: 30 type: "rectangle" width: 30, center: { x: map.center.x, y: map.center.y } }

删除多边形标注

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

    layer.remove(marker)   // 删除某个标注(marker是指由new esmap.ESPolygonMarker生成的多边形实例对象)
layer.removeAll()      // 删除该图层下所有标注
  

当然,也可以直接删除这个图层:

    floorLayer.removeLayersByTypes(esmap.ESLayerType.POLYGON_MARKER);