Формирование карты .mxd из тайлов

ArcGIS 8.x,9.x,10.x (Arcview, ArcEditor, Arcinfo).
novice
Гуру
Сообщения: 527
Зарегистрирован: 21 окт 2012, 00:17
Репутация: 15
Ваше звание: developer

Формирование карты .mxd из тайлов

Сообщение novice »

Необходимо сформировать карту .mxd из тайлов( тайлы хранятся на диске в каталоге, как z<номер слоя>\0\x<номер тайла по оси х>\0\y<номер тайла по оси y>), у каждого тайла рядом лежит файл привязки .w и .aux.xml
Я поступаю следующим образом: загружаю тестовую карту, а затем в цикле для каждого тайла создаю новый слой следующим образом:
axMapControl1.LoadMxFile("c:\\\\world\\World Map.mxd");
IRasterLayer rlTestLayer = new RasterLayer();
rlTestLayer.CreateFromFilePath(<путь к тайлу, рядом с тайлом лежат два файла привязки>);
axMapControl1.AddLayer(rlTestLayer);

Подскажите, пожалуйста, как сформировать слои из множества тайлов(лежащих в поддиректории z, т.е. для z1 - один слой, для z2 - второй слой и т.д.), и задать для них масштаб, при котором эти слои отображались на карте .mxd.
Аватара пользователя
Дмитрий Барышников
Гуру
Сообщения: 2572
Зарегистрирован: 17 ноя 2009, 19:17
Репутация: 261
Откуда: Москва

Re: Формирование карты .mxd из тайлов

Сообщение Дмитрий Барышников »

Такое количество слоев тяжеловато для ArcGIS - почему не сделать Vrt из ваших тайлов. Для разного уровня увеличения - разные vrt. http://www.gdal.org/gdal_vrttut.html
novice
Гуру
Сообщения: 527
Зарегистрирован: 21 окт 2012, 00:17
Репутация: 15
Ваше звание: developer

Re: Формирование карты .mxd из тайлов

Сообщение novice »

Тайлов действительно очень много, для 1 слоя - 1 тайл, для 2 - 4, для 3 - 16, для 4 - 64, 5 - 256, всего слоев 25, поэтому количество тайлов на слое будет больше миллиона. Задача заключается в том, чтобы из кеша SASPlanet сформировать .mxd карту. Сейчас формирование происходит следующим образом: в директории с кешем для каждого нового тайла(служба проверяет директорию на наличие новых тайлов ) программно создаются файлы привязки, затем для каждого тайла создается свой слой с указанным масштабом.
Такой подход занимает очень много времени. Возможно ли сформировать карту .mxd средствами ArcGis, не формировать файл привязки для каждого тайла и для одной директории z(в которой миллионы файлов) формировать один слой IRasterLayer? Всего слоев будет 18.
novice
Гуру
Сообщения: 527
Зарегистрирован: 21 окт 2012, 00:17
Репутация: 15
Ваше звание: developer

Re: Формирование карты .mxd из тайлов

Сообщение novice »

Для меня возможно наиболее оптимальный вариант сформировать mosaic dataset, в нем указать привязку(информацию из aux.xml, т.к. этот файл одинаков для всех тайлов одной карты). Подскажите, пожалуйста, как сформировать таким образом mxd карту из кучи тайлов.
novice
Гуру
Сообщения: 527
Зарегистрирован: 21 окт 2012, 00:17
Репутация: 15
Ваше звание: developer

Re: Формирование карты .mxd из тайлов

Сообщение novice »

С помощью GDAL я только отображал файлы формата GEOTIFF в разных палитрах и системах координат. Подскажите, возможно ли, используя эту библиотеку, сформировать .mxd карту?
Аватара пользователя
Дмитрий Барышников
Гуру
Сообщения: 2572
Зарегистрирован: 17 ноя 2009, 19:17
Репутация: 261
Откуда: Москва

Re: Формирование карты .mxd из тайлов

Сообщение Дмитрий Барышников »

Для mosaic dataset все равно нужно иметь привязанные растры.
novice писал(а):С помощью GDAL я только отображал файлы формата GEOTIFF в разных палитрах и системах координат. Подскажите, возможно ли, используя эту библиотеку, сформировать .mxd карту?
GDAL не нужен. ArcGIS поддерживает vrt формат из коробки. А создать его вы можете как вам удобнее. Хоть вручную xml файл пишите или утилитой специальной:

Код: Выделить всё

gdalbuildvrt level18.vrt ...\sasplanet\cache\sat\z18\*jpg
novice
Гуру
Сообщения: 527
Зарегистрирован: 21 окт 2012, 00:17
Репутация: 15
Ваше звание: developer

Re: Формирование карты .mxd из тайлов

Сообщение novice »

Подскажите, пожалуйста, каков алгоритм создания vrt из тайлов. Нужны ли для каждого тайла 2 файла привязки .xml и .w? Необходимо создать mxd из миллионов тайлов, расположенных в разных директориях. Если возможно скиньте ссылку на код, где производится такая операция.
Где можно прочитать как программно на c# или с++ сформировать mxd из vrt?
Аватара пользователя
Дмитрий Барышников
Гуру
Сообщения: 2572
Зарегистрирован: 17 ноя 2009, 19:17
Репутация: 261
Откуда: Москва

