LogoLogo
OS Docs HomeOS NGDOS APIsOS Download ProductsMore than MapsProduct Refresh Dates
  • OS Download Products' Documentation
  • Addressing and Location
    • Addressing and Location Portfolio Information
    • AddressBase Fundamentals
      • Release Notes
        • AddressBase Products May 2025 – Epoch 118
        • AddressBase Islands May 2025 – Epoch 118
        • AddressBase Products March 2025 – Epoch 117
        • AddressBase Islands March 2025 – Epoch 117
        • AddressBase Products February 2025 – Epoch 116
        • AddressBase Islands February 2025 – Epoch 116
        • AddressBase Products December 2024 – Epoch 115
        • AddressBase Islands December 2024 – Epoch 115
        • AddressBase Products November 2024 – Epoch 114
        • AddressBase Islands November 2024 – Epoch 114
        • AddressBase Products September 2024 – Epoch 113
        • AddressBase Islands September 2024 – Epoch 113
        • AddressBase Products August 2024 – Epoch 112
        • AddressBase Islands August 2024 – Epoch 112
        • AddressBase Products June 2024 – Epoch 111
        • AddressBase Islands June 2024 – Epoch 111
        • AddressBase Products May 2024 – Epoch 110
        • AddressBase Islands May 2024 – Epoch 110
        • AddressBase Products April 2024 – Epoch 109
        • AddressBase Islands April 2024 – Epoch 109
      • AddressBase product family
      • Future and past publication dates
      • Unique Property Reference Number (UPRN)
      • Coordinate reference systems
      • Classification scheme
      • Data sources
      • Street names and numbering
      • Currency, completeness and precision
      • Product supply
      • Code lists and enumerations
        • AddressbasePostalCode
        • BLPUStateCode
        • ChangeTypeCode
        • CountryCode
        • Date
        • FileTypeCode
        • LanguageCode
        • LogicalStatusCode
        • OfficialFlagCode
        • PostcodeTypeCode
        • RPCCode
        • StateCode
        • StreetClassificationCode
        • StreetRecordTypeCode
        • StreetStateCode
        • StreetSurfaceCode
        • Time
        • USRNMatchIndicatorCode
      • AddressBase local custodian codes
      • AddressBase Islands local custodian codes
    • AddressBase
      • Release Notes
      • AddressBase Getting Started Guide
        • Prerequisites
        • Data supply
        • Working with CSV data
        • Working with GML data
        • Working with COU data
        • Creating a single-line or multi-line address
        • Searching for addresses
      • AddressBase Technical Specification
        • Data formats
        • Supply and update
        • AddressBase structure
        • Feature types
          • Address
          • AddressBase Supply Set
        • Code list and enumerations
        • CSV to GML mapping
        • Example records
          • CSV
          • GML
      • AddressBase Downloads
      • AddressBase Known Data Issues
    • AddressBase Core
      • Release Notes
        • 20 May 2025
        • 13 May 2025
        • 07 May 2025
        • 29 April 2025
        • 23 April 2025
        • 15 April 2025
        • 08 April 2025
        • 01 April 2025
        • 25 March 2025
        • 18 March 2025
      • AddressBase Core Overview
        • Data capture and sources
        • GeoPlace
        • Unique Property Reference Number (UPRN)
        • Coordinate reference systems
        • Classification
        • Currency, completeness and precision
        • Product supply
      • AddressBase Core Getting Started Guide
        • Downloading a dataset
        • Working with CSV data
        • Working with GPKG data
        • Working with COU data
        • Working with tiled data
      • AddressBase Core Technical Specification
        • Data formats
        • Supply and update
        • Attributes
        • Enumerations
        • Example records
      • AddressBase Core Downloads
      • AddressBase Core Known Data Issues
    • AddressBase Plus
      • Release Notes
      • AddressBase Plus Getting Started Guide
      • AddressBase Plus Technical Specification
        • Data formats
        • Supply and update
        • AddressBase Plus structure
        • Feature types
          • Address
          • AddressBase Supply Set
        • Code lists and enumerations
        • CSV to GML mapping
        • Example records
          • CSV
          • GML
      • AddressBase Plus Downloads
      • AddressBase Plus Known Data Issues
    • AddressBase Plus Islands
      • Release Notes
      • AddressBase Plus Islands Getting Started Guide
      • AddressBase Plus Islands Technical Specification
        • Data formats
        • Supply and update
        • AddressBase Plus Islands structure
        • Feature types
          • Address
          • AddressBase Supply Set
        • Code lists and enumerations
        • CSV to GML mapping
        • Example records
          • CSV
          • GML
      • AddressBase Plus Islands Downloads
      • AddressBase Plus Islands Known Data Issues
    • AddressBase Premium
      • Release Notes
      • AddressBase Premium Getting Started Guide
        • Prerequisites
        • Data supply
        • Working with CSV data
        • Working with GPKG data
        • Working with GML data
        • Working with COU data
        • Creating a single-line or multi-line address
        • Searching for addresses
      • AddressBase Premium Technical Specification
        • Data formats
        • Supply and update
        • AddressBase Premium structure
        • Feature types
          • Street – (Type 11 Record)
          • BLPU – (Type 21 Record)
          • AddressBase supply set
          • Feature with lifecycle
        • Structured data types
          • Street Descriptor – (Type 15 Record)
          • Application Cross Reference – (Type 23 Record)
          • LPI – (Type 24 Record)
          • Delivery Point Address – (Type 28 Record)
          • Successor Cross Reference – (Type 30 Record)
          • Organisation – (Type 31 Record)
          • Classification – (Type 32 Record)
          • Entity with lifecycle
        • Dataset metadata
          • Metadata – (Type 29 Record)
          • Header – (Type 10 Record)
          • Trailer – (Type 99 record)
        • Code lists and enumerations
        • Attribute format comparison
        • Example records
          • CSV
          • GML
      • AddressBase Premium Downloads
      • AddressBase Premium Known Data Issues
    • AddressBase Premium Islands
      • Release Notes
      • AddressBase Premium Islands Getting Started Guide
      • AddressBase Premium Islands Technical Specification
        • Release Notes
          • June 2024
        • Data formats
        • Supply and update
        • AddressBase Premium Islands structure
        • Feature types
          • Street – (Type 11 Record)
          • BLPU – (Type 21 Record)
          • AddressBase supply set
          • Feature with lifecycle
        • Structured data types
          • Street Descriptor – (Type 15 Record)
          • Application Cross Reference – (Type 23 Record)
          • LPI – (Type 24 Record)
          • Delivery Point Address – (Type 28 Record)
          • Successor Cross Reference – (Type 30 Record)
          • Organisation – (Type 31 Record)
          • Classification – (Type 32 Record)
          • Entity with lifecycle
        • Dataset metadata
          • Header – (Type 10 Record)
          • Metadata – (Type 29 Record)
          • Trailer – (Type 99 record)
        • Code lists and enumerations
        • Attribute format comparison
        • Example records
          • CSV
          • GML
      • AddressBase Premium Islands Downloads
      • AddressBase Premium Islands Known Data Issues
    • Boundary-Line
      • Release Notes
        • May 2025
        • October 2024
        • June 2024
      • Boundary-Line Overview
        • Data overview
        • Product supply
      • Boundary-Line Product Information
        • Relationships of administrative areas
        • Structure of Boundary-Line
        • Boundary-Line principles and features
        • Case studies
        • Metadata
        • Glossary
        • Exception areas
        • The coastline and associated items
      • Boundary-Line Technical Specification
        • Shapefile, TAB and GKPG
          • Features - Shapefile, TAB and GPKG
            • Area - GB
            • Area - English region
            • Area - Wales region
            • Link feature type
            • Area - Polling districts England
            • Historical and ceremonial boundaries features
          • Layers - Shapefile, TAB and GKPG
            • Shapefile
            • TAB
            • GKPG
          • Code lists - Shapefile, TAB and GKPG
            • AreaCode
            • TypeCode
        • GML
          • Features - GML
            • AdministrativeUnit
          • Code lists - GML
            • AdministrativeHierarchyValue
            • NationalClassificationValue
          • Example record - GML
        • Vector tiles
      • Guide to Ceremonial County Boundaries
      • Additional Product Details
      • Boundary-Line Downloads
      • Boundary-Line Known Data Issues
    • Code-Point
      • Code-Point Overview
        • Product details
        • Product supply
      • Code-Point Products Comparison
      • Code-Point Getting Started Guide
        • Product supply
        • Data structure
        • CSV file processing
        • Data measures
        • Metadata
        • Glossary
      • Code-Point Technical Specification
        • Product structure
        • Supply formats
      • Code-Point Downloads
      • Code-Point Known Data Issues
    • Code-Point Open
      • Code-Point Open Overview
        • Product details
        • Product supply
      • Code-Point Open Products Comparison
      • Code-Point Open Getting Started Guide
        • Requirements for using the data
        • CSV file processing
        • Data measures
        • Loading the data into a GIS
        • Glossary
      • Code-Point Open Technical Specification
        • Product structure
        • Supply formats overview
      • Code-Point Open Downloads
      • Code-Point Open Known Data Issues
    • Code-Point with Polygons
      • Release Notes
        • January 2025
      • Code-Point with Polygons Overview
        • Product details
        • Product supply
      • Code-Point with Polygons Products Comparison
      • Code-Point with Polygons Getting Started Guide
        • Using the vertical street lookup
        • Creating single-space postcodes
        • Data measures
      • Code-Point with Polygons Technical Specification
        • Data supply
        • Specification
      • Code-Point with Polygons Downloads
      • Code-Point with Polygons Known Data Issues
    • 🆕OS Emergency Services Gazetteer
      • 🆕OS ESG Overview
        • 🆕Product supply
        • 🆕Planned enhancements
      • OS ESG Getting Started Guide
      • OS ESG Technical Specification
        • Feature type
          • BLPU (Type 21 Record)
        • Structured data types
          • LPI (Type 24 Record)
          • Classification (Type 32 Record)
        • 🆕Code lists
          • AddressbasePostalCode
          • BLPUStateCode
          • ChangeTypeCode
          • 🆕ClassificationCode
          • CountryCode
          • FileTypeCode
          • LanguageCode
          • LogicalStatusCode
          • OfficialFlagCode
          • RPCCode
          • USRNMatchIndicatorCode
        • Dataset metadata
          • Header (Type 10 Record)
          • Metadata (Type 29 Record)
          • Trailer (Type 99 Record)
      • 🆕OS ESG FAQs
      • 🆕OS ESG Downloads
      • OS ESG Known Data Issues
    • OS Open Built Up Areas
      • Release notes
        • April 2024
      • OS Open Built Up Areas Overview
        • Product details
        • Product supply
      • OS Open Built Up Areas Technical Specification
        • Feature types
          • Built Up Areas
          • Built Up Extents
          • Non Built Up Extents
        • Structured data types
          • MultiSurfaceWithAreaType
          • NameType
        • Code list
          • LanguageValue
        • Supply formats
      • OS Open Built Up Areas Known Data Issues
    • OS Open Names
      • Release Notes
        • April 2025
        • January 2025
        • October 2024
        • July 2024
      • OS Open Names Overview
        • Product applications
        • Product details
        • Product supply
      • OS Open Names Getting Started Guide
        • Obtaining OS Open Names data
        • CSV file processing
        • Loading the data in a GIS
      • OS Open Names Technical Specification
        • Source of OS Open Names
        • Viewing resolution
        • Product structure
        • Feature type
          • NamedPlace
        • Code lists
          • LanguageValue
          • NamedPlaceTypeValue
          • LocalTypeValue
        • Structured data types
          • GeographicalName
          • Identifier
        • Local Type
        • Supply formats overview
        • Attribute naming format comparison
        • LocalType code list
      • OS Open Names Downloads
      • OS Open Names Known Data Issues
    • Points of Interest
      • Release Notes
        • March 2025
        • December 2024
        • September 2024
        • June 2024
      • Points of Interest Product Information
        • Using Points of Interest
        • Data measures and data sources
        • Classification scheme
        • Points of Interest Provenance
        • Glossary
        • Points of Interest symbology
      • Points of Interest Technical Specification
        • Using Points of Interest
        • Pipe delimited text (PDT) file format
          • Record structure
        • Code lists
          • Positional Accuracy
          • Match Indicator
        • Example records
        • Glossary
      • Points of Interest Classification Scheme
        • Accommodation, eating and drinking
        • Commercial services
        • Attractions
        • Sport and entertainment
        • Education and health
        • Public infrastructure
        • Manufacturing and production
        • Retail
        • Transport
      • Points of Interest Class Count
        • Accommodation, eating and drinking
        • Commercial services
        • Attractions
        • Sport and entertainment
        • Education and health
        • Public infrastructure
        • Manufacturing and production
        • Retail
        • Transport
      • Points of Interest Downloads
      • Points of Interest Known Data Issues
  • Contextual or derived mapping
    • Contextual or Derived Mapping Portfolio Information
    • Colour Raster Map Fundamentals
      • Colour Raster Map Overview
        • Metadata
        • Data compression
        • Data measures
        • Product supply
      • Colour Raster Map Technical Specification
        • Georeferencing
        • Image file directory (TIFF)
        • Abbreviations used on OS 1:25 000 and 1:50 000 scale mapping
        • Product glossary
    • 1:25 000 Scale Colour Raster
      • 1:25 000 Scale Colour Raster Overview
        • Product details
        • Features depicted in the product
        • Georeferencing
      • 1:25 000 Scale Colour Raster Technical Specification
      • 1:25 000 Scale Colour Raster Downloads
      • 1:25 000 Scale Colour Raster Known Data Issues
    • 1:50 000 Scale Colour Raster
      • 1:50 000 Scale Colour Raster Overview
        • Product details
        • Features depicted in the product
        • Georeferencing
      • 1:50 000 Scale Colour Raster Technical Specification
      • 1:50 000 Scale Colour Raster Downloads
      • 1:50 000 Scale Colour Raster Known Data Issues
    • 1:250 000 Scale Colour Raster
      • 1:250 000 Scale Colour Raster Overview
        • Product details
        • Georeferencing
        • Gazetteer
      • 1:250 000 Scale Colour Raster Technical Specification
      • 1:250 000 Scale Colour Raster Downloads
      • 1:250 000 Scale Colour Raster Known Data Issues
    • GB Overview Maps
      • GB Overview Maps Downloads
      • GB Overview Maps Known Data Issues
    • MiniScale
      • MiniScale Product Guide
        • Supply and formats
        • Georeferencing
        • Depiction of roads and towns
        • Data compression
        • Features, layers and styles
      • MiniScale Technical Specification
        • National Grid
        • MiniScale file management
      • MiniScale Downloads
      • Miniscale Known Data Issues
    • OS Open Zoomstack
      • OS Open Zoomstack Getting Started Guide
        • Zoomstack vector tiles
        • Zoomstack GeoPackage format
      • OS Open Zoomstack Technical Specification
        • List of Layers
        • Description of the cartographic styles
        • Sea Extent and Name Languages
        • Vector Tiles Schema
        • GeoPackage Schema
      • OS Open Zoomstack Known Data Issues
    • OS OpenMap – Local
      • Release Notes
        • April 2025
      • OS OpenMap – Local Overview
        • Product applications and uses
        • Product details
        • Product supply
      • OS OpenMap – Local Getting Started Guide
        • Loading raster data
        • Loading vector data
        • Loading and displaying GML Data
        • POSTGIS
        • Loading and displaying Shapefile supply
        • Viewing the data in QGIS
        • Using shapefiles in PostGIS
        • Using MapInfo Professional
      • OS OpenMap – Local Technical Specification
        • Data structure
        • Feature types
          • Building
          • ElectricityTransmissionLine
          • Glasshouse
          • RailwayStation
          • RailwayTrack
          • RailwayTunnel
          • Road
          • RoadTunnel
          • Roundabout
          • MotorwayJunction
          • CarChargingPoint
          • Foreshore
          • SurfaceWater_Area
          • SurfaceWater_Line
          • TidalBoundary
          • TidalWater
          • Woodland
          • FunctionalSite
          • ImportantBuilding
          • NamedPlace
        • Code lists
          • RailwayStationClassification
          • RailwayTrackClassification
          • DrawLevelValue
          • OverrideValue
          • RoadClassification
          • RoundaboutClassification
          • CarChargingType
          • RatedVoltage
          • ChargeMethod
          • TidalBoundaryClassification
          • BuildingTheme
          • BuildingClassification
          • SiteClassification
          • FontHeightClassification
          • NamedPlaceClassification
      • OS OpenMap – Local Downloads
      • OS OpenMap – Local Known Data Issues
    • OS VectorMap District
      • OS VectorMap District Overview
        • Generalisation
        • Feature types
        • Style definition
        • Product supply
      • OS VectorMap District Technical Specification
        • GML Overview
        • Raster Specification
        • Georeferencing
        • Feature types
          • Building
          • ElectricityTransmissionLine
          • Glasshouse
          • RailwayStation
          • RailwayTrack
          • RailwayTunnel
          • MotorwayJunction
          • Road
          • RoadTunnel
          • Roundabout
          • Foreshore
          • SurfaceWater_Area
          • SurfaceWater_Line
          • TidalBoundary
          • TidalWater
          • Ornament
          • Woodland
          • FunctionalSite
          • NamedPlace
          • SpotHeight
          • AdministrativeBoundary
        • Code lists
          • RailwayStationClassification
          • RailwayTrackClassification
          • RoadClassification
          • RoundaboutClassification
          • DrawLevelValue
          • OverrideValue
          • TidalBoundaryClassification
          • FunctionalSiteClassification
          • NamedPlaceClassification
          • FontHeightClassification
          • AdministrativeBoundaryClassification
        • Attributes
        • Feature Codes
        • Styling of Land and Sea
      • Vector Simple Guide
        • Downloading OS OpenData
        • Opening OS OpenData in QGIS
        • Styling vector data
        • Opening and saving maps in Composer
      • Raster Simple Guide
        • Downloading OS OpenData
        • Opening OS OpenData in QGIS
        • Opening and saving a map in composer
      • OS VectorMap District Downloads
      • OS VectorMap District Known Data Issues
    • OS VectorMap Local
      • Release Notes
        • January 2025
      • OS VectorMap Local Overview
        • Product details
        • Features represented in the product
        • Product style definition
        • Product supply
        • National Grid coverage for OS VectorMap Local
      • OS VectorMap Local Technical Specification
        • GeoPackage overview
        • GML overview
        • Raster data
        • Feature types
          • Area
          • Line
          • VectorMapPoint
          • RoadCLine
          • RailCLine
          • Text
        • Code lists
          • DrawLevelValue
          • AnchorPositionValue
          • TextFontValue
        • Structured data types
          • textRenderingType
        • Feature codes and descriptions
        • Vector tiles overview
        • Important Buildings classification
      • OS VectorMap Local Downloads
      • Supporting documents
        • OS VectorMap Local Cartographic Style Definitions
      • OS VectorMap Local Known Data Issues
  • Networks
    • Networks Portfolio Information
    • OS Detailed Path Network
      • OS Detailed Path Network Overview
        • Product details
        • Attribution
        • Product supply
        • Coordinate reference system
      • OS Detailed Path Network Getting Started Guide
        • Downloading the data
        • Loading GML data
      • OS Detailed Path Network Technical Specification
        • OS Detailed Path Network structure
        • Feature types
          • Route
          • RouteLink
          • RouteNode
        • Structured data types
          • VerticalGainType
        • Code lists
          • LevelCodeValue
          • PotentialHazardValue
          • RightOfWayValue
          • RouteDescriptiveGroupValue
          • RouteDescriptiveTermValue
          • RouteLinkDescriptiveTermValue
          • RouteNodeDescriptiveTermValue
          • SurfaceTypeValue
        • Data quality
        • GML overview
        • GeoPackage overview
          • Route
          • RouteLink
          • RouteNode
        • Vector Tiles overview
          • Route
          • RouteLink
        • GML examples
      • OS Detailed Path Network Downloads
      • OS Detailed Path Network Known Data Issues
    • OS MasterMap Highways Network Fundamentals
      • Release Notes
        • May 2025
        • April 2025
        • March 2025
        • February 2025
        • January 2025
        • December 2024
        • November 2024
        • October 2024
        • September 2024
        • August 2024
        • July 2024
        • June 2024
      • OS MasterMap Highways Network Product Family
      • OS MasterMap Highways Network Overview
        • Standards
        • Coordinate reference system
        • Feature types
          • Road Link (present in Roads & RAMI products)
          • Road Node (present in Roads & RAMI products)
          • Path Link (present in Paths product)
          • Path Node (present in Paths product)
          • Connecting Link (present in Paths product)
          • Connecting Node (Present in Paths product)
          • Road (present in Roads & RAMI products)
          • Path (present in Paths product)
          • Street (present in all OS MasterMap Highways Network products)
          • Road Junction (present in Roads & RAMI products)
          • Ferry Link (present in all OS MasterMap Highways Network products)
          • Ferry Node (present in all OS MasterMap Highways Network products)
          • Ferry Terminal (present in all OS MasterMap Highways Network products)
          • Access Restrictions (present in RAMI product)
          • Turn Restrictions (present in RAMI product)
          • Restrictions For Vehicles (present in RAMI product)
          • Hazards (present in RAMI product)
          • Structures (present in RAMI product)
          • Maintenance (present in RAMI & Paths products)
          • Reinstatement (present in RAMI & Paths products)
          • Highways Dedication (present in RAMI & Paths products)
          • Special Designations (present in RAMI & Paths products)
        • Product supply
        • Product packaging
        • File naming
        • Feature validation data set
        • Volume feature count
        • OS Open Roads Lookup Table
      • OS MasterMap Highways Network Getting Started Guide
        • What do I need to use this data?
        • Product supply
        • Coverage
        • Product packaging
        • File naming
        • Unzipping GML, GeoPackage, and vector tiles files
        • Loading OS MasterMap Highways Network products into a GIS
        • Relationships between Highways tables
      • OS MasterMap Highways Network Playbook
        • Connecting to Address Data
        • Identifying Change in the Network
        • Highlighting Roads Under Construction
        • Creating a Map of Winter Gritting Routes
        • Adding Road Names and Numbers to a Map
        • Merging Tables and Dropping Geometry
        • Creating a Routable Network
      • OS MasterMap Highways Network Downloads
      • OS MasterMap Highways Network Known Data Issues
    • OS MasterMap Highways Network – Roads
      • OS MasterMap Highways Network Overview
      • OS MasterMap Highways Network – Roads Technical Specification
        • Specification changes
        • Structure
        • How the product fits together
        • Change-Only Update (COU) supply
        • Feature types
          • RoadLink
          • RoadNode
          • Road
          • Street
          • RoadJunction
          • FerryLink
          • FerryNode
          • FerryTerminal
        • Structured data types
          • identifier
          • OperationalStateType
          • DesignatedNameType
          • ResponsibleAuthority
          • CycleFacilityType
          • ElevationGainType
          • RoadWidthType
        • Code lists and Enumerations
          • ChangeValue
          • RoadClassificationValue
          • RoadFunctionValue
          • MatchStatusValue
          • OperationalStateValue
          • ProvenanceSourceValue
          • RoadStructureValue
          • LinkDirectionValue
          • FormOfWayValue
          • CycleFacilityValue
          • RoadWidthConfidenceLevelValue
          • FormOfRoadNodeValue
          • RoadNodeClassificationValue
          • AccessPointValue
          • StreetTypeValue
          • JunctionTypeValue
          • ConnectionTypeValue
          • FormOfWaterwayNodeValue
        • GML overview
        • GeoPackage overview
          • ferry_link
          • ferry_node
          • ferry_terminal
          • road
          • road_junction
          • road_link
          • road_node
          • street
        • Vector tiles overview
          • ferry_link
          • ferry_node
          • ferry_node
          • road_link
          • road_node
          • street
        • GML examples
      • OS MasterMap Highways Network Getting Started Guide
      • OS MasterMap Highways Network Known Data Issues
    • OS MasterMap Highways Network – Routing and Asset Management Information
      • OS MasterMap Highways Network Overview
      • OS MasterMap Highways Network – Routing and Asset Management Information Technical Specification
        • Specification changes
        • How the product fits together
        • Routing and Asset Management feature information
          • Data types
            • NetworkReference
            • NodeReference
            • LinkReference
            • PointReference
            • Multiple Link Reference
            • Point Reference
        • Common attribution
        • Rights and Restrictions
          • Feature types
            • AccessRestriction
            • HighwayDedication
            • TurnRestriction
            • RestrictionForVehicles
        • Advisory information
          • Feature types
            • Hazard
            • Structure
        • Asset management
          • Feature types
            • Maintenance
            • Reinstatement
            • Special Designation
        • Change-Only Update (COU) supply
        • Code lists and enumerations
          • ChangeValue
          • UseTypeValue
          • VehicleTypeValue
          • LoadTypeValue
          • NamedDateValue
          • NamedDayValue
          • NamedPeriodValue
          • NamedTimeValue
          • AccessRestrictionValue
          • DedicationValue
          • TurnRestrictionValue
          • RestrictionTypeValue
          • HazardTypeValue
          • StructureTypeValue
          • ReinstatementTypeValue
          • SpecialDesignationTypeValue
          • LinkDirectionValue
          • MaintenanceValue
        • Data types
          • TemporalPropertyType
          • DateRangeType
          • DayPropertyType
          • TimePropertyType
          • TimeRangeType
          • TrafficRegulationOrderType
          • VehicleQualifier
          • ResponsibleAuthority
          • Identifier
        • GML overview
        • GeoPackage overview
          • Access Restriction
          • Highway Dedication
          • Turn Restriction
          • Restriction for Vehicles
          • Hazard Point
          • Hazard
          • Structure Point
          • Structure
          • Maintenance
          • Maintenance Point
          • Maintenance Line
          • Maintenance Area
          • Reinstatement
        • GML examples
      • OS MasterMap Highways Network Getting Started Guide
      • OS MasterMap Highways Network Known Data Issues
    • OS MasterMap Highways Network – Paths
      • OS MasterMap Highways Network Overview
      • OS MasterMap Highways Network – Paths Technical Specification
        • Specification changes
        • Structure
        • How does the product fit together?
        • Change-Only Update (COU) Supply
        • Feature types
          • PathLink
          • PathNode
          • ConnectingLink
          • ConnectingNode
          • Path
          • Street
          • FerryLink
          • FerryNode
          • FerryTerminal
          • Maintenance
          • Reinstatement
          • SpecialDesignation
          • HighwayDedication
        • Structured data types
          • Identifier
          • CycleFacilityType
          • ElevationGainType
          • OperationalStateType
          • DesignatedNameType
          • ResponsibleAuthority
          • TemporalPropertyType
          • DateRangeType
          • DayPropertyType
          • TimePropertyType
          • TimeRangeType
        • Data types
          • NetworkReferenceLocation
          • Temporal Properties
        • Code lists and Enumerations
          • ChangeValue
          • FormOfWayValue
          • SurfaceTypeValue
          • MatchStatusValue
          • ProvenanceSourceValue
          • CycleFacilityValue
          • FormOfRoadNodeValue
          • RoadNodeClassificationValue
          • OperationalStateValue
          • StreetTypeValue
          • ConnectionTypeValue
          • FormOfWaterwayNodeValue
          • DedicationValue
          • ReinstatementTypeValue
          • SpecialDesignationTypeValue
          • MaintenanceValue
        • GML Overview
        • GeoPackage overview
          • connecting_link
          • connecting_node
          • ferry_link
          • ferry_node
          • ferry_terminal
          • highway_dedication
          • maintenance
          • path
          • path_link
          • path_node
          • reinstatement
          • special_designation
          • street
        • Vector tiles overview
          • connecting_node
          • ferry_link
          • ferry_node
          • highway_dedication
          • path_link
          • path_node
          • street
        • GML examples
      • OS MasterMap Highways Network Getting Started Guide
      • OS MasterMap Highways Network Known Data Issues
    • OS MasterMap Water Network Layer
      • Release Notes
        • April 2025
        • January 2025
        • October 2024
        • April 2024
      • OS MasterMap Water Network Layer Overview
        • Feature types in the product
        • Standards and CRS
        • Product supply
      • OS MasterMap Water Network Layer Getting Started Guide
        • Requirements for using the data
        • Structure of the supplied data
        • Loading GML data into a GIS
        • Creating a water network using ESRI software
      • OS MasterMap Water Network Layer Technical Specification
        • Product notes
          • January 2022 product notes
        • Product structure
        • Feature types
          • WatercourseLink
          • HydroNode
        • Structured data types
          • LinearReference
          • PointReference
        • Code lists and enumerations
          • LinkDirectionValue
          • WatercourseFormValue
          • WatercourseProvenanceValue
          • LevelOfDetailValue
          • ReasonForChangeValue
          • VerticalPositionValue
          • HydroNodeCategoryValue
          • WatercourseTypeValue
        • Feature types for future release
          • WatercourseSeparatedCrossing
          • WatercourseLinkSet
          • WatercourseInteraction
        • GML overview
        • GeoPackage overview
          • WatercourseLink
          • HydroNode
        • Vector tiles overview
          • Attribute naming differences
          • HydroNode
        • Data provenance
        • Additional resources
      • OS MasterMap Water Network Layer Downloads
      • OS MasterMap Water Network Layer Known Data Issues
    • 🆕OS Multi-modal Routing Network
      • OS MRN Overview
        • Product supply
        • Coordinate reference system
        • Feature types overview
          • Transport Link overview
          • Transport Node overview
          • Turn Restriction overview
        • OpenStreetMap schema
        • Modal change
        • Grade separation
      • OS MRN Getting Started Guide
        • pgRouting
        • GraphHopper
        • OpenTripPlanner
        • Working with OpenStreetMap files
      • OS MRN Technical Specification
        • Feature types
          • Transport Link
          • Transport Node
          • Turn Restriction
        • Code lists
          • AccessValue
          • BridgeValue
          • FordValue
          • HighwayValue
          • JunctionValue
          • OneWayValue
          • RailServiceValue
          • RailwayValue
          • RestrictionLabelValue
          • RouteValue
          • TunnelValue
      • OS MRN Known Data Issues
    • OS Open Rivers
      • Release notes
        • April 2025
        • October 2024
      • OS Open Rivers Overview
        • OS Open Rivers Data
        • Product supply
        • Coverage and file sizes
      • OS Open Rivers Technical Specification
        • Product structure
        • Feature types
          • WatercourseLink
          • HydroNode
        • Code lists
          • LinkDirectionValue
          • WatercourseFormValue
          • HydroNodeCategoryValue
        • GML overview
        • Esri shapefile overview
          • WatercourseLink
          • HydroNode
        • GeoPackage overview
          • GeoPackage format changes April 2023
          • WatercourseLink
          • HydroNode
        • Vector tiles overview
          • Vector tiles schema
          • WatercourseLink
          • HydroNode
      • OS Open Rivers Downloads
      • OS Open Rivers Known Data Issues
    • OS Open Roads
      • Release notes
        • April 2025
        • October 2024
        • April 2024
      • OS Open Roads Overview
        • OS Open Roads Data
        • Feature types
        • Product supply
        • Coverage and file sizes
      • OS Open Roads Technical Specification
        • Product structure
        • Feature types
          • RoadLink
          • RoadNode
          • MotorwayJunction
        • Code lists and enumerations
          • RoadClassificationValue
          • RoadFunctionValue
          • FormOfWayValue
          • RoadStructureValue
          • FormOfRoadNodeValues
        • GML overview
        • Esri shapefile overview
          • RoadLink
          • RoadNode
        • GeoPackage overview
          • RoadLink
          • RoadNode
        • Vector Tiles overview
          • RoadLink
          • RoadNode
          • MotorwayJunction
      • OS Open Roads Downloads
      • OS Open Roads Known Data Issues
  • Topography
    • Topography Portfolio Information
    • OS MasterMap Topography Layer – Building Height Attribute
      • Release Notes
        • April 2025
        • October 2024
        • April 2024
      • OS MasterMap Topography Layer – Building Height Attribute Overview
        • Product details
        • Product attributes
        • Product supply information
        • Product data
      • OS MasterMap Topography Layer – Building Height Attribute Getting Started Guide
        • What do I need to use this data?
        • Product supply information
        • Managing .csv data
        • Loading data into a GIS
        • Joining Building Height Attribute data to a OS MasterMap Topography Layer
        • Importing data into a database
      • OS MasterMap Topography Layer – Building Height Attribute Technical Specification
        • Product supply
        • Product structure
        • Feature type
          • Building Height Attribute
        • Code list
          • BHA_ConfValue
        • Example record
      • OS MasterMap Topography Layer – Building Height Attribute Downloads
      • OS MasterMap Topography Layer – Building Height Attribute Known Data Issues
    • OS MasterMap Greenspace Layer
      • Release Notes
        • April 2025
        • October 2024
      • OS MasterMap Greenspace Layer Overview
        • Product details
        • Function and form
        • Data creation
        • Product supply
      • OS MasterMap Greenspace Layer Getting Started Guide
        • Using GeoPackage and Vector Tile formats
        • QGIS
        • ArcGIS ArcMap
        • PostGIS
        • MapInfo Professional
        • CadCorp Map Modeller
        • Loading the data
      • OS MasterMap Greenspace Layer Technical Specification
        • Product classification and structure
        • Feature types
          • Greenspace Area
        • Code lists and Enumerations
          • Function
          • Form
        • Function hierarchy
        • Form hierarchy
        • OS Open Greenspace lookup table
        • GML overview
        • ESRI Shapefile overview
        • GeoPackage overview
        • Vector Tiles overview
        • Attribute mapping
        • GML example record
      • OS MasterMap Greenspace Layer Downloads
      • OS MasterMap Greenspace Layer Known Data Issues
    • OS MasterMap Sites Layer
      • Release Notes
        • April 2025
        • October 2024
        • April 2024
      • OS MasterMap Sites Layer Overview
        • Product details
        • Product supply
        • Coordinate reference systems
        • Product glossary
      • OS MasterMap Sites Layer Getting Started Guide
        • QGIS
        • Cadcorp SIS Desktop
        • FME Desktop
        • ArcGIS and ArcMap
        • MapInfo Professional
        • Astun Technology GML/KML Loader
      • OS MasterMap Sites Layer Technical Specification
        • Data specification overview
        • Theme definitions
          • Air transport
          • Education
          • Medical care
          • Rail transport
          • Road transport
          • Water transport
          • Utility or industrial
        • Functional site extent overview
        • Access point overview
        • Routing point overview
        • Feature types
          • FunctionalSite
          • AccessPoint
          • RoutingPoint
        • Enumerations
          • FunctionStatusValue
          • StakeholderRoleValue
          • ExtentDefinitionValue
          • AccessTypeValue
          • NatureOfAccessValue
          • AccessUseRestrictionValue
          • AccessMechanismValue
          • AccessDirectionValue
          • ReasonForChangeValue
        • Code lists
          • FunctionValue
          • FunctionThemeValue
        • Geometry
        • GML
        • GeoPackage
          • Functional Site attributes
          • Access Point attributes
          • Routing Point
        • Vector tiles
      • OS MasterMap Sites Layer Downloads
      • OS MasterMap Sites Layer Known Data Issues
    • OS MasterMap Topography Layer
      • Release Notes
        • April 2025
        • March 2025
        • February 2025
        • December 2024
        • November 2024
        • September 2024
        • August 2024
        • June 2024
        • May 2024
        • April 2024
      • Product Refresh Dates
      • OS MasterMap Topography Layer Overview
        • Product purpose
        • Product applications
        • Product details
        • Styling
        • Product themes
        • Coordinate reference systems
        • Product supply
          • Product supply mechanism and options
          • GML supply options
          • Updating data holdings
        • Change management and data association
      • OS MasterMap Topography Layer Getting Started Guide
        • QGIS
        • ArcGIS Pro
        • ArcMap
        • Cadcorp SIS Desktop Express
        • MapInfo Professional
        • FME Desktop
        • Astun Technology GML/KML Loader
      • OS MasterMap Topography Layer Getting Started with Styling Guide
        • Styling method overview
        • How to use the SQL scripts
        • How to use the stylesheets
        • Attribute tables
      • OS MasterMap Topography Layer Standard Styling Specification
        • Cartographic styling
        • Cartographic style definitions
        • Cartographic styling for new descriptive terms
          • TopographicArea
          • TopographicLine
          • TopographicPoint
        • Shared symbol geometry
        • Point symbols
        • Fill symbols
        • Compound symbols
        • Pattern definitions
        • Line styles
        • Cartographic descriptive term style definitions
      • OS MasterMap Topography Layer Technical Specification
        • File naming
        • Supply mechanisms
        • Product themes
          • Administrative Boundaries
          • Buildings
          • Heritage and Antiquities
          • Land
          • Rail
          • Roads, Tracks, and Paths
          • Structures
          • Terrain and Height
          • Water
        • Feature types
          • TopographicPoint
          • TopographicLine
          • TopographicArea
          • BoundaryLine
          • CartographicSymbol
          • CartographicText
        • Complex attributes
          • ChangeHistoryType
          • HeightAboveDatumType
          • HeightAboveGroundLevelType
          • TextRenderingType
        • Enumerations
          • ThemeValue
          • DescriptiveGroupValue
          • AccuracyOfPositionValue
          • ReasonForChangeValue
          • PhysicalPresenceValue
          • MakeValue
          • DescriptiveTermValue
        • Geometric data types
        • Topology
        • Seamless data supply
        • Feature lifecycles and tracking change
          • Polygon feature lifecycle rules
          • Line feature lifecycle rules
          • General point feature lifecycle rules
        • GML overview
          • GML examples
        • GeoPackage overview
        • Vector tiles overview
        • Attribute mapping
        • Geometry mapping
        • COU overview
        • Feature code lookup table
        • Change value descriptions
        • Administrative boundary alignments
      • OS MasterMap Topography Layer Downloads
      • OS MasterMap Topography Layer Known Data Issues
    • OS Open Greenspace
      • Release Notes
        • April 2025
        • October 2024
      • OS Open Greenspace Overview
        • Product details
        • Data creation
        • Product supply
      • OS Open Greenspace Getting Started Guide
        • QGIS
        • ESRI ArcGIS
        • PostGIS
        • MapInfo Professional
        • Cadcorp Map Modeller
      • OS Open Greenspace Technical Specification
        • Data structure
        • Feature types
          • GreenspaceSite
          • AccessPoint
        • Code lists
          • AccessTypeValue
          • FunctionValue
        • GML overview
        • GeoPackage overview
        • Vector tiles overview
        • Attribute mapping
      • OS Open Greenspace Downloads
      • OS Open Greenspace Known Data Issues
  • Identifiers
    • Identifiers Portfolio Information
    • OS Open Identifiers Family Information
    • OS Open Linked Identifiers
      • Release Notes
        • May 2025 – Epoch 43
        • March 2025 – Epoch 42
        • February 2025 – Epoch 41
        • January 2025 – Epoch 40
        • November 2024 – Epoch 39
        • October 2024 – Epoch 38
        • August 2024 – Epoch 37
        • July 2024 – Epoch 36
      • OS Open Linked Identifiers Overview
        • Uses of OS Open Linked Identifiers
        • Product details
      • OS Open Linked Identifiers Getting Started Guide
        • Linked identifiers
        • Instructions to install/load into a database application
      • OS Open Linked Identifiers Technical Specification
        • Product structure
        • Linked Identifier data (CSV) attributes
        • Product Version Information file (JSON)
        • RoadLink_TOID_TopographicArea_TOID_2
        • Road_TOID_TopographicArea_TOID_3
        • Street_USRN_TopographicArea_TOID_4
        • BLPU_UPRN_TopographicArea_TOID_5
        • RoadLink_TOID_Road_TOID_7
        • RoadLink_TOID_Street_USRN_8
        • BLPU_UPRN_RoadLink_TOID_9
        • Road_TOID_Street_USRN_10
        • BLPU_UPRN_Street_USRN_11
        • ORRoadLink_GUID_RoadLink_TOID_12
        • ORRoadNode_GUID_RoadLink_TOID_13
      • OS Open Linked Identifiers Known Data Issues
    • OS Open TOID
      • Release Notes
        • May 2025 – Epoch 43
        • March 2025 – Epoch 42
        • February 2025 – Epoch 41
        • January 2025 – Epoch 40
        • November 2024 – Epoch 39
        • September 2024 – Epoch 38
        • August 2024 – Epoch 37
        • July 2024 – Epoch 36
      • OS Open TOID Overview
        • Product supply
        • Coordinate reference system
      • OS Open TOID Technical Specification
        • Product Details
        • Data structure
        • Product Supply
      • OS Open TOID Known Data Issues
    • OS Open UPRN
      • Release Notes
        • May 2025
        • March 2025
        • February 2025
        • December 2024
        • November 2024
        • September 2024
      • OS Open UPRN Overview
        • Product supply
        • Coordinate reference systems
      • OS Open UPRN Technical Specification
        • Feature type
          • OS Open UPRN
      • OS Open UPRN Known Data Issues
    • OS Open USRN
      • Release Notes
        • May 2025
        • April 2025
        • March 2025
        • February 2025
        • January 2025
        • December 2024
        • November 2024
        • October 2024
        • September 2024
        • August 2024
        • July 2024
      • OS Open USRN Overview
        • Product supply
        • Coordinate reference system
      • OS Open USRN Technical Specification
        • Street Type
        • Feature type
          • OS Open USRN
        • Geometry
        • Metadata
      • OS Open USRN Known Data Issues
  • Height and imagery
    • Height and Imagery Portfolio Information
    • 🆕OS 3D Mesh (Beta Product)
      • 🆕OS 3D Mesh Overview
        • 🆕Product data
        • 🆕Feature modelling
      • 🆕OS 3D Mesh Getting Started Guide
        • 🆕Importing an OS integrated mesh model into ArcGIS Pro
          • 🆕Navigation
          • 🆕Scene lighting
          • 🆕Adding additional vector data
          • 🆕Adding 2D polygon layers
          • 🆕Adding 3D line feature layers
          • 🆕Adding point datasets
          • 🆕Adding miscellaneous 3D models
          • 🆕'Line of sight' analysis
          • 🆕Animation
        • 🆕Importing an OS integrated mesh model into ArcGIS Online
          • 🆕Adding data to AGOL
          • 🆕Creating a 3D scene
          • 🆕Adding an OS mesh
          • 🆕Spatial reference systems
          • 🆕Defining 'Layer Style' options
          • 🆕Polygon layers
          • 🆕Line layers
          • 🆕Point layers
          • 🆕Text labels
          • 🆕Custom 3D models
          • 🆕Spatial analysis and reporting
    • OS Terrain 5
      • OS Terrain 5 Overview
        • Product supply
        • Pre-requisites
        • Data structure
        • Source data
        • The National Grid
      • OS Terrain 5 Technical Specification
        • Grid data
        • Contour data
        • GML Feature types
        • Esri shapefile
        • Metadata
        • Product glossary
      • OS Terrain 5 Downloads
      • OS Terrain 5 Known Data Issues
    • OS Terrain 50
      • OS Terrain 50 Overview
        • Product supply
        • Pre-requisites
        • Data structure
        • Source data
      • OS Terrain 50 Technical Specification
        • Grid data
        • Contour data
        • GML Feature Types
        • Esri Shapefile
        • GeoPackage
        • Vector tiles
        • Metadata
        • Product glossary
      • OS Terrain 50 Downloads
      • OS Terrain 50 Known Data Issues
    • OS MasterMap Imagery Layer
      • OS MasterMap Imagery Layer Technical Specification
        • Image appearance
        • Ancillary files
      • OS MasterMap Imagery Layer Downloads
      • OS MasterMap Imagery Layer Known Data Issues
  • Getting Started
    • Getting Started with GeoPackage
      • Accessing GeoPackage data via GIS software
      • Loading GeoPackage into a database
      • Reading GeoPackage data via FME
    • Getting Started with Vector Tiles
      • Installing vector tiles in GIS software
      • Using OS styles to get started in Mapbox Studio
      • Hosting and serving your own vector tiles
      • Using OS styles on vector tiles you have created
      • Product downloads
  • Resources
    • 📅Product Refresh Dates
    • 📣Product Announcements
    • 🗺️PSGA Product Summary
    • 🔍OS MasterMap Product Viewer Tool
    • OS Product Roadmap
    • End of Life Product Notices
      • End of Life Notice – OS MasterMap Water Network Layer
    • Accessibility
    • Contact Us
    • 📃Terms and Conditions
    • 📔Open Identifiers Policy
    • Use of NSG and OS Data
