SuperMap iObjects c++二维标绘(一)

<*小诗>

      SuperMap iObjects c++提供了动态标绘模块,包含了标号库管理功能,定义了基本图元、点标号、线面标号等标号对象,提供了编辑标号功能。下面就如何绘制标绘对象做个介绍。

      同样的,标绘对象是存在cad数据集里面的,所以需要提前准备一个可编辑的cad图层。

主要使用到的类:
标号库管理(UGGOLibraryManager):标号库管理功能用于管理标号库及标号库中的标号信息。标号库通过UGGOLibraryManager类进行设置和管理。标号库中的标号信息则由UGGOLibrary类进行保存和管理。负责标号库的获取、设置,标号库中标号的查询。
\include\Geometry3D\GraphicObject\UGGOLibraryManager.h);

//标号库路径
	UGString strJYLibPath = _U("E:/SymbolLib/JY.plot");
	UGString strTYLibPath = _U("E:/SymbolLib/TY.plot");
	UGString strModelLibPath = _U("E:/SymbolLib/ModelLibrary.sym");

	//获取标号库管理类对象
	UGGOLibraryManager* pLibManager = UGGOLibraryManager::GetInstance();
	if (NULL == pLibManager)
	{
		return;
	}

	//添加标号库
	UGint nJYLibId = pLibManager->AddGOLibrary(strJYLibPath);
	UGint nTYLibId = pLibManager->AddGOLibrary(strTYLibPath);

	//添加模型库
	pLibManager->AddMarkerLibs(strModelLibPath);

标绘对象提供了标绘点标号、线面标号、图元的一系列属性设置。比如:线宽、线色、衬线类型、衬线宽及衬线颜色等;点标号也可以设置随图缩放、注记、旋转及显示方式切换等属性。
:\include\Geometry3D\GraphicObject\UGGraphicObject.h);
添加标绘对象分为两种方式:
一种是直接构造标绘对象,通过UGRecordset记录集,往里面添加记录;

void CreateGraphicObject(UGRecordset *pRecordset)
{
	UGGraphicObject *pGeo = new UGGraphicObject();
	
	UGPoint3Ds pts3D;
	pts3D.Add(UGPoint3D (116.3, 39.9, 0));
	pGeo->SetGeometryShape(421, 10100, pts3D);
	
	//将创建对象放到记录集里
     pRecordset->AddNew(pGeo);
pRecordset->Update();
}

二、通过鼠标交互式创建
ActionGraphicObject

void Action2D(UGMapEditorWnd *pMapEditorWnd)
{
	ActionGraphicObject action;
	action.action = UGC::UGDrawParamaters::uaEdit;
	action.param1 = 421;
	action.param2 = 10100;

	pMapEditorWnd->SetActionGraphicObject(UGC::UGDrawParamaters::uaEdit,action);
}

到这里结束,标绘对象就可以随心所欲的绘制啦;

  • 1
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值