Как мне соединить метку и указать линией / стрелкой?


12

Возможно ли как-то в QGIS соединить метки и точки линией / стрелкой или чем-то еще? На моей карте не ясно, какая метка идет с ее точкой. Я не могу приблизить это, потому что есть еще много пунктов, чтобы прибыть.введите описание изображения здесь


Xof Solution работает для меня. Но я хотел бы знать, возможно ли иметь краткую легенду в моем списке фигур ... не так, как этот пример ниже, с уже короткой меткой ... ! [Мой тест ] ( i.stack.imgur.com/8VWoN .png ) Спасибо!
Матье

Ответы:


7
  • Сначала создайте поля меток для X и Y позиции ваших меток в таблице точек.

  • Активируйте X и Y позиционирование в свойствах вашего слоя.

переопределение

  • Создайте новый стиль «Выражение генератора» в своем стиле точек, установите для него тип линии, а затем используйте следующие формулы:

    make_line (make_point ($ x, $ y), make_point ("LABEL_X", "LABEL_Y"))

В качестве улучшения вы можете использовать различные поля (или использовать плагин для их создания), чтобы контролировать, где будет находиться точка выравнивания. Вы можете использовать поле вращения и поле вертикального и горизонтального выравнивания.

моделирование

Линия переместится в соответствии с вашей позицией метки, поскольку ее точка прибытия связана с полем позиции метки.


5

Вы можете попробовать загрузить и установить плагин EasyCustomLabeling из раздела « Плагины» > « Управление и установка плагинов» , при этом создается дублированный слой памяти выбранного векторного слоя и он содержит те же атрибуты.

( Обратите внимание, что вам также потребуется загрузить и установить плагин Memory Layer Saver, чтобы правильно сохранить слой памяти, это описано в описании плагина ).

После создания слоя надписей вы можете поиграть с расположением надписей и стилем этого слоя, чтобы попытаться получить то, что вы ищете:

Plugin

Настройки слоя метки

Слой метки

Надеюсь это поможет!


спасибо @ Джозеф. Это правильно, что я могу выбрать только один атрибут с этим плагином? (кстати: это тоже новый вопрос?)
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 вы можете использовать это выражение для рисования линий:

make_line (make_point ($ x, $ y), make_point ("primary_storage_labeling_positionx", "Additional_storage_labeling_positiony"))

Однако обратите внимание, что вспомогательные переменные получают назначенное значение, только если вы касаетесь / перемещаете метки с помощью инструмента move-label-tool. Поэтому вы видите только строки для меток, которые были перемещены вручную.


2

Если вы используете PostGIS для ваших пространственных данных, этот пост https://sigsemgrilhetas.wordpress.com/2015/01/12/etiquetas-com-guias-em-qgis-e-postgis-labels-leading-lines-with- qgis-and-postgis / Александр Нето объясняет, как можно добавить ведущие линии к точкам в вашей базе данных.

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

Надеюсь это поможет.

Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.