1、mapx折線圖元的畫法
cmapxpoints pts;
cmapxpoint pt;
cmapxstyle sty;
cmapxfeature f,newobj,newobj1,newobj2;
if(!pts.createdispatch(pts.getclsid()))
if(!pt.createdispatch(pt.getclsid()))
if(!newobj.createdispatch(newobj.getclsid()))
position position;
double x,y,maplat,maplon;
for(lisposit=lispos.begin();lisposit!=lispos.end();lisposit++)
newobj.attach(m_ctrlmapx.getdispatch()); //將圖元與地圖繫結。
newobj.settype(mifeaturetypeline); //設定圖元型別為折線圖元
newobj.getparts().add(pts); //將點集pts加入圖元
sty=newobj.getstyle(); //得到圖元的風格,下面設定各種圖元的風格。
sty.setlinestyle(57); //設定折線風格,可檢視開發手冊。
sty.setlinecolor(micolorgreen); //設定折線顏色
sty.setlinewidthunit(mistyleunitpixel); //設定折線寬度單位為畫素
sty.setlinewidth(2); //設定折線寬為2畫素
f=m_roadlayer.addfeature(newobj);
cstring m_keyvalue=f.getfeaturekey(); //此行設定加入折線圖元的鍵值,該鍵值是該圖元在圖層中的唯一性標識,再想取得圖元並更改的話可以呼叫m_roadlayer.getfeaturebykey(m_keyvalue)來獲得。
m_roadlayer.invalidate(); //重繪圖層。
建議:義超,對於動態繪製尾跡,應該可以用如下方法,有乙個點時用上面的方法建立乙個只有乙個點的折線圖元並加入圖層,每次需要加入新的點繪製新的軌跡時,
先通過鍵值獲得剛加入的圖元:cmapxfeature fea=m_roadlayer.getfeaturebykey(m_keyvalue);
再呼叫fea.getparts().item(1).add(pt)加入新的軌跡點pt,再呼叫m_roadlayer.invalidate(),這樣不需要擦掉原先繪製的點,每次往圖元中加入的新的點既可,效率應該還行,你可以試試。
fea.getparts().item(1)是獲得該折線圖元中的第乙個點集,乙個折線圖元中只有一條折線的話,這樣就可以獲得。
2、mapx多邊形圖元的畫法與上面一樣,只要將newobj.settype(mifeaturetypeline)中的引數改成mifeaturetyperegion就行了,注意點的順利為多邊形順時針或逆時針順序。
另外多邊形圖元的style屬性和線性圖元的有些區別,具體的可以檢視開發文件中style的屬性。例子如下:
for(int i=0;i<5;i++)
newobj2.attach(m_ctrlmapx.getdispatch());
newobj2.settype(mifeaturetyperegion);
newobj2.getparts().add(pts);
sty=newobj2.getstyle();
sty.setregionborderwidth(2);
sty.setregionpattern(8);
sty.setregioncolor(micolorgreen);
sty.setregiontransparent(true);
f=m_roadlayer.addfeature(newobj2);
m_roadlayer.invalidate();
3、mapx點圖元的畫法
cmapxfeature flan;
if(!flan.createdispatch(flan.getclsid()))
flan.attach(m_ctrlmapx.getdispatch());
flan.settype(mifeaturetypesymbol); //設定圖元型別為符號圖元(點圖元)
double malpx,malpy;
xytoll(133,90,&malpx,&malpy);
flan.getpoint().set(malpx,malpy); //設定點圖元的位置
flan.getstyle().setsymboltype(misymboltypebitmap); //設定點圖元的表現形式為位圖(還可以用字元表現)
flan.getstyle().setsymbolbitmapsize(20); //設定顯示的點陣圖大小為20
flan.getstyle().setsymbolbitmaptransparent(true); //設定點陣圖為透明背景
flan.getstyle().setsymbolbitmapname("敵坦克.bmp"); //設定點陣圖名
cmapxfeature res = m_tanklayer.addfeature(flan);
cstring m_lankeyvalue=res.getfeaturekey();
m_tanklayer.invalidate();
另外,圖元可以平移,例如呼叫f.offset(x,y)可以將整個圖元平移,但我沒有找到圖元的旋轉功能……
如何使用mpx框架(滴滴)給微信小程式分包
前提 使用mpx框架。核心包 mpxjs core mpxjs webpack plugin等 mpx開發文件 pages 主包檔案 packages 分包檔案 分包路由分別配置在packages和packageb各自的index.mpx中 使用分包跳轉路徑應該寫成 packagea pages r...
經驗 Mpx200上網記
最近買了一款ms artphone的手機moto mpx200,感覺操作太繁瑣不如一般的手機,不過上網的效果還不錯,特記錄上網設定如下 首先要設定連線,在設定 data connection中有inter 的連線選項,由於機器是歐版的,沒有中國移動,需要用選單中的編輯命令建立 這個功能真不習慣,一開...
程式裝載(程式執行)
程式裝載時,將程式使用的虛擬記憶體位址和計算機實際分配的物理記憶體位址做了對映。程式裝載時獲取了一段連續空間,關閉該程式時,該程式雖然釋放了占用的記憶體空間,但是該記憶體空間並不一定與空餘記憶體空間連續,故其他程式申請時可能無法申請到該記憶體空間。如圖一。有一種解決辦法是記憶體交換,將程式放到硬碟中...