Не уверен, что это дубликат, но вы можете взглянуть на gis.stackexchange.com/q/89501/1297 и gis.stackexchange.com/q/59778/1297, чтобы узнать, приближают ли они вас к тому, что вы находясь в поиске? И тогда я думаю, что это помогло бы вашему вопросу, если бы вы предоставили некоторые подробности о том, что вы пытались и, возможно, где-то не так.
SaultDon
Ответы:
13
В QGIS 2.6 (возможно, и в более ранних версиях, я не знаю) вы можете сделать это в разделе Свойства слоя, Labelsвкладка, Renderingраздел. На полпути вниз по списку параметров рендеринга находится кнопка, которая позволит вам написать выражение, которое определит список функций, которые будут фактически помечены. Ваше выражение будет что-то вроде "Elevation" IN (1000, 1500). Вот кнопка (желтая), она настроена только для обозначения контуров со значением высоты 32:
Один из подходов состоит в том, чтобы загрузить слой контура и стилизовать его. Затем снова загрузите тот же слой и примените фильтр (щелкните правой кнопкой мыши по слою и перейдите к «Фильтру ..»). Используйте выражение фильтра, подобное показанному на рисунке. В моем случае я хотел получить основные контуры с вертикальными интервалами в 50 метров, а поле, содержащее значения высот, называлось «prop_value».
Когда отфильтрованный слой, показывающий основные контуры, загружен, примените метки контуров и (если требуется) укрепите стиль линии, как показано.
Выражение фильтра:
("prop_value" % 50) = 0
также выберет контуры с вертикальными интервалами 50 метров. Работает с базами данных Spatialite, не уверен насчет шейп-файлов.
Я использую этот подход, который делает маркировку и отображение контуров по условию довольно простой.
Я использую «Свойства, определенные данными» ширины символа линии и цветов контурных линий с выражением (см. Скриншот 1), с помощью которого вы можете применять разную ширину линии в зависимости от пользовательских условий и аналогичное выражение для надписи (см. Скриншот 2).
Просто поместите нужные значения в выражения и все.
Т.е. если вы хотите скрыть контурные линии, отличные от 500 м, вы можете использовать это выражение для свойств данных символа линии:
CASE WHEN Elevation / 500 - floor(Elevation / 500) = 0 then
color_rgba(255,255,255,100)
else
color_rgba(255,255,255,0)
end
т.е. для маркировки только 500-метровых интервалов используйте это выражение для:
CASE WHEN Elevation /500 - floor(Elevation / 500) = 0 THEN Elevation || ' m' END
т.е. для применения различной ширины линии используйте выражение, подобное этому, для свойств, определенных данными:
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
Другим удобным выражением является "ELEV" LIKE '%00'(шаг 100 м) или "ELEV" LIKE '%00' OR "ELEV" LIKE '%50'(шаг 50 м) или "ELEV" LIKE '%0'(шаг 10 м) и т. Д., Где «ELEV» - это мое поле повышения данных. Второй вариант работает, только если 50 кратен интервалу (10 м или 5 м ...).
Ответы:
В QGIS 2.6 (возможно, и в более ранних версиях, я не знаю) вы можете сделать это в разделе Свойства слоя,
Labels
вкладка,Rendering
раздел. На полпути вниз по списку параметров рендеринга находится кнопка, которая позволит вам написать выражение, которое определит список функций, которые будут фактически помечены. Ваше выражение будет что-то вроде"Elevation" IN (1000, 1500)
. Вот кнопка (желтая), она настроена только для обозначения контуров со значением высоты 32:источник
Один из подходов состоит в том, чтобы загрузить слой контура и стилизовать его. Затем снова загрузите тот же слой и примените фильтр (щелкните правой кнопкой мыши по слою и перейдите к «Фильтру ..»). Используйте выражение фильтра, подобное показанному на рисунке. В моем случае я хотел получить основные контуры с вертикальными интервалами в 50 метров, а поле, содержащее значения высот, называлось «prop_value».
Когда отфильтрованный слой, показывающий основные контуры, загружен, примените метки контуров и (если требуется) укрепите стиль линии, как показано.
Выражение фильтра:
также выберет контуры с вертикальными интервалами 50 метров. Работает с базами данных Spatialite, не уверен насчет шейп-файлов.
источник
Я использую этот подход, который делает маркировку и отображение контуров по условию довольно простой.
Я использую «Свойства, определенные данными» ширины символа линии и цветов контурных линий с выражением (см. Скриншот 1), с помощью которого вы можете применять разную ширину линии в зависимости от пользовательских условий и аналогичное выражение для надписи (см. Скриншот 2).
Просто поместите нужные значения в выражения и все.
Т.е. если вы хотите скрыть контурные линии, отличные от 500 м, вы можете использовать это выражение для свойств данных символа линии:
т.е. для маркировки только 500-метровых интервалов используйте это выражение для:
т.е. для применения различной ширины линии используйте выражение, подобное этому, для свойств, определенных данными:
источник
Другим удобным выражением является
"ELEV" LIKE '%00'
(шаг 100 м) или"ELEV" LIKE '%00' OR "ELEV" LIKE '%50'
(шаг 50 м) или"ELEV" LIKE '%0'
(шаг 10 м) и т. Д., Где «ELEV» - это мое поле повышения данных. Второй вариант работает, только если 50 кратен интервалу (10 м или 5 м ...).источник