открыть mxd в arcobjects vb.net добавить в

Я пытаюсь открыть mxd в надстройке ESRI ArcMap, используя vb.net. Пользователь начинает с пустого mxd и запускает инструмент для открытия mxd, хранящегося в файле. Mxd, который открывается кодом, имеет несколько слоев функций и некоторую графику в макете.

Пока у меня есть:

Dim mapdoc As IMapDocument = New MapDocumentClass()
mapdoc.Open("D:\__Test\LockItInPMAV.mxd")

Документ открывается, потому что я могу получить его имя файла через:

MsgBox("Filename: " & mapdoc.DocumentFilename)

Однако представление данных и представление макета остаются пустыми, они не отображают содержимое открытого файла.

Как сделать так, чтобы открытый файл отображался в текущем сеансе ArcMap?

Спасибо, Люк.


person Luke    schedule 17.02.2015    source источник
comment
Благодаря ESRI теперь я использую правильный код: My.ArcMap.Application.OpenDocument(D:__Test\LockItInPMAV.mxd) Однако остальная часть моего кода (добавление слоев в оглавление) выполняется до открытия документа. mxd не открывается, пока мое дополнение не закроется. Любые идеи?   -  person Luke    schedule 18.02.2015
comment
2 недели спустя и никаких ответов, и я до сих пор не решил эту проблему :(   -  person Luke    schedule 03.03.2015


Ответы (1)


Я работаю на С#. Я не уверен, что вы можете загрузить mxd после его загрузки. Вам либо нужно будет загрузить новый экземпляр arcmap и передать имя mxd в качестве параметра:

var expanPath = Environment.GetEnvironmentVariable(Properties.Settings.Default.arcmapLaunchPath, 
EnvironmentVariableTarget.Machine);

string Cmd = string.Format(@"{0}\arcmap.exe", expanPath);
ProcessStartInfo startInfo = new ProcessStartInfo(Cmd);
startInfo.Arguments = Properties.Settings.Default.MxDPath;

Process.Start(startInfo);           
Process.GetCurrentProcess().Kill();

MXD содержит так много подробностей о том, как работает экземпляр arcmap, что перезагрузить его непросто. Наш подрядчик esri подтвердил это.

Мне сказали, что Pro полностью изменил это.

person Omnia9    schedule 29.02.2016