Friday, September 30, 2011

Weasley Clock as Tube Map?

This post is about how we can improve on a normal map to show the members of a work team where everyone is in real time.

Introduction: One of the most fun of the magical items in the Harry Potter world is the Weasley clock .


It shows the general location of all family members with a hand for each family member  (the photo above shows a mock up with not enough hands).  Various hackers have had fun building real non-magical versions.

Whereabouts Clock: Back in 2006 the basic idea was taken by Microsoft and developed to an actual device which showed location of workers in their team to each other.  It proved popular with the team who liked being able to see where people were at a glance and found it useful to see who was in the building.  Key characterstics:
  • It was an actual physical device and was always on
  • It used a weasley clock analogy with people's icons moving between 'home', 'in the building' and 'out'
  • Worked off SMS checkins
  • Only available for the work group, e.g. could not be shared with family groupings.
Google+ and Latitude:  This post from the 'about Foursquare' blog notes that the Google+ circles idea and Google latitude checkins is a powerful way to share 'where am I' information without running into privacy issues.  E.g. it allows me to checkin to a supermarket so that my girlfriend knows I'm doing some shopping whilst not telling my boss because it's during work hours.

The Whereabouts Clock appears to have never been developed beyond the original concept.  Recent developments in Google+, Latitude and mobile devices leads me to think it's a concept that is worth revisiting.  In the rest of this post I'll look at the problem purely from the visualisation and usability angles and produce a mock up of the main interface for a smart phone app.  There would be a lot of work necessary on the technical side to make my ideas work but having a workable visualisation system is the core problem IMHO.



Work Journey Tube map:  My solution is to suggest a single train or tube line map analogy for displaying the information.  I've actually taken the background of the screenshot from a train journey planner app I have on my iPhone.  This design comes from the idea that for a work team the key information is knowing where a person is on the usual home to work route*.  In the UI sketch above, what were the train stations have been replaced with specific locations (Home desk, Office desk) but also with general areas (on campus, in transit.  Strictly 'in transit' isn't an area but it is really:  The space I move through to get from home to University Campus).

Description: Team members are represented by colored blobs, their smart phones are tracking their position and converting that into general information for the visualisation, the arrows represent direction of movement of each team member.  Jim is at his desk and his smart phone (or login from desk computer) predicts he is not moving at the moment.  Dave is on campus and has just reached the Shackleton building and is coming in.  Meanwhile I (Rich) have just got off the bus and am on campus heading to the Shackleton building.  Sam is somewhere else than his work route in the UK.

By clicking 'Rich' the screen displays my estimated time of arrival at various locations (blue text), shows my annotation saying what I am doing (yellow box left) and grays out the stations I've come through

Key Information and Outward links: The visualisation offers key information on one screen, users would have no interest in where I am in Hampshire on my normal train journey, they just want to know I'm on the train headed to work.   However, they are interested in fine grained data such as am I at my desk or elsewhere in the Shackleton building.  Other information such as where I am on campus if not in the Shackleton building can be accessed by clicking on the map button bottom left which will link to a standard latitude map visualisation.  The calendar icon (bottom) links to the team calendar since the ability to schedule a meeting will often be wanted if a team member is not immediately available.

But is it a Map?  I would argue that it is because it is showing locational information.  It just happens to do it in a highly stylised manner. Like the tube map it warps real space as a way to improve clarity in terms of line length, however, it goes one step further as it takes polygons of a large variety of sizes and represents them as one 'station'.  On the tube map this would be the equivalent of grouping together  a number of stations and representing them as one.

Provisos:  I think the idea will appear in some form or the other in the future but there are a number of conditions that need to be met some of which I discuss below:

  • Mobile Devices:  Obviously the system needs data input from smart devices so the whole team will need them.  The data input could be from check ins or from passive tracking.  I think there is every reason to expect the vast majority of people to have smart phones in the next few years.
  • Can I track you?:  As with many social network technologies, this one requires a critical mass of people to be using it for it to really take off.  To start using it people would have to be happy with people tracking them.  At the moment I think most people would have reservations but just as 'I don't want to be contactable all the time' was a common moan about mobile (cell) phones when they became common in the 90's I suspect over time people will come to accept broadcasting their location provided they have control over the data.  Google+ circles provides just the sort of system.
  • Model: If the system incorrectly predicted my movements you can imagine that users would soon abandon it, the model that predicts my movements needs to be smarter than just calculating that I am travelling towards my work desk therefore I am likely to end up to it as I may just happen to be walking from meeting to meeting and heading in a general deskward direction.  The model therefore needs a certain sophistication and it could be a complex problem to solve.  It could be mostly solved by tracking people for a month and using a combination of calendars and previous journey data to predict movements.