Powered by GitBook
On this page
  • What you need
  • Introduction to graph data and routing
  • Routing algorithms
  • Checking that PostGIS and pgRouting are enabled
  • Loading the GeoPackage
  • Loading the Protocolbuffer Binary Format
  • Running a test route with pgRouting (Dijkstra)

Was this helpful?

Export as PDF
  1. Networks
  2. OS Multi-modal Routing Network
  3. OS MRN Getting Started Guide

pgRouting

Instructions to get you started with using OS MRN in pgRouting.

PreviousOS MRN Getting Started GuideNextGraphHopper

Last updated 5 months ago

Was this helpful?

extends the PostGIS / PostgreSQL geospatial database to provide routing and other network analysis functionality.

What you need

  • (or any other database explorer)

  • (optional – see note below)

QGIS provides a few useful options for pgRouting and the handling of OS MRN data:

  • Part of the QGIS install gives access to a command prompt that comes with some spatial functionality for data management without needing much setup (this will be covered in more detail below).

  • It can be linked in with the PostgreSQL database to allow for visualising existing tables and pgRouting results.

  • It gives access to pgRouting in plugin form, allowing routes to be calculated within QGIS using those database tables.

Introduction to graph data and routing

A graph data structure is made up of nodes and edges. With OS MRN, these are represented by the mrn_ntwk_transportnode and mrn_ntwk_transportlink layers.

