MapWinGIS程式設計 二

2021-07-10 05:06:56 字數 1761 閱讀 7448

上一遍文章介紹了shp檔案的的載入,讀取等的基本操作,現在介紹一下關於對於shp檔案的操作。

1.獲取shp中的某一字段的值

假設shp檔案中有乙個欄位名字叫做name,首先對shp檔案裡的要素進行遍歷,shp檔案要素數量為shp.numshapes,先來看看函式原型get_cellvalue(int fieldindex,int shapeindex),第乙個引數是shp中某乙個欄位名的索引,第二個為shp檔案中要素的索引。如果已經知道了name欄位的索引則可以直接呼叫該函式,如果不知道name欄位的索引,那麼我們需要先計算出name欄位的索引,通過get_fieldindexbyname(string filedname)傳入欄位的名字可以計算出字段的索引。如果需要遍歷name欄位下的所有值,**如下

for (int i = 0; i < shp.numshapes; i++)

上面的**就是遍歷了shp中所有欄位為name的值,並且選中該要素。

2.選中與定位shp要素

獲取了shp中某一字段的值後,就可以通過這個值找到shp中代表改要素的索引進行選擇。void shapefile.set_shapeselected(int shapeindex,bool pval),選擇指定索引的要素,可以通過上面的查詢shp的字段,通過外部比較找到需要的要素,比如說:

string searchname=「***";

for (int i = 0; i < shp.numshapes; i++)

}

查詢某一字段為***的要素,可以通過迴圈實現。

3.清空選擇的shp要素

清空選擇的要素很簡單:

shp.selectnone();
這個是清空shp中選中的要素,因此使用的是shp,不是axmap控制項,

4.設定shp要素的顯示屬性

有時shp要素的屬性需要修改一下,比如更改寬度,顏色等等屬性

5.選擇選中要素的狀態

比如設定線寬與線的顏色

shp.selectiondrawingoptions.linewidth= 4.0f;

shp.selectiondrawingoptions.linecolor = (uint)colortranslator.toole(color.fromargb(0, 255, 255));

應為傳入的顏色是乙個值,而顏色是由

rgb來進行表現的可以通過方法來進行轉換,或者在載入的時候就設定shp的狀態

sfprovince.open(shppath);

hndprovince = axmap1.addlayer(sfprovince, true);

axmap1.set_shapelayerdrawfill(hndprovince, true);

uint linecolor = (uint)colortranslator.toole(color.black);

float linewidth = 3.0f;

axmap1.set_shapelayerlinecolor(hndprovince, linecolor);

axmap1.set_shapelayerlinewidth(hndprovince, linewidth);

tklinestipple line = tklinestipple.lsdashdotdash;

axmap1.set_shapelayerlinestipple(hndprovince, line);

Linux程式設計 二 shell程式設計

shell有很多種,linux中常用的是 bin bash,可以通過 bin bash version檢視版本資訊 管道和重定向 重定向輸出 把ls命令的輸出儲存到檔案中 ls l lsoutput.txt 將輸出內容附加到乙個檔案中 ps lsoutput.txt 重定向輸入 意義不大 管道 程式...

swing 程式設計 二

一 由按鈕的處理想到的 有很多的按鈕是不可怕的,可怕的是這些按鈕之間有邏輯關係,實際 要做的是簡化這些關係,把這些關係做到最簡化,盡可能提取出程式的應用邏輯,不要寫死 簡化介面設計,操作簡化,使用簡化,步驟簡化,是最後才去完成的事情 1 設計介面 2 簡化設計介面 3 評審設計 4 修改並簡化設計 ...

linux gtk IDE 程式設計(二)

linux gtk ide 程式設計 二 flyli 今天早上7點中在睡夢中的我就收到了珠珠 我女朋友哈,是我第乙個喜歡的女朋友,今年一起去北京比賽後,她回了家,我回到了學校,呵呵,程式設計師要想找個好老婆不容易阿,要珍惜才是,您說是不?的簡訊,說今天他去寺廟抽籤,抽的是因緣籤,沒好意思讓人給解籤,...