And Finally: One aspect of the Weasley clock was not a location at all, it was  'mortal peril'.  I doubt that could be incorporated on my map anytime soon.  

*This assumes that as in my work place, people work from home a lot.

Friday, September 23, 2011

My New Course in Web Maps

I'm part of a scheme producing a suite of innovative new courses at Southampton University.  This is a promotional clip that explains what it's about:



Although I gave them a Google Earth tour clip to use and I talk about Google Earth the course covers web maps far more than virtual globes.

Thursday, September 22, 2011

Point Clustering Usability Example


Intro: A number of times before (1, 2) I’ve discussed point clustering maps. I thought it would be useful to present an actual case study of a mobile app* that makes use of clustering to explain why I think the technique has problems from a usability point of view.  

Herd of Sheep Problem: Clustering maps have appeared as a solution to an old cartographic problem: If you have too many points on screen they overlap each other producing a map that looks like a herd of sheep has wandered over it (particularly if you use white markers as below).

Barclay's bike hire Stations map in Zoomed out view   

The Technique: The clustering solution involves sorting points into groups, each group then gets a maker (usually a circle) which is labelled with the number of points in the group.  This reduces the total number of markers rendered on screen.  As the user zooms in on an area big groups break up into smaller groups.  At a low altitude  the point icons themselves separate out from the groups.  

Boris Bike Example: My case study is the London Cycle App for the iPhone which shows in real time where Boris Bikes (aka 'Barclays Bikes') can be hired from.  Bikes can be picked up from a large number of docking stations and the app is very useful as bike stations often become empty as a typical day progresses.  The app needs to deal with the herd of sheep problem, the screenshot above is actually the bike stations it needs to visualise, it does this using group clustering.  We'll discuss the map's symbolization at high and medium zoom levels and compare that to the needs of an imaginary user who's using the app to find a bike to hire for a trip into town.

High Alitude Zoom:  At this viewpoint we see two cluster circles which show how many bikes are available for hire in two groups (repeated 3 times below).


High Altitude View with different possible group catchments.


The major usability issue here is that the catchment areas that the groups have been created from are not visible.  Any of the dotted catchment areas I've added in the three screenshots above are possible.  This is an issue for our user for two reasons:
  • Where are the bikes?  It isn't possible for our user to know precisely where the 230 and 178 bikes are so how can she know where to head to?
  • Density:  Knowing the total number of bikes in a group isn't as useful to her as knowing the density of bikes per square km.  For example, if the centre map catchments applied she'd be sensible to head for the 230 group SW of Islington but if the right hand map catchments apply the 178 group may well be a better bet as it has less bikes but in a much smaller area.
Overlap?  Not knowing the catchments of the cluster groups isn't a complete fail, its just unnecessarily vague. However, what is clearly a serious problem is the group circles overlapping.  That's plainly confusing for our imaginary user, it has no meaningful interpretation that I can think of.

Alternatives:  I think that both heat maps and grid density maps (below) are better solutions to the herd of sheep problem in this context as they communicate the data as density of bikes rather than total count.


Alternatives: heat map of house prices (bottom) Grid map of mobile web coverage (top) from this BBC site).  Boundary is of the whole bike scheme.

 (Note that I didn't have the time to create actual maps of the data we're discussing, these are maps of different data sets over London but they illustrate the techniques).  


High Zoom Best Alternative: No Data  My solution to the head of sheep problem is not heat or grid maps and is shown below:

its slightly counter intuitive but I've come to it by thinking about what the user actually needs.  She's probably getting into London by public transport and therefore knows the rough area that she wants to pick up a bike from.  My reasoning is that at this zoom level, the data is actually a visual distraction, what she really wants is to see landmarks so she can zoom in on her chosen area.  The bike availability is best kept off screen until she has zoomed in   You can see I've used three landmark layers above:
  • Boundary: A polygon showing the boundary of the area covered by the Boris bike scheme 
  • Big Train Stations: The location of a number of mainline train stations.  Not only are these well known landmarks in London but a large number of people wanting to pick up bikes will be arriving here (red pins).
  • Bike Stations: The location of the bike stations themselves (blue circles)*
