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();
|
}
|
};
|