0

czml ファイルで以前に宣言されたパケットからいくつかのプロパティ (つまり、「semiMinorAxis」と「semiMajorAxis」) を更新しようとしています。

これを行う方法は、「semiMinorAxis」と「semiMajorAxis」の値を上書きすることです。

つまり、12:00:00 から 13:00:00 の間では ellipse_1 のサイズは 300000 になり、13:00:00 から 14:00:00 の間ではサイズが 600000 になります。

単純なcsmlでこれを実行しようとしている方法は次のとおりです。

[
        {
        "id" : "document",
        "name" : "name",
        "version" : "1.0",
        "clock":
                {
                "interval": "2010-02-04T12:00:00Z/2010-02-04T14:00:00Z",
                "currentTime": "2010-02-04T12:00:00Z",
                        "multiplier": 100
                }
        },


        // I create ellipse_1
        {
        "id" : "ellipse_1",
        "name" : "ellipse_1 (61.0666922, -107.9917071)",
        "availability" : "2010-02-04T12:00:00Z/2010-02-04T13:00:00ZZ",
        "position" : {
                "cartographicDegrees" : [-107.9917071,61.0666922, 0.0]
        },
        "ellipse" : {
                "semiMinorAxis" : 300000,
                "semiMajorAxis" : 300000,
                "height" : 0.0,
                "material" : {
                        "solidColor" : {
                                "color" : {
                                        "rgba" :[151,20,150, 255]
                                }
                        }
                }
        }
},

        // I reuse the id and only change the values that I want the change
        {
        "id" : "ellipse_1"
        },
        "ellipse" : {
                "interval" : "2010-02-04T13:00:00Z/2010-02-04T14:00:00ZZ",
                "semiMinorAxis" : 600000,
                "semiMajorAxis" : 600000
        }
}
]

別のオプションはこのようにしているようです:

{
    "id" : "ellipse_1",
    "name" : "ellipse_1 (61.0666922, -107.9917071)",
    "availability" : "2010-02-04T12:00:00.00Z/2010-02-04T14:00:00.00Z",
    "position" : {
        "cartographicDegrees" : [-137.9917071,51.0666922, 0.0]
    },
    "ellipse" : [
    {
        "interval" : "2010-02-04T12:00:00.00Z/2010-02-04T13:00:00.00Z",
        "semiMinorAxis" : 300000,
        "semiMajorAxis" : 300000,
        "height" : 200000.0,
        "material" : {
            "solidColor" : {
                "color" : {
                    "rgba" :[253,152,38, 255]
                }
            }
        }
    },
    {
            "interval" : "2010-02-04T13:00:00.00Z/2010-02-04T14:00:00.00Z",
            "semiMinorAxis" : 600000,
            "semiMajorAxis" : 600000,
            "height" : 200000.0,
            "material" : {
                "solidColor" : {
                    "color" : {
                        "rgba" :[253,152,38, 255]
                    }
                }
            }
        }
    ]
}

ちなみに、これを表示するスクリプトは次のとおりです。

<script>
    var viewer = new Cesium.Viewer('cesiumContainer', {
    imageryProvider : new Cesium.ArcGisMapServerImageryProvider({url : 'http://server.arcgisonline.com/ArcGIS/rest/services/World_Street_Map/MapServer'
    }),
    baseLayerPicker : false,
    animation : true,
    timeline : true,
    });

    var dataSourcePromise = Cesium.CzmlDataSource.load('../Apps/oscar.czml');
    viewer.dataSources.add(dataSourcePromise);    
    viewer.flyTo(dataSourcePromise).then(function(result){
    });
</script>

残念ながら、これらは明らかに csml ファイル内のオブジェクトの値を更新する方法ではありません。明らかな何かが欠けていますか?

ありがとう!

4

0 に答える 0