首页 / 浏览问题 / 组件GIS / 问题详情
二维线的编辑
35EXP 2019年11月14日
cpp9.1.0

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

2.工作空间或地图有没有获取当前地图的缩略图的api

1个回答

您好,

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

第二个问题,工作空间没有回去缩略图,UGMap才能拿到地图
694EXP 2019年11月14日
不是使用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中有没有嘛
...