AO C 實現唯一值渲染

2021-06-08 10:37:48 字數 1906 閱讀 9223

這兩天在做出圖的乙個外掛程式,學習的東西還是挺多的,首先是dll的編譯,除錯,一開始是vc,後來有是vs2010,這些基礎問題就搞了好久。真正實現的東西其實也是比較簡單的,都不好意思寫出來。這邊乙個唯一值渲染的問題,其實本來是想實現四色渲染的,但是比較複雜,先簡單的搞一下。

思路還是比較簡單,類似於把一系列對應欄位名稱的顏色一起放入渲染器中。首先要有乙個聲稱隨即顏色的ienumcolors,基於irandomcolorramp介面實現;然後是常用的面圖層渲染器i******fillsymbol,通過遍歷每乙個feature,將(fieldname,******fillsymbol)放入iuniquevaluerenderer渲染器中,然後圖層呼叫就行。

**如下:

ipfeaclass = iptmpfeacls;

ipgeofealayer = iptmpgeofealayer;

iqueryfilterptr ipqueryfilter(__uuidof(queryfilter));

ifeaturecursorptr ipcursor;

ipfeaclass->search(ipqueryfilter, false, &ipcursor);

i******fillsymbolptr ipsymbol(clsid_******fillsymbol);

//隨機顏色

irandomcolorrampptr iprx(clsid_randomcolorramp);

iprx->put_minsaturation(20);

iprx->put_maxsaturation(40);

iprx->put_minvalue(76);

iprx->put_maxvalue(188);

iprx->put_starthue(0);

iprx->put_endhue(360);

iprx->put_size(100);

variant_bool btrue = true;

iprx->createramp(&btrue);

ienumcolorsptr ipnumcolors;

iprx->get_colors(&ipnumcolors);

if(ipnumcolors == null)

return;

ipnumcolors->reset();

iuniquevaluerendererptr ipuniquernd;

ifeaturerendererptr iprnd;

if((ipuniquernd = iprnd) == null)

cstring fname = _t("fname");

bstr fieldname = fname.allocsysstring();

ipuniquernd->put_fieldcount(1);

ipuniquernd->put_field(0, fieldname);

//遍歷

ifeatureptr ipfeat;

ipcursor->nextfeature(&ipfeat);

ifieldsptr ifields;

long index;

ipfeat->get_fields(&ifields);

ifields->findfield(fieldname, &index);

i******linesymbolptr ipline(clsid_******linesymbol);

ipline->put_width(0.01);

while(ipfeat != null)

iprnd = (ifeaturerendererptr)ipuniquernd;

ipgeofealayer->putref_renderer(iprnd);

唯一值校驗的實現思路

在實際 的編寫過程中,難免遇到進行唯一值校驗的問題。以下,用員工表進行舉例。首先,員工表的結構如下 其中,表中的身份證號 id不能重複 這個不用說,自然是這樣的 增加員工資訊時,身份證號的輸入框觸發離焦事件後,向後台發起乙個請求,引數為身份證號。後台根據當前身份證號查 select t.id fro...

mysql 唯一值 mysql 獲取全域性唯一值

在涉及資料庫儲存資料的時候,經常會遇到唯一值問題,有的是主鍵帶來的限制,有的則是業務上的需要。下面介紹幾種唯一值的獲取或者生產方法 先建乙個測試用的表tbl user,有三個字段 id name age,其中id為主鍵。1 drop table if exists tbl user 2 create...

唯一值獲取

問題 唯一值無法獲取 using system.collections.generic using esri.arcgis.carto using esri.arcgis.geodatabase using system.collections 官網示例 idatastatistics exampl...