L1 kml加载及设置

Posted xiaoguniang0204

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了L1 kml加载及设置相关的知识,希望对你有一定的参考价值。

本段位加载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:
NameTypeDefaultDescription
camera Camera   The camera that is used for viewRefreshModes and sending camera properties to network links.
canvas Canvas   The canvas that is used for sending viewer properties to network links.
sourceUri String   optional Overrides the url to use for resolving relative links and other KML network features.
clampToGround Boolean false optional true if we want the geometry features (Polygons, LineStrings and LinearRings) clamped to the ground.
ellipsoid Ellipsoid Ellipsoid.WGS84 optional The global ellipsoid used for geographical calculations.

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
//         })
//     }   
}});

 

 

以上是关于L1 kml加载及设置的主要内容,如果未能解决你的问题,请参考以下文章

使用谷歌地图加载本地 .kml 文件?

如何使用已加载 KML 图层的动态 Google 地图上的按钮激活地理定位?

GlobalMapper精品教程017:KML generator快速将坐标转为KML文件

利用Global Mapper实现kml转换dwg文件。投影如何设置,请教。

如何设置通过google maps api kmllayer调用的kml文件的infowindow的宽度?

将谷歌地图中心放在kml上,而不是位置