I am aiming to create a map showing species location records as points. I need to make the points different colours based on land type which is a polygon layer. So I want my species points to be a different colour to represent which land type they occur in. For example, records in farmland = blue, records in forest = green, records in grassland = yellow, etc.

I can count points in the layer etc. based on tools available, but I just want to show them differently based on the different land types on the map. I need a straightforward way to do it and I think this should exist. I can complete by selecting by each land type etc. individually, but with the amount of species involved this seems too onerous.

3 Answers 3


You can create a new field using Field Calculator to fetch the region name from the region layer. Then symbolize the point layer using the new field.


array_to_string(overlay_intersects('district_layer', kommunnamn))

enter image description here

  • 1
    Or even use the expression directly for categorized rendering (in the Value field) instead of creating a field. However, for larger datasets, rendering might become slow.
    – Babel
    Oct 28, 2021 at 8:07
  • Nice, didnt think of that
    – BERA
    Oct 28, 2021 at 8:13

A bit dirty solution using the "Expression String Builder" and the CASE function for your points


The following expression-like can be used:

    WHEN array_to_string(overlay_intersects('poly_test', "type")) = 'Type 1' THEN '#0A97B0'
    WHEN array_to_string(overlay_intersects('poly_test', "type")) = 'Type 2' THEN '#1C7947'
    ELSE '#FFD3E1'

It contains several functions: overlay_intersects() and array_to_string().

Your input/output may look like this:



You will have to spatial join them then add a field and calculate it with the landcover type. You could then export it as a new feature class or keep the join.

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Not the answer you're looking for? Browse other questions tagged or ask your own question.