Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Render waterway=canal thinner #3354

Open
ghost opened this issue Aug 20, 2018 · 54 comments
Open

Render waterway=canal thinner #3354

ghost opened this issue Aug 20, 2018 · 54 comments

Comments

@ghost
Copy link

ghost commented Aug 20, 2018

Please render waterway=canal thinner. The current rendering looks very strange for small irrigation canals and seems to lead people to wrongly tag them as waterway=ditch, waterway=drain (which are both used for carrying superfluous water) or waterway=stream.

Example of a 1 m wide canal (location) which is rendered ca 5 m wide at zoom 18:

untitled

See: key:waterway on the wiki the this email from the tagging mailing list (full discussion).

@kocio-pl kocio-pl added the water label Aug 20, 2018
@kocio-pl kocio-pl added this to the Bugs and improvements milestone Aug 20, 2018
@kocio-pl
Copy link
Collaborator

Maybe there's a way to show how big (wide) are they without measuring them? I would probably render these with boat/motorboat/ship=yes and name as currently, but by default show them the same as ditch, drain or stream:

https://taginfo.openstreetmap.org/tags/waterway=canal#combinations

Upsides:

  • this would probably not change rendering of big, named canals (unless the name is in relation probably)
  • this would encourage people to add more data when possible
  • it's quite simple

Maybe we could also decide using width=* tag.

What do you think about it?

@eehpcm
Copy link

eehpcm commented Aug 20, 2018

Maybe we could also decide using width=* tag.

That's one way. The other is to map an area with natural=water + water=canal in addition to the linear canal feature, as detailed here. I've tried both, neither currently have any effect.

The effect is particularly weird at lower zooms. I have a mill pond with mill race tagged as a canal using water=canal as an area. At z=19 it looks OK. Zoom out a little and the mill race balloons up until it's almost as big as the mill pond. It did the same thing before I tried water=canal, when I used width=0.5 and width=1 (the latter just in case it was rejecting non-integer values).

It would be nice if the carto handled both ways of dealing with a narrow canal, but if you're only going to implement one then please update the wiki to reflect that fact (update the wiki even before you actually implement it to reduce the number of canals added before implementation that later have to be re-tagged).

@polarbearing
Copy link
Contributor

Ways can be exaggerated on a map. Highways are, and probably most canals being built as waterways for ships should continue to be shown appropriately.

I did not have the time to follow the related tagging discussion, but that should be addressed on the tagging side.

@javiersanp
Copy link

But different highways are exaggerated differently on the map. You don't consider to render highway=track with the same width as highway=primary, isn't it? What we are talking is about to refine the waterways rendering according to it's width. Some ways has been suggested: key width, boat=yes/no or maybe we need to create a new waterway value for small channels, but this is an improvement that you mustn't reject so quickly.

@ghost
Copy link
Author

ghost commented Aug 21, 2018

@polarbearing:

Ways can be exaggerated on a map. Highways are, and probably most canals being built as waterways for ships should continue to be shown appropriately.

In water-rich regions it is probably true that most canals are used for shipping, but I doubt that this is also the case worldwide.

I did not have the time to follow the related tagging discussion, but that should be addressed on the tagging side.

What can we do, in your opinion, other than tagging the width?

@polarbearing
Copy link
Contributor

Probably use either a different value than canal, or use a second level tag to allow distinguishing by purpose. For example, highway=service has serveral subtags that classify it as minor, such as service=driveway, =parking_aisle or =alley.
E.g. canal=irrigation.
What was the summary from the tagging list?

@dieterdreist
Copy link

dieterdreist commented Aug 21, 2018 via email

@eehpcm
Copy link

eehpcm commented Aug 21, 2018

it is evident the tags for classifying waterways are scarce and the main classes leave definition gaps for artificial waterways which aren’t used for drainage or transportation.

A second-level tag would work, analogous to having service roads be driveways, parking aisles, etc. but I think that way is sub-optimal for reasons explained later.

