|
|
@ -822,8 +822,10 @@ export class GisLabelingComponent implements OnInit { |
|
|
|
this.map.plugin(["AMap.MarkerClusterer"], () => { |
|
|
|
this.map.plugin(["AMap.MarkerClusterer"], () => { |
|
|
|
var gridSize = 60 |
|
|
|
var gridSize = 60 |
|
|
|
var count = waterMarkerArrcluster.length; |
|
|
|
var count = waterMarkerArrcluster.length; |
|
|
|
var _renderClusterMarker = function (context) { |
|
|
|
|
|
|
|
var factor = Math.pow(context.count / count, 1 / 18); |
|
|
|
let render = MapFactory.RenderClusterMarkerInstance(); |
|
|
|
|
|
|
|
render.contentRender = (contextCount) => { |
|
|
|
|
|
|
|
var factor = Math.pow(contextCount / count, 1 / 18); |
|
|
|
var div = document.createElement('div'); |
|
|
|
var div = document.createElement('div'); |
|
|
|
var Hue = 180 - factor * 180; |
|
|
|
var Hue = 180 - factor * 180; |
|
|
|
var bgColor = 'hsla(' + Hue + ',100%,40%,0.7)'; |
|
|
|
var bgColor = 'hsla(' + Hue + ',100%,40%,0.7)'; |
|
|
@ -831,30 +833,68 @@ export class GisLabelingComponent implements OnInit { |
|
|
|
var borderColor = 'hsla(' + Hue + ',100%,40%,1)'; |
|
|
|
var borderColor = 'hsla(' + Hue + ',100%,40%,1)'; |
|
|
|
var shadowColor = 'hsla(' + Hue + ',100%,90%,1)'; |
|
|
|
var shadowColor = 'hsla(' + Hue + ',100%,90%,1)'; |
|
|
|
div.style.backgroundColor = bgColor; |
|
|
|
div.style.backgroundColor = bgColor; |
|
|
|
var size = Math.round(30 + Math.pow(context.count / count, 1 / 5) * 20); |
|
|
|
var size = Math.round(30 + Math.pow(contextCount / count, 1 / 5) * 20); |
|
|
|
div.style.width = div.style.height = size + 'px'; |
|
|
|
div.style.width = div.style.height = size + 'px'; |
|
|
|
div.style.border = 'solid 1px ' + borderColor; |
|
|
|
div.style.border = 'solid 1px ' + borderColor; |
|
|
|
div.style.borderRadius = size / 2 + 'px'; |
|
|
|
div.style.borderRadius = size / 2 + 'px'; |
|
|
|
div.style.boxShadow = '0 0 5px ' + shadowColor; |
|
|
|
div.style.boxShadow = '0 0 5px ' + shadowColor; |
|
|
|
div.innerHTML = context.count; |
|
|
|
div.innerHTML = contextCount; |
|
|
|
div.style.lineHeight = size + 'px'; |
|
|
|
div.style.lineHeight = size + 'px'; |
|
|
|
div.style.color = fontColor; |
|
|
|
div.style.color = fontColor; |
|
|
|
div.style.fontSize = '14px'; |
|
|
|
div.style.fontSize = '14px'; |
|
|
|
div.style.textAlign = 'center'; |
|
|
|
div.style.textAlign = 'center'; |
|
|
|
context.marker.setOffset(MapFactory.PixelInstance(-size / 2, -size / 2)); |
|
|
|
return div; |
|
|
|
context.marker.setContent(div) |
|
|
|
|
|
|
|
}; |
|
|
|
}; |
|
|
|
var _renderMarker = (context) => { |
|
|
|
render.pixelRender = (contextCount) => { |
|
|
|
var content = `<img class='clusterImgCollection' src="${context.data[0].image}" alt="">`; |
|
|
|
var size = Math.round(30 + Math.pow(contextCount / count, 1 / 5) * 20); |
|
|
|
var offset = MapFactory.PixelInstance(-15, -15); |
|
|
|
return MapFactory.PixelInstance(-size / 2, -size / 2); |
|
|
|
context.marker.setContent(content) |
|
|
|
}; |
|
|
|
context.marker.setOffset(offset) |
|
|
|
|
|
|
|
|
|
|
|
render.contentNonRender = () => { |
|
|
|
|
|
|
|
return `<img class='clusterImgCollection' src="${render.getFirstImages}" alt="">`; |
|
|
|
|
|
|
|
}; |
|
|
|
|
|
|
|
render.pixelNonRender = () => { |
|
|
|
|
|
|
|
return MapFactory.PixelInstance(-15, -15); |
|
|
|
} |
|
|
|
} |
|
|
|
this.waterCluster = new AMap.MarkerCluster(this.map, waterMarkerArrcluster, { |
|
|
|
|
|
|
|
|
|
|
|
// var _renderClusterMarker = function (context) {
|
|
|
|
|
|
|
|
// var factor = Math.pow(context.count / count, 1 / 18);
|
|
|
|
|
|
|
|
// var div = document.createElement('div');
|
|
|
|
|
|
|
|
// var Hue = 180 - factor * 180;
|
|
|
|
|
|
|
|
// var bgColor = 'hsla(' + Hue + ',100%,40%,0.7)';
|
|
|
|
|
|
|
|
// var fontColor = 'hsla(' + Hue + ',100%,90%,1)';
|
|
|
|
|
|
|
|
// var borderColor = 'hsla(' + Hue + ',100%,40%,1)';
|
|
|
|
|
|
|
|
// var shadowColor = 'hsla(' + Hue + ',100%,90%,1)';
|
|
|
|
|
|
|
|
// div.style.backgroundColor = bgColor;
|
|
|
|
|
|
|
|
// var size = Math.round(30 + Math.pow(context.count / count, 1 / 5) * 20);
|
|
|
|
|
|
|
|
// div.style.width = div.style.height = size + 'px';
|
|
|
|
|
|
|
|
// div.style.border = 'solid 1px ' + borderColor;
|
|
|
|
|
|
|
|
// div.style.borderRadius = size / 2 + 'px';
|
|
|
|
|
|
|
|
// div.style.boxShadow = '0 0 5px ' + shadowColor;
|
|
|
|
|
|
|
|
// div.innerHTML = context.count;
|
|
|
|
|
|
|
|
// div.style.lineHeight = size + 'px';
|
|
|
|
|
|
|
|
// div.style.color = fontColor;
|
|
|
|
|
|
|
|
// div.style.fontSize = '14px';
|
|
|
|
|
|
|
|
// div.style.textAlign = 'center';
|
|
|
|
|
|
|
|
// context.marker.setOffset(MapFactory.PixelInstance(-size / 2, -size / 2));
|
|
|
|
|
|
|
|
// context.marker.setContent(div)
|
|
|
|
|
|
|
|
// };
|
|
|
|
|
|
|
|
// var _renderMarker = (context) => {
|
|
|
|
|
|
|
|
// var content = `<img class='clusterImgCollection' src="${context.data[0].image}" alt="">`;
|
|
|
|
|
|
|
|
// var offset = MapFactory.PixelInstance(-15, -15);
|
|
|
|
|
|
|
|
// context.marker.setContent(content)
|
|
|
|
|
|
|
|
// context.marker.setOffset(offset)
|
|
|
|
|
|
|
|
// }
|
|
|
|
|
|
|
|
this.waterCluster = MapFactory.MarkerClusterInstance(this.map, waterMarkerArrcluster, { |
|
|
|
gridSize: gridSize, // 设置网格像素大小
|
|
|
|
gridSize: gridSize, // 设置网格像素大小
|
|
|
|
renderClusterMarker: _renderClusterMarker, // 自定义聚合点样式
|
|
|
|
render: render //自定义聚合点样式, 自定义非聚合点样式
|
|
|
|
renderMarker: _renderMarker, // 自定义非聚合点样式
|
|
|
|
|
|
|
|
}); |
|
|
|
}); |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
// this.waterCluster = new AMap.MarkerCluster(this.map, waterMarkerArrcluster, {
|
|
|
|
|
|
|
|
// gridSize: gridSize, // 设置网格像素大小
|
|
|
|
|
|
|
|
// renderClusterMarker: _renderClusterMarker, // 自定义聚合点样式
|
|
|
|
|
|
|
|
// renderMarker: _renderMarker, // 自定义非聚合点样式
|
|
|
|
|
|
|
|
// });
|
|
|
|
this.waterCluster.on('click', (e) => { |
|
|
|
this.waterCluster.on('click', (e) => { |
|
|
|
if (e.clusterData.length == 1) { |
|
|
|
if (e.clusterData.length == 1) { |
|
|
|
|
|
|
|
|
|
|
|