Medium Zoom: As the user zooms in from the High Altitude Zoom view, the two big clusters resolve into smaller groups (below left).

Medium zoom screenshot (left) and suggested alternative (right) created by screen capture from excellent oobr's bike share map

With each further progression down the zoom levels the number of clusters, their size and their location changes.  This change of symbolization proved highly confusing to users.  My PhD student Craig did some user tests on a similar visualization, his observations show that users expected that the circles would persist across zoom levels - some even said they wanted to use them as landmarks and were very put out when they disappeared from the screen!  

Medium Zoom, Improved View (above, right):  At this zoom level, by reducing circle size, its actually possible to present circles representing all the bike stations with color coding showing where bikes are available (red = lots available, blue = few, circle size = number of docking points at each bike station).  Our user can probably locate a station to head for without having to zoom in further, a good usability gain plus she avoids the problems of changing symbolization outlined above.  The alternative map isn't optimized for an iPhone screen but I think you can see my point.

Conclusion:  My suggestions for improvements to the bike app screen shots at high and medium zoom levels involve not using a clustering technique at all. They could be combined as an complete alternative to the app; at high zoom levels the user sees just landmarks, when she zooms on her chosen area the map view switches to the medium zoom visualization illustrating bike availability. This alternative app would;

  • Avoid multiple confusing changes of symbolization with zoom (the most important advantage)
  • Avoid cluster circle overlaps
  • Avoid obscuring the view of the map by big cluster circles at high altitude zoom levels 
  • Show landmarks to aid effective zooming in
  • Show the user bike location data precisely - the user only sees bike availability at each station, there is no ambiguity created by grouping stations.  
  • Present the user with bike availability at the highest zoom level meaning she doesn't need to zoom in unnecessarily.  

I don't think this technique of avoiding point clustering completely would work in all situations but in the case of the Boris Bike app, I think it's the best solution.

Further Testing:  My PhD student Craig is going to be comparing the usability of alternatives such as the heat and grid map to the cluster circles in the future.  So far preliminary results show there are serious issues with point clusters but also that there are issues with the alternatives as well.


*I've got the boundary of the Boris Bike scheme and the station points wrong in some screenshots but I haven't corrected it because I'm short on time at the moment and it doesn't impact the discussion.

Thursday, September 15, 2011

Nerd Day Trip Map Review

Ben Goldacre has kept me amused over the years, he's just published an interactive map project (with a team) 'nerdy day trips' and asked for comments, so I thought I'd repay him with some ideas and publish it as a blog rather than just put it in an email.

Look and Layout: I liked the look: Professional look with a quirky feel.  Maybe save some map space by thinning out the header or by incorporating the graphic in the top left of the screen into the header?  Users generally like having more map, less graphics.

A minor point is that most users will look top left for the zoom bar in any Google Map.  You might like to move it up there for them if you don't feel it jinxes your look too much.

User Interface:  Nothing major wrong here either.  Minor point, I didn't know the post code of the Elan Valley trip I added in Shropshire, I imagine other users won't know postcodes of sites either so it shouldn't be compulsory to add one.  Do you really need the user to enter this data at all?  You have the latitude/longitude from their point and can generate post codes using this data.

Users will be expecting the info bubble to be graphically linked to the point that was clicked to create it.  By not using this you clear more space for your information and therefore less scrolling necessary which is good.  However, you might like to think about animating the info screen so that it grows out of the point that created it in some way.

Symbols:  A more important point - The paddles you currently have are bigger than necessary.  Reduce their size and avoid 'herd of sheep' visual clutter (where paddles obscure other paddles) in more areas.  You may like to consider using small circles as this would help even more (you can see this effect by doing a search on Google Maps for "cafes" over London).  The problem with this is that you really want to make them an intense red so they are visible and that doesn't fit with your color scheme.

Future features: I'd endorse your feature idea of categories but don't go overboard with very many - a great charm of this map is that it is so simple, don't spoil that by letting it get overly complex.

