镂空多边形绘制
更新时间:2020年10月22日
简介
镂空面绘制基于WebGL的模板取反处理,JSAPI GL提供的Polygon类提供镂空面绘制功能。
当个传入的两个区域路径,一个区域位于另一个区域内部,则这个区域不会被绘制出来,从而实现”洞“的效果。
当个传入的两个区域路径,一个区域位于另一个区域内部,则这个区域不会被绘制出来,从而实现”洞“的效果。
Polygon类参考
构造函数:
| 构造函数 | 说明 |
| BMapGL.Polygon(points:Array< Point >, options) | 创建多边形覆盖物 |
参数说明:
| 构造函数 | 类型 | 说明 |
| points | Array< Point > | 点坐标数组 |
| options | Object | 多边形样式自定义配置,可选 |
options属性变量:
| options属性 | 类型 | 说明 |
| strokeColor | string | 边线颜色 |
| fillColor | string | 填充颜色。当参数为空时,折线覆盖物没有填充效果。 |
| strokeWeight | number | 边线宽度,以像素为单位 |
| strokeOpacity | number | 边线透明度,取值范围0-1 |
| fillOpacity | number | 填充透明度 |
| strokeStyle | string | 边线样式,solid或dashed |
使用示例
1创建地图参照展示地图
2创建镂空多边形,并添加到地图上
镂空面绘制使BMapGL.Polygon类,第一个参数路径数组如果传入的是有相交的区域,则不绘制出来,实现“洞”的效果。
如下例顺义区轮廓线存在相交区域,则内部区域镂空处理。
var bd = new BMapGL.Boundary();
bd.get('顺义区', function (rs) {
// console.log('外轮廓:', rs.boundaries[0])
// console.log('内镂空:', rs.boundaries[1])
var hole = new BMapGL.Polygon(rs.boundaries, {
fillColor: 'blue',
fillOpacity: 0.2
});
map.addOverlay(hole);
});
没有match的答案?试试对话大模型




