function addEventHandler(marker) { var infoWindow; marker.on("mouseover", function (e) { marker.setPosition(e.target.lnglat) var info = [] info.push('<div class=\'markbox\'><p style="margin:0" class=\'input-item\'>data:' + e.target.data + '</p>')
infoWindow = new AMap.InfoWindow({ content: info.join(''), //使用默认信息窗体框样式,显示信息内容 offset: new AMap.Pixel(0, 0), autoMove: false, //是否自动移动地图显示完整的InfoWindow closeWhenClickMap: true // 点击地图是否关闭 })
infoWindow.open(map, e.target.lnglat) }) marker.on('mouseout', function (e) { infoWindow.close() }) //点击marker marker.on('click', function (e) { // xxx }) } ```
这样marker就创建完成了,但是如果marker数量过多,在地图中显示会很乱,所以需要用到点聚合
addCluster(); //添加聚合点 function addCluster() { if (cluster) { map.remove(cluster); } cluster = new AMap.MarkerClusterer(map, markers, { gridSize: 200, maxZoom: 14, // 最大zoom不再聚合 renderClusterMarker: _renderClusterMarker // 完全自定义样式 }); }
//这里可以完全自定义html和样式 var _renderClusterMarker = function (context) { var div = document.createElement(‘div’); var size = Math.round(30 + Math.pow(context.count / zwlCount, 1 / 5) * 20); div.style.width = div.style.height = size / 2 + ‘px’; div.innerHTML = ‘