I am trying to amend the default syle of the new OS-Open-Zoomstack so that when water is labeled it curves on line. This would be easy if the label was in the feature but unfortunately it's in a completely different layer for water.

Features are in a layer called "OSOPEN_ZoomStack_v0_3surfacewater" and then "Local". The labels are under "OSOPEN_ZoomStack_v0_3names" then "water".

What I want is the names water feature to use the placement setting Curve, on line and follow the line of the surfacewater local.

I'm not sure if this is possible as there is no easy way to link the 2 layers other than the names water feature is on top of surfacewater local.

This is a bit hard to explain, hopefully a picture makes this easier. I would like the "Crook Beck" label to follow line of the water, but the feature and labels are on separate layers as described above.Example map


There doesn't appear to be a common id between surface water and names so it doesn't look to be possible to do a relation. You could try a join by location and join the label information from the names layer to the surface water features spatially?

  • That's more or less what I was thinking and can probably work out a query in PostGIS to do that, not loaded the data into Postgresql yet just using the GeoPackage file. No idea how I would do it without loading into Postgresql. – user15965 Aug 7 '18 at 12:11
  • Try the "join attributes by location" processing tool in QGIS. By default you'll get a temporary version of your new join layer so worth a go just to test? Geopackage is based on sqlite and sqlite and postgres have very similar syntax so you could run the same query there through the dB manager in QGIS? – Phil Barlow Aug 8 '18 at 9:05

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

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