M602

The M602 is one of those rare things: a motorway designed to get traffic straight into a city centre. That's a very literal description, too, because a surprising proportion of the M602 is built in a perfectly straight line, running directly alongside the Manchester to Liverpool railway, the world's first inter-city line built in the early 1800s.

It was - like all urban motorways, it often seems - meant to go further than it does today. It terminates in Salford, transferring most of its traffic onto the A57 Regent Road towards Manchester city centre. The proposed extension of the M602, that would have carried it east to connect directly to the A57(M) Mancunian Way, never materialised.

Nonetheless, the M602 does its job very well. It's mostly sunken into a deep trench, minimising its impact on its neighbours, a range of residential areas and Eccles town centre. It links to the M60 and M62 at its western end, giving easy access both to Manchester's outer ring road and to onward motorway connections towards Preston, Liverpool and (for the brave) places outside Lancashire.

At its western terminus, the M602 flows directly into the M62 towards Liverpool. The two of them look for all the world like one motorway passing straight through, in an obvious east-west line from central Liverpool to central Manchester. There's a reason for that. The original plan was for one motorway between the two cities, to be called M52. It didn't happen because, while the earliest parts of the motorway were under construction, the idea of a coast-to-coast motorway called the M62 gained favour, and the western part of M52 was borrowed to create the section of M62 from Liverpool to the outskirts of Manchester. That left a stub of motorway towards Manchester city centre that didn't seem quite right for the M52 number, and so the M602 that we know and occasionally love was born.

Start
Worsley
End
Salford
Passes
None
Connects to
Length
4 miles
Open Junctions Section
Nov 1971 J1-2 Eccles Bypass
Dec 1982 J2-3 Eccles → Salford

Exit list

Drupal\Core\Render\Markup(1)
  • contents
  • Available methods (4)
  • protected string -> string(233) " <!-- THEME DEBUG --> <!-- THEME HOOK: 'views_view_field' --> <!-- BEGIN OUTPUT …"
    
    <!-- THEME DEBUG -->
    <!-- THEME HOOK: 'views_view_field' -->
    <!-- BEGIN OUTPUT from 'core/modules/views/templates/views-view-field.html.twig' -->
    
    <!-- END OUTPUT from 'core/modules/views/templates/views-view-field.html.twig' -->
    
    
  • public static create($string) -> string|\Drupal\Component\Render\MarkupInterface
    Creates a Markup object if necessary.
    
    If $string is equal to a blank string then it is not necessary to create a
    Markup object. If $string is an object that implements MarkupInterface it
    is returned unchanged.
    
    @param mixed $string
    The string to mark as safe. This value will be cast to a string.
    
    @return string|\Drupal\Component\Render\MarkupInterface
    A safe string.
    
    Defined in .../core/lib/Drupal/Component/Render/MarkupTrait.php:32
    public __toString() -> string
    Returns the string version of the Markup object.
    
    @return string
    The safe string content.
    
    Defined in .../core/lib/Drupal/Component/Render/MarkupTrait.php:51
    public count() -> int
    Returns the string length.
    
    @return int
    The length of the string.
    
    Defined in .../core/lib/Drupal/Component/Render/MarkupTrait.php:61
    public jsonSerialize() -> string
    Returns a representation of the object for use in JSON serialization.
    
    @return string
    The safe string content.
    
    Defined in .../core/lib/Drupal/Component/Render/MarkupTrait.php:71