Nodes are points that represent junctions connecting one or more paths on a network. This is where a decision is made on where to turn next (or stop if you are at the end of the route). All nodes must connect to an edge.

Edges connect two or more nodes, and represent the distance between them. They can be directed (for example, one-way restrictions) or undirected (any direction allowed). Their default direction will be in the direction the edge was digitised, from startpoint to endpoint.

The distance is a reflection of the cost to travel along that edge. At the base level, this would be the length of the edge (in metres), but can be extended with maths to incorporate things like the speed of travel along the edge.

Using other data you may have, cost can be extended even further, for example, to take into account factors that might make a traveller use a particular route more (such as scenery, traffic, points of interest and gradient).

With pgRouting, these costs can be applied to each edge in a particular direction, that is, in direction (the direction of digitising) and in reverse direction. This enables the user to have more control on what the routing algorithms look for.

Routing algorithms

Routing algorithms are a set of rules used to determine the best path between two or more points. Some of the common ones used are:

Checking that PostGIS and pgRouting are enabled

In more recent versions of PostgreSQL, both PostGIS and pgRouting are enabled as standard, ready to be used.

To check this:

  1. Load pgAdmin4 (or your chosen database explorer).

  2. Highlight your database.

  3. Open a SQL window and run:

CREATE EXTENSION postgis;

