Cesium パッケージにより構成グリッドと補間標高面の実現を実現

1. データ構造モデリング

2. 補間アルゴリズムにより得られた補間結果

3. レイヤー構成

プリミティブグリッド:{

isRLayerPanel: true、

プリミティブ:[]、

URL: '/static/data/Grid.json',

データ経路: ''、

dataIdField: 'コード',

オプション:{

id:'プリミティブグリッド',

名前: 'グリッド'、

タイプ:「グリッド」、

isShow: false

}、

位置: {

"宛先":{"x":-2194142.1719457568、"y":4477352.104342483、"z":3981503.0453665117}、

"方向":{"見出し":6.283185231778362,"ピッチ":-0.6090220537393618,"ロール":7.622047348831984e-8},

期間: 2

}、

エンティティタイプ:'プリミティブ'

}、

プリミティブトライアングル:{

isRLayerPanel: true、

プリミティブ:[]、

URL: '/static/data/Grid1.json',

データ経路: ''、

dataIdField: 'コード',

オプション:{

id:'primitiveTriangle',

名前: '三角グリッド'、

タイプ: 'triangleFan'、

isShow: false

}、

位置: {

"宛先":{"x":-2194142.1719457568、"y":4477352.104342483、"z":3981503.0453665117}、

"方向":{"見出し":6.283185231778362,"ピッチ":-0.6090220537393618,"ロール":7.622047348831984e-8},

期間: 2

}、

エンティティタイプ:'プリミティブ'

}

4. キーコード呼び出し

export function CommonDrawPrimitiveEntitiesByUrl(zjnCesium,layersInfo,LayersRenderSet,LayersRenderLabelSet,layerId){

getMapData(layersInfo[layerId].url).then((res) => {

if (layersInfo[layerId].dataPath != undefined && layersInfo[layerId].dataPath != "") {

let dp = layersInfo[layerId].dataPath.split('/')

for (let i = 0; i < dp.length; i++) {

res = res[dp[i]]

}

}

if(layersInfo[layerId].options.type=='water'){

CommonDrawPrimitiveEntities(res,zjnCesium,layersInfo,LayersRenderSet,LayersRenderLabelSet,layerId,layersInfo[layerId].dataGeoField,layersInfo[layerId].dataIdField)

}

if(layersInfo[layerId].options.type=='grid'){

CommonCreateMeshGridP(res,zjnCesium,layersInfo,LayersRenderSet,layerId)

}

if(layersInfo[layerId].options.type=='triangleFan'){

CommonCreateMeshTriangleFan(res,zjnCesium,layersInfo,LayersRenderSet,layerId)

}

});

}

五、实现效果展示

如果对您有帮助

感谢支持技术分享,请点赞支持:

技术合作交流qq:2401315930

おすすめ

転載: blog.csdn.net/weixin_42496466/article/details/129279906