STK二次开发
文章目錄
- STK二次開發
- 引言
- 1. 開發者工具
- 1.1 STK集成
- 1.2 STK Engine
- 1.3 STK Components
- 2. 應用場景
- 2.1 STK集成
- 2.2 STK Engine
- 2.3 STK Components
- 參考鏈接
STK二次開發
引言
內容摘自AGI官網,僅供參考。
1. 開發者工具
STK主要提供了三種開發工具(方式),下面分別介紹。
1.1 STK集成
Automate STK and integrate it with other applications to extend its capabilities.
自動化操作STK(不需要手動點擊界面進行操作),并將其與其他應用程序集成(如Matlab等),以擴展其功能。
STK Integration enables you to automate repetitive tasks from outside Systems Tool Kit (STK), integrate other applications with STK, and access STK’s capabilities from other applications. Integration provides access to two APIs — the STK Object Model and Connect. All the components of Integration are fully documented, and AGI maintains a GitHub repository of code samples to help you get started with the STK Object Model.
通過與STK集成,可以在STK外部自動化執行重復的任務,也可以通過其他應用程序調用STK的功能。提供兩類API—STK對象模型和Connect連接,關于STK Object Model的發展歷史可以參見:A History of the Development of the STK Object Model,其中重點如下:
Originally, the only way to programmatically modify STK was through “Connect Commands”. The outside applications were able to establish TCP/IP connection with STK and exchange string commands. While STK OM was created as replacement for the Connect commands, the Connect commands can still be used as part of the STK OM. The Connect commands are still important as they fill current gaps in the STK OM.
雖然STK OM是用來替代Connect commands,但兩者并不獨立,在STK OM中仍舊可以使用Connect
注:這種開發方式依賴于STK桌面端。
1.2 STK Engine
STK Engine gives you access to STK’s analytical and visualization capabilities without the weight of STK’s graphical user interface. Using the Connect or STK Object Model APIs, you can achieve a seamless integration with an existing application or design an entirely new application to support a specific workflow. And to achieve even more efficient computation speeds, you can deactivate visualization.
STK Engine可以看作是沒有用戶界面的STK。
注:STK Engine在Windows、Linux環境下均可以使用,在Windows環境下安裝STK后,就已經包含STK Engine,在Linux環境下STK Engine是單獨壓縮包。
1.3 STK Components
STK Components?is a collection of native Java and .Net libraries designed to provide an extensible, open architecture for analyzing and visualizing complex ?problems. Use the STK Components libraries in conjunction with your proprietary business logic to accelerate the development and deployment of software solutions for your enterprise or programs.
STK Components是Java、.Net庫的集合。
注:STK Components獨立于STK桌面端,對其沒有依賴,就是純資源庫。
STK Engine與STK Components的區別:
雖然兩個產品都提供了API用來擴展和自動化操作STK,但是兩者在有些方面還是有很大不同的,在實際項目中可以根據兩者的強項來選擇更適合的產品。
You should use STK Engine if the STK fits into your workflow already. You need less programming knowledge to create a custom application using Engine because it works with the STK user interface. If you are familiar with the STK Object Model and Connect, you can use both of those APIs with Engine. By default, Engine enables graphics, but you can disable them to speed up computations.
如果STK的工作流程已經滿足需要,就可以選擇STK Engine。
You should use STK Components if you want to customize STK down to the core. To achieve this level of customization, you will need to rely on strong programming skills to adapt Components to your needs. Your reward is simple but powerful — full control over the capabilities of STK. With Components, you have the flexibility to create an application completely specialized to your mission. By default, Components does not include graphics, but it’s easy to integrate them.
STK Components相對來說更底層一些,如果想要深入到STK內核進行定制化,就需要選擇STK Components。
三者關系:STK Engine可以看成是沒有用戶界面的STK,STK Components的大部分可以看成是STK Engine的底層依賴。
2. 應用場景
2.1 STK集成
依賴于STK桌面端,通過自動化的方式解決一些重復性的工作。比如原來可能需要手動在STK內創建100個Facility,現在可以通過Matlab腳本或者其他語言的接口直接自動化創建。
2.2 STK Engine
想要使用STK中的已有功能,但是用戶界面根據自己的業務需要進行開發。適合桌面端系統開發,不適合作為B/S系統的服務端(作為后端服務需要向前端提供CZML,Windows環境下CZML的生成依賴于Connect命令,就是說需要STK桌面端的支持,顯然無法滿足STK桌面端替代的需求;STK Engine提供Linux版本,解壓后可用,可以滿足不安裝STK的需求,應該也可以導出CZML;但是STK Engine的操作首先建立在 AgStkObjectRoot上,在其之上有場景的加載或新建、場景對象的創建等,后端可能需要同時維護多個rootObject,類似于運行多個STK,極其耗費資源。因此不適合作為后端服務。)。
2.3 STK Components
想要對STK進行更深層次的定制化功能開發。適合桌面端系統開發,也可以作為B/S系統的服務端,后端將分析結果生成czml文檔,前端通過Cesium對結果進行可視化展示。
參考鏈接
[1]. STK Developer Tools
[2]. A History of the Development of the STK Object Model
[3]. STK Components
[4]. STK Integration
[5]. STK Engine
總結
- 上一篇: Java异步通信实现
- 下一篇: bat文件注册为Windows服务与依赖