ERROR: extension "postgis" already exists
SQL state: 42710

In the example above, PostGIS was already enabled. However, in the example below, pgRouting wasn't enabled, but is now ready to be used within the selected database:

CREATE EXTENSION pgrouting;

Query returned successfully in 151 msec.

Loading the GeoPackage

  1. Before loading the GPKG, check that environment variables have been set up so that PostgreSQL will be recognised by the command prompt. Admin permissions are required to edit these variables.

  2. Add the folder location of your PostgreSQL install to the User->Path and System->Path variables.

  3. Once you have done this, open the OSGeo4W Shell (as shown above), and type in ogr2ogr. If everything is setup correctly, you should see:

  4. To then load the OS MRN GPKG into your PostgreSQL database, navigate to the location of the file, and type the following:

ogr2ogr -f PostgreSQL -progress -gt 65000 -a_srs EPSG:4326 -lco SCHEMA=<schema> -lco GEOMETRY_NAME=geometry PG:"dbname=<dbname> host=<host> port=<port> user=<user> password=<password>" OSMulti-modalRoutingNetwork.gpkg

You could alternatively use the following command (where /vsizip/ is a file handler that allows reading ZIP archives on-the-fly without decompressing them beforehand):

ogr2ogr -f PostgreSQL -progress -gt 65000 -a_srs EPSG:4326 -lco SCHEMA=<schema> -lco GEOMETRY_NAME=geometry PG:"dbname=<dbname> host=<host> port=<port> user=<user> password=<password>" /vsizip/OSMulti-modalRoutingNetwork.zip/OSMulti-modalRoutingNetwork.gpkg

