const graphicImg = new mars3d.graphic.DivGraphic({
attr: data.properties,
position: data.geometry.coordinates,
stopPropagation: true,
style: initStyleOption(data.properties.videoType, data.properties.videoName),
popup: `
`,
popupOptions: {
offsetY: getOffset(data.properties.videoType), // 显示Popup的偏移值,是DivGraphic本身的像素高度值
template: `
{content}
`,
horizontalOrigin: Cesium.HorizontalOrigin.LEFT,
verticalOrigin: Cesium.VerticalOrigin.CENTER,
},
})
layer.addGraphic(graphicImg)
// 创建label
const graphic = new mars3d.graphic.BillboardPrimitive({
position: label.geometry.coordinates,
style: {
image: imgUrl,
horizontalOrigin: Cesium.HorizontalOrigin.CENTER,
verticalOrigin: Cesium.VerticalOrigin.BOTTOM,
visibleDepth: false,
distanceDisplayCondition: new Cesium.DistanceDisplayCondition(0, 10000),
scaleByDistance: true,
scaleByDistance_far: 130000,
// scaleByDistance_farValue: 0.1,
scaleByDistance_near: 0,
// scaleByDistance_nearValue: 1,
label: {
text: formatLabel(label.properties.name),
horizontalOrigin: Cesium.HorizontalOrigin.CENTER,
verticalOrigin: Cesium.VerticalOrigin.BOTTOM,
visibleDepth: false,
pixelOffset: [0, -75],
pixelOffsetScaleByDistance: new Cesium.NearFarScalar(0, 1, 6500, 0),
color: color,
background: true,
backgroundColor: '#fff',
backgroundOpacity: 0.7,
backgroundPadding: new Cesium.Cartesian2(10, 10),
distanceDisplayCondition: new Cesium.DistanceDisplayCondition(0, 6000),
scaleByDistance: true,
scaleByDistance_far: 6000,
scaleByDistance_farValue: 0.1,
scaleByDistance_near: 0,
scaleByDistance_nearValue: 1,
font_size:50
},
},
attr: label.properties,
})
graphic.on(mars3d.EventType.click, (event) => {
console.log(event, 'event');
map.flyToGraphic(graphic, {
radius: 900,
heading: 359,
pitch: -47.2,
duration: 1.5,
})
})
divLayer.addGraphic(graphic)
你可以在label中写定样式,达到文本框的效果
效果呈现