基礎的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
- AndroidStudio外掛GsonFormat解析及二次開發AndroidORM
- [Jenkins 外掛開發] Jenkins 外掛二次開發 - 設計一個程式碼 diff 的小工具Jenkins
- 基於Ruby的Burpsuite外掛開發UI
- AppDomain實現【外掛式】開發APPAI
- 基於Intellij 外掛開發指南IntelliJ
- 搭建自己的 vue 元件庫(一) —— vue 外掛開發基礎知識Vue元件
- android 基於dex的外掛化開發Android
- 手把手教你開發jquery外掛(三)jQuery
- [外掛擴充套件]基於PHPMailer開發的一個判斷失誤的外掛....套件PHPAI
- 從零開始實現ASP.NET Core MVC的外掛式開發(四) - 外掛安裝ASP.NETMVC
- wordpress外掛開發03-簡單的all in one seo 外掛開發
- Aescripts Rowbyte Plexus for Mac(AE三維粒子外掛)Mac
- 深入理解jQuery外掛開發總結(三)jQuery
- go~wasm外掛的開發GoASM
- mybatis的三發外掛:分頁pagehelpMyBatis
- chrome 外掛開發Chrome
- flutter 外掛開發Flutter
- 開發Rhino外掛
- VscodeIDEA開發外掛VSCodeIdea
- Skywalking 外掛開發
- Webstorm 外掛開發WebORM
- Flutter外掛開發Flutter
- Mybatis外掛開發MyBatis
- cloud compare二次外掛化功能開發詳細步驟(一)Cloud
- 開發工具:Mybatis.Plus.外掛三種方式的逆向工程MyBatis
- ZBlog外掛開發檔案結構(外掛)
- apisix~lua外掛開發與外掛註冊API
- 零基礎進入到magento二次開發
- 用ts開發hbuilderx的外掛?UI
- 基於Chrome外掛實現支援CORS的本地開發代理ChromeCORS
- [功能外掛] 基於 Laravel 開發的小程式登陸功能Laravel
- 【功能外掛】基於 Laravel 開發的小程式登陸功能Laravel
- dlopen開發外掛庫
- Chrome外掛開發教程Chrome
- eslint外掛開發教程EsLint
- Eclipse外掛開發demoEclipse
- Maven外掛開發教程Maven