Dla każdego, kto wciąż szuka odpowiedzi na to pytanie bez użycia formatu przestrzennego, znalazłem coś, co działa.
Jeśli masz plik CSV i używasz sprzężenia, aby połączyć je z warstwą przestrzenną, jedną z opcji łączenia jest buforowanie warstwy. Możesz przejść do tej opcji, jeśli przejdziesz do właściwości swojej warstwy, a następnie do połączonych danych i klikniesz edytuj dołącz. Jeśli wyłączysz opcję pamięci podręcznej , możesz ponownie załadować warstwę danych po zmianie pliku csv, a następnie uruchomić odświeżanie mapy, aby uzyskać odświeżony widok mapy.
Przeładowywanie i odświeżanie można wykonać w konsoli Python. Najpierw musisz zdefiniować nazwę płótna mapy, pliku csv i warstwy:
mc = iface.mapCanvas()
layer=mc.currentLayer()
csv_layer=mc.currentLayer()
Pamiętaj, aby warstwy były aktywne, gdy nazywasz je w konsoli podczas korzystania z metody currentLayer (musi to być „bieżąca warstwa”).
Następnie, jeśli ustawisz opcję pamięci podręcznej jako wyłączoną dla swojego łączenia, możesz zmienić plik csv, a następnie użyć następujących dwóch poleceń w konsoli Python, aby przerysować mapę:
csv_layer.reload()
layer.triggerRepaint()
To działało dla mnie, ale miałem tylko 100 wierszy danych. Może się zdarzyć, że operacje będą przebiegały wolniej bez buforowania, gdy masz większy zestaw danych.