What we already have for rivers and (according to the waterway=canal wiki page canals are two methods: specify a width or map the actual channel using an area tagged as natural=water + water=canal. The second of those is superior for rivers because you just map an area from the aerial imagery rather than trying to estimate a width at many points along a channel (I've used it to flesh out the downstream portion of a wide river and it's easy and works well). The first method is superior for canals as they usually have a (fairly) constant width. I tried the second method for a mill race because the first method didn't work, but neither does the second.

I'm speculating that what is going wrong here is that the renderer has decided that rivers and canals, like roads, should be exaggerated at low zooms so they're still visible. It may even be the case that the renderer honours the use of width=* or water=canal but thinks that canals should be exaggerated like rivers rather than like streams: the exaggeration it chooses at low zooms is inappropriate for "narrow canals" such as mill races.

Possible solutions:

  1. New tag, such as narrow_canal. I'm not happy with this as it goes against English usage (they're all just canals) and we'd end up with more new tags for different sizes of canal (how else do you deal with the Panama Canal?). Not to mention the Wee Free Men (thanks Pterry) naming conventions likely to arise like bigger_than_a_wee_canal_but_not_as_big_as_a_big_canal.

  2. Second-level tags: canal=ordinary, canal=panama_size, canal=mill_race, etc. Again a proliferation, which means more code and more work for the renderer. But it's better to have a proliferation of values than a proliferation of keys. So canal=bigger_than_a_wee_canal_but_not_as_big_as_a_big_canal can be considered a slight improvement.

  3. Use width=. Looks pretty good to me. Except for the Panama Canal, so you probably still need the waterway=canal area stuff. I.e., do what we do for rivers but be a little more intelligent about the exaggeration at low zooms if width= or waterway=canal are specified.

Of course, I could be wrong about all of the above. All things are simple when you don't understand them.

@polarbearing
Copy link
Contributor

@eehpcm - no need to make your posts longer by repeating the examples, they are still visible above.

width=* is not considered in the code.

The waterway as a line is used for routing, and I still find it appropriate to see regular canals at lower zoom levels. For the big cases, natural=water should work fine. So you just need one tag for the minor cases, e.g. canal=minor.

@dieterdreist
Copy link

dieterdreist commented Aug 21, 2018 via email

@eehpcm
Copy link

eehpcm commented Aug 21, 2018

@polarbearing

width=* is not considered in the code.

That is useful to know. Should the wiki be amended to say that standard OSM rendering doesn't (or doesn't currently) consider width=* for canals (and rivers?). I'm happy to make such a change if that is the case. No point in people using tags that have no function.

I still find it appropriate to see regular canals at lower zoom levels.

I agree. The exaggeration is fine there.

So you just need one tag for the minor cases, e.g. canal=minor.

That would work for me. Especially if it didn't vanish at lower zooms, just rendered like a ditch or drain.

@dieterdreist
Copy link

dieterdreist commented Aug 21, 2018 via email

@eehpcm
Copy link

eehpcm commented Aug 21, 2018

@dieterdreist

Still we would remain with a tag called "drain" used to describe the opposite of the natural meaning of the word, not quite intuitive.

The opposite? I wouldn't go that far. In ordinary English a drain is something water goes down, into some sort of water network. It appears that in mapping usage, a drain is a fancy ditch (has a concrete lining or something like that), since Ordnance Survey maps make that distinction.

Technical usage is often different from ordinary English. Which is at odds with OSM trying to use words in their natural meaning. I think that's one we just have to live with. And drifting far off-topic for this forum.

@eehpcm
Copy link

eehpcm commented Aug 21, 2018

@polarbearing

I would not discourage people from entering useful information.

Me neither. A lot of stuff gets mapped that isn't rendered on the standard map. It may get rendered elsewhere (the heritage stuff gets used on the historic place map), or may get rendered at some future date if vector mapping allows higher zooms. So I wouldn't say don't use it.

Everybody can use the width, if the standard style doesn't (or mapnik wouldn't have allowed it for a long time) it doesn't mean others can't do it.

I was thinking more along the lines of a note saying it may not be rendered on by all carto styles/renderers. Otherwise people wonder why it's not doing anything and start asking questions.

@dieterdreist
Copy link

dieterdreist commented Aug 21, 2018 via email

@ghost
Copy link
Author

ghost commented Aug 21, 2018

@polarbearing wrote:

Probably use either a different value than canal, or use a second level tag to allow distinguishing by purpose. For example, highway=service has serveral subtags that classify it as minor, such as service=driveway, =parking_aisle or =alley.
E.g. canal=irrigation.

