首页 / 浏览问题 / 组件GIS / 问题详情
vs地图切换崩溃
17EXP 2017年08月06日
我使用idesktop在一个工作空间中建立了两个地图,使用vs2012单独加载任何一个地图都是成功的,但是当我在想切换两个地图中出现问题。

我的问题是:

UGString mapName1 = m_pMapControl->GetMap()->GetWorkspace()->m_MapStorages.GetNameAt(0);

UGString mapName2 = m_pMapControl->GetMap()->GetWorkspace()->m_MapStorages.GetNameAt(1);

m_pMapEditorWnd->m_mapWnd.m_Map.Open(mapName1) 加载地图成功

不知道如何切换第二个地图(mapName2 ),我使用m_pMapEditorWnd->m_mapWnd.m_Map.Open(mapName2),代码在

m_pMapEditorWnd->OnDraw(...)时候崩溃。

请告知,谢谢。

2 个回答

经测试没问题,你先打开mapName2,看看是否是地图问题,还有组件使用的是哪个版本
4,620EXP 2017年08月07日
希望提供一段打开第二次地图的代码。没有demo,我完全不知道哪里出的问题。map地图有open函数,但是没有close,我如何关闭这个地图呢。我使用show,hide倒是可以隐藏打开。但是我想要的是切换地图。我就是创建两个UGMapEditorWnd都不好使,两个控件无法并存。同样崩溃在ondraw。我发现就是我使用异常处理ondraw,UGMapEditorWnd在hide时也会调用release,UGMapEditorWnd无法release,连close了UGMapEditorWnd,都无法release。怎么办啊,给个解决方案好吗?
组件使用810版本,我的地图单独都是可以打开的。问题出在打开一个地图之后,切换到第二个地图时,之前的地图应该是没有关闭。或者我不知道如何让第一个地图关闭。第二个地图打开后,ondraw就直接崩溃了。
17EXP 2017年08月07日
m_pMapWnd->m_mapWnd.OnClose();
this->Invalidate();

上面的代码就是清空关闭地图,你切换打开另外一个地图之前先执行关闭;
还有,你将你的包换成811的包
刚才试验了下,811确实使用m_pMapWnd->m_mapWnd.OnClose();后release没有崩溃。

但是晃动了下鼠标。ondraw就崩溃了。都不如810稳定。

具体操作如下,各种选择区域,然后拖动地图移动(地图要大于一屏),几下就崩溃在ondraw了。
你释放干嘛,OnClose()后直接打开另外一个地图
OnClose(),然后open,还是崩溃在ondraw,服了
链接:http://pan.baidu.com/s/1o7ThLdo 密码:w7zh,你下载这个范例在你机器上跑起来看看会不会崩溃
速度很慢啊。发我qq邮箱可以吗?lirui8284@qq.com
非常好使,我好好研究下。谢谢
喵了咪的,竟然是mfc的,有QT的吗?
...