Drupal\Core\Render\Markup(1)
  • contents
  • Available methods (4)
  • protected string -> string(780) " <!-- THEME DEBUG --> <!-- THEME HOOK: 'views_view_field' --> <!-- BEGIN OUTPUT …"
    
    <!-- THEME DEBUG -->
    <!-- THEME HOOK: 'views_view_field' -->
    <!-- BEGIN OUTPUT from 'core/modules/views/templates/views-view-field.html.twig' -->
    
    
    <!-- THEME DEBUG -->
    <!-- THEME HOOK: 'image_formatter' -->
    <!-- BEGIN OUTPUT from 'core/modules/image/templates/image-formatter.html.twig' -->
      
    
    <!-- THEME DEBUG -->
    <!-- THEME HOOK: 'image' -->
    <!-- BEGIN OUTPUT from 'themes/bootstrap/templates/system/image.html.twig' -->
    <img src="/sites/default/files/motorway/m/rbnr-an-dc.gif" width="50" height="50" typeof="foaf:Image" />
    
    <!-- END OUTPUT from 'themes/bootstrap/templates/system/image.html.twig' -->
    
    
    
    <!-- END OUTPUT from 'core/modules/image/templates/image-formatter.html.twig' -->
    
    
    <!-- END OUTPUT from 'core/modules/views/templates/views-view-field.html.twig' -->
    
    
  • public static create($string) -> string|\Drupal\Component\Render\MarkupInterface
    Creates a Markup object if necessary.
    
    If $string is equal to a blank string then it is not necessary to create a
    Markup object. If $string is an object that implements MarkupInterface it
    is returned unchanged.
    
    @param mixed $string
    The string to mark as safe. This value will be cast to a string.
    
    @return string|\Drupal\Component\Render\MarkupInterface
    A safe string.
    
    Defined in .../core/lib/Drupal/Component/Render/MarkupTrait.php:32
    public __toString() -> string
    Returns the string version of the Markup object.
    
    @return string
    The safe string content.
    
    Defined in .../core/lib/Drupal/Component/Render/MarkupTrait.php:51
    public count() -> int
    Returns the string length.
    
    @return int
    The length of the string.
    
    Defined in .../core/lib/Drupal/Component/Render/MarkupTrait.php:61
    public jsonSerialize() -> string
    Returns a representation of the object for use in JSON serialization.
    
    @return string
    The safe string content.
    
    Defined in .../core/lib/Drupal/Component/Render/MarkupTrait.php:71
Drupal\Core\Render\Markup(1)
  • contents
  • Available methods (4)
  • protected string -> string(233) " <!-- THEME DEBUG --> <!-- THEME HOOK: 'views_view_field' --> <!-- BEGIN OUTPUT …"
    
    <!-- THEME DEBUG -->
    <!-- THEME HOOK: 'views_view_field' -->
    <!-- BEGIN OUTPUT from 'core/modules/views/templates/views-view-field.html.twig' -->
    
    <!-- END OUTPUT from 'core/modules/views/templates/views-view-field.html.twig' -->
    
    
  • public static create($string) -> string|\Drupal\Component\Render\MarkupInterface
    Creates a Markup object if necessary.
    
    If $string is equal to a blank string then it is not necessary to create a
    Markup object. If $string is an object that implements MarkupInterface it
    is returned unchanged.
    
    @param mixed $string
    The string to mark as safe. This value will be cast to a string.
    
    @return string|\Drupal\Component\Render\MarkupInterface
    A safe string.
    
    Defined in .../core/lib/Drupal/Component/Render/MarkupTrait.php:32
    public __toString() -> string
    Returns the string version of the Markup object.
    
    @return string
    The safe string content.
    
    Defined in .../core/lib/Drupal/Component/Render/MarkupTrait.php:51
    public count() -> int
    Returns the string length.
    
    @return int
    The length of the string.
    
    Defined in .../core/lib/Drupal/Component/Render/MarkupTrait.php:61
    public jsonSerialize() -> string
    Returns a representation of the object for use in JSON serialization.
    
    @return string
    The safe string content.
    
    Defined in .../core/lib/Drupal/Component/Render/MarkupTrait.php:71
Junction   Westbound               Eastbound  
1
0.0 km
Ring Road South
Stockport
Manchester Airport
M60 Link
Ring Road North
Bolton
Leeds
M60 Link (M62 Link)
Liverpool
Warrington
M62 Link (M6 Link)








M60








M60
(M62)
N/A
LanesLanesLanesLanesLanes LanesLanesLanesLanesLanes
0 miles, 3 lanes 0 miles, 3 lanes
2
4.0 km
Eccles
Hope Hospital
Trafford Park
A576
A576 A576 Eccles
Hope Hospital
Trafford Park
A576
LanesLanesLanesLanesLanes LanesLanesLanesLanesLanes
0 miles, 2 lanes 0 miles, 2 lanes
3
N/A (A56)










(A6)










Oldham
Pendlebury
(A6)
Stretford
Old Trafford
(A56)
Manchester (C)
Hulme
A57
(A57(M) Link)
LanesLanesLanesLanes SignsSigns LanesLanesLanesLanes SignsSigns
0 miles, lanes 0 miles, lanes
Routes

Picture credits