There's already usage=* for this, e.g. usage=irrigation or usage=headrace. However the width of irrigation canals differs a lot, so this key doesn't help much for rendering.

What was the summary from the tagging list?

The summary is that – according to the definitions on the wiki – waterway=canal is the right tag for irrigation canals of any size, but that due to the thick rendering on openstreetmap-carto some mappers use waterway=ditch or waterway=drain for smaller (irrigation) canals, although waterway=ditch and waterway=drain are defined as artificial waterways 'used for carrying superfluous water'.

Besides, i had the impression that a new tag for narrow canals won't find a majority because the distinction to waterway=canal would be arbitrary.

Therefore, i think that a rendering based on width=* would make most sense. Or, if this technically isn't feasible or if it would slow down rendering too much, i suggest to reduce the width and to map large canals as natural=water + water=canal areas (which might already be the case for many of the wider canals).

@javiersanp
Copy link

I would vote for any schema that solve this question including using width. But note that altohugh most of this small irrigation canals have a regular width, it could not always be determined easily. Also I think it needs more work to be implemented.

As well as the distinction between waterway=river and waterway=stream is "that can be jumped across by a fit adult", I would like a distinction between wide and thin canals, either in form of a new key or a new value for the key canal. For me canal=levada could be fine.

@kocio-pl
Copy link
Collaborator

Is there anybody ready to make and test PR for resolving this?

@jragusa
Copy link
Contributor

jragusa commented Feb 4, 2019

For the record, there is a discussion dealing about the difference between drain and ditch. It seems there is no consensus about their respective definition.

@Adamant36
Copy link
Contributor

If canals are going to be rendered thinner, it shouldn't be by much. As it is the definition of a stream is something someone can jump over and canal's are wider then that. If they are rendered much thinner they will be the same width as streams. Which doesn't work. It should be so people can tell apart IMHO.

As an off-topic aside, I'd like to see canals start rendering at z11 instead of z12. Some of them are major landscape features that are comparable in width to rivers.

@eehpcm
Copy link

eehpcm commented Feb 5, 2019

@Adamant36

If canals are going to be rendered thinner, it shouldn't be by much.

If the canal is unqualified by a width or a bank, I'd perhaps agree with you. The wiki says that either of those can be used to define how the canal renders. Another case where the documentation anticipated a change to carto.

As it is the definition of a stream is something someone can jump over and canal's are wider then that.

That assertion is incorrect. There are many types of canal. Navigation canals (with longboats). Irrigation canals. And mill races. I've mapped a mill race. It looks sort of OK at z=19. It looks stupidly large at z=18. And at z=17 it's ridiculously over-sized, almost as large as the mill pond that feeds it. As per the wiki, I tried specifying a width, which didn't help. As per the wiki I tried giving it a bank, which didn't help.

So far I've resisted the very strong urge to tag for the renderer and tag it as a ditch or drain because this thread offered the hope that carto would eventually do the right thing. But, as so often seems to be the case, there is reluctance to make a change that would avoid the need to tag for the renderer to avoid the map looking very silly.

Carto has every right to stick to some notion of essential purity of mapping whereby canals are all the same width. Some mappers will respond by mistagging in order to get sensible rendering. Either carto can render what people want to map or some people will map whatever renders sensibly, however mistagged that will be. Or perhaps carto can arrange for every canal in the world, whatever the type, to be widened to match what they insist on rendering.

@Adamant36
Copy link
Contributor

"If the canal is unqualified by a width or a bank, I'd perhaps agree with you."

In general id say in abesense of rendering based on width you would render them on 1. a sort of mean of the general size of the three types of canals you listed. 2. in relation to how other waterways are rendered. In this case streams are rendered extreamly thin and rivers are rendered extreamly wide. So canals would be rendered somewhere between that. Or you can't tell them apart otherwise.

Looking at pictures of mill races they are still wider then streams. Although not as wide as boat canals. But just because your example doesn't look right next a mill doesn't really matter per say, because the style isn't suppose to be a 1/1 recreation of real life and a lot of things aren't rendered based on reality. For instance roads. Ways in particular have that problem.

