Обновлять расположение файлов в проектах QGIS?

15

У меня есть около 30 разных файлов проекта QGIS для 30 разных клиентов. Каждый из них сохраняется на моем компьютере, и все соответствующие векторные и растровые файлы сохраняются локально.

Сейчас мы находимся в процессе перемещения офиса и модернизации наших компьютеров.

В результате мне нужно переместить все мои файлы со своего компьютера на сетевой диск, уничтожив тем самым все предыдущие ссылки на файлы.

Помимо ручного нажатия на каждый файл и поиска каждого нового местоположения, есть ли другой способ обойти это.

(Каждый проект может иметь несколько сотен ссылок для обновления)

Ger
источник

Ответы:

20

Я не уверен, какую версию QGIS вы используете, однако в v> 2.0.1 вы можете использовать диалог «Обработка плохих слоев», например так:

введите описание изображения здесь

  1. Выделите все слои в общем каталоге, удерживая клавишу Ctrl
  2. Двойной клик на последнем, который вы выбрали
  3. Перенесите один из слоев и выберите «Открыть».
  4. Повторите процесс для дополнительных каталогов

Это позволит пакетно обновлять слои на основе файлов по каталогам (не слоям базы данных):

введите описание изображения здесь

artwork21
источник
1
Спасибо за указание на это! Я искал подобную функцию, так как ArcGIS добавил опцию Восстановить источник данных несколько версий назад.
HeyOverThere
Я не знал, что вы можете обновить несколько слоев с общим каталогом одновременно. Благодарность!
Сандерка
Ура! кажется, это то, что я ищу. Я еще не пробовал, но сделаю сегодня. если это сработает, я приму ответ.
Ger
Это хорошо, но, похоже, он не может работать с файловыми базами геоданных, поскольку ему нужен только файл, а не каталог. В качестве теста я попытался выяснить, может ли работать один из тайных файлов с именем gdb, но после большинства попыток я сдался.
Джон
Кажется, это не работает для меня с QGIS 3.2 на macOS. Я пробовал и командную клавишу, и клавишу Shift для выбора нескольких файлов, но при изменении одного пути кажется, что он не редактирует несколько файлов вручную.
Адам Стюарт
19

Файлы проекта QGIS - это простые текстовые файлы. Вы можете искать и заменять контент в любом текстовом редакторе.

Просто посмотрите, как на файлы ссылаются в старом и новом месте хранения, и вы знаете, что нужно изменить.

Notepad ++ позволяет даже для пакетной обработки нескольких файлов за один шаг.

Andrej
источник
1
Попробовал это с QGIS 3.2 на macOS, и похоже, что файлы проекта теперь являются двоичными файлами, поэтому это решение больше не работает.
Адам Стюарт
2
@AdamStewart .qgz-файлы - это просто заархивированные версии .qgs-файлов. Вы можете разархивировать их внутри своей ОС или выбрать сохранение в формате .qgs, как это было в QGIS 2.
AndreJ
7

Если вы сохраняете проект с относительными путями перед перемещением данных, вам не нужно исправлять ссылки в новых проектах.

В QGIS v2.01 перейдите в Проект> Свойства проекта и выберите Сохранить относительные пути перед тем, как перемещать данные, а затем, пока вы просто копируете данные и сохраняете ту же структуру папок, файлы должны работать при повторном открытии проектов из ваш сетевой диск.

Сохранение относительных путей

MAJ742
источник
К сожалению, первый бит структуры будет отличаться по крайней мере.
Ger
ОК, относительные пути будут работать до тех пор, пока проекты и данные сохраняются в одной структуре относительно друг друга, даже если первая часть изменяется. В приведенном ниже примере, пока вы перемещаете и сохраняете все ниже уровня рабочей папки, одинаковая начальная часть пути может быть разной, как вы хотите. Проекты = C: /Work/Projects/myproj.qgs and Data = C: /Work/Data/myfile.shp
MAJ742
Принято, что только C: // будет полностью заменен на сетевой диск.
Ger
Возможно, я нашел решение проблемы относительного пути. Я надеюсь, что команда QGIS сможет проверить и решить эту проблему. Смотрите мой пост здесь: gis.stackexchange.com/questions/210992/...
овсяной
1

Я нашел хороший плагин, который может быть полезен: Qconsolidate (для установки: в настройках плагина сначала установите флажок «экспериментальные плагины»). Этот плагин сохраняет все слои в проекте в одну папку и редактирует пути. Папка и проект могут быть перемещены и открыты из любого места.

Ханнес Ледеген
источник
Qconsolidate imho решает другую проблему. Он создает копии наборов данных вместо изменения путей к новому расположению сетевого диска.
Подземье
Это верно. Если вы работаете с очень большим количеством больших шейп-файлов в нескольких проектах, это не очень полезно. Однако, если вы работаете с несколькими рабочими пространствами с большим количеством шейп-файлов, расположенных на разных картах, было бы неплохо иметь простой способ их группировки и резервного копирования.
Ханнес Ледеген
QPackage делает похожий трюк, для информации.
Гиснсайд