Mam projekt QGIS (2.14.3-Essen), z którego korzystam zarówno w pracy, jak i w domu. W projekcie trzymam wszystkie oprócz dwóch warstw.
Dwie pozostałe warstwy są bardzo duże - DEM i cień o łącznej wartości ponad 20 GB - i są przechowywane na różnych ścieżkach w pracy lub w domu.
Chciałbym zignorować Handle Bad Layers
dialog i zachować zepsute ścieżki dla tych warstw. Często mnie to nie obchodzi, że są złe; Chcę wprowadzić zmiany w innych częściach projektu.
Czy istnieje sposób, aby to zrobić, zignorować lub pominąć okno dialogowe Obsługa złych warstw, aby nie stracić odniesienia do warstw, jeśli ich nie zaktualizuję?
Odpowiedzi:
Po prostu wykonaj osobne kopie z pliku projektu do użytku domowego i zawodowego.
Zapisane dane zostaną zapisane w plikach źródłowych warstwy, a nie w pliku projektu.
Po zakończeniu pracy domowej możesz zabrać ją do pracy i ponownie dodać złe warstwy. Jeśli masz trudną stylizację na warstwach, możesz zapisać ją osobno i również dodać.
Innym wyborem jest owinięcie pliku VRT wokół zewnętrznego źródła.
Przykładowy przykład pliku rastrowego Geotif, utworzonego za pomocą
gdal_translate
:oraz próbka pliku kształtu:
Gdy pliki źródłowe nie są obecne, raster jest wyświetlany jako czarny kwadrat (możesz zmienić warstwę na niewidoczną), a warstwa wektorowa staje się tabelą nie geometrii, bez żadnych komunikatów o błędach. Dodatkowe warstwy inne niż vrt z plikami źródłowymi, które nie zostaną usunięte, pozostaną i można je edytować. Po ponownej instalacji plików źródłowych wszystko wraca do normy, nawet zmiany w innych warstwach.
źródło
Możliwym obejściem byłoby zmodyfikowanie pliku projektu qgs za pomocą skryptu. Odkryłem, że jeśli zastąpisz źródło danych,
<datasource>.</datsource>
to zignoruje wyskakujące okienko Obsługa złych warstw.Skrypt Pythona do uruchomienia, jeśli nie chcesz ładować określonych warstw.
Skrypt Pythona do uruchomienia w celu wstawienia odpowiedniej ścieżki źródła danych.
Robiąc to, możesz skonfigurować
DoNotLoad.py
z najwyższym skryptem ihome.py
ze ścieżkami do domowych źródeł orazwork.py
ze ścieżkami do źródeł pracy, używając drugiego skryptu jako wzorca.Będziesz wtedy miał jeden projekt do pracy, ale możesz łatwo zmienić ścieżki w zależności od środowiska, w którym się znajdujesz, lub zmienić ścieżki, aby warstwy nie były ładowane, ale nadal znajdowały się w projekcie (cała stylizacja jest zapisywana i myślę, że możesz nawet zmienić styl, jeśli chcesz. Po prostu nic nie pojawi się na mapie).
źródło
Wtyczka ChangeDataSource utrzymuje warstwy w pliku, tymczasowo przenosząc je do grupy złych warstw. https://geogear.wordpress.com/2016/01/29/changedatasourceplugin-plugin-release-2-0/ Powinno to robić, co chcesz. W ubiegłym roku miałem podobny problem i zauważyłem, że istnieje wtyczka ChangeDataSource, która działa z warstwami, ale nie obsługuje złych warstw. Wspomniałem, że obsługa złych warstw byłaby świetną funkcją w komentarzach na blogu dewelopera (Enrico Ferreguti). W ciągu tygodnia dodał go!
źródło