Outdated version of the documentation. Find the latest one here.

Свойства векторного слоя

Диалог Свойства слоя для векторного слоя предоставляет информацию о слое, настройках символики и подписей. Если ваш векторный слой был загружен из хранилища PostgreSQL/PostGIS, вы также можете изменить лежащий в его основе запрос SQL, вызвав диалог Построитель запросов во вкладке Общие. Чтобы вызвать диалог Свойства слоя, дважды щелкните мышью на слое в легенде или сделайте щелчок правой кнопкой мышки на нем и выберите Свойства в контекстном меню.

Figure Vector Properties 1:

../../../_images/vector_general_menu.png

Свойства векторного слоя nix

Вкладка «Стиль»

Вкладка Стиль позволяет настраивать отображение векторных данных. Здесь находятся настройки из группы Отрисовка, которые являются общими для всех типов данных, и настройки отрисовки, зависящие от типа геометрии слоя.

Отрисовка

  • Прозрачность slider: позволяет настраивать прозрачность векторного слоя. Задать прозрачность можно как при помощи ползунка, так и введя точное значение в поле.

  • Режим смешивания слоя: позволяет применять к слоям различные эффекты, раннее доступные только в специализированных графических пакетах. Пиксели, принадлежащие текущему слою и нижележащим слоям, смешиваются в соответствии с заданным алгоритмом.

    • Normal: This is the standard blend mode which uses the alpha channel of the top pixel to blend with the Pixel beneath it; the colors aren’t mixed
    • Lighten: It selects the maximum of each component from the foreground and background pixels. Be aware that the results tend to be jagged and harsh.
    • Screen: Light pixels from the source are painted over the destination, while dark pixels are not. This mode is most useful for mixing the texture of one layer with another layer. E.g. you can use a hillshade to texture another layer
    • Dodge: Dodge will brighten and saturate underlying pixels based on the lightness of the top pixel. So brighter top pixels cause the saturation and brightness of the underlying pixels to increase. This works best if the top pixels aren’t too bright, otherwise the effect is too extreme.
    • Addition: This blend mode simply adds pixel values of one layer with the other. In case of values above 1 (in the case of RGB), white is displayed. This mode is suitable for highlighting features.
    • Darken: Creates a resultant pixel that retains the smallest components of the foreground and background pixels. Like lighten, the results tend to be jagged and harsh
    • Multiply: It multiplies the numbers for each pixel of the top layer with the corresponding pixel for the bottom layer. The results are darker pictures.
    • Burn: Darker colors in the top layer causes the underlying layers to darken. Can be used to tweak and colorise underlying layers.
    • Overlay: Combines multiply and screen blending modes. In the resulting picture light parts of the picture become lighter and dark parts become darker.
    • Soft light: Very similar to overlay, but instead of using multiply/screen it uses color burn/dodge. This one is supposed to emulate shining a soft light onto an image.
    • Hard light: Hard light is very similar to the overlay mode. It’s supposed to emulate projecting a very intense light onto an image.
    • Difference: Difference subtracts the top pixel from the bottom pixel or the other way round, to always get a positive value. Blending with black produces no change, as values for all colors are 0.
    • Subtract: This blend mode simply subtracts pixel values of one layer with tshe other. In case of negative values, black is displayed.

Since QGIS 2.0 the old symbology is no longer available. In this version the new symbology has been redesigned and revised.

Отрисовка (тип легенды)

The renderer is responsible for drawing a feature together with the correct symbol. There are four types of renderers: single symbol, categorized, graduated and rule-based. There is no continuous color renderer, because it is in fact only a special case of the graduated renderer. The categorized and graduated renderer can be created by specifying a symbol and a color ramp - they will set the colors for symbols appropriately. For point layers there is a point displacement renderer available. For each data type (points, lines and polygons) vector symbol layer types are available. Depending on the chosen renderer, the Style menu provides different following sections. On the bottom right of the symbology dialog there is a [Symbol] button which gives access to the Style Manager (see Section vector_style_manager). The Style Manager allows you to edit and remove existing symbols and add new ones.

Совет

Изменение нескольких стилей

The Symbology allows to select multiple symbols and right click to change color, transparency, size, or width of selected entries.

Отрисовка обычным знаком

The Single Symbol Renderer is used to render all features of the layer using a single user-defined symbol. The properties, that can be adjusted in the Style menu, depend partially on the type of the layer, but all types share the following structure. In the top left part of the menu, there is a preview of the current symbol to be rendered. On the right part of the menu, there is a list of symbols already defined for the current style, prepared to be used via selecting them from the list. The current symbol can be modified using the menu on the right side.

If you click on the first level in the Symbol layers dialog on the left side it’s possible to define basic parameters like Size, Transparency, Color and Rotation. Here the layers are joined together.

Figure Symbology 1:

../../../_images/singlesymbol_ng_line.png

Single symbol line properties nix

