|
- GIS论坛-GIS空间站 ( http://bbs.gissky.net/Default.asp ) -- 好书大家评 ( http://bbs.gissky.net/ShowForum.asp?forumid=9 ) --- [求助]跪求帮忙! ( http://bbs.gissky.net/ShowPost.asp?id=30824 )
作者:pyhmail 我现在在做一个有关路灯的管理系统,用的是VC+M02.0,现遇到两个问题: 1) 我想当点击了某个按钮后,让满足条件的路灯同时闪烁,而不是一个一个地循环闪烁: 我的代码如下: 这个路灯层中的元素是点,现在我想当点击了满足某些条件的路灯同时闪烁。 我的代码如下: CMoLayers layers(pView->m_map.GetLayers()); //得到层集合 CMoMapLayer miscNe(layers.Item(COleVariant(TEXT("MiscNe")))); //得到路灯层 CMoRecordset recs(miscNe.SearchExpression(expression)); //得到名字满足条件的路灯 CMoPoints pts; pts.CreateDispatch(_T("CMapObjects2.Points")); CMoPoint pt; pt.CreateDispatch(_T("CMapObjects2.Point")); i=0; recs.MoveFirst(); while(!recs.GetEof()) { i++; if(recs.GetEof()) { ::MessageBeep(MB_ICONQUESTION); } else { CMoFields fields(recs.GetFields()); CMoField shapeField(fields.Item(COleVariant(TEXT("Shape")))); CMoPoint shape(shapeField.Get_Value().pdispVal); pts.Add(shape); //把所有的路灯组成点集 } recs.MoveNext(); } m_strTreePreItem=m_strTreeCurItem; if(i>0) { pView->m_map.Refresh(); pView->m_map.FlashShape(pts,2);//让路灯同时闪烁 } 我的思路是把所有的路灯(点原素)放入一个点集中,然而让该点集闪烁,结果运行不了,老弹出对话框提示“错误的参数” 2) CMoDataConnection dc =new CMoDataConnection(); dc.CreateDispatch("MapObjects2.DataConnection"); dc.SetDatabase(TOPO_DATA_DIR); //TOPO_DATA_DIR=F:\NetmasterP2005\topo_data if (dc.Connect() == FALSE) { return FALSE; } CString dsName = GetDatasetName(); //dsName="CscLink" CMoGeoDataset gds= new CMoGeoDataset(); gds = (dc->FindGeoDataset(dsName)); if (!LPDISPATCH(gds)) { return FALSE; } // 设置数据集 m_mlMain.CreateDispatch("MapObjects2.MapLayer"); m_mlMain.SetGeoDataset(gds); //把图层变量m_mlMain 与数据集gds(CscLink)建立关联 在上面的代码中,我让路灯数据集gds与图层变量m_mlMain建立了关联,可以当我发生我用RemoveAt函数删除了图层m_mlMain后,这个关系还是存在(因为当我删除了图层之后,数据集所对应的.DBF文件却不能被删除),请问我应该怎么取消数据集与图层变量的关联? 以上两个问题,恳请各位先生能在百忙之中抽空解决,不胜感激!
Powered by GIS空间站 © 2002-2007
|