聚合数量计算重复,billboard和label都被计算了一遍,导致最终聚合数量不对 #691
Unanswered
liyz123456
asked this question in
Q&A
Replies: 0 comments
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Uh oh!
There was an error while loading. Please reload this page.
-
<vc-collection-primitive
v-for="item in props.list"
:key="item.layer"
const billboards = [] as any
const labels = [] as any
list.forEach((li, index) => {
if (li.longitude && li.latitude) {
const cartographic = Cesium.Cartographic.fromDegrees(Number(li.longitude), Number(li.latitude))
const pointHeight = viewer.scene.globe.getHeight(cartographic)
const billboard = {
image: imgList[getRainLevel.value],
width: 12,
height: 12,
position: Cesium.Cartesian3.fromDegrees(Number(li.longitude), Number(li.latitude), pointHeight),
show: true,
properties: li,
disableDepthTestDistance: Number.POSITIVE_INFINITY,
label : {
show: true,
text:
${li.rsnm}-${li.rainLevelStr}
,font: '10px sans-serif',
showBackground: true,
backgroundColor:
getRainLevel.value < 4
? Cesium.Color.fromCssColorString('rgba(7, 11, 16, 0.6)')
: Cesium.Color.fromCssColorString('rgba(255, 255, 255, 0.6)'),
outlineWidth: 2,
verticalOrigin: Cesium.VerticalOrigin.BOTTOM,
horizontalOrigin: Cesium.HorizontalOrigin.CENTER,
pixelOffset: getRainLevel.value < 5 ? new Cesium.Cartesian2(0, -10) : new Cesium.Cartesian2(0, -10),
fillColor: colorList[getRainLevel.value],
position: Cesium.Cartesian3.fromDegrees(Number(li.longitude), Number(li.latitude), pointHeight),
disableDepthTestDistance: Number.POSITIVE_INFINITY
}
}
billboards.push(billboard)
const label = {
show: true,
text:
${li.rsnm}-${li.rainLevelStr}
,font: '10px sans-serif',
showBackground: true,
backgroundColor:
getRainLevel.value < 4
? Cesium.Color.fromCssColorString('rgba(7, 11, 16, 0.6)')
: Cesium.Color.fromCssColorString('rgba(255, 255, 255, 0.6)'),
outlineWidth: 2,
verticalOrigin: Cesium.VerticalOrigin.BOTTOM,
horizontalOrigin: Cesium.HorizontalOrigin.CENTER,
pixelOffset: getRainLevel.value < 5 ? new Cesium.Cartesian2(0, -10) : new Cesium.Cartesian2(0, -10),
fillColor: colorList[getRainLevel.value],
// position: Cesium.Cartesian3.fromDegrees(Number(li.longitude), Number(li.latitude), pointHeight),
disableDepthTestDistance: Number.POSITIVE_INFINITY
}
labels.push(label)
}
})
const params = {
layer: 'rainfall',
show: true,
billboards,
labels,
enabled: true,
pixelRange: 30,
minimumClusterSize: 3,
image: imgList[getRainLevel.value],
scale: 0.07,
twodigitscale: 0.09,
threedigitscale: 0.11,
fourdigitscale: 0.13,
pixelOffset: new Cesium.Cartesian2(-3, 8),
twodigitpixelOffset: new Cesium.Cartesian2(-6, 8),
threedigitpixelOffset: new Cesium.Cartesian2(-10, 8),
fourdigitpixelOffset: new Cesium.Cartesian2(-14, 8),
height: heightList[currentAdLevel.value] + 10000
}
this.rainfallList.push(params)
Beta Was this translation helpful? Give feedback.
All reactions