This will load the three layers of the OS MRN GPKG into the defined database schema, and create the relevant spatial indexes.

  1. You can now add some further attribute indexes for the unique identifiers:

CREATE INDEX mrn_ntwk_turnrestriction_wayid_idx ON <schema>.mrn_ntwk_transportlink USING btree (wayid);
CREATE INDEX mrn_ntwk_turnrestriction_nodeid_idx ON <schema>.mrn_ntwk_transportnode USING btree (nodeid);
CREATE INDEX mrn_ntwk_turnrestriction_relationid_idx ON <schema>.mrn_ntwk_turnrestriction USING btree (relationid);
  1. With all the indexes added, you can create a basic edge table on which to start routing:

CREATE TABLE <schema>.edge_table AS
SELECT
  wayid AS id,
  name,
  foot,
  highway,
  railway,
  rail,
  ferry,
  toll,
  junction,
  route,
  ford,
  bridge,
  tunnel,
  service,
  oneway,
  ST_Length(geometry::geography) AS length,
  (STRING_TO_ARRAY(nodes, ',')::int[])[1] AS source, -- converts the nodes string to an array and extracts the first index item
  (STRING_TO_ARRAY(nodes, ',')::int[])[array_upper((STRING_TO_ARRAY(nodes, ',')::int[]), 1)] AS target, -- converts the nodes string to an array and extracts the last index item
  CASE
    WHEN oneway = '-1' THEN -1
    ELSE ST_Length(geometry::geography) -- returns the geometry length in metres
  END AS cost,
  CASE
    WHEN oneway = 'yes' THEN -1
    ELSE ST_Length(geometry::geography) -- returns the geometry length in metres
  END AS reverse_cost,
  geometry
