绘制自定义样式
setKmlData() {
let kmlUrl = "鄯乌线.kml";
let kmlDataPromise = Cesium.KmlDataSource.load(kmlUrl, {
camera: window.cesiumViewer.scene.camera,
canvas: window.cesiumViewer.scene.canvas,
clampToGround: true,
screenOverlayContainer: window.cesiumViewer.container,
});
kmlDataPromise.then((dataSource) => {
window.cesiumViewer.dataSources.add(dataSource);
var entities = dataSource.entities.values;
for (let i = 0; i < entities.length; i++) {
var entity = entities[i];
entity.polyline.show = true;
entity.polyline.width = 3;
entity.polyline.material = new Cesium.PolylineGlowMaterialProperty({
glowPower: 0.5,
color: Cesium.Color.BLUE,
})
entity.polyline.material = new Cesium.PolylineArrowMaterialProperty(Cesium.Color.RED)
entity.polyline.material = new Cesium.PolylineOutlineMaterialProperty({
color: Cesium.Color.BLUE,
outlineWidth: 20,
outlineColor: Cesium.Color.RED
})
}
});
},
纯文件数据
setKmlData(kmlUrl) {
if (kmlUrl) {
let option = {
camera: window.cesiumViewer.scene.camera,
canvas: window.cesiumViewer.scene.canvas,
clampToGround: true,
screenOverlayContainer: window.cesiumViewer.container,
}
const kmlFileIndex = this.kmlFiles.findIndex(file => file.url === kmlUrl);
this.$nextTick(() => {
let kmlDataPromise = Cesium.KmlDataSource.load(kmlUrl, option);
kmlDataPromise.then((dataSource) => {
if (kmlFileIndex === -1) {
window.cesiumViewer.dataSources.add(dataSource);
this.kmlFiles.push({ url: kmlUrl, dataSource: dataSource });
}
var entities = dataSource.entities.values;
for (let i = 0; i < entities.length; i++) {
var entity = entities[i];
if (entity.position) {
var cartographicPosition = Cesium.Cartographic.fromCartesian(entity.position.getValue(Cesium.JulianDate.now()));
var latitude = Cesium.Math.toDegrees(cartographicPosition.latitude);
var longitude = Cesium.Math.toDegrees(cartographicPosition.longitude);
let params = { longitude: longitude, latitude: latitude }
this.setMapCenter(params)
}
}
});
})
}
},