If I had one suggestion of my own it would be that you work on the day trip creation user interface. I would have it so that a user creates a day trip by dragging a symbol to the right place.  When I created my day trip by a simple click I wasn't zoomed in enough on the map to locate it accurately.  Dragging and dropping a symbol is not only intuitive, it gets over this issue, people will only do it when they're ready.

Tuesday, September 6, 2011

Goldilocks Maps: Enough Info but no more

Introduction: There are Goldilocks planets (not to hot, not too cold, just right) and Goldilocks economies (moderate inflation, moderate growth). I want to propose that we aim for producing goldilocks web maps: Not too little information, not too much, but just enough. 

Finding Cafes Problem: A web map example is using satellite imagery or a road map as base data in a mash up.  Satellite imagery has lots of information people find interesting, like who has the biggest patio in their neighbourhood (below left). 



However, if you're on your iPhone trying to find somewhere to eat (cafes in the above map are red pins or dots) you don't want the visual complexity of seeing patios or even gardens.  You want to see a road map mash up (above right), where the only information is the cafe locations, roads and road names.

Related Web Map Design Issues: It's not just base data this applies to, there are a number of web map design topics where  we should be actively thinking 'have I got the information balance right here'.  Examples include:
The Goldilocks web map concept is related to Edward Tufte's idea of 'chart junk': any pixels not directly showing data or helping show data (e.g. a key) are junk and need to be removed.  

A lovely idea for a map but full of chart junk.

There's more of an argument for putting too much information into a map than allowing it to contain chart junk. Extra information, by definition maybe useful whereas junk is, well, junk.  For example, we could add other data layers to the cafe map by splitting the cafes into vegetarian, greasy spoon and coffee bars.  Its more complex to understand but will be important for vegetarians.

For most maps the concept of chart junk holds true but I recently posted ideas about when chart junk has a place by discussing the flashiness of Google Earth Tours.

London tube map:  This is the perfect example of a Goldilocks map, 

The Modern Tube map is shown on the top and the real station locations are on the bottom.  The Circle Line is in yellow and has been distorted from reality on the tube map to improve clarity.  Other distortions to improve clariry include making lines vertical, horizontal or at 45 degrees .

Harry Beck's genius was to realise that when navigating within the tube system the true locations of the tube stations is information that can be left out, users can navigate perfectly well given just lines and node information.  This means the actual locations and distances on the map can be distorted in order to improve the clarity of the map.  E.g. the area inside the circle line (yellow above) is expanded, it has a high concentration of stations and expanding them makes the station labels easier to read. The idea has been copied for transport systems the world over making it very familiar today but it isn't hard to imagine people's initial reactions:  A map that doesn't show locations properly?  What good is that? Dismissed by the authorities at the time when released it to the public it proved very successful and it is now, rightfully, a design classic.

London Transport Maps: Google, Bus Mapper and TFL

Google recently released a Public Transport Directions in London mapping tool as part of Google Maps.  I thought it would be good to compare it to other London transport services (Transport for London and Busmapper) and discuss the usability in terms of UI, symbology, data and mobile use.

