Jump to content
Foomandoonian

A couple of missing (?) features for map design

Recommended Posts

I have been attempting to create a city map and there are two specific looks I want to accomplish...

1. I want to be able to create junctions that look like this: (just the green circled bit)

map-junctions.png.ea1ac42a8054ab905b56dc9d21afb2c7.png

Specifically, note how these two road types have different colours and different outer strokes. I was able to achieve the look I wanted by duplicating my lines and putting the black strokes at the bottom with the coloured inner strokes on the top. While this works nicely, it will become a pain to manage large maps and any edits I make will also need to be manually copied and moved again.

I don't know if there's an easy fix. I tried applying a new stroke to an entire group or layer expecting that it would create a new stroke around the outside of all of the strokes within, but instead it overwrote all of the individual stroke settings. I feel like this should have worked as I expected, and while it wouldn't be a clean solution for my needs, it is definitely something that could have helped.

Another option I suppose is to have different classes of strokes editable in the appearance panel. For example, the topmost stroke could be considered the 'inner' stroke, and the bottommost the 'outer'. Then there would be some way to telling AD that a particular group should share the inner or outer stroke properties. I doubt this is very intuitive however.

2. I want my labels to knock out the black outlines, like so... 

map-styles.png.a9555649f6c0b6669d3ac983af1ccd98.png

I'm not sure if that's the right terminology, but you can see in the example how the black outlines on the roads and buildings are removed, but the fill colours remain. This would be accomplished by using either a stroke or a clipping shape. Maybe something like this is already possible?

I know that the map above was probably created using specialist mapping software, but it would be a huge convenience in AD too.

My thinking was that there could be a special 'erase' fill type that accepted parameters, so you could specify that those objects erased only content on specific layers, or in my case, the 'outline' stroke types. 

tl;dr: I'd like to create these specific effects with AD. I have some thoughts on how they could be implemented as features, but I'm very interested in people's ideas for how I could go about accomplishing them now. 

Thanks!

Share this post


Link to post
Share on other sites
30 minutes ago, Foomandoonian said:

I have been attempting to create a city map and there are two specific looks I want to accomplish...

1. I want to be able to create junctions that look like this: (just the green circled bit)

map-junctions.png.ea1ac42a8054ab905b56dc9d21afb2c7.png

Specifically, note how these two road types have different colours and different outer strokes. I was able to achieve the look I wanted by duplicating my lines and putting the black strokes at the bottom with the coloured inner strokes on the top. While this works nicely, it will become a pain to manage large maps and any edits I make will also need to be manually copied and moved again.

I don't know if there's an easy fix. I tried applying a new stroke to an entire group or layer expecting that it would create a new stroke around the outside of all of the strokes within, but instead it overwrote all of the individual stroke settings. I feel like this should have worked as I expected, and while it wouldn't be a clean solution for my needs, it is definitely something that could have helped.

Another option I suppose is to have different classes of strokes editable in the appearance panel. For example, the topmost stroke could be considered the 'inner' stroke, and the bottommost the 'outer'. Then there would be some way to telling AD that a particular group should share the inner or outer stroke properties. I doubt this is very intuitive however.

2. I want my labels to knock out the black outlines, like so... 

map-styles.png.a9555649f6c0b6669d3ac983af1ccd98.png

I'm not sure if that's the right terminology, but you can see in the example how the black outlines on the roads and buildings are removed, but the fill colours remain. This would be accomplished by using either a stroke or a clipping shape. Maybe something like this is already possible?

I know that the map above was probably created using specialist mapping software, but it would be a huge convenience in AD too.

My thinking was that there could be a special 'erase' fill type that accepted parameters, so you could specify that those objects erased only content on specific layers, or in my case, the 'outline' stroke types. 

tl;dr: I'd like to create these specific effects with AD. I have some thoughts on how they could be implemented as features, but I'm very interested in people's ideas for how I could go about accomplishing them now. 

Thanks!

Illustrator has probably the same problem as you can't fill open paths.

Maybe you can group some paths and the end with 0 fill.

 

The second image is possible by using the geometry tool.

Share this post


Link to post
Share on other sites

Thank you telemax. It's a little more fidgety than I want -- ideally I just want one stroke per road -- but I think this is the kind of compromise solution I will have to use.

Share this post


Link to post
Share on other sites

Some experimentation got me this. It’s not perfect but it might help in some way.
The curves were drawn normally, then expanded, given an outline and then Added using the relevant geometry tool (probably something you need to do to a copy of your file at the end of the mapping process).
The rectangle in the group (containing the text) has a “Lighter Colour” blend mode and a slightly different fill colour to the background rectangle.

map-roads.afdesign

map-roads.gif

Share this post


Link to post
Share on other sites

I figured, so I didn't plan to use that technique. Does the erase method actually delete geometry if you export to a basic vector format? (I will experiment, but I'm guessing it probably will.)

Share this post


Link to post
Share on other sites

Fixx: I didn’t think about exporting but I tried exporting to PDF (for print) and it looks like it’s only the white bits that get rasterised (in this very limited context) as you can see in the attached image which is zoomed in to 400%. Maybe that’s good enough for most purposes.

It’s worth pointing out that I have no idea how this will come through to a printing process so that will need to be checked before proper use.
It’s also worth noting that the “slightly lighter colour” I used was picked by eye on an un-calibrated monitor in an ‘un-calibrated workspace’. For professional use this colour should probably be chosen in a more professional manner.