FROM <schema>.mrn_ntwk_transportlink;

CREATE UNIQUE INDEX edge_table_id_idx ON <schema>.edge_table (id);
CREATE INDEX edge_table_source_idx ON <schema>.edge_table (source);
CREATE INDEX edge_table_target_idx ON <schema>.edge_table (target);

CREATE INDEX edge_table_geometry_idx
  ON <schema>.edge_table
  USING gist
  (geometry);

Loading the Protocolbuffer Binary Format

  1. To find out if you have Java installed, open PowerShell / Command Prompt (Windows) or Shell (Linux) and type:

java -version
  1. Once osm2po is downloaded and extracted, open and edit the config file to satisfy your usage requirements (for example, change the wtr.finalMask = car line (use Ctrl+F to search the file) to car,foot,bike travel types).

  2. Uncomment the following line (this helps with getting the topology into a format pgRouting likes):

postp.0.class = de.cm.osm2po.plugins.postp.PgRoutingWriter
  1. When this is done, and assuming Java is installed and accessible, open a command prompt and navigate to the location of the .pbf file, and then run the following:

java -jar osm2po-core-5.5.11-signed.jar cmd=c prefix=osm2po OSMulti-modalRoutingNetwork.pbf

This will create the .sql file version of the .pbf file.

  1. Import the .sql file version of the .pbf file to the PostgreSQL database using the following:

psql -h <host name> -U <username> -d <database name> -q -f <filename>.sql

In this newly created table, each record should have a source and target node, and an integer classification. Cost and reverse cost columns are also applied. Cost in this case is worked out using distance (in km) and speed (kmh) defined in the config file.

Running a test route with pgRouting (Dijkstra)

The mandatory things pgRouting needs to be able to route with are a routing table, start node and end node. Once the routing table is created, pgRouting can be run straight away.

For the following example, OS MRN sample data has been used, with the GPKG data being loaded into PostgreSQL via ogr2ogr (with the SQL run to create basic edge table). A couple of waypoints have been selected in Exeter, and a sample Dijkstra route query can look like the one below:

WITH start AS (
  SELECT source
    FROM <schema>.edge_table
    ORDER BY geometry <-> ST_SetSRID(
      ST_GeomFromText('POINT (-3.53532 50.72046)'), 4326)
    LIMIT 1
),
destination AS (
  SELECT source
    FROM <schema>.edge_table
    ORDER BY geometry <-> ST_SetSRID(
      ST_GeomFromText('POINT (-3.52133 50.72294)'), 4326)
    LIMIT 1
)
SELECT ST_Union(geometry) AS route
  FROM pgr_dijkstra(
    'SELECT id, source, target, cost, reverse_cost FROM <schema>.edge_table',
    ARRAY(SELECT source FROM start),
    ARRAY(SELECT source FROM destination)
  ) AS di
  JOIN <schema>.edge_table AS pt
  ON di.edge = pt.id;

