初学MAPX的菜鸟,求大神帮助啊啊啊!!!在已有的地图图层中增加两个条线。这两条线的端点的经纬度是由窗口输入的,算是动态建立。编写通过,但是运行时发现输入经纬度之后并没有在地图上应该的位置出现线。
贴出相关的代码:
HWND hWnd=::FindWindow(NULL,_T("xxxxx")); //得到对话框的句柄
CTryDlg* pWnd= (CTryDlg*)CTryDlg::FromHandle(hWnd);
CMapXLayers allLr=pWnd->m_ctrlMapX.GetLayers(); //取得图层集合
CMapXLayer Lr=allLr.CreateLayer("Stlayer",NULL, 1,32);
CMapXStyle lineSty; //线图元
COleVariant vt;
vt.vt=VT_DISPATCH;
CMapXFeature newFeature; //新建图元
CMapXPoint pt; //点图元
CMapXPoints pts; //点集合
pt.CreateDispatch(pt.GetClsid());
pts.CreateDispatch(pts.GetClsid());
pts.RemoveAll();
pt.Set(dlg.m_x1,dlg.m_y1); //线的起点
pts.Add(pt);
pt.Set(dlg.m_x2,dlg.m_y2); //线的终点
pts.Add(pt);
vt.pdispVal=pts.m_lpDispatch;
vt.pdispVal->AddRef();//此句不可缺
CMapXFeatureFactory factory=pWnd->m_ctrlMapX.GetFeatureFactory();
CMapXFeature sidefeature=factory.CreateLine(vt);
//创建线图元
lineSty=sidefeature.GetStyle(); //设置线图元的风格
lineSty.SetLineColor(miColorBlue);
lineSty.SetLineStyle(36);
sidefeature.SetStyle(lineSty.m_lpDispatch);
Lr.AddFeature(sidefeature);
Lr.Refresh(); //将创建的图元加入到图层中