默认头像
路人甲
路人甲
  • 注册日期2007-03-23
  • 发帖数20
  • QQ
  • 铜币171枚
  • 威望0点
  • 贡献值0点
  • 银元0个
阅读:2476回复:3

[求助]MO+MFC的符号标注问题!

楼主#
更多 发布于:2007-06-28 16:51

老板提倡用vC+MO开发,资料真的不多阿,前期还算顺利,现在做标注时遇到难题,比如我自己做的标注符号(点、线、面、文字的组合体),怎么作为一个整体标上去并进行平移缩放旋转等操作呢?

我开始自己设想用shape.union方法将点线面文字组合为一个整体再添加到TrackingLayer上。但是现在已经明白这不可实现了,union限制的很严格,只能同类型的shape才能合并,即点与点、面与面、多边形与多边形,这样就无法将点线面文字组成一个合成标绘。

在ArcGis9.2中有一个Group的操作功能,可是较好的实现上述要求,将点线面文字组合后成为一个整体对象,不知道MO中可不可以实现类似功能,如果没有,那也只能说确实MO不适合高级开发,只提供了基本的功能而已,请高手指点!

[此贴子已经被作者于2007-7-4 10:41:34编辑过]
喜欢0 评分0
默认头像
路人甲
路人甲
  • 注册日期2008-01-22
  • 发帖数9
  • QQ
  • 铜币124枚
  • 威望0点
  • 贡献值0点
  • 银元0个
1楼#
发布于:2008-03-01 13:32

建议换其他工具,VC+MO开发东西实在有些不明智。

能分享一点有关这方面的资料吗?怎样设置地图控件的坐标系统啊?跪求你修改下面代码?

CMoProjCoordSys csmap;
csmap.SetGeoCoordSys(peisrView->m_Map.GetCoordinateSystem());//定义投影坐标系
if (csmap.GetIsProjected())
{
 CDataDir dataDir;
///////////////凡是索引都需要COleVariant(TEXT("region"))
 CMoDataConnection Dconn;
 Dconn.CreateDispatch(TEXT("MapObjects2.DataConnection"));
 Dconn.SetDatabase(dataDir.GetPath() + "\\workdata\\");
 //创建新的矢量层对象指定其GeoDataset属性    
 CMoLayers layers(peisrView->m_Map.GetLayers());
 CMoMapLayer layer(layers.Item(COleVariant(TEXT("region"))));
 
 layer.CreateDispatch(TEXT("MapObjects2.MapLayer"));
 peisrView->m_Map.SetCoordinateSystem(layer.GetCoordinateSystem());
}
else
{
 csmap.SetType(54019);
 peisrView->m_Map.SetCoordinateSystem(COleVariant(long(19)));

}

举报 回复(0) 喜欢(0)     评分
默认头像
路人甲
路人甲
  • 注册日期2007-07-18
  • 发帖数6
  • QQ
  • 铜币116枚
  • 威望0点
  • 贡献值0点
  • 银元0个
2楼#
发布于:2007-07-20 10:15

union肯定不行的,提一个思路:可以增加一些关联的东东,来记录那些简单对象是一个整体,以达到整体移动或删除的目的。

举报 回复(0) 喜欢(0)     评分
默认头像
路人甲
路人甲
  • 注册日期2007-03-23
  • 发帖数20
  • QQ
  • 铜币171枚
  • 威望0点
  • 贡献值0点
  • 银元0个
3楼#
发布于:2007-07-12 16:05
为何没有人回复?难道大家都不知道这个问题怎么搞?还是都没想过这个问题?快来救救我啊!!
举报 回复(0) 喜欢(0)     评分
默认头像

返回顶部