More detailed settings can be made when clicking on the second level in the Symbol layers dialog. You can define Symbol layers that are combined afterwards. A symbol can consist of several Symbol layers. The following settings are possible:

  • Symbol layer type: You have the possibility to use Ellipse markers, Font markers, Simple markers, SVG markers and Vector Field markers
  • Size
  • Angle
  • Colors
  • Border width
  • Offset X,Y: You can shift the symbol in x- or y-direction

Note that once you have set the size in the lower levels the size of the whole symbol can be changed with the Size menu in the first level again. The size of the lower levels changes accordingly while the size ratio is maintained. After having done any needed changes, the symbol can be added to the list of current style symbols (using the [Symbol] selectstring Save in symbol library) and then easily be used in the future. Furthermore you can use the [Save Style] selectstring button to save the symbol as a QGIS layer style file (.qml) or SLD file(.sld). Currently in version 2.0 SLDs can be exported from any type of renderer: single symbol, categorized, graduated or rule-based, but when importing an SLD, either a single symbol or rule-based renderer is created. That means that categorized or graduated styles are converted to rule-based. If you want to preserve those renderers, you have to stick to the QML format. On the other hand, it could be very handy sometimes to have this easy way of converting styles to rule-based.

With the Style manager from the [Symbol] selectstring menu you can administrate your symbols. You can mActionSignPlus add item, editedit item, mActionSignMinus remove item and user share item. ‘Marker’ symbols, ‘Line’ symbols, ‘Fill’ patterns and ‘Color ramps’ can be used to create the symbols (see defining_symbols). The symbols are assigned to ‘All Symbols’, ‘Groups’ or ‘Smart groups’ then.

Отрисовка уникальными значениями

Используется для отрисовки всех элементов слоя единым, определенным пользователем, символом, цвет которого отражает значение выбранного атрибута элемента. Вкладка Стиль позволяет выбрать:

  • Поле (в списке полей)

  • Знак (в диалоге Выбор условного знака)

  • Градиент (в списке цветовых шкал)

The [Advanced] button in the lower right corner of the dialog allows to set the fields containing rotation and size scale information. For convenience, the list in the center of the menu lists the values of all currently selected attributes together, including the symbols that will be rendered.

Рисунок figure_symbology_2 иллюстрирует диалог отрисовки уникальными значениями на примере слоя рек из демонстрационного набора данных QGIS.

Figure Symbology 2:

../../../_images/categorysymbol_ng_line.png

Опции отрисовки «градуированным знаком» nix

You can create a custom color ramp choosing New color ramp... from the Color ramp dropdown menu. A dialog will prompt for the ramp type: Gradient, Random, ColorBrewer, and cpt-city. The first three have options for number of steps and/or multiple stops in the color ramp. See figure_symbology_3 for an example of custom color ramp and figure_symbology_3a for the cpt-city dialog.

Figure Symbology 3:

../../../_images/customColorRampGradient.png

Пример пользовательского градиента из нескольких цветов nix

The cpt-city option opens a new dialog with hundreds of themes included ‘out of the box’.

Figure Symbology 3a:

../../../_images/cpt-cityColorRamps.png

cpt-city dialog with hundreds of color ramps nix

Отрисовка градуированным знаком

Градуированный знак используется для рендеринга всех элементов слоя единым, определенным пользователем, символом, цвет которого отражает соответствие выбранного атрибута элемента некоторому классу.

Figure Symbology 4:

../../../_images/graduatesymbol_ng_line.png

Опции отрисовки «уникальными значениями» nix

Как и в случае отрисовки категориями, можно использовать информацию о вращении и масштабе из заранее заданных полей.

Как и в случае отрисовки категориями, вкладка Стиль позволяет выбрать:

  • Поле (в списке полей)

  • Знак (в диалоге Выбор условного знака)

  • Градиент (в списке цветовых шкал)

Кроме этого, вы можете задать количество классов, а также режим классификации элементов внутри класса (в списке режимов). Доступны следующие режимы:

  • Равные интервалы

  • Квантили

  • Естественные интервалы (Дженкс)

  • Стандартное отклонение

  • Наглядные интервалы

The listbox in the center part of the Style menu lists the classes together with their ranges, labels and symbols that will be rendered.

Рисунок figure_symbology_4 иллюстрирует диалог отрисовки градуированным знаком на примере слоя рек из демонстрационного набора данных QGIS.

Отрисовка на основе правил

Используется для отрисовки всех элементов слоя с помощью символов, базирующихся на определенных правилах. Цвет символов отражает соответствие выбранного атрибута элемента некоторому классу. В основе правил лежат выражения SQL, для их создания можно использовать Конструктор запросов. Диалог позволяет выполнять группировку правил по фильтру или масштабу, а также настроить использование уровней знака и использование только первого подошедшего правила.

Рисунок figure_symbology_5 иллюстрирует диалог отрисовки по заданным правилам на примере слоя рек из демонстрационного набора данных QGIS.

