supermap二次開發從0到1

1、爲何要寫這篇博客

地理信息系統門外漢,計算機背景。項目要求基於csharp、supermap進行開發。在看了supermap的實例程序後,發現沒有本身能用的,有的示例有參考價值,但也是邊邊角角,不成系統。須要本身整理思路。

2、需求

同事提供了一個算法接口,根據輸入的經緯度以及其餘參數,計算出某一點的某屬性值(相似於高度等高程值),項目須要計算出中國範圍內的每一個點的屬性值,而後根據屬性值的不一樣,渲染顏色後呈如今地圖上(後來知道這叫專題圖)。

3、supermap狀況介紹

我用的是supermap iobjet 8c,機器是64位的。因爲集成了其餘的軟件接口,因此必須生成64位的程序,所以只能安裝supermap64位安裝包。這樣就不能拖放控件,也不能運行示例程序(示例均爲32位)。

4、開發歷程

1.首先根據入門程序,實現了在winform窗體中加入mapcontrol,而後打開工做空間,顯示地圖的功能。
2.調用接口,計算每一個點的值(以一經度、一緯度爲間隔), 定義一個二維數組rec[][],來存儲各個點的值,通過查看幫助文檔,我大概瞭解到須要生成柵格專題圖。那麼我須要生成柵格數據,最開始我認爲個人數組數據就包含了柵格數據須要的信息。因此我就想直接生成柵格數據集,而後把屬性值和對應經緯度填進去就好了。可是詢問客服說通常都不會這麼作,會使用插值算法生成柵格數據。
可是諮詢過程當中supermap人員反覆問我。
人:你的點數據是怎麼取的?
我:  個人數據是根據經緯度算出來的啊(凌亂中)
人:經緯度是怎麼取的?
我:  就是中國地圖的點上的經緯度?(這是什麼問題???)
人:就是座標系不同,經緯度也不同,你這個參考系是什麼參考系?要先肯定這個
總結:由於是門外漢,我在網上搜索中國經緯度範圍,獲得範圍值以後,就獲取到點數據了,可是這個座標系是什麼座標系?沒辦法解決,並且點數據確定有座標系等數據,並且地圖的座標系是怎樣的,這些都須要對應起來。最後個人解決方法是`從所選擇的地圖數據中的數據集中找到一個點數據集,複製之後清空點數據內容,那麼這個空的數據集就擁有跟地圖一樣的座標系統,參數什麼的也都不須要設置`。這樣往點數據集添加點數據之後,就獲得了點數據集。
3.點數據集須要轉爲柵格數據集,郵件客服開始給了一個接口Interpolator,可是使用過程當中發現不能這樣用,由於dem數據須要先構建,而在構建的過程當中會自動調用這個接口(電話客服告訴個人),解決方法,經過idesktop對我生成的點數據進行dem構建(每一個版本位置不一樣,8c在數據欄下)。而後根據參數面板中的參數設置去對相應的對象參數進行設置(進一步適當修改參數)。

捕獲.PNG
4.圖層顯示,柵格圖要顯示在底層,這樣就不會遮擋矢量數據,同時要把地圖的數據集圖層中面數據去掉(試過設置半透明,可是效果很差),只留下線數據和點數據,文字數據。這樣效果纔會好一點。算法

相關文章
相關標籤/搜索