首页 > 其他分享 >Cesium常用数据类型加载方式

Cesium常用数据类型加载方式

时间:2023-12-31 13:33:34浏览次数:33  
标签:tileset cartographic 数据类型 entity var Cesium new 加载

WMTS

let tdtIMGLabel = new Cesium.WebMapTileServiceImageryProvider({
                //影像注记
                url: "http://t{s}.tianditu.gov.cn/cia_w/wmts?service=wmts&request=GetTile&version=1.0.0&LAYER=cia&tileMatrixSet=w&TileMatrix={TileMatrix}&TileRow={TileRow}&TileCol={TileCol}&style=default&tk=" + tdtKey,
                subdomains: subdomains,
                layer: "tdtCiaLayer",
                style: "default",
                format: "image/png",
                tileMatrixSetID: "GoogleMapsCompatible",
                show: true,
                TRANSPARENT: true,
 });

WMS

var district = new this.Cesium.WebMapServiceImageryProvider({
                url: geoserverUrl+"geoserver/cesium/wms",
                layers: "cesium:province,cesium:china",
                parameters: {
                    FORMAT: "image/png",
                    VERSION: "1.1.1",
                    SERVICE: "WMS",
                    TRANSPARENT: true,
                },
                srs: "EPSG:4326",
                // proxy: new Cesium.DefaultProxy('/proxy/')
            });
            viewer.imageryLayers.addImageryProvider(district);

GeoJSON

// entity方式
            yfcDataSource = Cesium.GeoJsonDataSource.load(
                "../data/geojson/yangfangcun_h.geojson", {
                clampToGround: false,//数据贴地
                stroke: Cesium.Color.RED,
                fill: Cesium.Color.TRANSPARENT,
                strokeWidth: 3,
                markerSymbol: '?',
                zIndex: 3
            })
            yfcDataSource.then(function (data) {
                
            	viewer.dataSources.add(yfcDataSource);
                entities =dataSource.entities.values;
                for (var i = 0; i < entities.length;i++) {
                    var entity = entities[i];
                    // 赋随机颜色
                    var color=Cesium.Color.fromRandom({alpha: 0.7});
                    entity.polygon.fill = true;
                    entity.polygon.material = color;
                    entity.polygon.outline = true;
                    entity.polygon.outlineColor = Cesium.Color.YELLOW;
                }
                
            });

// primitive方式
var urlpath =  "../data/json/world.json"
$.get(urlpath, function (data) {
    const josnN = JSON.parse(data);
    const features = josnN.features;
    addDataToGlobe(features);
})
function addDataToGlobe(features){
    const instances = [];
    for(let i=0; i<features.length; i++){
        for(let j=0; j<features[i].geometry.coordinates.length; j++){
            const polygonArr = features[i].geometry.coordinates[j].toString().split(',');
            const polygon = new Cesium.PolygonGeometry({
                polygonHierarchy : new Cesium.PolygonHierarchy(
                    Cesium.Cartesian3.fromDegreesArray(polygonArr)
                ),
                vertexFormat: Cesium.PerInstanceColorAppearance.VERTEX_FORMAT
            });
            const geometry = Cesium.PolygonGeometry.createGeometry(polygon);
            instances.push(new Cesium.GeometryInstance({
                geometry : geometry,
                attributes : {
                    color : Cesium.ColorGeometryInstanceAttribute.fromColor(Cesium.Color.fromRandom({alpha : 0.7})),
                },
            }));
        }
    }
    
    const primitive = new Cesium.Primitive({
        geometryInstances : instances,
        appearance :  new Cesium.PerInstanceColorAppearance({ // 为每个instance着色
            translucent : true,
            closed : false
        }),
    });
    
    scene.primitives.add(primitive);
}	

3DTileset

tileset = new Cesium.Cesium3DTileset({
                url: "../data/3dtiles/yangfangcun/tileset.json",
                // url: 'http://192.168.201.58:8008/yangfangcun/tileset.json'
            });

            tileset.readyPromise
                .then(function (tileset) {
                    viewer.scene.primitives.add(tileset);
                    // viewer.zoomTo(
                    //     tileset,
                    //     new Cesium.HeadingPitchRange(
                    //         0.0,
                    //         -0.5,
                    //         tileset.boundingSphere.radius * 2.0
                    //     )
                    // );

                    var cartographic = Cesium.Cartographic.fromCartesian(
                        tileset.boundingSphere.center
                    );
                    var surface = Cesium.Cartesian3.fromRadians(
                        cartographic.longitude,
                        cartographic.latitude,
                        0.0
                    );
                    var offset = Cesium.Cartesian3.fromRadians(
                        cartographic.longitude,
                        cartographic.latitude,
                        cartographic.height
                        //730//模型贴地高度
                    );
                    var translation = Cesium.Cartesian3.subtract(
                        offset,
                        surface,
                        new Cesium.Cartesian3()
                    );
                    tileset.modelMatrix = Cesium.Matrix4.fromTranslation(translation);
                    zoomTo('vallige')

                })
                .otherwise(function (error) {
                    console.log(error);
                });

