Pretty similar to @Erik's answer, but will also work with older versions of QGIS:
Run Raster pixels to points on your raster:
Run Snap geometries to layer:
Choose your original points as input
Choose your just created pixel points as reference layer
Choose a suiting tolerance
As Behavior choose Prefer closest point, don't insert new vertices
Delete the ...
I suggest you run pixels to points, which will give you the point grid centered to you raster cells and should attach the raster values to the points. If you need some information attached to your existing points, you could run join by nearest to join the existing attributes to your new grid.
Answering your follow-up request:
Probably better to use Labels with Callouts instead.
A generic How-To:
Switch to No Symbols in the Symbology tab
Switch to Single Labels in the Label tab
Set Opacity to 0 in the Text tab
Activate Draw Background in the Background tab
Switch to SVG in the Shape selector
Link to your SVG
Adjust further settings as needed
The issue you are facing is geometric validity: the resulting Polygon geometry of an ST_MakeEnvelope of a Point (i.e. when used with the same coordinates) is invalid, and all relationship functions then short circuit to false.
ST_Extent returns a bounding box (BOX3D data type), for which these functions resolve in simple min-max comparisons without geometric ...
This can be achieved using a virtual layer.
Go the the menu layer / add layer / add-edit virtual layer and enter the following query. You would have to change the layer name and field name(s) to suit your needs.
The output is a dynamic layer, which you can then export (Shapefile or else).
FROM points p
JOIN lineLyaer l ON ST_INTERSECTS(l....
If you would like to try a pyqgis solution in the Python console, you can use the script below.
First, paste the code block into a blank editor in the Python console. Next you will need to edit 2 lines in the script to match your point layer name and a file path pointing to your raster layer *keeping the double backslashes (I have commented the code to show ...
The easy way will be to transform your icon as label. It would be easy and stronger because it let you define blocking rules for your "icon as label" not overlap the road.
The second proposal in this question might help you to do so.
The draw back is that there will be less styling option and no possibility to have start flag or play ...
Join by Nearest with Point layer as layer 1 and line as layer 2 to get coordinates of the points and distance and coordinates of the line.
Then field calculate a new field with formula:
when "feature_x"<"nearest_x" then "distance"
You can use Menu Processing / Toolbox / Join attributes by nearest. It will create a new layer joined layer - a copy of Y, but if you set Maximum nearest neighbors to 2, you will get two duplicate features with the attributes from both points from X. You also get an attribute for the distance. You can now copy the attributes from line 2 to line 1.
To add the ...
See this link, and this link for information on how to make graduated symbols using QGIS 3.x.
You could use multiple graduated symbols using your two attributes or you could add the layer twice to the project and use graduated size symbols for the tree canopy diameters. Then use colors to symbolize trunk girth.
Your two maps (main and inset map) in the layout probably are at different scales. You can use this to set label visibility to scale-dependent. However, in the main map, you want some labels to show up, others not. For this, add a condition based on an attribute you create that differentiates between labels to be be shown and others not.
Let's consider the ...
You can edit two point layer one containing SVG maker positions and the other containing points on the line (danger points).
Points that you want connect each other must have an attribute with the same name, in the example both the feature have an attribute named 'desc'
after you have to duplicate marker point layer and set the simbol as Geometry ...