Selaa lähdekoodia

improve the cluster layer

tags/3.3.0
cavencj 1 vuosi sitten
vanhempi
commit
b5327042bb

BIN
examples/assets/icon/camera_1.png Näytä tiedosto


BIN
examples/assets/icon/camera_2.png Näytä tiedosto


+ 1
- 1
examples/index.html Näytä tiedosto

@@ -149,7 +149,7 @@

<div class="container">
<div class="nav">
<div class="banner"> DC-SDK v3.2.0 </div>
<div class="banner"> DC-SDK v3.3.0 </div>
<div class="example-list-wrapper">
<div id="example-list" class="example-list" data-accordion-group> </div>
<div class="desc"></div>

+ 55
- 0
examples/layer/cluster_clustering_image.html Näytä tiedosto

@@ -0,0 +1,55 @@
<!DOCTYPE html>
<html lang="en">

<head>
<meta charset="utf-8">
<meta name="viewport" content="width=device-width,initial-scale=1.0">
<title>dc-example</title>
<script src='/libs/dc-sdk/dc.min.js'></script>
<link href='/libs/dc-sdk/dc.min.css' type='text/css' rel='stylesheet'>
<link href='../index.css' type='text/css' rel='stylesheet'>
</head>

<body>

<div id="viewer-container" class="viewer-container"></div>
<script>
let viewer = undefined

function generatePosition(num) {
let list = []
let images=["../assets/icon/camera.png","../assets/icon/camera_1.png","../assets/icon/camera_2.png"]
for (let i = 0; i < num; i++) {
let lng = 120.38105869 + Math.random() * 0.5
let lat = 31.10115627 + Math.random() * 0.5
list.push({
lng,
lat,
attr:{
id:DC.Util.uuid(),
style:{
image:images[Math.floor(Math.random() * images.length)],
}
}})
}
return list
}

function initViewer() {
viewer = new DC.Viewer('viewer-container')
let baseLayer = DC.ImageryLayerFactory.createImageryLayer(DC.ImageryType.AMAP)
viewer.addBaseLayer( baseLayer)
let layer = new DC.ClusterLayer('layer',{
style:'cluster'
})
layer.setPoints(generatePosition(10000))
viewer.addLayer(layer)
layer.on(DC.MouseEventType.CLICK,e=>{console.log(e.overlay.attr)})
viewer.flyToPosition("120.62244801448453,31.358576663788927,92653.79773798586,0,-90,0")
}
DC.ready({
baseUrl:'../libs/dc-sdk/resources/'
}).then(initViewer)
</script>
</body>
</html>

+ 4
- 0
examples/list.js Näytä tiedosto

@@ -233,6 +233,10 @@ const EXAMPLE_LIST = [
name: '聚合图层(圆)',
page: 'cluster_circle.html',
},
{
name: '聚合图层(自定义图片)',
page: 'cluster_clustering_image.html',
},
{
name: '经纬网格图层',
page: 'graticule.html',

+ 7
- 2
src/modules/layer/type/ClusterLayer.js Näytä tiedosto

@@ -48,6 +48,7 @@ class ClusterLayer extends Layer {
})
this._allCount = 0
this._changedRemoveCallback = undefined
this._lastChangedTime = null
this._state = State.INITIALIZED
}

@@ -172,7 +173,12 @@ class ClusterLayer extends Layer {
return image
}

_changeCluster() {
_changeCluster(time) {
let now = Cesium.getTimestamp()
if (this._lastChangedTime && now - this._lastChangedTime <= 1000) {
return
}
this._lastChangedTime = now
this._cache = {}
this._billboards.removeAll()
this._labels.removeAll()
@@ -187,7 +193,6 @@ class ClusterLayer extends Layer {
],
this._viewer.zoom
)

result.forEach((item) => {
let overlayId = Util.uuid()
if (item.properties.cluster) {

Loading…
Peruuta
Tallenna