MapIt for non-developers
MapIt is a system that sends data about administrations and other location-related data in response to requests from a website or service. This is useful if you are building services that require these data, for example, to identify which ward a postcode is in, what the nearest postcode is to a point on a map, or what the boundaries of an administrative area are – and many, many others.
In technical terms MapIt is classed as an API which stands for Application Programming Interface. It allows an external service to query data held in a database and return results. This removes the need to build such a database yourself – you can simply use MapIt in your application or site.
Example applications
MapIt can be used for all sorts of websites and applications. For example:
- FixMyStreet is mySociety’s street problem reporting service, which uses MapIt to find the right area on the map when the user enters their postcode, and to assign problem reports to the correct local authority when the user drops a pin on the map to show the problem’s location. It also relies on MapIt to plot local authority boundaries.
- Land Layer is a web-based resource aimed at the strategic land professional and others who need access via a single map-based tool to their business information. Land Layer was launched in 2012, and combines a series of functions and business information that benefits users by reducing the time to enter or retrieve data either at their desk or in the field. Users can quickly record information to a ‘Pin’ on a digital map, which has layers of public, private and inter-company data. Users can also 'flag' on the map projects where they have been involved, adding a spatially targeted dimension to marketing. Land Layer uses the Mapit API to display local authority boundaries and to provide information on the political control of that authority.
- PepysRd.com is an innovative marketing site for the novel Capital by John Lanchester, released by Faber in spring 2012. Storythings developed a 10 day experience that used live data from the web and new texts from John Lanchester to tell the story of the next 10 years. A core part of this experience was a series of data illustrations by James Bridle, using live data to reflect on the role of markets and infrastructure in our lives. Storythings used MapIt for a number of these illustrations, using its fantastic location data to provide unique and realtime story elements for the project.
- GOV.UK – the UK Government’s digital portal – uses an installation of MapIt to enable visitors to its website find the right information on local public services based on their postcode.
Possible uses
MapIt can be used for the following:
- For a postcode: find the National Grid and latitude and longitude co-ordinates for a postcode, and which administrative areas it belongs to, such as ward, the local authority area, super output areas, the parliamentary constituency, and the European region.
- Partial postcode such as SW1A: find the national grid and latitude/longitude co-ordinates for the centre of that partial postcode.
- Point: find out which administrative areas a point (expressed as a latitude/longitude) is contained in.
- Nearest postcode: find the nearest postcode to a point on the map.
- By area: find data on an administrative area, such as its boundaries, or an example postcode in this area. You can also get “digital boundaries” to map the area, in e.g. WKT, GeoJSON or KML formats, for use with maps and/or geographic information systems.
- Related areas: look up which administrative areas are contained within an area (e.g. all wards of a council), which areas it borders with, covers and/or overlaps with.
- Multiple areas: get information about several areas at once, by type of area (e.g. city council) or area name.
- Generations: shows a list of updates to MapIt information, with a unique number for each update (or “generation”). This helps with instances where you want to query historical data, for example.
Rate limiting
The service has an automatic counter that tracks the number of requests sent to it by a user, and limits requests if they reach a certain volume. This is set at an average of 1 call per second in a rolling 3 minute period. The reason to do this is to make sure the service does not get overwhelmed by huge requests volumes which could risk it going down for all users.
Where the limit is exceeded, the service will stop sending data until the average goes back within the set limit.