基礎的Mapgis三維二次開發-外掛式
最近在做一個杭州石油的專案開發一個小系統。
1.命令必須是 ICommand 的派生類
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Drawing;
using MapGIS.PluginEngine;
using System.Windows.Forms;
using MapGIS.Scene3D;
namespace ThreeDimenModeling
{
class IsoheightModeling : ICommand
{
//應用框架物件
IApplication hock = null;
//場景檢視控制元件
SceneControl sceneCtrl = null;
#region ICommand成員
public Bitmap Bitmap
{
get { return null; }
}
public string Caption
{
get { return "等高線建模"; }
}
public string Category
{
get { return "ThreeDimenModeling"; }
}
public bool Checked
{
get { return false; }
}
public bool Enabled
{
get { return true; }
}
public string Message
{
get { return ""; }
}
public string Name
{
get { return "等高線建模"; }
}
public string Tooltip
{
get { return ""; }
}
public void OnClick()
{
sceneCtrl = (this.hock.ActiveContentsView as ISceneContentsView).SceneControl;
IsoheightModelingForm IsoHeiMoForm = new IsoheightModelingForm(sceneCtrl );
if (IsoHeiMoForm.ShowDialog() != DialogResult.OK) return;
}
public void OnCreate(IApplication hook)
{
if (hook != null)
{
this.hock = hook;
this.hock.StateManager.StateChangedEvent += new StateChangedHandler(StateManager_StateChangedEvent);
}
}
void StateManager_StateChangedEvent(object sender, StateEventArgs e)
{
this.hock.PluginContainer.PluginEnable(this, false);
bool bEnable = false;
if (this.hock.ActiveContentsView != null && this.hock.ActiveContentsView is ISceneContentsView)
{
//當存在當前編輯狀態的圖層時,才可以進行查詢
SceneControl ctr = (this.hock.ActiveContentsView as ISceneContentsView).SceneControl;
if (ctr != null && ctr.GetSceneNum() > 0)
{
bEnable = true;
}
}
this.hock.PluginContainer.PluginEnable(this, bEnable);
return;
}
private void PluginContainer_ContentsViewClosingEvent(IContentsView contentsView, ContentsViewClosingEventArgs args)
{
if (contentsView is ISceneContentsView)
{
SceneControl ctr = (this.hock.ActiveContentsView as ISceneContentsView).SceneControl;
}
}
#endregion
}
}
2.彈出Form
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;
using MapGIS.Scene3D;
namespace ThreeDimenModeling
{
public partial class IsoheightModelingForm : Form
{
//場景控制元件
SceneControl sceneCtrl = null;
public IsoheightModelingForm(SceneControl sCtrl )
{
InitializeComponent();
this.sceneCtrl = sCtrl;
}
}
}
相關文章
- 零基礎ASP.NET Core MVC外掛式開發ASP.NETMVC
- jQ基礎篇–外掛開發入門
- Android外掛式開發(一)Android
- [Jenkins 外掛開發] Jenkins 外掛二次開發-設計一個程式碼 diff 的小工具Jenkins
- AndroidStudio外掛GsonFormat解析及二次開發AndroidORM
- 搭建自己的 vue 元件庫(一) —— vue 外掛開發基礎知識Vue元件
- 三維重建基礎
- AppDomain實現【外掛式】開發APPAI
- 基於Intellij 外掛開發指南IntelliJ
- 基於Ruby的Burpsuite外掛開發UI
- android 基於dex的外掛化開發Android
- 手把手教你開發jquery外掛(三)jQuery
- [外掛擴充套件]基於PHPMailer開發的一個判斷失誤的外掛....套件PHPAI
- 深入理解jQuery外掛開發總結(三)jQuery
- HBuilder 第三方外掛開發UI
- 第8章 高效開發和使用外掛 (三)
- wordpress外掛開發03-簡單的all in one seo 外掛開發
- Flutter外掛開發Flutter
- Mybatis外掛開發MyBatis
- Webstorm 外掛開發WebORM
- flutter 外掛開發Flutter
- 開發Rhino外掛
- chrome 外掛開發Chrome
- 從零開始實現ASP.NET Core MVC的外掛式開發(四) - 外掛安裝ASP.NETMVC
- go~wasm外掛的開發GoASM
- mybatis的三發外掛:分頁pagehelpMyBatis
- 零基礎進入到magento二次開發
- apisix~lua外掛開發與外掛註冊API
- 嵌入式開發基礎(3)
- WEEX 第三方外掛開發教程
- 嵌入式開發的基礎知識
- 開發工具:Mybatis.Plus.外掛三種方式的逆向工程MyBatis
- cloud compare二次外掛化功能開發詳細步驟(一)Cloud
- Vue.JS基礎- 外掛、模組化Vue.js
- Eclipse基礎--plugin外掛安裝EclipsePlugin
- 基於ecshop的二次開發
- eclipse開發php的外掛EclipsePHP
- 用ts開發hbuilderx的外掛?UI