export default function set_cluster(map_obj, markers = [], clusterEvent = [], icon, district, circle) { if (typeof map_obj === 'undefined') { return; } map_obj.plugin(['AMap.MarkerClusterer'], function () { if (map_obj.cluster) { map_obj.cluster.clearMarkers(); } const styles = [{ url: icon, size: { width: 42, height: 42 } }]; const sts = styles.map((item) => { let obj = { url: item.url, size: new AMap.Size(42, 42), }; obj.offset = new AMap.Pixel(-10, -21); obj.textColor = '#fff'; return obj; }); let cluster = new AMap.MarkerClusterer(map_obj, markers, { gridSize: 80, styles: sts, }); clusterEvent.forEach(function (event) { cluster.on(event['type'], function (currentObj) { event['eventHandle'](this, currentObj); }); }); //聚合打点 cluster.addMarkers(markers); map_obj.cluster = cluster; // 坐标点自适应 if (!district || !circle) { map_obj.setFitView(markers); } // 清除坐标点 map_obj.removeMarkers = function () { cluster.clearMarkers(); }; }); }