|
|
|
@ -368,8 +368,10 @@ export class GisLabelingComponent implements OnInit {
|
|
|
|
|
this.map.plugin(["AMap.MarkerClusterer"], () => { |
|
|
|
|
var gridSize = 60 |
|
|
|
|
var count = unitMarkerArrcluster.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 Hue = 180 - factor * 180; |
|
|
|
|
var bgColor = 'hsla(' + Hue + ',100%,40%,0.7)'; |
|
|
|
@ -377,29 +379,32 @@ export class GisLabelingComponent implements OnInit {
|
|
|
|
|
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); |
|
|
|
|
var size = Math.round(30 + Math.pow(contextCount / 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.innerHTML = contextCount; |
|
|
|
|
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) |
|
|
|
|
return div; |
|
|
|
|
}; |
|
|
|
|
render.pixelRender = (contextCount) => { |
|
|
|
|
var size = Math.round(30 + Math.pow(contextCount / count, 1 / 5) * 20); |
|
|
|
|
return MapFactory.PixelInstance(-size / 2, -size / 2); |
|
|
|
|
}; |
|
|
|
|
|
|
|
|
|
render.contentNonRender = (src) => { |
|
|
|
|
return `<img class='clusterImgCollection' src="${src}" alt="">`; |
|
|
|
|
}; |
|
|
|
|
var _renderMarker = (context) => { |
|
|
|
|
var content = `<img class='clusterImg' src="${context.data[0].image}" alt="">`; |
|
|
|
|
var offset = MapFactory.PixelInstance(-15, -15); |
|
|
|
|
context.marker.setContent(content) |
|
|
|
|
context.marker.setOffset(offset) |
|
|
|
|
render.pixelNonRender = () => { |
|
|
|
|
return MapFactory.PixelInstance(-15, -15); |
|
|
|
|
} |
|
|
|
|
this.unitCluster = new AMap.MarkerCluster(this.map, unitMarkerArrcluster, { |
|
|
|
|
this.unitCluster = MapFactory.MarkerClusterInstance(this.map, unitMarkerArrcluster, { |
|
|
|
|
gridSize: gridSize, // 设置网格像素大小
|
|
|
|
|
renderClusterMarker: _renderClusterMarker, // 自定义聚合点样式
|
|
|
|
|
renderMarker: _renderMarker, // 自定义非聚合点样式
|
|
|
|
|
render: render //自定义聚合点样式, 自定义非聚合点样式
|
|
|
|
|
}); |
|
|
|
|
this.unitCluster.on('click', (e) => { |
|
|
|
|
if (e.clusterData.length == 1) { |
|
|
|
@ -440,7 +445,7 @@ export class GisLabelingComponent implements OnInit {
|
|
|
|
|
</div> |
|
|
|
|
</div>` |
|
|
|
|
// 创建一个自定义内容的 infowindow 实例
|
|
|
|
|
this.infoWindow = new AMap.InfoWindow({ |
|
|
|
|
this.infoWindow = MapFactory.InfoWindowInstance({ |
|
|
|
|
position: [item.location.x, item.location.y], |
|
|
|
|
offset: MapFactory.PixelInstance(0, -30), |
|
|
|
|
content: markerContent, |
|
|
|
@ -539,8 +544,10 @@ export class GisLabelingComponent implements OnInit {
|
|
|
|
|
this.map.plugin(["AMap.MarkerClusterer"], () => { |
|
|
|
|
var gridSize = 60 |
|
|
|
|
var count = fireForceMarkerArrcluster.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 Hue = 180 - factor * 180; |
|
|
|
|
var bgColor = 'hsla(' + Hue + ',100%,40%,0.7)'; |
|
|
|
@ -548,29 +555,32 @@ export class GisLabelingComponent implements OnInit {
|
|
|
|
|
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); |
|
|
|
|
var size = Math.round(30 + Math.pow(contextCount / 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.innerHTML = contextCount; |
|
|
|
|
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) |
|
|
|
|
return div; |
|
|
|
|
}; |
|
|
|
|
render.pixelRender = (contextCount) => { |
|
|
|
|
var size = Math.round(30 + Math.pow(contextCount / count, 1 / 5) * 20); |
|
|
|
|
return MapFactory.PixelInstance(-size / 2, -size / 2); |
|
|
|
|
}; |
|
|
|
|
|
|
|
|
|
render.contentNonRender = (src) => { |
|
|
|
|
return `<img class='clusterImgCollection' src="${src}" alt="">`; |
|
|
|
|
}; |
|
|
|
|
var _renderMarker = (context) => { |
|
|
|
|
var content = `<img class='clusterImg' src="${context.data[0].image}" alt="">`; |
|
|
|
|
var offset = MapFactory.PixelInstance(-15, -15); |
|
|
|
|
context.marker.setContent(content) |
|
|
|
|
context.marker.setOffset(offset) |
|
|
|
|
render.pixelNonRender = () => { |
|
|
|
|
return MapFactory.PixelInstance(-15, -15); |
|
|
|
|
} |
|
|
|
|
this.fireForceCluster = new AMap.MarkerCluster(this.map, fireForceMarkerArrcluster, { |
|
|
|
|
this.fireForceCluster = MapFactory.MarkerClusterInstance(this.map, fireForceMarkerArrcluster, { |
|
|
|
|
gridSize: gridSize, // 设置网格像素大小
|
|
|
|
|
renderClusterMarker: _renderClusterMarker, // 自定义聚合点样式
|
|
|
|
|
renderMarker: _renderMarker, // 自定义非聚合点样式
|
|
|
|
|
render: render //自定义聚合点样式, 自定义非聚合点样式
|
|
|
|
|
}); |
|
|
|
|
}); |
|
|
|
|
} |
|
|
|
@ -682,8 +692,10 @@ export class GisLabelingComponent implements OnInit {
|
|
|
|
|
this.map.plugin(["AMap.MarkerClusterer"], () => { |
|
|
|
|
var gridSize = 60 |
|
|
|
|
var count = linkageForcesMarkerArrcluster.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 Hue = 180 - factor * 180; |
|
|
|
|
var bgColor = 'hsla(' + Hue + ',100%,40%,0.7)'; |
|
|
|
@ -691,29 +703,33 @@ export class GisLabelingComponent implements OnInit {
|
|
|
|
|
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); |
|
|
|
|
var size = Math.round(30 + Math.pow(contextCount / 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.innerHTML = contextCount; |
|
|
|
|
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) |
|
|
|
|
return div; |
|
|
|
|
}; |
|
|
|
|
var _renderMarker = (context) => { |
|
|
|
|
var content = `<img class='clusterImg' src="${context.data[0].image}" alt="">`; |
|
|
|
|
var offset = MapFactory.PixelInstance(-15, -15); |
|
|
|
|
context.marker.setContent(content) |
|
|
|
|
context.marker.setOffset(offset) |
|
|
|
|
render.pixelRender = (contextCount) => { |
|
|
|
|
var size = Math.round(30 + Math.pow(contextCount / count, 1 / 5) * 20); |
|
|
|
|
return MapFactory.PixelInstance(-size / 2, -size / 2); |
|
|
|
|
}; |
|
|
|
|
|
|
|
|
|
render.contentNonRender = (src) => { |
|
|
|
|
return `<img class='clusterImgCollection' src="${src}" alt="">`; |
|
|
|
|
}; |
|
|
|
|
render.pixelNonRender = () => { |
|
|
|
|
return MapFactory.PixelInstance(-15, -15); |
|
|
|
|
} |
|
|
|
|
this.linkageForcesCluster = new AMap.MarkerCluster(this.map, linkageForcesMarkerArrcluster, { |
|
|
|
|
|
|
|
|
|
this.linkageForcesCluster = MapFactory.MarkerClusterInstance(this.map, linkageForcesMarkerArrcluster, { |
|
|
|
|
gridSize: gridSize, // 设置网格像素大小
|
|
|
|
|
renderClusterMarker: _renderClusterMarker, // 自定义聚合点样式
|
|
|
|
|
renderMarker: _renderMarker, // 自定义非聚合点样式
|
|
|
|
|
render: render //自定义聚合点样式, 自定义非聚合点样式
|
|
|
|
|
}); |
|
|
|
|
}); |
|
|
|
|
} |
|
|
|
@ -850,8 +866,8 @@ export class GisLabelingComponent implements OnInit {
|
|
|
|
|
return MapFactory.PixelInstance(-size / 2, -size / 2); |
|
|
|
|
}; |
|
|
|
|
|
|
|
|
|
render.contentNonRender = () => { |
|
|
|
|
return `<img class='clusterImgCollection' src="${render.getFirstImages}" alt="">`; |
|
|
|
|
render.contentNonRender = (src) => { |
|
|
|
|
return `<img class='clusterImgCollection' src="${src}" alt="">`; |
|
|
|
|
}; |
|
|
|
|
render.pixelNonRender = () => { |
|
|
|
|
return MapFactory.PixelInstance(-15, -15); |
|
|
|
@ -1013,16 +1029,13 @@ export class GisLabelingComponent implements OnInit {
|
|
|
|
|
} else { |
|
|
|
|
this.unitCluster ? this.unitCluster.setData([]) : null |
|
|
|
|
this.mapPattern = false |
|
|
|
|
this.map = new AMap.Map('map', { |
|
|
|
|
this.map = MapFactory.MapInstance('map', { |
|
|
|
|
viewMode: '3D', |
|
|
|
|
pitch: 60, |
|
|
|
|
rotation: -35, |
|
|
|
|
features: ['bg', 'road', 'point', 'building'], |
|
|
|
|
mapStyle: 'amap://styles/light', |
|
|
|
|
}); |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
this.map.setCity('上海市'); |
|
|
|
|
} |
|
|
|
|
this.satelliteModel = false |
|
|
|
@ -1042,7 +1055,7 @@ export class GisLabelingComponent implements OnInit {
|
|
|
|
|
that.map = MapFactory.MapInstance('map', { layers: [layer] }); |
|
|
|
|
that.map.setCity('上海市'); |
|
|
|
|
AMap.plugin(["AMap.RangingTool", "AMap.MouseTool"], function () { |
|
|
|
|
that.mouseTool = new AMap.MouseTool(that.map); |
|
|
|
|
that.mouseTool = new AMap.MouseTool(that.map.self); |
|
|
|
|
}); |
|
|
|
|
|
|
|
|
|
} |
|
|
|
@ -1179,7 +1192,7 @@ export class GisLabelingComponent implements OnInit {
|
|
|
|
|
this.markers.forEach((element, index) => { this.map.remove(element); }); //先删除所有标点
|
|
|
|
|
this.markers = [] |
|
|
|
|
|
|
|
|
|
let marker = new AMap.Marker({ |
|
|
|
|
let marker = MapFactory.MarkerInstance({ |
|
|
|
|
map: this.map, |
|
|
|
|
position: [e.location.x, e.location.y], // 基点位置,
|
|
|
|
|
}); |
|
|
|
@ -1220,7 +1233,7 @@ export class GisLabelingComponent implements OnInit {
|
|
|
|
|
</div> |
|
|
|
|
</div>` |
|
|
|
|
// 创建一个自定义内容的 infowindow 实例
|
|
|
|
|
this.infoWindow = new AMap.InfoWindow({ |
|
|
|
|
this.infoWindow = MapFactory.InfoWindowInstance({ |
|
|
|
|
position: [e.location.x, e.location.y], |
|
|
|
|
offset: MapFactory.PixelInstance(0, -30), |
|
|
|
|
content: markerContent, |
|
|
|
@ -1233,7 +1246,7 @@ export class GisLabelingComponent implements OnInit {
|
|
|
|
|
this.renderer2.listen(this.elementRef.nativeElement.querySelector('#seePlan'), 'click', (event) => { this.seePlan(e) })//查看预案点击事件
|
|
|
|
|
this.renderer2.listen(this.elementRef.nativeElement.querySelector('#share'), 'click', (event) => { this.share(e) })//分享点击事件
|
|
|
|
|
marker.on('click', (ev) => { //marker点击事件
|
|
|
|
|
this.infoWindow = new AMap.InfoWindow({ |
|
|
|
|
this.infoWindow = MapFactory.InfoWindowInstance({ |
|
|
|
|
position: [e.location.x, e.location.y], |
|
|
|
|
offset: MapFactory.PixelInstance(0, -30), |
|
|
|
|
content: markerContent, |
|
|
|
|