Não tenho certeza se isso é uma duplicata, mas você pode dar uma olhada em gis.stackexchange.com/q/89501/1297 e gis.stackexchange.com/q/59778/1297 para ver se isso o aproxima mais do que você está procurando por? E então acho que ajudaria sua pergunta se você fornecesse alguns detalhes sobre o que tentou e talvez sobre onde está errado.
SaultDon
Respostas:
13
No QGIS 2.6 (talvez versões anteriores também, eu não sei), você pode fazer isso na seção Propriedades da camada, Labelsguia Rendering. Na metade da lista de opções de renderização, há um botão que permite escrever uma expressão que define a lista de recursos que serão realmente rotulados. Sua expressão seria algo parecido "Elevation" IN (1000, 1500). Aqui está o botão (em amarelo), tenho este definido apenas para rotular contornos com um valor de elevação de 32:
Uma abordagem seria carregar a camada de contorno e modelá-la. Em seguida, carregue a mesma camada novamente e aplique um filtro (clique com o botão direito do mouse na camada e desça até 'Filtro ..'). Use uma expressão de filtro semelhante à mostrada na imagem. No meu caso, eu queria grandes contornos em intervalos verticais de 50 metros e o campo contendo os valores de elevação era chamado "prop_value".
Quando a camada filtrada que mostra os principais contornos estiver carregada, aplique rótulos de contorno e (se necessário) reforce o estilo da linha, como mostrado.
A expressão de filtro:
("prop_value" % 50) = 0
também selecionará contornos em intervalos verticais de 50 metros. Funciona com bancos de dados Spatialite, não tenho certeza sobre os shapefiles.
Estou usando essa abordagem que facilita bastante a rotulagem e a exibição de linhas de contorno por condição.
Uso as "Propriedades definidas por dados" da largura do símbolo de linha e as cores das linhas de contorno com uma expressão (veja a captura de tela 1), na qual é possível aplicar larguras de linhas diferentes com base em condições personalizadas e uma expressão semelhante para rotular (veja a captura de tela 2).
Basta colocar os valores necessários para as expressões e isso é tudo.
Ou seja, se você deseja ocultar linhas de contorno diferentes de 500 m, é possível usar esta expressão para as propriedades definidas por data do símbolo de linha:
CASE WHEN Elevation / 500 - floor(Elevation / 500) = 0 then
color_rgba(255,255,255,100)
else
color_rgba(255,255,255,0)
end
ou seja, para rotular apenas intervalos de 500 m, use esta expressão para:
CASE WHEN Elevation /500 - floor(Elevation / 500) = 0 THEN Elevation || ' m' END
ou seja, para aplicar diferentes larguras de linha, use uma expressão como esta para propriedades definidas por dados:
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
Outra expressão conveniente é "ELEV" LIKE '%00'(etapa 100m) ou "ELEV" LIKE '%00' OR "ELEV" LIKE '%50'(etapa 50m) ou "ELEV" LIKE '%0'(etapa 10m) etc., onde "ELEV" é o meu campo de elevação de dados. A segunda opção funciona apenas se 50 for um múltiplo de intervalo (10m ou 5m ...).
Respostas:
No QGIS 2.6 (talvez versões anteriores também, eu não sei), você pode fazer isso na seção Propriedades da camada,
Labels
guiaRendering
. Na metade da lista de opções de renderização, há um botão que permite escrever uma expressão que define a lista de recursos que serão realmente rotulados. Sua expressão seria algo parecido"Elevation" IN (1000, 1500)
. Aqui está o botão (em amarelo), tenho este definido apenas para rotular contornos com um valor de elevação de 32:fonte
Uma abordagem seria carregar a camada de contorno e modelá-la. Em seguida, carregue a mesma camada novamente e aplique um filtro (clique com o botão direito do mouse na camada e desça até 'Filtro ..'). Use uma expressão de filtro semelhante à mostrada na imagem. No meu caso, eu queria grandes contornos em intervalos verticais de 50 metros e o campo contendo os valores de elevação era chamado "prop_value".
Quando a camada filtrada que mostra os principais contornos estiver carregada, aplique rótulos de contorno e (se necessário) reforce o estilo da linha, como mostrado.
A expressão de filtro:
também selecionará contornos em intervalos verticais de 50 metros. Funciona com bancos de dados Spatialite, não tenho certeza sobre os shapefiles.
fonte
Estou usando essa abordagem que facilita bastante a rotulagem e a exibição de linhas de contorno por condição.
Uso as "Propriedades definidas por dados" da largura do símbolo de linha e as cores das linhas de contorno com uma expressão (veja a captura de tela 1), na qual é possível aplicar larguras de linhas diferentes com base em condições personalizadas e uma expressão semelhante para rotular (veja a captura de tela 2).
Basta colocar os valores necessários para as expressões e isso é tudo.
Ou seja, se você deseja ocultar linhas de contorno diferentes de 500 m, é possível usar esta expressão para as propriedades definidas por data do símbolo de linha:
ou seja, para rotular apenas intervalos de 500 m, use esta expressão para:
ou seja, para aplicar diferentes larguras de linha, use uma expressão como esta para propriedades definidas por dados:
fonte
Outra expressão conveniente é
"ELEV" LIKE '%00'
(etapa 100m) ou"ELEV" LIKE '%00' OR "ELEV" LIKE '%50'
(etapa 50m) ou"ELEV" LIKE '%0'
(etapa 10m) etc., onde "ELEV" é o meu campo de elevação de dados. A segunda opção funciona apenas se 50 for um múltiplo de intervalo (10m ou 5m ...).fonte