阅读:2452回复:3
[求助]MO+MFC的符号标注问题!
<P>老板提倡用vC+MO开发,资料真的不多阿,前期还算顺利,现在做标注时遇到难题,比如我自己做的标注符号(点、线、面、文字的组合体),怎么作为一个整体标上去并进行平移缩放旋转等操作呢?</P>
<P>我开始自己设想用shape.union方法将点线面文字组合为一个整体再添加到TrackingLayer上。但是现在已经明白这不可实现了,union限制的很严格,只能同类型的shape才能合并,即点与点、面与面、多边形与多边形,这样就无法将点线面文字组成一个合成标绘。</P> <P>在ArcGis9.2中有一个Group的操作功能,可是较好的实现上述要求,将点线面文字组合后成为一个整体对象,不知道MO中可不可以实现类似功能,如果没有,那也只能说确实MO不适合高级开发,只提供了基本的功能而已,请高手指点!</P> [此贴子已经被作者于2007-7-4 10:41:34编辑过]
|
|
1楼#
发布于:2008-03-01 13:32
<P>建议换其他工具,VC+MO开发东西实在有些不明智。</P>
<P>能分享一点有关这方面的资料吗?怎样设置地图控件的坐标系统啊?跪求你修改下面代码?</P> <P> CMoProjCoordSys csmap;<BR> csmap.SetGeoCoordSys(peisrView->m_Map.GetCoordinateSystem());//定义投影坐标系<BR> if (csmap.GetIsProjected()) <BR> {<BR> CDataDir dataDir;<BR>///////////////凡是索引都需要COleVariant(TEXT("region"))<BR> CMoDataConnection Dconn;<BR> Dconn.CreateDispatch(TEXT("MapObjects2.DataConnection"));<BR> Dconn.SetDatabase(dataDir.GetPath() + "<a>\\workdata\\</A>"); <BR> //创建新的矢量层对象指定其GeoDataset属性 <BR> CMoLayers layers(peisrView->m_Map.GetLayers());<BR> CMoMapLayer layer(layers.Item(COleVariant(TEXT("region"))));<BR> <BR> layer.CreateDispatch(TEXT("MapObjects2.MapLayer")); <BR> peisrView->m_Map.SetCoordinateSystem(layer.GetCoordinateSystem());<BR> }<BR> else<BR> {<BR> csmap.SetType(54019);<BR> peisrView->m_Map.SetCoordinateSystem(COleVariant(long(19)));</P> <P> }</P><img src="images/post/smile/dvbbs/em02.gif" /> |
|
2楼#
发布于:2007-07-20 10:15
<P>union肯定不行的,提一个思路:可以增加一些关联的东东,来记录那些简单对象是一个整体,以达到整体移动或删除的目的。</P><img src="images/post/smile/dvbbs/em03.gif" />
|
|
3楼#
发布于:2007-07-12 16:05
为何没有人回复?难道大家都不知道这个问题怎么搞?还是都没想过这个问题?快来救救我啊!!<img src="images/post/smile/dvbbs/em02.gif" />
|
|