|
加入地图集时,同时加入对应的数据集!!!(有代码!) void OnGeodatasetOpen() { CString strFilePath,strFileName; CMapXLayer lyr; CMapXLayerInfo LayerInfo; CMapXDataset ds; COleVariant layerVt; LayerInfo.CreateDispatch (LayerInfo.GetClsid ()); CFileDialog dlgOpnGst(TRUE,"gst|*.gst",NULL,OFN_ALLOWMULTISELECT | OFN_FILEMUSTEXIST | OFN_HIDEREADONLY,"GeoSet(*.gst)|*.gst|",this); dlgOpnGst.m_pOFN ->lpstrTitle = "打开地图集"; if(dlgOpnGst.DoModal ()==IDCANCEL) return; strFileName = dlgOpnGst.GetFileName(); strFilePath = dlgOpnGst.GetPathName(); m_ctrlMapX.SetGeoSet (strFileName); CString str; int count=m_ctrlMapX.GetLayers ().GetCount (); str.Format ("%d",count); AfxMessageBox(str); for(int i=0;i<m_ctrlMapX.GetLayers ().GetCount ();i++) ////////////////////////////////////// { AfxMessageBox("add dataset!"); lyr=m_ctrlMapX.GetLayers ().Item (i+1); layerVt.vt = VT_DISPATCH; layerVt.pdispVal = lyr.m_lpDispatch; layerVt.pdispVal->AddRef(); m_ctrlMapX.GetDatasets ().Add (miDataSetLayer,layerVt,ds.GetName ()); } ds.DetachDispatch (); lyr.DetachDispatch (); m_ctrlMapX.SetNumericCoordSys (m_ctrlMapX.GetDisplayCoordSys ()); //m_ctrlMapX.SetMapUnit (m_ctrlMapX.GetNumericCoordSys ().GetUnits ());
|