本段位加载kml,生成entity数据形式,并通过material属性来实现想要的线性。
一、加载kml的端口
Cesium.KmlDatasource.load();
viewer.dataSources.add()
data |
Resource | String | Document | Blob | A url, parsed KML document, or Blob containing binary KMZ data or a parsed KML document. | ||||||||||||||||||||||||
options |
Object | An object with the following properties:
|
var promiseKml =new Cesium.KmlDataSource.load("地址",
{
camera: viewer.scene.camera,
canvas: viewer.scene.canvas, clampToGround
:true//设置贴地
});
二、本地的地址加载思路是使用input的file标签获取地址,暂时没有解决兼容性问题,待完善
三、加载kml并设置样式,目前采用的是entity加载方式,后面尝试primitive方式
promiseKml.then(function(kmlData) { viewer.dataSources.add(kmlData) ; var entities = kmlData.entities.values; for (let i = 0; i < entities.length; i++) { var entity = entities[i]; //alert(entity.polyline); entity.polyline.show=true; entity.polyline.width=10; //1、发光线性 entity.polyline.material= new Cesium.PolylineGlowMaterialProperty({ glowPower: 0.5, color: Cesium.Color.BLUE }) // //2、箭头线 // // entity.polyline.material=new Cesium.PolylineArrowMaterialProperty(Cesium.Color.RED) // // 3、轮廓线 // // entity.polyline.material= new Cesium.PolylineOutlineMaterialProperty({ // // color: Cesium.Color.BLUE, // // outlineWidth: 10, // // outlineColor: Cesium.Color.RED // // }) // //4、虚线,虚线部分显示出来,那么可以做成间隔线的样式 // entity.polyline.material= new Cesium.PolylineDashMaterialProperty({ // color:Cesium.Color.RED, // gapColor:Cesium.Color.TRANSPARENT, // dashLength:20, // dashPattern:255 // }) // } }});
原文地址:https://www.cnblogs.com/xiaoguniang0204/p/11746579.html
时间: 2024-10-30 08:46:50