在mapx应用开发中,我们需要创建各种类型的图元,下面做个简单的总结:
画线
COleVariant vtPoints;
vtPoints.vt=VT_DISPATCH;
vtPoints.pdispVal=Pnts.m_lpDispatch;
vtPoints.pdispVal->AddRef();
Feature=FeaFac.CreateLine(vtPoints); //按照点集画线
其中vtPoints是CMapXPoints对象,必须初始化,添加若干个点。
画弧线
Feature=FeaFac.CreateArc(Pnts.Item(1).m_lpDispatch, Pnts.Item(2).m_lpDispatch); //画弧线
前2个参数为2个点,后面的都用缺省参数。
画圆
Feature=FeaFac.CreateCircularRegion(miCircleTypeScreen, Pnts.Item(1).m_lpDispatch, 100, m_ctrlMapX.GetMapUnit()); //画圆
Pnts.Item(1).m_lpDispatch为圆心,它是一个CMapXPoint对象,100为半径。
椭圆
Feature=FeaFac.CreateEllipticalRegion(rc.m_lpDispatch, (double)10); //画椭圆
rc.m_lpDispatch是一个CMapxRectange对象,
多点
Feature=FeaFac.CreateMultipoint(vtPoints); //多点
vtPoints是CMapXPoints对象,必须初始化,添加若干个点。
区域
Feature=FeaFac.CreateRegion(vtPoints); //区域
文本
Feature=FeaFac.CreateText(pt2, "symbol 1", miPositionTL); //文本
标示
Feature = FeaFac.CreateSymbol(); //添加符号
Style=Feature.GetStyle();
Style.SetSymbolType(miSymbolTypeBitmap);
Style.SetSymbolBitmapName("CAUT1-32.BMP");
Style.SetSymbolBitmapSize(16);
Style.SetSymbolBitmapTransparent(TRUE);
图元创建后,必须设置相应的样式。
CMapXStyle Style;
Style.SetLineColor(miColorBlue); //线条颜色
Style.SetRegionBackColor(miColorRed);
Style.SetRegionColor(miColorRed);
Style.SetLineStyle(2);
Style.SetLineWidth(4); //线条宽度
Style.SetRegionTransparent(FALSE);
Style.SetRegionColor(5);
这样,我们就能在地图上显示我们想要的图元了。