[Qgis-user] Visualising crossfall in trajectory

Charles Dixon-Paver charles at kartoza.com
Mon Nov 2 08:57:28 PST 2020


I would suggest using an embedded SVG marker, for which you can set data
defined properties for width and height.

I don't think there is a straight line/ block marker, but you can
probably find one somewhere using the resource sharing plugin.

Alternatively, you can make a custom SVG in inkscape and get it "qgis
ready" using the script at
https://github.com/zacharlie/fonts4gis/blob/master/parameterise.py

I have one that's semi-suitable online ready, but with rounded edges, at
https://github.com/zacharlie/svg4qgis/blob/master/svg/TN.svg

Perhaps test with that and see if you have any luck. Otherwise, I can help
make one for you if you have trouble with inkscape or the processing
script, but more information of what you want it to look like would help.

As for your expression, from what I can gather you are looking for a nested
if statement or case expression:

```
CASE
WHEN ("crossfall"<0) THEN "heading"-90
WHEN ("crossfall">0) THEN "heading"+90
ELSE 0 END
```

Or:

```
if("crossfall"<0,"heading"-90,
if("crossfall">0,"heading"+90,0
))
```

This is assuming your fields are using the correct datatypes, although
there are expressions for changing them.

Hope that helps

On Mon, 2 Nov 2020 at 18:27, Roland Spielhofer <rspiel at gmx.net> wrote:

> Hi,
> I have a trajectory of a vehicle (= a list of points including heading,
> crossfall, slope, curvature, radius, ...) and would like to visualise the
> crossfall. Per point there should be a line pointing left or right
> (transverse to driving direction) with the line having a length according
> to the quantity of the crossfall and pointing to left if negative, to right
> if positive.
>
> I have tried font marker - an arrow to visualize heading which works well.
> But with the crossfall I struggle.
>
> The font marker may be not the right joice, as it makes the lines not only
> longer, but also thicker.
> What type of marker would right for this? Should just be a simple line
> that alters in length according to crossfall
>
> How would the expression look like to handle the case crossfall<0 ->
> heading-90; crossfall>0 -> heading+90
>
> Any help appreciated!
> TIA
> Roland
>
> _______________________________________________
> Qgis-user mailing list
> Qgis-user at lists.osgeo.org
> List info: https://lists.osgeo.org/mailman/listinfo/qgis-user
> Unsubscribe: https://lists.osgeo.org/mailman/listinfo/qgis-user
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.osgeo.org/pipermail/qgis-user/attachments/20201102/4922982d/attachment.html>


More information about the Qgis-user mailing list