Формирование карты .mxd из тайлов
-
- Гуру
- Сообщения: 527
- Зарегистрирован: 21 окт 2012, 00:17
- Репутация: 15
- Ваше звание: developer
Формирование карты .mxd из тайлов
Необходимо сформировать карту .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.
Я поступаю следующим образом: загружаю тестовую карту, а затем в цикле для каждого тайла создаю новый слой следующим образом:
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
-
- Гуру
- Сообщения: 527
- Зарегистрирован: 21 окт 2012, 00:17
- Репутация: 15
- Ваше звание: developer
Re: Формирование карты .mxd из тайлов
Тайлов действительно очень много, для 1 слоя - 1 тайл, для 2 - 4, для 3 - 16, для 4 - 64, 5 - 256, всего слоев 25, поэтому количество тайлов на слое будет больше миллиона. Задача заключается в том, чтобы из кеша SASPlanet сформировать .mxd карту. Сейчас формирование происходит следующим образом: в директории с кешем для каждого нового тайла(служба проверяет директорию на наличие новых тайлов ) программно создаются файлы привязки, затем для каждого тайла создается свой слой с указанным масштабом.
Такой подход занимает очень много времени. Возможно ли сформировать карту .mxd средствами ArcGis, не формировать файл привязки для каждого тайла и для одной директории z(в которой миллионы файлов) формировать один слой IRasterLayer? Всего слоев будет 18.
Такой подход занимает очень много времени. Возможно ли сформировать карту .mxd средствами ArcGis, не формировать файл привязки для каждого тайла и для одной директории z(в которой миллионы файлов) формировать один слой IRasterLayer? Всего слоев будет 18.
-
- Гуру
- Сообщения: 527
- Зарегистрирован: 21 окт 2012, 00:17
- Репутация: 15
- Ваше звание: developer
Re: Формирование карты .mxd из тайлов
Для меня возможно наиболее оптимальный вариант сформировать mosaic dataset, в нем указать привязку(информацию из aux.xml, т.к. этот файл одинаков для всех тайлов одной карты). Подскажите, пожалуйста, как сформировать таким образом mxd карту из кучи тайлов.
-
- Гуру
- Сообщения: 527
- Зарегистрирован: 21 окт 2012, 00:17
- Репутация: 15
- Ваше звание: developer
Re: Формирование карты .mxd из тайлов
С помощью GDAL я только отображал файлы формата GEOTIFF в разных палитрах и системах координат. Подскажите, возможно ли, используя эту библиотеку, сформировать .mxd карту?
- Дмитрий Барышников
- Гуру
- Сообщения: 2572
- Зарегистрирован: 17 ноя 2009, 19:17
- Репутация: 261
- Откуда: Москва
Re: Формирование карты .mxd из тайлов
Для mosaic dataset все равно нужно иметь привязанные растры.
GDAL не нужен. ArcGIS поддерживает vrt формат из коробки. А создать его вы можете как вам удобнее. Хоть вручную xml файл пишите или утилитой специальной:novice писал(а):С помощью GDAL я только отображал файлы формата GEOTIFF в разных палитрах и системах координат. Подскажите, возможно ли, используя эту библиотеку, сформировать .mxd карту?
Код: Выделить всё
gdalbuildvrt level18.vrt ...\sasplanet\cache\sat\z18\*jpg
-
- Гуру
- Сообщения: 527
- Зарегистрирован: 21 окт 2012, 00:17
- Репутация: 15
- Ваше звание: developer
Re: Формирование карты .mxd из тайлов
Подскажите, пожалуйста, каков алгоритм создания vrt из тайлов. Нужны ли для каждого тайла 2 файла привязки .xml и .w? Необходимо создать mxd из миллионов тайлов, расположенных в разных директориях. Если возможно скиньте ссылку на код, где производится такая операция.
Где можно прочитать как программно на c# или с++ сформировать mxd из vrt?
Где можно прочитать как программно на c# или с++ сформировать mxd из vrt?
- Дмитрий Барышников
- Гуру
- Сообщения: 2572
- Зарегистрирован: 17 ноя 2009, 19:17
- Репутация: 261
- Откуда: Москва
Re: Формирование карты .mxd из тайлов
Тайлы должны быть привязаны. Т.е ArcGIS должен отображать отдельно взятый тайл, там где надо.novice писал(а):Подскажите, пожалуйста, каков алгоритм создания vrt из тайлов. Нужны ли для каждого тайла 2 файла привязки .xml и .w?
Не понял о каком коде идет речь? Записи пути к файлу тайла в xml подобный текстовый файл?novice писал(а): Необходимо создать mxd из миллионов тайлов, расположенных в разных директориях.
Если возможно скиньте ссылку на код, где производится такая операция.
-
- Гуру
- Сообщения: 527
- Зарегистрирован: 21 окт 2012, 00:17
- Репутация: 15
- Ваше звание: developer
Re: Формирование карты .mxd из тайлов
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 из тайлов
Кончено нет. Эта была бы мегановость, что в sdk arcgis появились примеры для SASPlanet.novice писал(а):Есть ли пример такого кода в документации sdk arcgis?
-
- Гуру
- Сообщения: 527
- Зарегистрирован: 21 окт 2012, 00:17
- Репутация: 15
- Ваше звание: developer
Re: Формирование карты .mxd из тайлов
Можно ли в gdalbuildvrt указать путь к директории z<номер слоя>, где в поддиректориях лежат сотни тысяч тайлов вместе с файлами привязки .w и .xml и по ним построить .vrt? Можно ли указать путь к файлу .xml отдельно и не копировать этот файл 1000000 раз?
Можете, пожалуйста, скинуть пример, как с помощью gdalbuildvrt сформировать .vrt для 4 слоя(z4) SasPlanet.
Можете, пожалуйста, скинуть пример, как с помощью gdalbuildvrt сформировать .vrt для 4 слоя(z4) SasPlanet.
- Дмитрий Барышников
- Гуру
- Сообщения: 2572
- Зарегистрирован: 17 ноя 2009, 19:17
- Репутация: 261
- Откуда: Москва
Re: Формирование карты .mxd из тайлов
Нет. Нужно указывать пути (хоть и по маске) до файлов. Код открыт - можете поменять под себя.novice писал(а):Можно ли в gdalbuildvrt указать путь к директории z<номер слоя>, где в поддиректориях лежат сотни тысяч тайлов вместе с файлами привязки .w и .xml и по ним построить .vrt?
gdalbuildvrt не поддерживает такую возможность.novice писал(а): Можно ли указать путь к файлу .xml отдельно и не копировать этот файл 1000000 раз?
Я не работаю с SasPlanet и не знаю, что такой 4 слой(z4). Приведите пример листинга директории - подумаем что можно сделать.novice писал(а): Можете, пожалуйста, скинуть пример, как с помощью gdalbuildvrt сформировать .vrt для 4 слоя(z4) SasPlanet.
-
- Гуру
- Сообщения: 527
- Зарегистрирован: 21 окт 2012, 00:17
- Репутация: 15
- Ваше звание: developer
Re: Формирование карты .mxd из тайлов
Структура каталога: sat\z<номерZ>\0\x<номерХ>\0\y<номерY>
номерХ меняется от 0 до 2^(номерZ-1), номерY меняется от 0 до 2^(номерZ-1)
Т.е. в z6 будет 1024 тайла
номерХ меняется от 0 до 2^(номерZ-1), номерY меняется от 0 до 2^(номерZ-1)
Т.е. в z6 будет 1024 тайла
-
- Гуру
- Сообщения: 527
- Зарегистрирован: 21 окт 2012, 00:17
- Репутация: 15
- Ваше звание: developer
Re: Формирование карты .mxd из тайлов
Т.е. получается можно для всех тайлов указать путь к одному файлу .xml (у тайлов разными являются только world файлы привязки .w)
А где можно скачать .exe gdalbuildvrt для windows 7?
А где можно скачать .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. А потом уже с поддиректориями разбираться будем.
Сделайте для начала vrt файл для одной директории такой командой
gdalbuildvrt level<номерZ>.vrt sat\z<номерZ>\0\x<номерХ>\0\y<номерY>\*.<png,jpg или что там у вас>
Проверьте корректность работы такого файла в ArcMap. А потом уже с поддиректориями разбираться будем.
Кто сейчас на конференции
Сейчас этот форум просматривают: нет зарегистрированных пользователей и 1 гость