Для создания правила выделите существующую строку или нажмите кнопку [+], а затем выделите новую строку. Далее, нажмите кнопку [Изменить правило]. В диалоге Свойства правила необходимо указать название правила. Нажмите кнопку browsebutton чтобы открыть Конструктор выражений. В списке Функции выберите раздел «Поля и значения» чтобы увидеть список полей атрибутивной таблицы, которые могут использоваться при построении правила. Для добавления атрибута в поле Выражение дважды щелкните на его имени в списке «Поля и значения». При составлении правил можно использовать любые допустимые комбинации полей, значений и функций, которые вводятся в поле Выражение (см. раздел Калькулятор полей).

Figure Symbology 5:

../../../_images/rulesymbol_ng_line.png

Опции отрисовки «по правилам» nix

Смещение точек

Смещение точек позволяет отобразить все объекты точечного слоя, даже если они находятся в одном и том же месте. Это достигается путём размешения условных знаков по кругу вокруг центрального знака.

Figure Symbology 6:

../../../_images/poi_displacement.png

Диалог «Смещение точек» nix

Совет

Export vector symbology

You have the possibility to export vector symbology from QGIS into the Google .kml, *.dxf and MapInfo.tab files. Just open the right mouse menu of the layer and click on Save selection as ‣ to define the name of the output file and its format. Use the Symbology export menu to save the symbology either as Feature symbology ‣ or as Symbol layer symbology ‣. If you have used symbol layers it is recommended to use the second setting.

Подписи

The mActionLabeling Labels core application provides smart labeling for vector point, line and polygon layers and only requires a few parameters. This new application also supports on-the-fly transformated layers. The core functions of the application have been redesigned. In QGIS 2.0. there are now a number of other features which improve the labeling. The following menus have been created for labeling the vector layers:

  • Text
  • Formatting
  • Buffer
  • Background
  • Shadow
  • Placement
  • Rendering

Let us see how the new menus can be used for various vector layers.

Создание подписей для точечных слоёв

Start QGIS and load a vector point layer. Activate the layer in the legend and click on the mActionLabeling Layer Labeling Options icon in the QGIS toolbar menu.

First step is to activate the checkbox Label this layer with checkbox and select an attribute column to use for labeling. Click mActionmIconExpressionEditorOpen if you want to define labels based on expressions.

The following steps describe a simple labeling without using the Data defined override functions that are situated next to the drop-down menus.

You can define the text style in the Text menu (see Figure_labels_1 ). A new function is the Type case option where you can influence the text rendering. You have the possibility to render the text ‘All uppercase’, ‘All lowercase’ or ‘Capitalize first letter’. Also, a new function in QGIS 2.0 is the use of blend modes (see blend_modes).

In the Formatting menu you can define a character for a line break in the labels with the wrap label on character function. Use the checkbox Formatted numbers option to format the numbers in an attribute table. Here decimal places are inserted. If you enable this option three decimal places ist set by default.

To create a buffer just activate checkbox Draw text buffer checkbox in the Buffer menu. The buffer color is variable. Also, a new function in QGIS 2.0 is the use of blend modes (see blend_modes).

If the checkbox Color buffer’s fill checkbox is activated, it will interact with partially transparent text and give mixed color transparency results. Turning off the buffer fill fixes that issue (except where the interior aspect of the buffer’s stroke intersects with the text’s fill) and also allows the user to make outlined text.

In the Background menu you can define with Size X and Size Y the shape of your background. Use Size type to insert an additional ‘Buffer’ into your background. The buffer size one is set by default here. The background then consists of the buffer plus the background in Size X and Size Y. You can set a Rotation where you can choose between ‘Sync with label’, ‘Offset of label’ and ‘Fixed’. Using ‘Offset of label’ and ‘Fixed’ you can rotate the background. Define an Offset X,Y with X and Y values and the background will be shifted. When applying Radius X,Y the background gets rounded corners. Again, it is possible to mix the background with the underlying layers in the map canvas using the Blend mode (see blend_modes).

Use the Shadow menu for a user-defined Drop shadow. The drawing of the background is very variable. Choose between ‘Lowest label component’, ‘Text’, ‘Buffer’ and ‘Background’. The Offset angle depends on the orientation of the label. If you choose the checkbox Use global shadow checkbox then the zero point of the angle is always oriented to the north and doesn’t depend on the orientation of the label. Influence the appearance of the shadow with the Blur radius. The higher the number, the softer the shadows.

The appearance of the drop shadow can also be altered by choosing a blend mode (see blend_modes).

Choose the Placement menu for the label placement and the labeling priority. Using the radiobuttonon Offset from point setting you now have the possibility to use Quadrants to place your label. Additionally you can alter the angle of the label placement with the Rotation setting. Thus, a placement in a certain quadrant with a certain rotation is possible.

