|
阅读:1455回复:1
添加图层为什么有问题?(vc)带有程序。
<P>添加图层为什么有问题?(vc)当我打开程序,按下打开按钮时,可进入文件选择菜单,当选择某一图层时,如MO自带的一些数据,***.SHP等时,会出现“无法写只读特性”的字样,图层加不进去。请各位帮看一看,哪里有问题。谢谢!</P>
<P>CString CGPSView::AddShpLayer(const CString ; path, COLORREF color, short symbolSize, short symbolStyle,BOOL VisibleFlag)<BR>{</P> <P> CMoDataConnection conn;<BR> if (!conn.CreateDispatch(TEXT("MapObjects2.DataConnection"))) <BR> return "";<BR> conn.SetDatabase(GetFileDirectory(path));<BR> if (!conn.Connect()) return ""; </P> <P> // Add layer specified by path<BR> CMoLayers layers=m_map.GetLayers();<BR> CMoMapLayer layer;<BR> if (!layer.CreateDispatch(TEXT("MapObjects2.MapLayer"))) <BR> return "";</P> <P> CString LayerName = GetFileTitle(path);<BR> CMoGeoDataset geoDataset=conn.FindGeoDataset(LayerName);<BR> if(!geoDataset) <BR> return ""; </P> <P> layer.SetGeoDataset(geoDataset);</P> <P> if(VisibleFlag)<BR> layer.SetValid(TRUE);<BR> else<BR> layer.SetValid(FALSE);</P> <P> CMoSymbol layerSymbol(layer.GetSymbol()); </P> <P> if (color != -1) <BR> layerSymbol.SetColor(color); // Set color if specified</P> <P> layerSymbol.SetSize(symbolSize);<BR> layerSymbol.SetStyle(symbolStyle);<BR> layers.Add(layer);<BR> return(layer.GetName());</P> <P>} </P> <P><BR>CString CGPSView::GetFileDirectory(const CString; path)<BR>{</P> <P>int pos = path.ReverseFind('\\');<BR>if (pos >= 0) <BR>return path.Left(pos);<BR>return "";</P> <P>} </P> <P>CString CGPSView::GetFileTitle(const CString; path)<BR>{</P> <P>CString strResult = GetFileName(path);<BR>int pos = strResult.ReverseFind('.');<BR>if (pos >= 0) return strResult.Left(pos);<BR>return strResult;</P> <P>} </P> <P>CString CGPSView::GetFileName(const CString; path)<BR>{</P> <P>int pos = path.ReverseFind('\\');<BR>if (pos >= 0) return path.Right(path.GetLength() - pos - 1);<BR>return path;</P> <P>} </P> <P>void CGPSView::OnFileOpen() <BR>{<BR> // TOD Add your command handler code here<BR> CString DefExt;<BR> CString DataFileName;<BR> DefExt.Format("%s","SHAPE文件(*.SHP)|*.shp|所有文件(*.*)|*.*|");<BR> CFileDialog dlgFile(TRUE,NULL,NULL,OFN_HIDEREADONLY|OFN_PATHMUSTEXIST|OFN_FILEMUSTEXIST,DefExt,NULL);<BR> if(dlgFile.DoModal()==IDOK)<BR> {<BR> DataFileName=dlgFile.GetPathName ();<BR> }<BR> else<BR> return;<BR> AddShpLayer(DataFileName,RGB(194,252,254),1,0,1);<BR>}</P> |
|
|
1楼#
发布于:2007-04-27 12:27
请问这个问题怎么解决的?<br>我也遇到这个问题了<br>谢谢<br><img src="images/post/smile/dvbbs/em01.gif" />
|
|