12

I suggest to use a virtual layer. If the SQL in virtual layers would give the same result than SQL that is fired directly against databases then the following should work select a.field_1,a.field_2,a.field_3 from (select field_1,field_2,field_3,"ORDER" ORDER BY "ORDER") as a; The result seems to work correctly in the print composer with QGIS 3.8.3. I ...


6

The way to get QGIS to put sub-categories into a print legend is to make the sub-categories part of the layer's style. This means that converting your rule-based labels (with colored backgrounds) into part of the symbol style. If this method seems like too much work, see below for a rather hack-y workaround. Convert your categorized style to a rule-based ...


6

After some more experimentation, it can be done but the trick is to not use either of the polar projections for the map canvas. Instead leave the main map in epsg:4326 and then in the two maps in the print composer set EPSG:3413 and EPSG:3986 and all will be well.


5

You could do this in a different way by sorting the layer before using the composer. So: Sort your layer with MMQGIS (plugin) by "ORDER" --> ascending. Show this new table in composer and remove the field. Here so screen shots: Here is the data: Sort: Check the differences: Plot the sorted table without that field:


5

I suggest to : Duplicate the layer (Right click on it in the layer panel and duplicate) Give a small size to the duplicated layer Refresh in the print composer ( you will have two "Coniferous Tree" Layers) Uncheck the "Auto Update button", select the Bigger layer and remove it from the legend


5

You can display SVG with HTML like : <!DOCTYPE html> <html> <body> <svg width="100" height="100"> <circle cx="50" cy="50" r="40" stroke="green" stroke-width="4" fill="yellow" /> </svg> </body> </html> source : https://www.w3schools.com/html/html5_svg.asp In a print composer, create a text label and check ...


5

I think this can be done without the second data-frame. If i understand your question correctly, i would just add as many map frames to the print composer as you need, pan and zoom them in place and lock them when they are ok. All with just one set of themes in one map view...


4

Just by way of an update, you can now achieve some form of order within aggregate functions in QGIS 3.8 (see changelog entry here) by specifying the order_byparameter. You can order by two fields by concatenating them in the order_by parameter. However the order will be alphabetical so if you are using integers make sure to pad with leading zeros so that e....


4

If you are using QGIS 3.x, try the following steps: Use the Field Calculator to create a new virtual field (integer type), called selected, and enter the expression is_selected() Go to your Map Layout and under the Atlas settings > Filter with, enter the expression "selected" = 1 Now select your features on the main canvas Go back to the Map Layout and ...


4