标签:tileset,cartographic,数据类型,entity,var,Cesium,new,加载
From: https://www.cnblogs.com/openmind-ink/p/17937440

相关文章

  • python学习笔记5(保留字、标识符、变量、基本数据类型)
    上一节学习了print复杂语法、input、注释、代码缩进本节内容:(一)保留字特殊意义的词,区分大小写#查看保留字importkeywordprint(keyword.kwlist)(二)标识符1、名字,组成:字母、下划线和数字数字不能开头注意不能有殊殊字符一般不以_开头,有特殊意义一般不以中文开头2、代码规范模块名称,a......
  • 【Java】一文讲解Java类加载机制
    Java类加载机制是Java运行时的核心组成部分,负责在程序运行过程中动态加载和连接类文件,并将其转换为可执行代码。理解类加载机制,能更容易理解你一行行敲下的Java代码是如何在JVM虚拟机上运行起来。并且理解类加载机制之后,我们也能掌握如何自定义类加载器,如何做热更新等。//准......
  • Java基础-数据类型拓展
    数据类型拓展publicclassDemo04{ publicstaticvoidmain(String[]args){   //整数拓展:进制二进制0b 十进制  八进制0 十六进制0x​   inta=0b10; //二进制0b   inta1=10;  //十进制   inta2=010;......
  • Java基础-数据类型
    数据类型强类型语言要求变量的使用要严格符合规定,所有变量都必须先定义后才能使用。弱类型语言要求变量的使用可以不符合规定,所有变量都必须先定义后才能使用。 Java的数据类型分为两大类基本类型(primitivetype)引用类型(referencetype)  publ......
  • 关于vue里面使用markdown插入视频前台渲染导致<video>等标签被转义成字符,导致视频加载
    markdown中插入视频前台渲染出来导致<video>等标签被转义成字符解决办法:如图:在markdown里面插入视频,可以按照下面写法,哈哈,虽然很捞,但是还是可以满足的。<videosrc="https://xxxxxxxxxxxxxx.mp4"controls="true"style="max-width:100%;height:auto;"></video> ......
  • spring(自动加载xml装载容器)
    1.实现将DefaultListableBeanFactory类注入到当前AbstractBeanDefinitionReader中2.取出xml内容,并生成beanfinition实例对象,注入到DefaultListableBeanFactory类中的map中。packageorg.springframework.beans.factory.xml;importcn.hutool.core.util.StrUtil;importorg.do......
  • 【Flink系列二十一】深入理解 JVM的类型加载约束,解决 Flink 类型加载冲突问题的通用方
    classByteArrayDeserializerisnotaninstanceoforg.apache.kafka.common.serialization.DeserializerDebuggingClassloading类似的XcannotbecasttoXexceptions如何理解这类异常?这类异常可以归纳为类型异常,按个人有限经验,现象分为两种常见情况:类型赋值检查:不能......
  • Nginx reload重新加载配置文件的异常情况
    Nginxreload重新加载配置文件的异常情况背景临近年底,很多业务工作量都上来了.今天同事告知,nginx的log里面出现了大量的toomanyopenfiles的提示信息.并且同事明确说明,已经修改了/etc/secuirty/limits.conf以及worker_connections这两个参数.并且已经第一时......
  • idea 项目加载 全线飘红, @Service飘红,连 import java.util.List; 也飘红,终极解决方案
    常规方案:1、maven,检查maven配置,重新加载maven依赖,重新加载项目,把maven的本地私库删了重新下载2、检查idea配置,jdk配置,加载的项目的配置,idea清理缓存重启,等等3、是否更新了其他idea配置,比如git忽略文件里是否添加了*.class 4、重新安装idea5、及其他以上方案自行百度,都可以......
  • 动态加载JS文件
    在某些特殊场景下,特别是在库和框架的开发过程中,需要动态加载JS文件并执行它们。下面是使用Promise的简单封装。functionloadJS(files,done){//Gettheheadtagconsthead=document.getElementsByTagName('head')[0];Promise.all(files.map(file=>{returnnewProm......