Czy istnieje sposób na źródło pliku kształtu do pliku warstwy w QGIS, podobnie jak to robisz we właściwościach warstwy ArcGIS? (tzn. Przejdź do właściwości warstwy, zakładki źródła, a następnie po prostu naciśnij 'Set Dat Source'
przycisk)
Sprawdziłem wszystkie właściwości warstw w QGIS i nigdzie tego nie widzę ...
EDYCJA: Otrzymałem komentarze wyjaśniające, że nie możesz tego zrobić z plikami kształtów, ale jeśli miałbym zmienić nazwę pliku kształtu, a następnie otworzyć wcześniej istniejący plik projektu, który zawiera ten plik kształtu jako warstwę, otrzymam „Uchwyt” Dialog Bad Layers, który pozwala mi nawigować i ponownie pobierać warstwę do dowolnego pliku kształtu, który chcę. Wydaje mi się dziwne, że możesz korzystać z zasobów w tym scenariuszu, ale nie możesz tego zrobić ręcznie za pomocą okna dialogowego właściwości warstwy.
źródło
Obecnie nie jest to możliwe, ale jest na to bilet. Możesz jednak zmienić źródło danych w pliku .qgs (plik projektu) i ponownie otworzyć projekt.
Zmień
<datasource>
linięźródło
w Pythonie można bezpośrednio modyfikować źródło danych za pomocą QgsVectorLayer.writeLayerXML i QgsVectorLayer.readLayerXML modyfikując dokument DOM w locie i ponownie ładując warstwę, jak w przykładzie poniżej.
Funkcja została zawarta we wtyczce PickLayer, która pozwala wykonywać działania na klikniętej warstwie i funkcji
źródło
Od wydania 2.10 QGis Api zawiera metodę QgsVectorLayer :: setDataSource :
źródło
Jeśli pracujesz z plikami kształtów, nie (ze względu na specyficzne cechy formatu). Jeśli używasz warstw PostGIS lub SpatiaLite, jedną warstwę wektorową (tabela geometria_kolumny) można połączyć z wieloma tabelami atrybutów i odwrotnie (z kluczami obcymi lub widokami).
Jest zaimplementowany natywnie w GRASS GIS, wielu tabelach dla jednej warstwy wektorowej i zmieniającym się źródle danych ( v.to.db
źródło