Skip to main content
added 691 characters in body
Source Link
Babel
  • 74.9k
  • 15
  • 87
  • 227

A workaround: useYou can create the grid lines using geometry generator to createby creating buffers around the south pole. The distance between Degrees of Latitude is ca. 111 km. Use this value and mulitply it, using array_foreach to create several grid lines at once, here with an interval of 5 degrees (last number in line 3). For adding the antimeridian, see below.

Use this expression: this works if the layer in question is in EPSG:4326! If the layer is in EPSG:3031, delete linesthe transform() function (lines 4 and 9 to 11):

You can combine both expressions (for parallels and the antimeridian) in one expression using unioncollect_geometries (expression_1, expression_2) (or, similarily, the union() function). Be aware to keep or delete the transform() function, depending on the layer's CRS. One of the two expressions must have the transform, the other not. As well, the parallels (from the expression above) need to be converted to lines with the function boundary().

So for a layer in EPSG:4326, the expression is (for EPSG:3031 see screenshot):

collect_geometries( 
    collect_geometries (
        array_foreach(
            generate_series (0,30, 5),
            transform (
                boundary (
                    buffer (
                        make_point (0,0), 
                        111000*@element, 
                        200
                    )
                ),
                'EPSG:3031', 
                'EPSG:4326'
            )
        )
    ),
    make_line (
        make_point (0,-90),
        make_point (180,0)
    )
)

A workaround: use geometry generator to create buffers around the south pole. The distance between Degrees of Latitude is ca. 111 km. Use this value and mulitply it, using array_foreach to create several grid lines at once, here with an interval of 5 degrees (last number in line 3).

Use this expression: this works if the layer in question is in EPSG:4326! If the layer is in EPSG:3031, delete lines 4 and 9 to 11:

You can combine both expressions (for parallels and the antimeridian) in one expression using union (expression_1, expression_2). Be aware to keep or delete the transform() function, depending on the layer's CRS. One of the two expressions must have the transform, the other not.

You can create the grid lines using geometry generator by creating buffers around the south pole. The distance between Degrees of Latitude is ca. 111 km. Use this value and mulitply it, using array_foreach to create several grid lines at once, here with an interval of 5 degrees (last number in line 3). For adding the antimeridian, see below.

Use this expression: this works if the layer in question is in EPSG:4326! If the layer is in EPSG:3031, delete the transform() function (lines 4 and 9 to 11):

You can combine both expressions (for parallels and the antimeridian) in one expression using collect_geometries (expression_1, expression_2) (or, similarily, the union() function). Be aware to keep or delete the transform() function, depending on the layer's CRS. One of the two expressions must have the transform, the other not. As well, the parallels (from the expression above) need to be converted to lines with the function boundary().

So for a layer in EPSG:4326, the expression is (for EPSG:3031 see screenshot):

collect_geometries( 
    collect_geometries (
        array_foreach(
            generate_series (0,30, 5),
            transform (
                boundary (
                    buffer (
                        make_point (0,0), 
                        111000*@element, 
                        200
                    )
                ),
                'EPSG:3031', 
                'EPSG:4326'
            )
        )
    ),
    make_line (
        make_point (0,-90),
        make_point (180,0)
    )
)
added 1190 characters in body
Source Link
Babel
  • 74.9k
  • 15
  • 87
  • 227

A workaround: use geometry generator to create buffers around the south pole. The distance between Degrees of Latitude is ca. 111 km. Use this value and mulitply it, using array_foreach to create several grid lines at once, here with an interval of 5 degrees (last number in line 3).

Use this expression: this works if the layer in question is in EPSG:4326! If the layer is in EPSG:3031, delete lines 4 and 9 to 11:

collect_geometries (
    array_foreach(
        generate_series (0,30, 5),
        transform (
            buffer (
                make_point (0,0), 
                111000*@element, 
                200
            ),
            'EPSG:3031', 
            'EPSG:4326'
        )
    )
)

Red lines generated with geometry generator and the expression from aboveabove; the layer is in EPSG:4326: enter image description here

enter image description here

Edit: adding antimeridian

On my first screenshot, the antimeridian seems to appear. This is because I (accidentally) set an offset of 5 degrees for x - so in fact it is not the antimeridian. Maybe that's a bug.

To add the antimeridian, use the same approach: create it with geoemtry generator. For a layer in EPSG:3031, use this expression - if the layer is in EPSG:4326, delete lines 1 and 5 to 7:

transform (
    make_line (
        make_point (0,-90),
        make_point (180,0))
    ,
    'epsg:4326',
    'epsg:3031'
)

You can combine both expressions (for parallels and the antimeridian) in one expression using union (expression_1, expression_2). Be aware to keep or delete the transform() function, depending on the layer's CRS. One of the two expressions must have the transform, the other not.

Screenshots, using a layer in EPSG:3031: enter image description here

enter image description here

A workaround: use geometry generator to create buffers around the south pole. The distance between Degrees of Latitude is ca. 111 km. Use this value and mulitply it, using array_foreach to create several grid lines at once, here with an interval of 5 degrees (last number in line 3).

Use this expression:

collect_geometries (
    array_foreach(
        generate_series (0,30, 5),
        transform (
            buffer (
                make_point (0,0), 
                111000*@element, 
                200
            ),
            'EPSG:3031', 
            'EPSG:4326'
        )
    )
)

Red lines generated with geometry generator and the expression from above: enter image description here

enter image description here

A workaround: use geometry generator to create buffers around the south pole. The distance between Degrees of Latitude is ca. 111 km. Use this value and mulitply it, using array_foreach to create several grid lines at once, here with an interval of 5 degrees (last number in line 3).

Use this expression: this works if the layer in question is in EPSG:4326! If the layer is in EPSG:3031, delete lines 4 and 9 to 11:

collect_geometries (
    array_foreach(
        generate_series (0,30, 5),
        transform (
            buffer (
                make_point (0,0), 
                111000*@element, 
                200
            ),
            'EPSG:3031', 
            'EPSG:4326'
        )
    )
)

Red lines generated with geometry generator and the expression from above; the layer is in EPSG:4326: enter image description here

enter image description here

Edit: adding antimeridian

On my first screenshot, the antimeridian seems to appear. This is because I (accidentally) set an offset of 5 degrees for x - so in fact it is not the antimeridian. Maybe that's a bug.

To add the antimeridian, use the same approach: create it with geoemtry generator. For a layer in EPSG:3031, use this expression - if the layer is in EPSG:4326, delete lines 1 and 5 to 7:

transform (
    make_line (
        make_point (0,-90),
        make_point (180,0))
    ,
    'epsg:4326',
    'epsg:3031'
)

You can combine both expressions (for parallels and the antimeridian) in one expression using union (expression_1, expression_2). Be aware to keep or delete the transform() function, depending on the layer's CRS. One of the two expressions must have the transform, the other not.

Screenshots, using a layer in EPSG:3031: enter image description here

enter image description here

added 89 characters in body
Source Link
Babel
  • 74.9k
  • 15
  • 87
  • 227

A workaround: use geometry generator to create buffers around the south pole. The distance between Degrees of Latitude is ca. 111 km. Use this value and mulitply it, using array_foreach to create several grid lines at once, here with an interval of 5 degrees (last number in line 3).

Use this expression:

collect_geometries (
    array_foreach(
        generate_series (0,30, 5),
        transform (
            buffer (
                make_point (0,0), 
                111000*@element, 
                200
            ),
            'EPSG:3031', 
            'EPSG:4326'
        )
    )
)

Red lines generated with geometry generator and the expression from above: enter image description here

enter image description here

A workaround: use geometry generator to create buffers around the south pole. The distance between Degrees of Latitude is ca. 111 km. Use this value and mulitply it, using array_foreach to create several grid lines at once, here with an interval of 5 degrees (last number in line 3).

Use this expression:

collect_geometries (
    array_foreach(
        generate_series (0,30, 5),
        transform (
            buffer (
                make_point (0,0), 
                111000*@element, 
                200
            ),
            'EPSG:3031', 
            'EPSG:4326'
        )
    )
)

Red lines generated with geometry generator and the expression from above: enter image description here

A workaround: use geometry generator to create buffers around the south pole. The distance between Degrees of Latitude is ca. 111 km. Use this value and mulitply it, using array_foreach to create several grid lines at once, here with an interval of 5 degrees (last number in line 3).

Use this expression:

collect_geometries (
    array_foreach(
        generate_series (0,30, 5),
        transform (
            buffer (
                make_point (0,0), 
                111000*@element, 
                200
            ),
            'EPSG:3031', 
            'EPSG:4326'
        )
    )
)

Red lines generated with geometry generator and the expression from above: enter image description here

enter image description here

Source Link
Babel
  • 74.9k
  • 15
  • 87
  • 227
Loading