import { map, AMap, mouseTool } from './baseMap'; var lastDrawEvent; var polygonEditor; export default { /** * 绘制一个多边形网格 * @param {Array} sides 多边形边的坐标集合 */ drawPolygon(sides) { var path = sides; // 创建多边形 Polygon 实例 var polygon = new AMap.Polygon({ path: path, fillColor: '#fff', // 多边形填充颜色 borderWeight: 2, // 线条宽度,默认为 1 strokeColor: 'red' // 线条颜色 }); //多边形 Polygon对象添加到 Map map.add(polygon); // 缩放地图到合适的视野级别 // map.setFitView([polygon]); return polygon; }, /** * 鼠标绘制多边形 */ mouseDrawPolygon(onDraw) { if (lastDrawEvent != undefined) { mouseTool.off('draw', lastDrawEvent); } lastDrawEvent = (event) => { onDraw(event); mouseTool.close(); }; mouseTool.on('draw', lastDrawEvent); mouseTool.polygon({ strokeColor: 'green', strokeOpacity: 1, strokeWeight: 2, fillColor: '#fff', fillOpacity: 0.4, // 线样式还支持 'dashed' strokeStyle: 'solid' // strokeStyle是dashed时有效 // strokeDasharray: [30,10], }); }, /** * 开启多边形编辑 * @param {Polygon} polygon 编辑对象 * @param {Array} pList 需要吸附的多边形集合 */ openPolyGonEditor(polygon, pList) { if (polygonEditor == undefined) { polygonEditor = new AMap.PolygonEditor(map); } polygonEditor.setTarget(polygon); if (pList) polygonEditor.addAdsorbPolygons(pList); polygonEditor.open(); }, /** * 关闭多边形编辑 */ closePolyGonEditor() { polygonEditor.clearAdsorbPolygons(); polygonEditor.close(); } };