Re: Формирование карты .mxd из тайлов

Сообщение Дмитрий Барышников »

novice писал(а):Подскажите, пожалуйста, каков алгоритм создания vrt из тайлов. Нужны ли для каждого тайла 2 файла привязки .xml и .w?
Тайлы должны быть привязаны. Т.е ArcGIS должен отображать отдельно взятый тайл, там где надо.
novice писал(а): Необходимо создать mxd из миллионов тайлов, расположенных в разных директориях.
Если возможно скиньте ссылку на код, где производится такая операция.
Не понял о каком коде идет речь? Записи пути к файлу тайла в xml подобный текстовый файл?
novice
Гуру
Сообщения: 527
Зарегистрирован: 21 окт 2012, 00:17
Репутация: 15
Ваше звание: developer

Re: Формирование карты .mxd из тайлов

Сообщение novice »

SASPlanet выкачивает карты без файлов привязки, там только файлы .jpg или .png. Т.е. для каждой картинки y<номер картинки по оси y> мне надо построить два файла привязки y<номер картинки по оси y>.w и .xml? Затем сформировать vrt слой, мне неизвестно как программно сформировать vrt из директории z<номер слоя> средствами arcgis, а затем мне непонятно как программно сформировать из 18 слоев vrt одну карту mxd. Есть ли пример такого кода в документации sdk arcgis?
Аватара пользователя
Дмитрий Барышников
Гуру
Сообщения: 2572
Зарегистрирован: 17 ноя 2009, 19:17
Репутация: 261
Откуда: Москва

Re: Формирование карты .mxd из тайлов

Сообщение Дмитрий Барышников »

novice писал(а):Есть ли пример такого кода в документации sdk arcgis?
Кончено нет. Эта была бы мегановость, что в sdk arcgis появились примеры для SASPlanet.
novice
Гуру
Сообщения: 527
Зарегистрирован: 21 окт 2012, 00:17
Репутация: 15
Ваше звание: developer

Re: Формирование карты .mxd из тайлов

Сообщение novice »

Можно ли в gdalbuildvrt указать путь к директории z<номер слоя>, где в поддиректориях лежат сотни тысяч тайлов вместе с файлами привязки .w и .xml и по ним построить .vrt? Можно ли указать путь к файлу .xml отдельно и не копировать этот файл 1000000 раз?
Можете, пожалуйста, скинуть пример, как с помощью gdalbuildvrt сформировать .vrt для 4 слоя(z4) SasPlanet.
Аватара пользователя
Дмитрий Барышников
Гуру
Сообщения: 2572
Зарегистрирован: 17 ноя 2009, 19:17
Репутация: 261
Откуда: Москва

Re: Формирование карты .mxd из тайлов

Сообщение Дмитрий Барышников »

novice писал(а):Можно ли в gdalbuildvrt указать путь к директории z<номер слоя>, где в поддиректориях лежат сотни тысяч тайлов вместе с файлами привязки .w и .xml и по ним построить .vrt?
Нет. Нужно указывать пути (хоть и по маске) до файлов. Код открыт - можете поменять под себя.
novice писал(а): Можно ли указать путь к файлу .xml отдельно и не копировать этот файл 1000000 раз?
gdalbuildvrt не поддерживает такую возможность.
novice писал(а): Можете, пожалуйста, скинуть пример, как с помощью gdalbuildvrt сформировать .vrt для 4 слоя(z4) SasPlanet.
Я не работаю с SasPlanet и не знаю, что такой 4 слой(z4). Приведите пример листинга директории - подумаем что можно сделать.
novice
Гуру
Сообщения: 527
Зарегистрирован: 21 окт 2012, 00:17
Репутация: 15
Ваше звание: developer

Re: Формирование карты .mxd из тайлов

Сообщение novice »

Структура каталога: sat\z<номерZ>\0\x<номерХ>\0\y<номерY>
номерХ меняется от 0 до 2^(номерZ-1), номерY меняется от 0 до 2^(номерZ-1)
Т.е. в z6 будет 1024 тайла
novice
Гуру
Сообщения: 527
Зарегистрирован: 21 окт 2012, 00:17
Репутация: 15
Ваше звание: developer

Re: Формирование карты .mxd из тайлов

Сообщение novice »

Т.е. получается можно для всех тайлов указать путь к одному файлу .xml (у тайлов разными являются только world файлы привязки .w)
А где можно скачать .exe gdalbuildvrt для windows 7?
Аватара пользователя
Дмитрий Барышников
Гуру
Сообщения: 2572
Зарегистрирован: 17 ноя 2009, 19:17
Репутация: 261
Откуда: Москва

Re: Формирование карты .mxd из тайлов

Сообщение Дмитрий Барышников »

Скачать можно здесь: http://trac.osgeo.org/gdal/wiki/DownloadingGdalBinaries
Сделайте для начала vrt файл для одной директории такой командой
gdalbuildvrt level<номерZ>.vrt sat\z<номерZ>\0\x<номерХ>\0\y<номерY>\*.<png,jpg или что там у вас>
Проверьте корректность работы такого файла в ArcMap. А потом уже с поддиректориями разбираться будем.
Ответить

Вернуться в «ArcGIS»

Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и 1 гость