Стиль границы, чтобы соответствовать заполнить в QGIS?

11

В прошлом я только вручную подбирал цвет границы к цвету заливки, но это может занимать много времени.

Мне интересно, есть ли способ, чтобы программа автоматически соответствовала цвету границы заливки?

Цвет заливки назначается на вкладке «Стиль» в свойствах слоя.

Использование QGIS 2.8.6

Зимородок
источник
2
Мне кажется, что удаление границы визуально будет иметь тот же эффект, что и сопоставление цвета границы с заливкой (если граница тонкая, конечно). Поэтому вы можете удалить границы (опция «Без пера» в «стиле границы»).
ArMoraer
3
Спасибо за предложение, ArMoraer. Я пробовал это в прошлом, но обнаружил, что это обычно выявляет небольшие промежутки между формами, что не эстетично.
Зимородок

Ответы:

21

Я не уверен, как применить это для существующих полигонов, но вы могли бы заставить его работать для любых будущих, которые вы создадите.

В «Свойствах проекта»> «Стили по умолчанию»> «Диспетчер стилей» вы можете создать собственный стиль символов по умолчанию для «Заливка»:

QGIS Style Manager

Отредактируйте выражение цвета Border и установите его в @symbol_color: Редактирование пограничного выражения

Установка выражения границы

Наконец, установите новый стиль заливки по умолчанию: Установка новой заливки по умолчанию

Это сделает границу всегда соответствующей установленному цвету символа. Это не обязательно будет отражено в свойствах многоугольника. Таким образом, он все равно может выглядеть так, как будто у вас установлена ​​другая цветовая граница в свойствах, но он всегда должен соответствовать цвету символа, установленному на карте.

Хотелось бы, чтобы у меня была лучшая идея, чтобы сделать это задним числом, но, возможно, я или кто-то еще подойду с хорошей идеей позже.

JohnR
источник
хороший - только что попробовал это с существующим классифицированным слоем полигона, и это работало - не нужно было также устанавливать стиль по умолчанию (qgis 2.14.1)
Стивен Кей
Рад слышать, Стивен! Установка его в качестве стиля по умолчанию была бы более полезной, чтобы не нужно было устанавливать его заново для любых новых полигонов в проекте, но, как вы сказали, вам не обязательно делать это.
JohnR
2
Я установил 2.8 и повозился с ним некоторое время. Похоже, вам нужно обновить до 2.14, если функция @color_symbol очень важна, в 2.8 просто нет встроенного эквивалента.
JohnR
3
Стилистически мне нравится граница многоугольника, которая немного темнее оттенка цвета заливки. Я достиг этого, определив цветовое выражение границы как: темнее (@symbol_color, 200).
csk
1
@RutgerH Я смог заставить это работать на 2.18.0, но со времени моего первоначального ответа произошли незначительные изменения стиля. Если вы будете следовать указаниям и искать «Контур» вместо «Граница», вы должны прийти к такому же выводу.
JohnR
2

Другой способ получить цвет границы, соответствующий цвету заливки, - добавить новый слой к вашему символу с типом слоя символа = Outline: Простая линия.

Когда цвет применяется на уровне символов, все слои получают один и тот же цвет (если только один слой не заблокирован), поэтому заливка и добавленная граница совпадают ...

введите описание изображения здесь

JR
источник
0

Для того, чтобы сделать его задним числом - вы можете просто сохранить стиль как файл .qml, использовать регулярное выражение find и replace, чтобы установить границы того же цвета, что и полигоны (в Notepad ++ или аналогичные):

Найти:

<prop k="color" v="([^\r\n"]+)"/>(.+?)<prop k="outline_color" v="([^\r\n"]+)"/>

Заменить:

<prop k="color" v="\1"/>\2<prop k="outline_color" v="\1"/>

сохранить, а затем перезагрузить стиль в QGIS :)

tzirtzi
источник