Go with 'Sheet size: '||@layout_pageheight ||' x '|| @layout_pagewidth ||' mm' For the future: In any template text field, go to "add expression" and check the bullet point "variables". Additional input from csk: In order for the formula to work you need to add [% in the front and %] in the end. Forgot about this, my bad. So we have: [%'Sheet size: '||@...


4

In Printcomposer go to Item Properties and scroll down to Grids Modify your existing grid or create a new one and modify this one At the top (in appearance) you can change the coordinate system of your grid: Choose a fitting Interval. In case you want to to change the projection of your map, you need to do this in your main project:


4

Create a blank layout, insert one item (e.g. an arrow) and format it to your preference. Then save this as a template (and it might be useful to give it a meaningful name like Arrow): Repeat for any other items. Now you can simply add these formatted items from your template by clicking the Add items from template folder button next to the Save as template ...


3

This code will link the extents of the maps: x_min(map_get(item_variables('INSERT_YOUR_MAP_ITEM_NAME_HERE'), 'map_extent')) y_min(map_get(item_variables('INSERT_YOUR_MAP_ITEM_NAME_HERE'), 'map_extent')) x_max(map_get(item_variables('INSERT_YOUR_MAP_ITEM_NAME_HERE'), 'map_extent')) y_max(map_get(item_variables('INSERT_YOUR_MAP_ITEM_NAME_HERE'), 'map_extent'))...


3

It seems like this was/is a bug, reported in the issue tracker, that is already solved and should get corrected in the next release: Within the layout composer, the 'filter with' feature on attribute tables no longer works for with @... variables. I have tested this with @layout_name, @atlas_pagename, @atlas_featureid, @project_crs and @project_author ...


3

Based on @Gabriel De Luca being able to reproduce the PDF without my same issues, I had hope that I was doing something wrong on my end. My original QGIS Print Layout would only create a 1 mile scale bar that was 360 px at 300 DPI, when it should be 300 px for the intended scale of 1:63360 (1 in = 1 mile). I created a new QGIS Print Layout, with ...


3

If you have many layers in your map and you would like to build the attribution label based on layers which are visible, it's possible with QGIS 3.4. In QGIS 3.4, you can build your attribution label automatically, according to layers which are visible. First, you need to setup metadata for all your layers. In QGIS 3.4.0 or 3.4.4, you had to use the QGIS ...


3

Tested with QGIS 3.6.1 As mentioned in the documentation, you can create a label and insert this code to get the current scale for the map with the item name Map 0: map_get( item_variables('Map 0'), 'map_scale')


3

Just use expression to link the attribute as a source for your image like you do in case CROSS SECTIONS attribute [% "Cross-Sect"%] In your case use: <img src=[% "PHOTOS"%] width="600" height="600" > This retrieve the string (path to photo on your drive) from PHOTOS attribute for atlas feature. If you can't see image even with manually inserted ...


3

Answer as described in comments by J. Monticolo: Some fonts (like Wingdings) have a checkbox checked (1F5F7) and unchecked (1F78E). You can after display the wanted character with an expression and a CASE statement.


3

In the item properties of your map in the print composer scroll down to the Grids section. Select your grid and press the Modify Grid.... Now scroll down to Draw Coordinates. The Format dropdown menu allows you to select the display format of the coorinates of your grid. From the dropdown select any item that includes with suffix to print the Northing/...


3

Very similar answer to the previous question you linked, but it's the only way I can think of to achieve this: Create a new layout in a blank QGIS project. Add a legend with the Auto-update box unchecked and save this layout as a template. In the layout view of your main project which has your raster layers, select 'Layout' > 'Add items from template...' ...


3

You can retrieve the extent coordintes of map item via variables, and use them in text box. x_min - [% to_dms(x_min(transform( map_get(item_variables('map'),'map_extent'),'EPSG:3857','EPSG:4326')),'x',2)%] y_max - [% to_dms(y_max(transform( map_get(item_variables('map'),'map_extent'),'EPSG:3857','EPSG:4326')),'y',2)%] Expression explained step by step: To ...


3

In addition to the previous answer, You can set your multiple composer template in a folder (different from the qgis template folder) for example : ".../template_composer_folder" Then go to preferences>composer (?)> templates composer folder and add ".../template_composer_folder" or in french so when you open the Layout Manager you will have all your ...


3

This is controlled by rule styles in the atlas layer Symbology property: Set the layer property>Symbology to Rule-based Create one style for active atlas feature symbol and another blank/empty style for non atlas features For each rule/style set the filter expression as (ogc_fid is the feature id field): "ogc_fid" = @atlas_featureid (for atlas feature ...


2

I do not have the answer for the general question, but in the specific case you pointed at, using "map scale" I do the following: [%'Scale: 1:' || round(map_get(item_variables('Map 1'), 'map_scale')/100) || '00'%] For this to work you have to give an ID to the desiderd map: (Done w/ Qgs 3.10) Hope it hepls!


2

I was having the same trouble just now. After further investigation, I found that I accidentally had changed the label's size unit type. Had to play around with it for a while but millimeter type seemed to work just fine. I previously had it at Pixel. That seemed to export my labels just fine. Hope it helps.


2

Update for QGIS 3 As of January 14, 2020, there's an outstanding request for this feature: Composer Attribute Table: Wrap Heading Text #30441 So it looks like the answer is still no. However, anyone interested should watch the linked feature request page for updates.


2

QGIS 3.10 introduces two new features [1, 2] that allows you to dynamically change the size of the grid when scaling. However, when using this new feature, the interval between the grid lines can take odd values, in addition, the grid cells are rectangular, which is ugly in my opinion. To solve this problem and get pretty square grid with predefined 1, 2, ...


2

This is a known issue that has been reported at: https://issues.qgis.org/issues/19282


2

The fix would be to not include a period . in the output file name. I have verified this in QGIS version 3.6.2-Noosa Example, if your print composer layout is named Atlas test-8.5x11, when you output a raster, then be sure to name the output file without any extra ., e.g., Atlas test-85x11.tif. For vector output, such as PDF or SVG, you do not have to do ...


Only top voted, non community-wiki answers of a minimum length are eligible