1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586 |
- // import * as ol from 'ol'
- import ol from './ol'
- class createCluster {
- constructor (option, map) {
- this.layer = null
- this.flag = false // 用于判断是否有目标图层
- let layer = map.getLayers()
- this.map = map
- this.imgUrl = option.imgUrl
- this.layerName = option.layerName // 传入聚合的目标图层的名字
- this.distance = option.distance || 10
- for (let i = 0; i < layer.array_.length; i++) {
- if (layer.array_[i].className_ === this.layerName) {
- this.flag = true
- this.layer = layer.array_[i]
- }
- }
- }
- openCluster () {
- if (this.flag) {
- let scale = 0.13
- let features = this.layer.getSource().getFeatures()
- var source = new ol.source.Vector({
- features: features
- })
- var clusterSource = new ol.source.Cluster({
- distance: this.distance,
- source: source
- })
- let style = new ol.style.Style({
- image: new ol.style.Icon({
- src: this.imgUrl,
- anchor: [0.5, 0.5],
- scale: scale
- })
- })
- this.layer.setSource(clusterSource)
- this.layer.setStyle(style)
- }
- }
- }
- function openNoticeLayerCluster (noticeImgUrl, map) {
- let cluster = new createCluster ({
- 'layerName': 'noticeLayer',
- 'imgUrl': noticeImgUrl
- }, map)
- cluster.openCluster()
- }
- function openReportLayerCluster (reportImgUrl, map) {
- let cluster = new createCluster ({
- 'layerName': 'reportLayer',
- 'imgUrl': reportImgUrl
- }, map)
- cluster.openCluster()
- }
- function openCultureLayerCluster (cultureImgUrl, map) {
- let cluster = new createCluster({
- 'layerName': 'cultureLayer',
- 'imgUrl': cultureImgUrl
- }, map)
- cluster.openCluster()
- }
- function openOtherLayerCluster (otherImgUrl, map) {
- let cluster = new createCluster ({
- 'layerName': 'otherLayer',
- 'imgUrl': otherImgUrl
- }, map)
- cluster.openCluster()
- }
- export default {openNoticeLayerCluster, openReportLayerCluster, openCultureLayerCluster, openOtherLayerCluster}
|