map-roads-export.png

Share this post


Link to post
Share on other sites

Hi Foomandoonian - I have no idea how to create the above effect you want but in case you don't know its easy to produce roads like below using a combination of the Appearance panel and the Merge command. It's still editable but I think it only works for the same appearance.

image.png.bb423c55973c07f1bb6a5c2dd9477c1f.png


Windows 7 Pro, I5 3.3G PC 16G RAM

Share this post


Link to post
Share on other sites

Cheers Mick. Yes indeed, it was my discovery of this and the inclusion of multiple stroke styles per line that got me thinking that maybe the kind of map I wanted to make would be possible.

Thanks for all the tips in this thread everybody! I can definitely accomplish what I want with AD, it'll just take a bit of extra work.

Share this post


Link to post
Share on other sites

You know - you could just clone all your objects, move the clones to the back, apply a black fill and stroke, and it will appear like in your first example.  You will have two set of objects though - but it is not possible to apply a single stroke to a collection of objects in the way you are describing.


SerifLabs team - Affinity Developer
  • Software engineer  -  Photographer  -  Guitarist  -  Philosopher
  • iMac 27" Retina 5K (Late 2015), 4.0GHz i7, AMD Radeon R9 M395
  • MacBook (Early 2015), 1.3GHz Core M, Intel HD 5300
  • iPad Pro 10.5", 256GB

Share this post


Link to post
Share on other sites

I formed this example with two lines, then cloned them, set the stroke colour to black and increased the stroke size to give the illusion of a common stroke.

cloned_with_wider_stroke.jpg

 


SerifLabs team - Affinity Developer
  • Software engineer  -  Photographer  -  Guitarist  -  Philosopher
  • iMac 27" Retina 5K (Late 2015), 4.0GHz i7, AMD Radeon R9 M395
  • MacBook (Early 2015), 1.3GHz Core M, Intel HD 5300
  • iPad Pro 10.5", 256GB

Share this post


Link to post
Share on other sites
38 minutes ago, Ben said:

I formed this example with two lines, then cloned them, set the stroke colour to black and increased the stroke size to give the illusion of a common stroke.

Cheers Ben. This is more or less how I am going to approach it, but it is a bit of a faff because I'm going to be using 4-5 different stroke widths for different road sizes. If I widen my background layer black strokes, suddenly ALL the strokes become the same width. 

I'm going to create my roads with inner and outer strokes as I want, and when I'm done duplicate them and turn off the black outer strokes on the top layers. That should be fairly manageable, if tedious, on big maps.

Share this post


Link to post
Share on other sites

Unfortunately, the functionality you'd need for achieving this is not as straight forward as you'd think.  The knockout effect actually works in the opposite order of the layer drawing. We generally apply effects downwards through the draw stack (layer order) - where as in my example, the red line would need to knock out the black stroke on the yellow line which would need to appear higher in the draw stack.


SerifLabs team - Affinity Developer
  • Software engineer  -  Photographer  -  Guitarist  -  Philosopher
  • iMac 27" Retina 5K (Late 2015), 4.0GHz i7, AMD Radeon R9 M395
  • MacBook (Early 2015), 1.3GHz Core M, Intel HD 5300
  • iPad Pro 10.5", 256GB

Share this post


Link to post
Share on other sites
19 hours ago, Ben said:

you could just clone all your objects, move the clones to the back, apply a black fill and stroke

Yes Ben, that is the way it has been done for 30 years. Still works well, but editability would be better if objects would have more intelligence.

Share this post


Link to post
Share on other sites

It's probably always been done like that because defining the rules for how this behaviour would work in terms of the UI and the back-end logic are both very involved.


SerifLabs team - Affinity Developer
  • Software engineer  -  Photographer  -  Guitarist  -  Philosopher
  • iMac 27" Retina 5K (Late 2015), 4.0GHz i7, AMD Radeon R9 M395
  • MacBook (Early 2015), 1.3GHz Core M, Intel HD 5300
  • iPad Pro 10.5", 256GB

Share this post


Link to post
Share on other sites
20 hours ago, Ben said:

Unfortunately, the functionality you'd need for achieving this is not as straight forward as you'd think.

Consider allowing an option for selected shapes to have stroke opacity, width and color, along with fill opacity and color applied to either individual nodes or to the segments between nodes.  Applying to individual nodes would result in gradients and graduated line widths, while applying to segments would usually give hard cutoffs where they differ (as would be needed for the fill here, for example).

Instead of the roads in this example being two shapes, they would be merged into one shape/curve and have the different properties applied to different parts of the shape.

This may not work very well for pattern fills (for example), so there would either need to be two "modes" for a shape to be in (existing behavior or the per-node styling) or there would need to be some level of interaction between the two (maybe the per-node styling happens first then the current appearance settings get layered over top of that, with shapes being newly created with all nodes unstyled / fully transparent)?

Obviously not a 1.7.x type of feature, but something that would open up a lot of possibilities, and for more than just maps...

Share this post


Link to post
Share on other sites
4 hours ago, fde101 said:

Instead of the roads in this example being two shapes, they would be merged into one shape/curve and have the different properties applied to different parts of the shape..

This is very much what I hoped already existed. 

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now

×

Important Information

These are the Terms of Use you will be asked to agree to if you join the forum. | Privacy Policy | Guidelines | We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue.