By default the web service does not allow routing through the following:-
The Kiel and Corinth canals, the Magellan, Bonifacio, Messina straits, the Bahama channel, West of Taiwan and Laeso Island, Chelyuskina, inshore at North Cape, and the Norwegian inshore and Indreleia routing. All other passages, capes and canals are open and used.
When the GetShortestDistance method does not obtain the route that you require we provide two methods of obtaining the 'correct' distance, 'going via' and 'user defined routing' These two methods are explained below.
Going 'via'
This is the simplest method and, for the majority of cases, will provide the route you require without using the more complex method of user defined routing.
There are 21 via codes available, these are tabulated below and are also obtainable via the GetViaCodes method.
VV0010 |
Via the shortest route using the default routing restrictions |
VV0180 |
Via the Suez Canal |
VV0150 |
Via the Panama Canal |
VV0050 |
Via the Cape of Good Hope |
VV0040 |
Via Cape Horn |
VV0100 |
Via the Great Belt or Korsor |
VV0110 |
Via the Kiel Canal |
VV0080 |
Via the Dover Strait |
VV0020 |
Via the Bonifacio Strait |
VV0140 |
Via the Messina Strait |
VV0160 |
Via the Singapore Strait |
VV0120 |
Via the Lombok Strait |
VV0190 |
Via the Sunda Strait |
VV0170 |
Via South West Australia |
VV0200 |
Via Thursday Island |
VV0210 |
Via West of Taiwan |
VV0130 |
Via the Magellan Strait |
VV0090 |
Via East of South America (Cape Calcanhar) |
VV0030 |
Via the Cape Cod Canal |
VV0070 |
Via the Chesapeake and Delaware Canal |
VV0060 |
Via Chelyuskina (the North East Passage route over the North of Russia) |
The via method 'hides' away the complexity of manipulating routing points and is often the simplest, quickest and most effective method of obtaining the majority of distances and routes.
Where routing 'via' does not get you the route you require, you can define your own routing restrictions and obtain the distance using GetDistanceUsingRouting method.
The 'engine' that powers the web service is very efficient at seeking out the shortest route and needs to be constrained by closing off canals, capes, straits and other passages in order to force it into going the way you want.
When specifying route options, you do so via a code string, the default routing string is shown below.
014ENVGOCASLPANSUZDOVHINLOMSINSUNCHOCGHNCATHUSP1600SP0400SP0410SP5110SP5100SP5120RP4700RP4710RP9995RP9993RP9998SP0700
The code string can be broken into two distinct parts, Primary and Advanced routing, this is analogous with the methods used to display routing options in a number of our commercial products.
Primary routing options are the first part of the string and consist of 3 digits (representing the number of primary codes that follow) and then a number of 3 character codes, there are no spaces between these codes nor the number at the start of the string, thus
014ENVGOCASLPANSUZDOVHINLOMSINSUNCHOCGHNCATHU
translates to 14 primary codes which are ENV, GOC, ASL, PAN, SUZ, DOV, HIN, LOM, SIN, SUN, CHO, CGH, NCA and THU
The three character codes indicate to the engine that the Routing option is IN USE or OPEN, the absence of a code indicates that the routing option is NOT in use or is CLOSED. Experience has shown that these Primary codes provide sufficient routing control for the majority of routes obtained from the tables.
The following table shows the complete list of codes that are available in the current release of the tables, you can sort this table by clicking on the column header.
ENV |
Env/Nav/Reg Routing - Use to ensure routes are environmentally 'friendly' and comply with applicable rules and regulations. |
ASL |
ASL Compliance - Archipelagic Sea Lanes are followed in Indonesian waters |
GOC |
Anti-Piracy routing - Use to route via the Gulf of Aden Transit corridor and where applicable, East of Madagascar avoiding the piracy areas off Somali waters |
KIE |
Keil Canal - Between the Baltic and the North Sea. |
SUZ |
Suez Canal - Between the Mediterranean and the Red Sea. |
PAN |
Panama Canal - Between the Caribbean and the Pacific Ocean |
COR |
Corinth Canal - Between the Aegean Sea and the Ionian Sea |
DOV |
Dover Strait - Between France and the UK |
SIN |
Singapore Strait - The Southern tip of Asia |
SUN |
Sunda Strait - Between Sumatra and Java |
LOM |
Lombok Strait - Between Bali and Lombok Island |
THU |
Thursday Island - Passage between Australia and New Guinea |
HIN |
Hainan Strait - Between Hainan Island and the Chinese mainland |
CGH |
Cape of Good Hope - The southern tip of Africa |
CHO |
Cape Horn - The southern tip of South America |
MAG |
Magellan Strait - Between South America and Tierra del Fuego north of Cape Horn |
BON |
Bonifacio Strait - Between Corsica and Sardinia |
MES |
Messina Strait - Between Sicily and the Italian mainland |
BAH |
Bahama Channel - Between the coast of Cuba and the Bahama Islands |
WOT |
West of Taiwan - The route between the island of Taiwan and the Chinese mainland |
NCA |
North Cape - At the northern tip of Norway |
NCI |
North Cape Inshore - The inshore route at the northen tip of Norway |
CHL |
Chelyuskina - On the Northern seaboard of Russia in the North East passage |
NIR |
Norway - Indreleia Routing - routes through the fjords on the west coast of Norway |
N10 |
Norway - Inshore routing - Inshore routing round Norway |
CCN |
Cape Cod Canal - Northern entrance - Sandwich Oil Terminal can only be approached from the North |
CCS |
Cape Cod Canal - Southern entrance |
CDE |
Chesapeake and Delaware Canal - Eastern entrance |
CDW |
Chesapeake and Delaware Canal - Western entrance |
The remainder of the routing string consists of groups of 6 character codes that represent Advanced routing points, unlike Primary codes the presence of a code in this section of the string indicates to the service that this routing point should be CLOSED. The Advanced routing codes are provided to allow absolute control over routing when abnormal conditions apply or specific routing is required. Routing through Korsor (the Great Belt) rather than the Sound or avoiding routing via the Bangka passage are examples.
The default Advanced codes are show below and expanded into a table for clarity.
SP1600SP0400SP0410SP5110SP5100SP5120RP4700RP4710RP9995RP9993RP9998SP0700
SP1600 |
West of Gotland |
SP0400 |
Route B West of Laeso Island - North bound |
SP0410 |
Route B West of Laeso Island - South bound |
SP5110 |
Maas Junction North Bound |
SP5100 |
Maas Junction South Bound |
SP5120 |
Steenbank |
RP4700 |
Terschellinger Bank - NE Bound |
RP4710 |
Terschellinger Bank - SW Bound |
RP9995 |
ASL - Buru Passage |
RP9993 |
ASL - Gorong |
RP9998 |
ASL - Selat Gelasha |
SP0700 |
Bangka Passage |
This single 'routing string' is capable of controlling all routing in the web service.
You may have noticed that by default a number of Advanced codes are missing from the default routing string, these are:-
KIE, COR, MAG, BON, MES, BAH, WOT, NCI, CHL, NIR, N10, CCN, CCS, CDE and CDW - All these Primary routing points are closed by default as are Advanced routing points SP1600, SP0400, SP0410, SP5110, SP5100, SP5120, RP4700, RP4710, RP9995, RP9993, RP9998 and SP0700.
There is a relationship between certain Primary and Advanced routing points. A method called GetRoutingPointXml has been provided that returns XML that contains the full list of Primary and Advanced routing points and their relationships where it exists. This XML is used in the demonstration program to load a property inspector, you should study the demo source to familiarise yourself with setting Primary routing points and ensuring that Advanced routing points 'follow'.
Example North Cape Inshore
Routing through North Cape Inshore TSS's (Traffic Separation Schemes) is controlled by the Primary code of NCI. There are however two Advanced routing points for North Cape Inshore, North Cape - Inshore - East Bound and North Cape - Inshore - West Bound. When the Primary North Cape Inshore routing point is closed, these two will be closed automatically and should NOT BE opened unless the Primary routing point is also Open. In the demo project the object inspector for Routing points will disable the two advanced routing points whilst the Primary routing point is closed and enable them when it is open, see the display of Advanced routing below (note that Chelyuskina is also disabled as the Primary is also closed):
The table below shows which Primary routing points are 'controllers' and which Advanced routing points they control:
Controls Advanced routing point codes |
||
---|---|---|
ASL |
ASL Compliance |
RP9998,RP9995,RP9993,SP0700 |
CCN |
Cape Cod Canal - North |
SP9996 |
CCS |
Cape Cod Canal - South |
SP9997 |
CDE |
Chesapeake and Delaware Canal - East |
SP9994 |
CDW |
Chesapeake and Delaware Canal - West |
SP9995 |
BAH |
Bahama Channel |
RP2500,RP2510 |
BON |
Bonifacio Strait |
RP1300,RP1310 |
DOV |
Dover Strait |
CP1700,CP1710 |
HIN |
Hainan Island |
SP5011,SP5012 |
LOM |
Lombok Strait |
CP2500 |
MAG |
Magellan Strait |
SP0060 |
MES |
Messina Strait |
RP2200,RP2210 |
SIN |
Singapore Strait |
CP3800,CP3810,CP2900,CP2910 |
SUN |
Sunda Strait |
CP3300,CP3310 |
CHO |
Cape Horn |
CP1100 |
CGH |
Cape of Good Hope |
CP1300 |
CHL |
Chelyuskina |
SP1500 |
NCA |
North Cape |
SP1700,SP1710 |
NCI |
North Cape - Inshore |
SP1800,SP1810 |
NIR |
Norway - Indreleia Routing |
SP3050,SP3040,SP3010,SP3060,SP3020,SP3030,SP3000 |
N10 |
Norway - Inshore routing |
SP3100,SP3110,SP3120 |
THU |
Thursday Island |
CP3500 |
WOT |
West of Taiwan |
RP3100 |
You are urged to look at the Demo program for the web service which includes the source code. This will give you a valuable insight into the way that user defined routing is designed to work.