block and displayed as an overlay on the web page using either SVG or WebGL. Using WebGL as the rendering system, data containing millions of points can be handled, but this is not enough to cope with the finer scale Census data which is exactly the type of rich geospatial information likely to be of the most interest. To get around this problem, data is usually shown at an appropriate level of detail for the current level of zoom, which is where the map tiling technologies play their part with hierarchical level of detail. Having run the MapTube website and collected exactly this sort of data for a number of years, the challenge is in how the data can be used and interpreted by researchers. While both Fusion tables and ArcGIS Online provide some limited capability above basic choropleth maps, this stops short of the more advanced functions found in a desktop GIS that can provide real insight into the nature of the data, and neither provide any functionality to make comparisons between maps created from different sources.34 This could be legal restriction, as it is entirely possible that Google and ESRI are worried about users adding value to data where the rights are owned by somebody else, and then re-publishing it. In this event, it would be hard to track intellectual property rights, but the fact remains that neither Fusion Tables, nor ArcGIS Online provide a set of features to allow the exploration of the relationships between the data in the different maps. Considering that these are both large Internet data stores containing geospatial data, the ability to analyse that data and place it into context seems like an omission. As a result of Internet data stores, for the first time, a wide variety of geospatial data is now available at scale, so this is the first time that anybody has been able to ask the question of how all the data sets relate to one another. This is not something that can be answered using the simple one data set model of a typical desktop GIS.
3.9
Programmable Maps
Previous sections have touched on real-time maps, but without exploring how to handle data that is constantly changing. Real time is likely to be coupled with web-based as this is the natural medium for outreach to the general public and real-time visualisations are likely to be conveying information of use to people now. Taking a transport scenario as an example, maps can show which tube lines are suspended and which stations have the 34To qualify this statement further, users were allowed to ‘mash’ their own maps and manipulate point data to some extent,
which was a feature added to ArcGIS online, but wholesale comparisons between assets owned by different users is not possible on either system.
most congestion so that commuters can avoid those places and not make a bad situation worse. Weather is another obvious example with maps being constantly updated with new forecasts and observations as they arrive.
Maps of this type can be seen as a work flow defining how to automatically go from raw data through to geospatial visualisation. In order to do this, the fundamental operations outlined previously need to be chained together programmatically in the correct order. Taking this a step further, it is easy to imagine a command line GIS of a type similar to GRASS [Ope16], but along the lines of the jsFiddle website (https: // jsfiddle.net) for developing Javascript. In this case, geospatial operations on data can be defined, resulting in a web based map with the result turned into a real-time data work flow.
When the data is animated, as is the situation with tubes, trains and buses, the visu- alisation needs to show movement, but with data updates occurring perhaps only once every few minutes. In this situation, the positions are being forecast into the near fu- ture (now-casting) based on the last available data until the next data frame becomes available. One method for achieving this is to see the vehicles as agents and to build a simulation using agent based modelling. Building a simulation of this nature, where tube agents are programmed with a realistic behaviour derived from the real world tube network, has the secondary effect of allowing experimentation on a real city with real data. Figure 3.5 shows a proof of concept using the ‘AgentScript’ Javascript library to run a test model on top of Google Maps35.
35AgentScript is an open-source agent based modelling framework for javascript inspired by NetLogo and developed by Redfish.
3.9. Programmable Maps 103
Figure 3.5: AgentScript test model running on top of Google Maps.
Taking this a stage further, figure 3.6 shows a real-time tube model with data taken from the TfL Trackernet API. Archive data from any point in time can be fed into this model to play back previously saved scenarios.
In many situations, simply plotting vehicle positions is not an effective way of pre- senting information. Real-time data, together with machine learning, can be used to create a knowledge directed visualisation based on deviation from the expected situ- ation. In the case of transport networks, expected wait times can be calculated and deviations from the mean can be highlighted on the map as potential problems. In flight safety maps for aviation, ‘colour states’ are used to indicate extreme weather which is a hazard to air traffic [Wor15]. Airfields are coloured according to a scale from blue (good weather) though to red (hazardous) based on a combination of visibil- ity, cloud base and wind speed. This is similar to the idea of feature detection in data where learning algorithms are used to identify features of interest. In this example, the features are already ‘detected’ and based on cloud heights, weather type and visibility which is identified as a hazard to air traffic.