Nie jestem pewien, czy jest to duplikat, ale czy możesz spojrzeć na gis.stackexchange.com/q/89501/1297 i gis.stackexchange.com/q/59778/1297, aby zobaczyć, czy te przybliżą Cię do tego, czym jesteś szukasz? A potem myślę, że pomogłoby ci to pytanie, gdybyś podał kilka szczegółów na temat tego, czego próbowałeś i być może nie tak.
SaultDon,
Odpowiedzi:
13
W QGIS 2.6 (być może także we wcześniejszych wersjach, nie wiem) możesz to zrobić w sekcji Właściwości warstwy, Labelszakładka, Renderingsekcja. Mniej więcej w połowie listy opcji renderowania znajduje się przycisk, który pozwoli Ci napisać wyrażenie, które określi listę funkcji, które będą faktycznie oznaczone. Twój wyraz byłby podobny "Elevation" IN (1000, 1500). Oto przycisk (na żółto), mam ten ustawiony tylko do etykietowania konturów o wartości rzędnej 32:
Jednym z podejść byłoby załadowanie warstwy konturu i nadanie jej stylu. Następnie załaduj ponownie tę samą warstwę i zastosuj filtr (kliknij warstwę prawym przyciskiem myszy i przejdź do „Filtruj”). Użyj wyrażenia filtru podobnego do pokazanego na zdjęciu. W moim przypadku chciałem dużych konturów w odstępach pionowych 50 metrów, a pole zawierające wartości wysokości nazywało się „prop_value”.
Po załadowaniu przefiltrowanej warstwy pokazującej główne kontury zastosuj etykiety konturu i (jeśli to konieczne) wzmocnij styl linii, jak pokazano.
Wyrażenie filtru:
("prop_value" % 50) = 0
wybierze również kontury w odstępach pionowych 50 metrów. Działa z bazami danych Spatialite, nie ma pewności co do plików kształtów.
Używam tego podejścia, które sprawia, że opisywanie i wyświetlanie konturów według warunków jest dość łatwe.
Używam „Właściwości zdefiniowanych danych” szerokości symbolu i kolorów linii konturu z wyrażeniem (patrz zrzut ekranu 1), dzięki któremu można zastosować różne szerokości linii w oparciu o niestandardowe warunki i podobne wyrażenie do etykietowania (patrz zrzut ekranu 2).
Wystarczy umieścić potrzebne wartości w wyrażeniach i to wszystko.
To znaczy, jeśli chcesz ukryć kontury inne niż 500 m, możesz użyć tego wyrażenia dla właściwości danych linii w symbolu:
CASE WHEN Elevation / 500 - floor(Elevation / 500) = 0 then
color_rgba(255,255,255,100)
else
color_rgba(255,255,255,0)
end
tzn. do etykietowania tylko w odstępach 500 m użyj tego wyrażenia do:
CASE WHEN Elevation /500 - floor(Elevation / 500) = 0 THEN Elevation || ' m' END
tzn. do zastosowania innej szerokości linii użyj takiego wyrażenia dla właściwości zdefiniowanych danych:
CASE WHEN Elevation / 100 - floor(Elevation / 100) = 0 THEN
0.25
WHEN Elevation / 50 - floor(Elevation / 50) = 0 THEN
0.15
ELSE
0.1
END
Innym wygodnym wyrażeniem jest "ELEV" LIKE '%00'(krok 100m) lub "ELEV" LIKE '%00' OR "ELEV" LIKE '%50'(krok 50m) lub "ELEV" LIKE '%0'(krok 10m) itd., Gdzie „ELEV” to moje pole podnoszenia danych. Druga opcja działa tylko wtedy, gdy 50 jest wielokrotnością interwału (10 m lub 5 m ...).
Odpowiedzi:
W QGIS 2.6 (być może także we wcześniejszych wersjach, nie wiem) możesz to zrobić w sekcji Właściwości warstwy,
Labels
zakładka,Rendering
sekcja. Mniej więcej w połowie listy opcji renderowania znajduje się przycisk, który pozwoli Ci napisać wyrażenie, które określi listę funkcji, które będą faktycznie oznaczone. Twój wyraz byłby podobny"Elevation" IN (1000, 1500)
. Oto przycisk (na żółto), mam ten ustawiony tylko do etykietowania konturów o wartości rzędnej 32:źródło
Jednym z podejść byłoby załadowanie warstwy konturu i nadanie jej stylu. Następnie załaduj ponownie tę samą warstwę i zastosuj filtr (kliknij warstwę prawym przyciskiem myszy i przejdź do „Filtruj”). Użyj wyrażenia filtru podobnego do pokazanego na zdjęciu. W moim przypadku chciałem dużych konturów w odstępach pionowych 50 metrów, a pole zawierające wartości wysokości nazywało się „prop_value”.
Po załadowaniu przefiltrowanej warstwy pokazującej główne kontury zastosuj etykiety konturu i (jeśli to konieczne) wzmocnij styl linii, jak pokazano.
Wyrażenie filtru:
wybierze również kontury w odstępach pionowych 50 metrów. Działa z bazami danych Spatialite, nie ma pewności co do plików kształtów.
źródło
Używam tego podejścia, które sprawia, że opisywanie i wyświetlanie konturów według warunków jest dość łatwe.
Używam „Właściwości zdefiniowanych danych” szerokości symbolu i kolorów linii konturu z wyrażeniem (patrz zrzut ekranu 1), dzięki któremu można zastosować różne szerokości linii w oparciu o niestandardowe warunki i podobne wyrażenie do etykietowania (patrz zrzut ekranu 2).
Wystarczy umieścić potrzebne wartości w wyrażeniach i to wszystko.
To znaczy, jeśli chcesz ukryć kontury inne niż 500 m, możesz użyć tego wyrażenia dla właściwości danych linii w symbolu:
tzn. do etykietowania tylko w odstępach 500 m użyj tego wyrażenia do:
tzn. do zastosowania innej szerokości linii użyj takiego wyrażenia dla właściwości zdefiniowanych danych:
źródło
Innym wygodnym wyrażeniem jest
"ELEV" LIKE '%00'
(krok 100m) lub"ELEV" LIKE '%00' OR "ELEV" LIKE '%50'
(krok 50m) lub"ELEV" LIKE '%0'
(krok 10m) itd., Gdzie „ELEV” to moje pole podnoszenia danych. Druga opcja działa tylko wtedy, gdy 50 jest wielokrotnością interwału (10 m lub 5 m ...).źródło