this.map.clearOverlays();//先清除覆盖物
if (row.circle) {
let item = row.circle;
var point = new BMapGL.Point(item.lon / 1000000, item.lat / 1000000);
this.map.centerAndZoom(point, 15);
// 创建圆 位置 范围 样式属性
var circle = new BMapGL.Circle(point, 500, {
strokeColor: "blue",
strokeWeight: 2,
strokeOpacity: 0.5
});
this.map.addOverlay(circle);
} else if (row.polygon) {
let list = [];
row.polygon.forEach(element => {
list.push(
new BMapGL.Point(element.lon / 1000000, element.lat / 1000000)
);
});
// 创建多边形 点集合 样式属性
var polygon = new BMapGL.Polygon(list, {
strokeColor: "blue",
strokeWeight: 2,
strokeOpacity: 0.5
});
this.map.addOverlay(polygon);
} else if (row.city) {
let dist = new BMapGL.DistrictLayer({
name: "(" + row.city.name + ")",//城市名字 浙江省杭州市
kind: 1,
fillColor: "#618bf8",
strokeColor: "#daeafa",
viewport: true
});
this.map.addDistrictLayer(dist);
}
DistrictLayer类参考
构造函数:
构造函数 | 说明 |
BMapGL.DistrictLayer(options, callback) | 行政区划聚合图层构造函数 |
参数说明:
构造函数 | 类型 | 说明 |
options | Object | 行政区划图层样式配置对象 |
callback | Function | 回调函数 |
options属性变量:
options属性 | 类型 | 说明 |
name | Array | 欲获取的行政区划名称,格式为字符串或数组。如果是大区情况,只能采用字符串格式,如"(北京,天津,河北),山东" |
kind | number | 行政区划显示级别,0为省级行政区划,1为市级行政区划,2为区级行政区划 |
strokeColor | string | 描边颜色,默认为'#ff0' |
strokeOpacity | number | 描边线透明度 |
strokeWeight | number | 描边线粗细,默认为1 |
fillColor | string | 填充颜色,默认为'#00f'。格式为字符串或数组。注意,目前行政区划没有名称标识,数组颜色与返回子层级区域顺序一一对应,暂不支持对子层级的特定市区县设置指定颜色。 |
viewport | boolean | 是否自动根据行政区划来调节到最佳显示视野,默认为false |
方法:
方法名 | 说明 |
map.addDistrictLayer(district: DistrictLayer) | 地图上添加行政区划图层,参数district为指定的行政区划实例 |
map.removeDistrictLayer(district: DistrictLayer) | 地图上移除指定的行政区划图层,参数district为指定的行政区划实例 |
searchBoundary(options, callback(res)) | 搜索某个行政区划,通过回调函数实现自定义行政区划绘制。其中参数options同上面的构造函数的参数配置,callback(res)为回调函数。 |