首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 編程語言 >  >> C語言 >> 關於C語言

C# 呼叫 Google Earth COM API 開發(四):圖層讀取與顯示控制

     編輯:關於C語言

實作從 Google Earth 讀取圖層資料庫,並在工具面板的 TreeView 中遞迴顯示,支援勾選控制圖層可見性。

核心程式碼

protected void ShowLayers() {
    Thread.Sleep(500);
    FeatureCollectionGE layers = GeApp.GetLayersDatabases();
    GEToolPad toolPad = GetToolPad();
    toolPad.ShowLayers(layers);
}

public void ShowLayers(FeatureCollectionGE layers) {
    if (this.InvokeRequired) {
        this.Invoke(new Action(() => InternalShowLayers(layers)));
    } else InternalShowLayers(layers);
}

protected void InternalShowLayers(FeatureCollectionGE layers) {
    tvLayers.Nodes.Clear();
    if (layers == null || layers.Count <= 0) return;
    foreach (FeatureGE layer in layers) {
        TreeNode node = new TreeNode(layer.Name) { Checked = layer.Visibility > 0, Tag = layer };
        ShowChildrenLayers(layer, node);
        node.Expand();
        tvLayers.Nodes.Add(node);
    }
}

protected void ShowChildrenLayers(FeatureGE layer, TreeNode node) {
    foreach (FeatureGE child in layer.GetChildren()) {
        TreeNode tn = new TreeNode(child.Name) { Checked = child.Visibility > 0, Tag = child };
        ShowChildrenLayers(child, tn);
        node.Nodes.Add(tn);
    }
}

使用 Invoke 確保跨執行緒 UI 更新安全。

  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved