首页 / 浏览问题 / 组件GIS / 问题详情
二维标绘画不出来
1EXP 2022年05月19日
使用产品:mobject c++ 10i 操作系统:win10 x64
数据类型: oracle 11g x64 或 文件型
问题详细描述:二维标绘画不出来
问题重现步骤: 1.按照mObjectCppQt示例代码改写extensions4Qt,添加打开数据源、创建数据集和图层相关代码 2. 在gettingStarted示例程序中添加相关调用,但是二维标绘不能绘制到打开的工作空间中

1个回答

可以通过iDesktop X打开一下你的工作空间,查看一下地图,如果需要绘制标绘对象,必须保证地图中存在一个可以编辑的cad类型图层,因为我们标绘对象目前都是统一支持存在cad类型的数据集的。

如果没有的话,建议先在iDesktop上面去将数据处理好。

(1),选择数据源,右键【新建数据集】,记得数据集类型选择cad;

(2)、将新建好的数据添加地图里面,在图层那儿将这个图层设置为可编辑状态,然后保存地图,保存工作空间

再去程序中打开进行操作。
4,620EXP 2022年05月19日
我用idesktop打开工作空间后显示已经有创建好的CAD图层了,代码里也使用图层SetEditable接口将该图层设置为可编辑状态了,但仍然绘制不出来,你提到的将新建好的数据添加地图里面这个需要调用什么接口
我的调用顺序是1 UGWorkspace.open 2 UGMapEditorWnd.SetWorkspace 3 m_pWorkspace->m_MapStorages.GetCount 4 UGMap.open打开地图 5 从m_pWorkspace->m_DataSources获取数据源,找到CAD图层或新建一个添加m_pMapEditorWnd->m_mapWnd.m_Map.m_Layers.AddDataset数据集。如果去掉第四步可以标绘,加上后就无法标绘
如果去掉第4步可以标绘,那你要检查一下你的这个地图坐标系是什么坐标系了,如果是地图坐标系和你的cad图层的坐标系不一致,导致超出正确范围就无法绘制,比如你的地图坐标系是平面无投影的坐标系,但是你的cad是地理坐标系,加进来,如果你的绘制范围是超过了+-180,+-90,就没办法绘制对象。你桌面和组件的操作步骤要保持一致,这样一步步的查找问题
...