Próbuję utworzyć losowe punkty wzdłuż pliku kształtu polilinii w QGIS. Zasadniczo, podobnie jak narzędzie „losowe punkty” w „narzędziach badawczych”, ale dla polilinii zamiast wielokątów.
Próbowałem przekonwertować plik linii na plik kształtu wielokąta, ale wypełnia on niektóre obszary wielokątami, podczas gdy inne obszary pozostają długimi wielokątami.
Jestem całkiem nowy w QGIS i tak naprawdę nie znam kodu Python.
qgis
point
line
polyline-creation
Cec.g
źródło
źródło
Odpowiedzi:
Ten kod będzie działał na najnowszej kompilacji programistów QGIS.
Wiem, że powiedziałeś, że nie znasz się dobrze na kodzie Python, ale powinieneś być w stanie uruchomić to całkiem łatwo. Skopiuj powyższy kod do pliku (nazywa się mój
locate.py
) i umieść go w swoim~/.qgis/python
systemie Windows 7, który będzie wC:\Users\{your user name}\.qgis\python\
systemie Windows XP lub Windows XPC:\Documents and Settings\{your user name}\.qgis\python\
Gdy plik znajdzie się w folderze python, otwórz QGIS i wybierz niektóre obiekty liniowe.
Następnie otwórz konsolę Python i uruchom następujący kod:
Wynik powinien wyglądać mniej więcej tak
Jeśli chcesz uruchomić go ponownie, po prostu wybierz więcej linii i uruchom
locate.createRandomPoints(10)
ponownie w konsoli Python.Uwaga: locate.createRandomPoints (10) 10 tutaj to liczba punktów do wygenerowania na linię
źródło
import locate
z pliku .py w konsoli Python?Możesz buforować polilinie (minimalnie), a następnie uruchomić próbkowanie uzyskanych wielokątów. Może działać samo z siebie, jeśli nie masz żadnych innych czynników ograniczających, np. na minimalne odstępy między punktami, gęstość lub jakoś.
W przypadku bardziej skomplikowanych przypadków stworzyłbym znacznie gęstszą próbkę losową, a następnie wybrałem odpowiednie (cokolwiek to może być) punkty w drugim kroku. Coś podobnego można zrobić za pomocą narzędzia zagęszczania, ale wtedy wszystkie punkty będą na poliliniach.
źródło