This route query is made up of three parts:

  • First, the 'start' section finds the start node to use from the network that is closest to the point given. This could be fed in to the query in multiple ways, such as clicking on a web map, or using a plugin.

  • Second, the 'destination' section finds the start node closest to the destination point given.

  • The final part includes the pgr_dijkstra function, reading in the start and destination ids, and returns a merged geometry of links that form the route.

When visualised in QGIS, the result should look similar to this:

It should be noted that the above route query does not take any of the additional OS MRN attribution into account. This means that every edge will be considered when calculating the shortest path. We can therefore apply some additional logic in the SELECT statement to facilitate either vehicular or pedestrian routing:

'SELECT id, source, target, cost, reverse_cost
  FROM <schema>.edge_table
  WHERE "rail" = ''no''
    AND "highway" IN (
      ''motorway'',
      ''motorway_link'',
      ''trunk'',
      ''trunk_link'',
      ''primary'',
      ''primary_link'',
      ''secondary'',
      ''secondary_link'',
      ''tertiary'',
      ''tertiary_link'',
      ''unclassified'',
      ''residential''
    )'
'SELECT id, source, target, cost, reverse_cost
  FROM <schema>.edge_table
  WHERE "foot" != ''no''
    AND "rail" = ''no''
    AND "highway" IS NOT NULL'

– The classic shortest path algorithm, from one node to another, using a directed or non-directed graph.

– Using Dijkstra, finds all nodes that are reachable within a set distance using a directed or non-directed graph. Produces results that can then be visualised as an isochrone polygon.

(turn restriction shortest path) – Runs similar to Dijkstra, with the addition of using restriction information. With OS MRN, this restriction data is available in the mrn_ntwk_turnrestriction layer. These turn restrictions reference the edges from the network layer and are used as a lookup as the algorithm works.

The easiest way to load the GeoPackage (GPKG) into PostgreSQL via is to use the OSGeo4W Shell that is provided with the QGIS install package:

is a cross platform tool written in Java that can be used to parse OS MRN PBF data and make it routable in pgRouting.

Press Enter. If Java is installed, you should see a few lines of text detailing which version you have installed. If you get something along the lines of "java is not recognized ...", please download JVM [or OpenJDK] from .

Vehicular routing – Determines the best vehicular route where the edges are deemed to be .

Pedestrian routing – Determines where the edges can be traversed by and whether there is designated infrastructure for walking.

🆕
pgRouting
PostgreSQL database
PostGIS spatial extension
pgAdmin4
QGIS
pgr_dijkstra
pgr_drivingdistance
pgr_trsp
ogr2ogr
osm2po
https://adoptium.net/en-GB/
roads
foot
QGIS install package menu.
OSGeo4W Shell UI showing QGIS>ogr2ogr options.
QGIS UI showing an example query result of a route in Exeter in the map area.
QGIS install package menu.
QGIS UI showing an example query result of a route in Exeter in the map area.
OSGeo4W Shell UI showing QGIS>ogr2ogr options.