Как мне соединить метку и указать линией / стрелкой?
12
Возможно ли как-то в QGIS соединить метки и точки линией / стрелкой или чем-то еще? На моей карте не ясно, какая метка идет с ее точкой. Я не могу приблизить это, потому что есть еще много пунктов, чтобы прибыть.
Xof Solution работает для меня. Но я хотел бы знать, возможно ли иметь краткую легенду в моем списке фигур ... не так, как этот пример ниже, с уже короткой меткой ... ! [Мой тест ] ( i.stack.imgur.com/8VWoN .png ) Спасибо!
Матье
Ответы:
7
Сначала создайте поля меток для X и Y позиции ваших меток в таблице точек.
Активируйте X и Y позиционирование в свойствах вашего слоя.
Создайте новый стиль «Выражение генератора» в своем стиле точек, установите для него тип линии, а затем используйте следующие формулы:
В качестве улучшения вы можете использовать различные поля (или использовать плагин для их создания), чтобы контролировать, где будет находиться точка выравнивания. Вы можете использовать поле вращения и поле вертикального и горизонтального выравнивания.
Линия переместится в соответствии с вашей позицией метки, поскольку ее точка прибытия связана с полем позиции метки.
Вы можете попробовать загрузить и установить плагин EasyCustomLabeling из раздела « Плагины» > « Управление и установка плагинов» , при этом создается дублированный слой памяти выбранного векторного слоя и он содержит те же атрибуты.
( Обратите внимание, что вам также потребуется загрузить и установить плагин Memory Layer Saver, чтобы правильно сохранить слой памяти, это описано в описании плагина ).
После создания слоя надписей вы можете поиграть с расположением надписей и стилем этого слоя, чтобы попытаться получить то, что вы ищете:
спасибо @ Джозеф. Это правильно, что я могу выбрать только один атрибут с этим плагином? (кстати: это тоже новый вопрос?)
kevkev
Неа! Нет, если это простой вопрос да / нет =). Но вы правы, только один атрибут на слой, так что вы можете создать несколько слоев надписей, если хотите.
Джозеф
На самом деле это возможно. После создания слоя метки там можно изменить атрибуты: D
kevkev
@KevinSuhr - Отлично! Спасибо, я кое-чему научился =)
Джозеф
1
Из сообщения @underdark; Распространенным вариантом использования является желание показать несколько значений атрибута в метке объекта. Используя Калькулятор поля, вы можете объединить их в многострочные метки. Все, что вам нужно, это объединить поля с || оператор и добавьте '\ n' (перевод строки) везде, где должен быть разрыв строки: Field1 || '\ n' || Field2
Ли
4
Что касается метода gisinside: первый шаг ручного добавления атрибутов x / y для меток может быть опущен; (может быть, начиная с QGIS3?) уже есть вспомогательная переменная для позиционирования меток. Переменные называются соответственно: "Additional_storage_labeling_positionx" и "Additional_storage_labeling_positiony".
Таким образом, на этапе Nr. 2 вы можете использовать это выражение для рисования линий:
Однако обратите внимание, что вспомогательные переменные получают назначенное значение, только если вы касаетесь / перемещаете метки с помощью инструмента move-label-tool. Поэтому вы видите только строки для меток, которые были перемещены вручную.
Ответы:
Сначала создайте поля меток для X и Y позиции ваших меток в таблице точек.
Активируйте X и Y позиционирование в свойствах вашего слоя.
Создайте новый стиль «Выражение генератора» в своем стиле точек, установите для него тип линии, а затем используйте следующие формулы:
make_line (make_point ($ x, $ y), make_point ("LABEL_X", "LABEL_Y"))
В качестве улучшения вы можете использовать различные поля (или использовать плагин для их создания), чтобы контролировать, где будет находиться точка выравнивания. Вы можете использовать поле вращения и поле вертикального и горизонтального выравнивания.
Линия переместится в соответствии с вашей позицией метки, поскольку ее точка прибытия связана с полем позиции метки.
источник
Вы можете попробовать загрузить и установить плагин EasyCustomLabeling из раздела « Плагины» > « Управление и установка плагинов» , при этом создается дублированный слой памяти выбранного векторного слоя и он содержит те же атрибуты.
( Обратите внимание, что вам также потребуется загрузить и установить плагин Memory Layer Saver, чтобы правильно сохранить слой памяти, это описано в описании плагина ).
После создания слоя надписей вы можете поиграть с расположением надписей и стилем этого слоя, чтобы попытаться получить то, что вы ищете:
Надеюсь это поможет!
источник
Что касается метода gisinside: первый шаг ручного добавления атрибутов x / y для меток может быть опущен; (может быть, начиная с QGIS3?) уже есть вспомогательная переменная для позиционирования меток. Переменные называются соответственно: "Additional_storage_labeling_positionx" и "Additional_storage_labeling_positiony".
Таким образом, на этапе Nr. 2 вы можете использовать это выражение для рисования линий:
make_line (make_point ($ x, $ y), make_point ("primary_storage_labeling_positionx", "Additional_storage_labeling_positiony"))
Однако обратите внимание, что вспомогательные переменные получают назначенное значение, только если вы касаетесь / перемещаете метки с помощью инструмента move-label-tool. Поэтому вы видите только строки для меток, которые были перемещены вручную.
источник
Если вы используете PostGIS для ваших пространственных данных, этот пост https://sigsemgrilhetas.wordpress.com/2015/01/12/etiquetas-com-guias-em-qgis-e-postgis-labels-leading-lines-with- qgis-and-postgis / Александр Нето объясняет, как можно добавить ведущие линии к точкам в вашей базе данных.
Это хорошо написанное руководство, которое стоит прочитать, в нем также есть фильм, который показывает, как это работает.
Надеюсь это поможет.
источник