二维线的编辑

0 投票
cpp9.1.0

1.编辑点的时候点两端的连接线跟着移动

2.工作空间或地图有没有获取当前地图的缩略图的api
11月 14, 2019 分类:  160次浏览 | 用户: 爱太空 初出茅庐 (34 分)

1个回答

0 投票
 
已采纳
您好,

第一个问题,是需要端点跟着动吗?是不是要做平移?编辑节点是只有一个点动的

第二个问题,工作空间没有回去缩略图,UGMap才能拿到地图
11月 14, 2019 用户: 幸俊 学富五车 (694 分)
采纳于 11月 27, 2019 用户:爱太空
不是使用UGWorkspace相关的函数打开的都要手动关联。
	QString path1 = path.replace(".smwu",".udb");
	UGDataSource *ds = UGDataSourceManager::CreateDataSource(UGEngineType::UDB);
	ds->GetConnectionInfo().m_nType = UGC::UDB;
	ds->GetConnectionInfo().m_bReadOnly = false;
	ds->GetConnectionInfo().m_strAlias = L"A";
	ds->GetConnectionInfo().m_strServer = Translator::QStr2UGStr(path1);
	if(ds->Create())
	{
		//默认点数据集创建
		UGDatasetVectorInfo* info1 = new UGDatasetVectorInfo ();
		info1->m_nType = UGC ::UGDataset ::DatasetType ::Point;
		UGString name1 = ds->GetUnoccupiedDatasetName(_U ("myPoint"));
		info1->m_strName = name1 ;
		info1->m_strTableName =name1 ;
		UGDatasetVector* datasetresult1 = ds->CreateDatasetVector(*info1);
			
		//默认线数据集创建
		UGDatasetVectorInfo* info2 = new UGDatasetVectorInfo ();
		info2->m_nType = UGC ::UGDataset ::DatasetType ::Line;
		UGString name2 = ds->GetUnoccupiedDatasetName(_U("myLine"));
		info2->m_strName = name2 ;
		info2->m_strTableName =name2 ;
		UGDatasetVector * datasetresult2 = ds->CreateDatasetVector(*info2);
	
		//默认面数据集创建
		UGDatasetVectorInfo* info3 = new UGDatasetVectorInfo ();
		info3->m_nType = UGC ::UGDataset ::DatasetType ::Region;
		UGString name3 = ds->GetUnoccupiedDatasetName(_U ("myPlane"));
		info3->m_strName = name3 ;
		info3->m_strTableName =name3 ;
		UGDatasetVector * datasetresult3 = ds->CreateDatasetVector(*info3);
	}
	
	workspace->OpenDataSource(ds->GetConnectionInfo());
	workspace->m_WorkspaceConnection.m_bFailIfExists = false;

我在后面有用workspace函数打开,但还是没绑定

你的是独占的哪里那能打开哦,不是给了添加到UGDatasources的方法吗
并未设置独占啊?就是关联还是必须添加到数据源集合?
你是新建了一个UDB,前面的代码没有一个和UGWorkspace有关。

ds->GetConnectionInfo().m_bReadOnly = false;  // 非只读,就是可以写入,这就是独占的。

看看workapce中有没有嘛
...