Можно ли написать выражение метки в qgis, которое отображает метку по заданной координате?

15

Я использую конструктор выражений QGIS для свойств меток моих данных.

Можно ли разместить разные части метки в разных координатах на карте?

Например, у меня есть линейная строка, и я хотел бы, чтобы «А» отображалось в начале линейной строки, а «В» - в ее конце.

benoitespinola
источник

Ответы:

22

Одним из методов является использование маркировки на основе правил и добавление двух правил для «A» и «B».

  1. Перейдите Layer Properties > Labelsи измените параметр No labelsна Rule-based labelling. Затем добавьте правило, нажав зеленый значок плюса:

    Маркировка на основе правил

  2. Установите соответствующие параметры, как показано, например Label with(используйте что-нибудь 'A') и Coordinate X Y. Для координаты х щелкните Edit...и используйте, $x_at(0)чтобы разместить метку в начале строки; для координаты y используйте $y_at(0).

    Варианты правил

  3. Повторите шаг 2 для «B», но для xy-координат используйте $x_at(-1)и $y_at(-1)соответственно для конца строки.

  4. Когда вы нажмете « Применить» , надеюсь, вы увидите что-то вроде этого:

    Линии с метками

Джозеф
источник
1
Спасибо, что поделились своим решением! Я посмотрю на это поближе. Я довольно новичок в QGIS, и кривая обучения еще только начинается.
benoitespinola
@benoitespinola - извиняюсь, что не отвечаю (я обычно отвечаю на комментарии)! Очень приветствую, и я уверен, что вы очень быстро привыкнете к QGIS :)
Джозеф
11

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

- Если вам нужен разный текст для разных функций, добавьте два поля к вашим данным, одно для вашего конечного текста и одно для начального текста. В этом нет необходимости, если вы хотите просто «A» и «B» на концах линий.

  • Символизируйте линейный слой, а затем добавьте новый слой символов -> установите его на линию маркера на первой вершине
  • Установите тип символа в маркер шрифта
  • Либо установите маркер на «A», либо установите значение, соответствующее полю начала из таблицы атрибутов ваших слоев
  • Измените размер, вращение и т. Д., Как если бы вы использовали стандартный маркер.

Повторите, чтобы добавить конечный «ярлык».

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

Эд Ролласон
источник
Ницца! Спасибо за ваше решение! Я тоже попробую. :)
benoitespinola