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