In the Rendering menu you can define label and feature options. In the Label options you find the scale-based visibility setting now. You can prevent QGIS from rendering only selected labels with the checkbox Show all labels for this layer (including colliding labels) checkbox. In the Feature options you can define if every part of a multipart feature is to be labeled. In QGIS 2.0 now it’s possible to define if the number of features to be labeled is limited and to checkbox Discourage labels from covering features.

Figure Labels 1:

../../../_images/label_points.png

Элегантные подписи для точечных векторных слоёв nix

Создание подписей для линейных слоёв

First step is to activate the checkbox Label this layer checkbox in the Label settings tab and select an attribute column to use for labeling. Click mActionmIconExpressionEditorOpen if you want to define labels based on expressions.

After that you can define the text style in the Text menu. Here the same settings as for point layers are possible.

Also in the Formatting menu the same settings as for point layers are possible.

The Buffer menu has the same functions as described in section labeling_point_layers .

The Background menu has the same entries as described in section labeling_point_layers .

Also the Shadow menu has the same entries as described in section labeling_point_layers .

In the Placement menu you find special settings for line layers. The label can be placed radiobuttonon Parallel, radiobuttonoff Curved or radiobuttonoff Horizontal. With the radiobuttonon Parallel and radiobuttonoff Curved option come the following settings: You can define the position checkbox Above line, checkbox On line and checkbox Below line. It’s possible to select several options at once. QGIS will look for the optimal position of the label then. Remember that here you can also use the line orientation for the position of the label. Additionally you can define a Maximum angle between curved characters when selecting the radiobuttonoff Curved option (see Figure_labels_2 ).

The Rendering menu has nearly the same entries as for point layers. In the Feature options you can now Suppress labeling of features smaller than.

Figure Labels 2:

../../../_images/label_line.png

Элегантные подписи для линейных векторных слоёв nix

Создание подписей для полигональных слоёв

First step is to activate the checkbox Label this layer checkbox and select an attribute column to use for labeling. Click mActionmIconExpressionEditorOpen if you want to define labels based on expressions.

In Text menu define the text style. The entries are the same as for point and line layers.

The Formatting menu allows you to format multiple lines like for point and line layers.

As with point and line layers you can create a text buffer in the Buffer menu.

Use the Background menu to create a complex user-defined background for the polygon layer. You can use the menu as well as for the point and line layers.

The entries in the Shadow menu are the same as for point and line layers.

In the Placement menu you find special settings for polygon layers (see Figure_labels_3 ). radiobuttonon Offset from centroid, radiobuttonoff Horizontal (slow), radiobuttonoff Around centroid, radiobuttonoff Free and radiobuttonoff Using perimeter are possible.

In the radiobuttonon Offset from centroid settings you can define if the centroid is radiobuttonon visible polygon or radiobuttonoff whole polygon. That means that either the centroid is used for the polygon you can see on the map or the centroid is used for the whole polygon, no matter if you can see the whole feature on the map. You can place your label with the quadrants here and define offset and rotation. The radiobuttonoff Around centroid setting makes it possible to place the label around the centroid with a certain distance. Again, you can define radiobuttonon visible polygon or radiobuttonoff whole polygon for the centroid. With the radiobuttonoff Using perimeter settings you can define a position and a distance for the label. For the position checkbox Above line, checkbox On line, checkbox Below line and checkbox Line orientation dependend position are possible.

The entries in the Rendering menu are the same as for line layers. You can also use Suppress labeling of features smaller than in the Feature options.

Figure Labels 3:

../../../_images/label_area.png

Элегантные подписи для площадных векторных слоёв nix

Using data-defined override for labeling

With the data-defined override functions the settings for the labeling are overwritten by entries in the attribute table. You can activate/deactivate the function with the right-mouse button. Hover over the symbol and you see the information about the data-defined override, including the current definition field. We now describe an example how to use the data-defined override function for the mActionMoveLabelMove label function (see figure_labels_4 ).

  1. Import the lakes.shp from the QGIS sample dataset.
  2. Double-klick the layer to open the Layer Properties. Klick on Labels and Placement. Select radiobuttonon Offset from centroid.
  3. Look for the Data defined entries. Klick the mIconDataDefine -Icon to define the field type for the Coordinate. Choose ‘xlabel’ for X and ‘ylabel’ for Y. The Icons are now highlighted in yellow.
  4. Zoom into a lake.
  5. Go to the Label toolbar and klick the mActionMoveLabel Icon. Now you can shift the label manually to another position (see figure_labels_5 ). The new position of the label is saved in the ‘xlabel’ and ‘ylabel’ columns of the attribute table.

Figure Labels 4:

../../../_images/label_data_defined.png

Labeling of vector polygon layers with data-defined override nix

Figure Labels 5:

../../../_images/move_label.png

Move labels nix

Поля

attributes Within the Fields menu the field attributes of the selected dataset can be manipulated. The buttons mActionNewAttribute New Column and mActionDeleteAttribute Delete Column can be used, when the dataset is mActionToggleEditing Editing mode.

Элемент редактирования

Figure Fields 1:

../../../_images/editwidgetsdialog.png