Transport for London: up to now the only transport directions tool covering multiple transport types (that I've come across anyhow) has been transport for London (TFL). Although it produces a zoomable map in the results you can't input your start and end points by creating points on a map.  Also, the output map is small on the screen surrounded by adverts and other chart junk elements I don't want to see (see screen grab below):



not that user friendly - I want to be able to expand the map easily and enter points directly onto it.

Google Maps:  The new Public Maps transport directions answers both of my criticisms of TFLs website; you can click to define points, type in post codes (UK zip codes) or type in other place identifiers to define your start and end points directly.  You can also expand the map easily and it already covers most of the page with no ads.  Neat!

User Interface - Adding Start/End isn't Easy: Whilst the expand screen arrow (actually termed 'hide panel') is pretty self explanatory it's not obvious how to add points to the map.  Expected behavior: two pins icons to be available in the control panel with some micro text saying 'drag to define trip'.  What you actually have to do is right click on the map and choose 'start journey' or 'end journey'.  Bus Mapper does it much better with some simple 'click twice' text advice.  See me do it in the clip below



(note that the orange circles denote a click but were added by my screen recorder).



Symbology:  Moving on from the UI to symbology, there is some good work in this service but also some aspects I hope Google sort out soon.  Discussion refers to the above screen shot or you can open the original map.  To reproduce the view above, turn on the transit layer and create pins as outlined above.
  • I like the angled labels (e.g. the label behind the green 'A' pin).  These enable a point to be labelled without overlying a nearby marker/label, unfortunately it seems the service isn't programmed to deliver this functionality.  For example, in the bottom right - the start (A) label could be separated from the 295 bus label if the angle went towards the bottom left rather than the top right.  
  • Label Lines not Points: While we're still talking about the labels it's counter intuitive that they point to bus stops rather than lines.   For example, in the screen shot the 295 bus route is shown as a blue line but its not labelled 295, the label points to the bus stop at the end.  
  • Colors for travel modes: Its useful that walking and transport are different colors (black and translucent blue respectively).  It would be nice to see different symbols for the lines for different travel modes, the tube line colours are known by most Londoners but I think this would get confusing because the suggested route would get mixed up with tube lines and other on screen elements.
Data - Missing Overland Train Info: The major problem I have with the transit map is that it misses out overland trains, on the map these appear as orange lines.  As an example, for the trip in the screen shot its actually much better to walk to Clapham Junction (covered by 295 label), then go by overland train to Kensington Olympia (East of Kensington) and then walk the last section.  Google not only doesn't include that mode of transport - it doesn't even tell you its not using it.   Not a fail but pretty serious problem for a journey planner - you could easily double your journey time as a result of not knowing about the overland route (buses can be very slow in London).

Mobile:  Comparing the Google map on my Mac to that on the iPhone there are a couple of things that stand out:
  • Consistency:  Why is the transport line blue on the Mac but purple on the iPhone?  It's not a huge issue but I can't see any reason not to get the colors spot on.

  • Step Through: When you have the route calculated Google Maps has a really nice feature that allows you to step through the directions.  A purple circle (see above) shows the transfer point and clicking the arrow (top right) steps you through the complete route animating the circle from transfer to transfer and automatically moving the screen.  Very slick and easy to use.
  • You Are Here:  Where the Google mobile map thrashes transport for London mobile enabled website is the blue 'you are here' indicator.  It's very useful for travelling, you don't necessarily know where you are when you start a trip so typing in a name or post code is difficult, much better to use the blue marker and drop a pin on the map.  Not having a decent map interface leaves transport for London dead in the water IMHO. 
Conclusion:  I haven't reviewed other transport apps for the iPhone in researching this review so there maybe services better than Google Maps transport for London out there.  Up to now I've been using transport for London and Google Maps is a huge improvement on that especially on the iPhone.  That being said, Google have work to do, I'd suggest adding the overland train routes is a priority.

Welcome to Web Map Design

Welcome to my new venture!


Why Switch?  My old blog (Google Earth Design) became a 'whatever is on my mind about web Geo this week', that was OK but important norms and practices are being defined at the moment and its all happening in maps, not Google Earth.  So I've decided to refocus on web maps rather than the broader virtual globes, education and maps I used to discuss on my old blog.


Evidence for the importance of maps compared with virtual globes can be seen in the Google Trends screenshot above: Google Maps has become consistently more searched for than Google Earth within the life span of my old blog*.

Developers making Decisions:  IMHO web maps today are pretty dire in terms of design.  By comparison, web design has moved through a period dominated by poor layouts into design patterns that are now pretty good.  I want to start or join in discussions of how maps are developing so we can ensure web maps follow a similar path.   It seems to me that the people making these decisions are mostly developers so I'd like them to be my core audience.  I worry that many of the innovations that are appearing today have poor usability and, if we don't nip the problem in the bud, we will be left with web map norms and practices that are impossible to change in the future.

How this blog compares to my older blog, Google Earth Design:
  • For Developers:  The primary audience of this blog is meant to be developers although it should interest HCI, cartographers and GIS people too.
  • Main Blog:  I mean this blog to be the main one so if a topic covers both virtual globes and maps I'll cover it here. 
  • Google Earth Design:  I'm carrying this on and I think it will mostly be about applications of 3D and educational stuff, I think Google Earth is still the main tool educators should be looking at.
* Muki  Haklay pointed this out to me.