# 初始化地图、画圆

// 南京市坐标
const NJ_lNG_LAT = {
    lng: 118.778611,
    lat: 32.043889,
};
const zoom = 10;
const isFenceShow = true;
const map = new BMap.Map(container, connfig);
// 默认南京新街口为地图中心
map.centerAndZoom(new BMap.Point(NJ_lNG_LAT.lng, NJ_lNG_LAT.lat), zoom);
// 画圆
const styleOptions = {
    strokeColor: '#F75C5D', // 边线颜色。
    fillColor: '#F75C5D', // 填充颜色。当参数为空时,圆形将没有填充效果。
    strokeWeight: 4, // 边线的宽度,以像素为单位。
    strokeOpacity: 0.6, // 边线透明度,取值范围0 - 1。
    fillOpacity: 0.2, // 填充的透明度,取值范围0 - 1。
    strokeStyle: 'solid', // 边线的样式,solid或dashed。
};
const c = new BMap.Point(NJ_lNG_LAT.lng, NJ_lNG_LAT.lat); // 圆心
const circle = new BMap.Circle(c, 100000, styleOptions); // 测试圆
if (isFenceShow) {
    map.addOverlay(circle);
} else {
    map.removeOverlay(circle);
}

# 添加交通流量控件

const trafficControl = new BMapLib.TrafficControl({
    showPanel: true, // 是否显示路况提示面板
});
map.addControl(trafficControl);

# 设置标签

const labelContent = (mapIcon, machine) => {
    return `<div class="${styles.container}">
       <div>
       <image src="${mapIcon}"/>
       ${machine.name}
       </div>
       <div class="${styles.arrow}"></div>
    </div>`;
}  

let label = new BMap.Label('', {
    offset: new BMap.Size(-85, -35)
});
label.setContent(labelContent(mapIcon, machine?.name));
label.setStyle({ border : 0, padding: 0, backgroundColor: 'inherit', boxShadow: '0 4px 14px 0 #6F7988', borderRadius: '6px' });
label.addEventListener('mouseover', (e) => {
    let machine = e.target;
    machine.setZIndex(900);	
});
label.addEventListener('mouseout', (e) => {
    let machine = e.target;
    machine.setZIndex(600);	
}); // 无法动态设置label在视图内的高度
marker.setLabel(label);
markers.push(marker);