Диалог выбора элемента редактирования поля nix

Во вкладке Атрибуты вы также можете найти колонку Элемент редактирования. Эта колонка может использоваться для задания значений или диапазона значений, которые можно присваивать конкретному полю таблицы. При нажатии кнопки [Элемент редактирования] открывается диалог, в котором можно задать различные элементы. Среди них:

  • Строчное редактирование: Поле, позволяющее вводить простой текст (или числа для числовых атрибутов).

  • Classification: Displays a combo box with the values used for classification, if you have chosen ‘unique value’ as legend type in the Style menu of the properties dialog.
  • Диапазон: Позволяет вводить числовые значения из указанного диапазона. Элемент редактирования может быть либо «ползунком», либо числовым полем ввода.

  • Уникальные значения: Пользователь может выбрать одно из значений, уже используемых для атрибута. Если активирован параметр «Поле ввода», то будет использоваться поле ввода с автодополнением, иначе будет использоваться выпадающий список.

  • Имя файла: Упрощает процесс выбор файлов за счёт добавления соответствующего диалога.

  • Карта значений: Выпадающий список с предопределенными значениями. Значение сохраняется в атрибуте, описание выводится в списке. Значения задаются вручную, берутся из атрибутивной таблицы слоя или загружаются из файла CSV.

  • Перечень: Выпадающий список значений, допустимых для данного типа поля. На данный момент эта функциональность доступна только для слоёв PostGIS.

  • Неизменяемый: Неизменяемый атрибут нельзя редактировать (он доступен только для чтения).

  • Скрытый: Скрытый атрибут не будет виден пользователю.

  • Флажок: Значение для активированного состояния, значение для неактивированного состояния.

  • Текстовое поле: Текстовое поле, позволяющее ввод многострочного текста.

  • Календарь: Календарь для ввода даты. Столбец должен иметь тип text.

  • Связанное значение: позволяет выбирать значения из связанной таблицы в выпадающем списке. Необходимо указать таблицу, ключево поле и поле значений.

  • Генератор UUID: атрибут только для чтения, в которое будет записан UUID (Universally Unique Identifiers), если поле пустое.

  • Изображение: Виджет для вывода изображения.

  • Webview: Отображает HTML-содержимое заданного URL.

  • Цвет: Кнопка выбора цвета.

With the Attribute editor layout you can now define builtin forms for data entry jobs (see figure_fields_2). Choose ‘Drag and drop designer’ and an attribute column. Use the mActionSignPlus Icon to create a category that then will be shown during the digitizing session (see figure_fields_3). Next step will be to assign the relevant fields to the category with the mActionArrowRight Icon. You can create more categories and use the same fields again. When creating a new category QGIS will insert a new tab for the category in the built in form.

Other options in the dialog are ‘Autogenerate’ and ‘Provide ui-file’. ‘Autogenerate’ just creates Editors for all fields and tabulates them. The ‘Provide ui-file’ option allows you to use complex dialogs made with the Qt-Designer. Using an UI-file allows a large freedom in creating a dialog. For detailed information see http://nathanw.net/2011/09/05/qgis-tips-custom-feature-forms-with-python-logic/ .

QGIS dialogs can have a python function that is called when the dialog is opened. Use this function to add extra logic to your dialogs. An example is (in module MyForms.py):

def open(dialog,layer,feature):
geom = feature.geometry()
control = dialog.findChild(QWidged,"My line edit")

Reference in Python Init Function like so: MyForms.open

MyForms.py must live on PYTHONPATH, .qgis2/python, or inside the project folder

Figure Fields 2:

../../../_images/attribute_editor_layout.png

Dialog to create categories with the Attribute editor layout

Figure Fields 3:

../../../_images/resulting_feature_form.png

Resulting built in form in a data entry session

Общие

general Вкладка Общие очень схожа с аналогичной вкладкой диалога свойств растрового слоя. Она позволяет:

Информация

  • изменять отображаемое в легенде имя слоя

  • Define the Layer source of the vector layer
  • Define the Data source encoding to define provider specific option and to be able to read the file

Система координат

  • Specify the Coordinate Reference System. Here you can view or change the projection of the specific vector layer.
  • Cоздавать пространственный индекс для векторного файла (только для форматов, поддерживаемых OGR и PostGIS)

  • обновить информацию об охвате слоя, при помощи кнопки [Обновить границы]

  • View or change the projection of the specific vector layer, clicking on Specify ...

checkbox Scale dependent visibility

  • You can set the Maximum (inclusive) and Minimum (exclusive) scale. The scale can also be set by the [Current] buttons

Подмножество объектов

Figure General 1:

../../../_images/vector_general_menu.png

General menu in vector layers properties dialog nix

Вывод

mActionMapTips In QGIS 2.0 there is now an own menu for the map tips. It includes a new feature: Map Tip display text in HTML. While you can still choose a radiobuttonoff Field to be displayed when hovering over a feature on the map it is now possible to insert HTML code that creates a complex display when hovering over a feature. To activate Map Tips, select the menu option View ‣ MapTips.Figure Display 1 shows an example of HTML code.