If rendering of canals was changed based on the size of mill races, which would then make the other two types of canals that are wider look less "realistic," that wouldn't be any better then tagging for the renderer. Your essentially doing the same thing that makes it a problem, except through a backdoor of modifying the cartostyle to do it. There's always water areas as option instead. Personally, I'm not against canals being thinner, but it just has to not come at the price of being able to tell them from streams (although where I map in America canals are usually major features, that are extremely wide, and that people drown in all the time. So my prefrence would be to render them on the thicker side).

Is there a canal type tag? If so another option might be to render the width based on that. Then mill races could be rendered thinner then the other types without the need for width rendering (which I don't think is a good metric to render on).

@dieterdreist
Copy link

dieterdreist commented Feb 5, 2019 via email

@kocio-pl
Copy link
Collaborator

kocio-pl commented Feb 5, 2019

Some data to look at ( https://taginfo.openstreetmap.org/tags/waterway=canal#combinations ):

  • 24 826 7.33% boat=*
  • 14 439 4.27% width=*
  • 13 843 4.09% boat=yes
  • 11 425 3.38% motorboat=*

We could also go with medium canal line width, because when the canal is big, it should have some something similar to waterway=riverbank maybe?

@eehpcm
Copy link

eehpcm commented Feb 5, 2019

@Adamant36

If rendering of canals was changed based on the size of mill races, which would then make the other two types of canals that are wider look less "realistic," that wouldn't be any better then tagging for the renderer.

Indeed. Here's the problem. They're all canals. One size doesn't fit all.

With the benefit of hindsight we might have come up with a better tagging scheme. We didn't. So
the options are:

  1. Force everything into a standard size. No matter how it looks on the map. No matter how misleading the impression it gives to a data consumer. It's a canal.

  2. Come up with lots of different tags like mini-canal, big-canal, etc., so that they can be rendered at different sizes. Then force everyone to change all existing usage other than those that happen to match whatever we decide is the default.

  3. Allow people to specify a width and render accordingly, using a default width if none is specified.

the style isn't suppose to be a 1/1 recreation of real life and a lot of things aren't rendered based on reality.

I'm not asking for 1:1. I'm asking for "not embarrassingly stupid." If I'm talking to somebody about OSM and show them some of the stuff I've mapped, I never show them that mill race because it looks stupidly wrong at any zoom and really, embarrassingly stupidly wrong at lower zooms. This is the sort of detail that, if shown to somebody as an example of what OSM can do, would convince them that OSM is absolutely useless.

Then mill races could be rendered thinner then the other types without the need for width rendering (which I don't think is a good metric to render on).

I think anything other than width is a bad way of doing it. Because then it's a judgement call along the lines of stream or river, which comes down to how far you can jump (another really bad metric). Canals, being artificial channels, have a width that is usually constant (they're made no wider than they have to be and no thinner than they must be). Using banks to specify a curved canal of constant width is twice as much work as mapping the centreline and specifying a width. A width is more generic than a type. It adapts to types of canal we haven't considered, or have created a tag for but it isn't handled by the carto. All you achieve with new tags for different widths of canal is encourage yet more tagging for the renderer whenever somebody has a canal type that hasn't been covered.

Forcing every canal to a single size doesn't work. It's like having a single width of highway for everything from minor roads to motorways/freeways/autobahns. Except roads are classified according to national standards and canals are sized to purpose.

@imagico
Copy link
Collaborator

imagico commented Feb 5, 2019

Based on the current meaning of waterway=canal rendering it wider than stream/ditch/drain and less wide than river is a fairly reasonable idea. Indicating the difference between artificial and natural waterways in rendering would also be a good idea.

Rendering line features based on tagged width was in general rejected some time ago here (#1853) due to the code complexity this requires.

The established tagging for canal 'riverbank' polygons is natural=water + water=canal (14k uses) - though unfortunately of course plain natural=water is also common.

@eehpcm
Copy link

eehpcm commented Feb 5, 2019

@imagico

Based on the current meaning of waterway=canal rendering it wider than stream/ditch/drain and less wide than river is a fairly reasonable idea.

For some values of "canal." The ones that are wider than a stream and less wide than a river (both flexible limits in themselves).

The established tagging for canal 'riverbank' polygons is natural=water + water=canal (14k uses)

Tried that. It didn't work. Possibly it works for canals wider than the rendering that would apply without the polygon but it doesn't work for ones that are narrower. At least not for z=18 and lower.

@ghost
Copy link
Author

ghost commented Feb 5, 2019

If rendering based on width=* is too complex, i suggest to display waterway=canal thinner if usage≠transportation|transmission.

While it is possible to map a canal wider than waterway=canal by mapping a natural=water + water=canal area, there is no possibility to render it narrower.

@kocio-pl
Copy link
Collaborator

kocio-pl commented Feb 6, 2019

Width is dead in the water.

...Or maybe it's just being born?

If we make people aware of it, they might start adding this property more often. Width makes more sense for canals (man made structures) than for rivers (their width can vary a lot) for example.

@bhousel
Copy link

bhousel commented Feb 6, 2019

Please render waterway=canal thinner. The current rendering looks very strange for small irrigation canals and seems to lead people to wrongly tag them as waterway=ditch, waterway=drain (which are both used for carrying superfluous water) or waterway=stream.

Can we just invent waterway=sluice for these tiny canal-like things (mill races etc) that are too narrow for boats.
https://en.wikipedia.org/wiki/Sluice

@eehpcm
Copy link

eehpcm commented Feb 6, 2019

@eehpcm

I'll leave it that way for a few days so people here can take a look. Try it at all zooms.

Not very sensible. Relies on people's memory. If they can be bothered to look. Better to capture comparison images and post them here. Which is what I'll do.

Z19:

z19a
z19b

Z18:

z18a
z18b

Z17:

z17a
z17b

Z16:

z16a
z16b

Z15:

z15a
z15b

@ghost
Copy link
Author

ghost commented Feb 6, 2019

Can we just invent waterway=sluice for these tiny canal-like things (mill races etc) that are too narrow for boats.

Or maybe waterway=mill_race?

@bhousel
Copy link

bhousel commented Feb 6, 2019

Can we just invent waterway=sluice for these tiny canal-like things (mill races etc) that are too narrow for boats.

Or maybe waterway=mill_race?

"sluice" is a bit more generic... (all millraces are sluices, but not all sluices are millraces).

@ghost
Copy link
Author

ghost commented Feb 6, 2019

"sluice" is a bit more generic... (all millraces are sluices, but not all sluices are millraces).

I have to admit that i didn't know this word before. It's just that after reading the Wikipedia article i had the impression that sluice might be too generic (and too technical). If the term is also used for larger canals controlled by gates, like at hydroelectric power stations, waterway=sluice wouldn't help for differentiating their approximate size on the map.

@jeisenbe
Copy link
Collaborator

@imagico, there's been quite a bit of discussion above. What is your thought on the easy way to fix this?

Is it reasonable to try using a width=* cut-off (say less than 3 meters) to define narrow canals which should be rendered later and thinner?

Can we also use the presence of boat= or ship= for wide navigational canals which could be rendered a zoom level or two sooner?

@Adamant36
Copy link
Contributor

Hopefully canals without a width tag are still going to be rendered the same. I've been mapping a lot agricultural canals in northern California and it really helps to have them rendered thicker then streams and at a different zoom level. Some of them are kind of important landmarks and major parts of the landscape. Even if they don't have boats passing through them.

@jeisenbe
Copy link
Collaborator

jeisenbe commented May 28, 2019 via email

@imagico
Copy link
Collaborator

imagico commented May 28, 2019

The good first issue task coming from this would be simply to choose an overall smaller line width for canals. Anything else would not be a good beginner task any more.

Independent from that using any supplemental tag as a makeshift importance tag would be a big no-no for me - especially since none of these tags is in particularly widespread use. Using width tagging in a sensible way would require ground unit rendering which we have decided in the past not to use (but we could revisit that decision of course). That would be technically highly advanced of course.

In general the line width styling for waterways in this style could use re-evaluation. I did this in the ac-style before but this goes in a very different direction now than here (i for example start streams at z12 while here they now start at z14).

@Adamant36
Copy link
Contributor

Using width tagging in a sensible way would require ground unit rendering

What's ground unit rendering? It sounds complex.

@imagico
Copy link
Collaborator

imagico commented May 28, 2019

Ground unit rendering means rendering features in a numerically specified size (either via tag like width=* or calculated in some way) that actually represents a certain size on the ground (and not in Mercator meters as it would be if you just normalize a size value with !pixel_width!). Since CartoCSS and Mapnik have no native support for this, it requires relatively elaborate SQL code.

@jeisenbe
Copy link
Collaborator

I wasn't thinking of trying to match the rendering of waterways to their actual width at any particular zoom level or latitude. The idea is that the only difference between a waterway=river and a waterway=stream is that "a stream can be jumped across by an active, able-bodied person".

Translating this to <3 m, we could use the existing width tag to categorize waterway=canal into stream=size canals (width < 3m) and river-size canals (width > 3m), and render the thin ones with a similar width to streams, and perhaps similar to waterway=ditch.

I also think it's useful for the rendering to show if a waterway=canal is small enough that it can be jumped. If not, it's a hard barrier to travel by foot, unless you want to swim across. And a canal of this size isn't navigable by boat.

While in my dialect of American English it's perfectly acceptable to have an "irrigation ditch" (we had one right behind our house, which was actually about 3 meters wide), most OSM mappers do not think that waterway=ditch should be used for irrigation waterways, so the narrow ones need to be mapped as waterway=canal but distinguished from the wider canals used for navigation or transporting large amounts of water long distances, and width=* is fairly effective for this purpose.

@jeisenbe
Copy link
Collaborator

Re: Ground unit rendering - I don't think this is necessary for this style at the current zoom levels.

I do think it could be reasonable to adjust some of the features at z18 and z19 that are currently rendered thinner than they should, even at the equator. While the code for ground unit rendering is complex, it's easy enough to adjust the pixel width of features to match their mercator meters at the equator. I think @sommerluk was recently working on this for z20 highways, but z19 and z18 need work.

( If someone wanted to propose a "real-size" rendering at z20 or z21, that might be reasonable, since at such high zoom levels many features would be taking up a large portion of the screen, but this might not be the right style to try it first)

@imagico
Copy link
Collaborator

imagico commented May 28, 2019

Ok, lets leave ground unit rendering out of the discussion here - there are good reasons for using this but there are also specific problems with that for waterways and none of these things has anything to do specifically with canals.

The line width in which waterways are rendered right now in this style has nothing to do with their physical width. It is an abstract line width indicating a certain class of waterways. As i see it using the width tag to determine the line width but not as a physical width but as a secondary classification would communicate to mappers that the width tag is not a tag indicating the physical width of the waterway but an importance tag. It would not provide useful feedback on correct use of the tag and it could lead to the use of width=* on waterways degrading to the same kind of arbitrary choice based on subjective preference of the mapper like the distinction between river and stream. In most parts of the world mappers draw the line between river and stream in a way that is very different from the nominal definition of these tags.

Anyway - i think the idea of re-casting the classification of artificial waterways in rendering from the current

  • Class A: waterway=canal
  • Class B: waterway=ditch or waterway=drain

to

  • Class A: waterway=canal + width>3
  • Class B: waterway=canal + width<3 or waterway=ditch or waterway=drain

or to a system of more than two classes (you have not said how you want to treat canals without a width tag) should probably be a separate question. Depending on the system of classification you might or might not solve the problem of this issue but in any case the implications of this go far beyond the scope of the problems discussed here.

Regarding the data - there are about 16k of 350k waterway=canal with a width tag of which about 6000 would probably parse as <=3m. 2m and 3m are the most common values and in the distribution the only clear feature is a minimum between 5 and 10m.

@RicozOSM
Copy link

Just created #3795 - consider "width" when rendering waterways.

@gpsvisualizer
Copy link

I know I'm personally guilty of using waterway=ditch, but it's only because of the big fat river-like rendering of canals. It's horrible.

So how about this very simple solution: render it thinner if it's specifically tagged with usage=irrigation or canal=irrigation. Then the narrower rendering wouldn't affect the big navigable canals.

@richlv
Copy link
Contributor

richlv commented Apr 8, 2020

Should this lose "good first issue", given how it's not clear what should be done here?
Although I like @gpsvisualizer's latest suggestion to latch onto canal=irrigation because of its simplicity.

@jeisenbe
Copy link
Collaborator

jeisenbe commented Apr 8, 2020

"The good first issue task coming from this would be simply to choose an overall smaller line width for canals. Anything else would not be a good beginner task any more." #3354 (comment)

Rendering canal lines about 1/2 or 2/3rd the width of rivers would be worth trying.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

No branches or pull requests