Streaming is available in most browsers,
and in the WWDC app.
-
Tips for Great Maps
Maps are powerful tools for conveying information. Learn key cartographic principles that will help you create beautiful, useful maps so that your users can get the most out of your apps.
Resources
Related Videos
WWDC 2018
-
Download
Maps are everywhere.
People have been recording information about the world around them as far as we can tell. And we use maps for a wide variety of purposes.
Like finding a new hiking trail or keeping tabs on the progress of our dinner or dessert order.
We can even use maps to orient ourselves in imaginary places, tracking our movement through levels of a game, or a character's position on a fictional battlefield.
Mapping technologies continue to evolve, but the essential characteristics of maps remain the same.
They are abstract representations of real or fictional places, that show features relative to other features in space, and they offer information about the attributes of those features. Maps are tremendously useful and they're really fun to make. One option to consider is MapKit, our native framework. You can see it here in the activity app.
MapKit does a lot of work for you. It integrates cleanly with the rest of our UI.
It contains base map data and satellite imagery for the entire world.
It allows users to pan and zoom, and it looks great. But depending on your data and design requirements, you sometimes need something a bit more custom. So, we'll talk about the process of map creation and review three key tips for making a map shine, which will be relevant regardless of how you're creating your maps.
There's a lot to know about making exceptional maps, but here's an excellent place to start. First, know your audience and what they need.
Second, carefully choose your map elements and leave out the things that aren't necessary. And third, focus on hierarchy so that it's immediately clear what is most important.
Why know your audience? Well, you need to know what your users are trying to do. Because this knowledge will shape every part of your map, from the features you include to your design decisions. And the success of your map really depends on its responsiveness to those user goals.
Keep in mind that you sometimes have more than one group of users with different needs.
For instance, if you're making a navigation map, perhaps you'll have some users traveling by bike, others on transit, and the rest by boat. So, these different modes of transportation will mean that your users are concerned about different things.
Grade matters a lot to cyclists, so they might need contour lines or other indications about topography.
Train passengers are especially likely to want transit stations represented very clearly. And those arriving by boat care much more about dock amenities and bathymetry than others.
Keeping these types of needs in mind helps you make a more useful map.
Let's look at an example. We're going to build a map for a fictional game about my cat. It's is called Pantera's Big Adventure and in it, players travel Pac-Man style around the neighborhood picking up as many catnip mice as they can before it's time to go home for dinner.
We'll build out the game map and use this exercise to illustrate those three tips. This map is a bit unusual for a few reasons. It will also function as a gameboard, it's showing an imaginary place, and perhaps most importantly, it's only going to exist at one scale.
If we were making a map where users could zoom in and out, we'd need to think carefully about how our data and display might change at different zooms. But this is a design studio short, not a design studio long. So, we're going to stick with just one zoom.
However, the principles are going to be the same whether your mapping a cat's escapades through a fictional neighborhood or making a dynamic map of the whole entire world. So, let's get started by thinking about the purpose of this map.
We want to make a game that would be perfect to play for a few minutes on the bus, or while relaxing in a park. And we're going to want to make sure that our map really reflects this.
It should be fun, kind of cartoony, cute and lighthearted, and really simple to understand.
So, let's think about what players will be doing within this game.
It's pretty intuitive, they're going to be moving around the map finding the mice and avoiding the hazards. So, they'll need to see sidewalks, mice, and hazards. Okay, enough talking about maps. Let's get started building it. We're not going to take the time to style it right away and we're going to be iterating on this design throughout. This is going to be a work in progress but we're going to keep the map purpose and the user goals in mind throughout.
So, we'll start with sidewalks because the street is too hot for delicate kitty toes and sometimes the grass is damp.
And then, we'll add the mice, and now those hazards.
Dogs, Pantera is not a fan, as well as fountains, which sometimes unpredictably spray water.
So, these are the essential elements from that list. But we should also include Pantera's house, where she begins each round. Of course, Pantera herself.
And the pet store where she can regain her health. Okay so, this is starting to come together. Remember we're going to restyle later on, but this map looks kind of bare in places, and doesn't give us all the information that we might really want. So, we can all think of elements that we've seen in other maps.
Let's add some of them and then decide whether or not they really belong in this particular map.
We could, for example, include the rest of the building footprints.
Maybe some polygons for those parks.
Perhaps a title.
Possibly even a legend. Lots of maps have a compass rose and a scale bar. Oh, right, and since this map is doubling as a gameboard, we'll need a few other elements too. Like a health indicator, a mouse counter. How can we know if we're successful otherwise. And a timer. This game doesn't last forever.
All right.
But wait. It's easy for maps to get overloaded. And this is a great example of that exact problem. Way too much is happening here. Our map is chaotic and it's not necessarily reflective of our intent, which was to create something that's cute, fun to look at, and easy to understand. And, thinking back to the purpose of this map, we're losing sight of the features that are most important to users, mice, sidewalks, and hazards. So, let's fix this.
It's time to think seriously about leaving things out.
Because when it comes to maps, knowing what to omit is just as important as knowing what to include. We're going to remove some of the elements that aren't really necessary for this particular map.
So, as we know the map exists within our game. So, don't really need a title here though of course we'd want a title on many other maps. Legends are really important for maps with more complicated symbology. But I don't think we need one here. It's pretty straightforward.
The compass rose is demanding a lot of attention.
But this isn't a navigation map and cardinal directions are irrelevant in this game.
And let's lose the scale bar too. We'd want it if we were using the map to plan a trip but were not. Okay. So, take a look over there on the right.
We've removed a lot of noise from the map. And we've ended up with a leaner set of elements. Notice too that we aren't including things like road or park labels. They aren't needed for this map, and they would add a lot of clutter. You can probably think of other map elements that we're leaving out too.
So, this is moving us in the right direction. But our map definitely still need some work.
Let's think about how to modify our display and make sure that we're highlighting what really matters and minimizing what doesn't.
So, to do this, we're going to look back on our list of key elements. Sidewalks, mice, and hazards.
And remind ourselves of the overall vibe that we're aiming for.
Fun, cute, and simple. We'll start with some big changes and then we'll move on to tuning the map. So, first up, our buildings. I like this color of blue, personally. But it's really not working here for two reasons. First many map users associate blue with water, making this neighborhood look like some strange collection of pools. And second, I think the color is distracting here. Remember that the building polygons are really only here to give us some context and fill out the city blocks a bit. This gray is more subdued, and it lets other elements stand out better. But remember, there are those two important buildings. Let's restyle Pantera's house and the pet store too. And for the pet store we'll add a heart that matches the health indicator as a visual cue.
Okay. Now to restyle the parks. They're really prominent right now, but they're not as important as the sidewalks, mice, or hazards.
It makes sense to leave the park polygons green, since this color is often associated with parks. But I'm not satisfied with the shade. It's too dark and that makes it distracting.
Okay, I think this lighter green is a nice change.
White still seems like a good color for the sidewalks. Notice how it's standing out against the dark background. But I think we should bump up the line weight. Yeah, better. Okay. So, the so the base map is more muted now, and that means that we can turn our attention to the symbols and game elements. We need to talk about the photos.
They're cute, but I don't really think that they're the best choice. The colors are kind of distracting and there's a lot of detail.
Remember, maps are an abstracted representation of a place.
We don't have to be literal.
We often use simple symbols in maps. So, let's try a drawing of a mouse instead. I think this is better in line with our fun and simple aesthetic. But now we need to make sure that the other symbols match too. So, we'll switch up our dogs, and now the fountains.
Notice that we lost some detail here. When we were showing the fountains as photos, they were different sizes. But, this is a pretty simple game. So, our fountains don't deal different amounts of damage. We're simplifying the map here by having the symbols match. Also, if we had sized their placement symbols the way we did the photos, the fountain in the larger park would be the biggest symbol on the map, which would suggest that it's way more important than it actually is.
Okay, now to change Pantera from a photo to a symbol. Still pretty cute. So, this map is coming right along. We've moved away from the realism of the photos to some symbols that are easier to perceive at just a glance.
But now, let's tackle those game elements. They're just floating around at the top of the screen where we placed them initially, and I think that's kind of confusing. We don't need to do a lot to restyle them because I think they're looking pretty good already, but let's collect them and make it really clear that they're part of the game UI and not part of the map.
So, first we'll add a shaded bar.
And now we're going to reconfigure our health indicator to fit inside of it.
Nine lives is hard to accommodate, but could a cat game really have a different number? I don't think so, we've got to make it work. Now, we'll adjust the color, position, and size of our timer and our mouse counter. And now, I think we're getting closer.
This map is shaping up to be pretty cute and fun. And it's easy for users to glance at it and see the key features.
But you know I think we can make it even better.
I want to make sure that the symbols are really standing out against the colors of the base map.
Remember, the goal of the game is to collect the mice. So, we can give users a helpful cue by making them a really eye-catching color.
Let's try out an orangey-yellow. So, now they pop a little bit more.
And let's see what else we can do with color here.
I notice that Pantera and the dogs have similar markings on their faces. So, let's color them so that they're more distinct.
Pantera can be purple, like her house.
And let's make the dogs brown. Now the fountains look a little bit out of place. We should color them too. We'll go for blue, they're water after all.
Okay. So, I think we're really getting close. But this isn't quite it yet. I have some concerns about the dogs. We don't want them to actually looks scary, of course. Remember, our game is supposed to be fun and lighthearted. But they almost look too friendly. And we want to make it clear that players need to avoid them.
So, let's try adding some eyebrows. Okay. With the addition of these dog eyebrows, I think we've got something pretty good. Happens all the time. So, let's take a look back at our progress.
On purpose this time. We started here with all the elements we knew we'd need. And some that we weren't sure about. And then we removed some of those extraneous elements to get here.
This is getting clearer, but it's not really done yet.
Then we restyled the elements that we kept and we ended up here.
Notice that the data is very similar. We've changed the way that we've depicted it, but it's a lot of the same information just presented in a different way.
So, thinking back to those initial goals, is this map successful? Is it immediately apparent what matters most? Does it look kind of fun and cute? Do you think players will be able to understand what is where and what it means with just a glance? These are the kinds of questions to ask yourself throughout your design process.
Make sure that you're taking every opportunity to show your map to other people and get their feedback too.
Maybe your friends, family, and colleagues will agree that your map is nailing all those goals. Maybe they'll feel like it's still work in progress. If that's the case, keep iterating until you feel satisfied.
Are you ready to see this map in action? All right. So, I hope this exercise has helped inspire you for the next map that you get to make.
Remember to think carefully about knowing your audience, leaving out the things that they don't really need, and making it clear with visual hierarchy, what matters most.
[ Applause ]
-
Looking for something specific? Enter a topic above and jump straight to the good stuff.
An error occurred when submitting your query. Please check your Internet connection and try again.