Figure Display 1:

../../../_images/display_html.png

HTML code for map tip nix

Figure Display 2:

../../../_images/map_tip.png

Map tip made with HTML code nix

Действия

action QGIS позволяет выполнять действия с использованием атрибутов элемента. Эту вкладку можно использовать для выполнения любого количества действий, например, запуск программы с параметрами, взятыми из атрибутов элемента, или передача параметров в веб-утилиту генерации отчётов.

Figure Actions 1:

../../../_images/action_dialog.png

Overview action dialog with some sample actions nix

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

  • действия «Стандартное», «Приложение Mac», «Приложение Windows» и «приложение Unix» запускают внешнее приложение

  • «Приложение Python» выполняет код Python

  • действия «Стандартное» и «Приложение Python» доступны на всех платформах

  • Действия «Приложение Mac», «Приложение Windows» и «Приложение Unix» доступны только на соответствующих платформах (например, можно определить три действия «редактировать» для открытия редактора, но пользователь будет видеть и сможет выполнять только одно действие для своей платформы).

В диалоге имеется несколько примеров. Загрузить из можно нажав кнопку [Добавить действия по умолчанию]. Примером может служить выполнение поиска по значению атрибута. Эта концепция обсуждается ниже.

Задание действий

Attribute actions are defined from the vector Layer Properties dialog. To define an action, open the vector Layer Properties dialog and click on the Actions menu. Go to the Action properties. Select ‘Generic’ as type and provide a descriptive name for the action. The action itself must contain the name of the application that will be executed when the action is invoked. You can add one or more attribute field values as arguments to the application. When the action is invoked any set of characters that start with a % followed by the name of a field will be replaced by the value of that field. The special characters %% will be replaced by the value of the field that was selected from the identify results or attribute table (see using_actions below). Double quote marks can be used to group text into a single argument to the program, script or command. Double quotes will be ignored if preceded by a backslash.

Если какие-то из имен полей являются подстроками других имен полей (например, col1 и col10), вам следует указать это, заключив имя поля (и символ %) в квадратные скобки (например, [%col10]). Это позволит не путать поле %col10 с полем %col1 и 0 на конце. QGIS удаляет скобки во время замены названия поля на его значение. Если вы хотите, чтобы замещенное поле было заключено в квадратные скобки, используйте сигнатуру наподобие этой: [[%col10]].

Диалог Результаты идентификации включает в себя элемент (Выведенные), содержащий соответствующую типу слоя информацию. Значения этого элемента можно получить схожим с другими полями образом — поставив перед именем наследуемого поля (Выведенные). Например, точечный слой имеет поля X и Y, значения этих полей можно использовать в действии в качестве параметров %(Выведенные).X и %(Выведенные).Y. Наследуемые атрибуты доступны только из диалога Результаты идентификации, и, соответственно, недоступны из диалога Таблица атрибутов.

Два примера действий показаны ниже:

  • konqueror http://www.google.com/search?q=%nam
  • konqueror http://www.google.com/search?q=%%

В первом примере вызывается веб-браузер konqueror и передается URL, который необходимо в нем открыть. URL выполняет поиск в Google по значению поля nam нашего векторного слоя. Обратите внимание, что запускаемое приложение или вызываемый скрипт должны находиться в текущей директории, иначе вы должны указывать полный путь. Чтобы убедиться, что действие выполнится правильно, мы можем переписать первый пример как: /usr/bin/konqueror http://www.google.com/search?q=\%nam. Это обеспечит запуск приложения konqueror при вызове действия.

Второй пример использует нотацию %%, которая не замещает ни одно поле его значением. Когда действие вызывается, %% замещается значением выбранного поля результатов идентификации или таблицы атрибутов.

Использование действий

Действия вызываются либо из диалогов Результаты идентификации или Таблица атрибутов (вызвать эти диалоги можно, нажав на mActionIdentify Определить объекты или mActionOpenTable Открыть таблицу атрибутов). Чтобы вызвать действие, щёлкните правой кнопкой мыши на записи и выберите действие из контекстного меню. Действия указаны в контекстном меню с именами, которые вы им назначили во время задания действий. Щёлкните на действии, которое вы хотите вызвать.

If you are invoking an action that uses the %% notation, right-click on the field value in the Identify Results dialog or the Attribute Table dialog that you wish to pass to the application or script.

Здесь приведен другой пример, иллюстрирующий процесс записи данных векторного слоя в файл с использованием bash и комманды echo (так что он будет работать только в nix или (возможно) osx). Используемый в примере слой имеет поля имени taxon_name, широты lat и долготы long. Для того чтобы записать значения этих полей в текстовый файл, необходимо вызвать следующее действие:

bash -c "echo \"%taxon_name %lat %long\" >> /tmp/species_localities.txt"

После вызова этого действия для нескольких записей таблицы, результирующий файл будет выглядеть примерно так:

Acacia mearnsii -34.0800000000 150.0800000000
Acacia mearnsii -34.9000000000 150.1200000000
Acacia mearnsii -35.2200000000 149.9300000000
Acacia mearnsii -32.2700000000 150.4100000000

В качестве упражнения мы создадим действие, выполняющее поиск в Google по слою lakes. Для начала, нам необходимо указать URL, необходимый для выполнения поиска по ключевому слову. Это легко сделать, просто перейдя на сайт Google и выполнив простой поиск, затем необходимо скопировать URL из адресной строки вашего браузера. Итак, мы видим, что формат имеет вид: http://google.com/search?q=qgis, где qgis — это ключевое слово поиска. Имея в виду эту информацию, мы можем продолжать:

  1. Убедитесь, что слой lakes загружен.

  2. Откройте диалог Свойства слоя, сделав двойной щелчок на слое в легенде или щёлкнув правой кнопкой мыши и выбрав Свойства в контекстном меню.

  3. Click on the Actions menu.

  4. Введите имя действия, например, Google Search.

  5. Для действия нам нужно задать имя внешней запускаемой программы. В этот раз мы будем использовать веб-браузер Firefox. Если программы нет в текущей директории, необходимо задать полный путь к ней.

  6. Следом за именем внешнего приложения добавьте URL, используемый для выполнения поиска в Google (но не указывайте параметр поиска): http://google.com/search?q=

  7. Теперь текст в поле Действие должен выглядеть так: firefox http://google.com/search?q=

  8. Щёлкните на выпадающем списке, содержащем имена полей слоя lakes. Он расположен непосредственно слева от кнопки [Вставить поле].

  9. From the drop-down box select ‘NAMES’ and click [Insert Field].

  10. Теперь текст вашего действия выглядит так:

    firefox http://google.com/search?q=%NAMES

  11. To finalize the action click the [Add to action list] button.

Теперь действие создано и готово к использованию. Окончательный текст действия должен выглядеть так:

firefox http://google.com/search?q=%NAMES

Теперь мы можем использовать это действие. Закройте диалог Свойства слоя и приблизьтесь к области интереса. Убедитесь, что слой lakes активный и выберите озеро. В окне результатов вы теперь видите, что ваше действие показывается:

Figure Actions 2:

../../../_images/action_identifyaction.png

Select feature and choose action nix

Во время вызова действия запустится Firefox и откроется URL http://www.google.com/search?q=Tustumena. Также возможно добавить дополнительные поля к действию. Следовательно, вы можете добавить «+» в конец текста действия, выбрать другое поле и нажать кнопку [Вставить поле]. В нашем примере более нет доступных полей, по которым был бы смысл проводить поиск.

Вы можете задать несколько действий для слоя и каждое из них будет показано в диалоге Результаты идентификации.

Существует множество применений действий. Например, если у вас есть точечный слой, который содержит информацию о пути к изображениям или фото, вы можете создать действие запуска приложения, с помощью которого можно просматривать изображения. Вы также можете использовать действия для генерации веб-отчётов об атрибутивном поле или комбинации полей, задавая их в схожей манере, как мы это делали в примере поиска в Google.

Рассмотрим более сложный пример, а именно использование действий типа Python.

Обычно, при создании действия для открытия файла внешним приложением можно использовать абсолютные или относительные пути, во втором случае путь должен быть относительным по отношению к исполнимому файлу внешнего приложения. Но как быть, если необходимо использовать относительные пути, по отношению к выбранному слою (речь о файловых источниках данных, таких как shape-файлы или базы SpatiaLite)? Следующий код решает эту проблему:

command = "firefox";
imagerelpath = "images_test/test_image.jpg";
layer = qgis.utils.iface.activeLayer();
import os.path;
layerpath = layer.source() if layer.providerType() == 'ogr' \
  else (qgis.core.QgsDataSourceURI(layer.source()).database() \
  if layer.providerType() == 'spatialite' else None);
path = os.path.dirname(str(layerpath));
image = os.path.join(path,imagerelpath);
import subprocess;
subprocess.Popen( [command, image ] );

необходимо помнить, что используется действие типа Python и изменить значение переменных command и imagerelpath в соответствии со своими нуждами.

А как быть, если путь должен быть относительным по отношению к (сохраненному) файлу проекта? Код соответствующего действия будет выглядеть:

command="firefox";
imagerelpath="images/test_image.jpg";
projectpath=qgis.core.QgsProject.instance().fileName();
import os.path; path=os.path.dirname(str(projectpath)) if projectpath != '' else None;
image=os.path.join(path, imagerelpath);
import subprocess;
subprocess.Popen( [command, image ] );

Ещё один пример — действие Python, позволяющее добавлять новые слои в проект. Так, следующие примеры добавляют в проект векторный и растровый слой соответственно. Имена добавляемых файлов а также имена слоёв определяются данными (filename и layername это имена столбцов атрибутивной таблицы слоя, для которого создаётся действие):

qgis.utils.iface.addVectorLayer('/yourpath/[% "filename" %].shp','[% "layername" %]',\
  'ogr')

Для добавления растра (в этом примере файла tif) используем:

qgis.utils.iface.addRasterLayer('/yourpath/[% "filename" %].tif','[% "layername" %]')

Связи

join The Joins menu allows you to join a loaded attribute table to a loaded vector layer. After clicking mActionSignPlus the Add vector join dialog appears. As key columns you have to define a join layer you want to connect with the target vector layer , a join field that corresponds to an attribute column in the target layer and a target field you find in the attribute table of the target vector layer here. As a result, all information of the join layer and the target layer are displayed in the attribute table of the target layer as joined information.

QGIS currently supports to join non spatial table formats supported by OGR (e.g. CSV, DBF and Excel), delimited text and the PostgreSQL provider (see figure_joins_1).

Figure Joins 1:

../../../_images/join_attributes.png

Join an attribute table to an existing vector layer nix

В дилоговом окне также можно активировать:

  • checkbox Сохранить связанный слой в виртуальной памяти

  • checkbox Создать индекс на основе объединяемого поля

Диаграммы

diagram The Diagrams menu allows you to add a graphic overlay to a vector layer (see figure_diagrams_1).

The current core implementation of diagrams provides support for piecharts, text diagrams and histograms.

The menu is divided into four tabs now: Appearance, Size, Postion and Options.

In the case of the text diagram and piechart text values of different data columns are displayed one below the other with a circle or a box and dividers. In the Size tab diagram size is based on a fixed size or on linear scaling according to a classification attribute. The placement of the diagrams which is done in the Position tab interacts with the new labeling, so position conflicts between diagrams and labels are detected and solved. In addition to chart positions can be fixed by the users hand.

Figure Diagrams 1:

../../../_images/diagram_tab.png

Vector properties dialog with diagram menu nix

Мы покажем, как выполнить наложение круговых диаграмм некоторых климатических температурных данных векторного слоя «climate» на cлой «alaska». Оба векторных слоя являются частью демонстрационного набора данных QGIS (см. раздел Примеры данных).

  1. Для начала нажмите на иконку mActionAddOgrLayer Добавить векторный слой, просмотрите директорию демонстрационного набора данных QGIS и загрузите два слоя alaska.shp и climate.shp.

  2. Сделайте двойной щелчок на слое climate в легенде карты и откройте диалог Свойства слоя.

  3. Click on the Diagrams menu, activate checkboxDisplay diagrams and from Diagram type selectstring combobox select ‘Text diagram’
  4. In the Appearance tab we choose a light blue as Background color and in the Size tab we set a fixed size to 18 mm.
  5. In the Position tab Placement could be set to AroundPoint.
  6. In the diagram we want to display the values of the three columns T_F_JAN, T_F_JUL and T_F_MEAN. First select T_F_JAN as Attributes and click the mActionSignPlus button, then T_F_JUL and finally T_F_MEAN.
  7. Теперь нажмите кнопку [Применить] для отображения диаграммы в главном окне QGIS.

  8. You can now adapt the chart size in the Size tab. Deactivate the checkbox Fixed size and set the size of the diagrams on the basis of an Attribute with the [Find maximum value] button and the Size menu. If diagrams appear too small on the screen you can activate the checkbox Increase size of small diagrams checkbox and define the Minimum size of the diagrams.
  9. Change the Attribute Colors by double clicking on the color values in the Assigned attributes field. Figure_diagrams_2 gives an impression.
  10. Наконец, нажмите кнопку [Ok].

Figure Diagrams 2:

../../../_images/climate_diagram.png

Diagram from temperature data overlayed on a map nix

Remember that in the Position tab a checkbox Data defined position of the diagrams is possible. Here you can use attributes to define the position of the diagram. Also, a scale dependent visibility that you can find in the Appearance tab is possible.

Метаданные

metadata The Metadata menu consists of a Description, Attribution, MetadataURL and Properties section.

In the Properties section you get general information about the layer, including specifics about the type and location, number of features, feature type, and the editing capabilities in the Properties section. The Extents table provides you with layer extent information, and the Layer Spatial Reference System information, providing information about the CRS of the layer. This is a quick way to get information about the layer.

Additionally you can add/edit a title for the layer and some abstract information in the Description. Also, it’s possible to define a Keyword list here. These keyword lists can be used in a metadata catalogue. If you want to use a title from an XML metadata file you have to fill in a link in the DataUrl field. Use Attribution to get Atrribute data from an XML metadata catalogue. In MetadataUrl you can define the general path to the XML metadata catalogue. These information will be saved in the QGIS project file for following sessions and will be used for QGIS server.

Figure Metadata 1:

../../../_images/vector_metadata_tab.png

Metadata menu in vector layers properties dialog nix