阅读:1445回复:0
提问:vc+MO /代码 有问题,能不能帮我看看/从所有线中提取节点
<P>我想从图层中所有的线里提取节点,但运行后,只在一条线中提取出来了节点,其它的没有,不知道是为什莫,帮我看看吧,错在哪里? 谢谢!</P>
<P>代码如下:</P> <P> CMoLayers layers(m_map.GetLayers());<BR> CMoMapLayer roadLy( layers.Item( COleVariant( TEXT( "USHIGH" ))));</P> <P> CMoRecordset roadRec(roadLy.GetRecords());</P> <P> CMoFields Fields(roadRec.GetFields());</P> <P> CMoField roadField(Fields.Item(COleVariant(TEXT("Shape"))));<BR> CMoLine road(roadField.GetValue().pdispVal);</P> <P><BR> CMoField NameID(Fields.Item( COleVariant( TEXT("NAME"))));<BR> <BR> CMoParts moParts(road.GetParts());<BR> <BR> <BR> CMoPoints moPts(moParts.Item(COleVariant((short)0)));<BR> </P> <P> while( !roadRec.GetEof() )<BR> { </P> <P> <BR> <BR> for( int i = 0 ; i < moPts.GetCount(); i++)<BR> <BR> {<BR> <BR> mopt = moPts.Item(COleVariant((short)i));<BR> { <BR> <BR> if( i == 0) //start point<BR> {<BR><BR> startX = mopt.GetX();<BR> startY = mopt.GetY();</P> <P> <BR> tLyr.ClearEvents();<BR> tLyr.AddEvent(mopt,0);</P> <P> }<BR> else if( i == moPts.GetCount() -1) //end point <BR> {<BR> <BR> EndX = mopt.GetX();<BR> EndY = mopt.GetY();<BR> </P> <P> <BR> <BR> }<BR> else<BR> {</P> <P> midX = mopt.GetX();<BR> midY = mopt.GetY();<BR> <BR> <BR> <BR> }<BR> <BR> }<BR> }<BR> <BR> <BR> roadRec.MoveNext();<BR>}</P> |
|