Hex Artifact Content
Not logged in

Artifact f2379178c86021c350cbcc881ff7053d30e10fa8:

Wiki page [VirtualRouting] by sandro 2018-04-25 07:25:40.
0000: 44 20 32 30 31 38 2d 30 34 2d 32 35 54 30 37 3a  D 2018-04-25T07:
0010: 32 35 3a 34 30 2e 36 33 31 0a 4c 20 56 69 72 74  25:40.631.L Virt
0020: 75 61 6c 52 6f 75 74 69 6e 67 0a 50 20 37 34 39  ualRouting.P 749
0030: 63 63 35 32 62 36 32 37 39 32 30 61 63 38 38 66  cc52b627920ac88f
0040: 65 34 62 39 63 66 35 33 36 38 31 39 34 39 38 39  e4b9cf5368194989
0050: 64 35 66 33 61 0a 55 20 73 61 6e 64 72 6f 0a 57  d5f3a.U sandro.W
0060: 20 31 35 30 39 35 38 0a 3c 61 20 68 72 65 66 3d   150958.<a href=
0070: 22 68 74 74 70 73 3a 2f 2f 77 77 77 2e 67 61 69  "https://www.gai
0080: 61 2d 67 69 73 2e 69 74 2f 66 6f 73 73 69 6c 2f  a-gis.it/fossil/
0090: 6c 69 62 73 70 61 74 69 61 6c 69 74 65 2f 77 69  libspatialite/wi
00a0: 6b 69 3f 6e 61 6d 65 3d 34 2e 33 2e 30 2d 64 6f  ki?name=4.3.0-do
00b0: 63 22 3e 62 61 63 6b 3c 2f 61 3e 3c 68 72 3e 3c  c">back</a><hr><
00c0: 62 72 3e 0d 0a 3c 68 31 3e 54 61 62 6c 65 20 6f  br>..<h1>Table o
00d0: 66 20 43 6f 6e 74 65 6e 74 73 3c 2f 68 31 3e 0d  f Contents</h1>.
00e0: 0a 31 20 2d 20 3c 61 20 68 72 65 66 3d 22 23 69  .1 - <a href="#i
00f0: 6e 74 72 6f 22 3e 49 6e 74 72 6f 64 75 63 74 69  ntro">Introducti
0100: 6f 6e 3c 2f 61 3e 3c 62 72 3e 0d 0a 32 20 2d 20  on</a><br>..2 - 
0110: 3c 61 20 68 72 65 66 3d 22 23 73 61 6d 70 6c 65  <a href="#sample
0120: 22 3e 54 68 65 20 73 61 6d 70 6c 65 2f 74 65 73  ">The sample/tes
0130: 74 20 44 42 3c 2f 61 3e 3c 62 72 3e 0d 0a 33 20  t DB</a><br>..3 
0140: 2d 20 3c 61 20 68 72 65 66 3d 22 23 63 72 65 61  - <a href="#crea
0150: 74 65 22 3e 43 72 65 61 74 69 6e 67 20 56 69 72  te">Creating Vir
0160: 74 75 61 6c 52 6f 75 74 69 6e 67 20 54 61 62 6c  tualRouting Tabl
0170: 65 73 3c 2f 61 3e 3c 62 72 3e 0d 0a 34 20 2d 20  es</a><br>..4 - 
0180: 3c 61 20 68 72 65 66 3d 22 23 66 72 6f 6d 5f 74  <a href="#from_t
0190: 6f 22 3e 53 6f 6c 76 69 6e 67 20 63 6c 61 73 73  o">Solving class
01a0: 69 63 20 53 68 6f 72 74 65 73 74 20 50 61 74 68  ic Shortest Path
01b0: 20 70 72 6f 62 6c 65 6d 73 3c 2f 61 3e 3c 62 72   problems</a><br
01c0: 3e 0d 0a 35 20 2d 20 3c 61 20 68 72 65 66 3d 22  >..5 - <a href="
01d0: 23 6d 75 6c 74 69 22 3e 53 6f 6c 76 69 6e 67 20  #multi">Solving 
01e0: 6d 75 6c 74 69 2d 64 65 73 74 69 6e 61 74 69 6f  multi-destinatio
01f0: 6e 20 53 68 6f 72 74 65 73 74 20 50 61 74 68 20  n Shortest Path 
0200: 70 72 6f 62 6c 65 6d 73 3c 2f 61 3e 3c 62 72 3e  problems</a><br>
0210: 0d 0a 36 20 2d 20 3c 61 20 68 72 65 66 3d 22 23  ..6 - <a href="#
0220: 69 73 6f 63 68 72 6f 6e 65 22 3e 53 6f 6c 76 69  isochrone">Solvi
0230: 6e 67 20 49 73 6f 63 68 72 6f 6e 65 20 70 72 6f  ng Isochrone pro
0240: 62 6c 65 6d 73 3c 2f 61 3e 3c 62 72 3e 0d 0a 37  blems</a><br>..7
0250: 20 2d 20 3c 61 20 68 72 65 66 3d 22 23 74 73 70   - <a href="#tsp
0260: 22 3e 53 6f 6c 76 69 6e 67 20 54 53 50 20 28 74  ">Solving TSP (t
0270: 72 61 76 65 6c 69 6e 67 20 73 61 6c 65 73 6d 61  raveling salesma
0280: 6e 29 20 70 72 6f 62 6c 65 6d 73 3c 2f 61 3e 3c  n) problems</a><
0290: 62 72 3e 0d 0a 38 20 2d 20 3c 61 20 68 72 65 66  br>..8 - <a href
02a0: 3d 22 23 70 32 70 22 3e 53 6f 6c 76 69 6e 67 20  ="#p2p">Solving 
02b0: 50 6f 69 6e 74 2d 74 6f 2d 50 6f 69 6e 74 20 70  Point-to-Point p
02c0: 72 6f 62 6c 65 6d 73 3c 2f 61 3e 3c 62 72 3e 0d  roblems</a><br>.
02d0: 0a 3c 62 72 3e 3c 68 72 3e 0d 0a 3c 68 31 3e 3c  .<br><hr>..<h1><
02e0: 61 20 6e 61 6d 65 3d 22 69 6e 74 72 6f 22 3e 31  a name="intro">1
02f0: 20 2d 20 49 6e 74 72 6f 64 75 63 74 69 6f 6e 3c   - Introduction<
0300: 2f 61 3e 3c 2f 68 31 3e 0d 0a 50 72 65 76 69 6f  /a></h1>..Previo
0310: 75 73 20 76 65 72 73 69 6f 6e 73 20 6f 66 20 53  us versions of S
0320: 70 61 74 69 61 4c 69 74 65 20 74 72 61 64 69 74  patiaLite tradit
0330: 69 6f 6e 61 6c 6c 79 20 73 75 70 70 6f 72 74 65  ionally supporte
0340: 64 20 61 20 3c 62 3e 70 75 72 65 20 53 51 4c 20  d a <b>pure SQL 
0350: 72 6f 75 74 69 6e 67 20 6d 6f 64 75 6c 65 3c 2f  routing module</
0360: 62 3e 20 74 68 61 74 20 77 61 73 20 6e 61 6d 65  b> that was name
0370: 64 20 3c 61 20 68 72 65 66 3d 22 68 74 74 70 73  d <a href="https
0380: 3a 2f 2f 77 77 77 2e 67 61 69 61 2d 67 69 73 2e  ://www.gaia-gis.
0390: 69 74 2f 66 6f 73 73 69 6c 2f 6c 69 62 73 70 61  it/fossil/libspa
03a0: 74 69 61 6c 69 74 65 2f 77 69 6b 69 3f 6e 61 6d  tialite/wiki?nam
03b0: 65 3d 56 69 72 74 75 61 6c 4e 65 74 77 6f 72 6b  e=VirtualNetwork
03c0: 2b 72 65 6c 6f 61 64 65 64 22 3e 56 69 72 74 75  +reloaded">Virtu
03d0: 61 6c 4e 65 74 77 6f 72 6b 3c 2f 61 3e 2e 3c 62  alNetwork</a>.<b
03e0: 72 3e 3c 62 72 3e 0d 0a 53 69 6e 63 65 20 76 65  r><br>..Since ve
03f0: 72 73 69 6f 6e 20 3c 62 3e 35 2e 30 2e 30 3c 2f  rsion <b>5.0.0</
0400: 62 3e 20 61 20 62 72 61 6e 64 20 6e 65 77 20 3c  b> a brand new <
0410: 62 3e 72 6f 75 74 69 6e 67 20 6d 6f 64 75 6c 65  b>routing module
0420: 3c 2f 62 3e 20 28 6d 6f 72 65 20 61 64 76 61 6e  </b> (more advan
0430: 63 65 64 20 61 6e 64 20 73 6f 70 68 69 73 74 69  ced and sophisti
0440: 63 61 74 65 64 29 20 69 73 20 61 76 61 69 6c 61  cated) is availa
0450: 62 6c 65 2c 20 74 68 61 74 20 69 73 20 63 61 6c  ble, that is cal
0460: 6c 65 64 20 3c 62 3e 56 69 72 74 75 61 6c 52 6f  led <b>VirtualRo
0470: 75 74 69 6e 67 3c 2f 62 3e 2e 3c 62 72 3e 0d 0a  uting</b>.<br>..
0480: 54 68 65 20 6e 6f 77 20 6f 62 73 6f 6c 65 74 65  The now obsolete
0490: 20 3c 62 3e 56 69 72 74 75 61 6c 4e 65 74 77 6f   <b>VirtualNetwo
04a0: 72 6b 3c 2f 62 3e 20 69 73 20 73 74 69 6c 6c 20  rk</b> is still 
04b0: 73 75 70 70 6f 72 74 65 64 20 62 79 20 76 65 72  supported by ver
04c0: 73 69 6f 6e 20 3c 62 3e 35 2e 30 2e 30 3c 2f 62  sion <b>5.0.0</b
04d0: 3e 20 73 6f 20 61 73 20 74 6f 20 6e 6f 74 20 63  > so as to not c
04e0: 61 75 73 65 20 61 6e 20 61 62 72 75 70 74 20 62  ause an abrupt b
04f0: 72 65 61 6b 20 74 6f 20 61 6c 72 65 61 64 79 20  reak to already 
0500: 65 78 69 73 74 69 6e 67 20 61 70 70 6c 69 63 61  existing applica
0510: 74 69 6f 6e 73 2c 20 62 75 74 20 77 69 6c 6c 20  tions, but will 
0520: 70 72 65 73 75 6d 61 62 6c 79 20 62 65 20 64 69  presumably be di
0530: 73 63 6f 6e 74 69 6e 75 65 64 20 69 6e 20 66 75  scontinued in fu
0540: 74 75 72 65 20 76 65 72 73 69 6f 6e 73 2e 3c 62  ture versions.<b
0550: 72 3e 0d 0a 55 73 69 6e 67 20 3c 62 3e 56 69 72  r>..Using <b>Vir
0560: 74 75 61 6c 52 6f 75 74 69 6e 67 3c 2f 62 3e 20  tualRouting</b> 
0570: 69 6e 73 74 65 61 64 20 6f 66 20 3c 62 3e 56 69  instead of <b>Vi
0580: 72 74 75 61 6c 4e 65 74 77 69 72 6b 3c 2f 62 3e  rtualNetwirk</b>
0590: 20 69 73 20 77 61 72 6d 6c 79 20 72 65 63 6f 6d   is warmly recom
05a0: 6d 65 6e 64 65 64 20 66 6f 72 20 61 6e 79 20 6e  mended for any n
05b0: 65 77 20 64 65 76 65 6c 6f 70 6d 65 6e 74 2e 20  ew development. 
05c0: 0d 0a 3c 68 32 3e 54 68 65 6f 72 65 74 69 63 61  ..<h2>Theoretica
05d0: 6c 20 66 6f 75 6e 64 61 74 69 6f 6e 73 20 2d 20  l foundations - 
05e0: 61 6e 20 75 6c 74 72 61 2d 71 75 69 63 6b 20 72  an ultra-quick r
05f0: 65 63 61 6c 6c 3c 2f 68 32 3e 0d 0a 41 6c 6c 20  ecall</h2>..All 
0600: 3c 62 3e 52 6f 75 74 69 6e 67 20 61 6c 67 6f 72  <b>Routing algor
0610: 69 74 68 6d 73 3c 2f 62 3e 20 28 3c 69 3e 61 6b  ithms</b> (<i>ak
0620: 61 3c 2f 69 3e 20 3c 62 3e 53 68 6f 72 74 65 73  a</i> <b>Shortes
0630: 74 20 50 61 74 68 3c 2f 62 3e 20 61 6c 67 6f 72  t Path</b> algor
0640: 69 74 68 6d 73 29 20 61 72 65 20 62 61 73 65 64  ithms) are based
0650: 20 6f 6e 20 74 68 65 20 6d 61 74 68 65 6d 61 74   on the mathemat
0660: 69 63 73 20 6f 66 20 74 68 65 20 3c 61 20 68 72  ics of the <a hr
0670: 65 66 3d 22 68 74 74 70 73 3a 2f 2f 65 6e 2e 77  ef="https://en.w
0680: 69 6b 69 70 65 64 69 61 2e 6f 72 67 2f 77 69 6b  ikipedia.org/wik
0690: 69 2f 47 72 61 70 68 5f 74 68 65 6f 72 79 22 3e  i/Graph_theory">
06a0: 47 72 61 70 68 20 74 68 65 6f 72 79 3c 2f 61 3e  Graph theory</a>
06b0: 20 6f 72 20 74 6f 20 62 65 20 6d 6f 72 65 20 70   or to be more p
06c0: 72 65 63 69 73 65 3a 20 6f 6e 20 3c 62 3e 57 65  recise: on <b>We
06d0: 69 67 68 74 65 64 20 47 72 61 70 68 73 3c 2f 62  ighted Graphs</b
06e0: 3e 2e 0d 0a 3c 62 72 3e 0d 0a 3c 69 6d 67 20 73  >...<br>..<img s
06f0: 72 63 3d 22 68 74 74 70 73 3a 2f 2f 77 77 77 2e  rc="https://www.
0700: 67 61 69 61 2d 67 69 73 2e 69 74 2f 67 61 69 61  gaia-gis.it/gaia
0710: 2d 73 69 6e 73 2f 72 6f 75 74 69 6e 67 2d 66 69  -sins/routing-fi
0720: 67 73 2f 6e 65 74 77 6f 72 6b 2e 70 6e 67 22 20  gs/network.png" 
0730: 61 6c 74 3d 22 6e 65 74 77 6f 72 6b 22 3e 0d 0a  alt="network">..
0740: 3c 62 72 3e 0d 0a 41 20 74 6f 70 6f 6c 6f 67 69  <br>..A topologi
0750: 63 61 6c 6c 79 20 76 61 6c 69 64 20 3c 62 3e 4e  cally valid <b>N
0760: 65 74 77 6f 72 6b 3c 2f 62 3e 20 69 73 20 61 20  etwork</b> is a 
0770: 64 61 74 61 73 65 74 20 74 68 61 74 20 66 75 6c  dataset that ful
0780: 66 69 6c 6c 73 20 74 68 65 20 66 6f 6c 6c 6f 77  fills the follow
0790: 69 6e 67 20 72 65 71 75 69 72 65 6d 65 6e 74 73  ing requirements
07a0: 3a 0d 0a 3c 75 6c 3e 0d 0a 3c 6c 69 3e 41 6c 6c  :..<ul>..<li>All
07b0: 20 69 74 65 6d 73 20 69 6e 20 74 68 65 20 64 61   items in the da
07c0: 74 61 73 65 74 20 61 72 65 20 63 61 6c 6c 65 64  taset are called
07d0: 20 3c 62 3e 4c 69 6e 6b 73 3c 2f 62 3e 20 28 3c   <b>Links</b> (<
07e0: 69 3e 61 6b 61 3c 2f 69 3e 20 3c 62 3e 41 72 63  i>aka</i> <b>Arc
07f0: 73 3c 2f 62 3e 29 2c 20 61 6e 64 20 61 72 65 20  s</b>), and are 
0800: 65 78 70 65 63 74 65 64 20 74 6f 20 72 65 70 72  expected to repr
0810: 65 73 65 6e 74 20 73 6f 6d 65 20 6f 72 69 65 6e  esent some orien
0820: 74 65 64 20 63 6f 6e 6e 65 63 74 69 6f 6e 20 6a  ted connection j
0830: 6f 69 6e 69 6e 67 20 74 77 6f 20 3c 62 3e 4e 6f  oining two <b>No
0840: 64 65 73 3c 2f 62 3e 2e 3c 62 72 3e 0d 0a 3c 75  des</b>.<br>..<u
0850: 3e 45 78 61 6d 70 6c 65 3c 2f 75 3e 3a 20 69 6e  >Example</u>: in
0860: 20 74 68 65 20 61 62 6f 76 65 20 66 69 67 75 72   the above figur
0870: 65 20 4c 69 6e 6b 20 3c 62 3e 4c 33 3c 2f 62 3e  e Link <b>L3</b>
0880: 20 63 6f 6e 6e 65 63 74 73 20 4e 6f 64 65 73 20   connects Nodes 
0890: 3c 62 3e 4e 32 3c 2f 62 3e 20 61 6e 64 20 3c 62  <b>N2</b> and <b
08a0: 3e 4e 35 3c 2f 62 3e 2e 3c 2f 6c 69 3e 0d 0a 3c  >N5</b>.</li>..<
08b0: 6c 69 3e 54 68 65 72 65 66 6f 72 65 20 61 6c 6c  li>Therefore all
08c0: 20 3c 62 3e 4c 69 6e 6b 73 3c 2f 62 3e 20 61 72   <b>Links</b> ar
08d0: 65 20 61 6c 77 61 79 73 20 65 78 70 65 63 74 65  e always expecte
08e0: 64 20 74 6f 20 65 78 70 6c 69 63 69 74 6c 79 20  d to explicitly 
08f0: 72 65 66 65 72 65 6e 63 65 20 61 20 3c 62 3e 53  reference a <b>S
0900: 74 61 72 74 2d 4e 6f 64 65 3c 2f 62 3e 20 28 3c  tart-Node</b> (<
0910: 69 3e 61 6b 61 3c 2f 69 3e 20 3c 62 3e 4e 6f 64  i>aka</i> <b>Nod
0920: 65 2d 46 72 6f 6d 3c 2f 62 3e 29 20 61 6e 64 20  e-From</b>) and 
0930: 61 6e 20 3c 62 3e 45 6e 64 2d 4e 6f 64 65 3c 2f  an <b>End-Node</
0940: 62 3e 20 28 3c 69 3e 61 6b 61 3c 2f 69 3e 20 3c  b> (<i>aka</i> <
0950: 62 3e 4e 6f 64 65 2d 54 6f 3c 2f 62 3e 29 2e 0d  b>Node-To</b>)..
0960: 0a 3c 75 6c 3e 0d 0a 3c 6c 69 3e 4c 69 6e 6b 73  .<ul>..<li>Links
0970: 20 61 72 65 20 61 6c 77 61 79 73 20 3c 62 3e 6f   are always <b>o
0980: 72 69 65 6e 74 65 64 3c 2f 62 3e 2c 20 61 6e 64  riented</b>, and
0990: 20 74 68 65 69 72 20 6e 61 74 75 72 61 6c 20 64   their natural d
09a0: 69 72 65 63 74 69 6f 6e 20 69 73 20 3c 62 3e 46  irection is <b>F
09b0: 72 6f 6d 2d 54 6f 3c 2f 62 3e 3a 0d 0a 3c 75 6c  rom-To</b>:..<ul
09c0: 3e 0d 0a 3c 6c 69 3e 69 6e 20 61 6e 20 3c 62 3e  >..<li>in an <b>
09d0: 75 6e 69 64 69 72 65 63 74 69 6f 6e 61 6c 3c 2f  unidirectional</
09e0: 62 3e 20 4e 65 74 77 6f 72 6b 20 65 61 63 68 20  b> Network each 
09f0: 4c 69 6e 6b 20 69 73 20 61 6e 20 3c 62 3e 6f 6e  Link is an <b>on
0a00: 65 2d 77 61 79 3c 2f 62 3e 20 63 6f 6e 6e 65 63  e-way</b> connec
0a10: 74 69 6f 6e 2e 3c 62 72 3e 0d 0a 49 66 20 74 68  tion.<br>..If th
0a20: 65 20 63 6f 6e 6e 65 63 74 69 6f 6e 20 69 73 20  e connection is 
0a30: 74 6f 20 62 65 20 61 76 61 69 6c 61 62 6c 65 20  to be available 
0a40: 69 6e 20 74 68 65 20 6f 70 70 6f 73 69 74 65 20  in the opposite 
0a50: 64 69 72 65 63 74 69 6f 6e 2c 20 61 20 73 65 63  direction, a sec
0a60: 6f 6e 64 20 4c 69 6e 6b 20 6d 75 73 74 20 62 65  ond Link must be
0a70: 20 65 78 70 6c 69 63 69 74 6c 79 20 64 65 63 6c   explicitly decl
0a80: 61 72 65 64 2e 3c 62 72 3e 0d 0a 3c 75 3e 45 78  ared.<br>..<u>Ex
0a90: 61 6d 70 6c 65 3c 2f 75 3e 3a 20 4c 69 6e 6b 20  ample</u>: Link 
0aa0: 3c 62 3e 58 31 3c 2f 62 3e 20 67 6f 65 73 20 66  <b>X1</b> goes f
0ab0: 72 6f 6d 20 4e 6f 64 65 20 3c 62 3e 41 3c 2f 62  rom Node <b>A</b
0ac0: 3e 20 74 6f 20 4e 6f 64 65 20 3c 62 3e 42 3c 2f  > to Node <b>B</
0ad0: 62 3e 2c 20 61 6e 64 20 4c 69 6e 6b 20 3c 62 3e  b>, and Link <b>
0ae0: 58 32 3c 2f 62 3e 20 67 6f 65 73 20 66 72 6f 6d  X2</b> goes from
0af0: 20 4e 6f 64 65 20 3c 62 3e 42 3c 2f 62 3e 20 74   Node <b>B</b> t
0b00: 6f 20 4e 6f 64 65 20 3c 62 3e 41 3c 2f 62 3e 2e  o Node <b>A</b>.
0b10: 3c 2f 6c 69 3e 0d 0a 3c 6c 69 3e 69 6e 20 61 20  </li>..<li>in a 
0b20: 3c 62 3e 62 69 64 69 72 65 63 74 69 6f 6e 61 6c  <b>bidirectional
0b30: 3c 2f 62 3e 20 4e 65 74 77 6f 72 6b 20 61 6c 6c  </b> Network all
0b40: 20 4c 69 6e 6b 73 20 61 72 65 20 61 73 73 75 6d   Links are assum
0b50: 65 64 20 74 6f 20 65 73 74 61 62 6c 69 73 68 20  ed to establish 
0b60: 61 20 63 6f 6e 6e 65 63 74 69 6f 6e 20 69 6e 20  a connection in 
0b70: 62 6f 74 68 20 64 69 72 65 63 74 69 6f 6e 73 2e  both directions.
0b80: 3c 62 72 3e 0d 0a 44 65 66 69 6e 69 74 69 6e 67  <br>..Definiting
0b90: 20 61 6e 20 3c 62 3e 6f 6e 65 2d 77 61 79 20 63   an <b>one-way c
0ba0: 6f 6e 6e 65 63 74 69 6f 6e 3c 2f 62 3e 20 72 65  onnection</b> re
0bb0: 71 75 69 72 65 73 20 61 6e 20 61 70 70 72 6f 70  quires an approp
0bc0: 72 69 61 74 65 20 61 74 74 72 69 62 75 74 65 20  riate attribute 
0bd0: 74 6f 20 62 65 20 73 65 74 20 28 73 65 65 20 62  to be set (see b
0be0: 65 6c 6f 77 29 2e 3c 2f 6c 69 3e 0d 0a 3c 2f 75  elow).</li>..</u
0bf0: 6c 3e 3c 2f 6c 69 3e 0d 0a 3c 6c 69 3e 54 68 65  l></li>..<li>The
0c00: 20 3c 62 3e 53 74 61 72 74 2d 3c 2f 62 3e 20 61   <b>Start-</b> a
0c10: 6e 64 20 3c 62 3e 45 6e 64 2d 4e 6f 64 65 3c 2f  nd <b>End-Node</
0c20: 62 3e 20 63 6f 75 6c 64 20 65 76 65 6e 74 75 61  b> could eventua
0c30: 6c 6c 79 20 62 65 20 74 68 65 20 73 61 6d 65 2c  lly be the same,
0c40: 20 61 6e 64 20 69 6e 20 74 68 69 73 20 63 61 73   and in this cas
0c50: 65 20 77 65 27 6c 6c 20 68 61 76 65 20 61 20 3c  e we'll have a <
0c60: 62 3e 73 65 6c 66 2d 63 6c 6f 73 65 64 3c 2f 62  b>self-closed</b
0c70: 3e 20 4c 69 6e 6b 2e 3c 2f 6c 69 3e 0d 0a 3c 6c  > Link.</li>..<l
0c80: 69 3e 4e 65 74 77 6f 72 6b 27 73 20 4c 69 6e 6b  i>Network's Link
0c90: 73 20 3c 62 3e 63 61 6e 3c 2f 62 3e 20 65 76 65  s <b>can</b> eve
0ca0: 6e 74 75 61 6c 6c 79 20 64 65 66 69 6e 65 20 61  ntually define a
0cb0: 20 6c 69 6e 65 61 72 20 47 65 6f 6d 65 74 72 79   linear Geometry
0cc0: 20 28 3c 62 3e 4c 49 4e 45 53 54 52 49 4e 47 3c   (<b>LINESTRING<
0cd0: 2f 62 3e 29 20 67 6f 69 6e 67 20 66 72 6f 6d 20  /b>) going from 
0ce0: 74 68 65 20 3c 62 3e 53 74 61 72 74 2d 4e 6f 64  the <b>Start-Nod
0cf0: 65 3c 2f 62 3e 20 74 6f 20 74 68 65 20 3c 62 3e  e</b> to the <b>
0d00: 45 6e 64 2d 4e 6f 64 65 3c 2f 62 3e 2c 20 62 75  End-Node</b>, bu
0d10: 74 20 74 68 69 73 20 69 73 20 61 6e 20 6f 70 74  t this is an opt
0d20: 69 6f 6e 61 6c 20 66 65 61 74 75 72 65 2c 20 6e  ional feature, n
0d30: 6f 74 20 61 20 6d 61 6e 64 61 74 6f 72 79 20 72  ot a mandatory r
0d40: 65 71 75 69 72 65 6d 65 6e 74 2e 3c 2f 6c 69 3e  equirement.</li>
0d50: 0d 0a 3c 6c 69 3e 57 68 61 74 20 69 73 20 61 62  ..<li>What is ab
0d60: 73 6f 6c 75 74 65 6c 79 20 72 65 71 75 69 72 65  solutely require
0d70: 64 20 69 73 20 74 68 61 74 20 65 61 63 68 20 3c  d is that each <
0d80: 62 3e 4c 69 6e 6b 3c 2f 62 3e 20 6d 75 73 74 20  b>Link</b> must 
0d90: 65 78 70 6c 69 63 69 74 6c 79 20 72 65 66 65 72  explicitly refer
0da0: 65 6e 63 65 20 69 74 73 20 3c 62 3e 4e 6f 64 65  ence its <b>Node
0db0: 73 3c 2f 62 3e 2e 3c 2f 6c 69 3e 0d 0a 3c 2f 75  s</b>.</li>..</u
0dc0: 6c 3e 3c 2f 6c 69 3e 0d 0a 3c 6c 69 3e 41 20 4e  l></li>..<li>A N
0dd0: 65 74 77 6f 72 6b 20 73 75 70 70 6f 72 74 69 6e  etwork supportin
0de0: 67 20 47 65 6f 6d 65 74 72 69 65 73 20 69 73 20  g Geometries is 
0df0: 61 20 3c 62 3e 53 70 61 74 69 61 6c 20 4e 65 74  a <b>Spatial Net
0e00: 77 6f 72 6b 3c 2f 62 3e 3b 20 6f 74 68 65 72 77  work</b>; otherw
0e10: 69 73 65 20 61 20 4e 65 74 77 6f 72 6b 20 6c 61  ise a Network la
0e20: 63 6b 69 6e 67 20 61 6e 79 20 47 65 6f 6d 65 74  cking any Geomet
0e30: 72 79 20 69 73 20 61 20 3c 62 3e 4c 6f 67 69 63  ry is a <b>Logic
0e40: 61 6c 20 4e 65 74 77 6f 72 6b 3c 2f 62 3e 2e 0d  al Network</b>..
0e50: 0a 3c 75 6c 3e 0d 0a 3c 6c 69 3e 49 6e 20 61 20  .<ul>..<li>In a 
0e60: 3c 62 3e 53 70 61 74 69 61 6c 20 4e 65 74 77 6f  <b>Spatial Netwo
0e70: 72 6b 3c 2f 62 3e 20 61 6c 6c 20 4c 69 6e 6b 73  rk</b> all Links
0e80: 20 3c 62 3e 6d 75 73 74 3c 2f 62 3e 20 68 61 76   <b>must</b> hav
0e90: 65 20 61 20 63 6f 72 72 65 73 70 6f 6e 64 69 6e  e a correspondin
0ea0: 67 20 47 65 6f 6d 65 74 72 79 2e 3c 2f 6c 69 3e  g Geometry.</li>
0eb0: 0d 0a 3c 6c 69 3e 49 6e 20 61 20 3c 62 3e 4c 6f  ..<li>In a <b>Lo
0ec0: 67 69 63 61 6c 20 4e 65 74 77 6f 72 6b 3c 2f 62  gical Network</b
0ed0: 3e 20 61 6c 6c 20 4c 69 6e 6b 73 20 3c 62 3e 61  > all Links <b>a
0ee0: 72 65 20 73 74 72 69 63 74 6c 79 20 66 6f 72 62  re strictly forb
0ef0: 69 64 64 65 6e 3c 2f 62 3e 20 74 6f 20 68 61 76  idden</b> to hav
0f00: 65 20 61 6e 79 20 47 65 6f 6d 65 74 72 79 2e 3c  e any Geometry.<
0f10: 2f 6c 69 3e 0d 0a 3c 6c 69 3e 49 6e 20 61 20 3c  /li>..<li>In a <
0f20: 62 3e 53 70 61 74 69 61 6c 20 4e 65 74 77 6f 72  b>Spatial Networ
0f30: 6b 3c 2f 62 3e 20 62 6f 74 68 20 74 68 65 20 3c  k</b> both the <
0f40: 62 3e 53 74 61 72 74 50 6f 69 6e 74 3c 2f 62 3e  b>StartPoint</b>
0f50: 20 61 6e 64 20 3c 62 3e 45 6e 64 50 6f 69 6e 74   and <b>EndPoint
0f60: 3c 2f 62 3e 20 6f 66 20 65 61 63 68 20 4c 69 6e  </b> of each Lin
0f70: 6b 27 73 20 3c 62 3e 4c 49 4e 45 53 54 52 49 4e  k's <b>LINESTRIN
0f80: 47 3c 2f 62 3e 20 61 72 65 20 61 6c 77 61 79 73  G</b> are always
0f90: 20 65 78 70 65 63 74 65 64 20 74 6f 20 65 78 61   expected to exa
0fa0: 63 74 6c 79 20 63 6f 69 6e 63 69 64 65 20 77 69  ctly coincide wi
0fb0: 74 68 20 74 68 65 20 63 6f 72 72 65 73 70 6f 6e  th the correspon
0fc0: 64 69 6e 67 20 3c 62 3e 4e 6f 64 65 73 3c 2f 62  ding <b>Nodes</b
0fd0: 3e 2e 3c 2f 6c 69 3e 0d 0a 3c 2f 75 6c 3e 3c 2f  >.</li>..</ul></
0fe0: 6c 69 3e 0d 0a 3c 6c 69 3e 49 6e 20 61 20 3c 62  li>..<li>In a <b
0ff0: 3e 53 70 61 74 69 61 6c 20 4e 65 74 77 6f 72 6b  >Spatial Network
1000: 3c 2f 62 3e 20 61 6c 6c 20 72 65 66 65 72 65 6e  </b> all referen
1010: 63 65 73 20 74 6f 20 74 68 65 20 73 61 6d 65 20  ces to the same 
1020: 3c 62 3e 4e 6f 64 65 3c 2f 62 3e 20 62 79 20 64  <b>Node</b> by d
1030: 69 66 66 65 72 65 6e 74 20 4c 69 6e 6b 73 20 3c  ifferent Links <
1040: 62 3e 6d 75 73 74 3c 2f 62 3e 20 62 65 20 61 6e  b>must</b> be an
1050: 20 65 78 61 63 74 20 6d 61 74 63 68 2e 3c 62 72   exact match.<br
1060: 3e 0d 0a 3c 75 3e 45 78 61 6d 70 6c 65 3c 2f 75  >..<u>Example</u
1070: 3e 3a 20 4e 6f 64 65 20 3c 62 3e 4e 35 3c 2f 62  >: Node <b>N5</b
1080: 3e 20 69 73 20 73 68 61 72 65 64 20 62 79 20 4c  > is shared by L
1090: 69 6e 6b 73 20 3c 62 3e 4c 33 3c 2f 62 3e 2c 20  inks <b>L3</b>, 
10a0: 3c 62 3e 4c 36 3c 2f 62 3e 2c 20 3c 62 3e 4c 37  <b>L6</b>, <b>L7
10b0: 3c 2f 62 3e 2c 20 3c 62 3e 4c 39 3c 2f 62 3e 20  </b>, <b>L9</b> 
10c0: 61 6e 64 20 3c 62 3e 4c 31 30 3c 2f 62 3e 2c 20  and <b>L10</b>, 
10d0: 73 6f 20 61 6c 6c 20 74 68 65 69 72 20 63 6f 72  so all their cor
10e0: 72 65 73 70 6f 6e 64 69 6e 67 20 4c 49 4e 45 53  responding LINES
10f0: 54 52 49 4e 47 53 20 61 72 65 20 65 78 70 65 63  TRINGS are expec
1100: 74 65 64 20 74 6f 20 68 61 76 65 20 74 68 65 20  ted to have the 
1110: 63 6f 72 72 65 73 70 6f 6e 64 69 6e 67 20 65 78  corresponding ex
1120: 74 72 65 6d 69 74 79 20 28 3c 62 3e 53 74 61 72  tremity (<b>Star
1130: 74 2d 3c 2f 62 3e 20 6f 72 20 3c 62 3e 45 6e 64  t-</b> or <b>End
1140: 2d 3c 2f 62 3e 2c 20 64 65 70 65 6e 64 69 6e 67  -</b>, depending
1150: 20 6f 6e 20 74 68 65 20 6f 72 69 65 6e 74 61 74   on the orientat
1160: 69 6f 6e 29 20 70 6f 69 6e 74 73 20 74 68 61 74  ion) points that
1170: 20 6d 75 73 74 20 65 78 61 63 74 6c 79 20 6d 61   must exactly ma
1180: 74 63 68 20 74 68 65 20 6f 74 68 65 72 2e 3c 62  tch the other.<b
1190: 72 3e 0d 0a 41 20 3c 62 3e 74 6f 70 6f 6c 6f 67  r>..A <b>topolog
11a0: 69 63 61 6c 20 69 6e 63 6f 6e 73 69 73 74 65 6e  ical inconsisten
11b0: 63 79 3c 2f 62 3e 20 65 78 69 73 74 73 20 69 66  cy</b> exists if
11c0: 20 61 6e 79 20 6f 66 20 74 68 65 73 65 20 63 6f   any of these co
11d0: 6e 64 69 74 69 6f 6e 73 20 61 72 65 20 6e 6f 74  nditions are not
11e0: 20 73 61 74 69 73 66 69 65 64 2c 20 77 68 69 63   satisfied, whic
11f0: 68 20 6c 65 61 64 73 20 74 6f 20 61 6e 20 3c 62  h leads to an <b
1200: 3e 69 6e 76 61 6c 69 64 3c 2f 62 3e 20 4e 65 74  >invalid</b> Net
1210: 77 6f 72 6b 2e 3c 2f 6c 69 3e 0d 0a 3c 6c 69 3e  work.</li>..<li>
1220: 41 63 63 6f 72 64 69 6e 67 6c 79 20 74 6f 20 74  Accordingly to t
1230: 68 65 20 61 62 6f 76 65 20 70 72 65 6d 69 73 65  he above premise
1240: 73 2c 20 3c 62 3e 4e 6f 64 65 73 3c 2f 62 3e 20  s, <b>Nodes</b> 
1250: 61 72 65 20 6e 65 76 65 72 20 65 78 70 65 63 74  are never expect
1260: 65 64 20 74 6f 20 62 65 20 65 78 70 6c 69 63 69  ed to be explici
1270: 74 6c 79 20 64 65 63 6c 61 72 65 64 20 69 6e 20  tly declared in 
1280: 61 20 73 65 70 61 72 61 74 65 20 54 61 62 6c 65  a separate Table
1290: 2e 3c 62 72 3e 0d 0a 4a 75 73 74 20 61 20 73 69  .<br>..Just a si
12a0: 6e 67 6c 65 20 54 61 62 6c 65 20 64 65 63 6c 61  ngle Table decla
12b0: 72 69 6e 67 20 61 6c 6c 20 3c 62 3e 4c 69 6e 6b  ring all <b>Link
12c0: 73 3c 2f 62 3e 20 69 73 20 72 65 71 75 69 72 65  s</b> is require
12d0: 64 20 69 6e 20 6f 72 64 65 72 20 74 6f 20 66 75  d in order to fu
12e0: 6c 6c 79 20 64 65 66 69 6e 65 20 61 20 74 6f 70  lly define a top
12f0: 6f 6c 6f 67 69 63 61 6c 6c 79 20 76 61 6c 69 64  ologically valid
1300: 20 4e 65 74 77 6f 72 6b 2e 3c 62 72 3e 0d 0a 41   Network.<br>..A
1310: 6c 6c 20 74 68 65 20 4e 6f 64 65 73 20 63 61 6e  ll the Nodes can
1320: 20 74 68 65 6e 20 62 65 20 65 61 73 69 6c 79 20   then be easily 
1330: 65 78 74 72 61 63 74 65 64 20 66 72 6f 6d 20 74  extracted from t
1340: 68 65 20 4c 69 6e 6b 27 73 20 64 65 66 69 6e 69  he Link's defini
1350: 74 69 6f 6e 73 20 61 6e 64 20 74 68 65 20 63 6f  tions and the co
1360: 6f 72 64 69 6e 61 74 65 73 20 66 6f 72 20 65 61  ordinates for ea
1370: 63 68 20 4e 6f 64 65 20 63 61 6e 20 62 65 20 64  ch Node can be d
1380: 69 72 65 63 74 6c 79 20 73 65 74 20 62 79 20 65  irectly set by e
1390: 78 74 72 61 63 74 69 6e 67 20 74 68 65 20 65 78  xtracting the ex
13a0: 74 72 65 6d 65 20 50 6f 69 6e 74 20 6f 66 20 74  treme Point of t
13b0: 68 65 20 63 6f 72 72 65 73 70 6f 6e 64 69 6e 67  he corresponding
13c0: 20 4c 69 6e 65 73 74 72 69 6e 67 73 2e 3c 62 72   Linestrings.<br
13d0: 3e 0d 0a 49 66 20 61 6e 79 20 6d 69 73 6d 61 74  >..If any mismat
13e0: 63 68 20 69 73 20 64 65 74 65 63 74 65 64 20 74  ch is detected t
13f0: 68 65 20 4e 65 74 77 6f 72 6b 20 77 69 6c 6c 20  he Network will 
1400: 62 65 63 6f 6d 65 20 69 6e 76 61 6c 69 64 2e 3c  become invalid.<
1410: 2f 6c 69 3e 0d 0a 3c 6c 69 3e 41 20 3c 62 3e 4c  /li>..<li>A <b>L
1420: 69 6e 6b 3c 2f 62 3e 20 6d 61 79 20 6c 65 67 69  ink</b> may legi
1430: 74 69 6d 61 74 65 6c 79 20 73 65 6c 66 2d 69 6e  timately self-in
1440: 74 65 72 73 65 63 74 20 69 74 73 65 6c 66 20 28  tersect itself (
1450: 65 2e 67 2e 20 66 6f 72 6d 69 6e 67 20 61 20 6c  e.g. forming a l
1460: 6f 6f 70 29 2c 20 61 73 20 73 68 6f 77 6e 20 69  oop), as shown i
1470: 6e 20 74 68 65 20 61 62 6f 76 65 20 66 69 67 75  n the above figu
1480: 72 65 20 62 79 20 4c 69 6e 6b 20 3c 62 3e 4c 31  re by Link <b>L1
1490: 35 3c 2f 62 3e 20 28 6f 72 61 6e 67 65 20 73 70  5</b> (orange sp
14a0: 6f 74 29 2e 3c 2f 6c 69 3e 0d 0a 3c 6c 69 3e 54  ot).</li>..<li>T
14b0: 77 6f 20 3c 62 3e 4c 69 6e 6b 73 3c 2f 62 3e 20  wo <b>Links</b> 
14c0: 6d 61 79 20 6c 65 67 69 74 69 6d 61 74 65 6c 79  may legitimately
14d0: 20 69 6e 74 65 72 73 65 63 74 20 77 68 65 72 65   intersect where
14e0: 20 6e 6f 20 4e 6f 64 65 20 65 78 69 73 74 73 2c   no Node exists,
14f0: 20 61 73 20 65 78 65 6d 70 6c 69 66 69 65 64 20   as exemplified 
1500: 6f 6e 20 74 68 65 20 61 62 6f 76 65 20 66 69 67  on the above fig
1510: 75 72 65 20 62 79 20 4c 69 6e 6b 73 20 3c 62 3e  ure by Links <b>
1520: 4c 34 3c 2f 62 3e 20 61 6e 64 20 3c 62 3e 4c 37  L4</b> and <b>L7
1530: 3c 2f 62 3e 20 28 67 72 65 65 6e 20 73 70 6f 74  </b> (green spot
1540: 29 2e 3c 62 72 3e 0d 0a 54 68 69 73 20 75 73 75  ).<br>..This usu
1550: 61 6c 6c 79 20 68 61 70 70 65 6e 73 20 77 68 65  ally happens whe
1560: 6e 20 6f 6e 65 20 6f 66 20 74 68 65 20 74 77 6f  n one of the two
1570: 20 4c 69 6e 6b 73 20 6f 76 65 72 70 61 73 73 65   Links overpasse
1580: 73 20 74 68 65 20 6f 74 68 65 72 2c 20 6f 72 20  s the other, or 
1590: 77 68 65 72 65 20 73 6f 6d 65 20 74 65 63 68 6e  where some techn
15a0: 69 63 61 6c 20 72 65 73 74 72 69 63 74 69 6f 6e  ical restriction
15b0: 20 65 78 69 73 74 73 20 28 65 2e 67 2e 20 74 77   exists (e.g. tw
15c0: 6f 20 69 6e 73 75 6c 61 74 65 64 20 77 69 72 65  o insulated wire
15d0: 73 20 69 6e 20 61 6e 20 45 6c 65 63 74 72 69 63  s in an Electric
15e0: 61 6c 20 4e 65 74 77 6f 72 6b 29 2e 3c 2f 6c 69  al Network).</li
15f0: 3e 0d 0a 3c 6c 69 3e 3c 62 3e 4c 69 6e 6b 73 3c  >..<li><b>Links<
1600: 2f 62 3e 20 61 72 65 6e 27 74 20 73 74 72 69 63  /b> aren't stric
1610: 74 6c 79 20 72 65 71 75 69 72 65 64 20 74 6f 20  tly required to 
1620: 62 65 20 61 73 73 6f 63 69 61 74 65 64 20 77 69  be associated wi
1630: 74 68 20 61 6e 79 20 73 70 65 63 69 66 69 63 20  th any specific 
1640: 61 74 74 72 69 62 75 74 65 2c 20 62 75 74 20 74  attribute, but t
1650: 68 65 20 66 6f 6c 6c 6f 77 69 6e 67 20 61 74 74  he following att
1660: 72 69 62 75 74 65 73 20 61 72 65 20 61 6c 6d 6f  ributes are almo
1670: 73 74 20 75 6e 69 76 65 72 73 61 6c 6c 79 20 73  st universally s
1680: 75 70 70 6f 72 74 65 64 3a 0d 0a 3c 75 6c 3e 0d  upported:..<ul>.
1690: 0a 3c 6c 69 3e 61 20 3c 62 3e 6e 61 6d 65 3c 2f  .<li>a <b>name</
16a0: 62 3e 20 69 64 65 6e 74 69 66 79 69 6e 67 20 74  b> identifying t
16b0: 68 65 20 4c 69 6e 6b 2e 3c 62 72 3e 0d 0a 3c 75  he Link.<br>..<u
16c0: 3e 45 78 61 6d 70 6c 65 73 3c 2f 75 3e 3a 20 74  >Examples</u>: t
16d0: 68 65 20 3c 69 3e 72 6f 61 64 20 74 6f 70 6f 6e  he <i>road topon
16e0: 79 6d 3c 2f 69 3e 20 69 6e 20 61 20 3c 62 3e 72  ym</i> in a <b>r
16f0: 6f 61 64 20 6e 65 74 77 6f 72 6b 3c 2f 62 3e 2c  oad network</b>,
1700: 20 6f 72 20 74 68 65 20 3c 69 3e 72 69 76 65 72   or the <i>river
1710: 20 6e 61 6d 65 3c 2f 69 3e 20 69 6e 20 61 6e 20   name</i> in an 
1720: 3c 62 3e 68 79 64 72 6f 67 72 61 70 68 69 63 20  <b>hydrographic 
1730: 6e 65 74 77 6f 72 6b 3c 2f 62 3e 2e 3c 2f 6c 69  network</b>.</li
1740: 3e 0d 0a 3c 6c 69 3e 6f 6e 65 20 28 6f 72 20 65  >..<li>one (or e
1750: 76 65 6e 20 6d 6f 72 65 29 20 61 70 70 72 6f 70  ven more) approp
1760: 72 69 61 74 65 20 3c 62 3e 63 6f 73 74 20 76 61  riate <b>cost va
1770: 6c 75 65 3c 2f 62 3e 28 73 29 2e 3c 62 72 3e 0d  lue</b>(s).<br>.
1780: 0a 3c 75 3e 45 78 61 6d 70 6c 65 3c 2f 75 3e 3a  .<u>Example</u>:
1790: 20 74 68 65 20 3c 69 3e 74 69 6d 65 3c 2f 69 3e   the <i>time</i>
17a0: 20 72 65 71 75 69 72 65 64 20 74 6f 20 74 72 61   required to tra
17b0: 76 65 72 73 65 20 74 68 65 20 4c 69 6e 6b 20 28  verse the Link (
17c0: 6d 61 79 20 62 65 20 64 69 73 74 69 6e 67 75 69  may be distingui
17d0: 73 68 65 64 20 62 65 74 77 65 65 6e 20 70 65 64  shed between ped
17e0: 65 73 74 72 69 61 6e 73 2c 20 62 69 63 79 63 6c  estrians, bicycl
17f0: 65 73 2c 20 63 61 72 73 2c 20 6c 6f 72 72 69 65  es, cars, lorrie
1800: 73 20 61 6e 64 20 73 6f 20 6f 6e 29 2e 3c 2f 6c  s and so on).</l
1810: 69 3e 0d 0a 3c 6c 69 3e 61 20 70 61 69 72 20 6f  i>..<li>a pair o
1820: 66 20 3c 62 3e 62 6f 6f 6c 65 61 6e 20 66 6c 61  f <b>boolean fla
1830: 67 73 3c 2f 62 3e 20 28 3c 62 3e 66 72 6f 6d 2d  gs</b> (<b>from-
1840: 74 6f 3c 2f 62 3e 20 61 6e 64 20 3c 62 3e 74 6f  to</b> and <b>to
1850: 2d 66 72 6f 6d 3c 2f 62 3e 29 20 61 72 65 20 69  -from</b>) are i
1860: 6e 74 65 6e 64 65 6e 64 20 74 6f 20 73 70 65 63  ntendend to spec
1870: 69 66 79 20 69 66 20 74 68 65 20 4c 69 6e 6b 20  ify if the Link 
1880: 63 61 6e 20 62 65 20 74 72 61 76 65 72 73 65 64  can be traversed
1890: 20 6f 6e 20 62 6f 74 68 20 64 69 72 65 63 74 69   on both directi
18a0: 6f 6e 73 20 6f 72 20 6a 75 73 74 20 69 6e 20 6f  ons or just in o
18b0: 6e 65 20 28 3c 62 3e 6f 6e 65 2d 77 61 79 3c 2f  ne (<b>one-way</
18c0: 62 3e 29 2e 3c 2f 6c 69 3e 0d 0a 3c 2f 75 6c 3e  b>).</li>..</ul>
18d0: 3c 2f 6c 69 3e 0d 0a 3c 2f 75 6c 3e 0d 0a 3c 68  </li>..</ul>..<h
18e0: 34 3e 4c 6f 67 69 63 61 6c 20 63 6f 6e 63 6c 75  4>Logical conclu
18f0: 73 69 6f 6e 73 3c 2f 68 34 3e 0d 0a 41 6e 79 20  sions</h4>..Any 
1900: 74 6f 70 6f 6c 6f 67 69 63 61 6c 6c 79 20 76 61  topologically va
1910: 6c 69 64 20 3c 62 3e 4e 65 74 77 6f 72 6b 3c 2f  lid <b>Network</
1920: 62 3e 20 28 69 72 72 65 73 70 65 63 74 69 76 65  b> (irrespective
1930: 20 6f 66 20 77 68 65 74 68 65 72 20 69 74 20 69   of whether it i
1940: 73 20 61 20 3c 62 3e 53 70 61 74 69 61 6c 3c 2f  s a <b>Spatial</
1950: 62 3e 20 6f 72 20 3c 62 3e 4c 6f 67 69 63 61 6c  b> or <b>Logical
1960: 3c 2f 62 3e 20 74 79 70 65 29 20 69 73 20 61 20  </b> type) is a 
1970: 76 61 6c 69 64 20 3c 62 3e 47 72 61 70 68 3c 2f  valid <b>Graph</
1980: 62 3e 2e 3c 62 72 3e 0d 0a 41 20 4e 65 74 77 6f  b>.<br>..A Netwo
1990: 72 6b 20 61 6c 6c 6f 77 69 6e 67 20 74 68 65 20  rk allowing the 
19a0: 73 75 70 70 6f 72 74 20 28 64 69 72 65 63 74 20  support (direct 
19b0: 6f 72 20 69 6e 64 69 72 65 63 74 29 20 6f 66 20  or indirect) of 
19c0: 73 6f 6d 65 20 61 70 70 72 6f 70 72 69 61 74 65  some appropriate
19d0: 20 3c 62 3e 63 6f 73 74 20 76 61 6c 75 65 3c 2f   <b>cost value</
19e0: 62 3e 20 69 73 20 61 20 76 61 6c 69 64 20 3c 62  b> is a valid <b
19f0: 3e 57 65 69 67 68 74 65 64 20 47 72 61 70 68 3c  >Weighted Graph<
1a00: 2f 62 3e 2c 20 61 6e 64 20 63 61 6e 20 63 6f 6e  /b>, and can con
1a10: 73 65 71 75 65 6e 74 6c 79 20 73 75 70 70 6f 72  sequently suppor
1a20: 74 20 3c 62 3e 52 6f 75 74 69 6e 67 20 61 6c 67  t <b>Routing alg
1a30: 6f 72 69 74 68 6d 73 3c 2f 62 3e 2e 3c 62 72 3e  orithms</b>.<br>
1a40: 0d 0a 41 6c 6c 20 52 6f 75 74 69 6e 67 20 61 6c  ..All Routing al
1a50: 67 6f 72 69 74 68 6d 73 20 61 72 65 20 69 6e 74  gorithms are int
1a60: 65 6e 64 65 64 20 74 6f 20 69 64 65 6e 74 69 66  ended to identif
1a70: 79 20 74 68 65 20 3c 62 3e 53 68 6f 72 74 65 73  y the <b>Shortes
1a80: 74 20 50 61 74 68 3c 2f 62 3e 20 73 6f 6c 75 74  t Path</b> solut
1a90: 69 6f 6e 20 63 6f 6e 6e 65 63 74 69 6e 67 20 74  ion connecting t
1aa0: 77 6f 20 3c 62 3e 4e 6f 64 65 73 3c 2f 62 3e 20  wo <b>Nodes</b> 
1ab0: 69 6e 20 61 20 3c 62 3e 77 65 69 67 68 74 65 64  in a <b>weighted
1ac0: 20 67 72 61 70 68 3c 2f 62 3e 20 28 3c 69 3e 61   graph</b> (<i>a
1ad0: 6b 61 3c 2f 69 3e 20 3c 62 3e 4e 65 74 77 6f 72  ka</i> <b>Networ
1ae0: 6b 3c 2f 62 3e 29 2e 3c 62 72 3e 3c 62 72 3e 0d  k</b>).<br><br>.
1af0: 0a 3c 62 3e 3c 75 3e 4e 6f 74 65 3c 2f 75 3e 3c  .<b><u>Note</u><
1b00: 2f 62 3e 3a 20 74 68 65 20 74 65 72 6d 20 3c 62  /b>: the term <b
1b10: 3e 3c 69 3e 53 68 6f 72 74 65 73 74 20 50 61 74  ><i>Shortest Pat
1b20: 68 3c 2f 69 3e 3c 2f 62 3e 20 63 61 6e 20 62 65  h</i></b> can be
1b30: 20 65 61 73 69 6c 79 20 6d 69 73 75 6e 64 65 72   easily misunder
1b40: 73 74 6f 6f 64 2e 3c 62 72 3e 0d 0a 44 75 65 20  stood.<br>..Due 
1b50: 74 6f 20 68 69 73 74 6f 72 69 63 61 6c 20 72 65  to historical re
1b60: 61 73 6f 6e 73 20 74 68 65 20 6d 6f 73 74 20 63  asons the most c
1b70: 6f 6d 6d 6f 6e 20 61 70 70 6c 69 63 61 74 69 6f  ommon applicatio
1b80: 6e 20 66 69 65 6c 64 20 66 6f 72 20 52 6f 75 74  n field for Rout
1b90: 69 6e 67 20 61 6c 67 6f 72 69 74 68 6d 73 20 69  ing algorithms i
1ba0: 73 20 72 65 6c 61 74 65 64 20 74 6f 20 3c 62 3e  s related to <b>
1bb0: 52 6f 61 64 20 4e 65 74 77 6f 72 6b 73 3c 2f 62  Road Networks</b
1bc0: 3e 2c 20 62 75 74 20 61 6c 73 6f 20 6d 61 6e 79  >, but also many
1bd0: 20 6f 74 68 65 72 20 6b 69 6e 64 73 20 6f 66 20   other kinds of 
1be0: 4e 65 74 77 6f 72 6b 73 20 65 78 69 73 74 3a 0d  Networks exist:.
1bf0: 0a 3c 75 6c 3e 0d 0a 3c 6c 69 3e 48 79 64 72 6f  .<ul>..<li>Hydro
1c00: 67 72 61 70 68 69 63 20 4e 65 74 77 6f 72 6b 73  graphic Networks
1c10: 2e 3c 2f 6c 69 3e 0d 0a 3c 6c 69 3e 47 61 73 20  .</li>..<li>Gas 
1c20: 2f 20 57 61 74 65 72 20 2f 20 4f 69 6c 20 4e 65  / Water / Oil Ne
1c30: 74 77 6f 72 6b 73 2e 3c 2f 6c 69 3e 0d 0a 3c 6c  tworks.</li>..<l
1c40: 69 3e 45 6c 65 63 74 72 69 63 61 6c 20 4e 65 74  i>Electrical Net
1c50: 77 6f 72 6b 73 2e 3c 2f 6c 69 3e 0d 0a 3c 6c 69  works.</li>..<li
1c60: 3e 54 65 6c 65 63 6f 6d 75 6e 69 63 61 74 69 6f  >Telecomunicatio
1c70: 6e 20 4e 65 74 77 6f 72 6b 73 2e 3c 2f 6c 69 3e  n Networks.</li>
1c80: 0d 0a 3c 6c 69 3e 53 6f 63 69 61 6c 20 6f 72 20  ..<li>Social or 
1c90: 45 63 6f 6e 6f 6d 69 63 61 6c 20 4e 65 74 77 6f  Economical Netwo
1ca0: 72 6b 73 20 72 65 70 72 65 73 65 6e 74 69 6e 67  rks representing
1cb0: 20 72 65 6c 61 74 69 6f 6e 73 68 69 70 73 20 62   relationships b
1cc0: 65 74 77 65 65 6e 20 69 6e 64 69 76 69 64 75 61  etween individua
1cd0: 6c 73 20 6f 72 20 63 6f 6d 70 61 6e 69 65 73 2e  ls or companies.
1ce0: 3c 2f 6c 69 3e 0d 0a 3c 6c 69 3e 45 70 69 64 65  </li>..<li>Epide
1cf0: 6d 69 6f 6c 6f 67 69 63 61 6c 20 4e 65 74 77 6f  miological Netwo
1d00: 72 6b 73 20 72 65 70 72 65 73 65 6e 74 69 6e 67  rks representing
1d10: 20 74 68 65 20 70 72 6f 70 61 67 61 74 69 6f 6e   the propagation
1d20: 20 6f 66 20 69 6e 66 65 63 74 69 76 65 20 64 69   of infective di
1d30: 73 65 61 73 65 73 20 62 65 74 77 65 65 6e 20 69  seases between i
1d40: 6e 64 69 76 69 64 75 61 6c 73 20 6f 72 20 67 72  ndividuals or gr
1d50: 6f 75 70 73 2e 3c 2f 6c 69 3e 0d 0a 3c 2f 75 6c  oups.</li>..</ul
1d60: 3e 3c 2f 6c 69 3e 20 0d 0a 3c 62 72 3e 0d 0a 49  ></li> ..<br>..I
1d70: 6e 20 61 6c 6c 20 74 68 65 20 61 62 6f 76 65 20  n all the above 
1d80: 63 61 73 65 73 20 77 65 20 63 65 72 74 61 69 6e  cases we certain
1d90: 6c 79 20 68 61 76 65 20 76 61 6c 69 64 20 4e 65  ly have valid Ne
1da0: 74 77 6f 72 6b 73 20 73 75 70 70 6f 72 74 69 6e  tworks supportin
1db0: 67 20 52 6f 75 74 69 6e 67 20 61 6c 67 6f 72 69  g Routing algori
1dc0: 74 68 6e 73 2c 20 62 75 74 20 6e 6f 74 20 61 6c  thns, but not al
1dd0: 6c 20 6f 66 20 74 68 65 6d 20 63 61 6e 20 69 6d  l of them can im
1de0: 70 6c 79 20 73 6f 6d 65 74 68 69 6e 67 20 6c 69  ply something li
1df0: 6b 65 20 61 20 3c 69 3e 73 70 61 74 69 61 6c 20  ke a <i>spatial 
1e00: 64 69 73 74 61 6e 63 65 3c 2f 69 3e 20 28 3c 69  distance</i> (<i
1e10: 3e 67 65 6f 6d 65 74 72 69 63 20 6c 65 6e 67 74  >geometric lengt
1e20: 68 3c 2f 69 3e 29 20 6f 72 20 61 20 3c 69 3e 74  h</i>) or a <i>t
1e30: 72 61 76 65 6c 20 74 69 6d 65 3c 2f 69 3e 2e 3c  ravel time</i>.<
1e40: 62 72 3e 0d 0a 49 6e 20 74 68 65 20 6d 6f 73 74  br>..In the most
1e50: 20 67 65 6e 65 72 61 6c 20 61 63 63 65 70 74 69   general accepti
1e60: 6f 6e 20 3c 62 3e 63 6f 73 74 73 3c 2f 62 3e 20  on <b>costs</b> 
1e70: 63 61 6e 20 62 65 20 72 65 70 72 65 73 65 6e 74  can be represent
1e80: 65 64 20 62 79 20 61 6e 79 20 72 65 61 73 6f 6e  ed by any reason
1e90: 61 62 6c 65 20 70 68 79 73 69 63 61 6c 20 71 75  able physical qu
1ea0: 61 6e 74 69 74 79 2e 3c 62 72 3e 0d 0a 53 6f 20  antity.<br>..So 
1eb0: 61 20 6d 6f 72 65 20 67 65 6e 65 72 61 6c 69 7a  a more generaliz
1ec0: 65 64 20 64 65 66 69 6e 69 74 69 6f 6e 20 69 73  ed definition is
1ed0: 20 61 73 73 75 6d 69 6e 67 20 74 68 61 74 20 52   assuming that R
1ee0: 6f 75 74 69 6e 67 20 61 6c 67 6f 72 69 74 68 6d  outing algorithm
1ef0: 73 20 61 72 65 20 69 6e 74 65 6e 64 65 64 20 74  s are intended t
1f00: 6f 20 69 64 65 6e 74 69 66 79 20 3c 62 3e 6c 65  o identify <b>le
1f10: 73 73 65 72 20 63 6f 73 74 3c 2f 62 3e 20 73 6f  sser cost</b> so
1f20: 6c 75 74 69 6f 6e 73 20 6f 6e 20 61 20 3c 62 3e  lutions on a <b>
1f30: 77 65 69 67 68 74 65 64 20 67 72 61 70 68 3c 2f  weighted graph</
1f40: 62 3e 2e 3c 62 72 3e 0d 0a 54 68 65 20 65 78 61  b>.<br>..The exa
1f50: 63 74 20 69 6e 74 65 72 70 72 65 74 61 74 69 6f  ct interpretatio
1f60: 6e 20 6f 66 20 74 68 65 20 69 6e 76 6f 6c 76 65  n of the involve
1f70: 64 20 3c 62 3e 63 6f 73 74 73 3c 2f 62 3e 20 28  d <b>costs</b> (
1f80: 3c 69 3e 61 6b 61 3c 2f 69 3e 20 3c 62 3e 77 65  <i>aka</i> <b>we
1f90: 69 67 68 74 73 3c 2f 62 3e 29 20 73 74 72 69 63  ights</b>) stric
1fa0: 74 6c 79 20 64 65 70 65 6e 64 73 20 6f 6e 20 74  tly depends on t
1fb0: 68 65 20 76 65 72 79 20 73 70 65 63 69 66 69 63  he very specific
1fc0: 20 6e 61 74 75 72 65 20 6f 66 20 65 61 63 68 20   nature of each 
1fd0: 4e 65 74 77 6f 72 6b 2e 0d 0a 3c 68 33 3e 54 68  Network...<h3>Th
1fe0: 65 20 44 69 6a 6b 73 74 72 61 27 73 20 61 6c 67  e Dijkstra's alg
1ff0: 6f 72 69 74 68 6d 3c 2f 68 33 3e 0d 0a 54 68 69  orithm</h3>..Thi
2000: 73 20 77 65 6c 6c 20 6b 6e 6f 77 6e 20 3c 61 20  s well known <a 
2010: 68 72 65 66 3d 22 68 74 74 70 73 3a 2f 2f 65 6e  href="https://en
2020: 2e 77 69 6b 69 70 65 64 69 61 2e 6f 72 67 2f 77  .wikipedia.org/w
2030: 69 6b 69 2f 44 69 6a 6b 73 74 72 61 25 32 37 73  iki/Dijkstra%27s
2040: 5f 61 6c 67 6f 72 69 74 68 6d 22 3e 61 6c 67 6f  _algorithm">algo
2050: 72 69 74 68 6d 3c 2f 61 3e 20 69 73 6e 27 74 20  rithm</a> isn't 
2060: 6e 65 63 65 73 73 61 72 69 6c 79 20 74 68 65 20  necessarily the 
2070: 66 61 73 74 65 73 74 20 6f 6e 65 2c 20 62 75 74  fastest one, but
2080: 20 69 74 20 61 6c 77 61 79 73 20 65 6e 73 75 72   it always ensur
2090: 65 73 20 3c 62 3e 66 75 6c 6c 20 63 6f 72 72 65  es <b>full corre
20a0: 63 74 6e 65 73 73 3c 2f 62 3e 3a 0d 0a 3c 75 6c  ctness</b>:..<ul
20b0: 3e 0d 0a 3c 6c 69 3e 41 6e 79 20 4e 6f 64 65 2d  >..<li>Any Node-
20c0: 74 6f 2d 4e 6f 64 65 20 63 6f 6e 6e 65 63 74 69  to-Node connecti
20d0: 6f 6e 20 69 64 65 6e 74 69 66 69 65 64 20 62 79  on identified by
20e0: 20 44 69 6a 6b 73 74 72 61 27 73 20 69 73 20 63   Dijkstra's is c
20f0: 65 72 74 61 69 6e 6c 79 20 65 6e 73 75 72 65 64  ertainly ensured
2100: 20 74 6f 20 62 65 20 3c 62 3e 6f 70 74 69 6d 61   to be <b>optima
2110: 6c 3c 2f 62 3e 2e 3c 62 72 3e 0d 0a 49 6e 20 6f  l</b>.<br>..In o
2120: 74 68 65 72 20 77 6f 72 64 73 2c 20 6e 6f 20 63  ther words, no c
2130: 6f 6e 6e 65 74 63 74 69 6f 6e 20 70 72 65 73 65  onnetction prese
2140: 6e 74 69 6e 67 20 61 20 6c 6f 77 65 72 20 63 6f  nting a lower co
2150: 73 74 20 63 61 6e 20 63 6f 6e 63 65 70 74 75 61  st can conceptua
2160: 6c 6c 79 20 65 78 69 73 74 2e 3c 2f 6c 69 3e 0d  lly exist.</li>.
2170: 0a 3c 6c 69 3e 57 68 65 6e 20 44 69 6a 73 6a 74  .<li>When Dijsjt
2180: 72 61 27 73 20 66 61 69 6c 73 20 74 6f 20 69 64  ra's fails to id
2190: 65 6e 74 69 66 79 20 61 20 73 6f 6c 75 74 69 6f  entify a solutio
21a0: 6e 20 74 68 69 73 20 73 75 72 65 6c 79 20 6d 65  n this surely me
21b0: 61 6e 73 20 74 68 61 74 20 6e 6f 20 73 6f 6c 75  ans that no solu
21c0: 74 69 6f 6e 20 69 73 20 70 6f 73 73 69 62 6c 65  tion is possible
21d0: 2e 3c 2f 6c 69 3e 0d 0a 3c 2f 75 6c 3e 0d 0a 3c  .</li>..</ul>..<
21e0: 68 33 3e 54 68 65 20 41 2a 20 61 6c 67 6f 72 69  h3>The A* algori
21f0: 74 68 6d 3c 2f 68 33 3e 0d 0a 4d 61 6e 79 20 61  thm</h3>..Many a
2200: 6c 74 65 72 6e 61 74 69 76 65 20 52 6f 75 74 69  lternative Routi
2210: 6e 67 20 61 6c 67 6f 72 69 74 68 6d 73 20 68 61  ng algorithms ha
2220: 76 65 20 62 65 65 6e 20 69 6e 76 65 6e 74 65 64  ve been invented
2230: 20 64 75 72 69 6e 67 20 74 68 65 20 79 65 61 72   during the year
2240: 73 2e 3c 62 72 3e 0d 0a 41 6c 6c 20 74 68 65 6d  s.<br>..All them
2250: 20 61 72 65 20 62 61 73 65 64 20 6f 6e 20 68 65   are based on he
2260: 75 72 69 73 74 69 63 20 61 73 73 75 6d 70 74 69  uristic assumpti
2270: 6f 6e 73 20 61 6e 64 20 61 72 65 20 69 6e 74 65  ons and are inte
2280: 6e 64 65 64 20 74 6f 20 62 65 20 66 61 73 74 65  nded to be faste
2290: 72 20 74 68 61 6e 20 44 69 6a 6b 73 74 72 61 27  r than Dijkstra'
22a0: 73 2c 20 62 75 74 20 6e 6f 6e 65 20 6f 66 20 74  s, but none of t
22b0: 68 65 6d 20 63 61 6e 20 65 6e 73 75 72 65 20 3c  hem can ensure <
22c0: 62 3e 66 75 6c 6c 20 63 6f 72 72 65 63 74 6e 65  b>full correctne
22d0: 73 73 3c 2f 62 3e 20 61 73 20 44 69 6a 6b 73 74  ss</b> as Dijkst
22e0: 72 61 27 73 20 64 6f 65 73 2e 3c 62 72 3e 0d 0a  ra's does.<br>..
22f0: 54 68 65 20 3c 61 20 68 72 65 66 3d 22 68 74 74  The <a href="htt
2300: 70 73 3a 2f 2f 65 6e 2e 77 69 6b 69 70 65 64 69  ps://en.wikipedi
2310: 61 2e 6f 72 67 2f 77 69 6b 69 2f 41 2a 5f 73 65  a.org/wiki/A*_se
2320: 61 72 63 68 5f 61 6c 67 6f 72 69 74 68 6d 22 3e  arch_algorithm">
2330: 41 2a 20 61 6c 67 6f 72 69 74 68 6d 3c 2f 61 3e  A* algorithm</a>
2340: 20 61 70 70 6c 69 65 73 20 61 20 6d 69 6c 64 20   applies a mild 
2350: 68 65 75 72 69 73 74 69 63 20 6f 70 74 69 6d 69  heuristic optimi
2360: 7a 61 74 69 6f 6e 2c 20 61 6e 64 20 63 61 6e 20  zation, and can 
2370: 62 65 20 61 20 72 65 61 6c 69 73 74 69 63 20 61  be a realistic a
2380: 6c 74 65 72 6e 61 74 69 76 65 20 74 6f 20 44 69  lternative to Di
2390: 6a 6b 73 74 72 61 27 73 20 69 6e 20 6d 61 6e 79  jkstra's in many
23a0: 20 63 61 73 65 73 2e 3c 62 72 3e 3c 62 72 3e 0d   cases.<br><br>.
23b0: 0a 3c 68 72 3e 0d 0a 3c 68 31 3e 3c 61 20 6e 61  .<hr>..<h1><a na
23c0: 6d 65 3d 22 73 61 6d 70 6c 65 22 3e 32 20 2d 20  me="sample">2 - 
23d0: 54 68 65 20 73 61 6d 70 6c 65 2f 74 65 73 74 20  The sample/test 
23e0: 44 42 3c 2f 61 3e 3c 2f 68 31 3e 0d 0a 59 6f 75  DB</a></h1>..You
23f0: 20 61 72 65 20 65 78 70 65 63 74 65 64 20 74 6f   are expected to
2400: 20 66 6f 6c 6c 6f 77 20 74 68 65 20 63 75 72 72   follow the curr
2410: 65 6e 74 20 74 75 74 6f 72 69 61 6c 20 61 62 6f  ent tutorial abo
2420: 75 74 20 3c 62 3e 56 69 72 74 75 61 6c 52 6f 75  ut <b>VirtualRou
2430: 74 69 6e 67 3c 2f 62 3e 20 62 79 20 64 69 72 65  ting</b> by dire
2440: 63 74 6c 79 20 74 65 73 74 69 6e 67 20 61 6c 6c  ctly testing all
2450: 20 53 51 4c 20 71 75 65 72 69 65 73 20 64 69 73   SQL queries dis
2460: 63 75 73 73 65 64 20 20 62 65 6c 6f 77 20 77 69  cussed  below wi
2470: 74 68 20 74 68 65 20 3c 61 20 68 72 65 66 3d 22  th the <a href="
2480: 68 74 74 70 73 3a 2f 2f 77 77 77 2e 67 61 69 61  https://www.gaia
2490: 2d 67 69 73 2e 69 74 2f 67 61 69 61 2d 73 69 6e  -gis.it/gaia-sin
24a0: 73 2f 72 6f 75 74 69 6e 67 2d 73 61 6d 70 6c 65  s/routing-sample
24b0: 2d 35 2e 30 2e 30 2e 37 7a 22 3e 73 61 6d 70 6c  -5.0.0.7z">sampl
24c0: 65 2f 74 65 73 74 20 44 42 20 74 68 61 74 20 79  e/test DB that y
24d0: 6f 75 20 63 61 6e 20 64 6f 77 6e 6c 6f 61 64 20  ou can download 
24e0: 66 72 6f 6d 20 68 65 72 65 3c 2f 61 3e 3c 62 72  from here</a><br
24f0: 3e 3c 62 72 3e 0d 0a 54 68 65 20 73 61 6d 70 6c  ><br>..The sampl
2500: 65 20 44 42 20 63 6f 6e 74 61 69 6e 73 20 74 68  e DB contains th
2510: 65 20 66 75 6c 6c 20 3c 62 3e 72 6f 61 64 20 6e  e full <b>road n
2520: 65 74 77 6f 72 6b 3c 2f 62 3e 20 6f 66 20 3c 62  etwork</b> of <b
2530: 3e 54 75 73 63 61 6e 79 20 52 65 67 69 6f 6e 20  >Tuscany Region 
2540: 28 49 74 61 6c 79 29 3c 2f 62 3e 20 28 3c 61 20  (Italy)</b> (<a 
2550: 68 72 65 66 3d 22 68 74 74 70 3a 2f 2f 77 77 77  href="http://www
2560: 35 30 32 2e 72 65 67 69 6f 6e 65 2e 74 6f 73 63  502.regione.tosc
2570: 61 6e 61 2e 69 74 2f 67 65 6f 73 63 6f 70 69 6f  ana.it/geoscopio
2580: 2f 64 6f 77 6e 6c 6f 61 64 2f 67 72 61 66 6f 5f  /download/grafo_
2590: 73 74 72 61 64 61 6c 65 2f 69 74 65 72 6e 65 74  stradale/iternet
25a0: 2e 7a 69 70 22 3e 49 74 65 72 2e 4e 65 74 20 64  .zip">Iter.Net d
25b0: 61 74 61 73 65 74 3c 2f 61 3e 29 20 6b 69 6e 64  ataset</a>) kind
25c0: 6c 79 20 72 65 6c 65 61 73 65 64 20 75 6e 64 65  ly released unde
25d0: 72 20 74 68 65 20 3c 62 3e 43 43 2d 42 59 2d 53  r the <b>CC-BY-S
25e0: 41 20 34 2e 30 3c 2f 62 3e 20 6c 69 63 65 6e 63  A 4.0</b> licenc
25f0: 65 20 74 65 72 6d 73 2e 3c 62 72 3e 0d 0a 41 6c  e terms.<br>..Al
2600: 6c 74 68 6f 75 67 68 20 74 68 65 20 63 6f 6e 74  lthough the cont
2610: 65 6e 74 73 20 73 74 6f 72 65 64 20 69 6e 20 74  ents stored in t
2620: 68 65 20 73 61 6d 70 6c 65 20 64 61 74 61 62 61  he sample databa
2630: 73 65 20 68 61 76 65 20 62 65 65 6e 20 72 65 61  se have been rea
2640: 72 72 61 6e 67 65 64 2c 20 69 74 20 69 73 20 73  rranged, it is s
2650: 74 69 6c 6c 20 73 75 62 6a 65 63 74 20 74 6f 20  till subject to 
2660: 74 68 65 20 69 6e 69 74 69 61 6c 20 3c 62 3e 43  the initial <b>C
2670: 43 2d 42 59 2d 53 41 20 34 2e 30 3c 2f 62 3e 20  C-BY-SA 4.0</b> 
2680: 63 6c 61 75 73 65 73 20 28 3c 69 3e 64 65 72 69  clauses (<i>deri
2690: 76 65 64 20 77 6f 72 6b 3c 2f 69 3e 29 2e 0d 0a  ved work</i>)...
26a0: 3c 62 72 3e 3c 62 72 3e 0d 0a 3c 75 6c 3e 0d 0a  <br><br>..<ul>..
26b0: 3c 6c 69 3e 61 6c 6c 20 72 6f 61 64 20 6e 61 6d  <li>all road nam
26c0: 65 73 20 61 72 65 20 73 74 6f 72 65 64 20 77 69  es are stored wi
26d0: 74 68 69 6e 20 74 68 65 20 3c 62 3e 74 6f 70 6f  thin the <b>topo
26e0: 6e 79 6d 73 3c 2f 62 3e 20 54 61 62 6c 65 2e 3c  nyms</b> Table.<
26f0: 62 72 3e 0d 0a 73 69 6e 63 65 20 74 68 65 20 73  br>..since the s
2700: 61 6d 65 20 72 6f 61 64 20 6e 61 6d 65 73 20 63  ame road names c
2710: 6f 75 6c 64 20 62 65 20 75 73 65 64 20 69 6e 20  ould be used in 
2720: 64 69 66 66 65 72 65 6e 74 20 4d 75 6e 69 63 69  different Munici
2730: 70 61 6c 69 74 69 65 73 2c 20 74 68 65 20 3c 62  palities, the <b
2740: 3e 74 6f 70 6f 6e 79 6d 73 3c 2f 62 3e 20 54 61  >toponyms</b> Ta
2750: 62 6c 65 20 72 65 6c 61 74 69 6f 6e 61 6c 6c 79  ble relationally
2760: 20 72 65 66 65 72 65 6e 63 65 73 20 74 68 65 20   references the 
2770: 3c 62 3e 6d 75 6e 69 63 69 70 61 6c 69 74 69 65  <b>municipalitie
2780: 73 3c 2f 62 3e 20 54 61 62 6c 65 20 28 76 69 61  s</b> Table (via
2790: 20 3c 62 3e 50 52 49 4d 41 52 59 3c 2f 62 3e 20   <b>PRIMARY</b> 
27a0: 2f 20 3c 62 3e 46 4f 52 45 49 47 4e 20 4b 45 59  / <b>FOREIGN KEY
27b0: 3c 2f 62 3e 20 72 65 6c 61 74 69 6f 6e 73 68 69  </b> relationshi
27c0: 70 73 29 2e 3c 2f 6c 69 3e 0d 0a 3c 6c 69 3e 74  ps).</li>..<li>t
27d0: 68 65 20 3c 62 3e 72 6f 61 64 73 3c 2f 62 3e 20  he <b>roads</b> 
27e0: 53 70 61 74 69 61 6c 20 54 61 62 6c 65 20 63 6f  Spatial Table co
27f0: 6e 74 61 69 6e 73 20 61 62 6f 75 74 20 3c 62 3e  ntains about <b>
2800: 33 38 30 2c 30 30 30 3c 2f 62 3e 20 4c 69 6e 6b  380,000</b> Link
2810: 73 2c 20 61 6e 64 20 68 61 73 20 74 68 65 20 66  s, and has the f
2820: 6f 6c 6c 6f 77 69 6e 67 20 63 6f 6c 75 6d 6e 73  ollowing columns
2830: 3a 0d 0a 3c 75 6c 3e 0d 0a 3c 6c 69 3e 3c 62 3e  :..<ul>..<li><b>
2840: 69 64 3c 2f 62 3e 3a 20 75 6e 69 71 75 65 20 69  id</b>: unique i
2850: 64 65 6e 74 69 66 69 65 72 20 6f 66 20 65 61 63  dentifier of eac
2860: 68 20 4c 69 6e 6b 20 28 3c 62 3e 50 52 49 4d 41  h Link (<b>PRIMA
2870: 52 59 20 4b 45 59 3c 2f 62 3e 29 2e 3c 2f 6c 69  RY KEY</b>).</li
2880: 3e 0d 0a 3c 6c 69 3e 3c 62 3e 6e 6f 64 65 5f 66  >..<li><b>node_f
2890: 72 6f 6d 3c 2f 62 3e 20 61 6e 64 20 3c 62 3e 6e  rom</b> and <b>n
28a0: 6f 64 65 5f 74 6f 3c 2f 62 3e 3a 20 4e 6f 64 65  ode_to</b>: Node
28b0: 20 69 64 65 6e 74 69 66 69 65 72 73 2e 0d 0a 54   identifiers...T
28c0: 68 65 20 6f 72 69 67 69 6e 61 6c 20 49 74 65 72  he original Iter
28d0: 2e 4e 65 74 20 64 61 74 61 73 65 74 20 61 64 6f  .Net dataset ado
28e0: 70 74 73 20 76 65 72 79 20 6c 6f 6e 67 20 61 6e  pts very long an
28f0: 20 63 6f 6d 70 6c 65 78 20 61 6c 70 68 61 6e 75   complex alphanu
2900: 6d 65 72 69 63 20 4e 6f 64 65 20 63 6f 64 65 73  meric Node codes
2910: 3b 20 74 68 65 20 69 6e 74 65 67 65 72 20 4e 6f  ; the integer No
2920: 64 65 20 49 44 73 20 77 65 72 65 20 6f 62 74 61  de IDs were obta
2930: 69 6e 65 64 20 62 79 20 63 61 6c 6c 69 6e 67 20  ined by calling 
2940: 74 68 65 20 3c 62 3e 43 72 65 61 74 65 52 6f 75  the <b>CreateRou
2950: 74 69 6e 67 4e 6f 64 65 73 28 29 3c 2f 62 3e 20  tingNodes()</b> 
2960: 53 51 4c 20 66 75 6e 63 74 69 6f 6e 20 64 69 73  SQL function dis
2970: 63 75 73 73 65 64 20 69 6e 20 61 20 66 6f 6c 6c  cussed in a foll
2980: 6f 77 69 6e 67 20 73 65 63 74 69 6f 6e 2e 3c 2f  owing section.</
2990: 6c 69 3e 0d 0a 3c 6c 69 3e 3c 62 3e 69 64 5f 74  li>..<li><b>id_t
29a0: 6f 70 6f 6e 79 6d 3c 2f 62 3e 3a 20 72 65 6c 61  oponym</b>: rela
29b0: 74 69 6f 6e 61 6c 20 72 65 66 65 72 65 6e 63 65  tional reference
29c0: 20 74 6f 20 74 68 65 20 63 6f 72 72 65 73 70 6f   to the correspo
29d0: 6e 64 69 6e 67 20 72 6f 61 64 20 6e 61 6d 65 20  nding road name 
29e0: 63 6f 6e 74 61 69 6e 65 64 20 69 6e 74 6f 20 74  contained into t
29f0: 68 65 20 3c 62 3e 74 6f 70 6f 6e 79 6d 73 3c 2f  he <b>toponyms</
2a00: 62 3e 20 54 61 62 6c 65 20 28 3c 62 3e 46 4f 52  b> Table (<b>FOR
2a10: 45 49 47 4e 20 4b 45 59 3c 2f 62 3e 29 2e 3c 2f  EIGN KEY</b>).</
2a20: 6c 69 3e 0d 0a 3c 6c 69 3e 3c 62 3e 73 70 65 65  li>..<li><b>spee
2a30: 64 5f 6b 6d 68 3c 2f 62 3e 3a 20 74 68 65 20 65  d_kmh</b>: the e
2a40: 73 74 69 6d 61 74 65 64 20 61 76 65 72 61 67 65  stimated average
2a50: 20 73 70 65 65 64 20 73 75 70 70 6f 72 74 65 64   speed supported
2a60: 20 62 79 20 74 68 65 20 4c 69 6e 6b 2c 20 65 78   by the Link, ex
2a70: 70 72 65 73 73 65 64 20 69 6e 20 3c 62 3e 6b 6d  pressed in <b>km
2a80: 2f 68 3c 2f 62 3e 2e 3c 62 72 3e 0d 0a 3c 75 3e  /h</b>.<br>..<u>
2a90: 4e 6f 74 65 3c 2f 75 3e 3a 20 3c 62 3e 6e 65 67  Note</u>: <b>neg
2aa0: 61 74 69 76 65 3c 2f 62 3e 20 73 70 65 65 64 73  ative</b> speeds
2ab0: 20 69 6e 74 65 6e 64 20 61 20 66 6f 72 62 69 64   intend a forbid
2ac0: 64 65 6e 20 4c 69 6e 6b 20 28 61 73 20 69 74 20  den Link (as it 
2ad0: 63 6f 75 6c 64 20 62 65 20 74 68 65 20 63 61 73  could be the cas
2ae0: 65 20 6f 66 20 70 65 64 65 73 74 72 69 61 6e 20  e of pedestrian 
2af0: 73 74 72 65 65 74 73 20 6f 72 20 62 69 63 79 63  streets or bicyc
2b00: 6c 65 20 6c 61 6e 65 73 20 65 78 6c 75 64 69 6e  le lanes exludin
2b10: 67 20 6d 6f 74 6f 72 20 76 65 68 69 63 6c 65 73  g motor vehicles
2b20: 29 2e 3c 2f 6c 69 3e 0d 0a 3c 6c 69 3e 3c 62 3e  ).</li>..<li><b>
2b30: 6f 6e 65 77 61 79 5f 66 72 6f 6d 74 6f 3c 2f 62  oneway_fromto</b
2b40: 3e 20 61 6e 64 20 3c 62 3e 6f 6e 65 77 61 79 5f  > and <b>oneway_
2b50: 74 6f 66 72 6f 6d 3c 2f 62 3e 3a 20 62 6f 6f 6c  tofrom</b>: bool
2b60: 65 61 6e 20 66 6c 61 67 73 20 64 65 74 65 72 6d  ean flags determ
2b70: 69 6e 65 20 69 66 20 61 20 4c 69 6e 6b 20 63 61  ine if a Link ca
2b80: 6e 20 62 65 20 74 72 61 76 65 72 73 65 64 20 69  n be traversed i
2b90: 6e 20 62 6f 74 68 20 64 69 72 65 63 74 69 6f 6e  n both direction
2ba0: 73 20 6f 72 20 6a 75 73 74 20 69 6e 20 61 20 73  s or just in a s
2bb0: 69 6e 67 6c 65 20 64 69 72 65 63 74 69 6f 6e 20  ingle direction 
2bc0: 28 3c 62 3e 6f 6e 65 2d 77 61 79 3c 2f 62 3e 29  (<b>one-way</b>)
2bd0: 2e 3c 62 72 3e 0d 0a 3c 75 3e 4e 6f 74 65 3c 2f  .<br>..<u>Note</
2be0: 75 3e 3a 20 61 6c 6c 20 4c 69 6e 6b 73 20 64 65  u>: all Links de
2bf0: 63 6c 61 72 69 6e 67 20 3c 62 3e 6f 6e 65 77 61  claring <b>onewa
2c00: 79 5f 66 72 6f 6d 74 6f 3d 30 3c 2f 62 3e 20 61  y_fromto=0</b> a
2c10: 6e 64 20 3c 62 3e 6f 6e 65 77 61 79 5f 74 6f 66  nd <b>oneway_tof
2c20: 72 6f 6d 3d 30 3c 2f 62 3e 20 61 72 65 20 69 6e  rom=0</b> are in
2c30: 74 65 6e 64 65 64 20 74 6f 20 62 65 20 61 6c 77  tended to be alw
2c40: 61 79 73 20 66 6f 72 62 69 64 64 65 6e 2e 3c 2f  ays forbidden.</
2c50: 6c 69 3e 0d 0a 3c 6c 69 3e 3c 62 3e 63 6f 73 74  li>..<li><b>cost
2c60: 3c 2f 62 3e 3a 20 74 68 65 20 3c 62 3e 74 69 6d  </b>: the <b>tim
2c70: 65 3c 2f 62 3e 20 65 78 70 72 65 73 73 65 64 20  e</b> expressed 
2c80: 69 6e 20 3c 62 3e 73 65 63 6f 6e 64 73 3c 2f 62  in <b>seconds</b
2c90: 3e 20 72 65 71 75 69 72 65 64 20 74 6f 20 74 72  > required to tr
2ca0: 61 76 65 72 73 65 20 65 61 63 68 20 4c 69 6e 6b  averse each Link
2cb0: 2e 3c 62 72 3e 0d 0a 3c 75 3e 4e 6f 74 65 20 23  .<br>..<u>Note #
2cc0: 31 3c 2f 75 3e 20 61 6c 6c 20 63 6f 73 74 73 20  1</u> all costs 
2cd0: 77 65 72 65 20 63 61 6c 63 75 6c 61 74 65 64 20  were calculated 
2ce0: 61 63 63 6f 72 64 69 6e 67 6c 79 20 74 6f 20 74  accordingly to t
2cf0: 68 65 20 66 6f 6c 6c 6f 77 69 6e 67 20 66 6f 72  he following for
2d00: 6d 75 6c 61 3a 20 3c 62 3e 63 6f 73 74 20 3d 20  mula: <b>cost = 
2d10: 28 28 53 54 5f 4c 65 6e 67 74 68 28 67 65 6f 6d  ((ST_Length(geom
2d20: 29 20 2f 20 31 30 30 30 2e 30 29 20 2f 20 73 70  ) / 1000.0) / sp
2d30: 65 65 64 5f 6b 6d 68 29 20 2a 20 33 36 30 30 2e  eed_kmh) * 3600.
2d40: 30 3c 2f 62 3e 3c 62 72 3e 0d 0a 3c 75 3e 4e 6f  0</b><br>..<u>No
2d50: 74 65 20 23 32 3c 2f 75 3e 20 61 6c 6c 20 3c 62  te #2</u> all <b
2d60: 3e 38 36 2c 34 30 30 2e 30 3c 2f 62 3e 20 63 6f  >86,400.0</b> co
2d70: 73 74 20 76 61 6c 75 65 73 20 28 65 71 75 69 76  st values (equiv
2d80: 61 6c 65 6e 74 20 74 6f 20 31 20 64 61 79 29 20  alent to 1 day) 
2d90: 69 6d 70 6c 79 20 61 6e 20 3c 62 3e 69 6e 66 69  imply an <b>infi
2da0: 6e 69 74 69 76 65 20 63 6f 73 74 3c 2f 62 3e 20  nitive cost</b> 
2db0: 74 68 75 73 20 69 6e 74 65 6e 64 69 6e 67 20 61  thus intending a
2dc0: 20 3c 62 3e 66 6f 72 62 69 64 64 65 6e 3c 2f 62   <b>forbidden</b
2dd0: 3e 20 4c 69 6e 6b 2e 3c 2f 6c 69 3e 0d 0a 3c 6c  > Link.</li>..<l
2de0: 69 3e 3c 62 3e 67 65 6f 6d 3c 2f 62 3e 3a 20 61  i><b>geom</b>: a
2df0: 20 3c 62 3e 33 44 20 4c 69 6e 65 73 74 72 69 6e   <b>3D Linestrin
2e00: 67 3c 2f 62 3e 20 72 65 70 72 65 73 65 6e 74 69  g</b> representi
2e10: 6e 67 20 74 68 65 20 47 65 6f 6d 65 74 72 79 20  ng the Geometry 
2e20: 6f 66 20 65 61 63 68 20 4c 69 6e 6b 2e 3c 62 72  of each Link.<br
2e30: 3e 0d 0a 3c 75 3e 4e 6f 74 65 3c 2f 75 3e 3a 20  >..<u>Note</u>: 
2e40: 74 68 65 20 6f 72 69 67 69 6e 61 6c 20 3c 62 3e  the original <b>
2e50: 49 74 65 72 2e 4e 65 74 3c 2f 62 3e 20 64 61 74  Iter.Net</b> dat
2e60: 61 73 65 74 20 69 73 20 6a 75 73 74 20 3c 62 3e  aset is just <b>
2e70: 32 44 3c 2f 62 3e 3b 20 65 6c 65 76 61 74 69 6f  2D</b>; elevatio
2e80: 6e 73 20 28 3c 62 3e 5a 3c 2f 62 3e 20 63 6f 6f  ns (<b>Z</b> coo
2e90: 72 64 69 6e 61 74 65 73 29 20 77 65 72 65 20 69  rdinates) were i
2ea0: 6e 74 65 72 70 6f 6c 61 74 65 64 20 62 79 20 64  nterpolated by d
2eb0: 72 61 70 69 6e 67 20 74 68 65 20 64 61 74 61 73  raping the datas
2ec0: 65 74 20 6f 76 65 72 20 61 6e 20 3c 61 20 68 72  et over an <a hr
2ed0: 65 66 3d 22 68 74 74 70 3a 2f 2f 77 77 77 35 30  ef="http://www50
2ee0: 32 2e 72 65 67 69 6f 6e 65 2e 74 6f 73 63 61 6e  2.regione.toscan
2ef0: 61 2e 69 74 2f 67 65 6f 73 63 6f 70 69 6f 2f 64  a.it/geoscopio/d
2f00: 6f 77 6e 6c 6f 61 64 2f 61 6c 74 69 6d 65 74 72  ownload/altimetr
2f10: 69 61 2f 64 61 5f 63 74 72 31 30 6b 2f 67 62 2f  ia/da_ctr10k/gb/
2f20: 44 54 4d 5f 4f 72 6f 67 72 61 66 69 63 6f 2e 37  DTM_Orografico.7
2f30: 7a 22 3e 6f 72 6f 67 72 61 70 68 69 63 20 44 45  z">orographic DE
2f40: 4d 20 28 31 30 6d 20 58 20 31 30 6d 20 63 65 6c  M (10m X 10m cel
2f50: 6c 73 29 3c 2f 61 3e 3c 2f 6c 69 3e 0d 0a 3c 2f  ls)</a></li>..</
2f60: 75 6c 3e 3c 2f 6c 69 3e 0d 0a 3c 6c 69 3e 74 68  ul></li>..<li>th
2f70: 65 20 3c 62 3e 72 6f 61 64 73 5f 76 77 3c 2f 62  e <b>roads_vw</b
2f80: 3e 20 53 70 61 74 69 61 6c 20 56 69 65 77 20 72  > Spatial View r
2f90: 65 73 6f 6c 76 65 73 20 61 6c 6c 20 72 65 6c 61  esolves all rela
2fa0: 74 69 6f 6e 61 6c 20 72 65 66 65 72 65 6e 63 65  tional reference
2fb0: 73 20 62 65 74 77 65 65 6e 20 3c 62 3e 72 6f 61  s between <b>roa
2fc0: 64 73 3c 2f 62 3e 2c 20 3c 62 3e 74 6f 70 6f 6e  ds</b>, <b>topon
2fd0: 79 6d 73 3c 2f 62 3e 20 61 6e 64 20 3c 62 3e 6d  yms</b> and <b>m
2fe0: 75 6e 69 63 69 70 61 6c 69 74 69 65 73 3c 2f 62  unicipalities</b
2ff0: 3e 2c 20 74 68 75 73 20 61 6c 6c 6f 77 69 6e 67  >, thus allowing
3000: 20 66 6f 72 20 65 61 73 69 65 72 20 53 51 4c 20   for easier SQL 
3010: 71 75 65 72 69 65 73 2e 3c 2f 6c 69 3e 0d 0a 3c  queries.</li>..<
3020: 6c 69 3e 74 68 65 20 3c 62 3e 68 6f 75 73 65 5f  li>the <b>house_
3030: 6e 72 3c 2f 62 3e 20 53 70 61 74 69 61 6c 20 54  nr</b> Spatial T
3040: 61 62 6c 65 20 63 6f 6e 74 61 69 6e 73 20 61 62  able contains ab
3050: 6f 75 74 20 3c 62 3e 31 2c 34 38 30 2c 30 30 30  out <b>1,480,000
3060: 3c 2f 62 3e 20 48 6f 75 73 65 20 4e 75 6d 62 65  </b> House Numbe
3070: 72 73 2c 20 61 6e 64 20 68 61 73 20 74 68 65 20  rs, and has the 
3080: 66 6f 6c 6c 6f 77 69 6e 67 20 63 6f 6c 75 6d 6e  following column
3090: 73 3a 0d 0a 3c 75 6c 3e 0d 0a 3c 6c 69 3e 3c 62  s:..<ul>..<li><b
30a0: 3e 69 64 3c 2f 62 3e 3a 20 75 6e 69 71 75 65 20  >id</b>: unique 
30b0: 69 64 65 6e 74 69 66 69 65 72 20 6f 66 20 65 61  identifier of ea
30c0: 63 68 20 48 6f 75 73 65 20 4e 75 6d 62 65 72 20  ch House Number 
30d0: 28 3c 62 3e 50 52 49 4d 41 52 59 20 4b 45 59 3c  (<b>PRIMARY KEY<
30e0: 2f 62 3e 29 2e 3c 2f 6c 69 3e 0d 0a 3c 6c 69 3e  /b>).</li>..<li>
30f0: 3c 62 3e 69 64 5f 72 6f 61 64 3c 2f 62 3e 3a 20  <b>id_road</b>: 
3100: 72 65 6c 61 74 69 6f 6e 61 6c 20 72 65 66 65 72  relational refer
3110: 65 6e 63 65 20 74 6f 20 74 68 65 20 63 6f 72 72  ence to the corr
3120: 65 73 70 6f 6e 64 69 6e 67 20 4c 69 6e 6b 20 63  esponding Link c
3130: 6f 6e 74 61 69 6e 65 64 20 69 6e 74 6f 20 74 68  ontained into th
3140: 65 20 3c 62 3e 72 6f 61 64 73 3c 2f 62 3e 20 54  e <b>roads</b> T
3150: 61 62 6c 65 20 28 3c 62 3e 46 4f 52 45 49 47 4e  able (<b>FOREIGN
3160: 20 4b 45 59 3c 2f 62 3e 29 2e 3c 2f 6c 69 3e 0d   KEY</b>).</li>.
3170: 0a 3c 6c 69 3e 3c 62 3e 6c 61 62 65 6c 3c 2f 62  .<li><b>label</b
3180: 3e 3a 20 74 68 65 20 74 65 78 74 75 61 6c 20 6c  >: the textual l
3190: 61 62 65 6c 20 66 75 6c 6c 79 20 71 75 61 6c 69  abel fully quali
31a0: 66 79 69 6e 67 20 65 61 63 68 20 48 6f 75 73 65  fying each House
31b0: 20 4e 75 6d 62 65 72 2e 3c 2f 6c 69 3e 0d 0a 3c   Number.</li>..<
31c0: 6c 69 3e 3c 62 3e 67 65 6f 6d 3c 2f 62 3e 3a 20  li><b>geom</b>: 
31d0: 61 20 3c 62 3e 33 44 20 50 6f 69 6e 74 3c 2f 62  a <b>3D Point</b
31e0: 3e 20 72 65 70 72 65 73 65 6e 74 69 6e 67 20 74  > representing t
31f0: 68 65 20 47 65 6f 6d 65 74 72 79 20 6f 66 20 65  he Geometry of e
3200: 61 63 68 20 48 6f 75 73 65 20 4e 75 6d 62 65 72  ach House Number
3210: 2e 3c 62 72 3e 0d 0a 3c 75 3e 4e 6f 74 65 20 23  .<br>..<u>Note #
3220: 31 3c 2f 75 3e 3a 20 61 6c 73 6f 20 69 6e 20 74  1</u>: also in t
3230: 68 69 73 20 63 61 73 65 20 61 6c 6c 20 65 6c 65  his case all ele
3240: 76 61 74 69 6f 6e 73 20 28 3c 62 3e 5a 3c 2f 62  vations (<b>Z</b
3250: 3e 20 63 6f 6f 72 64 69 6e 61 74 65 73 29 20 77  > coordinates) w
3260: 65 72 65 20 69 6e 74 65 72 70 6f 6c 61 74 65 64  ere interpolated
3270: 20 62 79 20 64 72 61 70 69 6e 67 20 74 68 65 20   by draping the 
3280: 64 61 74 61 73 65 74 20 6f 76 65 72 20 74 68 65  dataset over the
3290: 20 73 61 6d 65 20 44 45 4d 20 61 73 20 61 62 6f   same DEM as abo
32a0: 76 65 2e 3c 62 72 3e 0d 0a 3c 75 3e 4e 6f 74 65  ve.<br>..<u>Note
32b0: 20 23 32 3c 2f 75 3e 3a 20 73 74 72 69 63 74 6c   #2</u>: strictl
32c0: 79 20 73 70 65 61 63 6b 69 6e 67 20 74 68 65 20  y speacking the 
32d0: 48 6f 75 73 65 20 4e 75 6d 62 65 72 73 20 61 72  House Numbers ar
32e0: 65 20 6e 6f 74 20 70 61 72 74 20 6f 66 20 74 68  e not part of th
32f0: 65 20 52 6f 61 64 20 4e 65 74 77 6f 72 6b 3b 20  e Road Network; 
3300: 74 68 65 79 20 61 72 65 20 69 6e 63 6c 75 64 65  they are include
3310: 64 20 69 6e 20 74 68 65 20 73 61 6d 70 6c 65 2f  d in the sample/
3320: 74 65 73 74 20 64 61 74 61 62 61 73 65 20 61 73  test database as
3330: 20 75 73 65 66 75 6c 20 65 78 61 6d 70 6c 65 73   useful examples
3340: 20 65 78 70 6c 61 69 6e 65 64 20 6c 61 74 65 72   explained later
3350: 20 69 6e 20 74 68 69 73 20 74 65 78 74 2e 3c 2f   in this text.</
3360: 6c 69 3e 0d 0a 3c 2f 75 6c 3e 3c 2f 6c 69 3e 0d  li>..</ul></li>.
3370: 0a 3c 6c 69 3e 74 68 65 20 3c 62 3e 68 6f 75 73  .<li>the <b>hous
3380: 65 5f 6e 72 5f 76 77 3c 2f 62 3e 20 53 70 61 74  e_nr_vw</b> Spat
3390: 69 61 6c 20 56 69 65 77 20 72 65 73 6f 6c 76 65  ial View resolve
33a0: 73 20 61 6c 6c 20 72 65 6c 61 74 69 6f 6e 61 6c  s all relational
33b0: 20 72 65 66 65 72 65 6e 63 65 73 20 62 65 74 77   references betw
33c0: 65 65 6e 20 3c 62 3e 68 6f 75 73 65 5f 6e 72 3c  een <b>house_nr<
33d0: 2f 62 3e 2c 20 3c 62 3e 72 6f 61 64 73 3c 2f 62  /b>, <b>roads</b
33e0: 3e 2c 20 3c 62 3e 74 6f 70 6f 6e 79 6d 73 3c 2f  >, <b>toponyms</
33f0: 62 3e 20 61 6e 64 20 3c 62 3e 6d 75 6e 69 63 69  b> and <b>munici
3400: 70 61 6c 69 74 69 65 73 3c 2f 62 3e 2c 20 74 68  palities</b>, th
3410: 75 73 20 61 6c 6c 6f 77 69 6e 67 20 66 6f 72 20  us allowing for 
3420: 65 61 73 69 65 72 20 53 51 4c 20 71 75 65 72 69  easier SQL queri
3430: 65 73 2e 3c 2f 6c 69 3e 0d 0a 3c 2f 75 6c 3e 0d  es.</li>..</ul>.
3440: 0a 3c 62 72 3e 0d 0a 20 3c 68 72 3e 0d 0a 3c 68  .<br>.. <hr>..<h
3450: 31 3e 3c 61 20 6e 61 6d 65 3d 22 63 72 65 61 74  1><a name="creat
3460: 65 22 3e 33 20 2d 20 43 72 65 61 74 69 6e 67 20  e">3 - Creating 
3470: 56 69 72 74 75 61 6c 52 6f 75 74 69 6e 67 20 54  VirtualRouting T
3480: 61 62 6c 65 73 3c 2f 61 3e 3c 2f 68 31 3e 0d 0a  ables</a></h1>..
3490: 41 6c 6c 20 56 69 72 74 75 61 6c 52 6f 75 74 69  All VirtualRouti
34a0: 6e 67 20 71 75 65 72 69 65 73 20 61 72 65 20 62  ng queries are b
34b0: 61 73 65 64 20 6f 6e 20 73 6f 6d 65 20 3c 62 3e  ased on some <b>
34c0: 56 69 72 74 75 61 6c 52 6f 75 74 69 6e 67 20 54  VirtualRouting T
34d0: 61 62 6c 65 3c 2f 62 3e 2c 20 61 6e 64 20 69 6e  able</b>, and in
34e0: 20 74 75 72 6e 20 61 6e 79 20 56 69 72 74 75 61   turn any Virtua
34f0: 6c 52 6f 75 74 69 6e 67 20 54 61 62 6c 65 20 69  lRouting Table i
3500: 73 20 62 61 73 65 64 20 6f 6e 20 73 6f 6d 65 20  s based on some 
3510: 61 70 70 72 6f 70 72 69 61 74 65 20 3c 62 3e 42  appropriate <b>B
3520: 69 6e 61 72 79 20 44 61 74 61 20 54 61 62 6c 65  inary Data Table
3530: 3c 2f 62 3e 20 73 75 70 70 6f 72 74 69 6e 67 20  </b> supporting 
3540: 61 6e 20 65 66 66 69 63 69 65 6e 74 20 72 65 70  an efficient rep
3550: 72 65 73 65 6e 74 61 74 69 6f 6e 20 6f 66 20 74  resentation of t
3560: 68 65 20 75 6e 64 65 72 6c 79 69 6e 67 20 4e 65  he underlying Ne
3570: 74 77 6f 72 6b 2e 3c 62 72 3e 0d 0a 53 6f 20 77  twork.<br>..So w
3580: 65 27 6c 6c 20 73 74 61 72 74 20 66 69 72 73 74  e'll start first
3590: 20 62 79 20 63 72 65 61 74 69 6e 67 20 73 75 63   by creating suc
35a0: 68 20 74 61 62 6c 65 73 2e 3c 62 72 3e 3c 62 72  h tables.<br><br
35b0: 3e 0d 0a 54 68 65 20 6f 6c 64 20 61 6e 64 20 6e  >..The old and n
35c0: 6f 77 20 73 75 70 65 72 73 65 64 65 64 20 3c 62  ow superseded <b
35d0: 3e 56 69 72 74 75 61 6c 4e 65 74 77 6f 72 6b 3c  >VirtualNetwork<
35e0: 2f 62 3e 20 72 65 71 75 69 72 65 64 20 75 73 69  /b> required usi
35f0: 6e 67 20 61 20 73 65 70 61 72 61 74 65 20 43 4c  ng a separate CL
3600: 49 20 74 6f 6f 6c 20 28 3c 62 3e 73 70 61 74 69  I tool (<b>spati
3610: 61 6c 69 74 65 5f 6e 65 74 77 6f 72 6b 3c 2f 62  alite_network</b
3620: 3e 29 20 69 6e 20 6f 72 64 65 72 20 74 6f 20 70  >) in order to p
3630: 72 6f 70 65 72 6c 79 20 69 6e 69 74 69 61 6c 69  roperly initiali
3640: 7a 65 20 61 20 56 69 72 74 75 61 6c 4e 65 74 77  ze a VirtualNetw
3650: 6f 72 6b 20 54 61 62 6c 65 20 61 6e 64 20 69 74  ork Table and it
3660: 73 20 63 6f 6d 70 61 6e 69 6f 6e 20 42 69 6e 61  s companion Bina
3670: 72 79 20 44 61 74 61 20 54 61 62 6c 65 3b 0d 0a  ry Data Table;..
3680: 61 6c 74 65 72 6e 61 74 69 76 65 6c 79 20 3c 62  alternatively <b
3690: 3e 73 70 61 74 69 61 6c 69 74 65 5f 67 75 69 3c  >spatialite_gui<
36a0: 2f 62 3e 20 73 75 70 70 6f 72 74 65 64 20 61 20  /b> supported a 
36b0: 3c 62 3e 47 55 49 20 77 69 7a 61 72 64 3c 2f 62  <b>GUI wizard</b
36c0: 3e 20 66 6f 72 20 74 68 65 20 73 61 6d 65 20 74  > for the same t
36d0: 61 73 6b 2e 20 53 69 6e 63 65 20 76 65 72 73 69  ask. Since versi
36e0: 6f 6e 20 3c 62 3e 35 2e 30 2e 30 3c 2f 62 3e 20  on <b>5.0.0</b> 
36f0: 6e 6f 77 20 53 70 61 74 69 61 4c 69 74 65 20 64  now SpatiaLite d
3700: 69 72 65 63 74 6c 79 20 73 75 70 70 6f 72 74 73  irectly supports
3710: 20 61 20 73 70 65 63 69 66 69 63 20 3c 62 3e 43   a specific <b>C
3720: 72 65 61 74 65 52 6f 75 74 69 6e 67 28 29 3c 2f  reateRouting()</
3730: 62 3e 20 53 51 4c 20 66 75 6e 63 74 69 6f 6e 2e  b> SQL function.
3740: 0d 0a 3c 76 65 72 62 61 74 69 6d 3e 0d 0a 53 45  ..<verbatim>..SE
3750: 4c 45 43 54 20 43 72 65 61 74 65 52 6f 75 74 69  LECT CreateRouti
3760: 6e 67 28 27 62 79 66 6f 6f 74 5f 64 61 74 61 27  ng('byfoot_data'
3770: 2c 20 27 62 79 66 6f 6f 74 27 2c 20 27 72 6f 61  , 'byfoot', 'roa
3780: 64 73 5f 76 77 27 2c 20 27 6e 6f 64 65 5f 66 72  ds_vw', 'node_fr
3790: 6f 6d 27 2c 20 27 6e 6f 64 65 74 6f 27 2c 20 27  om', 'nodeto', '
37a0: 67 65 6f 6d 27 2c 20 4e 55 4c 4c 29 3b 0d 0a 0d  geom', NULL);...
37b0: 0a 53 45 4c 45 43 54 20 43 72 65 61 74 65 52 6f  .SELECT CreateRo
37c0: 75 74 69 6e 67 5f 47 65 74 4c 61 73 74 45 72 72  uting_GetLastErr
37d0: 6f 72 28 29 3b 0d 0a 2d 2d 2d 2d 2d 2d 2d 2d 2d  or();..---------
37e0: 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d  ----------------
37f0: 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 0d 0a 54 6f 4e  -----------..ToN
3800: 6f 64 65 20 43 6f 6c 75 6d 6e 20 22 6e 6f 64 65  ode Column "node
3810: 74 6f 22 20 69 73 20 6e 6f 74 20 64 65 66 69 6e  to" is not defin
3820: 65 64 20 69 6e 20 74 68 65 20 49 6e 70 75 74 20  ed in the Input 
3830: 54 61 62 6c 65 0d 0a 3c 2f 76 65 72 62 61 74 69  Table..</verbati
3840: 6d 3e 0d 0a 3c 75 3e 4e 6f 74 65 3c 2f 75 3e 3a  m>..<u>Note</u>:
3850: 20 74 68 69 73 20 66 69 72 73 74 20 71 75 65 72   this first quer
3860: 79 20 28 62 61 73 65 64 20 6f 6e 20 74 68 65 20  y (based on the 
3870: 3c 69 3e 72 65 64 75 63 65 64 20 66 6f 72 6d 3c  <i>reduced form<
3880: 2f 69 3e 20 6f 66 20 3c 62 3e 43 72 65 61 74 65  /i> of <b>Create
3890: 52 6f 75 74 69 6e 67 3c 2f 62 3e 29 20 63 6f 6e  Routing</b>) con
38a0: 74 61 69 6e 73 20 61 6e 20 69 6e 74 65 6e 64 65  tains an intende
38b0: 64 20 65 72 72 6f 72 20 63 61 75 73 69 6e 67 20  d error causing 
38c0: 61 20 66 61 69 6c 75 72 65 20 61 6e 64 20 74 68  a failure and th
38d0: 75 73 20 72 61 69 73 69 6e 67 20 61 6e 20 65 78  us raising an ex
38e0: 63 65 70 74 69 6f 6e 2e 3c 62 72 3e 0d 0a 43 72  ception.<br>..Cr
38f0: 65 61 74 65 52 6f 75 74 69 6e 67 28 29 20 63 61  eateRouting() ca
3900: 6e 20 66 61 69 6c 20 66 6f 72 20 6d 75 6c 74 69  n fail for multi
3910: 70 6c 65 20 72 65 61 73 6f 6e 73 2c 20 61 6e 64  ple reasons, and
3920: 20 62 79 20 63 61 6c 6c 69 6e 67 20 3c 62 3e 43   by calling <b>C
3930: 72 65 61 74 65 52 6f 75 74 69 6e 67 5f 47 65 74  reateRouting_Get
3940: 4c 61 73 74 45 72 72 6f 72 28 29 3c 2f 62 3e 20  LastError()</b> 
3950: 79 6f 75 20 63 61 6e 20 65 61 73 69 6c 79 20 69  you can easily i
3960: 64 65 6e 74 69 66 79 20 74 68 65 20 65 78 61 63  dentify the exac
3970: 74 20 72 65 61 73 6f 6e 20 77 68 79 20 74 68 65  t reason why the
3980: 20 6d 6f 73 74 20 72 65 63 65 6e 74 20 63 61 6c   most recent cal
3990: 6c 20 74 6f 20 43 72 65 61 74 65 52 6f 75 74 69  l to CreateRouti
39a0: 6e 67 28 29 20 66 61 69 6c 65 64 2e 3c 62 72 3e  ng() failed.<br>
39b0: 0d 0a 3c 76 65 72 62 61 74 69 6d 3e 0d 0a 53 45  ..<verbatim>..SE
39c0: 4c 45 43 54 20 43 72 65 61 74 65 52 6f 75 74 69  LECT CreateRouti
39d0: 6e 67 28 27 62 79 66 6f 6f 74 5f 64 61 74 61 27  ng('byfoot_data'
39e0: 2c 20 27 62 79 66 6f 6f 74 27 2c 20 27 72 6f 61  , 'byfoot', 'roa
39f0: 64 73 5f 76 77 27 2c 20 27 6e 6f 64 65 5f 66 72  ds_vw', 'node_fr
3a00: 6f 6d 27 2c 20 27 6e 6f 64 65 5f 74 6f 27 2c 20  om', 'node_to', 
3a10: 27 67 65 6f 6d 27 2c 20 4e 55 4c 4c 2c 20 27 74  'geom', NULL, 't
3a20: 6f 70 6f 6e 79 6d 27 2c 20 31 2c 20 31 29 3b 0d  oponym', 1, 1);.
3a30: 0a 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 0d 0a  .-------------..
3a40: 31 0d 0a 0d 0a 53 45 4c 45 43 54 20 43 72 65 61  1....SELECT Crea
3a50: 74 65 52 6f 75 74 69 6e 67 5f 47 65 74 4c 61 73  teRouting_GetLas
3a60: 74 45 72 72 6f 72 28 29 3b 0d 0a 2d 2d 2d 2d 2d  tError();..-----
3a70: 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d  ----------------
3a80: 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 0d  ---------------.
3a90: 0a 4e 55 4c 4c 0d 0a 3c 2f 76 65 72 62 61 74 69  .NULL..</verbati
3aa0: 6d 3e 0d 0a 54 68 69 73 20 73 65 63 6f 6e 64 20  m>..This second 
3ab0: 61 74 74 65 6d 70 74 20 69 73 20 66 69 6e 61 6c  attempt is final
3ac0: 6c 79 20 73 75 63 63 65 73 73 66 75 6c 2c 20 61  ly successful, a
3ad0: 6e 64 20 6e 6f 77 20 43 72 65 61 74 65 52 6f 75  nd now CreateRou
3ae0: 74 69 6e 67 28 29 20 72 65 74 75 72 6e 73 20 3c  ting() returns <
3af0: 62 3e 31 3c 2f 62 3e 20 28 3c 69 3e 61 6b 61 3c  b>1</b> (<i>aka<
3b00: 2f 69 3e 20 3c 62 3e 54 52 55 45 3c 2f 62 3e 29  /i> <b>TRUE</b>)
3b10: 2c 20 61 6e 64 20 61 73 20 79 6f 75 20 63 61 6e  , and as you can
3b20: 20 65 61 73 69 6c 79 20 63 68 65 63 6b 20 6e 6f   easily check no
3b30: 77 20 74 68 65 20 44 61 74 61 62 61 73 65 20 63  w the Database c
3b40: 6f 6e 74 61 69 6e 73 20 74 77 6f 20 6e 65 77 20  ontains two new 
3b50: 54 61 62 6c 65 73 3a 20 3c 62 3e 62 79 66 6f 6f  Tables: <b>byfoo
3b60: 74 3c 2f 62 3e 20 61 6e 64 20 3c 62 3e 62 79 66  t</b> and <b>byf
3b70: 6f 6f 74 5f 64 61 74 61 3c 2f 62 3e 2e 3c 62 72  oot_data</b>.<br
3b80: 3e 0d 0a 3c 75 3e 4e 6f 74 65 3c 2f 75 3e 3a 20  >..<u>Note</u>: 
3b90: 61 66 74 65 72 20 61 20 73 75 63 63 65 73 73 66  after a successf
3ba0: 75 6c 20 63 61 6c 6c 20 74 6f 20 43 72 65 61 74  ul call to Creat
3bb0: 65 52 6f 75 74 69 6e 67 28 29 20 3c 62 3e 43 72  eRouting() <b>Cr
3bc0: 65 61 74 65 52 6f 75 74 69 6e 67 5f 47 65 74 4c  eateRouting_GetL
3bd0: 61 73 74 45 72 72 6f 72 28 29 3c 2f 62 3e 20 77  astError()</b> w
3be0: 69 6c 6c 20 61 6c 77 61 79 73 20 72 65 74 75 72  ill always retur
3bf0: 6e 20 3c 62 3e 4e 55 4c 4c 3c 2f 62 3e 2e 3c 62  n <b>NULL</b>.<b
3c00: 72 3e 3c 62 72 3e 0d 0a 59 6f 75 27 76 65 20 6a  r><br>..You've j
3c10: 75 73 74 20 75 73 65 64 20 6f 6e 65 20 6f 66 20  ust used one of 
3c20: 74 68 65 20 3c 69 3e 70 61 72 74 69 61 6c 6c 79  the <i>partially
3c30: 20 72 65 64 75 63 65 64 20 66 6f 72 6d 3c 2f 69   reduced form</i
3c40: 3e 20 6f 66 20 43 72 65 61 74 65 52 6f 75 74 69  > of CreateRouti
3c50: 6e 67 28 29 3b 20 6c 65 74 27 73 20 73 65 65 20  ng(); let's see 
3c60: 69 6e 20 6d 6f 72 65 20 64 65 70 74 68 20 61 6c  in more depth al
3c70: 6c 20 74 68 65 20 61 72 67 75 6d 65 6e 74 73 20  l the arguments 
3c80: 61 6e 64 20 74 68 65 69 72 20 6d 65 61 6e 69 6e  and their meanin
3c90: 67 3a 0d 0a 3c 6f 6c 3e 0d 0a 3c 6c 69 3e 3c 69  g:..<ol>..<li><i
3ca0: 3e 62 79 66 6f 6f 74 5f 64 61 74 61 3c 2f 69 3e  >byfoot_data</i>
3cb0: 3a 20 74 68 65 20 6e 61 6d 65 20 6f 66 20 74 68  : the name of th
3cc0: 65 20 4e 65 74 77 6f 72 6b 20 42 69 6e 61 72 79  e Network Binary
3cd0: 20 44 61 74 61 20 54 61 62 6c 65 20 74 6f 20 62   Data Table to b
3ce0: 65 20 63 72 65 61 74 65 64 2e 3c 2f 6c 69 3e 0d  e created.</li>.
3cf0: 0a 3c 6c 69 3e 3c 69 3e 62 79 66 6f 6f 74 3c 2f  .<li><i>byfoot</
3d00: 69 3e 3a 20 74 68 65 20 6e 61 6d 65 20 6f 66 20  i>: the name of 
3d10: 74 68 65 20 56 69 72 74 75 61 6c 52 6f 75 74 69  the VirtualRouti
3d20: 6e 67 20 54 61 62 6c 65 20 74 6f 20 62 65 20 63  ng Table to be c
3d30: 72 65 61 74 65 64 2e 3c 2f 6c 69 3e 0d 0a 3c 6c  reated.</li>..<l
3d40: 69 3e 3c 69 3e 72 6f 61 64 73 5f 76 77 3c 2f 69  i><i>roads_vw</i
3d50: 3e 3a 20 74 68 65 20 6e 61 6d 65 20 6f 66 20 74  >: the name of t
3d60: 68 65 20 3c 62 3e 53 70 61 74 69 61 6c 20 54 61  he <b>Spatial Ta
3d70: 62 6c 65 3c 2f 62 3e 20 6f 72 20 3c 62 3e 53 70  ble</b> or <b>Sp
3d80: 61 74 69 61 6c 20 56 69 65 77 3c 2f 62 3e 20 72  atial View</b> r
3d90: 65 70 72 65 73 65 6e 74 69 6e 67 20 74 68 65 20  epresenting the 
3da0: 75 6e 64 65 72 6c 79 69 6e 67 20 4e 65 74 77 6f  underlying Netwo
3db0: 72 6b 2e 3c 62 72 3e 0d 0a 3c 75 3e 4e 6f 74 65  rk.<br>..<u>Note
3dc0: 3c 2f 75 3e 3a 20 69 6e 20 74 68 69 73 20 63 61  </u>: in this ca
3dd0: 73 65 20 77 65 20 61 63 74 75 61 6c 6c 79 20 75  se we actually u
3de0: 73 65 64 20 61 20 53 70 61 74 69 61 6c 20 56 69  sed a Spatial Vi
3df0: 65 77 2e 3c 2f 6c 69 3e 0d 0a 3c 6c 69 3e 3c 69  ew.</li>..<li><i
3e00: 3e 6e 6f 64 65 5f 66 72 6f 6d 3c 2f 69 3e 3a 20  >node_from</i>: 
3e10: 6e 61 6d 65 20 6f 66 20 74 68 65 20 63 6f 6c 75  name of the colu
3e20: 6d 6e 20 28 69 6e 20 74 68 65 20 61 62 6f 76 65  mn (in the above
3e30: 20 54 61 62 6c 65 20 6f 72 20 56 69 65 77 29 20   Table or View) 
3e40: 65 78 70 65 63 74 65 64 20 74 6f 20 63 6f 6e 74  expected to cont
3e50: 61 69 6e 20 3c 62 3e 6e 6f 64 65 2d 66 72 6f 6d  ain <b>node-from
3e60: 3c 2f 62 3e 20 76 61 6c 75 65 73 2e 3c 2f 6c 69  </b> values.</li
3e70: 3e 0d 0a 3c 6c 69 3e 3c 69 3e 6e 6f 64 65 5f 74  >..<li><i>node_t
3e80: 6f 3c 2f 69 3e 3a 20 6e 61 6d 65 20 6f 66 20 74  o</i>: name of t
3e90: 68 65 20 63 6f 6c 75 6d 6e 20 28 69 6e 20 74 68  he column (in th
3ea0: 65 20 61 62 6f 76 65 20 54 61 62 6c 65 20 6f 72  e above Table or
3eb0: 20 56 69 65 77 29 20 65 78 70 65 63 74 65 64 20   View) expected 
3ec0: 74 6f 20 63 6f 6e 74 61 69 6e 20 3c 62 3e 6e 6f  to contain <b>no
3ed0: 64 65 2d 74 6f 3c 2f 62 3e 20 76 61 6c 75 65 73  de-to</b> values
3ee0: 2e 3c 2f 6c 69 3e 0d 0a 3c 6c 69 3e 3c 69 3e 67  .</li>..<li><i>g
3ef0: 65 6f 6d 3c 2f 69 3e 3a 20 6e 61 6d 65 20 6f 66  eom</i>: name of
3f00: 20 74 68 65 20 63 6f 6c 75 6d 6e 20 28 69 6e 20   the column (in 
3f10: 74 68 65 20 61 62 6f 76 65 20 54 61 62 6c 65 20  the above Table 
3f20: 6f 72 20 56 69 65 77 29 20 65 78 70 65 63 74 65  or View) expecte
3f30: 64 20 74 6f 20 63 6f 6e 74 61 69 6e 20 3c 62 3e  d to contain <b>
3f40: 4c 69 6e 65 73 74 72 69 6e 67 73 3c 2f 62 3e 2e  Linestrings</b>.
3f50: 3c 62 72 3e 0d 0a 57 65 20 63 6f 75 6c 64 20 68  <br>..We could h
3f60: 61 76 65 20 6c 65 67 69 74 69 6d 61 74 65 6c 79  ave legitimately
3f70: 20 70 61 73 73 65 64 20 61 20 3c 62 3e 4e 55 4c   passed a <b>NUL
3f80: 4c 3c 2f 62 3e 20 76 61 6c 75 65 20 66 6f 72 20  L</b> value for 
3f90: 74 68 69 73 20 61 72 67 75 6d 65 6e 74 20 69 6e  this argument in
3fa0: 20 74 68 65 20 63 61 73 65 20 6f 66 20 61 20 3c   the case of a <
3fb0: 62 3e 4c 6f 67 69 63 61 6c 20 4e 65 74 77 6f 72  b>Logical Networ
3fc0: 6b 3c 2f 62 3e 2e 3c 2f 6c 69 3e 0d 0a 3c 6c 69  k</b>.</li>..<li
3fd0: 3e 3c 69 3e 4e 55 4c 4c 3c 2f 69 3e 3a 20 6e 61  ><i>NULL</i>: na
3fe0: 6d 65 20 6f 66 20 74 68 65 20 63 6f 6c 75 6d 6e  me of the column
3ff0: 20 28 69 6e 20 74 68 65 20 61 62 6f 76 65 20 54   (in the above T
4000: 61 62 6c 65 20 6f 72 20 56 69 65 77 29 20 65 78  able or View) ex
4010: 70 65 63 74 65 64 20 74 6f 20 63 6f 6e 74 61 69  pected to contai
4020: 6e 20 3c 62 3e 63 6f 73 74 3c 2f 62 3e 20 76 61  n <b>cost</b> va
4030: 6c 75 65 73 2e 3c 62 72 3e 0d 0a 49 6e 20 74 68  lues.<br>..In th
4040: 69 73 20 63 61 73 65 20 77 65 20 68 61 76 65 20  is case we have 
4050: 70 61 73 73 65 64 20 61 20 3c 62 3e 4e 55 4c 4c  passed a <b>NULL
4060: 3c 2f 62 3e 20 76 61 6c 75 65 2c 20 61 6e 64 20  </b> value, and 
4070: 63 6f 6e 73 65 71 75 65 6e 74 6c 79 20 74 68 65  consequently the
4080: 20 3c 62 3e 63 6f 73 74 3c 2f 62 3e 20 6f 66 20   <b>cost</b> of 
4090: 65 61 63 68 20 4c 69 6e 6b 20 77 69 6c 6c 20 62  each Link will b
40a0: 65 20 61 73 73 75 6d 65 64 20 74 6f 20 62 65 20  e assumed to be 
40b0: 72 65 70 72 65 73 65 6e 74 65 64 20 62 79 20 74  represented by t
40c0: 68 65 20 3c 62 3e 67 65 6f 6d 65 74 72 69 63 20  he <b>geometric 
40d0: 6c 65 6e 67 74 68 3c 2f 62 3e 20 6f 66 20 74 68  length</b> of th
40e0: 65 20 63 6f 72 72 65 73 70 6f 6e 64 69 6e 67 20  e corresponding 
40f0: 4c 69 6e 65 73 74 72 69 6e 67 2e 3c 62 72 3e 0d  Linestring.<br>.
4100: 0a 3c 75 3e 4e 6f 74 65 20 23 31 3c 2f 75 3e 3a  .<u>Note #1</u>:
4110: 20 69 6e 20 74 68 65 20 63 61 73 65 20 6f 66 20   in the case of 
4120: 4e 65 74 77 6f 72 6b 73 20 62 61 73 65 64 20 6f  Networks based o
4130: 6e 20 3c 62 3e 6c 6f 6e 67 69 74 75 64 65 73 3c  n <b>longitudes<
4140: 2f 62 3e 20 61 6e 64 20 3c 62 3e 6c 61 74 69 74  /b> and <b>latit
4150: 75 64 65 73 3c 2f 62 3e 20 28 3c 69 3e 61 6b 61  udes</b> (<i>aka
4160: 3c 2f 69 3e 20 3c 62 3e 67 65 6f 67 72 61 70 68  </i> <b>geograph
4170: 69 63 3c 2f 62 3e 20 52 65 66 65 72 65 6e 63 65  ic</b> Reference
4180: 20 53 79 73 74 65 6d 73 29 20 74 68 65 20 67 65   Systems) the ge
4190: 6f 6d 65 74 72 79 20 6c 65 6e 67 74 68 20 6f 66  ometry length of
41a0: 20 61 6c 6c 20 4c 69 6e 65 73 74 72 69 6e 67 73   all Linestrings
41b0: 20 77 69 6c 6c 20 62 65 20 70 72 65 63 69 73 65   will be precise
41c0: 6c 79 20 3c 62 3e 6d 65 61 73 75 72 65 64 20 6f  ly <b>measured o
41d0: 6e 20 74 68 65 20 65 6c 6c 69 70 73 6f 69 64 3c  n the ellipsoid<
41e0: 2f 62 3e 20 62 79 20 61 70 70 6c 79 69 6e 67 20  /b> by applying 
41f0: 74 68 65 20 6d 6f 73 74 20 61 63 63 75 72 61 74  the most accurat
4200: 65 20 3c 62 3e 67 65 6f 64 65 73 69 63 20 66 6f  e <b>geodesic fo
4210: 72 6d 75 6c 61 65 3c 2f 62 3e 20 61 6e 64 20 77  rmulae</b> and w
4220: 69 6c 6c 20 62 65 20 63 6f 6e 73 65 71 75 65 6e  ill be consequen
4230: 74 6c 79 20 65 78 70 72 65 73 73 65 64 20 69 6e  tly expressed in
4240: 20 3c 62 3e 6d 65 74 65 72 73 3c 2f 62 3e 2e 20   <b>meters</b>. 
4250: 49 6e 20 61 6e 79 20 6f 74 68 65 72 20 63 61 73  In any other cas
4260: 65 20 28 3c 62 3e 70 72 6f 6a 65 63 74 65 64 3c  e (<b>projected<
4270: 2f 62 3e 20 52 65 66 65 72 65 6e 63 65 20 53 79  /b> Reference Sy
4280: 73 74 65 6d 73 29 20 6c 65 6e 67 74 68 73 20 77  stems) lengths w
4290: 69 6c 6c 20 62 65 20 65 78 70 72 65 73 73 65 64  ill be expressed
42a0: 20 69 6e 20 74 68 65 20 3c 62 3e 6d 65 61 73 75   in the <b>measu
42b0: 72 65 20 75 6e 69 74 3c 2f 62 3e 20 64 65 66 69  re unit</b> defi
42c0: 6e 65 64 20 62 79 20 74 68 65 20 52 65 66 65 72  ned by the Refer
42d0: 65 6e 63 65 20 53 79 73 74 65 6d 20 28 65 2e 67  ence System (e.g
42e0: 2e 20 3c 62 3e 6d 65 74 65 72 73 3c 2f 62 3e 20  . <b>meters</b> 
42f0: 66 6f 72 20 3c 62 3e 55 54 4d 3c 2f 62 3e 20 70  for <b>UTM</b> p
4300: 72 6f 6a 65 63 74 69 6f 6e 73 20 61 6e 64 20 3c  rojections and <
4310: 62 3e 66 65 65 74 3c 2f 62 3e 20 66 6f 72 20 3c  b>feet</b> for <
4320: 62 3e 4e 41 44 2d 66 74 3c 2f 62 3e 20 70 72 6f  b>NAD-ft</b> pro
4330: 6a 65 63 74 69 6f 6e 73 29 2e 3c 62 72 3e 0d 0a  jections).<br>..
4340: 3c 75 3e 4e 6f 74 65 20 23 32 3c 2f 75 3e 3a 20  <u>Note #2</u>: 
4350: 74 68 65 20 3c 62 3e 67 65 6f 6d 2d 63 6f 6c 75  the <b>geom-colu
4360: 6d 6e 3c 2f 62 3e 20 61 6e 64 20 3c 62 3e 63 6f  mn</b> and <b>co
4370: 73 74 2d 63 6f 6c 75 6d 6e 3c 2f 62 3e 20 61 72  st-column</b> ar
4380: 67 75 6d 65 6e 74 73 20 61 72 65 20 6e 65 76 65  guments are neve
4390: 72 20 61 6c 6c 6f 77 65 64 20 74 6f 20 62 65 20  r allowed to be 
43a0: 3c 62 3e 4e 55 4c 4c 3c 2f 62 3e 20 61 74 20 74  <b>NULL</b> at t
43b0: 68 65 20 73 61 6d 65 20 74 69 6d 65 2e 3c 2f 6c  he same time.</l
43c0: 69 3e 0d 0a 3c 6c 69 3e 3c 69 3e 74 6f 70 6f 6e  i>..<li><i>topon
43d0: 79 6d 3c 2f 69 3e 3a 20 6e 61 6d 65 20 6f 66 20  ym</i>: name of 
43e0: 74 68 65 20 63 6f 6c 75 6d 6e 20 28 69 6e 20 74  the column (in t
43f0: 68 65 20 61 62 6f 76 65 20 54 61 62 6c 65 20 6f  he above Table o
4400: 72 20 56 69 65 77 29 20 65 78 70 65 63 74 65 64  r View) expected
4410: 20 74 6f 20 63 6f 6e 74 61 69 6e 20 3c 62 3e 72   to contain <b>r
4420: 6f 61 64 2d 6e 61 6d 65 3c 2f 62 3e 20 76 61 6c  oad-name</b> val
4430: 75 65 73 2e 3c 62 72 3e 0d 0a 49 74 20 63 6f 75  ues.<br>..It cou
4440: 6c 64 20 62 65 20 6c 65 67 69 74 69 6d 61 74 65  ld be legitimate
4450: 6c 79 20 73 65 74 20 74 6f 20 3c 62 3e 4e 55 4c  ly set to <b>NUL
4460: 4c 3c 2f 62 3e 20 69 66 20 61 6c 6c 20 4c 69 6e  L</b> if all Lin
4470: 6b 73 20 61 72 65 20 61 6e 6f 6e 79 6d 6f 75 73  ks are anonymous
4480: 2e 3c 2f 6c 69 3e 0d 0a 3c 6c 69 3e 3c 69 3e 31  .</li>..<li><i>1
4490: 3c 2f 69 3e 3a 20 61 20 62 6f 6f 6c 65 61 6e 20  </i>: a boolean 
44a0: 66 6c 61 67 20 69 6e 74 65 6e 64 65 64 20 74 6f  flag intended to
44b0: 20 73 70 65 63 69 66 79 20 69 66 20 74 68 65 20   specify if the 
44c0: 4e 65 74 77 6f 72 6b 20 6d 75 73 74 20 73 75 70  Network must sup
44d0: 70 6f 72 74 20 74 68 65 20 3c 62 3e 41 2a 20 61  port the <b>A* a
44e0: 6c 67 6f 72 69 74 68 6d 3c 2f 62 3e 20 6f 72 20  lgorithm</b> or 
44f0: 6e 6f 74 20 28 73 65 74 20 74 6f 20 3c 62 3e 54  not (set to <b>T
4500: 52 55 45 3c 2f 62 3e 20 62 79 20 64 65 66 61 75  RUE</b> by defau
4510: 6c 74 29 2e 3c 2f 6c 69 3e 0d 0a 3c 6c 69 3e 3c  lt).</li>..<li><
4520: 69 3e 31 3c 2f 69 3e 3a 20 61 20 62 6f 6f 6c 65  i>1</i>: a boole
4530: 61 6e 20 66 6c 61 67 20 69 6e 74 65 6e 64 65 64  an flag intended
4540: 20 74 6f 20 73 70 65 63 69 66 79 20 69 66 20 61   to specify if a
4550: 6c 6c 20 4e 65 74 77 6f 72 6b 27 73 20 4c 69 6e  ll Network's Lin
4560: 6b 73 20 61 72 65 20 61 73 73 75 6d 65 64 20 74  ks are assumed t
4570: 6f 20 62 65 20 3c 62 3e 62 69 64 69 72 65 63 74  o be <b>bidirect
4580: 69 6f 6e 61 6c 3c 2f 62 3e 20 6f 72 20 6e 6f 74  ional</b> or not
4590: 20 28 61 73 73 75 6d 65 64 20 74 6f 20 62 65 20   (assumed to be 
45a0: 3c 62 3e 54 52 55 45 3c 2f 62 3e 20 62 79 20 64  <b>TRUE</b> by d
45b0: 65 66 61 75 6c 74 29 2e 3c 2f 6c 69 3e 20 0d 0a  efault).</li> ..
45c0: 3c 2f 6f 6c 3e 0d 0a 3c 74 61 62 6c 65 20 62 67  </ol>..<table bg
45d0: 63 6f 6c 6f 72 3d 22 23 63 30 66 66 63 30 22 20  color="#c0ffc0" 
45e0: 63 65 6c 6c 73 70 61 63 69 6e 67 3d 22 31 30 22  cellspacing="10"
45f0: 20 63 65 6c 6c 70 61 64 64 69 6e 67 3d 22 36 22   cellpadding="6"
4600: 3e 3c 74 72 3e 3c 74 64 3e 0d 0a 3c 68 33 3e 54  ><tr><td>..<h3>T
4610: 65 63 68 6e 69 63 61 6c 20 6e 6f 74 65 3c 2f 68  echnical note</h
4620: 33 3e 0d 0a 54 68 65 20 69 6e 74 65 72 6e 61 6c  3>..The internal
4630: 20 65 6e 63 6f 64 69 6e 67 20 61 64 6f 70 74 65   encoding adopte
4640: 64 20 62 79 20 74 68 65 20 3c 62 3e 42 69 6e 61  d by the <b>Bina
4650: 72 79 20 44 61 74 61 20 54 61 62 6c 65 3c 2f 62  ry Data Table</b
4660: 3e 20 69 73 20 75 6e 63 68 61 6e 67 65 64 20 61  > is unchanged a
4670: 6e 64 20 69 73 20 74 68 65 20 73 61 6d 65 20 66  nd is the same f
4680: 6f 72 20 62 6f 74 68 20 3c 62 3e 56 69 72 74 75  or both <b>Virtu
4690: 61 6c 4e 65 74 77 6f 6b 3c 2f 62 3e 20 61 6e 64  alNetwok</b> and
46a0: 20 3c 62 3e 56 69 72 74 75 61 6c 52 6f 75 74 69   <b>VirtualRouti
46b0: 6e 67 3c 2f 62 3e 2e 3c 62 72 3e 0d 0a 59 6f 75  ng</b>.<br>..You
46c0: 20 63 61 6e 20 73 61 66 65 6c 79 20 62 61 73 65   can safely base
46d0: 20 61 20 3c 62 3e 56 69 72 74 75 61 6c 52 6f 75   a <b>VirtualRou
46e0: 74 69 6e 67 20 54 61 62 6c 65 3c 2f 62 3e 20 6f  ting Table</b> o
46f0: 6e 20 61 6e 79 20 65 78 69 73 74 69 6e 67 20 42  n any existing B
4700: 69 6e 61 72 79 20 44 61 74 61 0d 0a 54 61 62 6c  inary Data..Tabl
4710: 65 20 63 72 65 61 74 65 64 20 62 79 20 74 68 65  e created by the
4720: 20 3c 62 3e 73 70 61 74 69 61 6c 69 74 65 2d 6e   <b>spatialite-n
4730: 65 74 77 6f 72 6b 3c 2f 62 3e 20 43 4c 49 20 74  etwork</b> CLI t
4740: 6f 6f 6c 2c 20 65 78 61 63 74 6c 79 20 61 73 20  ool, exactly as 
4750: 79 6f 75 20 63 61 6e 20 62 61 73 65 20 61 20 3c  you can base a <
4760: 62 3e 56 69 72 74 75 61 6c 4e 65 74 77 6f 72 6b  b>VirtualNetwork
4770: 20 54 61 62 6c 65 3c 2f 62 3e 20 6f 6e 20 61 6e   Table</b> on an
4780: 79 20 42 69 6e 61 72 79 20 44 61 74 61 20 54 61  y Binary Data Ta
4790: 62 6c 65 20 63 72 65 61 74 65 64 20 62 79 20 74  ble created by t
47a0: 68 65 20 3c 62 3e 43 72 65 61 74 65 52 6f 75 74  he <b>CreateRout
47b0: 69 6e 67 28 29 3c 2f 62 3e 20 53 51 4c 20 66 75  ing()</b> SQL fu
47c0: 6e 63 74 69 6f 6e 2e 0d 0a 3c 76 65 72 62 61 74  nction...<verbat
47d0: 69 6d 3e 0d 0a 43 52 45 41 54 45 20 56 49 52 54  im>..CREATE VIRT
47e0: 55 41 4c 20 54 41 42 4c 45 20 74 65 73 74 5f 6e  UAL TABLE test_n
47f0: 65 74 77 6f 72 6b 20 55 53 49 4e 47 20 56 69 72  etwork USING Vir
4800: 74 75 61 6c 4e 65 74 77 6f 72 6b 28 27 73 6f 6d  tualNetwork('som
4810: 65 5f 64 61 74 61 5f 74 61 62 6c 65 27 29 3b 0d  e_data_table');.
4820: 0a 0d 0a 43 52 45 41 54 45 20 56 49 52 54 55 41  ...CREATE VIRTUA
4830: 4c 20 54 41 42 4c 45 20 74 65 73 74 5f 72 6f 75  L TABLE test_rou
4840: 74 69 6e 67 20 55 53 49 4e 47 20 56 69 72 74 75  ting USING Virtu
4850: 61 6c 52 6f 75 74 69 6e 67 28 27 73 6f 6d 65 5f  alRouting('some_
4860: 64 61 74 61 5f 74 61 62 6c 65 27 29 3b 0d 0a 3c  data_table');..<
4870: 2f 76 65 72 62 61 74 69 6d 3e 0d 0a 49 6e 20 6f  /verbatim>..In o
4880: 72 64 65 72 20 74 6f 20 6d 61 6e 75 61 6c 6c 79  rder to manually
4890: 20 63 72 65 61 74 65 20 79 6f 75 72 20 56 69 72   create your Vir
48a0: 74 75 61 6c 20 54 61 62 6c 65 73 20 79 6f 75 20  tual Tables you 
48b0: 6a 75 73 74 20 68 61 76 65 20 74 6f 20 65 78 65  just have to exe
48c0: 63 75 74 65 20 61 6e 20 61 70 70 72 6f 70 72 69  cute an appropri
48d0: 61 74 65 20 3c 62 3e 43 52 45 41 54 45 20 56 49  ate <b>CREATE VI
48e0: 52 54 55 41 4c 20 54 41 42 4c 45 20 2e 2e 2e 20  RTUAL TABLE ... 
48f0: 55 53 49 4e 47 20 56 69 72 74 75 61 6c 2e 2e 2e  USING Virtual...
4900: 20 28 2e 2e 2e 29 3c 2f 62 3e 20 73 74 61 74 65   (...)</b> state
4910: 6d 65 6e 74 2e 0d 0a 3c 68 34 3e 57 61 72 6e 69  ment...<h4>Warni
4920: 6e 67 3c 2f 68 34 3e 0d 0a 49 6e 20 74 68 65 20  ng</h4>..In the 
4930: 63 61 73 65 20 6f 66 20 3c 62 3e 53 70 61 74 69  case of <b>Spati
4940: 61 6c 20 4e 65 74 77 6f 72 6b 73 3c 2f 62 3e 20  al Networks</b> 
4950: 62 61 73 65 64 20 6f 6e 20 61 6e 79 20 3c 62 3e  based on any <b>
4960: 67 65 6f 67 72 61 70 68 69 63 3c 2f 62 3e 20 52  geographic</b> R
4970: 65 66 65 72 65 6e 63 65 20 53 79 73 74 65 6d 20  eference System 
4980: 28 75 73 69 6e 67 20 3c 62 3e 6c 6f 6e 67 69 74  (using <b>longit
4990: 75 64 65 73 3c 2f 62 3e 20 61 6e 64 20 3c 62 3e  udes</b> and <b>
49a0: 6c 61 74 69 74 75 64 65 73 3c 2f 62 3e 29 20 74  latitudes</b>) t
49b0: 68 65 72 65 20 69 73 20 61 6e 20 69 6d 70 6f 72  here is an impor
49c0: 74 61 6e 74 20 64 69 66 66 65 72 65 6e 63 65 20  tant difference 
49d0: 62 65 74 77 65 65 6e 20 42 69 6e 61 72 79 20 44  between Binary D
49e0: 61 74 61 20 54 61 62 6c 65 73 20 63 72 65 61 74  ata Tables creat
49f0: 65 64 20 62 79 20 74 68 65 20 3c 62 3e 73 70 61  ed by the <b>spa
4a00: 74 69 61 6c 69 74 65 5f 6e 65 74 77 6f 72 6b 3c  tialite_network<
4a10: 2f 62 3e 20 47 55 49 20 74 6f 6f 6c 20 61 6e 64  /b> GUI tool and
4a20: 20 20 42 69 6e 61 72 79 20 44 61 74 61 20 54 61    Binary Data Ta
4a30: 62 6c 65 73 20 63 72 65 61 74 65 64 20 62 79 20  bles created by 
4a40: 74 68 65 20 3c 62 3e 43 72 65 61 74 65 52 6f 75  the <b>CreateRou
4a50: 74 69 6e 67 28 29 3c 2f 62 3e 20 53 51 4c 20 66  ting()</b> SQL f
4a60: 75 6e 63 74 69 6f 6e 20 77 68 65 6e 20 3c 62 3e  unction when <b>
4a70: 63 6f 73 74 73 3c 2f 62 3e 20 61 72 65 20 69 6d  costs</b> are im
4a80: 70 6c 69 63 69 74 6c 79 20 62 61 73 65 64 20 6f  plicitly based o
4a90: 6e 20 74 68 65 20 67 65 6f 6d 65 74 72 69 63 20  n the geometric 
4aa0: 6c 65 6e 67 74 68 20 6f 66 20 74 68 65 20 4c 69  length of the Li
4ab0: 6e 6b 27 73 20 4c 69 6e 65 73 74 72 69 6e 67 3a  nk's Linestring:
4ac0: 0d 0a 3c 75 6c 3e 0d 0a 3c 6c 69 3e 74 68 65 20  ..<ul>..<li>the 
4ad0: 3c 62 3e 73 70 61 74 69 61 6c 69 74 65 5f 6e 65  <b>spatialite_ne
4ae0: 74 77 6f 72 6b 3c 2f 62 3e 20 43 4c 49 20 74 6f  twork</b> CLI to
4af0: 6f 6c 20 28 61 6e 64 20 74 68 65 20 3c 62 3e 47  ol (and the <b>G
4b00: 55 49 20 77 69 7a 61 72 64 3c 2f 62 3e 20 69 6d  UI wizard</b> im
4b10: 70 6c 65 6d 65 6e 74 65 64 20 62 79 20 70 72 65  plemented by pre
4b20: 76 69 6f 75 73 20 76 65 72 73 69 6f 6e 73 20 6f  vious versions o
4b30: 66 20 3c 62 3e 73 70 61 74 69 61 6c 69 74 65 5f  f <b>spatialite_
4b40: 67 75 69 3c 2f 62 3e 29 20 63 6f 6d 70 75 74 65  gui</b>) compute
4b50: 20 74 68 65 20 4c 69 6e 65 73 74 72 69 6e 67 27   the Linestring'
4b60: 73 20 6c 65 6e 67 74 68 20 61 73 20 61 6e 20 3c  s length as an <
4b70: 62 3e 61 6e 67 75 6c 61 72 20 64 69 73 74 61 6e  b>angular distan
4b80: 63 65 3c 2f 62 3e 20 65 78 70 72 65 73 73 65 64  ce</b> expressed
4b90: 20 69 6e 20 3c 62 3e 64 65 67 72 65 65 73 3c 2f   in <b>degrees</
4ba0: 62 3e 2e 3c 2f 6c 69 3e 0d 0a 3c 6c 69 3e 74 68  b>.</li>..<li>th
4bb0: 65 20 3c 62 3e 43 72 65 61 74 65 52 6f 75 74 69  e <b>CreateRouti
4bc0: 6e 67 28 29 3c 2f 62 3e 20 53 51 4c 20 66 75 6e  ng()</b> SQL fun
4bd0: 63 74 69 6f 6e 20 63 6f 6d 70 75 74 65 73 20 74  ction computes t
4be0: 68 65 20 4c 69 6e 65 73 74 72 69 6e 67 27 73 20  he Linestring's 
4bf0: 6c 65 6e 67 74 68 20 61 73 20 61 20 3c 62 3e 6c  length as a <b>l
4c00: 69 6e 65 61 72 20 64 69 73 74 61 6e 63 65 3c 2f  inear distance</
4c10: 62 3e 20 65 78 70 72 65 73 73 65 64 20 69 6e 20  b> expressed in 
4c20: 3c 62 3e 6d 65 74 72 65 73 3c 2f 62 3e 20 62 79  <b>metres</b> by
4c30: 20 61 70 70 6c 79 69 6e 67 20 74 68 65 20 6d 6f   applying the mo
4c40: 73 74 20 61 63 63 75 72 61 74 65 20 3c 62 3e 67  st accurate <b>g
4c50: 65 6f 64 65 73 69 63 20 66 6f 72 6d 75 6c 61 65  eodesic formulae
4c60: 3c 2f 62 3e 20 6f 6e 20 74 68 65 20 65 6c 6c 69  </b> on the elli
4c70: 70 73 6f 69 64 2e 3c 2f 6c 69 3e 0d 0a 3c 2f 75  psoid.</li>..</u
4c80: 6c 3e 0d 0a 3c 2f 74 64 3e 3c 2f 74 72 3e 3c 2f  l>..</td></tr></
4c90: 74 61 62 6c 65 3e 3c 62 72 3e 3c 62 72 3e 0d 0a  table><br><br>..
4ca0: 3c 76 65 72 62 61 74 69 6d 3e 0d 0a 53 45 4c 45  <verbatim>..SELE
4cb0: 43 54 20 43 72 65 61 74 65 52 6f 75 74 69 6e 67  CT CreateRouting
4cc0: 28 27 62 79 63 61 72 5f 64 61 74 61 27 2c 20 27  ('bycar_data', '
4cd0: 62 79 63 61 72 27 2c 20 27 72 6f 61 64 73 5f 76  bycar', 'roads_v
4ce0: 77 27 2c 20 27 6e 6f 64 65 5f 66 72 6f 6d 27 2c  w', 'node_from',
4cf0: 20 27 6e 6f 64 65 5f 74 6f 27 2c 20 27 67 65 6f   'node_to', 'geo
4d00: 6d 27 2c 20 27 63 6f 73 74 27 2c 20 27 74 6f 70  m', 'cost', 'top
4d10: 6f 6e 79 6d 27 2c 20 31 2c 20 31 2c 20 27 6f 6e  onym', 1, 1, 'on
4d20: 65 77 61 79 5f 66 72 6f 6d 74 6f 27 2c 20 27 6f  eway_fromto', 'o
4d30: 6e 65 77 61 79 5f 74 6f 66 72 6f 6d 27 2c 20 30  neway_tofrom', 0
4d40: 29 3b 0d 0a 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d  );..------------
4d50: 2d 2d 2d 2d 2d 2d 2d 2d 0d 0a 31 0d 0a 3c 2f 76  --------..1..</v
4d60: 65 72 62 61 74 69 6d 3e 0d 0a 41 66 74 65 72 20  erbatim>..After 
4d70: 63 61 6c 6c 69 6e 67 20 79 65 74 20 61 6e 6f 74  calling yet anot
4d80: 68 65 72 20 74 69 6d 65 20 3c 62 3e 43 72 65 61  her time <b>Crea
4d90: 74 65 52 6f 75 74 69 6e 67 28 29 3c 2f 62 3e 20  teRouting()</b> 
4da0: 6e 6f 77 20 74 68 65 20 44 61 74 61 62 61 73 65  now the Database
4db0: 20 63 6f 6e 74 61 69 6e 73 20 74 77 6f 20 66 75   contains two fu
4dc0: 72 74 68 65 72 20 54 61 62 6c 65 73 3a 20 3c 62  rther Tables: <b
4dd0: 3e 62 79 63 61 72 3c 2f 62 3e 20 61 6e 64 20 3c  >bycar</b> and <
4de0: 62 3e 62 79 63 61 72 5f 64 61 74 61 3c 2f 62 3e  b>bycar_data</b>
4df0: 2e 3c 62 72 3e 0d 0a 54 68 69 73 20 74 69 6d 65  .<br>..This time
4e00: 20 79 6f 75 27 76 65 20 75 73 65 64 20 74 68 65   you've used the
4e10: 20 3c 69 3e 63 6f 6d 70 6c 65 74 65 20 66 6f 72   <i>complete for
4e20: 6d 3c 2f 69 3e 20 6f 66 20 43 72 65 61 74 65 52  m</i> of CreateR
4e30: 6f 75 74 69 6e 67 28 29 3b 20 6c 65 74 27 73 20  outing(); let's 
4e40: 73 65 65 20 69 6e 20 6d 6f 72 65 20 64 65 70 74  see in more dept
4e50: 68 20 61 6c 6c 20 74 68 65 20 61 72 67 75 6d 65  h all the argume
4e60: 6e 74 73 20 61 6e 64 20 74 68 65 69 72 20 6d 65  nts and their me
4e70: 61 6e 69 6e 67 3a 0d 0a 3c 6f 6c 3e 0d 0a 3c 6c  aning:..<ol>..<l
4e80: 69 3e 3c 69 3e 62 79 63 61 72 5f 64 61 74 61 3c  i><i>bycar_data<
4e90: 2f 69 3e 3a 20 73 61 6d 65 20 61 73 20 61 62 6f  /i>: same as abo
4ea0: 76 65 2e 3c 2f 6c 69 3e 0d 0a 3c 6c 69 3e 3c 69  ve.</li>..<li><i
4eb0: 3e 62 79 63 61 72 3c 2f 69 3e 3a 20 73 61 6d 65  >bycar</i>: same
4ec0: 20 61 73 20 61 62 6f 76 65 2e 3c 2f 6c 69 3e 0d   as above.</li>.
4ed0: 0a 3c 6c 69 3e 3c 69 3e 72 6f 61 64 73 5f 76 77  .<li><i>roads_vw
4ee0: 3c 2f 69 3e 3a 20 73 61 6d 65 20 61 73 20 61 62  </i>: same as ab
4ef0: 6f 76 65 2e 3c 2f 6c 69 3e 0d 0a 3c 6c 69 3e 3c  ove.</li>..<li><
4f00: 69 3e 6e 6f 64 65 5f 66 72 6f 6d 3c 2f 69 3e 3a  i>node_from</i>:
4f10: 20 73 61 6d 65 20 61 73 20 61 62 6f 76 65 2e 3c   same as above.<
4f20: 2f 6c 69 3e 0d 0a 3c 6c 69 3e 3c 69 3e 6e 6f 64  /li>..<li><i>nod
4f30: 65 5f 74 6f 3c 2f 69 3e 3a 20 73 61 6d 65 20 61  e_to</i>: same a
4f40: 73 20 61 62 6f 76 65 2e 3c 2f 6c 69 3e 0d 0a 3c  s above.</li>..<
4f50: 6c 69 3e 3c 69 3e 67 65 6f 6d 3c 2f 69 3e 3a 20  li><i>geom</i>: 
4f60: 73 61 6d 65 20 61 73 20 61 62 6f 76 65 2e 3c 2f  same as above.</
4f70: 6c 69 3e 0d 0a 3c 6c 69 3e 3c 69 3e 63 6f 73 74  li>..<li><i>cost
4f80: 3c 2f 69 3e 3a 20 73 61 6d 65 20 61 73 20 61 62  </i>: same as ab
4f90: 6f 76 65 2e 0d 0a 49 6e 20 74 68 69 73 20 63 61  ove...In this ca
4fa0: 73 65 20 77 65 20 68 61 76 65 20 72 65 66 65 72  se we have refer
4fb0: 65 6e 63 65 64 20 61 20 63 6f 6c 75 6d 6e 20 70  enced a column p
4fc0: 72 65 6c 6f 61 64 65 64 20 77 69 74 68 20 76 61  reloaded with va
4fd0: 6c 75 65 73 20 63 6f 72 72 65 73 70 6f 6e 64 69  lues correspondi
4fe0: 6e 67 20 74 6f 20 74 68 65 20 3c 62 3e 74 69 6d  ng to the <b>tim
4ff0: 65 3c 2f 62 3e 20 6d 65 61 73 75 72 65 64 20 69  e</b> measured i
5000: 6e 20 3c 62 3e 73 65 63 6f 6e 64 73 3c 2f 62 3e  n <b>seconds</b>
5010: 20 72 65 71 75 69 72 65 64 20 74 6f 20 74 72 61   required to tra
5020: 76 65 72 73 65 20 65 61 63 68 20 4c 69 6e 6b 2e  verse each Link.
5030: 3c 2f 6c 69 3e 20 0d 0a 3c 6c 69 3e 3c 69 3e 74  </li> ..<li><i>t
5040: 6f 70 6f 6e 79 6d 3c 2f 69 3e 3a 20 73 61 6d 65  oponym</i>: same
5050: 20 61 73 20 61 62 6f 76 65 2e 3c 2f 6c 69 3e 0d   as above.</li>.
5060: 0a 3c 6c 69 3e 3c 69 3e 31 3c 2f 69 3e 3a 20 73  .<li><i>1</i>: s
5070: 61 6d 65 20 61 73 20 61 62 6f 76 65 20 28 3c 69  ame as above (<i
5080: 3e 41 2a 20 65 6e 61 62 6c 65 64 3c 2f 69 3e 29  >A* enabled</i>)
5090: 2e 3c 2f 6c 69 3e 0d 0a 3c 6c 69 3e 3c 69 3e 31  .</li>..<li><i>1
50a0: 3c 2f 69 3e 3a 20 73 61 6d 65 20 61 73 20 61 62  </i>: same as ab
50b0: 6f 76 65 20 28 3c 69 3e 62 69 64 69 72 65 63 74  ove (<i>bidirect
50c0: 69 6f 6e 61 6c 20 4c 69 6e 6b 73 3c 2f 69 3e 29  ional Links</i>)
50d0: 2e 3c 2f 6c 69 3e 0d 0a 3c 6c 69 3e 3c 69 3e 6f  .</li>..<li><i>o
50e0: 6e 65 77 61 79 5f 66 72 6f 6d 74 6f 3c 2f 69 3e  neway_fromto</i>
50f0: 3a 20 6e 61 6d 65 20 6f 66 20 74 68 65 20 63 6f  : name of the co
5100: 6c 75 6d 6e 20 28 69 6e 20 74 68 65 20 61 62 6f  lumn (in the abo
5110: 76 65 20 54 61 62 6c 65 20 6f 72 20 56 69 65 77  ve Table or View
5120: 29 20 65 78 70 65 63 74 65 64 20 74 6f 20 63 6f  ) expected to co
5130: 6e 74 61 69 6e 20 62 6f 6f 6c 65 61 6e 20 66 6c  ntain boolean fl
5140: 61 67 73 20 73 70 65 63 69 66 79 69 6e 67 20 69  ags specifying i
5150: 66 20 65 61 63 68 20 4c 69 6e 6b 20 63 61 6e 20  f each Link can 
5160: 62 65 20 74 72 61 76 65 72 73 65 64 20 69 6e 20  be traversed in 
5170: 74 68 65 20 3c 62 3e 66 72 6f 6d 2d 74 6f 3c 2f  the <b>from-to</
5180: 62 3e 20 64 69 72 65 63 74 69 6f 6e 20 6f 72 20  b> direction or 
5190: 6e 6f 74 2e 3c 2f 6c 69 3e 0d 0a 3c 6c 69 3e 3c  not.</li>..<li><
51a0: 69 3e 6f 6e 65 77 61 79 5f 74 6f 66 72 6f 6d 3c  i>oneway_tofrom<
51b0: 2f 69 3e 3a 20 6e 61 6d 65 20 6f 66 20 74 68 65  /i>: name of the
51c0: 20 63 6f 6c 75 6d 6e 20 28 69 6e 20 74 68 65 20   column (in the 
51d0: 61 62 6f 76 65 20 54 61 62 6c 65 20 6f 72 20 56  above Table or V
51e0: 69 65 77 29 20 65 78 70 65 63 74 65 64 20 74 6f  iew) expected to
51f0: 20 63 6f 6e 74 61 69 6e 20 62 6f 6f 6c 65 61 6e   contain boolean
5200: 20 66 6c 61 67 73 20 73 70 65 63 69 66 79 69 6e   flags specifyin
5210: 67 20 69 66 20 65 61 63 68 20 4c 69 6e 6b 20 63  g if each Link c
5220: 61 6e 20 62 65 20 74 72 61 76 65 72 73 65 64 20  an be traversed 
5230: 69 6e 20 74 68 65 20 3c 62 3e 74 6f 2d 66 72 6f  in the <b>to-fro
5240: 6d 3c 2f 62 3e 20 64 69 72 65 63 74 69 6f 6e 20  m</b> direction 
5250: 6f 72 20 6e 6f 74 2e 3c 62 72 3e 0d 0a 3c 75 3e  or not.<br>..<u>
5260: 4e 6f 74 65 20 23 31 3c 2f 75 3e 3a 20 62 6f 74  Note #1</u>: bot
5270: 68 20 3c 62 3e 66 72 6f 6d 2d 74 6f 3c 2f 62 3e  h <b>from-to</b>
5280: 20 61 6e 64 20 3c 62 3e 74 6f 2d 66 72 6f 6d 3c   and <b>to-from<
5290: 2f 62 3e 20 63 6f 6c 75 6d 6e 20 6e 61 6d 65 73  /b> column names
52a0: 20 63 61 6e 20 62 65 20 6c 65 67 69 74 69 6d 61   can be legitima
52b0: 74 65 6c 79 20 73 65 74 20 61 73 20 3c 62 3e 4e  tely set as <b>N
52c0: 55 4c 4c 3c 2f 62 3e 20 69 66 20 6e 6f 20 3c 62  ULL</b> if no <b
52d0: 3e 6f 6e 65 2d 77 61 79 3c 2f 62 3e 20 72 65 73  >one-way</b> res
52e0: 74 72 69 63 74 69 6f 6e 73 20 61 70 70 6c 79 20  trictions apply 
52f0: 74 6f 20 74 68 65 20 63 75 72 72 65 6e 74 20 4e  to the current N
5300: 65 74 77 6f 72 6b 2e 3c 62 72 3e 0d 0a 3c 75 3e  etwork.<br>..<u>
5310: 4e 6f 74 65 20 23 32 3c 2f 75 3e 3a 20 4e 65 74  Note #2</u>: Net
5320: 77 6f 72 6b 73 20 6f 66 20 74 68 65 20 3c 62 3e  works of the <b>
5330: 75 6e 69 64 69 72 65 63 74 69 6f 6e 61 6c 3c 2f  unidirectional</
5340: 62 3e 20 74 79 70 65 20 61 72 65 20 6e 65 76 65  b> type are neve
5350: 72 20 65 6e 61 62 6c 65 64 20 74 6f 20 72 65 66  r enabled to ref
5360: 65 72 65 6e 63 65 20 3c 62 3e 6f 6e 65 2d 77 61  erence <b>one-wa
5370: 79 3c 2f 62 3e 20 63 6f 6c 75 6d 6e 73 20 28 74  y</b> columns (t
5380: 68 65 79 20 73 68 6f 75 6c 64 20 61 6c 77 61 79  hey should alway
5390: 73 20 62 65 20 73 65 74 20 74 6f 20 3c 62 3e 4e  s be set to <b>N
53a0: 55 4c 4c 3c 2f 62 3e 29 2e 3c 2f 6c 69 3e 0d 0a  ULL</b>).</li>..
53b0: 3c 6c 69 3e 3c 69 3e 30 3c 2f 69 3e 3a 20 61 20  <li><i>0</i>: a 
53c0: 62 6f 6f 6c 65 61 6e 20 66 6c 61 67 20 69 6e 74  boolean flag int
53d0: 65 6e 64 69 6e 67 20 61 6e 20 3c 62 3e 6f 76 65  ending an <b>ove
53e0: 72 77 72 69 74 65 20 61 75 74 68 6f 72 69 7a 61  rwrite authoriza
53f0: 74 69 6f 6e 3c 2f 62 3e 2e 0d 0a 3c 75 6c 3e 0d  tion</b>...<ul>.
5400: 0a 3c 6c 69 3e 49 66 20 73 65 74 20 74 6f 20 3c  .<li>If set to <
5410: 62 3e 46 41 4c 53 45 3c 2f 62 3e 20 61 6e 20 65  b>FALSE</b> an e
5420: 78 63 65 70 74 69 6f 6e 20 77 69 6c 6c 20 62 65  xception will be
5430: 20 72 61 69 73 65 64 20 69 66 20 74 68 65 20 3c   raised if the <
5440: 62 3e 42 69 6e 61 72 79 20 44 61 74 61 20 54 61  b>Binary Data Ta
5450: 62 6c 65 3c 2f 62 3e 20 61 6e 64 2f 6f 72 20 74  ble</b> and/or t
5460: 68 65 20 3c 62 3e 56 69 72 74 75 61 6c 52 6f 75  he <b>VirtualRou
5470: 74 69 6e 67 20 54 61 62 6c 65 3c 2f 62 3e 20 64  ting Table</b> d
5480: 6f 20 61 6c 72 65 61 64 79 20 65 78 69 73 74 2e  o already exist.
5490: 3c 2f 6c 69 3e 0d 0a 3c 6c 69 3e 49 66 20 73 65  </li>..<li>If se
54a0: 74 20 74 6f 20 3c 62 3e 54 52 55 45 3c 2f 62 3e  t to <b>TRUE</b>
54b0: 20 65 76 65 6e 74 75 61 6c 6c 79 20 65 78 69 73   eventually exis
54c0: 74 69 6e 67 20 54 61 62 6c 65 73 20 77 69 6c 6c  ting Tables will
54d0: 20 62 65 20 70 72 65 76 65 6e 74 69 76 65 6c 79   be preventively
54e0: 20 64 72 6f 70 70 65 64 20 69 6d 6d 65 64 69 61   dropped immedia
54f0: 74 65 6c 79 20 62 65 66 6f 72 65 20 73 74 61 72  tely before star
5500: 74 69 6e 67 20 74 68 65 20 65 78 65 63 75 74 69  ting the executi
5510: 6f 6e 20 6f 66 20 3c 62 3e 43 72 65 61 74 65 52  on of <b>CreateR
5520: 6f 75 74 69 6e 67 28 29 3c 2f 62 3e 2e 3c 2f 6c  outing()</b>.</l
5530: 69 3e 0d 0a 3c 2f 75 6c 3e 3c 2f 6c 69 3e 0d 0a  i>..</ul></li>..
5540: 3c 2f 6f 6c 3e 0d 0a 3c 62 72 3e 0d 0a 3c 74 61  </ol>..<br>..<ta
5550: 62 6c 65 20 62 67 63 6f 6c 6f 72 3d 22 23 66 66  ble bgcolor="#ff
5560: 66 66 63 30 22 20 63 65 6c 6c 73 70 61 63 69 6e  ffc0" cellspacin
5570: 67 3d 22 31 30 22 20 63 65 6c 6c 70 61 64 64 69  g="10" cellpaddi
5580: 6e 67 3d 22 36 22 3e 3c 74 72 3e 3c 74 64 3e 0d  ng="6"><tr><td>.
5590: 0a 3c 68 33 3e 48 69 67 68 6c 69 67 68 74 3a 20  .<h3>Highlight: 
55a0: 77 68 65 72 65 20 79 6f 75 20 61 72 65 3c 2f 68  where you are</h
55b0: 33 3e 0d 0a 59 6f 75 27 76 65 20 6a 75 73 74 20  3>..You've just 
55c0: 63 72 65 61 74 65 64 20 74 77 6f 20 56 69 72 74  created two Virt
55d0: 75 61 6c 52 6f 75 74 69 6e 67 20 54 61 62 6c 65  ualRouting Table
55e0: 73 20 62 61 73 65 64 20 6f 6e 20 64 69 66 66 65  s based on diffe
55f0: 72 65 6e 74 20 73 65 74 74 69 6e 67 73 3b 20 62  rent settings; b
5600: 6f 74 68 20 74 68 65 6d 20 61 72 65 20 70 65 72  oth them are per
5610: 66 65 63 74 6c 79 20 76 61 6c 69 64 20 61 6e 64  fectly valid and
5620: 20 72 65 61 73 6f 6e 61 62 6c 65 2c 20 62 75 74   reasonable, but
5630: 20 74 68 65 79 20 61 72 65 20 69 6e 74 65 6e 64   they are intend
5640: 65 64 20 66 6f 72 20 64 69 66 66 65 72 65 6e 74  ed for different
5650: 20 70 75 72 70 6f 73 65 73 3a 0d 0a 3c 75 6c 3e   purposes:..<ul>
5660: 0d 0a 3c 6c 69 3e 3c 62 3e 62 79 66 6f 6f 74 3c  ..<li><b>byfoot<
5670: 2f 62 3e 20 69 73 20 73 70 65 63 69 66 69 63 61  /b> is specifica
5680: 6c 6c 79 20 69 6e 74 65 6e 64 65 64 20 66 6f 72  lly intended for
5690: 20 3c 62 3e 70 65 64 65 73 74 72 69 61 6e 73 3c   <b>pedestrians<
56a0: 2f 62 3e 3a 0d 0a 3c 75 6c 3e 0d 0a 3c 6c 69 3e  /b>:..<ul>..<li>
56b0: 61 6c 6c 20 4c 69 6e 6b 73 20 61 72 65 20 61 6c  all Links are al
56c0: 77 61 79 73 20 61 73 73 75 6d 65 64 20 74 6f 20  ways assumed to 
56d0: 62 65 20 61 63 63 65 73 73 69 62 6c 65 20 69 6e  be accessible in
56e0: 20 3c 62 3e 62 6f 74 68 20 64 69 72 65 63 74 69   <b>both directi
56f0: 6f 6e 73 3c 2f 62 3e 3b 20 74 68 65 72 65 20 61  ons</b>; there a
5700: 72 65 20 6e 6f 20 3c 62 3e 6f 6e 65 2d 77 61 79  re no <b>one-way
5710: 73 3c 2f 62 3e 20 61 6e 64 20 6e 6f 20 3c 62 3e  s</b> and no <b>
5720: 66 6f 72 62 69 64 64 65 6e 3c 2f 62 3e 20 4c 69  forbidden</b> Li
5730: 6e 6b 73 2e 3c 2f 6c 69 3e 0d 0a 3c 6c 69 3e 74  nks.</li>..<li>t
5740: 68 65 20 3c 62 3e 63 6f 73 74 3c 2f 62 3e 20 6f  he <b>cost</b> o
5750: 66 20 65 61 63 68 20 4c 69 6e 6b 20 69 73 20 64  f each Link is d
5760: 69 72 65 63 74 6c 79 20 72 65 70 72 65 73 65 6e  irectly represen
5770: 74 65 64 20 62 79 20 69 74 73 20 67 65 6f 6d 65  ted by its geome
5780: 74 72 69 63 20 3c 62 3e 6c 65 6e 67 74 68 3c 2f  tric <b>length</
5790: 62 3e 2c 20 77 68 69 63 68 20 69 73 20 63 6f 6e  b>, which is con
57a0: 73 69 73 74 65 6e 74 20 77 69 74 68 20 74 68 65  sistent with the
57b0: 20 61 73 73 75 6d 70 74 69 6f 6e 20 6f 66 20 61   assumption of a
57c0: 6e 20 61 6c 6d 6f 73 74 20 63 6f 6e 73 74 61 6e  n almost constan
57d0: 74 20 73 70 65 65 64 20 73 75 62 73 74 61 6e 74  t speed substant
57e0: 69 61 6c 6c 79 20 69 6d 6d 75 6e 65 20 66 72 6f  ially immune fro
57f0: 6d 20 61 64 76 65 72 73 65 20 72 6f 61 64 20 63  m adverse road c
5800: 6f 6e 64 69 74 69 6f 6e 73 20 61 6e 64 20 74 72  onditions and tr
5810: 61 66 66 69 63 20 63 6f 6e 67 65 73 74 69 6f 6e  affic congestion
5820: 2e 3c 2f 6c 69 3e 0d 0a 3c 2f 75 6c 3e 3c 2f 6c  .</li>..</ul></l
5830: 69 3e 0d 0a 3c 6c 69 3e 3c 62 3e 62 79 63 61 72  i>..<li><b>bycar
5840: 3c 2f 62 3e 20 69 73 20 73 70 65 63 69 66 69 63  </b> is specific
5850: 61 6c 6c 79 20 69 6e 74 65 6e 64 65 64 20 66 6f  ally intended fo
5860: 72 20 3c 62 3e 6d 6f 74 6f 72 20 76 65 68 69 63  r <b>motor vehic
5870: 6c 65 73 3c 2f 62 3e 3a 0d 0a 3c 75 6c 3e 0d 0a  les</b>:..<ul>..
5880: 3c 6c 69 3e 6d 61 6e 79 20 4c 69 6e 6b 73 20 61  <li>many Links a
5890: 72 65 20 65 78 70 65 63 74 65 64 20 74 6f 20 62  re expected to b
58a0: 65 20 61 63 63 65 73 73 69 62 6c 65 20 69 6e 20  e accessible in 
58b0: 3c 62 3e 62 6f 74 68 20 64 69 72 65 63 74 69 6f  <b>both directio
58c0: 6e 73 3c 2f 62 3e 20 62 75 74 20 6f 74 68 65 72  ns</b> but other
58d0: 73 20 63 6f 75 6c 64 20 65 61 73 69 6c 79 20 62  s could easily b
58e0: 65 20 73 75 62 6a 65 63 74 20 74 6f 20 3c 62 3e  e subject to <b>
58f0: 6f 6e 65 2d 77 61 79 3c 2f 62 3e 20 72 65 73 74  one-way</b> rest
5900: 72 69 63 74 69 6f 6e 73 20 6f 72 20 65 76 65 6e  rictions or even
5910: 20 62 65 20 63 6f 6d 70 6c 65 74 65 6c 79 20 3c   be completely <
5920: 62 3e 66 6f 72 62 69 64 64 65 6e 3c 2f 62 3e 2e  b>forbidden</b>.
5930: 3c 2f 6c 69 3e 0d 0a 3c 6c 69 3e 74 68 65 20 63  </li>..<li>the c
5940: 6f 73 74 20 6f 66 20 65 61 63 68 20 4c 69 6e 6b  ost of each Link
5950: 20 69 73 20 65 78 70 72 65 73 73 65 64 20 61 73   is expressed as
5960: 20 61 6e 20 65 73 74 69 6d 61 74 65 64 20 3c 62   an estimated <b
5970: 3e 74 72 61 76 65 6c 20 74 69 6d 65 3c 2f 62 3e  >travel time</b>
5980: 2c 20 62 65 63 61 75 73 65 20 74 68 65 20 65 78  , because the ex
5990: 70 65 63 74 65 64 20 73 70 65 65 64 73 20 63 61  pected speeds ca
59a0: 6e 20 67 72 65 61 74 6c 79 20 76 61 72 79 20 61  n greatly vary a
59b0: 63 63 6f 72 64 69 6e 67 6c 79 20 74 6f 20 73 70  ccordingly to sp
59c0: 65 63 69 66 69 63 20 72 6f 61 64 20 63 6f 6e 64  ecific road cond
59d0: 69 74 69 6f 6e 73 2c 20 74 72 61 66 66 69 63 20  itions, traffic 
59e0: 63 6f 6e 67 65 73 74 69 6f 6e 20 61 6e 64 20 6c  congestion and l
59f0: 65 67 61 6c 20 72 65 67 75 6c 61 74 69 6f 6e 73  egal regulations
5a00: 2e 3c 2f 6c 69 3e 0d 0a 3c 2f 75 6c 3e 3c 2f 6c  .</li>..</ul></l
5a10: 69 3e 0d 0a 3c 2f 75 6c 3e 0d 0a 3c 62 72 3e 0d  i>..</ul>..<br>.
5a20: 0a 3c 75 3e 43 6f 6e 63 6c 75 73 69 6f 6e 3c 2f  .<u>Conclusion</
5a30: 75 3e 3a 20 61 20 73 69 6e 67 6c 65 20 56 69 72  u>: a single Vir
5a40: 74 75 61 6c 52 6f 75 74 69 6e 67 20 54 61 62 6c  tualRouting Tabl
5a50: 65 20 63 61 6e 27 74 20 62 65 20 61 62 6c 65 20  e can't be able 
5a60: 74 6f 20 61 64 65 71 75 61 74 65 6c 79 20 73 75  to adequately su
5a70: 70 70 6f 72 74 20 73 75 70 70 6f 72 74 20 74 68  pport support th
5a80: 65 20 73 70 65 63 69 66 69 63 20 72 65 71 75 69  e specific requi
5a90: 72 65 6d 65 6e 74 73 20 61 6e 64 20 65 78 70 65  rements and expe
5aa0: 63 74 61 74 69 6f 6e 73 20 6f 66 20 64 69 66 66  ctations of diff
5ab0: 65 72 65 6e 74 20 75 73 65 72 73 2e 3c 62 72 3e  erent users.<br>
5ac0: 0d 0a 44 65 66 69 6e 69 6e 67 20 6d 6f 72 65 20  ..Defining more 
5ad0: 52 6f 75 74 69 6e 67 20 54 61 62 6c 65 73 20 77  Routing Tables w
5ae0: 69 74 68 20 64 69 66 66 65 72 65 6e 74 20 73 65  ith different se
5af0: 74 74 69 6e 67 73 20 66 6f 72 20 74 68 65 20 73  ttings for the s
5b00: 61 6d 65 20 4e 65 74 77 6f 72 6b 20 75 73 75 61  ame Network usua
5b10: 6c 6c 79 20 69 73 20 61 20 67 6f 6f 64 20 64 65  lly is a good de
5b20: 73 69 67 6e 20 63 68 6f 69 63 65 20 6c 65 61 64  sign choice lead
5b30: 69 6e 67 20 74 6f 20 6d 6f 72 65 20 72 65 61 6c  ing to more real
5b40: 69 73 74 69 63 20 72 65 73 75 6c 74 73 2e 3c 62  istic results.<b
5b50: 72 3e 0d 0a 3c 2f 74 64 3e 3c 2f 74 72 3e 0d 0a  r>..</td></tr>..
5b60: 3c 2f 74 61 62 6c 65 3e 0d 0a 3c 62 72 3e 3c 62  </table>..<br><b
5b70: 72 3e 0d 0a 3c 68 33 3e 55 74 69 6c 69 74 79 20  r>..<h3>Utility 
5b80: 66 75 6e 63 74 69 6f 6e 20 66 6f 72 20 61 75 74  function for aut
5b90: 6f 6d 61 74 69 63 61 6c 6c 79 20 73 65 74 74 69  omatically setti
5ba0: 6e 67 20 4e 6f 64 65 46 72 6f 6d 20 61 6e 64 20  ng NodeFrom and 
5bb0: 4e 6f 64 65 54 6f 20 49 44 73 3c 2f 68 33 3e 0d  NodeTo IDs</h3>.
5bc0: 0a 53 6f 6d 65 74 69 6d 65 73 20 69 74 20 63 6f  .Sometimes it co
5bd0: 75 6c 64 20 65 76 65 6e 74 75 61 6c 6c 79 20 68  uld eventually h
5be0: 61 70 70 65 6e 20 74 6f 20 65 6e 63 6f 75 6e 74  appen to encount
5bf0: 65 72 20 73 6f 6d 65 20 3c 62 3e 53 70 61 74 69  er some <b>Spati
5c00: 61 6c 20 4e 65 74 77 6f 72 6b 3c 2f 62 3e 20 72  al Network</b> r
5c10: 65 70 72 65 73 65 6e 74 61 74 69 6f 6e 20 62 65  epresentation be
5c20: 69 6e 67 20 66 75 6c 6c 79 20 74 6f 70 6f 6c 6f  ing fully topolo
5c30: 67 69 63 61 6c 6c 79 20 63 6f 6e 73 69 73 74 65  gically consiste
5c40: 6e 74 20 62 75 74 20 63 6f 6d 70 6c 65 74 65 6c  nt but completel
5c50: 79 20 6c 61 63 6b 69 6e 67 20 61 6e 79 20 64 65  y lacking any de
5c60: 66 69 6e 69 74 69 6f 6e 20 61 62 6f 75 74 20 3c  finition about <
5c70: 62 3e 4e 6f 64 65 46 72 6f 6d 3c 2f 62 3e 20 61  b>NodeFrom</b> a
5c80: 6e 64 20 3c 62 3e 4e 6f 64 65 54 6f 3c 2f 62 3e  nd <b>NodeTo</b>
5c90: 20 69 64 65 6e 74 69 66 69 65 72 73 2e 3c 62 72   identifiers.<br
5ca0: 3e 0d 0a 49 6e 20 74 68 69 73 20 73 70 65 63 69  >..In this speci
5cb0: 66 69 63 20 63 61 73 65 20 79 6f 75 20 63 61 6e  fic case you can
5cc0: 20 73 75 63 63 65 73 73 66 75 6c 6c 79 20 72 65   successfully re
5cd0: 63 6f 76 65 72 20 61 20 70 65 72 66 65 63 74 6c  cover a perfectl
5ce0: 79 20 76 61 6c 69 64 20 4e 65 74 77 6f 72 6b 20  y valid Network 
5cf0: 62 79 20 63 61 6c 6c 69 6e 67 20 74 68 65 20 3c  by calling the <
5d00: 62 3e 43 72 65 61 74 65 52 6f 75 74 69 6e 67 4e  b>CreateRoutingN
5d10: 6f 64 65 73 28 29 3c 2f 62 3e 20 53 51 4c 20 66  odes()</b> SQL f
5d20: 75 6e 63 74 69 6f 6e 2e 0d 0a 3c 76 65 72 62 61  unction...<verba
5d30: 74 69 6d 3e 0d 0a 53 45 4c 45 43 54 20 43 72 65  tim>..SELECT Cre
5d40: 61 74 65 52 6f 75 74 69 6e 67 4e 6f 64 65 73 28  ateRoutingNodes(
5d50: 4e 55 4c 4c 2c 20 27 74 61 62 6c 65 5f 6e 61 6d  NULL, 'table_nam
5d60: 65 27 2c 20 27 67 65 6f 6d 27 2c 20 27 6e 6f 64  e', 'geom', 'nod
5d70: 65 5f 66 72 6f 6d 27 2c 20 27 6e 6f 64 65 5f 74  e_from', 'node_t
5d80: 6f 27 29 3b 0d 0a 5f 5f 5f 5f 5f 5f 5f 5f 5f 5f  o');..__________
5d90: 5f 5f 5f 5f 5f 5f 5f 5f 5f 5f 5f 5f 5f 5f 5f 0d  _______________.
5da0: 0a 31 0d 0a 3c 2f 76 65 72 62 61 74 69 6d 3e 0d  .1..</verbatim>.
5db0: 0a 4c 65 74 27 73 20 65 78 61 6d 69 6e 65 20 61  .Let's examine a
5dc0: 6c 6c 20 61 72 67 75 6d 65 6e 74 73 20 61 6e 64  ll arguments and
5dd0: 20 74 68 65 69 72 20 6d 65 61 6e 69 6e 67 3a 0d   their meaning:.
5de0: 0a 3c 6f 6c 3e 0d 0a 3c 6c 69 3e 3c 69 3e 4e 55  .<ol>..<li><i>NU
5df0: 4c 4c 3c 2f 69 3e 3a 20 6e 61 6d 65 20 6f 66 20  LL</i>: name of 
5e00: 74 68 65 20 3c 62 3e 41 74 74 61 63 68 65 64 2d  the <b>Attached-
5e10: 44 42 3c 2f 62 3e 20 63 6f 6e 74 61 69 6e 69 6e  DB</b> containin
5e20: 67 20 74 68 65 20 53 70 61 74 69 61 6c 20 54 61  g the Spatial Ta
5e30: 62 6c 65 2e 3c 62 72 3e 0d 0a 49 74 20 63 61 6e  ble.<br>..It can
5e40: 20 62 65 20 6c 65 67 69 74 69 6d 61 74 65 6c 79   be legitimately
5e50: 20 73 65 74 20 74 6f 20 3c 62 3e 4e 55 4c 4c 3c   set to <b>NULL<
5e60: 2f 62 3e 2c 20 61 6e 64 20 69 6e 20 74 68 69 73  /b>, and in this
5e70: 20 63 61 73 65 20 74 68 65 20 3c 62 3e 4d 41 49   case the <b>MAI
5e80: 4e 3c 2f 62 3e 20 44 42 20 69 73 20 61 73 73 75  N</b> DB is assu
5e90: 6d 65 64 2e 3c 2f 6c 69 3e 0d 0a 3c 6c 69 3e 3c  med.</li>..<li><
5ea0: 69 3e 74 61 62 6c 65 5f 6e 61 6d 65 3c 2f 69 3e  i>table_name</i>
5eb0: 3a 20 6e 61 6d 65 20 6f 66 20 74 68 65 20 53 70  : name of the Sp
5ec0: 61 74 69 61 6c 20 54 61 62 6c 65 2e 3c 2f 6c 69  atial Table.</li
5ed0: 3e 0d 0a 3c 6c 69 3e 3c 69 3e 67 65 6f 6d 3c 2f  >..<li><i>geom</
5ee0: 6c 69 3e 3a 20 6e 61 6d 65 20 6f 66 20 74 68 65  li>: name of the
5ef0: 20 63 6f 6c 75 6d 6e 20 28 28 69 6e 20 74 68 65   column ((in the
5f00: 20 61 62 6f 76 65 20 54 61 62 6c 65 29 20 63 6f   above Table) co
5f10: 6e 74 61 69 6e 69 6e 67 20 3c 62 3e 4c 69 6e 65  ntaining <b>Line
5f20: 73 74 72 69 6e 67 73 3c 2f 62 3e 2e 3c 2f 6c 69  strings</b>.</li
5f30: 3e 0d 0a 3c 6c 69 3e 3c 69 3e 6e 6f 64 65 5f 66  >..<li><i>node_f
5f40: 72 6f 6d 3c 2f 69 3e 3a 20 6e 61 6d 65 20 6f 66  rom</i>: name of
5f50: 20 74 68 65 20 63 6f 6c 75 6d 6e 20 74 6f 20 62   the column to b
5f60: 65 20 61 64 64 65 64 20 74 6f 20 74 68 65 20 61  e added to the a
5f70: 62 6f 76 65 20 54 61 62 6c 65 20 61 6e 64 20 70  bove Table and p
5f80: 6f 70 75 6c 61 74 65 64 20 77 69 74 68 20 61 70  opulated with ap
5f90: 70 72 6f 70 72 69 61 74 65 20 3c 62 3e 4e 6f 64  propriate <b>Nod
5fa0: 65 46 72 6f 6d 3c 2f 62 3e 20 49 44 73 2e 3c 2f  eFrom</b> IDs.</
5fb0: 6c 69 3e 0d 0a 3c 6c 69 3e 3c 69 3e 6e 6f 64 65  li>..<li><i>node
5fc0: 5f 74 6f 3c 2f 69 3e 3a 20 6e 61 6d 65 20 6f 66  _to</i>: name of
5fd0: 20 74 68 65 20 63 6f 6c 75 6d 6e 20 74 6f 20 62   the column to b
5fe0: 65 20 61 64 64 65 64 20 74 6f 20 74 68 65 20 61  e added to the a
5ff0: 62 6f 76 65 20 54 61 62 6c 65 20 61 6e 64 20 70  bove Table and p
6000: 6f 70 75 6c 61 74 65 64 20 77 69 74 68 20 61 70  opulated with ap
6010: 70 72 6f 70 72 69 61 74 65 20 3c 62 3e 4e 6f 64  propriate <b>Nod
6020: 65 54 6f 3c 2f 62 3e 20 49 44 73 2e 3c 62 72 3e  eTo</b> IDs.<br>
6030: 0d 0a 3c 75 3e 4e 6f 74 65 3c 2f 75 3e 3a 20 62  ..<u>Note</u>: b
6040: 6f 74 68 20 3c 62 3e 4e 6f 64 65 46 72 6f 6d 3c  oth <b>NodeFrom<
6050: 2f 62 3e 20 61 6e 64 20 3c 62 3e 4e 6f 64 65 54  /b> and <b>NodeT
6060: 6f 3c 2f 62 3e 20 63 6f 6c 75 6d 6e 73 20 73 68  o</b> columns sh
6070: 6f 75 6c 64 20 6e 6f 74 20 62 65 20 61 6c 72 65  ould not be alre
6080: 61 64 79 20 64 65 66 69 6e 65 64 20 69 6e 20 74  ady defined in t
6090: 68 65 20 61 62 6f 76 65 20 54 61 62 6c 65 2e 3c  he above Table.<
60a0: 2f 6c 69 3e 0d 0a 3c 2f 6f 6c 3e 0d 0a 3c 62 3e  /li>..</ol>..<b>
60b0: 43 72 65 61 74 65 52 6f 75 74 69 6e 67 4e 6f 64  CreateRoutingNod
60c0: 65 73 28 29 3c 2f 62 3e 20 77 69 6c 6c 20 72 65  es()</b> will re
60d0: 74 75 72 6e 20 3c 62 3e 31 3c 2f 62 3e 20 28 3c  turn <b>1</b> (<
60e0: 69 3e 61 6b 61 3c 2f 69 3e 20 3c 62 3e 54 52 55  i>aka</i> <b>TRU
60f0: 45 3c 2f 62 3e 29 20 6f 6e 20 73 75 63 63 65 73  E</b>) on succes
6100: 73 3b 20 61 6e 20 65 78 63 65 70 74 69 6f 6e 20  s; an exception 
6110: 77 69 6c 6c 20 62 65 20 72 61 69 73 65 64 20 6f  will be raised o
6120: 6e 20 66 61 69 6c 75 72 65 2e 3c 62 72 3e 0d 0a  n failure.<br>..
6130: 3c 75 3e 4e 6f 74 65 3c 2f 75 3e 3a 20 79 6f 75  <u>Note</u>: you
6140: 20 63 61 6e 20 63 61 6c 6c 20 3c 62 3e 43 72 65   can call <b>Cre
6150: 61 74 65 52 6f 75 74 69 6e 67 5f 47 65 74 4c 61  ateRouting_GetLa
6160: 73 74 45 72 72 6f 72 28 29 3c 2f 62 3e 20 73 6f  stError()</b> so
6170: 20 74 6f 20 70 72 65 63 69 73 65 6c 79 20 69 64   to precisely id
6180: 65 6e 74 69 66 79 20 74 68 65 20 63 61 75 73 65  entify the cause
6190: 20 61 63 63 6f 75 6e 74 69 6e 67 20 66 6f 72 20   accounting for 
61a0: 66 61 69 6c 75 72 65 2e 3c 62 72 3e 3c 62 72 3e  failure.<br><br>
61b0: 3c 62 72 3e 0d 0a 3c 74 61 62 6c 65 20 62 67 63  <br>..<table bgc
61c0: 6f 6c 6f 72 3d 22 23 63 30 66 66 63 30 22 20 63  olor="#c0ffc0" c
61d0: 65 6c 6c 73 70 61 63 69 6e 67 3d 22 31 30 22 20  ellspacing="10" 
61e0: 63 65 6c 6c 70 61 64 64 69 6e 67 3d 22 36 22 3e  cellpadding="6">
61f0: 3c 74 72 3e 3c 74 64 3e 0d 0a 3c 68 33 3e 48 61  <tr><td>..<h3>Ha
6200: 6e 64 6c 69 6e 67 20 64 79 6e 61 6d 69 63 20 4e  ndling dynamic N
6210: 65 74 77 6f 72 6b 73 3c 2f 68 33 3e 0d 0a 53 6f  etworks</h3>..So
6220: 6d 65 74 69 6d 65 73 20 69 74 20 68 61 70 70 65  metimes it happe
6230: 6e 73 20 74 68 61 74 20 61 20 4e 65 74 77 6f 72  ns that a Networ
6240: 6b 20 63 6f 75 6c 64 20 62 65 20 73 75 62 6a 65  k could be subje
6250: 63 74 20 74 6f 20 72 61 74 68 65 72 20 66 72 65  ct to rather fre
6260: 71 75 65 6e 74 20 63 68 61 6e 67 65 73 3a 20 73  quent changes: s
6270: 6f 6d 65 20 6e 65 77 20 4c 69 6e 6b 73 20 72 65  ome new Links re
6280: 71 75 69 72 65 20 74 6f 20 62 65 20 61 64 64 65  quire to be adde
6290: 64 2c 20 6f 62 73 6f 6c 65 74 65 20 4c 69 6e 6b  d, obsolete Link
62a0: 73 20 72 65 71 75 69 72 65 20 74 6f 20 62 65 20  s require to be 
62b0: 72 65 6d 6f 76 65 64 2c 20 6f 74 68 65 72 20 4c  removed, other L
62c0: 69 6e 6b 73 20 6d 61 79 20 61 73 73 75 6d 65 20  inks may assume 
62d0: 61 20 64 69 66 66 65 72 65 6e 74 20 43 6f 73 74  a different Cost
62e0: 2c 20 6f 6e 65 2d 77 61 79 73 20 63 6f 75 6c 64  , one-ways could
62f0: 20 62 65 20 72 65 76 65 72 73 65 64 2c 20 74 68   be reversed, th
6300: 65 20 64 69 73 63 69 70 6c 69 6e 65 20 6f 66 20  e discipline of 
6310: 70 65 64 65 73 74 72 69 61 6e 20 61 72 65 61 73  pedestrian areas
6320: 20 63 6f 75 6c 64 20 62 65 20 6d 6f 64 69 66 69   could be modifi
6330: 65 64 20 61 6e 64 20 73 6f 20 6f 6e 2e 3c 62 72  ed and so on.<br
6340: 3e 0d 0a 41 20 56 69 72 74 75 61 6c 52 6f 75 74  >..A VirtualRout
6350: 69 6e 67 20 54 61 62 6c 65 20 69 73 20 61 6c 77  ing Table is alw
6360: 61 79 73 20 62 61 73 65 64 20 6f 6e 20 61 20 63  ays based on a c
6370: 6f 6d 70 61 6e 69 6f 6e 20 42 69 6e 61 72 79 20  ompanion Binary 
6380: 44 61 74 61 20 54 61 62 6c 65 2c 20 74 68 61 74  Data Table, that
6390: 20 69 73 20 69 6e 74 72 69 6e 73 69 63 61 6c 6c   is intrinsicall
63a0: 79 20 3c 62 3e 73 74 61 74 69 63 3c 2f 62 3e 2c  y <b>static</b>,
63b0: 20 61 6e 64 20 63 6f 6e 73 65 71 75 65 6e 74 6c   and consequentl
63c0: 79 20 79 6f 75 20 61 72 65 20 72 65 71 75 69 72  y you are requir
63d0: 65 64 20 74 6f 20 72 65 2d 63 72 65 61 74 65 20  ed to re-create 
63e0: 62 6f 74 68 20 74 68 65 6d 20 66 72 6f 6d 20 74  both them from t
63f0: 69 6d 65 20 74 6f 20 74 69 6d 65 20 69 6e 20 6f  ime to time in o
6400: 72 64 65 72 20 74 6f 20 73 75 70 70 6f 72 74 20  rder to support 
6410: 61 6c 6c 20 72 65 63 65 6e 74 20 63 68 61 6e 67  all recent chang
6420: 65 73 20 61 66 66 65 63 74 69 6e 67 20 74 68 65  es affecting the
6430: 20 75 6e 64 65 72 6c 61 79 69 6e 67 20 4e 65 74   underlaying Net
6440: 77 6f 72 6b 2e 3c 62 72 3e 0d 0a 54 68 65 20 6f  work.<br>..The o
6450: 70 74 69 6d 61 6c 20 66 72 65 71 75 65 6e 63 79  ptimal frequency
6460: 20 66 6f 72 20 63 79 63 6c 69 63 61 6c 6c 79 20   for cyclically 
6470: 72 65 66 72 65 73 68 69 6e 67 20 74 68 65 20 52  refreshing the R
6480: 6f 75 74 69 6e 67 20 54 61 62 6c 65 73 20 73 74  outing Tables st
6490: 72 69 63 74 6c 79 20 64 65 70 65 6e 64 73 20 6f  rictly depends o
64a0: 6e 20 73 70 65 63 69 66 69 63 20 72 65 71 75 69  n specific requi
64b0: 72 65 6d 65 6e 74 73 2c 20 62 75 74 20 74 68 65  rements, but the
64c0: 20 74 77 6f 20 6f 76 65 72 61 6c 6c 20 61 70 70   two overall app
64d0: 72 6f 61 63 68 65 73 20 61 72 65 20 63 6f 6d 6d  roaches are comm
64e0: 6f 6e 6c 79 20 61 64 6f 70 74 65 64 3a 0d 0a 3c  only adopted:..<
64f0: 6f 6c 3e 0d 0a 3c 6c 69 3e 3c 62 3e 6c 6f 77 20  ol>..<li><b>low 
6500: 66 72 65 71 75 65 6e 63 79 20 72 65 66 72 65 73  frequency refres
6510: 68 3c 2f 62 3e 3a 20 62 65 73 74 20 66 69 74 20  h</b>: best fit 
6520: 66 6f 72 20 73 6c 6f 77 6c 79 20 65 76 6f 6c 76  for slowly evolv
6530: 69 6e 67 20 4e 65 74 77 6f 72 6b 73 2e 3c 62 72  ing Networks.<br
6540: 3e 0d 0a 49 6e 20 74 68 69 73 20 63 61 73 65 20  >..In this case 
6550: 72 65 2d 63 72 65 61 74 69 6e 67 20 74 68 65 20  re-creating the 
6560: 4e 65 74 77 6f 72 6b 20 54 61 62 6c 65 73 20 6f  Network Tables o
6570: 6e 63 65 20 61 20 6d 6f 6e 74 68 20 2f 20 77 65  nce a month / we
6580: 65 6b 20 2f 20 64 61 79 20 63 6f 75 6c 64 20 62  ek / day could b
6590: 65 20 72 65 61 73 6f 6e 61 62 6c 79 20 65 6e 6f  e reasonably eno
65a0: 75 67 68 2e 0d 0a 52 65 63 72 65 61 74 69 6e 67  ugh...Recreating
65b0: 20 74 68 65 20 54 61 62 6c 65 73 20 66 72 6f 6d   the Tables from
65c0: 20 73 63 72 61 74 63 68 20 75 73 75 61 6c 6c 79   scratch usually
65d0: 20 72 65 71 75 69 72 65 73 20 73 65 76 65 72 61   requires severa
65e0: 6c 20 73 65 63 6f 6e 64 73 20 28 6f 72 20 65 76  l seconds (or ev
65f0: 65 6e 20 6c 65 73 73 2c 20 64 65 70 65 6e 64 69  en less, dependi
6600: 6e 67 20 6f 6e 20 74 68 65 20 6e 75 6d 62 65 72  ng on the number
6610: 20 6f 66 20 4c 69 6e 6b 73 29 2e 3c 62 72 3e 0d   of Links).<br>.
6620: 0a 54 68 65 20 72 65 66 72 65 73 68 20 61 63 74  .The refresh act
6630: 69 76 69 74 69 65 73 20 63 6f 75 6c 64 20 62 65  ivities could be
6640: 20 6f 70 70 6f 72 74 75 6e 65 6c 79 20 70 6c 61   opportunely pla
6650: 6e 6e 65 64 20 61 74 20 6c 6f 77 20 74 72 61 66  nned at low traf
6660: 66 69 63 20 68 6f 75 72 73 20 28 65 2e 67 2e 20  fic hours (e.g. 
6670: 64 75 72 69 6e 67 20 74 68 65 20 6e 69 67 68 74  during the night
6680: 29 2c 20 61 6e 64 20 3c 62 3e 43 72 65 61 74 65  ), and <b>Create
6690: 52 6f 75 74 69 6e 67 28 29 3c 2f 62 3e 20 63 6f  Routing()</b> co
66a0: 75 6c 64 20 62 65 20 75 73 65 66 75 6c 6c 79 20  uld be usefully 
66b0: 63 61 6c 6c 65 64 20 62 79 20 65 6e 61 62 6c 69  called by enabli
66c0: 6e 67 20 74 68 65 20 3c 62 3e 6f 76 65 72 77 72  ng the <b>overwr
66d0: 69 74 65 3c 2f 62 3e 20 6f 70 74 69 6f 6e 2e 3c  ite</b> option.<
66e0: 2f 6c 69 3e 0d 0a 3c 6c 69 3e 3c 62 3e 6d 65 64  /li>..<li><b>med
66f0: 69 75 6d 2d 68 69 67 68 20 66 72 65 71 75 65 6e  ium-high frequen
6700: 63 79 20 72 65 66 72 65 73 68 3c 2f 62 3e 3a 20  cy refresh</b>: 
6710: 62 65 73 74 20 66 69 74 20 66 6f 72 20 71 75 69  best fit for qui
6720: 63 6b 6c 79 20 65 76 6f 6c 76 69 6e 67 20 4e 65  ckly evolving Ne
6730: 74 77 6f 72 6b 73 2e 3c 62 72 3e 0d 0a 52 65 2d  tworks.<br>..Re-
6740: 63 72 65 61 74 69 6e 67 20 74 68 65 20 4e 65 74  creating the Net
6750: 77 6f 72 6b 20 54 61 62 6c 65 73 20 6f 6e 63 65  work Tables once
6760: 20 70 65 72 20 68 6f 75 72 20 28 6f 72 20 65 76   per hour (or ev
6770: 65 6e 20 6d 6f 72 65 20 66 72 65 71 75 65 6e 74  en more frequent
6780: 6c 79 29 20 63 6f 75 6c 64 20 62 65 20 73 74 72  ly) could be str
6790: 69 63 74 6c 79 20 72 65 71 75 69 72 65 64 2c 20  ictly required, 
67a0: 61 6e 64 20 66 72 65 71 75 65 6e 74 20 3c 62 3e  and frequent <b>
67b0: 6f 75 74 20 6f 66 20 73 65 72 76 69 63 65 3c 2f  out of service</
67c0: 62 3e 20 70 65 72 69 6f 64 73 20 77 68 69 6c 65  b> periods while
67d0: 20 77 61 69 74 69 6e 67 20 66 6f 72 20 74 68 65   waiting for the
67e0: 20 72 65 66 72 65 73 68 20 70 72 6f 63 65 73 73   refresh process
67f0: 20 74 6f 20 63 6f 6d 70 6c 65 74 65 20 63 6f 75   to complete cou
6800: 6c 64 20 65 61 73 69 6c 79 20 62 65 20 75 6e 61  ld easily be una
6810: 63 63 65 70 74 61 62 6c 65 2e 3c 62 72 3e 0d 0a  cceptable.<br>..
6820: 49 6e 20 74 68 69 73 20 63 61 73 65 20 79 6f 75  In this case you
6830: 20 63 6f 75 6c 64 20 75 73 65 66 75 6c 6c 79 20   could usefully 
6840: 61 64 6f 70 74 20 61 20 3c 62 3e 6d 75 6c 74 69  adopt a <b>multi
6850: 2d 74 68 72 65 61 64 65 64 20 73 74 72 61 74 65  -threaded strate
6860: 67 79 3c 2f 62 3e 3a 0d 0a 3c 75 6c 3e 0d 0a 3c  gy</b>:..<ul>..<
6870: 6c 69 3e 3c 62 3e 74 68 72 65 61 64 20 23 31 3c  li><b>thread #1<
6880: 2f 62 3e 20 28 3c 69 3e 74 68 65 20 72 65 61 64  /b> (<i>the read
6890: 65 72 3c 2f 69 3e 29 3a 20 74 68 69 73 20 66 69  er</i>): this fi
68a0: 72 73 74 20 74 68 72 65 61 64 20 69 73 20 69 6e  rst thread is in
68b0: 74 65 6e 64 65 64 20 74 6f 20 73 65 72 76 69 63  tended to servic
68c0: 65 20 61 6e 79 20 69 6e 63 6f 6d 69 6e 67 20 52  e any incoming R
68d0: 6f 75 74 69 6e 67 20 72 65 71 75 65 73 74 2e 20  outing request. 
68e0: 49 74 20 77 69 6c 6c 20 62 65 20 61 6c 77 61 79  It will be alway
68f0: 73 20 61 63 74 69 76 65 2c 20 61 6e 64 20 77 69  s active, and wi
6900: 6c 6c 20 74 61 72 67 65 74 20 61 20 77 65 6c 6c  ll target a well
6910: 20 6b 6e 6f 77 6e 20 56 69 72 74 75 61 6c 52 6f   known VirtualRo
6920: 75 74 69 6e 67 20 54 61 62 6c 65 20 28 65 2e 67  uting Table (e.g
6930: 2e 20 3c 62 3e 6d 79 5f 72 6f 75 74 69 6e 67 3c  . <b>my_routing<
6940: 2f 62 3e 20 62 61 73 65 64 20 6f 6e 20 3c 62 3e  /b> based on <b>
6950: 6d 79 5f 72 6f 75 74 69 6e 67 5f 64 61 74 61 3c  my_routing_data<
6960: 2f 62 3e 29 2e 3c 2f 6c 69 3e 0d 0a 3c 6c 69 3e  /b>).</li>..<li>
6970: 3c 62 3e 74 68 72 65 61 64 20 23 32 3c 2f 62 3e  <b>thread #2</b>
6980: 20 28 3c 69 3e 74 68 65 20 77 72 69 74 65 72 3c   (<i>the writer<
6990: 2f 69 3e 29 3a 20 74 68 69 73 20 73 65 63 6f 6e  /i>): this secon
69a0: 64 20 74 68 72 65 61 64 20 69 73 20 6a 75 73 74  d thread is just
69b0: 20 69 6e 74 65 6e 64 65 64 20 74 6f 20 72 65 2d   intended to re-
69c0: 63 72 65 61 74 65 20 62 6f 74 68 20 4e 65 74 77  create both Netw
69d0: 6f 72 6b 20 54 61 62 6c 65 73 20 61 74 20 70 72  ork Tables at pr
69e0: 65 64 65 66 69 6e 65 64 20 69 6e 74 65 72 76 61  edefined interva
69f0: 6c 73 2c 20 61 6e 64 20 69 74 20 77 69 6c 6c 20  ls, and it will 
6a00: 73 6c 65 65 70 20 62 65 74 77 65 65 6e 20 61 6e  sleep between an
6a10: 20 69 6e 74 65 72 76 61 6c 20 61 6e 64 20 74 68   interval and th
6a20: 65 20 6f 74 68 65 72 2e 3c 62 72 3e 0d 0a 57 68  e other.<br>..Wh
6a30: 65 6e 20 74 68 69 73 20 74 68 72 65 61 64 20 61  en this thread a
6a40: 77 61 6b 65 6e 73 20 77 69 6c 6c 20 72 65 2d 63  wakens will re-c
6a50: 72 65 61 74 65 20 62 6f 74 68 20 4e 65 74 77 6f  reate both Netwo
6a60: 72 6b 20 54 61 62 6c 65 73 20 62 79 20 75 73 69  rk Tables by usi
6a70: 6e 67 20 64 69 66 66 65 72 65 6e 74 20 6e 61 6d  ng different nam
6a80: 65 73 2c 20 61 6e 64 20 77 69 6c 6c 20 6f 76 65  es, and will ove
6a90: 72 77 72 69 74 65 20 74 68 65 20 73 74 61 6e 64  rwrite the stand
6aa0: 61 72 64 20 6f 6e 65 73 20 6a 75 73 74 20 61 74  ard ones just at
6ab0: 20 74 68 65 20 76 65 72 79 20 65 6e 64 20 6f 66   the very end of
6ac0: 20 74 68 65 20 70 72 6f 63 65 73 73 20 28 61 63   the process (ac
6ad0: 74 69 76 61 74 69 6e 67 20 61 20 73 65 6d 61 70  tivating a semap
6ae0: 68 6f 72 65 20 64 75 72 69 6e 67 20 74 68 69 73  hore during this
6af0: 20 73 68 6f 72 74 2d 74 69 6d 65 64 20 6c 61 73   short-timed las
6b00: 74 20 73 74 65 70 20 69 73 20 68 69 67 68 6c 79  t step is highly
6b10: 20 72 65 63 6f 6d 6d 65 6e 64 65 64 29 2e 3c 62   recommended).<b
6b20: 72 3e 0d 0a 53 6f 6d 65 74 68 69 6e 67 20 6c 69  r>..Something li
6b30: 6b 65 20 74 68 69 73 20 70 73 65 75 64 6f 2d 63  ke this pseudo-c
6b40: 6f 64 65 20 65 78 65 6d 70 6c 69 66 69 65 73 3a  ode exemplifies:
6b50: 0d 0a 3c 76 65 72 62 61 74 69 6d 3e 0d 0a 53 45  ..<verbatim>..SE
6b60: 4c 45 43 54 20 43 72 65 61 74 65 52 6f 75 74 69  LECT CreateRouti
6b70: 6e 67 28 27 6e 65 77 5f 6d 79 5f 72 6f 75 74 69  ng('new_my_routi
6b80: 6e 67 5f 64 61 74 61 27 2c 20 27 6e 65 77 5f 6d  ng_data', 'new_m
6b90: 79 5f 72 6f 75 74 69 6e 67 27 2c 20 2e 2e 2e 29  y_routing', ...)
6ba0: 3b 0d 0a 0d 0a 2d 2d 3e 20 73 74 61 72 74 20 74  ;....--> start t
6bb0: 68 65 20 73 65 6d 61 70 68 6f 72 65 20 73 6f 20  he semaphore so 
6bc0: 74 6f 20 6c 6f 63 6b 20 74 68 65 20 6f 74 68 65  to lock the othe
6bd0: 72 20 74 68 72 65 61 64 0d 0a 0d 0a 42 45 47 49  r thread....BEGI
6be0: 4e 3b 0d 0a 44 52 4f 50 20 54 41 42 4c 45 20 6d  N;..DROP TABLE m
6bf0: 79 5f 72 6f 75 74 69 6e 67 3b 0d 0a 44 52 4f 50  y_routing;..DROP
6c00: 20 54 41 42 4c 45 20 6d 79 5f 72 6f 75 74 69 6e   TABLE my_routin
6c10: 67 5f 64 61 74 61 3b 0d 0a 53 45 4c 45 43 54 20  g_data;..SELECT 
6c20: 43 6c 6f 6e 65 54 61 62 6c 65 28 27 4d 41 49 4e  CloneTable('MAIN
6c30: 27 2c 20 27 6e 65 77 5f 6d 79 5f 72 6f 75 74 69  ', 'new_my_routi
6c40: 6e 67 5f 64 61 74 61 27 2c 20 27 6d 79 5f 72 6f  ng_data', 'my_ro
6c50: 75 74 69 6e 67 5f 64 61 74 61 27 2c 20 30 29 3b  uting_data', 0);
6c60: 0d 0a 43 52 45 41 54 45 20 56 49 52 54 55 41 4c  ..CREATE VIRTUAL
6c70: 20 54 41 42 4c 45 20 6d 79 5f 72 6f 75 74 69 6e   TABLE my_routin
6c80: 67 20 55 53 49 4e 47 20 56 69 72 74 75 61 6c 52  g USING VirtualR
6c90: 6f 75 74 69 6e 67 28 27 6d 79 5f 72 6f 75 74 69  outing('my_routi
6ca0: 6e 67 5f 64 61 74 61 27 29 3b 0d 0a 44 52 4f 50  ng_data');..DROP
6cb0: 20 54 41 42 4c 45 20 6e 65 77 5f 6d 79 5f 72 6f   TABLE new_my_ro
6cc0: 75 74 69 6e 67 3b 0d 0a 44 52 4f 50 20 54 41 42  uting;..DROP TAB
6cd0: 4c 45 20 6e 65 77 5f 6d 79 5f 72 6f 75 74 69 6e  LE new_my_routin
6ce0: 67 5f 64 61 74 61 3b 0d 0a 43 4f 4d 4d 49 54 3b  g_data;..COMMIT;
6cf0: 0d 0a 0d 0a 2d 2d 3e 20 72 65 6d 6f 76 65 20 74  ....--> remove t
6d00: 68 65 20 73 65 6d 61 70 68 6f 72 65 0d 0a 3c 2f  he semaphore..</
6d10: 76 65 72 62 61 74 69 6d 3e 0d 0a 3c 75 3e 4e 6f  verbatim>..<u>No
6d20: 74 65 3c 2f 75 3e 3a 20 73 74 72 69 63 74 6c 79  te</u>: strictly
6d30: 20 72 65 73 70 65 63 74 69 6e 67 20 74 68 65 20   respecting the 
6d40: 61 62 6f 76 65 20 73 65 71 75 65 6e 63 65 20 6f  above sequence o
6d50: 66 20 53 51 4c 20 6f 70 65 72 61 74 69 6f 6e 73  f SQL operations
6d60: 20 69 73 20 61 62 73 6f 6c 75 74 65 6c 79 20 72   is absolutely r
6d70: 65 71 75 69 72 65 64 2e 3c 2f 6c 69 3e 20 0d 0a  equired.</li> ..
6d80: 3c 2f 75 6c 3e 3c 2f 6c 69 3e 0d 0a 3c 2f 6f 6c  </ul></li>..</ol
6d90: 3e 0d 0a 3c 2f 74 64 3e 3c 2f 74 72 3e 0d 0a 3c  >..</td></tr>..<
6da0: 2f 74 61 62 6c 65 3e 0d 0a 3c 62 72 3e 0d 0a 3c  /table>..<br>..<
6db0: 74 61 62 6c 65 20 62 67 63 6f 6c 6f 72 3d 22 23  table bgcolor="#
6dc0: 66 66 62 30 36 30 22 20 63 65 6c 6c 73 70 61 63  ffb060" cellspac
6dd0: 69 6e 67 3d 22 31 30 22 20 63 65 6c 6c 70 61 64  ing="10" cellpad
6de0: 64 69 6e 67 3d 22 36 22 3e 3c 74 72 3e 3c 74 64  ding="6"><tr><td
6df0: 3e 0d 0a 3c 68 33 3e 57 61 72 6e 69 6e 67 3a 20  >..<h3>Warning: 
6e00: 68 6f 77 20 74 6f 20 63 6f 72 72 65 63 74 6c 79  how to correctly
6e10: 20 64 72 6f 70 20 4e 65 74 77 6f 72 6b 20 54 61   drop Network Ta
6e20: 62 6c 65 73 3c 2f 68 33 3e 0d 0a 57 68 65 6e 20  bles</h3>..When 
6e30: 64 72 6f 70 70 69 6e 67 20 61 20 56 69 72 74 75  dropping a Virtu
6e40: 61 6c 52 6f 75 74 69 6e 67 20 54 61 62 6c 65 20  alRouting Table 
6e50: 61 6e 64 20 69 74 73 20 63 6f 6d 70 61 6e 69 6f  and its companio
6e60: 6e 20 42 69 6e 61 72 79 20 44 61 74 61 20 54 61  n Binary Data Ta
6e70: 62 6c 65 20 66 6f 6c 6c 6f 77 69 6e 67 20 74 68  ble following th
6e80: 65 20 63 6f 72 72 65 63 74 20 73 65 71 75 65 6e  e correct sequen
6e90: 63 65 20 6f 66 20 53 51 4c 20 63 6f 6d 6d 61 6e  ce of SQL comman
6ea0: 64 73 20 69 73 20 70 61 72 61 6d 6f 75 6e 74 2e  ds is paramount.
6eb0: 3c 62 72 3e 0d 0a 46 61 69 6c 69 6e 67 20 74 6f  <br>..Failing to
6ec0: 20 73 74 72 69 63 74 6c 79 20 72 65 73 70 65 63   strictly respec
6ed0: 74 20 74 68 65 20 65 78 70 65 63 74 65 64 20 73  t the expected s
6ee0: 65 71 75 65 6e 63 65 20 77 69 6c 6c 20 73 75 72  equence will sur
6ef0: 65 6c 79 20 63 61 75 73 65 20 79 6f 75 20 73 65  ely cause you se
6f00: 76 65 72 61 6c 20 74 72 6f 75 62 6c 65 73 20 61  veral troubles a
6f10: 6e 64 20 73 65 76 65 72 65 20 68 65 61 64 61 63  nd severe headac
6f20: 68 65 73 2c 20 61 6e 64 20 77 69 6c 6c 20 70 6f  hes, and will po
6f30: 73 73 69 62 6c 79 20 6c 65 61 64 20 74 6f 20 61  ssibly lead to a
6f40: 6e 20 69 72 72 65 6d 65 64 69 61 62 6c 79 20 63  n irremediably c
6f50: 6f 72 72 75 70 74 65 64 20 64 61 74 61 62 61 73  orrupted databas
6f60: 65 2e 0d 0a 3c 6f 6c 3e 0d 0a 3c 6c 69 3e 79 6f  e...<ol>..<li>yo
6f70: 75 20 61 72 65 20 61 6c 77 61 79 73 20 65 78 70  u are always exp
6f80: 65 63 74 65 64 20 74 6f 20 44 52 4f 50 20 66 69  ected to DROP fi
6f90: 72 73 74 20 74 68 65 20 56 69 72 74 75 61 6c 52  rst the VirtualR
6fa0: 6f 75 74 69 6e 67 20 54 61 62 6c 65 2e 3c 2f 6c  outing Table.</l
6fb0: 69 3e 0d 0a 3c 6c 69 3e 79 6f 75 20 63 61 6e 20  i>..<li>you can 
6fc0: 73 61 66 65 6c 79 20 44 52 4f 50 20 74 68 65 20  safely DROP the 
6fd0: 63 6f 6d 70 61 6e 69 6f 6e 20 42 69 6e 61 72 79  companion Binary
6fe0: 20 44 61 74 61 20 54 61 62 6c 65 20 6f 6e 6c 79   Data Table only
6ff0: 20 6f 6e 63 65 20 69 74 27 73 20 6e 6f 20 6c 6f   once it's no lo
7000: 6e 67 65 72 20 72 65 66 65 72 65 6e 63 65 64 20  nger referenced 
7010: 62 79 20 74 68 65 20 56 69 72 74 75 61 6c 52 6f  by the VirtualRo
7020: 75 74 69 6e 67 20 54 61 62 6c 65 2e 3c 2f 6c 69  uting Table.</li
7030: 3e 0d 0a 3c 6c 69 3e 62 79 20 66 6f 6c 6c 6f 77  >..<li>by follow
7040: 69 6e 67 20 74 68 65 20 72 65 76 65 72 73 65 20  ing the reverse 
7050: 73 65 71 75 65 6e 63 65 20 79 6f 75 27 6c 6c 20  sequence you'll 
7060: 64 69 72 65 63 74 6c 79 20 63 72 65 61 74 65 20  directly create 
7070: 61 6e 20 3c 62 3e 6f 72 70 68 61 6e 3c 2f 62 3e  an <b>orphan</b>
7080: 20 56 69 72 74 75 61 6c 52 6f 75 74 69 6e 67 20   VirtualRouting 
7090: 54 61 62 6c 65 20 74 68 61 74 20 63 61 6e 6e 6f  Table that canno
70a0: 74 20 62 65 20 61 63 63 65 73 73 65 64 20 61 6e  t be accessed an
70b0: 79 20 6c 6f 6e 67 65 72 2c 20 61 6e 64 20 74 68  y longer, and th
70c0: 61 74 20 77 69 6c 6c 20 63 6f 6e 73 65 71 75 65  at will conseque
70d0: 6e 74 6c 79 20 72 65 66 75 73 65 20 74 6f 20 62  ntly refuse to b
70e0: 65 20 64 72 6f 70 70 65 64 2e 3c 62 72 3e 0d 0a  e dropped.<br>..
70f0: 42 65 20 77 61 72 6e 65 64 20 21 21 3c 2f 6c 69  Be warned !!</li
7100: 3e 0d 0a 3c 2f 6f 6c 3e 0d 0a 3c 2f 74 64 3e 3c  >..</ol>..</td><
7110: 2f 74 72 3e 0d 0a 3c 2f 74 61 62 6c 65 3e 0d 0a  /tr>..</table>..
7120: 3c 62 72 3e 3c 62 72 3e 0d 0a 3c 68 72 3e 3c 62  <br><br>..<hr><b
7130: 72 3e 0d 0a 3c 68 31 3e 3c 61 20 6e 61 6d 65 3d  r>..<h1><a name=
7140: 22 66 72 6f 6d 5f 74 6f 22 3e 34 20 2d 20 53 6f  "from_to">4 - So
7150: 6c 76 69 6e 67 20 63 6c 61 73 73 69 63 20 53 68  lving classic Sh
7160: 6f 72 74 65 73 74 20 50 61 74 68 20 70 72 6f 62  ortest Path prob
7170: 6c 65 6d 73 3c 2f 61 3e 3c 2f 68 31 3e 0d 0a 54  lems</a></h1>..T
7180: 68 65 20 6d 6f 73 74 20 63 6c 61 73 73 69 63 20  he most classic 
7190: 53 68 6f 72 74 65 73 74 20 50 61 74 68 20 70 72  Shortest Path pr
71a0: 6f 62 6c 65 6d 20 72 65 71 75 69 72 65 73 20 74  oblem requires t
71b0: 6f 20 69 64 65 6e 74 69 66 79 20 74 68 65 20 6f  o identify the o
71c0: 70 74 69 6d 61 6c 20 63 6f 6e 6e 65 63 74 69 6f  ptimal connectio
71d0: 6e 20 62 65 74 77 65 65 6e 20 61 6e 20 3c 62 3e  n between an <b>
71e0: 4f 72 69 67 69 6e 20 4e 6f 64 65 3c 2f 62 3e 20  Origin Node</b> 
71f0: 61 6e 64 20 61 20 3c 62 3e 44 65 73 74 69 6e 61  and a <b>Destina
7200: 74 69 6f 6e 20 4e 6f 64 65 3c 2f 62 3e 2e 3c 62  tion Node</b>.<b
7210: 72 3e 0d 0a 57 65 20 63 61 6e 20 65 61 73 69 6c  r>..We can easil
7220: 79 20 74 72 61 6e 73 6c 61 74 65 20 73 75 63 68  y translate such
7230: 20 61 20 70 72 6f 62 6c 65 6d 20 69 6e 74 6f 20   a problem into 
7240: 61 20 73 69 6d 70 6c 65 20 53 51 4c 20 71 75 65  a simple SQL que
7250: 72 79 20 74 61 72 67 65 74 69 6e 67 20 73 6f 6d  ry targeting som
7260: 65 20 56 69 72 74 75 61 6c 52 6f 75 74 69 6e 67  e VirtualRouting
7270: 20 54 61 62 6c 65 2e 0d 0a 3c 76 65 72 62 61 74   Table...<verbat
7280: 69 6d 3e 0d 0a 53 45 4c 45 43 54 20 2a 20 0d 0a  im>..SELECT * ..
7290: 46 52 4f 4d 20 62 79 66 6f 6f 74 0d 0a 57 48 45  FROM byfoot..WHE
72a0: 52 45 20 4e 6f 64 65 46 72 6f 6d 20 3d 20 31 37  RE NodeFrom = 17
72b0: 38 37 33 31 20 41 4e 44 20 4e 6f 64 65 54 6f 20  8731 AND NodeTo 
72c0: 3d 20 31 38 33 32 38 36 3b 0d 0a 3c 2f 76 65 72  = 183286;..</ver
72d0: 62 61 74 69 6d 3e 0d 0a 3c 74 61 62 6c 65 20 62  batim>..<table b
72e0: 6f 72 64 65 72 3d 22 31 22 20 62 67 63 6f 6c 6f  order="1" bgcolo
72f0: 72 3d 22 23 66 66 66 66 63 66 22 20 63 65 6c 6c  r="#ffffcf" cell
7300: 73 70 61 63 69 6e 67 3d 22 34 22 20 63 65 6c 6c  spacing="4" cell
7310: 70 61 64 64 69 6e 67 3d 22 36 22 3e 0d 0a 3c 74  padding="6">..<t
7320: 72 3e 3c 74 68 20 62 67 63 6f 6c 6f 72 3d 22 23  r><th bgcolor="#
7330: 64 30 64 30 61 30 22 3e 41 6c 67 6f 72 69 74 68  d0d0a0">Algorith
7340: 6d 3c 2f 74 68 3e 3c 74 68 20 62 67 63 6f 6c 6f  m</th><th bgcolo
7350: 72 3d 22 23 64 30 64 30 61 30 22 3e 52 65 71 75  r="#d0d0a0">Requ
7360: 65 73 74 3c 2f 74 68 3e 3c 74 68 20 62 67 63 6f  est</th><th bgco
7370: 6c 6f 72 3d 22 23 64 30 64 30 61 30 22 3e 4f 70  lor="#d0d0a0">Op
7380: 74 69 6f 6e 73 3c 2f 74 68 3e 3c 74 68 20 62 67  tions</th><th bg
7390: 63 6f 6c 6f 72 3d 22 23 64 30 64 30 61 30 22 3e  color="#d0d0a0">
73a0: 44 65 6c 69 6d 69 74 65 72 3c 2f 74 68 3e 3c 74  Delimiter</th><t
73b0: 68 20 62 67 63 6f 6c 6f 72 3d 22 23 64 30 64 30  h bgcolor="#d0d0
73c0: 61 30 22 3e 52 6f 75 74 65 49 64 3c 2f 74 68 3e  a0">RouteId</th>
73d0: 3c 74 68 20 62 67 63 6f 6c 6f 72 3d 22 23 64 30  <th bgcolor="#d0
73e0: 64 30 61 30 22 3e 52 6f 75 74 65 52 6f 77 3c 2f  d0a0">RouteRow</
73f0: 74 68 3e 3c 74 68 20 62 67 63 6f 6c 6f 72 3d 22  th><th bgcolor="
7400: 23 64 30 64 30 61 30 22 3e 52 6f 6c 65 3c 2f 74  #d0d0a0">Role</t
7410: 68 3e 3c 74 68 20 62 67 63 6f 6c 6f 72 3d 22 23  h><th bgcolor="#
7420: 64 30 64 30 61 30 22 3e 4c 69 6e 6b 52 6f 77 69  d0d0a0">LinkRowi
7430: 64 3c 2f 74 68 3e 3c 74 68 20 62 67 63 6f 6c 6f  d</th><th bgcolo
7440: 72 3d 22 23 64 30 64 30 61 30 22 3e 4e 6f 64 65  r="#d0d0a0">Node
7450: 46 72 6f 6d 3c 2f 74 68 3e 3c 74 68 20 62 67 63  From</th><th bgc
7460: 6f 6c 6f 72 3d 22 23 64 30 64 30 61 30 22 3e 4e  olor="#d0d0a0">N
7470: 6f 64 65 54 6f 3c 2f 74 68 3e 3c 74 68 20 62 67  odeTo</th><th bg
7480: 63 6f 6c 6f 72 3d 22 23 64 30 64 30 61 30 22 3e  color="#d0d0a0">
7490: 50 6f 69 6e 74 46 72 6f 6d 3c 2f 74 68 3e 3c 74  PointFrom</th><t
74a0: 68 20 62 67 63 6f 6c 6f 72 3d 22 23 64 30 64 30  h bgcolor="#d0d0
74b0: 61 30 22 3e 50 6f 69 6e 74 54 6f 3c 2f 74 68 3e  a0">PointTo</th>
74c0: 3c 74 68 20 62 67 63 6f 6c 6f 72 3d 22 23 64 30  <th bgcolor="#d0
74d0: 64 30 61 30 22 3e 54 6f 6c 65 72 61 6e 63 65 3c  d0a0">Tolerance<
74e0: 2f 74 68 3e 3c 74 68 20 62 67 63 6f 6c 6f 72 3d  /th><th bgcolor=
74f0: 22 23 64 30 64 30 61 30 22 3e 43 6f 73 74 3c 2f  "#d0d0a0">Cost</
7500: 74 68 3e 3c 74 68 20 62 67 63 6f 6c 6f 72 3d 22  th><th bgcolor="
7510: 23 64 30 64 30 61 30 22 3e 47 65 6f 6d 65 74 72  #d0d0a0">Geometr
7520: 79 3c 2f 74 68 3e 3c 74 68 20 62 67 63 6f 6c 6f  y</th><th bgcolo
7530: 72 3d 22 23 64 30 64 30 61 30 22 3e 4e 61 6d 65  r="#d0d0a0">Name
7540: 3c 2f 74 68 3e 3c 2f 74 72 3e 0d 0a 3c 74 72 3e  </th></tr>..<tr>
7550: 0d 0a 3c 74 64 3e 44 69 6a 6b 73 74 72 61 3c 2f  ..<td>Dijkstra</
7560: 74 64 3e 3c 74 64 3e 53 68 6f 72 74 65 73 74 20  td><td>Shortest 
7570: 50 61 74 68 3c 2f 74 64 3e 3c 74 64 3e 46 75 6c  Path</td><td>Ful
7580: 6c 3c 2f 74 64 3e 3c 74 64 3e 2c 20 26 23 39 31  l</td><td>, &#91
7590: 3b 64 65 63 3d 34 34 2c 20 68 65 78 3d 32 63 26  ;dec=44, hex=2c&
75a0: 23 39 33 3b 3c 2f 74 64 3e 3c 74 64 20 61 6c 69  #93;</td><td ali
75b0: 67 6e 3d 22 72 69 67 68 74 22 3e 30 3c 2f 74 64  gn="right">0</td
75c0: 3e 3c 74 64 20 61 6c 69 67 6e 3d 22 72 69 67 68  ><td align="righ
75d0: 74 22 3e 30 3c 2f 74 64 3e 3c 74 64 3e 52 6f 75  t">0</td><td>Rou
75e0: 74 65 3c 2f 74 64 3e 3c 74 64 3e 4e 55 4c 4c 3c  te</td><td>NULL<
75f0: 2f 74 64 3e 3c 74 64 20 61 6c 69 67 6e 3d 22 72  /td><td align="r
7600: 69 67 68 74 22 3e 31 37 38 37 33 31 3c 2f 74 64  ight">178731</td
7610: 3e 3c 74 64 20 61 6c 69 67 6e 3d 22 72 69 67 68  ><td align="righ
7620: 74 22 3e 31 38 33 32 38 36 3c 2f 74 64 3e 3c 74  t">183286</td><t
7630: 64 3e 4e 55 4c 4c 3c 2f 74 64 3e 3c 74 64 3e 4e  d>NULL</td><td>N
7640: 55 4c 4c 3c 2f 74 64 3e 3c 74 64 3e 4e 55 4c 4c  ULL</td><td>NULL
7650: 3c 2f 74 64 3e 3c 74 64 20 61 6c 69 67 6e 3d 22  </td><td align="
7660: 72 69 67 68 74 22 3e 33 30 30 2e 39 31 32 32 30  right">300.91220
7670: 38 3c 2f 74 64 3e 3c 74 64 3e 42 4c 4f 42 20 73  8</td><td>BLOB s
7680: 7a 3d 32 37 32 20 47 45 4f 4d 45 54 52 59 3c 2f  z=272 GEOMETRY</
7690: 74 64 3e 3c 74 64 3e 4e 55 4c 4c 3c 2f 74 64 3e  td><td>NULL</td>
76a0: 0d 0a 3c 2f 74 72 3e 0d 0a 3c 74 72 3e 0d 0a 3c  ..</tr>..<tr>..<
76b0: 74 64 3e 4e 55 4c 4c 3c 2f 74 64 3e 3c 74 64 3e  td>NULL</td><td>
76c0: 4e 55 4c 4c 3c 2f 74 64 3e 3c 74 64 3e 4e 55 4c  NULL</td><td>NUL
76d0: 4c 3c 2f 74 64 3e 3c 74 64 3e 4e 55 4c 4c 3c 2f  L</td><td>NULL</
76e0: 74 64 3e 3c 74 64 20 61 6c 69 67 6e 3d 22 72 69  td><td align="ri
76f0: 67 68 74 22 3e 30 3c 2f 74 64 3e 3c 74 64 20 61  ght">0</td><td a
7700: 6c 69 67 6e 3d 22 72 69 67 68 74 22 3e 31 3c 2f  lign="right">1</
7710: 74 64 3e 3c 74 64 3e 4c 69 6e 6b 3c 2f 74 64 3e  td><td>Link</td>
7720: 3c 74 64 20 61 6c 69 67 6e 3d 22 72 69 67 68 74  <td align="right
7730: 22 3e 32 32 34 30 31 34 3c 2f 74 64 3e 3c 74 64  ">224014</td><td
7740: 20 61 6c 69 67 6e 3d 22 72 69 67 68 74 22 3e 31   align="right">1
7750: 37 38 37 33 31 3c 2f 74 64 3e 3c 74 64 20 61 6c  78731</td><td al
7760: 69 67 6e 3d 22 72 69 67 68 74 22 3e 31 38 32 38  ign="right">1828
7770: 38 35 3c 2f 74 64 3e 3c 74 64 3e 4e 55 4c 4c 3c  85</td><td>NULL<
7780: 2f 74 64 3e 3c 74 64 3e 4e 55 4c 4c 3c 2f 74 64  /td><td>NULL</td
7790: 3e 3c 74 64 3e 4e 55 4c 4c 3c 2f 74 64 3e 3c 74  ><td>NULL</td><t
77a0: 64 20 61 6c 69 67 6e 3d 22 72 69 67 68 74 22 3e  d align="right">
77b0: 39 34 2e 38 31 32 34 32 34 3c 2f 74 64 3e 3c 74  94.812424</td><t
77c0: 64 3e 4e 55 4c 4c 3c 2f 74 64 3e 3c 74 64 3e 56  d>NULL</td><td>V
77d0: 49 41 20 50 49 45 54 52 4f 20 41 52 45 54 49 4e  IA PIETRO ARETIN
77e0: 4f 3c 2f 74 64 3e 0d 0a 3c 2f 74 72 3e 0d 0a 3c  O</td>..</tr>..<
77f0: 74 72 3e 0d 0a 3c 74 64 3e 4e 55 4c 4c 3c 2f 74  tr>..<td>NULL</t
7800: 64 3e 3c 74 64 3e 4e 55 4c 4c 3c 2f 74 64 3e 3c  d><td>NULL</td><
7810: 74 64 3e 4e 55 4c 4c 3c 2f 74 64 3e 3c 74 64 3e  td>NULL</td><td>
7820: 4e 55 4c 4c 3c 2f 74 64 3e 3c 74 64 20 61 6c 69  NULL</td><td ali
7830: 67 6e 3d 22 72 69 67 68 74 22 3e 30 3c 2f 74 64  gn="right">0</td
7840: 3e 3c 74 64 20 61 6c 69 67 6e 3d 22 72 69 67 68  ><td align="righ
7850: 74 22 3e 32 3c 2f 74 64 3e 3c 74 64 3e 4c 69 6e  t">2</td><td>Lin
7860: 6b 3c 2f 74 64 3e 3c 74 64 20 61 6c 69 67 6e 3d  k</td><td align=
7870: 22 72 69 67 68 74 22 3e 32 32 34 34 34 36 3c 2f  "right">224446</
7880: 74 64 3e 3c 74 64 20 61 6c 69 67 6e 3d 22 72 69  td><td align="ri
7890: 67 68 74 22 3e 31 38 32 38 38 35 3c 2f 74 64 3e  ght">182885</td>
78a0: 3c 74 64 20 61 6c 69 67 6e 3d 22 72 69 67 68 74  <td align="right
78b0: 22 3e 31 37 38 38 38 30 3c 2f 74 64 3e 3c 74 64  ">178880</td><td
78c0: 3e 4e 55 4c 4c 3c 2f 74 64 3e 3c 74 64 3e 4e 55  >NULL</td><td>NU
78d0: 4c 4c 3c 2f 74 64 3e 3c 74 64 3e 4e 55 4c 4c 3c  LL</td><td>NULL<
78e0: 2f 74 64 3e 3c 74 64 20 61 6c 69 67 6e 3d 22 72  /td><td align="r
78f0: 69 67 68 74 22 3e 36 39 2e 37 32 37 37 32 36 3c  ight">69.727726<
7900: 2f 74 64 3e 3c 74 64 3e 4e 55 4c 4c 3c 2f 74 64  /td><td>NULL</td
7910: 3e 3c 74 64 3e 56 49 41 20 4d 41 52 47 41 52 49  ><td>VIA MARGARI
7920: 54 4f 4e 45 3c 2f 74 64 3e 0d 0a 3c 2f 74 72 3e  TONE</td>..</tr>
7930: 0d 0a 3c 74 72 3e 0d 0a 3c 74 64 3e 4e 55 4c 4c  ..<tr>..<td>NULL
7940: 3c 2f 74 64 3e 3c 74 64 3e 4e 55 4c 4c 3c 2f 74  </td><td>NULL</t
7950: 64 3e 3c 74 64 3e 4e 55 4c 4c 3c 2f 74 64 3e 3c  d><td>NULL</td><
7960: 74 64 3e 4e 55 4c 4c 3c 2f 74 64 3e 3c 74 64 20  td>NULL</td><td 
7970: 61 6c 69 67 6e 3d 22 72 69 67 68 74 22 3e 30 3c  align="right">0<
7980: 2f 74 64 3e 3c 74 64 20 61 6c 69 67 6e 3d 22 72  /td><td align="r
7990: 69 67 68 74 22 3e 33 3c 2f 74 64 3e 3c 74 64 3e  ight">3</td><td>
79a0: 4c 69 6e 6b 3c 2f 74 64 3e 3c 74 64 20 61 6c 69  Link</td><td ali
79b0: 67 6e 3d 22 72 69 67 68 74 22 3e 32 32 34 34 31  gn="right">22441
79c0: 34 3c 2f 74 64 3e 3c 74 64 20 61 6c 69 67 6e 3d  4</td><td align=
79d0: 22 72 69 67 68 74 22 3e 31 37 38 38 38 30 3c 2f  "right">178880</
79e0: 74 64 3e 3c 74 64 20 61 6c 69 67 6e 3d 22 72 69  td><td align="ri
79f0: 67 68 74 22 3e 31 38 33 32 38 36 3c 2f 74 64 3e  ght">183286</td>
7a00: 3c 74 64 3e 4e 55 4c 4c 3c 2f 74 64 3e 3c 74 64  <td>NULL</td><td
7a10: 3e 4e 55 4c 4c 3c 2f 74 64 3e 3c 74 64 3e 4e 55  >NULL</td><td>NU
7a20: 4c 4c 3c 2f 74 64 3e 3c 74 64 20 61 6c 69 67 6e  LL</td><td align
7a30: 3d 22 72 69 67 68 74 22 3e 31 33 36 2e 33 37 32  ="right">136.372
7a40: 30 35 37 3c 2f 74 64 3e 3c 74 64 3e 4e 55 4c 4c  057</td><td>NULL
7a50: 3c 2f 74 64 3e 3c 74 64 3e 56 49 41 20 4d 41 52  </td><td>VIA MAR
7a60: 47 41 52 49 54 4f 4e 45 3c 2f 74 64 3e 0d 0a 3c  GARITONE</td>..<
7a70: 2f 74 72 3e 0d 0a 3c 2f 74 61 62 6c 65 3e 0d 0a  /tr>..</table>..
7a80: 3c 62 72 3e 0d 0a 4c 65 74 27 73 20 71 75 69 63  <br>..Let's quic
7a90: 6b 6c 79 20 65 78 61 6d 69 6e 65 20 74 68 65 20  kly examine the 
7aa0: 72 65 73 75 6c 74 73 65 74 20 72 65 74 75 72 6e  resultset return
7ab0: 65 64 20 62 79 20 74 68 65 20 61 62 6f 76 65 20  ed by the above 
7ac0: 52 6f 75 74 69 6e 67 20 71 75 65 72 79 3a 0d 0a  Routing query:..
7ad0: 3c 75 6c 3e 0d 0a 3c 6c 69 3e 74 68 65 20 3c 62  <ul>..<li>the <b
7ae0: 3e 66 69 72 73 74 20 72 6f 77 3c 2f 62 3e 20 28  >first row</b> (
7af0: 3c 69 3e 61 6b 61 3c 2f 69 3e 20 68 65 61 64 65  <i>aka</i> heade
7b00: 72 20 72 6f 77 29 20 68 61 73 20 61 20 73 70 65  r row) has a spe
7b10: 63 69 61 6c 20 69 6e 74 65 72 70 72 65 74 61 74  cial interpretat
7b20: 69 6f 6e 2c 20 61 6e 64 20 69 73 20 69 6e 74 65  ion, and is inte
7b30: 6e 64 65 64 20 74 6f 20 73 75 6d 6d 61 72 69 7a  nded to summariz
7b40: 65 20 74 68 65 20 74 72 61 76 65 6c 20 73 6f 6c  e the travel sol
7b50: 75 74 69 6f 6e 20 61 73 20 61 20 77 68 6f 6c 65  ution as a whole
7b60: 2e 3c 2f 6c 69 3e 0d 0a 3c 6c 69 3e 61 6c 6c 20  .</li>..<li>all 
7b70: 74 68 65 20 3c 62 3e 66 6f 6c 6c 6f 77 69 6e 67  the <b>following
7b80: 20 72 6f 77 73 3c 2f 62 3e 20 72 65 70 72 65 73   rows</b> repres
7b90: 65 6e 74 20 61 20 73 69 6e 67 6c 65 20 4c 69 6e  ent a single Lin
7ba0: 6b 20 72 65 71 75 69 72 65 64 20 74 6f 20 62 75  k required to bu
7bb0: 69 6c 64 20 74 68 65 20 73 6f 6c 75 74 69 6f 6e  ild the solution
7bc0: 20 28 6f 70 74 69 6d 61 20 70 61 74 68 29 3b 20   (optima path); 
7bd0: 4c 69 6e 6b 73 20 61 72 65 20 6f 72 64 65 72 65  Links are ordere
7be0: 64 20 61 63 63 6f 72 64 69 6e 67 6c 79 20 74 6f  d accordingly to
7bf0: 20 74 68 65 20 74 72 61 76 65 6c 20 64 69 72 65   the travel dire
7c00: 63 74 69 6f 6e 20 63 6f 6e 6e 65 63 74 69 6e 67  ction connecting
7c10: 20 74 68 65 20 4f 72 69 67 69 6e 20 61 6e 64 20   the Origin and 
7c20: 74 68 65 20 44 65 73 74 69 6e 61 74 69 6f 6e 2e  the Destination.
7c30: 3c 2f 6c 69 3e 0d 0a 3c 6c 69 3e 63 6f 6c 75 6d  </li>..<li>colum
7c40: 6e 73 20 3c 62 3e 41 6c 67 6f 72 69 74 68 6d 3c  ns <b>Algorithm<
7c50: 2f 62 3e 2c 20 3c 62 3e 52 65 71 75 65 73 74 3c  /b>, <b>Request<
7c60: 2f 62 3e 2c 20 3c 62 3e 4f 70 74 69 6f 6e 73 3c  /b>, <b>Options<
7c70: 2f 62 3e 2c 20 3c 62 3e 44 65 6c 69 6d 69 74 65  /b>, <b>Delimite
7c80: 72 3c 2f 62 3e 2c 20 3c 62 3e 50 6f 69 6e 74 46  r</b>, <b>PointF
7c90: 72 6f 6d 3c 2f 62 3e 2c 20 3c 62 3e 50 6f 69 6e  rom</b>, <b>Poin
7ca0: 74 54 6f 3c 2f 62 3e 2c 20 3c 62 3e 54 6f 6c 65  tTo</b>, <b>Tole
7cb0: 72 61 6e 63 65 3c 2f 62 3e 20 61 6e 64 20 3c 62  rance</b> and <b
7cc0: 3e 47 65 6f 6d 65 74 72 79 3c 2f 62 3e 20 61 72  >Geometry</b> ar
7cd0: 65 20 61 6c 77 61 79 73 20 73 65 74 20 74 6f 20  e always set to 
7ce0: 3c 62 3e 4e 55 4c 4c 3c 2f 62 3e 20 65 78 63 65  <b>NULL</b> exce
7cf0: 70 74 20 74 68 61 74 20 69 6e 20 74 68 65 20 66  pt that in the f
7d00: 69 72 73 74 20 72 6f 77 20 6f 66 20 74 68 65 20  irst row of the 
7d10: 72 65 73 75 6c 74 73 65 74 3a 0d 0a 3c 75 6c 3e  resultset:..<ul>
7d20: 0d 0a 3c 6c 69 3e 63 6f 6c 75 6d 6e 20 3c 62 3e  ..<li>column <b>
7d30: 41 6c 67 6f 72 69 74 68 6d 3c 2f 62 3e 20 61 63  Algorithm</b> ac
7d40: 63 6f 75 6e 74 73 20 66 6f 72 20 74 68 65 20 52  counts for the R
7d50: 6f 75 74 69 6e 67 20 41 6c 67 6f 72 69 74 68 6d  outing Algorithm
7d60: 20 75 73 65 64 20 62 79 20 74 68 65 20 63 75 72   used by the cur
7d70: 72 65 6e 74 20 71 75 65 72 79 20 28 3c 69 3e 44  rent query (<i>D
7d80: 69 6a 6b 73 74 72 61 27 73 3c 2f 69 3e 20 6f 72  ijkstra's</i> or
7d90: 20 3c 69 3e 41 2a 3c 2f 69 3e 29 2e 3c 2f 6c 69   <i>A*</i>).</li
7da0: 3e 0d 0a 3c 6c 69 3e 63 6f 6c 75 6d 6e 20 3c 62  >..<li>column <b
7db0: 3e 52 65 71 75 65 73 74 3c 2f 62 3e 20 73 70 65  >Request</b> spe
7dc0: 63 69 66 69 65 73 20 74 68 65 20 65 78 61 63 74  cifies the exact
7dd0: 20 6e 61 74 75 72 65 20 6f 66 20 74 68 65 20 63   nature of the c
7de0: 75 72 72 65 6e 74 20 71 75 65 72 79 20 28 69 6e  urrent query (in
7df0: 20 74 68 69 73 20 73 70 65 63 69 66 69 63 20 63   this specific c
7e00: 61 73 65 20 3c 69 3e 53 68 6f 72 74 65 73 74 20  ase <i>Shortest 
7e10: 50 61 74 68 3c 2f 69 3e 29 2e 3c 2f 6c 69 3e 0d  Path</i>).</li>.
7e20: 0a 3c 6c 69 3e 77 65 27 6c 6c 20 69 67 6e 6f 72  .<li>we'll ignor
7e30: 65 20 66 6f 72 20 6e 6f 77 20 63 6f 6c 75 6d 6e  e for now column
7e40: 73 20 3c 62 3e 4f 70 74 69 6f 6e 73 3c 2f 62 3e  s <b>Options</b>
7e50: 2c 20 3c 62 3e 44 65 6c 69 6d 69 74 65 72 3c 2f  , <b>Delimiter</
7e60: 62 3e 2c 20 3c 62 3e 50 6f 69 6e 74 46 72 6f 6d  b>, <b>PointFrom
7e70: 3c 2f 62 3e 2c 20 3c 62 3e 50 6f 69 6e 74 54 6f  </b>, <b>PointTo
7e80: 3c 2f 62 3e 20 61 6e 64 20 3c 62 3e 54 6f 6c 65  </b> and <b>Tole
7e90: 72 61 6e 63 65 3c 2f 62 3e 3a 20 74 68 65 69 72  rance</b>: their
7ea0: 20 72 65 73 70 65 63 74 69 76 65 20 6d 65 61 6e   respective mean
7eb0: 69 6e 67 73 20 77 69 6c 6c 20 62 65 20 65 78 70  ings will be exp
7ec0: 6c 61 69 6e 65 64 20 69 6e 20 66 6f 6c 6c 6f 77  lained in follow
7ed0: 69 6e 67 20 70 61 72 61 67 72 61 70 68 73 2e 3c  ing paragraphs.<
7ee0: 2f 6c 69 3e 0d 0a 3c 6c 69 3e 63 6f 6c 75 6d 6e  /li>..<li>column
7ef0: 20 3c 62 3e 47 65 6f 6d 65 74 72 79 3c 2f 62 3e   <b>Geometry</b>
7f00: 20 63 6f 6e 74 61 69 6e 73 20 61 20 3c 62 3e 4c   contains a <b>L
7f10: 49 4e 45 53 54 52 49 4e 47 3c 2f 62 3e 20 72 65  INESTRING</b> re
7f20: 70 72 65 73 65 6e 74 61 74 69 6f 6e 20 6f 66 20  presentation of 
7f30: 74 68 65 20 77 68 6f 6c 65 20 74 72 61 76 65 6c  the whole travel
7f40: 20 73 6f 6c 75 74 69 6f 6e 2e 3c 62 72 3e 0d 0a   solution.<br>..
7f50: 3c 75 3e 4e 6f 74 65 3c 2f 75 3e 3a 20 6f 6e 20  <u>Note</u>: on 
7f60: 3c 62 3e 4c 6f 67 69 63 61 6c 20 4e 65 74 77 6f  <b>Logical Netwo
7f70: 72 6b 73 3c 2f 62 3e 20 28 6e 6f 74 20 73 75 70  rks</b> (not sup
7f80: 70 6f 72 74 69 6e 67 20 47 65 6f 6d 65 74 72 69  porting Geometri
7f90: 65 73 29 20 3c 62 3e 47 65 6f 6d 65 74 72 79 3c  es) <b>Geometry<
7fa0: 2f 62 3e 20 77 69 6c 6c 20 61 6c 77 61 79 73 20  /b> will always 
7fb0: 62 65 20 3c 62 3e 4e 55 4c 4c 3c 2f 62 3e 2e 3c  be <b>NULL</b>.<
7fc0: 2f 6c 69 3e 0d 0a 3c 2f 75 6c 3e 3c 2f 6c 69 3e  /li>..</ul></li>
7fd0: 0d 0a 3c 6c 69 3e 77 65 27 6c 6c 20 69 67 6e 6f  ..<li>we'll igno
7fe0: 72 65 20 66 6f 72 20 6e 6f 77 20 63 6f 6c 75 6d  re for now colum
7ff0: 6e 20 3c 62 3e 52 6f 75 74 65 49 64 3c 2f 62 3e  n <b>RouteId</b>
8000: 3b 20 69 74 73 20 6d 65 61 6e 69 6e 67 20 77 69  ; its meaning wi
8010: 6c 6c 20 62 65 20 65 78 70 6c 61 69 6e 65 64 20  ll be explained 
8020: 69 6e 20 66 6f 6c 6c 6f 77 69 6e 67 20 70 61 72  in following par
8030: 61 67 72 61 70 68 73 2e 3c 2f 6c 69 3e 0d 0a 3c  agraphs.</li>..<
8040: 6c 69 3e 63 6f 6c 75 6d 6e 20 3c 62 3e 52 6f 75  li>column <b>Rou
8050: 74 65 52 6f 77 3c 2f 62 3e 20 73 69 6d 70 6c 79  teRow</b> simply
8060: 20 69 73 20 74 68 65 20 70 72 6f 67 72 65 73 73   is the progress
8070: 69 76 65 20 6e 75 6d 62 65 72 20 6f 66 20 74 68  ive number of th
8080: 65 20 72 6f 77 20 69 6e 20 74 68 65 20 74 72 61  e row in the tra
8090: 76 65 6c 20 73 6f 6c 75 74 69 6f 6e 20 28 61 6c  vel solution (al
80a0: 77 61 79 73 20 3c 62 3e 30 3c 2f 62 3e 20 69 6e  ways <b>0</b> in
80b0: 20 74 68 65 20 68 65 61 64 65 72 20 72 6f 77 29   the header row)
80c0: 2e 3c 2f 6c 69 3e 0d 0a 3c 6c 69 3e 63 6f 6c 75  .</li>..<li>colu
80d0: 6d 6e 20 3c 62 3e 52 6f 6c 65 3c 2f 62 3e 20 63  mn <b>Role</b> c
80e0: 61 6e 20 62 65 20 3c 69 3e 52 6f 75 74 65 3c 2f  an be <i>Route</
80f0: 69 3e 20 28 68 65 61 64 65 72 20 72 6f 77 29 20  i> (header row) 
8100: 6f 72 20 3c 69 3e 4c 69 6e 6b 3c 2f 69 3e 20 28  or <i>Link</i> (
8110: 61 6c 6c 20 66 6f 6c 6c 6f 77 69 6e 67 20 72 6f  all following ro
8120: 77 73 29 2e 3c 2f 6c 69 3e 0d 0a 3c 6c 69 3e 63  ws).</li>..<li>c
8130: 6f 6c 75 6d 6e 20 3c 62 3e 4c 69 6e 6b 52 6f 77  olumn <b>LinkRow
8140: 69 64 3c 2f 62 3e 20 72 65 66 65 72 65 6e 63 65  id</b> reference
8150: 73 20 74 68 65 20 3c 62 3e 52 4f 57 49 44 3c 2f  s the <b>ROWID</
8160: 62 3e 20 6f 66 20 74 68 65 20 63 6f 72 72 65 73  b> of the corres
8170: 70 6f 6e 64 69 6e 67 20 4c 69 6e 6b 20 28 61 6c  ponding Link (al
8180: 77 61 79 73 20 73 65 74 20 74 6f 20 3c 62 3e 4e  ways set to <b>N
8190: 55 4c 4c 3c 2f 62 3e 20 69 6e 20 74 68 65 20 68  ULL</b> in the h
81a0: 65 61 64 65 72 20 72 6f 77 29 2e 3c 2f 6c 69 3e  eader row).</li>
81b0: 0d 0a 3c 6c 69 3e 63 6f 6c 75 6d 6e 20 3c 62 3e  ..<li>column <b>
81c0: 4e 6f 64 65 46 72 6f 6d 3c 2f 62 3e 20 61 6e 64  NodeFrom</b> and
81d0: 20 3c 62 3e 4e 6f 64 65 54 6f 3c 2f 62 3e 20 68   <b>NodeTo</b> h
81e0: 61 76 65 20 74 68 65 20 66 6f 6c 6c 6f 77 69 6e  ave the followin
81f0: 67 20 69 6e 74 65 72 70 72 65 74 61 74 69 6f 6e  g interpretation
8200: 3a 0d 0a 3c 75 6c 3e 0d 0a 3c 6c 69 3e 69 6e 20  :..<ul>..<li>in 
8210: 74 68 65 20 68 65 61 64 65 72 20 72 6f 77 20 74  the header row t
8220: 68 65 79 20 63 6f 72 72 65 73 70 6f 6e 64 20 74  hey correspond t
8230: 6f 20 68 65 20 3c 62 3e 4f 72 69 67 69 6e 3c 2f  o he <b>Origin</
8240: 62 3e 20 61 6e 64 20 3c 62 3e 44 65 73 74 69 6e  b> and <b>Destin
8250: 61 74 69 6f 6e 3c 2f 62 3e 20 4e 6f 64 65 73 2e  ation</b> Nodes.
8260: 3c 2f 6c 69 3e 0d 0a 3c 6c 69 3e 69 6e 20 61 6c  </li>..<li>in al
8270: 6c 20 74 68 65 20 66 6f 6c 6c 6f 77 69 6e 67 20  l the following 
8280: 72 6f 77 73 20 74 68 65 79 20 61 72 65 20 69 6e  rows they are in
8290: 74 65 6e 64 65 64 20 74 6f 20 73 70 65 63 69 66  tended to specif
82a0: 79 20 74 68 65 20 64 69 72 65 63 74 69 6f 6e 20  y the direction 
82b0: 6f 66 20 74 68 65 20 63 75 72 72 65 6e 74 20 4c  of the current L
82c0: 69 6e 6b 2e 3c 2f 6c 69 3e 0d 0a 3c 2f 75 6c 3e  ink.</li>..</ul>
82d0: 3c 2f 6c 69 3e 0d 0a 3c 6c 69 3e 63 6f 6c 75 6d  </li>..<li>colum
82e0: 6e 20 3c 62 3e 43 6f 73 74 3c 2f 62 3e 20 68 61  n <b>Cost</b> ha
82f0: 73 20 74 68 65 20 66 6f 6c 6c 6f 77 69 6e 67 20  s the following 
8300: 69 6e 74 65 72 70 72 65 74 61 74 69 6f 6e 3a 0d  interpretation:.
8310: 0a 3c 75 6c 3e 0d 0a 3c 6c 69 3e 69 6e 20 74 68  .<ul>..<li>in th
8320: 65 20 68 65 61 64 65 72 20 74 6f 77 20 69 74 20  e header tow it 
8330: 63 6f 72 72 65 73 70 6f 6e 64 73 20 74 6f 20 74  corresponds to t
8340: 68 65 20 3c 62 3e 74 6f 74 61 6c 20 63 6f 73 74  he <b>total cost
8350: 3c 2f 62 3e 20 6f 66 20 74 68 65 20 74 72 61 76  </b> of the trav
8360: 65 6c 2e 3c 2f 6c 69 3e 0d 0a 3c 6c 69 3e 69 6e  el.</li>..<li>in
8370: 20 61 6c 6c 20 74 68 65 20 66 6f 6c 6c 6f 77 69   all the followi
8380: 6e 67 20 72 6f 77 73 20 69 74 20 72 65 70 72 65  ng rows it repre
8390: 73 65 6e 74 73 20 74 68 65 20 73 70 65 63 69 66  sents the specif
83a0: 69 63 20 63 6f 73 74 20 6f 66 20 74 68 65 20 63  ic cost of the c
83b0: 75 72 72 65 6e 74 20 4c 69 6e 6b 2e 3c 2f 6c 69  urrent Link.</li
83c0: 3e 0d 0a 3c 2f 75 6c 3e 3c 2f 6c 69 3e 0d 0a 3c  >..</ul></li>..<
83d0: 6c 69 3e 63 6f 6c 75 6d 6e 20 3c 62 3e 4e 61 6d  li>column <b>Nam
83e0: 65 3c 2f 62 3e 20 63 6f 6e 74 61 69 6e 73 20 74  e</b> contains t
83f0: 68 65 20 64 65 73 63 72 69 70 74 69 6f 6e 20 6f  he description o
8400: 66 20 74 68 65 20 63 75 72 72 65 6e 74 20 4c 69  f the current Li
8410: 6e 6b 20 28 75 73 75 61 6c 6c 79 20 61 20 72 6f  nk (usually a ro
8420: 61 64 20 6e 61 6d 65 29 2c 20 61 6e 64 20 69 73  ad name), and is
8430: 20 61 6c 77 61 79 73 20 3c 62 3e 4e 55 4c 4c 3c   always <b>NULL<
8440: 2f 62 3e 20 69 6e 20 74 68 65 20 68 65 61 64 65  /b> in the heade
8450: 72 20 72 6f 77 2e 3c 62 72 3e 0d 0a 3c 75 3e 4e  r row.<br>..<u>N
8460: 6f 74 65 3c 2f 75 3e 20 69 74 20 63 6f 75 6c 64  ote</u> it could
8470: 20 62 65 20 61 6c 77 61 79 73 20 62 65 20 3c 62   be always be <b
8480: 3e 4e 55 4c 4c 3c 2f 62 3e 20 69 66 20 74 68 65  >NULL</b> if the
8490: 20 56 69 72 74 75 61 6c 52 6f 75 74 69 6e 67 20   VirtualRouting 
84a0: 54 61 62 6c 65 20 64 6f 65 73 20 6e 6f 74 20 73  Table does not s
84b0: 75 70 70 6f 72 74 73 20 6e 61 6d 65 73 2e 3c 2f  upports names.</
84c0: 6c 69 3e 0d 0a 3c 2f 75 6c 3e 3c 2f 6c 69 3e 0d  li>..</ul></li>.
84d0: 0a 3c 2f 75 6c 3e 0d 0a 3c 62 72 3e 3c 62 72 3e  .</ul>..<br><br>
84e0: 0d 0a 54 65 73 74 69 6e 67 20 74 68 65 20 72 65  ..Testing the re
84f0: 74 75 72 6e 20 63 6f 6e 6e 65 63 74 69 6f 6e 20  turn connection 
8500: 6a 75 73 74 20 72 65 71 75 69 72 65 73 20 73 77  just requires sw
8510: 61 70 70 69 6e 67 20 74 68 65 20 4f 72 69 67 69  apping the Origi
8520: 6e 20 61 6e 64 20 74 68 65 20 44 65 73 74 69 6e  n and the Destin
8530: 61 74 69 6f 6e 3b 20 69 6e 20 74 68 69 73 20 65  ation; in this e
8540: 78 61 6d 70 6c 65 20 79 6f 75 27 6c 6c 20 6a 75  xample you'll ju
8550: 73 74 20 72 65 71 75 65 73 74 20 74 68 65 20 6d  st request the m
8560: 65 61 6e 69 6e 67 66 75 6c 20 63 6f 6c 75 6d 6e  eaningful column
8570: 73 3a 0d 0a 3c 76 65 72 62 61 74 69 6d 3e 0d 0a  s:..<verbatim>..
8580: 53 45 4c 45 43 54 20 52 6f 75 74 65 52 6f 77 2c  SELECT RouteRow,
8590: 20 52 6f 6c 65 2c 20 4c 69 6e 6b 52 6f 77 69 64   Role, LinkRowid
85a0: 2c 20 4e 6f 64 65 46 72 6f 6d 2c 20 4e 6f 64 65  , NodeFrom, Node
85b0: 54 6f 2c 20 43 6f 73 74 2c 20 47 65 6f 6d 65 74  To, Cost, Geomet
85c0: 72 79 2c 20 4e 61 6d 65 0d 0a 46 52 4f 4d 20 62  ry, Name..FROM b
85d0: 79 66 6f 6f 74 0d 0a 57 48 45 52 45 20 4e 6f 64  yfoot..WHERE Nod
85e0: 65 54 6f 20 3d 20 31 37 38 37 33 31 20 41 4e 44  eTo = 178731 AND
85f0: 20 4e 6f 64 65 46 72 6f 6d 20 3d 20 31 38 33 32   NodeFrom = 1832
8600: 38 36 3b 0d 0a 3c 2f 76 65 72 62 61 74 69 6d 3e  86;..</verbatim>
8610: 0d 0a 3c 74 61 62 6c 65 20 62 6f 72 64 65 72 3d  ..<table border=
8620: 22 31 22 20 62 67 63 6f 6c 6f 72 3d 22 23 66 66  "1" bgcolor="#ff
8630: 66 66 63 66 22 20 63 65 6c 6c 73 70 61 63 69 6e  ffcf" cellspacin
8640: 67 3d 22 34 22 20 63 65 6c 6c 70 61 64 64 69 6e  g="4" cellpaddin
8650: 67 3d 22 36 22 3e 0d 0a 3c 74 72 3e 3c 74 68 20  g="6">..<tr><th 
8660: 62 67 63 6f 6c 6f 72 3d 22 23 64 30 64 30 61 30  bgcolor="#d0d0a0
8670: 22 3e 52 6f 75 74 65 52 6f 77 3c 2f 74 68 3e 3c  ">RouteRow</th><
8680: 74 68 20 62 67 63 6f 6c 6f 72 3d 22 23 64 30 64  th bgcolor="#d0d
8690: 30 61 30 22 3e 52 6f 6c 65 3c 2f 74 68 3e 3c 74  0a0">Role</th><t
86a0: 68 20 62 67 63 6f 6c 6f 72 3d 22 23 64 30 64 30  h bgcolor="#d0d0
86b0: 61 30 22 3e 4c 69 6e 6b 52 6f 77 69 64 3c 2f 74  a0">LinkRowid</t
86c0: 68 3e 3c 74 68 20 62 67 63 6f 6c 6f 72 3d 22 23  h><th bgcolor="#
86d0: 64 30 64 30 61 30 22 3e 4e 6f 64 65 46 72 6f 6d  d0d0a0">NodeFrom
86e0: 3c 2f 74 68 3e 3c 74 68 20 62 67 63 6f 6c 6f 72  </th><th bgcolor
86f0: 3d 22 23 64 30 64 30 61 30 22 3e 4e 6f 64 65 54  ="#d0d0a0">NodeT
8700: 6f 3c 2f 74 68 3e 3c 74 68 20 62 67 63 6f 6c 6f  o</th><th bgcolo
8710: 72 3d 22 23 64 30 64 30 61 30 22 3e 43 6f 73 74  r="#d0d0a0">Cost
8720: 3c 2f 74 68 3e 3c 74 68 20 62 67 63 6f 6c 6f 72  </th><th bgcolor
8730: 3d 22 23 64 30 64 30 61 30 22 3e 47 65 6f 6d 65  ="#d0d0a0">Geome
8740: 74 72 79 3c 2f 74 68 3e 3c 74 68 20 62 67 63 6f  try</th><th bgco
8750: 6c 6f 72 3d 22 23 64 30 64 30 61 30 22 3e 4e 61  lor="#d0d0a0">Na
8760: 6d 65 3c 2f 74 68 3e 3c 2f 74 72 3e 0d 0a 3c 74  me</th></tr>..<t
8770: 72 3e 0d 0a 3c 74 64 20 61 6c 69 67 6e 3d 22 72  r>..<td align="r
8780: 69 67 68 74 22 3e 30 3c 2f 74 64 3e 3c 74 64 3e  ight">0</td><td>
8790: 52 6f 75 74 65 3c 2f 74 64 3e 3c 74 64 3e 4e 55  Route</td><td>NU
87a0: 4c 4c 3c 2f 74 64 3e 3c 74 64 20 61 6c 69 67 6e  LL</td><td align
87b0: 3d 22 72 69 67 68 74 22 3e 31 38 33 32 38 36 3c  ="right">183286<
87c0: 2f 74 64 3e 3c 74 64 20 61 6c 69 67 6e 3d 22 72  /td><td align="r
87d0: 69 67 68 74 22 3e 31 37 38 37 33 31 3c 2f 74 64  ight">178731</td
87e0: 3e 3c 74 64 20 61 6c 69 67 6e 3d 22 72 69 67 68  ><td align="righ
87f0: 74 22 3e 33 30 30 2e 39 31 32 32 30 38 3c 2f 74  t">300.912208</t
8800: 64 3e 3c 74 64 3e 42 4c 4f 42 20 73 7a 3d 32 37  d><td>BLOB sz=27
8810: 32 20 47 45 4f 4d 45 54 52 59 3c 2f 74 64 3e 3c  2 GEOMETRY</td><
8820: 74 64 3e 4e 55 4c 4c 3c 2f 74 64 3e 0d 0a 3c 2f  td>NULL</td>..</
8830: 74 72 3e 0d 0a 3c 74 72 3e 0d 0a 3c 74 64 20 61  tr>..<tr>..<td a
8840: 6c 69 67 6e 3d 22 72 69 67 68 74 22 3e 31 3c 2f  lign="right">1</
8850: 74 64 3e 3c 74 64 3e 4c 69 6e 6b 3c 2f 74 64 3e  td><td>Link</td>
8860: 3c 74 64 20 61 6c 69 67 6e 3d 22 72 69 67 68 74  <td align="right
8870: 22 3e 32 32 34 34 31 34 3c 2f 74 64 3e 3c 74 64  ">224414</td><td
8880: 20 61 6c 69 67 6e 3d 22 72 69 67 68 74 22 3e 31   align="right">1
8890: 38 33 32 38 36 3c 2f 74 64 3e 3c 74 64 20 61 6c  83286</td><td al
88a0: 69 67 6e 3d 22 72 69 67 68 74 22 3e 31 37 38 38  ign="right">1788
88b0: 38 30 3c 2f 74 64 3e 3c 74 64 20 61 6c 69 67 6e  80</td><td align
88c0: 3d 22 72 69 67 68 74 22 3e 31 33 36 2e 33 37 32  ="right">136.372
88d0: 30 35 37 3c 2f 74 64 3e 3c 74 64 3e 4e 55 4c 4c  057</td><td>NULL
88e0: 3c 2f 74 64 3e 3c 74 64 3e 56 49 41 20 4d 41 52  </td><td>VIA MAR
88f0: 47 41 52 49 54 4f 4e 45 3c 2f 74 64 3e 0d 0a 3c  GARITONE</td>..<
8900: 2f 74 72 3e 0d 0a 3c 74 64 20 61 6c 69 67 6e 3d  /tr>..<td align=
8910: 22 72 69 67 68 74 22 3e 32 3c 2f 74 64 3e 3c 74  "right">2</td><t
8920: 64 3e 4c 69 6e 6b 3c 2f 74 64 3e 3c 74 64 20 61  d>Link</td><td a
8930: 6c 69 67 6e 3d 22 72 69 67 68 74 22 3e 32 32 34  lign="right">224
8940: 34 34 36 3c 2f 74 64 3e 3c 74 64 20 61 6c 69 67  446</td><td alig
8950: 6e 3d 22 72 69 67 68 74 22 3e 31 37 38 38 38 30  n="right">178880
8960: 3c 2f 74 64 3e 3c 74 64 20 61 6c 69 67 6e 3d 22  </td><td align="
8970: 72 69 67 68 74 22 3e 31 38 32 38 38 35 3c 2f 74  right">182885</t
8980: 64 3e 3c 74 64 20 61 6c 69 67 6e 3d 22 72 69 67  d><td align="rig
8990: 68 74 22 3e 36 39 2e 37 32 37 37 32 36 3c 2f 74  ht">69.727726</t
89a0: 64 3e 3c 74 64 3e 4e 55 4c 4c 3c 2f 74 64 3e 3c  d><td>NULL</td><
89b0: 74 64 3e 56 49 41 20 4d 41 52 47 41 52 49 54 4f  td>VIA MARGARITO
89c0: 4e 45 3c 2f 74 64 3e 0d 0a 3c 2f 74 72 3e 0d 0a  NE</td>..</tr>..
89d0: 3c 74 72 3e 0d 0a 3c 74 64 20 61 6c 69 67 6e 3d  <tr>..<td align=
89e0: 22 72 69 67 68 74 22 3e 33 3c 2f 74 64 3e 3c 74  "right">3</td><t
89f0: 64 3e 4c 69 6e 6b 3c 2f 74 64 3e 3c 74 64 20 61  d>Link</td><td a
8a00: 6c 69 67 6e 3d 22 72 69 67 68 74 22 3e 32 32 34  lign="right">224
8a10: 30 31 34 3c 2f 74 64 3e 3c 74 64 20 61 6c 69 67  014</td><td alig
8a20: 6e 3d 22 72 69 67 68 74 22 3e 31 38 32 38 38 35  n="right">182885
8a30: 3c 2f 74 64 3e 3c 74 64 20 61 6c 69 67 6e 3d 22  </td><td align="
8a40: 72 69 67 68 74 22 3e 31 37 38 37 33 31 3c 2f 74  right">178731</t
8a50: 64 3e 3c 74 64 20 61 6c 69 67 6e 3d 22 72 69 67  d><td align="rig
8a60: 68 74 22 3e 39 34 2e 38 31 32 34 32 34 3c 2f 74  ht">94.812424</t
8a70: 64 3e 3c 74 64 3e 4e 55 4c 4c 3c 2f 74 64 3e 3c  d><td>NULL</td><
8a80: 74 64 3e 56 49 41 20 50 49 45 54 52 4f 20 41 52  td>VIA PIETRO AR
8a90: 45 54 49 4e 4f 3c 2f 74 64 3e 0d 0a 3c 2f 74 72  ETINO</td>..</tr
8aa0: 3e 0d 0a 3c 2f 74 61 62 6c 65 3e 0d 0a 3c 62 72  >..</table>..<br
8ab0: 3e 0d 0a 49 66 20 79 6f 75 20 72 65 6d 65 6d 62  >..If you rememb
8ac0: 65 72 2c 20 74 68 65 20 3c 62 3e 62 79 66 6f 6f  er, the <b>byfoo
8ad0: 74 3c 2f 62 3e 20 56 69 72 74 75 61 6c 52 6f 75  t</b> VirtualRou
8ae0: 74 69 6e 67 20 54 61 62 6c 65 20 68 61 73 20 6e  ting Table has n
8af0: 6f 20 3c 62 3e 6f 6e 65 2d 77 61 79 73 3c 2f 62  o <b>one-ways</b
8b00: 3e 2c 20 61 6e 64 20 63 6f 6e 73 65 71 75 65 6e  >, and consequen
8b10: 74 6c 79 20 74 68 65 20 72 65 74 75 72 6e 20 70  tly the return p
8b20: 61 74 68 20 65 78 61 63 74 6c 79 20 63 6f 72 72  ath exactly corr
8b30: 65 73 70 6f 6e 64 73 20 74 6f 20 74 68 65 20 66  esponds to the f
8b40: 69 72 73 74 20 6f 6e 65 2c 20 65 78 63 65 70 74  irst one, except
8b50: 20 69 6e 20 74 68 61 74 20 61 6c 6c 20 64 69 72   in that all dir
8b60: 65 63 74 69 6f 6e 73 20 61 72 65 20 6e 6f 77 20  ections are now 
8b70: 72 65 76 65 72 73 65 64 2e 0d 0a 3c 62 72 3e 3c  reversed...<br><
8b80: 62 72 3e 3c 62 72 3e 0d 0a 4e 6f 77 20 79 6f 75  br><br>..Now you
8b90: 27 6c 6c 20 67 6f 20 74 6f 20 74 65 73 74 20 74  'll go to test t
8ba0: 68 65 20 73 61 6d 65 20 63 6f 6e 6e 65 63 74 69  he same connecti
8bb0: 6f 6e 73 2c 20 62 75 74 20 74 68 69 73 20 74 69  ons, but this ti
8bc0: 6d 65 20 79 6f 75 27 6c 6c 20 74 61 72 67 65 74  me you'll target
8bd0: 20 74 68 65 20 3c 62 3e 62 79 63 61 72 3c 2f 62   the <b>bycar</b
8be0: 3e 20 56 69 72 74 75 61 6c 52 6f 75 74 69 6e 67  > VirtualRouting
8bf0: 20 54 61 62 6c 65 20 74 68 61 74 20 66 75 6c 6c   Table that full
8c00: 79 20 73 75 70 70 6f 72 74 73 20 3c 62 3e 6f 6e  y supports <b>on
8c10: 65 2d 77 61 79 73 3c 2f 62 3e 3a 0d 0a 3c 76 65  e-ways</b>:..<ve
8c20: 72 62 61 74 69 6d 3e 0d 0a 53 45 4c 45 43 54 20  rbatim>..SELECT 
8c30: 52 6f 75 74 65 52 6f 77 2c 20 52 6f 6c 65 2c 20  RouteRow, Role, 
8c40: 4c 69 6e 6b 52 6f 77 69 64 2c 20 4e 6f 64 65 46  LinkRowid, NodeF
8c50: 72 6f 6d 2c 20 4e 6f 64 65 54 6f 2c 20 43 6f 73  rom, NodeTo, Cos
8c60: 74 2c 20 47 65 6f 6d 65 74 72 79 2c 20 4e 61 6d  t, Geometry, Nam
8c70: 65 0d 0a 46 52 4f 4d 20 62 79 63 61 72 0d 0a 57  e..FROM bycar..W
8c80: 48 45 52 45 20 4e 6f 64 65 46 72 6f 6d 20 3d 20  HERE NodeFrom = 
8c90: 31 37 38 37 33 31 20 41 4e 44 20 4e 6f 64 65 54  178731 AND NodeT
8ca0: 6f 20 3d 20 31 38 33 32 38 36 3b 0d 0a 3c 2f 76  o = 183286;..</v
8cb0: 65 72 62 61 74 69 6d 3e 0d 0a 3c 74 61 62 6c 65  erbatim>..<table
8cc0: 20 62 6f 72 64 65 72 3d 22 31 22 20 62 67 63 6f   border="1" bgco
8cd0: 6c 6f 72 3d 22 23 66 66 66 66 63 66 22 20 63 65  lor="#ffffcf" ce
8ce0: 6c 6c 73 70 61 63 69 6e 67 3d 22 34 22 20 63 65  llspacing="4" ce
8cf0: 6c 6c 70 61 64 64 69 6e 67 3d 22 36 22 3e 0d 0a  llpadding="6">..
8d00: 3c 74 72 3e 3c 74 68 20 62 67 63 6f 6c 6f 72 3d  <tr><th bgcolor=
8d10: 22 23 64 30 64 30 61 30 22 3e 52 6f 75 74 65 52  "#d0d0a0">RouteR
8d20: 6f 77 3c 2f 74 68 3e 3c 74 68 20 62 67 63 6f 6c  ow</th><th bgcol
8d30: 6f 72 3d 22 23 64 30 64 30 61 30 22 3e 52 6f 6c  or="#d0d0a0">Rol
8d40: 65 3c 2f 74 68 3e 3c 74 68 20 62 67 63 6f 6c 6f  e</th><th bgcolo
8d50: 72 3d 22 23 64 30 64 30 61 30 22 3e 4c 69 6e 6b  r="#d0d0a0">Link
8d60: 52 6f 77 69 64 3c 2f 74 68 3e 3c 74 68 20 62 67  Rowid</th><th bg
8d70: 63 6f 6c 6f 72 3d 22 23 64 30 64 30 61 30 22 3e  color="#d0d0a0">
8d80: 4e 6f 64 65 46 72 6f 6d 3c 2f 74 68 3e 3c 74 68  NodeFrom</th><th
8d90: 20 62 67 63 6f 6c 6f 72 3d 22 23 64 30 64 30 61   bgcolor="#d0d0a
8da0: 30 22 3e 4e 6f 64 65 54 6f 3c 2f 74 68 3e 3c 74  0">NodeTo</th><t
8db0: 68 20 62 67 63 6f 6c 6f 72 3d 22 23 64 30 64 30  h bgcolor="#d0d0
8dc0: 61 30 22 3e 43 6f 73 74 3c 2f 74 68 3e 3c 74 68  a0">Cost</th><th
8dd0: 20 62 67 63 6f 6c 6f 72 3d 22 23 64 30 64 30 61   bgcolor="#d0d0a
8de0: 30 22 3e 47 65 6f 6d 65 74 72 79 3c 2f 74 68 3e  0">Geometry</th>
8df0: 3c 74 68 20 62 67 63 6f 6c 6f 72 3d 22 23 64 30  <th bgcolor="#d0
8e00: 64 30 61 30 22 3e 4e 61 6d 65 3c 2f 74 68 3e 3c  d0a0">Name</th><
8e10: 2f 74 72 3e 0d 0a 3c 74 72 3e 0d 0a 3c 74 64 20  /tr>..<tr>..<td 
8e20: 61 6c 69 67 6e 3d 22 72 69 67 68 74 22 3e 30 3c  align="right">0<
8e30: 2f 74 64 3e 3c 74 64 3e 52 6f 75 74 65 3c 2f 74  /td><td>Route</t
8e40: 64 3e 3c 74 64 3e 4e 55 4c 4c 3c 2f 74 64 3e 3c  d><td>NULL</td><
8e50: 74 64 20 61 6c 69 67 6e 3d 22 72 69 67 68 74 22  td align="right"
8e60: 3e 31 37 38 37 33 31 3c 2f 74 64 3e 3c 74 64 20  >178731</td><td 
8e70: 61 6c 69 67 6e 3d 22 72 69 67 68 74 22 3e 31 38  align="right">18
8e80: 33 32 38 36 3c 2f 74 64 3e 3c 74 64 20 61 6c 69  3286</td><td ali
8e90: 67 6e 3d 22 72 69 67 68 74 22 3e 31 30 31 2e 38  gn="right">101.8
8ea0: 31 35 35 35 32 3c 2f 74 64 3e 3c 74 64 3e 42 4c  15552</td><td>BL
8eb0: 4f 42 20 73 7a 3d 32 30 33 32 20 47 45 4f 4d 45  OB sz=2032 GEOME
8ec0: 54 52 59 3c 2f 74 64 3e 3c 74 64 3e 4e 55 4c 4c  TRY</td><td>NULL
8ed0: 3c 2f 74 64 3e 0d 0a 3c 2f 74 72 3e 0d 0a 3c 74  </td>..</tr>..<t
8ee0: 72 3e 0d 0a 3c 74 64 20 61 6c 69 67 6e 3d 22 72  r>..<td align="r
8ef0: 69 67 68 74 22 3e 31 3c 2f 74 64 3e 3c 74 64 3e  ight">1</td><td>
8f00: 4c 69 6e 6b 3c 2f 74 64 3e 3c 74 64 20 61 6c 69  Link</td><td ali
8f10: 67 6e 3d 22 72 69 67 68 74 22 3e 32 32 34 30 31  gn="right">22401
8f20: 34 3c 2f 74 64 3e 3c 74 64 20 61 6c 69 67 6e 3d  4</td><td align=
8f30: 22 72 69 67 68 74 22 3e 31 37 38 37 33 31 3c 2f  "right">178731</
8f40: 74 64 3e 3c 74 64 20 61 6c 69 67 6e 3d 22 72 69  td><td align="ri
8f50: 67 68 74 22 3e 31 38 32 38 38 35 3c 2f 74 64 3e  ght">182885</td>
8f60: 3c 74 64 20 61 6c 69 67 6e 3d 22 72 69 67 68 74  <td align="right
8f70: 22 3e 31 33 2e 31 32 37 38 37 34 3c 2f 74 64 3e  ">13.127874</td>
8f80: 3c 74 64 3e 4e 55 4c 4c 3c 2f 74 64 3e 3c 74 64  <td>NULL</td><td
8f90: 3e 56 49 41 20 50 49 45 54 52 4f 20 41 52 45 54  >VIA PIETRO ARET
8fa0: 49 4e 4f 3c 2f 74 64 3e 0d 0a 3c 2f 74 72 3e 0d  INO</td>..</tr>.
8fb0: 0a 3c 74 72 3e 0d 0a 3c 74 64 20 61 6c 69 67 6e  .<tr>..<td align
8fc0: 3d 22 72 69 67 68 74 22 3e 32 3c 2f 74 64 3e 3c  ="right">2</td><
8fd0: 74 64 3e 4c 69 6e 6b 3c 2f 74 64 3e 3c 74 64 20  td>Link</td><td 
8fe0: 61 6c 69 67 6e 3d 22 72 69 67 68 74 22 3e 32 32  align="right">22
8ff0: 34 34 34 36 3c 2f 74 64 3e 3c 74 64 20 61 6c 69  4446</td><td ali
9000: 67 6e 3d 22 72 69 67 68 74 22 3e 31 38 32 38 38  gn="right">18288
9010: 35 3c 2f 74 64 3e 3c 74 64 20 61 6c 69 67 6e 3d  5</td><td align=
9020: 22 72 69 67 68 74 22 3e 31 37 38 38 38 30 3c 2f  "right">178880</
9030: 74 64 3e 3c 74 64 20 61 6c 69 67 6e 3d 22 72 69  td><td align="ri
9040: 67 68 74 22 3e 39 2e 36 35 34 36 30 38 3c 2f 74  ght">9.654608</t
9050: 64 3e 3c 74 64 3e 4e 55 4c 4c 3c 2f 74 64 3e 3c  d><td>NULL</td><
9060: 74 64 3e 56 49 41 20 4d 41 52 47 41 52 49 54 4f  td>VIA MARGARITO
9070: 4e 45 3c 2f 74 64 3e 0d 0a 3c 2f 74 72 3e 0d 0a  NE</td>..</tr>..
9080: 3c 74 72 3e 0d 0a 3c 74 64 20 61 6c 69 67 6e 3d  <tr>..<td align=
9090: 22 72 69 67 68 74 22 3e 33 3c 2f 74 64 3e 3c 74  "right">3</td><t
90a0: 64 3e 4c 69 6e 6b 3c 2f 74 64 3e 3c 74 64 20 61  d>Link</td><td a
90b0: 6c 69 67 6e 3d 22 72 69 67 68 74 22 3e 32 31 39  lign="right">219
90c0: 31 37 31 3c 2f 74 64 3e 3c 74 64 20 61 6c 69 67  171</td><td alig
90d0: 6e 3d 22 72 69 67 68 74 22 3e 31 37 38 38 38 30  n="right">178880
90e0: 3c 2f 74 64 3e 3c 74 64 20 61 6c 69 67 6e 3d 22  </td><td align="
90f0: 72 69 67 68 74 22 3e 31 37 38 37 33 32 3c 2f 74  right">178732</t
9100: 64 3e 3c 74 64 20 61 6c 69 67 6e 3d 22 72 69 67  d><td align="rig
9110: 68 74 22 3e 37 2e 38 30 39 39 35 32 3c 2f 74 64  ht">7.809952</td
9120: 3e 3c 74 64 3e 4e 55 4c 4c 3c 2f 74 64 3e 3c 74  ><td>NULL</td><t
9130: 64 3e 56 49 41 20 46 52 41 4e 43 45 53 43 4f 20  d>VIA FRANCESCO 
9140: 43 52 49 53 50 49 3c 2f 74 64 3e 0d 0a 3c 2f 74  CRISPI</td>..</t
9150: 72 3e 0d 0a 3c 74 72 3e 0d 0a 3c 74 64 20 61 6c  r>..<tr>..<td al
9160: 69 67 6e 3d 22 72 69 67 68 74 22 3e 34 3c 2f 74  ign="right">4</t
9170: 64 3e 3c 74 64 3e 4c 69 6e 6b 3c 2f 74 64 3e 3c  d><td>Link</td><
9180: 74 64 20 61 6c 69 67 6e 3d 22 72 69 67 68 74 22  td align="right"
9190: 3e 32 31 39 30 35 38 3c 2f 74 64 3e 3c 74 64 20  >219058</td><td 
91a0: 61 6c 69 67 6e 3d 22 72 69 67 68 74 22 3e 31 37  align="right">17
91b0: 38 37 33 32 3c 2f 74 64 3e 3c 74 64 20 61 6c 69  8732</td><td ali
91c0: 67 6e 3d 22 72 69 67 68 74 22 3e 31 37 38 37 35  gn="right">17875
91d0: 34 3c 2f 74 64 3e 3c 74 64 20 61 6c 69 67 6e 3d  4</td><td align=
91e0: 22 72 69 67 68 74 22 3e 31 32 2e 34 34 35 36 32  "right">12.44562
91f0: 36 3c 2f 74 64 3e 3c 74 64 3e 4e 55 4c 4c 3c 2f  6</td><td>NULL</
9200: 74 64 3e 3c 74 64 3e 56 49 41 20 46 52 41 4e 43  td><td>VIA FRANC
9210: 45 53 43 4f 20 43 52 49 53 50 49 3c 2f 74 64 3e  ESCO CRISPI</td>
9220: 0d 0a 3c 2f 74 72 3e 0d 0a 3c 74 72 3e 0d 0a 3c  ..</tr>..<tr>..<
9230: 74 64 20 61 6c 69 67 6e 3d 22 72 69 67 68 74 22  td align="right"
9240: 3e 35 3c 2f 74 64 3e 3c 74 64 3e 4c 69 6e 6b 3c  >5</td><td>Link<
9250: 2f 74 64 3e 3c 74 64 20 61 6c 69 67 6e 3d 22 72  /td><td align="r
9260: 69 67 68 74 22 3e 32 32 35 38 38 38 3c 2f 74 64  ight">225888</td
9270: 3e 3c 74 64 20 61 6c 69 67 6e 3d 22 72 69 67 68  ><td align="righ
9280: 74 22 3e 31 37 38 37 35 34 3c 2f 74 64 3e 3c 74  t">178754</td><t
9290: 64 20 61 6c 69 67 6e 3d 22 72 69 67 68 74 22 3e  d align="right">
92a0: 31 38 33 34 36 31 3c 2f 74 64 3e 3c 74 64 20 61  183461</td><td a
92b0: 6c 69 67 6e 3d 22 72 69 67 68 74 22 3e 31 2e 35  lign="right">1.5
92c0: 39 39 38 36 35 3c 2f 74 64 3e 3c 74 64 3e 4e 55  99865</td><td>NU
92d0: 4c 4c 3c 2f 74 64 3e 3c 74 64 3e 56 49 41 20 46  LL</td><td>VIA F
92e0: 52 41 4e 43 45 53 43 4f 20 43 52 49 53 50 49 3c  RANCESCO CRISPI<
92f0: 2f 74 64 3e 0d 0a 3c 2f 74 72 3e 0d 0a 3c 74 72  /td>..</tr>..<tr
9300: 3e 0d 0a 3c 74 64 20 61 6c 69 67 6e 3d 22 72 69  >..<td align="ri
9310: 67 68 74 22 3e 36 3c 2f 74 64 3e 3c 74 64 3e 4c  ght">6</td><td>L
9320: 69 6e 6b 3c 2f 74 64 3e 3c 74 64 20 61 6c 69 67  ink</td><td alig
9330: 6e 3d 22 72 69 67 68 74 22 3e 32 32 35 38 38 37  n="right">225887
9340: 3c 2f 74 64 3e 3c 74 64 20 61 6c 69 67 6e 3d 22  </td><td align="
9350: 72 69 67 68 74 22 3e 31 38 33 34 36 31 3c 2f 74  right">183461</t
9360: 64 3e 3c 74 64 20 61 6c 69 67 6e 3d 22 72 69 67  d><td align="rig
9370: 68 74 22 3e 31 38 32 38 30 30 3c 2f 74 64 3e 3c  ht">182800</td><
9380: 74 64 20 61 6c 69 67 6e 3d 22 72 69 67 68 74 22  td align="right"
9390: 3e 33 2e 33 30 30 35 39 30 3c 2f 74 64 3e 3c 74  >3.300590</td><t
93a0: 64 3e 4e 55 4c 4c 3c 2f 74 64 3e 3c 74 64 3e 56  d>NULL</td><td>V
93b0: 49 41 20 46 52 41 4e 43 45 53 43 4f 20 43 52 49  IA FRANCESCO CRI
93c0: 53 50 49 3c 2f 74 64 3e 0d 0a 3c 2f 74 72 3e 0d  SPI</td>..</tr>.
93d0: 0a 3c 74 72 3e 0d 0a 3c 74 64 20 61 6c 69 67 6e  .<tr>..<td align
93e0: 3d 22 72 69 67 68 74 22 3e 37 3c 2f 74 64 3e 3c  ="right">7</td><
93f0: 74 64 3e 4c 69 6e 6b 3c 2f 74 64 3e 3c 74 64 20  td>Link</td><td 
9400: 61 6c 69 67 6e 3d 22 72 69 67 68 74 22 3e 32 32  align="right">22
9410: 33 39 33 35 3c 2f 74 64 3e 3c 74 64 20 61 6c 69  3935</td><td ali
9420: 67 6e 3d 22 72 69 67 68 74 22 3e 31 38 32 38 30  gn="right">18280
9430: 30 3c 2f 74 64 3e 3c 74 64 20 61 6c 69 67 6e 3d  0</td><td align=
9440: 22 72 69 67 68 74 22 3e 31 38 32 37 39 39 3c 2f  "right">182799</
9450: 74 64 3e 3c 74 64 20 61 6c 69 67 6e 3d 22 72 69  td><td align="ri
9460: 67 68 74 22 3e 36 2e 36 38 38 37 38 36 3c 2f 74  ght">6.688786</t
9470: 64 3e 3c 74 64 3e 4e 55 4c 4c 3c 2f 74 64 3e 3c  d><td>NULL</td><
9480: 74 64 3e 56 49 41 4c 45 20 4c 55 43 41 20 53 49  td>VIALE LUCA SI
9490: 47 4e 4f 52 45 4c 4c 49 3c 2f 74 64 3e 0d 0a 3c  GNORELLI</td>..<
94a0: 2f 74 72 3e 0d 0a 3c 74 72 3e 0d 0a 3c 74 64 20  /tr>..<tr>..<td 
94b0: 61 6c 69 67 6e 3d 22 72 69 67 68 74 22 3e 38 3c  align="right">8<
94c0: 2f 74 64 3e 3c 74 64 3e 4c 69 6e 6b 3c 2f 74 64  /td><td>Link</td
94d0: 3e 3c 74 64 20 61 6c 69 67 6e 3d 22 72 69 67 68  ><td align="righ
94e0: 74 22 3e 32 32 36 30 33 38 3c 2f 74 64 3e 3c 74  t">226038</td><t
94f0: 64 20 61 6c 69 67 6e 3d 22 72 69 67 68 74 22 3e  d align="right">
9500: 31 38 32 37 39 39 3c 2f 74 64 3e 3c 74 64 20 61  182799</td><td a
9510: 6c 69 67 6e 3d 22 72 69 67 68 74 22 3e 31 38 33  lign="right">183
9520: 34 35 36 3c 2f 74 64 3e 3c 74 64 20 61 6c 69 67  456</td><td alig
9530: 6e 3d 22 72 69 67 68 74 22 3e 31 2e 32 39 34 30  n="right">1.2940
9540: 31 37 3c 2f 74 64 3e 3c 74 64 3e 4e 55 4c 4c 3c  17</td><td>NULL<
9550: 2f 74 64 3e 3c 74 64 3e 56 49 41 4c 45 20 4c 55  /td><td>VIALE LU
9560: 43 41 20 53 49 47 4e 4f 52 45 4c 4c 49 3c 2f 74  CA SIGNORELLI</t
9570: 64 3e 0d 0a 3c 2f 74 72 3e 0d 0a 3c 74 72 3e 0d  d>..</tr>..<tr>.
9580: 0a 3c 74 64 20 61 6c 69 67 6e 3d 22 72 69 67 68  .<td align="righ
9590: 74 22 3e 39 3c 2f 74 64 3e 3c 74 64 3e 4c 69 6e  t">9</td><td>Lin
95a0: 6b 3c 2f 74 64 3e 3c 74 64 20 61 6c 69 67 6e 3d  k</td><td align=
95b0: 22 72 69 67 68 74 22 3e 32 32 35 38 33 32 3c 2f  "right">225832</
95c0: 74 64 3e 3c 74 64 20 61 6c 69 67 6e 3d 22 72 69  td><td align="ri
95d0: 67 68 74 22 3e 31 38 33 34 35 36 3c 2f 74 64 3e  ght">183456</td>
95e0: 3c 74 64 20 61 6c 69 67 6e 3d 22 72 69 67 68 74  <td align="right
95f0: 22 3e 31 38 33 34 34 34 3c 2f 74 64 3e 3c 74 64  ">183444</td><td
9600: 20 61 6c 69 67 6e 3d 22 72 69 67 68 74 22 3e 32   align="right">2
9610: 2e 33 38 35 34 38 36 3c 2f 74 64 3e 3c 74 64 3e  .385486</td><td>
9620: 4e 55 4c 4c 3c 2f 74 64 3e 3c 74 64 3e 56 49 41  NULL</td><td>VIA
9630: 4c 45 20 4c 55 43 41 20 53 49 47 4e 4f 52 45 4c  LE LUCA SIGNOREL
9640: 4c 49 3c 2f 74 64 3e 0d 0a 3c 2f 74 72 3e 0d 0a  LI</td>..</tr>..
9650: 3c 74 72 3e 0d 0a 3c 74 64 20 61 6c 69 67 6e 3d  <tr>..<td align=
9660: 22 72 69 67 68 74 22 3e 31 30 3c 2f 74 64 3e 3c  "right">10</td><
9670: 74 64 3e 4c 69 6e 6b 3c 2f 74 64 3e 3c 74 64 20  td>Link</td><td 
9680: 61 6c 69 67 6e 3d 22 72 69 67 68 74 22 3e 32 32  align="right">22
9690: 35 38 33 31 3c 2f 74 64 3e 3c 74 64 20 61 6c 69  5831</td><td ali
96a0: 67 6e 3d 22 72 69 67 68 74 22 3e 31 38 33 34 34  gn="right">18344
96b0: 34 3c 2f 74 64 3e 3c 74 64 20 61 6c 69 67 6e 3d  4</td><td align=
96c0: 22 72 69 67 68 74 22 3e 31 38 33 35 35 34 3c 2f  "right">183554</
96d0: 74 64 3e 3c 74 64 20 61 6c 69 67 6e 3d 22 72 69  td><td align="ri
96e0: 67 68 74 22 3e 33 2e 31 36 30 36 36 32 3c 2f 74  ght">3.160662</t
96f0: 64 3e 3c 74 64 3e 4e 55 4c 4c 3c 2f 74 64 3e 3c  d><td>NULL</td><
9700: 74 64 3e 56 49 41 4c 45 20 4c 55 43 41 20 53 49  td>VIALE LUCA SI
9710: 47 4e 4f 52 45 4c 4c 49 3c 2f 74 64 3e 0d 0a 3c  GNORELLI</td>..<
9720: 2f 74 72 3e 0d 0a 3c 74 72 3e 0d 0a 3c 74 64 20  /tr>..<tr>..<td 
9730: 61 6c 69 67 6e 3d 22 72 69 67 68 74 22 3e 31 31  align="right">11
9740: 3c 2f 74 64 3e 3c 74 64 3e 4c 69 6e 6b 3c 2f 74  </td><td>Link</t
9750: 64 3e 3c 74 64 20 61 6c 69 67 6e 3d 22 72 69 67  d><td align="rig
9760: 68 74 22 3e 32 32 35 37 36 35 3c 2f 74 64 3e 3c  ht">225765</td><
9770: 74 64 20 61 6c 69 67 6e 3d 22 72 69 67 68 74 22  td align="right"
9780: 3e 31 38 33 35 35 34 3c 2f 74 64 3e 3c 74 64 20  >183554</td><td 
9790: 61 6c 69 67 6e 3d 22 72 69 67 68 74 22 3e 31 38  align="right">18
97a0: 33 39 35 34 3c 2f 74 64 3e 3c 74 64 20 61 6c 69  3954</td><td ali
97b0: 67 6e 3d 22 72 69 67 68 74 22 3e 37 2e 34 36 39  gn="right">7.469
97c0: 39 31 37 3c 2f 74 64 3e 3c 74 64 3e 4e 55 4c 4c  917</td><td>NULL
97d0: 3c 2f 74 64 3e 3c 74 64 3e 56 49 41 4c 45 20 4c  </td><td>VIALE L
97e0: 55 43 41 20 53 49 47 4e 4f 52 45 4c 4c 49 3c 2f  UCA SIGNORELLI</
97f0: 74 64 3e 0d 0a 3c 2f 74 72 3e 0d 0a 3c 74 72 3e  td>..</tr>..<tr>
9800: 0d 0a 3c 74 64 20 61 6c 69 67 6e 3d 22 72 69 67  ..<td align="rig
9810: 68 74 22 3e 31 32 3c 2f 74 64 3e 3c 74 64 3e 4c  ht">12</td><td>L
9820: 69 6e 6b 3c 2f 74 64 3e 3c 74 64 20 61 6c 69 67  ink</td><td alig
9830: 6e 3d 22 72 69 67 68 74 22 3e 32 32 35 37 36 36  n="right">225766
9840: 3c 2f 74 64 3e 3c 74 64 20 61 6c 69 67 6e 3d 22  </td><td align="
9850: 72 69 67 68 74 22 3e 31 38 33 39 35 34 3c 2f 74  right">183954</t
9860: 64 3e 3c 74 64 20 61 6c 69 67 6e 3d 22 72 69 67  d><td align="rig
9870: 68 74 22 3e 31 38 33 39 30 35 3c 2f 74 64 3e 3c  ht">183905</td><
9880: 74 64 20 61 6c 69 67 6e 3d 22 72 69 67 68 74 22  td align="right"
9890: 3e 33 2e 32 33 36 33 38 39 3c 2f 74 64 3e 3c 74  >3.236389</td><t
98a0: 64 3e 4e 55 4c 4c 3c 2f 74 64 3e 3c 74 64 3e 56  d>NULL</td><td>V
98b0: 49 41 4c 45 20 4c 55 43 41 20 53 49 47 4e 4f 52  IALE LUCA SIGNOR
98c0: 45 4c 4c 49 3c 2f 74 64 3e 0d 0a 3c 2f 74 72 3e  ELLI</td>..</tr>
98d0: 0d 0a 3c 74 72 3e 0d 0a 3c 74 64 20 61 6c 69 67  ..<tr>..<td alig
98e0: 6e 3d 22 72 69 67 68 74 22 3e 31 33 3c 2f 74 64  n="right">13</td
98f0: 3e 3c 74 64 3e 4c 69 6e 6b 3c 2f 74 64 3e 3c 74  ><td>Link</td><t
9900: 64 20 61 6c 69 67 6e 3d 22 72 69 67 68 74 22 3e  d align="right">
9910: 32 32 35 39 37 39 3c 2f 74 64 3e 3c 74 64 20 61  225979</td><td a
9920: 6c 69 67 6e 3d 22 72 69 67 68 74 22 3e 31 38 33  lign="right">183
9930: 39 30 35 3c 2f 74 64 3e 3c 74 64 20 61 6c 69 67  905</td><td alig
9940: 6e 3d 22 72 69 67 68 74 22 3e 31 38 33 36 32 36  n="right">183626
9950: 3c 2f 74 64 3e 3c 74 64 20 61 6c 69 67 6e 3d 22  </td><td align="
9960: 72 69 67 68 74 22 3e 31 33 2e 39 38 33 36 32 39  right">13.983629
9970: 3c 2f 74 64 3e 3c 74 64 3e 4e 55 4c 4c 3c 2f 74  </td><td>NULL</t
9980: 64 3e 3c 74 64 3e 53 54 52 41 44 41 20 53 45 4e  d><td>STRADA SEN
9990: 5a 41 20 4e 4f 4d 45 3c 2f 74 64 3e 0d 0a 3c 2f  ZA NOME</td>..</
99a0: 74 72 3e 0d 0a 3c 74 72 3e 0d 0a 3c 74 64 20 61  tr>..<tr>..<td a
99b0: 6c 69 67 6e 3d 22 72 69 67 68 74 22 3e 31 34 3c  lign="right">14<
99c0: 2f 74 64 3e 3c 74 64 3e 4c 69 6e 6b 3c 2f 74 64  /td><td>Link</td
99d0: 3e 3c 74 64 20 61 6c 69 67 6e 3d 22 72 69 67 68  ><td align="righ
99e0: 74 22 3e 32 32 34 39 30 35 3c 2f 74 64 3e 3c 74  t">224905</td><t
99f0: 64 20 61 6c 69 67 6e 3d 22 72 69 67 68 74 22 3e  d align="right">
9a00: 31 38 33 36 32 36 3c 2f 74 64 3e 3c 74 64 20 61  183626</td><td a
9a10: 6c 69 67 6e 3d 22 72 69 67 68 74 22 3e 31 38 33  lign="right">183
9a20: 31 32 38 3c 2f 74 64 3e 3c 74 64 20 61 6c 69 67  128</td><td alig
9a30: 6e 3d 22 72 69 67 68 74 22 3e 35 2e 36 32 37 33  n="right">5.6273
9a40: 35 38 3c 2f 74 64 3e 3c 74 64 3e 4e 55 4c 4c 3c  58</td><td>NULL<
9a50: 2f 74 64 3e 3c 74 64 3e 53 54 52 41 44 41 20 53  /td><td>STRADA S
9a60: 45 4e 5a 41 20 4e 4f 4d 45 3c 2f 74 64 3e 0d 0a  ENZA NOME</td>..
9a70: 3c 2f 74 72 3e 0d 0a 3c 74 72 3e 0d 0a 3c 74 64  </tr>..<tr>..<td
9a80: 20 61 6c 69 67 6e 3d 22 72 69 67 68 74 22 3e 31   align="right">1
9a90: 35 3c 2f 74 64 3e 3c 74 64 3e 4c 69 6e 6b 3c 2f  5</td><td>Link</
9aa0: 74 64 3e 3c 74 64 20 61 6c 69 67 6e 3d 22 72 69  td><td align="ri
9ab0: 67 68 74 22 3e 32 32 34 38 39 37 3c 2f 74 64 3e  ght">224897</td>
9ac0: 3c 74 64 20 61 6c 69 67 6e 3d 22 72 69 67 68 74  <td align="right
9ad0: 22 3e 31 38 33 31 32 38 3c 2f 74 64 3e 3c 74 64  ">183128</td><td
9ae0: 20 61 6c 69 67 6e 3d 22 72 69 67 68 74 22 3e 31   align="right">1
9af0: 38 33 32 38 36 3c 2f 74 64 3e 3c 74 64 20 61 6c  83286</td><td al
9b00: 69 67 6e 3d 22 72 69 67 68 74 22 3e 31 30 2e 30  ign="right">10.0
9b10: 33 30 37 39 32 3c 2f 74 64 3e 3c 74 64 3e 4e 55  30792</td><td>NU
9b20: 4c 4c 3c 2f 74 64 3e 3c 74 64 3e 56 49 41 20 4d  LL</td><td>VIA M
9b30: 41 52 47 41 52 49 54 4f 4e 45 3c 2f 74 64 3e 0d  ARGARITONE</td>.
9b40: 0a 3c 2f 74 72 3e 0d 0a 3c 2f 74 61 62 6c 65 3e  .</tr>..</table>
9b50: 0d 0a 3c 76 65 72 62 61 74 69 6d 3e 0d 0a 53 45  ..<verbatim>..SE
9b60: 4c 45 43 54 20 52 6f 75 74 65 52 6f 77 2c 20 52  LECT RouteRow, R
9b70: 6f 6c 65 2c 20 4c 69 6e 6b 52 6f 77 69 64 2c 20  ole, LinkRowid, 
9b80: 4e 6f 64 65 46 72 6f 6d 2c 20 4e 6f 64 65 54 6f  NodeFrom, NodeTo
9b90: 2c 20 43 6f 73 74 2c 20 47 65 6f 6d 65 74 72 79  , Cost, Geometry
9ba0: 2c 20 4e 61 6d 65 0d 0a 46 52 4f 4d 20 62 79 63  , Name..FROM byc
9bb0: 61 72 0d 0a 57 48 45 52 45 20 4e 6f 64 65 54 6f  ar..WHERE NodeTo
9bc0: 20 3d 20 31 37 38 37 33 31 20 41 4e 44 20 4e 6f   = 178731 AND No
9bd0: 64 65 46 72 6f 6d 20 3d 20 31 38 33 32 38 36 3b  deFrom = 183286;
9be0: 0d 0a 3c 2f 76 65 72 62 61 74 69 6d 3e 0d 0a 3c  ..</verbatim>..<
9bf0: 74 61 62 6c 65 20 62 6f 72 64 65 72 3d 22 31 22  table border="1"
9c00: 20 62 67 63 6f 6c 6f 72 3d 22 23 66 66 66 66 63   bgcolor="#ffffc
9c10: 66 22 20 63 65 6c 6c 73 70 61 63 69 6e 67 3d 22  f" cellspacing="
9c20: 34 22 20 63 65 6c 6c 70 61 64 64 69 6e 67 3d 22  4" cellpadding="
9c30: 36 22 3e 0d 0a 3c 74 72 3e 3c 74 68 20 62 67 63  6">..<tr><th bgc
9c40: 6f 6c 6f 72 3d 22 23 64 30 64 30 61 30 22 3e 52  olor="#d0d0a0">R
9c50: 6f 75 74 65 52 6f 77 3c 2f 74 68 3e 3c 74 68 20  outeRow</th><th 
9c60: 62 67 63 6f 6c 6f 72 3d 22 23 64 30 64 30 61 30  bgcolor="#d0d0a0
9c70: 22 3e 52 6f 6c 65 3c 2f 74 68 3e 3c 74 68 20 62  ">Role</th><th b
9c80: 67 63 6f 6c 6f 72 3d 22 23 64 30 64 30 61 30 22  gcolor="#d0d0a0"
9c90: 3e 4c 69 6e 6b 52 6f 77 69 64 3c 2f 74 68 3e 3c  >LinkRowid</th><
9ca0: 74 68 20 62 67 63 6f 6c 6f 72 3d 22 23 64 30 64  th bgcolor="#d0d
9cb0: 30 61 30 22 3e 4e 6f 64 65 46 72 6f 6d 3c 2f 74  0a0">NodeFrom</t
9cc0: 68 3e 3c 74 68 20 62 67 63 6f 6c 6f 72 3d 22 23  h><th bgcolor="#
9cd0: 64 30 64 30 61 30 22 3e 4e 6f 64 65 54 6f 3c 2f  d0d0a0">NodeTo</
9ce0: 74 68 3e 3c 74 68 20 62 67 63 6f 6c 6f 72 3d 22  th><th bgcolor="
9cf0: 23 64 30 64 30 61 30 22 3e 43 6f 73 74 3c 2f 74  #d0d0a0">Cost</t
9d00: 68 3e 3c 74 68 20 62 67 63 6f 6c 6f 72 3d 22 23  h><th bgcolor="#
9d10: 64 30 64 30 61 30 22 3e 47 65 6f 6d 65 74 72 79  d0d0a0">Geometry
9d20: 3c 2f 74 68 3e 3c 74 68 20 62 67 63 6f 6c 6f 72  </th><th bgcolor
9d30: 3d 22 23 64 30 64 30 61 30 22 3e 4e 61 6d 65 3c  ="#d0d0a0">Name<
9d40: 2f 74 68 3e 3c 2f 74 72 3e 0d 0a 3c 74 72 3e 0d  /th></tr>..<tr>.
9d50: 0a 3c 74 64 20 61 6c 69 67 6e 3d 22 72 69 67 68  .<td align="righ
9d60: 74 22 3e 30 3c 2f 74 64 3e 3c 74 64 3e 52 6f 75  t">0</td><td>Rou
9d70: 74 65 3c 2f 74 64 3e 3c 74 64 3e 4e 55 4c 4c 3c  te</td><td>NULL<
9d80: 2f 74 64 3e 3c 74 64 20 61 6c 69 67 6e 3d 22 72  /td><td align="r
9d90: 69 67 68 74 22 3e 31 38 33 32 38 36 3c 2f 74 64  ight">183286</td
9da0: 3e 3c 74 64 20 61 6c 69 67 6e 3d 22 72 69 67 68  ><td align="righ
9db0: 74 22 3e 31 37 38 37 33 31 3c 2f 74 64 3e 3c 74  t">178731</td><t
9dc0: 64 20 61 6c 69 67 6e 3d 22 72 69 67 68 74 22 3e  d align="right">
9dd0: 31 30 33 2e 33 30 35 32 35 39 3c 2f 74 64 3e 3c  103.305259</td><
9de0: 74 64 3e 42 4c 4f 42 20 73 7a 3d 39 34 34 20 47  td>BLOB sz=944 G
9df0: 45 4f 4d 45 54 52 59 3c 2f 74 64 3e 3c 74 64 3e  EOMETRY</td><td>
9e00: 4e 55 4c 4c 3c 2f 74 64 3e 0d 0a 3c 2f 74 72 3e  NULL</td>..</tr>
9e10: 0d 0a 3c 74 72 3e 0d 0a 3c 74 64 20 61 6c 69 67  ..<tr>..<td alig
9e20: 6e 3d 22 72 69 67 68 74 22 3e 31 3c 2f 74 64 3e  n="right">1</td>
9e30: 3c 74 64 3e 4c 69 6e 6b 3c 2f 74 64 3e 3c 74 64  <td>Link</td><td
9e40: 20 61 6c 69 67 6e 3d 22 72 69 67 68 74 22 3e 32   align="right">2
9e50: 32 34 34 31 34 3c 2f 74 64 3e 3c 74 64 20 61 6c  24414</td><td al
9e60: 69 67 6e 3d 22 72 69 67 68 74 22 3e 31 38 33 32  ign="right">1832
9e70: 38 36 3c 2f 74 64 3e 3c 74 64 20 61 6c 69 67 6e  86</td><td align
9e80: 3d 22 72 69 67 68 74 22 3e 31 37 38 38 38 30 3c  ="right">178880<
9e90: 2f 74 64 3e 3c 74 64 20 61 6c 69 67 6e 3d 22 72  /td><td align="r
9ea0: 69 67 68 74 22 3e 31 38 2e 38 38 32 32 38 35 3c  ight">18.882285<
9eb0: 2f 74 64 3e 3c 74 64 3e 4e 55 4c 4c 3c 2f 74 64  /td><td>NULL</td
9ec0: 3e 3c 74 64 3e 56 49 41 20 4d 41 52 47 41 52 49  ><td>VIA MARGARI
9ed0: 54 4f 4e 45 3c 2f 74 64 3e 0d 0a 3c 2f 74 72 3e  TONE</td>..</tr>
9ee0: 0d 0a 3c 74 72 3e 0d 0a 3c 74 64 20 61 6c 69 67  ..<tr>..<td alig
9ef0: 6e 3d 22 72 69 67 68 74 22 3e 32 3c 2f 74 64 3e  n="right">2</td>
9f00: 3c 74 64 3e 4c 69 6e 6b 3c 2f 74 64 3e 3c 74 64  <td>Link</td><td
9f10: 20 61 6c 69 67 6e 3d 22 72 69 67 68 74 22 3e 32   align="right">2
9f20: 31 39 31 37 31 3c 2f 74 64 3e 3c 74 64 20 61 6c  19171</td><td al
9f30: 69 67 6e 3d 22 72 69 67 68 74 22 3e 31 37 38 38  ign="right">1788
9f40: 38 30 3c 2f 74 64 3e 3c 74 64 20 61 6c 69 67 6e  80</td><td align
9f50: 3d 22 72 69 67 68 74 22 3e 31 37 38 37 33 32 3c  ="right">178732<
9f60: 2f 74 64 3e 3c 74 64 20 61 6c 69 67 6e 3d 22 72  /td><td align="r
9f70: 69 67 68 74 22 3e 37 2e 38 30 39 39 35 32 3c 2f  ight">7.809952</
9f80: 74 64 3e 3c 74 64 3e 4e 55 4c 4c 3c 2f 74 64 3e  td><td>NULL</td>
9f90: 3c 74 64 3e 56 49 41 20 46 52 41 4e 43 45 53 43  <td>VIA FRANCESC
9fa0: 4f 20 43 52 49 53 50 49 3c 2f 74 64 3e 0d 0a 3c  O CRISPI</td>..<
9fb0: 2f 74 72 3e 0d 0a 3c 74 72 3e 0d 0a 3c 74 64 20  /tr>..<tr>..<td 
9fc0: 61 6c 69 67 6e 3d 22 72 69 67 68 74 22 3e 33 3c  align="right">3<
9fd0: 2f 74 64 3e 3c 74 64 3e 4c 69 6e 6b 3c 2f 74 64  /td><td>Link</td
9fe0: 3e 3c 74 64 20 61 6c 69 67 6e 3d 22 72 69 67 68  ><td align="righ
9ff0: 74 22 3e 32 31 39 30 35 38 3c 2f 74 64 3e 3c 74  t">219058</td><t
a000: 64 20 61 6c 69 67 6e 3d 22 72 69 67 68 74 22 3e  d align="right">
a010: 31 37 38 37 33 32 3c 2f 74 64 3e 3c 74 64 20 61  178732</td><td a
a020: 6c 69 67 6e 3d 22 72 69 67 68 74 22 3e 31 37 38  lign="right">178
a030: 37 35 34 3c 2f 74 64 3e 3c 74 64 20 61 6c 69 67  754</td><td alig
a040: 6e 3d 22 72 69 67 68 74 22 3e 31 32 2e 34 34 35  n="right">12.445
a050: 36 32 36 3c 2f 74 64 3e 3c 74 64 3e 4e 55 4c 4c  626</td><td>NULL
a060: 3c 2f 74 64 3e 3c 74 64 3e 56 49 41 20 46 52 41  </td><td>VIA FRA
a070: 4e 43 45 53 43 4f 20 43 52 49 53 50 49 3c 2f 74  NCESCO CRISPI</t
a080: 64 3e 0d 0a 3c 2f 74 72 3e 0d 0a 3c 74 72 3e 0d  d>..</tr>..<tr>.
a090: 0a 3c 74 64 20 61 6c 69 67 6e 3d 22 72 69 67 68  .<td align="righ
a0a0: 74 22 3e 34 3c 2f 74 64 3e 3c 74 64 3e 4c 69 6e  t">4</td><td>Lin
a0b0: 6b 3c 2f 74 64 3e 3c 74 64 20 61 6c 69 67 6e 3d  k</td><td align=
a0c0: 22 72 69 67 68 74 22 3e 32 32 34 35 33 38 3c 2f  "right">224538</
a0d0: 74 64 3e 3c 74 64 20 61 6c 69 67 6e 3d 22 72 69  td><td align="ri
a0e0: 67 68 74 22 3e 31 37 38 37 35 34 3c 2f 74 64 3e  ght">178754</td>
a0f0: 3c 74 64 20 61 6c 69 67 6e 3d 22 72 69 67 68 74  <td align="right
a100: 22 3e 31 38 31 39 37 32 3c 2f 74 64 3e 3c 74 64  ">181972</td><td
a110: 20 61 6c 69 67 6e 3d 22 72 69 67 68 74 22 3e 37   align="right">7
a120: 2e 30 34 37 37 38 34 3c 2f 74 64 3e 3c 74 64 3e  .047784</td><td>
a130: 4e 55 4c 4c 3c 2f 74 64 3e 3c 74 64 3e 56 49 41  NULL</td><td>VIA
a140: 20 41 4e 54 4f 4e 49 4f 20 47 55 41 44 41 47 4e   ANTONIO GUADAGN
a150: 4f 4c 49 3c 2f 74 64 3e 0d 0a 3c 2f 74 72 3e 0d  OLI</td>..</tr>.
a160: 0a 3c 74 72 3e 0d 0a 3c 74 64 20 61 6c 69 67 6e  .<tr>..<td align
a170: 3d 22 72 69 67 68 74 22 3e 35 3c 2f 74 64 3e 3c  ="right">5</td><
a180: 74 64 3e 4c 69 6e 6b 3c 2f 74 64 3e 3c 74 64 20  td>Link</td><td 
a190: 61 6c 69 67 6e 3d 22 72 69 67 68 74 22 3e 32 32  align="right">22
a1a0: 32 35 37 35 3c 2f 74 64 3e 3c 74 64 20 61 6c 69  2575</td><td ali
a1b0: 67 6e 3d 22 72 69 67 68 74 22 3e 31 38 31 39 37  gn="right">18197
a1c0: 32 3c 2f 74 64 3e 3c 74 64 20 61 6c 69 67 6e 3d  2</td><td align=
a1d0: 22 72 69 67 68 74 22 3e 31 38 31 39 37 31 3c 2f  "right">181971</
a1e0: 74 64 3e 3c 74 64 20 61 6c 69 67 6e 3d 22 72 69  td><td align="ri
a1f0: 67 68 74 22 3e 31 2e 38 35 32 32 38 33 3c 2f 74  ght">1.852283</t
a200: 64 3e 3c 74 64 3e 4e 55 4c 4c 3c 2f 74 64 3e 3c  d><td>NULL</td><
a210: 74 64 3e 56 49 41 20 41 4e 54 4f 4e 49 4f 20 47  td>VIA ANTONIO G
a220: 55 41 44 41 47 4e 4f 4c 49 3c 2f 74 64 3e 0d 0a  UADAGNOLI</td>..
a230: 3c 2f 74 72 3e 0d 0a 3c 74 64 20 61 6c 69 67 6e  </tr>..<td align
a240: 3d 22 72 69 67 68 74 22 3e 36 3c 2f 74 64 3e 3c  ="right">6</td><
a250: 74 64 3e 4c 69 6e 6b 3c 2f 74 64 3e 3c 74 64 20  td>Link</td><td 
a260: 61 6c 69 67 6e 3d 22 72 69 67 68 74 22 3e 32 32  align="right">22
a270: 34 39 36 37 3c 2f 74 64 3e 3c 74 64 20 61 6c 69  4967</td><td ali
a280: 67 6e 3d 22 72 69 67 68 74 22 3e 31 38 31 39 37  gn="right">18197
a290: 31 3c 2f 74 64 3e 3c 74 64 20 61 6c 69 67 6e 3d  1</td><td align=
a2a0: 22 72 69 67 68 74 22 3e 31 38 32 38 39 31 3c 2f  "right">182891</
a2b0: 74 64 3e 3c 74 64 20 61 6c 69 67 6e 3d 22 72 69  td><td align="ri
a2c0: 67 68 74 22 3e 31 34 2e 32 37 33 31 38 35 3c 2f  ght">14.273185</
a2d0: 74 64 3e 3c 74 64 3e 4e 55 4c 4c 3c 2f 74 64 3e  td><td>NULL</td>
a2e0: 3c 74 64 3e 56 49 41 20 41 4e 54 4f 4e 49 4f 20  <td>VIA ANTONIO 
a2f0: 47 55 41 44 41 47 4e 4f 4c 49 3c 2f 74 64 3e 0d  GUADAGNOLI</td>.
a300: 0a 3c 2f 74 72 3e 0d 0a 3c 74 72 3e 0d 0a 3c 74  .</tr>..<tr>..<t
a310: 64 20 61 6c 69 67 6e 3d 22 72 69 67 68 74 22 3e  d align="right">
a320: 37 3c 2f 74 64 3e 3c 74 64 3e 4c 69 6e 6b 3c 2f  7</td><td>Link</
a330: 74 64 3e 3c 74 64 20 61 6c 69 67 6e 3d 22 72 69  td><td align="ri
a340: 67 68 74 22 3e 32 32 34 31 36 38 3c 2f 74 64 3e  ght">224168</td>
a350: 3c 74 64 20 61 6c 69 67 6e 3d 22 72 69 67 68 74  <td align="right
a360: 22 3e 31 38 32 38 39 31 3c 2f 74 64 3e 3c 74 64  ">182891</td><td
a370: 20 61 6c 69 67 6e 3d 22 72 69 67 68 74 22 3e 31   align="right">1
a380: 38 33 30 35 37 3c 2f 74 64 3e 3c 74 64 20 61 6c  83057</td><td al
a390: 69 67 6e 3d 22 72 69 67 68 74 22 3e 36 2e 36 34  ign="right">6.64
a3a0: 33 33 30 39 3c 2f 74 64 3e 3c 74 64 3e 4e 55 4c  3309</td><td>NUL
a3b0: 4c 3c 2f 74 64 3e 3c 74 64 3e 56 49 41 20 4d 41  L</td><td>VIA MA
a3c0: 43 41 4c 4c 45 27 3c 2f 74 64 3e 0d 0a 3c 2f 74  CALLE'</td>..</t
a3d0: 72 3e 0d 0a 3c 74 72 3e 0d 0a 3c 74 64 20 61 6c  r>..<tr>..<td al
a3e0: 69 67 6e 3d 22 72 69 67 68 74 22 3e 38 3c 2f 74  ign="right">8</t
a3f0: 64 3e 3c 74 64 3e 4c 69 6e 6b 3c 2f 74 64 3e 3c  d><td>Link</td><
a400: 74 64 20 61 6c 69 67 6e 3d 22 72 69 67 68 74 22  td align="right"
a410: 3e 32 32 34 31 36 37 3c 2f 74 64 3e 3c 74 64 20  >224167</td><td 
a420: 61 6c 69 67 6e 3d 22 72 69 67 68 74 22 3e 31 38  align="right">18
a430: 33 30 35 37 3c 2f 74 64 3e 3c 74 64 20 61 6c 69  3057</td><td ali
a440: 67 6e 3d 22 72 69 67 68 74 22 3e 31 38 33 30 35  gn="right">18305
a450: 36 3c 2f 74 64 3e 3c 74 64 20 61 6c 69 67 6e 3d  6</td><td align=
a460: 22 72 69 67 68 74 22 3e 33 2e 31 35 31 32 37 32  "right">3.151272
a470: 3c 2f 74 64 3e 3c 74 64 3e 4e 55 4c 4c 3c 2f 74  </td><td>NULL</t
a480: 64 3e 3c 74 64 3e 56 49 41 20 4d 41 43 41 4c 4c  d><td>VIA MACALL
a490: 45 27 3c 2f 74 64 3e 0d 0a 3c 2f 74 72 3e 0d 0a  E'</td>..</tr>..
a4a0: 3c 74 72 3e 0d 0a 3c 74 64 20 61 6c 69 67 6e 3d  <tr>..<td align=
a4b0: 22 72 69 67 68 74 22 3e 39 3c 2f 74 64 3e 3c 74  "right">9</td><t
a4c0: 64 3e 4c 69 6e 6b 3c 2f 74 64 3e 3c 74 64 20 61  d>Link</td><td a
a4d0: 6c 69 67 6e 3d 22 72 69 67 68 74 22 3e 32 32 34  lign="right">224
a4e0: 31 37 34 3c 2f 74 64 3e 3c 74 64 20 61 6c 69 67  174</td><td alig
a4f0: 6e 3d 22 72 69 67 68 74 22 3e 31 38 33 30 35 36  n="right">183056
a500: 3c 2f 74 64 3e 3c 74 64 20 61 6c 69 67 6e 3d 22  </td><td align="
a510: 72 69 67 68 74 22 3e 31 38 32 39 34 31 3c 2f 74  right">182941</t
a520: 64 3e 3c 74 64 20 61 6c 69 67 6e 3d 22 72 69 67  d><td align="rig
a530: 68 74 22 3e 37 2e 39 36 36 38 37 30 3c 2f 74 64  ht">7.966870</td
a540: 3e 3c 74 64 3e 4e 55 4c 4c 3c 2f 74 64 3e 3c 74  ><td>NULL</td><t
a550: 64 3e 56 49 41 20 52 4f 44 49 3c 2f 74 64 3e 0d  d>VIA RODI</td>.
a560: 0a 3c 2f 74 72 3e 0d 0a 3c 74 72 3e 0d 0a 3c 74  .</tr>..<tr>..<t
a570: 64 20 61 6c 69 67 6e 3d 22 72 69 67 68 74 22 3e  d align="right">
a580: 31 30 3c 2f 74 64 3e 3c 74 64 3e 4c 69 6e 6b 3c  10</td><td>Link<
a590: 2f 74 64 3e 3c 74 64 20 61 6c 69 67 6e 3d 22 72  /td><td align="r
a5a0: 69 67 68 74 22 3e 32 32 34 30 35 39 3c 2f 74 64  ight">224059</td
a5b0: 3e 3c 74 64 20 61 6c 69 67 6e 3d 22 72 69 67 68  ><td align="righ
a5c0: 74 22 3e 31 38 32 39 34 31 3c 2f 74 64 3e 3c 74  t">182941</td><t
a5d0: 64 20 61 6c 69 67 6e 3d 22 72 69 67 68 74 22 3e  d align="right">
a5e0: 31 38 32 30 30 31 3c 2f 74 64 3e 3c 74 64 20 61  182001</td><td a
a5f0: 6c 69 67 6e 3d 22 72 69 67 68 74 22 3e 36 2e 33  lign="right">6.3
a600: 39 33 37 34 37 3c 2f 74 64 3e 3c 74 64 3e 4e 55  93747</td><td>NU
a610: 4c 4c 3c 2f 74 64 3e 3c 74 64 3e 56 49 41 20 52  LL</td><td>VIA R
a620: 4f 44 49 3c 2f 74 64 3e 0d 0a 3c 2f 74 72 3e 0d  ODI</td>..</tr>.
a630: 0a 3c 74 72 3e 0d 0a 3c 74 64 20 61 6c 69 67 6e  .<tr>..<td align
a640: 3d 22 72 69 67 68 74 22 3e 31 31 3c 2f 74 64 3e  ="right">11</td>
a650: 3c 74 64 3e 4c 69 6e 6b 3c 2f 74 64 3e 3c 74 64  <td>Link</td><td
a660: 20 61 6c 69 67 6e 3d 22 72 69 67 68 74 22 3e 32   align="right">2
a670: 32 32 36 33 37 3c 2f 74 64 3e 3c 74 64 20 61 6c  22637</td><td al
a680: 69 67 6e 3d 22 72 69 67 68 74 22 3e 31 38 32 30  ign="right">1820
a690: 30 31 3c 2f 74 64 3e 3c 74 64 20 61 6c 69 67 6e  01</td><td align
a6a0: 3d 22 72 69 67 68 74 22 3e 31 38 32 30 30 30 3c  ="right">182000<
a6b0: 2f 74 64 3e 3c 74 64 20 61 6c 69 67 6e 3d 22 72  /td><td align="r
a6c0: 69 67 68 74 22 3e 32 2e 34 37 35 35 33 38 3c 2f  ight">2.475538</
a6d0: 74 64 3e 3c 74 64 3e 4e 55 4c 4c 3c 2f 74 64 3e  td><td>NULL</td>
a6e0: 3c 74 64 3e 56 49 41 20 50 49 45 54 52 4f 20 41  <td>VIA PIETRO A
a6f0: 52 45 54 49 4e 4f 3c 2f 74 64 3e 0d 0a 3c 2f 74  RETINO</td>..</t
a700: 72 3e 0d 0a 3c 74 72 3e 0d 0a 3c 74 64 20 61 6c  r>..<tr>..<td al
a710: 69 67 6e 3d 22 72 69 67 68 74 22 3e 31 32 3c 2f  ign="right">12</
a720: 74 64 3e 3c 74 64 3e 4c 69 6e 6b 3c 2f 74 64 3e  td><td>Link</td>
a730: 3c 74 64 20 61 6c 69 67 6e 3d 22 72 69 67 68 74  <td align="right
a740: 22 3e 32 32 32 36 33 36 3c 2f 74 64 3e 3c 74 64  ">222636</td><td
a750: 20 61 6c 69 67 6e 3d 22 72 69 67 68 74 22 3e 31   align="right">1
a760: 38 32 30 30 30 3c 2f 74 64 3e 3c 74 64 20 61 6c  82000</td><td al
a770: 69 67 6e 3d 22 72 69 67 68 74 22 3e 31 37 38 37  ign="right">1787
a780: 33 31 3c 2f 74 64 3e 3c 74 64 20 61 6c 69 67 6e  31</td><td align
a790: 3d 22 72 69 67 68 74 22 3e 31 34 2e 33 36 33 34  ="right">14.3634
a7a0: 30 38 3c 2f 74 64 3e 3c 74 64 3e 4e 55 4c 4c 3c  08</td><td>NULL<
a7b0: 2f 74 64 3e 3c 74 64 3e 56 49 41 20 50 49 45 54  /td><td>VIA PIET
a7c0: 52 4f 20 41 52 45 54 49 4e 4f 3c 2f 74 64 3e 0d  RO ARETINO</td>.
a7d0: 0a 3c 2f 74 72 3e 0d 0a 3c 2f 74 61 62 6c 65 3e  .</tr>..</table>
a7e0: 0d 0a 3c 62 72 3e 0d 0a 41 73 20 79 6f 75 20 63  ..<br>..As you c
a7f0: 61 6e 20 65 61 73 69 6c 79 20 6e 6f 74 69 63 65  an easily notice
a800: 2c 20 74 68 65 20 6f 70 74 69 6d 61 6c 20 70 61  , the optimal pa
a810: 74 68 73 20 72 65 74 75 72 6e 65 64 20 62 79 20  ths returned by 
a820: 74 68 65 20 3c 62 3e 62 79 63 61 72 3c 2f 62 3e  the <b>bycar</b>
a830: 20 56 69 72 74 75 61 6c 52 6f 75 74 69 6e 67 20   VirtualRouting 
a840: 54 61 62 6c 65 20 74 68 65 20 70 61 74 68 73 20  Table the paths 
a850: 69 6e 20 6f 70 70 6f 73 69 74 65 20 64 69 72 65  in opposite dire
a860: 63 74 69 6f 6e 73 20 73 74 72 6f 6e 67 6c 79 20  ctions strongly 
a870: 64 69 66 66 65 72 20 62 65 74 77 65 65 6e 20 74  differ between t
a880: 68 65 6d 2c 20 61 6e 64 20 62 6f 74 68 20 61 72  hem, and both ar
a890: 65 20 63 6f 6d 70 6c 65 74 65 6c 79 20 64 69 66  e completely dif
a8a0: 66 65 72 65 6e 74 20 66 72 6f 6d 20 74 68 65 20  ferent from the 
a8b0: 70 61 74 68 20 72 65 74 75 72 6e 65 64 20 62 79  path returned by
a8c0: 20 71 75 65 72 79 69 6e 67 20 3c 62 3e 62 79 66   querying <b>byf
a8d0: 6f 6f 74 3c 2f 62 3e 2e 3c 62 72 3e 0d 0a 41 20  oot</b>.<br>..A 
a8e0: 71 75 69 63 6b 20 67 6c 61 6e 63 65 20 61 74 20  quick glance at 
a8f0: 74 68 65 20 62 65 6c 6f 77 20 6d 61 70 20 77 69  the below map wi
a900: 6c 6c 20 73 75 72 65 6c 79 20 68 65 6c 70 20 74  ll surely help t
a910: 6f 20 75 6e 64 65 72 73 74 61 6e 64 20 62 65 74  o understand bet
a920: 74 65 72 20 77 68 61 74 27 73 20 72 65 61 6c 6c  ter what's reall
a930: 79 20 68 61 70 70 65 6e 69 6e 67 2e 3c 62 72 3e  y happening.<br>
a940: 0d 0a 54 68 69 73 20 69 73 20 61 20 63 65 6e 74  ..This is a cent
a950: 72 61 6c 20 61 72 65 61 20 6f 66 20 74 68 65 20  ral area of the 
a960: 74 6f 77 6e 20 6f 66 20 41 72 65 7a 7a 6f 20 61  town of Arezzo a
a970: 72 6f 75 6e 64 20 74 68 65 20 61 72 63 68 61 65  round the archae
a980: 6f 6c 6f 67 69 63 61 6c 20 72 75 69 6e 73 20 6f  ological ruins o
a990: 66 20 74 68 65 20 52 6f 6d 61 6e 20 41 6d 70 68  f the Roman Amph
a9a0: 69 74 68 65 61 74 65 72 3b 20 63 69 72 63 75 6c  itheater; circul
a9b0: 61 74 69 6e 67 20 62 79 20 63 61 72 20 69 73 20  ating by car is 
a9c0: 64 69 73 63 6f 75 72 61 67 65 64 20 61 6e 64 20  discouraged and 
a9d0: 69 73 20 73 75 62 6a 65 63 74 20 74 6f 20 6d 61  is subject to ma
a9e0: 6e 79 20 6f 6e 65 2d 77 61 79 20 72 65 73 74 72  ny one-way restr
a9f0: 69 63 74 69 6f 6e 73 2e 20 4e 6f 74 20 73 75 72  ictions. Not sur
aa00: 70 72 69 73 69 6e 67 6c 79 2c 20 6d 6f 76 69 6e  prisingly, movin
aa10: 67 20 62 79 20 66 6f 6f 74 20 69 73 20 74 68 65  g by foot is the
aa20: 20 66 61 73 74 65 72 20 6f 70 74 69 6f 6e 2e 0d   faster option..
aa30: 0a 3c 62 72 3e 3c 62 72 3e 0d 0a 3c 69 6d 67 20  .<br><br>..<img 
aa40: 73 72 63 3d 22 68 74 74 70 73 3a 2f 2f 77 77 77  src="https://www
aa50: 2e 67 61 69 61 2d 67 69 73 2e 69 74 2f 67 61 69  .gaia-gis.it/gai
aa60: 61 2d 73 69 6e 73 2f 72 6f 75 74 69 6e 67 2d 66  a-sins/routing-f
aa70: 69 67 73 2f 72 6f 75 74 69 6e 67 31 2e 6a 70 67  igs/routing1.jpg
aa80: 22 20 61 6c 74 3d 22 66 69 67 31 22 3e 0d 0a 3c  " alt="fig1">..<
aa90: 75 6c 3e 0d 0a 3c 6c 69 3e 79 65 6c 6c 6f 77 20  ul>..<li>yellow 
aaa0: 70 61 74 68 3a 20 70 65 64 65 73 74 72 69 61 6e  path: pedestrian
aab0: 73 3c 2f 6c 69 3e 0d 0a 3c 6c 69 3e 67 72 65 65  s</li>..<li>gree
aac0: 6e 20 70 61 74 68 3a 20 63 61 72 2c 20 64 69 72  n path: car, dir
aad0: 65 63 74 20 64 69 72 65 63 74 69 6f 6e 3c 2f 6c  ect direction</l
aae0: 69 3e 0d 0a 3c 6c 69 3e 72 65 64 20 70 61 74 68  i>..<li>red path
aaf0: 3a 20 63 61 72 2c 20 72 65 74 75 72 6e 20 64 69  : car, return di
ab00: 72 65 63 74 69 6f 6e 3c 2f 6c 69 3e 0d 0a 3c 2f  rection</li>..</
ab10: 75 6c 3e 0d 0a 3c 62 72 3e 0d 0a 3c 74 61 62 6c  ul>..<br>..<tabl
ab20: 65 20 62 67 63 6f 6c 6f 72 3d 22 23 63 30 66 66  e bgcolor="#c0ff
ab30: 63 30 22 20 63 65 6c 6c 73 70 61 63 69 6e 67 3d  c0" cellspacing=
ab40: 22 31 30 22 20 63 65 6c 6c 70 61 64 64 69 6e 67  "10" cellpadding
ab50: 3d 22 36 22 3e 3c 74 72 3e 3c 74 64 3e 0d 0a 3c  ="6"><tr><td>..<
ab60: 68 33 3e 4c 69 6e 65 73 74 72 69 6e 67 73 20 72  h3>Linestrings r
ab70: 65 74 75 72 6e 65 64 20 62 79 20 56 69 72 74 75  eturned by Virtu
ab80: 61 6c 52 6f 75 74 69 6e 67 3c 2f 68 33 3e 0d 0a  alRouting</h3>..
ab90: 41 6c 6c 20 4c 49 4e 45 53 54 52 49 4e 47 20 47  All LINESTRING G
aba0: 65 6f 6d 65 74 72 69 65 73 20 63 72 65 61 74 65  eometries create
abb0: 64 20 62 79 20 61 6e 79 20 56 69 72 74 75 61 6c  d by any Virtual
abc0: 52 6f 75 74 69 6e 67 20 77 69 6c 6c 20 61 6c 77  Routing will alw
abd0: 61 79 73 20 63 6f 6e 74 61 69 6e 20 3c 62 3e 4d  ays contain <b>M
abe0: 20 76 61 6c 75 65 73 3c 2f 62 3e 3a 0d 0a 3c 75   values</b>:..<u
abf0: 6c 3e 0d 0a 3c 6c 69 3e 69 66 20 74 68 65 20 75  l>..<li>if the u
ac00: 6e 64 65 72 6c 61 79 69 6e 67 20 4e 65 74 77 6f  nderlaying Netwo
ac10: 72 6b 27 73 20 47 65 6f 6d 65 74 72 69 65 73 20  rk's Geometries 
ac20: 61 72 65 20 3c 62 3e 58 59 3c 2f 62 3e 20 74 68  are <b>XY</b> th
ac30: 65 6e 20 3c 62 3e 58 59 4d 3c 2f 62 3e 20 4c 69  en <b>XYM</b> Li
ac40: 6e 65 73 74 72 69 6e 67 73 20 77 69 6c 6c 20 62  nestrings will b
ac50: 65 20 72 65 74 75 72 6e 65 64 2e 3c 2f 6c 69 3e  e returned.</li>
ac60: 0d 0a 3c 6c 69 3e 69 66 20 74 68 65 20 75 6e 64  ..<li>if the und
ac70: 65 72 6c 61 79 69 6e 67 20 4e 65 74 77 6f 72 6b  erlaying Network
ac80: 27 73 20 47 65 6f 6d 65 74 72 69 65 73 20 61 72  's Geometries ar
ac90: 65 20 3c 62 3e 58 59 5a 3c 2f 62 3e 20 74 68 65  e <b>XYZ</b> the
aca0: 6e 20 3c 62 3e 58 59 5a 4d 3c 2f 62 3e 20 4c 69  n <b>XYZM</b> Li
acb0: 6e 65 73 74 72 69 6e 67 73 20 77 69 6c 6c 20 62  nestrings will b
acc0: 65 20 72 65 74 75 72 6e 65 64 2e 3c 2f 6c 69 3e  e returned.</li>
acd0: 0d 0a 3c 6c 69 3e 69 66 20 74 68 65 20 75 6e 64  ..<li>if the und
ace0: 65 72 6c 61 79 69 6e 67 20 4e 65 74 77 6f 72 6b  erlaying Network
acf0: 27 73 20 47 65 6f 6d 65 74 72 69 65 73 20 61 72  's Geometries ar
ad00: 65 20 3c 62 3e 58 59 4d 3c 2f 62 3e 20 6f 72 20  e <b>XYM</b> or 
ad10: 3c 62 3e 58 59 5a 4d 3c 2f 62 3e 20 74 68 65 6e  <b>XYZM</b> then
ad20: 20 20 4c 69 6e 65 73 74 72 69 6e 67 73 20 72 65    Linestrings re
ad30: 74 75 72 6e 65 64 20 69 6e 74 6f 20 74 68 65 20  turned into the 
ad40: 72 65 73 75 6c 74 73 65 74 20 77 69 6c 6c 20 6d  resultset will m
ad50: 61 69 6e 74 61 69 6e 20 74 68 65 20 73 61 6d 65  aintain the same
ad60: 20 64 69 6d 65 6e 73 69 6f 6e 73 20 61 73 20 69   dimensions as i
ad70: 6e 20 74 68 65 20 75 6e 64 65 72 6c 61 79 69 6e  n the underlayin
ad80: 67 20 4e 65 74 77 6f 72 6b 2e 3c 2f 6c 69 3e 0d  g Network.</li>.
ad90: 0a 3c 6c 69 3e 69 6e 20 61 6e 79 20 63 61 73 65  .<li>in any case
ada0: 20 74 68 65 20 3c 62 3e 4d 3c 2f 62 3e 20 76 61   the <b>M</b> va
adb0: 6c 75 65 73 20 77 69 6c 6c 20 62 65 20 61 70 70  lues will be app
adc0: 72 6f 70 72 69 61 74 65 6c 79 20 73 65 74 20 73  ropriately set s
add0: 6f 20 74 6f 20 72 65 70 72 65 73 65 6e 74 20 74  o to represent t
ade0: 68 65 20 3c 75 3e 70 61 72 74 69 61 6c 20 63 6f  he <u>partial co
adf0: 73 74 3c 2f 75 3e 20 63 6f 72 72 65 73 70 6f 6e  st</u> correspon
ae00: 64 69 6e 67 20 74 6f 20 65 61 63 68 20 76 65 72  ding to each ver
ae10: 74 65 78 2e 0d 0a 28 69 66 20 74 68 65 20 69 6e  tex...(if the in
ae20: 70 75 74 20 4c 69 6e 65 73 74 72 69 6e 67 73 20  put Linestrings 
ae30: 61 6c 72 65 61 64 79 20 63 6f 6e 74 61 69 6e 73  already contains
ae40: 20 4d 2d 76 61 6c 75 65 73 20 74 68 65 79 27 6c   M-values they'l
ae50: 6c 20 62 65 20 6f 76 65 72 77 72 69 74 74 65 6e  l be overwritten
ae60: 29 2e 3c 2f 6c 69 3e 0d 0a 3c 2f 75 6c 3e 0d 0a  ).</li>..</ul>..
ae70: 3c 62 72 3e 0d 0a 49 6e 20 6f 74 68 65 72 20 77  <br>..In other w
ae80: 6f 72 64 73 2c 20 61 6c 6c 20 4c 69 6e 65 73 74  ords, all Linest
ae90: 72 69 6e 67 73 20 72 65 74 75 72 6e 65 64 20 62  rings returned b
aea0: 79 20 56 69 72 74 75 61 6c 52 6f 75 74 69 6e 67  y VirtualRouting
aeb0: 20 63 61 6e 20 65 66 66 65 63 74 69 76 65 6c 79   can effectively
aec0: 20 73 75 70 70 6f 72 74 20 3c 62 3e 4c 52 3c 2f   support <b>LR</
aed0: 62 3e 20 28 3c 69 3e 4c 69 6e 65 61 72 20 52 65  b> (<i>Linear Re
aee0: 66 65 72 65 6e 63 69 6e 67 3c 2f 69 3e 29 20 53  ferencing</i>) S
aef0: 51 4c 20 66 75 6e 63 74 69 6f 6e 73 2c 20 61 73  QL functions, as
af00: 20 69 6e 20 74 68 65 20 66 6f 6c 6c 6f 77 69 6e   in the followin
af10: 67 20 65 78 61 6d 70 6c 65 73 3a 0d 0a 3c 76 65  g examples:..<ve
af20: 72 62 61 74 69 6d 3e 0d 0a 53 45 4c 45 43 54 20  rbatim>..SELECT 
af30: 53 54 5f 4c 6f 63 61 74 65 5f 42 65 74 77 65 65  ST_Locate_Betwee
af40: 6e 5f 4d 65 61 73 75 72 65 73 28 3c 67 65 6f 6d  n_Measures(<geom
af50: 65 74 72 79 3e 2c 20 33 30 2e 30 2c 20 34 35 2e  etry>, 30.0, 45.
af60: 30 29 3b 0d 0a 0d 0a 53 45 4c 45 43 54 20 53 54  0);....SELECT ST
af70: 5f 4c 6f 63 61 74 65 5f 42 65 74 77 65 65 6e 5f  _Locate_Between_
af80: 4d 65 61 73 75 72 65 73 28 3c 67 65 6f 6d 65 74  Measures(<geomet
af90: 72 79 3e 2c 20 38 30 2e 30 2c 20 39 35 2e 30 29  ry>, 80.0, 95.0)
afa0: 3b 0d 0a 3c 2f 76 65 72 62 61 74 69 6d 3e 0d 0a  ;..</verbatim>..
afb0: 54 68 65 20 73 69 64 65 20 6d 61 70 20 67 72 61  The side map gra
afc0: 70 68 69 63 61 6c 6c 79 20 73 68 6f 77 73 20 74  phically shows t
afd0: 68 65 20 65 73 74 69 6d 61 74 65 64 20 70 6f 73  he estimated pos
afe0: 69 74 69 6f 6e 73 20 72 65 73 70 65 63 74 69 76  itions respectiv
aff0: 65 6c 79 20 3c 62 3e 33 30 3c 2f 62 3e 2d 3c 62  ely <b>30</b>-<b
b000: 3e 34 35 3c 2f 62 3e 20 73 65 63 6f 6e 64 73 20  >45</b> seconds 
b010: 61 66 74 65 72 20 73 74 61 72 74 69 6e 67 20 28  after starting (
b020: 79 65 6c 6c 6f 77 20 64 6f 74 74 65 64 20 6c 69  yellow dotted li
b030: 6e 65 29 20 61 6e 64 20 3c 62 3e 38 30 3c 2f 62  ne) and <b>80</b
b040: 3e 2d 3c 62 3e 39 35 3c 2f 62 3e 20 73 65 63 6f  >-<b>95</b> seco
b050: 6e 64 73 20 61 66 74 65 72 20 73 74 61 72 74 69  nds after starti
b060: 6e 67 20 28 67 72 65 65 6e 20 64 6f 74 74 65 64  ng (green dotted
b070: 20 6c 69 6e 65 29 2e 3c 62 72 3e 0d 0a 28 61 73   line).<br>..(as
b080: 73 75 6d 69 6e 67 20 74 68 65 20 73 61 6d 65 20  suming the same 
b090: 70 61 74 68 20 72 65 74 75 72 6e 65 64 20 62 79  path returned by
b0a0: 20 74 68 65 20 6c 61 74 65 73 74 20 3c 62 3e 62   the latest <b>b
b0b0: 79 63 61 72 3c 2f 62 3e 20 71 75 65 72 79 29 2e  ycar</b> query).
b0c0: 0d 0a 3c 2f 74 64 3e 0d 0a 3c 74 64 3e 3c 69 6d  ..</td>..<td><im
b0d0: 67 20 73 72 63 3d 22 68 74 74 70 73 3a 2f 2f 77  g src="https://w
b0e0: 77 77 2e 67 61 69 61 2d 67 69 73 2e 69 74 2f 67  ww.gaia-gis.it/g
b0f0: 61 69 61 2d 73 69 6e 73 2f 72 6f 75 74 69 6e 67  aia-sins/routing
b100: 2d 66 69 67 73 2f 72 6f 75 74 69 6e 67 32 2e 6a  -figs/routing2.j
b110: 70 67 22 20 61 6c 74 3d 22 66 69 67 32 22 3e 3c  pg" alt="fig2"><
b120: 2f 74 64 3e 0d 0a 3c 2f 74 72 3e 0d 0a 3c 2f 74  /td>..</tr>..</t
b130: 61 62 6c 65 3e 0d 0a 3c 62 72 3e 0d 0a 3c 68 32  able>..<br>..<h2
b140: 3e 50 6c 61 79 69 6e 67 20 77 69 74 68 20 56 69  >Playing with Vi
b150: 72 74 75 61 6c 52 6f 75 74 69 6e 67 20 63 6f 6e  rtualRouting con
b160: 66 69 67 75 72 61 62 6c 65 20 6f 70 74 69 6f 6e  figurable option
b170: 73 3c 2f 68 32 3e 0d 0a 53 65 76 65 72 61 6c 20  s</h2>..Several 
b180: 61 73 70 65 63 74 73 20 6f 66 20 56 69 72 74 75  aspects of Virtu
b190: 61 6c 52 6f 75 74 69 6e 67 20 63 61 6e 20 62 65  alRouting can be
b1a0: 20 66 72 65 65 6c 79 20 63 75 73 74 6f 6d 69 7a   freely customiz
b1b0: 65 64 2e 0d 0a 3c 76 65 72 62 61 74 69 6d 3e 0d  ed...<verbatim>.
b1c0: 0a 55 50 44 41 54 45 20 62 79 66 6f 6f 74 20 53  .UPDATE byfoot S
b1d0: 45 54 20 41 6c 67 6f 72 69 74 68 6d 20 3d 20 27  ET Algorithm = '
b1e0: 41 2a 27 3b 0d 0a 0d 0a 53 45 4c 45 43 54 20 41  A*';....SELECT A
b1f0: 6c 67 6f 72 69 74 68 6d 2c 20 4f 70 74 69 6f 6e  lgorithm, Option
b200: 73 2c 20 52 6f 75 74 65 52 6f 77 2c 20 52 6f 6c  s, RouteRow, Rol
b210: 65 2c 20 4c 69 6e 6b 52 6f 77 69 64 2c 20 4e 6f  e, LinkRowid, No
b220: 64 65 46 72 6f 6d 2c 20 4e 6f 64 65 54 6f 2c 20  deFrom, NodeTo, 
b230: 43 6f 73 74 2c 20 47 65 6f 6d 65 74 72 79 2c 20  Cost, Geometry, 
b240: 4e 61 6d 65 0d 0a 46 52 4f 4d 20 62 79 66 6f 6f  Name..FROM byfoo
b250: 74 0d 0a 57 48 45 52 45 20 4e 6f 64 65 46 72 6f  t..WHERE NodeFro
b260: 6d 20 3d 20 31 37 38 37 33 31 20 41 4e 44 20 4e  m = 178731 AND N
b270: 6f 64 65 54 6f 20 3d 20 31 38 33 32 38 36 3b 0d  odeTo = 183286;.
b280: 0a 3c 2f 76 65 72 62 61 74 69 6d 3e 0d 0a 49 66  .</verbatim>..If
b290: 20 79 6f 75 20 72 65 6d 65 6d 62 65 72 20 69 6e   you remember in
b2a0: 20 61 6c 6c 20 74 68 65 20 70 72 65 76 69 6f 75   all the previou
b2b0: 73 20 65 78 61 6d 70 6c 65 73 20 74 68 65 20 3c  s examples the <
b2c0: 62 3e 44 69 6a 6b 73 74 72 61 27 73 3c 2f 62 3e  b>Dijkstra's</b>
b2d0: 20 61 6c 67 6f 72 69 74 68 6d 20 77 61 73 20 75   algorithm was u
b2e0: 73 65 64 3b 20 6e 6f 77 20 28 61 66 74 65 72 20  sed; now (after 
b2f0: 65 78 65 63 75 74 69 6e 67 20 74 68 65 20 61 62  executing the ab
b300: 6f 76 65 20 3c 62 3e 55 50 44 41 54 45 3c 2f 62  ove <b>UPDATE</b
b310: 3e 29 20 61 6c 6c 20 53 68 6f 72 74 65 73 74 20  >) all Shortest 
b320: 50 61 74 68 20 71 75 65 72 69 65 73 20 77 69 6c  Path queries wil
b330: 6c 20 62 65 20 62 61 73 65 64 20 6f 6e 20 74 68  l be based on th
b340: 65 20 61 6c 74 65 72 6e 61 74 69 76 65 20 3c 62  e alternative <b
b350: 3e 41 2a 3c 2f 62 3e 20 61 6c 67 6f 72 69 74 68  >A*</b> algorith
b360: 6d 2e 3c 62 72 3e 0d 0a 49 66 20 79 6f 75 20 77  m.<br>..If you w
b370: 69 73 68 20 74 6f 20 73 65 6c 65 63 74 20 61 67  ish to select ag
b380: 61 69 6e 20 74 68 65 20 44 69 6a 6b 73 74 72 61  ain the Dijkstra
b390: 27 73 20 61 6c 67 6f 72 69 74 68 6d 20 79 6f 75  's algorithm you
b3a0: 20 6a 75 73 74 20 68 61 76 65 20 74 6f 20 65 78   just have to ex
b3b0: 65 63 75 74 65 3c 62 72 3e 20 3c 62 3e 55 50 44  ecute<br> <b>UPD
b3c0: 41 54 45 20 62 79 66 6f 6f 74 20 53 45 54 20 41  ATE byfoot SET A
b3d0: 6c 67 6f 72 69 74 68 6d 20 3d 20 27 44 49 4a 4b  lgorithm = 'DIJK
b3e0: 53 54 52 41 27 3b 3c 2f 62 3e 2e 3c 62 72 3e 3c  STRA';</b>.<br><
b3f0: 62 72 3e 0d 0a 54 68 65 20 66 6f 6c 6c 6f 77 69  br>..The followi
b400: 6e 67 20 74 61 62 6c 65 20 73 68 6f 77 73 20 74  ng table shows t
b410: 68 65 20 72 65 73 75 6c 74 73 65 74 20 72 65 74  he resultset ret
b420: 75 72 6e 65 64 20 62 79 20 74 68 65 20 70 72 65  urned by the pre
b430: 76 69 6f 75 73 20 53 68 6f 72 74 65 73 74 20 50  vious Shortest P
b440: 61 74 68 20 71 75 65 72 79 3b 20 70 6c 65 61 73  ath query; pleas
b450: 65 20 6e 6f 74 69 63 65 20 74 68 65 20 76 61 6c  e notice the val
b460: 75 65 20 69 6e 20 74 68 65 20 3c 62 3e 41 6c 67  ue in the <b>Alg
b470: 6f 72 69 74 68 6d 3c 2f 62 3e 20 63 6f 6c 75 6d  orithm</b> colum
b480: 6e 2e 0d 0a 3c 62 72 3e 3c 62 72 3e 0d 0a 3c 74  n...<br><br>..<t
b490: 61 62 6c 65 20 62 6f 72 64 65 72 3d 22 31 22 20  able border="1" 
b4a0: 62 67 63 6f 6c 6f 72 3d 22 23 66 66 66 66 63 66  bgcolor="#ffffcf
b4b0: 22 20 63 65 6c 6c 73 70 61 63 69 6e 67 3d 22 34  " cellspacing="4
b4c0: 22 20 63 65 6c 6c 70 61 64 64 69 6e 67 3d 22 36  " cellpadding="6
b4d0: 22 3e 0d 0a 3c 74 72 3e 3c 74 68 20 62 67 63 6f  ">..<tr><th bgco
b4e0: 6c 6f 72 3d 22 23 64 30 64 30 61 30 22 3e 41 6c  lor="#d0d0a0">Al
b4f0: 67 6f 72 69 74 68 6d 3c 2f 74 68 3e 3c 74 68 20  gorithm</th><th 
b500: 62 67 63 6f 6c 6f 72 3d 22 23 64 30 64 30 61 30  bgcolor="#d0d0a0
b510: 22 3e 4f 70 74 69 6f 6e 73 3c 2f 74 68 3e 3c 74  ">Options</th><t
b520: 68 20 62 67 63 6f 6c 6f 72 3d 22 23 64 30 64 30  h bgcolor="#d0d0
b530: 61 30 22 3e 52 6f 75 74 65 52 6f 77 3c 2f 74 68  a0">RouteRow</th
b540: 3e 3c 74 68 20 62 67 63 6f 6c 6f 72 3d 22 23 64  ><th bgcolor="#d
b550: 30 64 30 61 30 22 3e 52 6f 6c 65 3c 2f 74 68 3e  0d0a0">Role</th>
b560: 3c 74 68 20 62 67 63 6f 6c 6f 72 3d 22 23 64 30  <th bgcolor="#d0
b570: 64 30 61 30 22 3e 4c 69 6e 6b 52 6f 77 69 64 3c  d0a0">LinkRowid<
b580: 2f 74 68 3e 3c 74 68 20 62 67 63 6f 6c 6f 72 3d  /th><th bgcolor=
b590: 22 23 64 30 64 30 61 30 22 3e 4e 6f 64 65 46 72  "#d0d0a0">NodeFr
b5a0: 6f 6d 3c 2f 74 68 3e 3c 74 68 20 62 67 63 6f 6c  om</th><th bgcol
b5b0: 6f 72 3d 22 23 64 30 64 30 61 30 22 3e 4e 6f 64  or="#d0d0a0">Nod
b5c0: 65 54 6f 3c 2f 74 68 3e 3c 74 68 20 62 67 63 6f  eTo</th><th bgco
b5d0: 6c 6f 72 3d 22 23 64 30 64 30 61 30 22 3e 43 6f  lor="#d0d0a0">Co
b5e0: 73 74 3c 2f 74 68 3e 3c 74 68 20 62 67 63 6f 6c  st</th><th bgcol
b5f0: 6f 72 3d 22 23 64 30 64 30 61 30 22 3e 47 65 6f  or="#d0d0a0">Geo
b600: 6d 65 74 72 79 3c 2f 74 68 3e 3c 74 68 20 62 67  metry</th><th bg
b610: 63 6f 6c 6f 72 3d 22 23 64 30 64 30 61 30 22 3e  color="#d0d0a0">
b620: 4e 61 6d 65 3c 2f 74 68 3e 3c 2f 74 72 3e 0d 0a  Name</th></tr>..
b630: 3c 74 72 3e 3c 74 64 3e 41 2a 3c 2f 74 64 3e 3c  <tr><td>A*</td><
b640: 74 64 3e 46 75 6c 6c 3c 2f 74 64 3e 3c 74 64 20  td>Full</td><td 
b650: 61 6c 69 67 6e 3d 22 72 69 67 68 74 22 3e 30 3c  align="right">0<
b660: 2f 74 64 3e 3c 74 64 3e 52 6f 75 74 65 3c 2f 74  /td><td>Route</t
b670: 64 3e 3c 74 64 3e 4e 55 4c 4c 3c 2f 74 64 3e 3c  d><td>NULL</td><
b680: 74 64 20 61 6c 69 67 6e 3d 22 72 69 67 68 74 22  td align="right"
b690: 3e 31 37 38 37 33 31 3c 2f 74 64 3e 3c 74 64 20  >178731</td><td 
b6a0: 61 6c 69 67 6e 3d 22 72 69 67 68 74 22 3e 31 38  align="right">18
b6b0: 33 32 38 36 3c 2f 74 64 3e 3c 74 64 20 61 6c 69  3286</td><td ali
b6c0: 67 6e 3d 22 72 69 67 68 74 22 3e 33 30 30 2e 39  gn="right">300.9
b6d0: 31 32 32 30 38 3c 2f 74 64 3e 3c 74 64 3e 42 4c  12208</td><td>BL
b6e0: 4f 42 20 73 7a 3d 32 37 32 20 47 45 4f 4d 45 54  OB sz=272 GEOMET
b6f0: 52 59 3c 2f 74 64 3e 3c 74 64 3e 4e 55 4c 4c 3c  RY</td><td>NULL<
b700: 2f 74 64 3e 0d 0a 3c 2f 74 72 3e 0d 0a 3c 74 72  /td>..</tr>..<tr
b710: 3e 0d 0a 3c 74 64 3e 4e 55 4c 4c 3c 2f 74 64 3e  >..<td>NULL</td>
b720: 3c 74 64 3e 4e 55 4c 4c 3c 2f 74 64 3e 3c 74 64  <td>NULL</td><td
b730: 20 61 6c 69 67 6e 3d 22 72 69 67 68 74 22 3e 31   align="right">1
b740: 3c 2f 74 64 3e 3c 74 64 3e 4c 69 6e 6b 3c 2f 74  </td><td>Link</t
b750: 64 3e 3c 74 64 20 61 6c 69 67 6e 3d 22 72 69 67  d><td align="rig
b760: 68 74 22 3e 32 32 34 30 31 34 3c 2f 74 64 3e 3c  ht">224014</td><
b770: 74 64 20 61 6c 69 67 6e 3d 22 72 69 67 68 74 22  td align="right"
b780: 3e 31 37 38 37 33 31 3c 2f 74 64 3e 3c 74 64 20  >178731</td><td 
b790: 61 6c 69 67 6e 3d 22 72 69 67 68 74 22 3e 31 38  align="right">18
b7a0: 32 38 38 35 3c 2f 74 64 3e 3c 74 64 20 61 6c 69  2885</td><td ali
b7b0: 67 6e 3d 22 72 69 67 68 74 22 3e 39 34 2e 38 31  gn="right">94.81
b7c0: 32 34 32 34 3c 2f 74 64 3e 3c 74 64 3e 4e 55 4c  2424</td><td>NUL
b7d0: 4c 3c 2f 74 64 3e 3c 74 64 3e 56 49 41 20 50 49  L</td><td>VIA PI
b7e0: 45 54 52 4f 20 41 52 45 54 49 4e 4f 3c 2f 74 64  ETRO ARETINO</td
b7f0: 3e 0d 0a 3c 2f 74 72 3e 0d 0a 3c 74 72 3e 0d 0a  >..</tr>..<tr>..
b800: 3c 74 64 3e 4e 55 4c 4c 3c 2f 74 64 3e 3c 74 64  <td>NULL</td><td
b810: 3e 4e 55 4c 4c 3c 2f 74 64 3e 3c 74 64 20 61 6c  >NULL</td><td al
b820: 69 67 6e 3d 22 72 69 67 68 74 22 3e 32 3c 2f 74  ign="right">2</t
b830: 64 3e 3c 74 64 3e 4c 69 6e 6b 3c 2f 74 64 3e 3c  d><td>Link</td><
b840: 74 64 20 61 6c 69 67 6e 3d 22 72 69 67 68 74 22  td align="right"
b850: 3e 32 32 34 34 34 36 3c 2f 74 64 3e 3c 74 64 20  >224446</td><td 
b860: 61 6c 69 67 6e 3d 22 72 69 67 68 74 22 3e 31 38  align="right">18
b870: 32 38 38 35 3c 2f 74 64 3e 3c 74 64 20 61 6c 69  2885</td><td ali
b880: 67 6e 3d 22 72 69 67 68 74 22 3e 31 37 38 38 38  gn="right">17888
b890: 30 3c 2f 74 64 3e 3c 74 64 20 61 6c 69 67 6e 3d  0</td><td align=
b8a0: 22 72 69 67 68 74 22 3e 36 39 2e 37 32 37 37 32  "right">69.72772
b8b0: 36 3c 2f 74 64 3e 3c 74 64 3e 4e 55 4c 4c 3c 2f  6</td><td>NULL</
b8c0: 74 64 3e 3c 74 64 3e 56 49 41 20 4d 41 52 47 41  td><td>VIA MARGA
b8d0: 52 49 54 4f 4e 45 3c 2f 74 64 3e 0d 0a 3c 2f 74  RITONE</td>..</t
b8e0: 72 3e 0d 0a 3c 74 72 3e 0d 0a 3c 74 64 3e 4e 55  r>..<tr>..<td>NU
b8f0: 4c 4c 3c 2f 74 64 3e 3c 74 64 3e 4e 55 4c 4c 3c  LL</td><td>NULL<
b900: 2f 74 64 3e 3c 74 64 20 61 6c 69 67 6e 3d 22 72  /td><td align="r
b910: 69 67 68 74 22 3e 33 3c 2f 74 64 3e 3c 74 64 3e  ight">3</td><td>
b920: 4c 69 6e 6b 3c 2f 74 64 3e 3c 74 64 20 61 6c 69  Link</td><td ali
b930: 67 6e 3d 22 72 69 67 68 74 22 3e 32 32 34 34 31  gn="right">22441
b940: 34 3c 2f 74 64 3e 3c 74 64 20 61 6c 69 67 6e 3d  4</td><td align=
b950: 22 72 69 67 68 74 22 3e 31 37 38 38 38 30 3c 2f  "right">178880</
b960: 74 64 3e 3c 74 64 20 61 6c 69 67 6e 3d 22 72 69  td><td align="ri
b970: 67 68 74 22 3e 31 38 33 32 38 36 3c 2f 74 64 3e  ght">183286</td>
b980: 3c 74 64 20 61 6c 69 67 6e 3d 22 72 69 67 68 74  <td align="right
b990: 22 3e 31 33 36 2e 33 37 32 30 35 37 3c 2f 74 64  ">136.372057</td
b9a0: 3e 3c 74 64 3e 4e 55 4c 4c 3c 2f 74 64 3e 3c 74  ><td>NULL</td><t
b9b0: 64 3e 56 49 41 20 4d 41 52 47 41 52 49 54 4f 4e  d>VIA MARGARITON
b9c0: 45 3c 2f 74 64 3e 0d 0a 3c 2f 74 72 3e 0d 0a 3c  E</td>..</tr>..<
b9d0: 2f 74 61 62 6c 65 3e 0d 0a 3c 62 72 3e 3c 62 72  /table>..<br><br
b9e0: 3e 3c 62 72 3e 0d 0a 59 6f 75 20 63 61 6e 20 65  ><br>..You can e
b9f0: 76 65 6e 74 75 61 6c 6c 79 20 63 6f 6e 66 69 67  ventually config
ba00: 75 72 65 20 74 68 65 20 72 65 73 75 6c 74 73 65  ure the resultse
ba10: 74 20 72 65 74 75 72 6e 65 64 20 74 68 65 20 56  t returned the V
ba20: 69 72 74 75 61 6c 52 6f 75 74 69 6e 67 20 71 75  irtualRouting qu
ba30: 65 72 69 65 73 2e 0d 0a 3c 76 65 72 62 61 74 69  eries...<verbati
ba40: 6d 3e 0d 0a 55 50 44 41 54 45 20 62 79 66 6f 6f  m>..UPDATE byfoo
ba50: 74 20 53 45 54 20 4f 70 74 69 6f 6e 73 20 3d 20  t SET Options = 
ba60: 27 4e 4f 20 4c 49 4e 4b 53 27 3b 0d 0a 0d 0a 53  'NO LINKS';....S
ba70: 45 4c 45 43 54 20 41 6c 67 6f 72 69 74 68 6d 2c  ELECT Algorithm,
ba80: 20 4f 70 74 69 6f 6e 73 2c 20 52 6f 75 74 65 52   Options, RouteR
ba90: 6f 77 2c 20 52 6f 6c 65 2c 20 4c 69 6e 6b 52 6f  ow, Role, LinkRo
baa0: 77 69 64 2c 20 4e 6f 64 65 46 72 6f 6d 2c 20 4e  wid, NodeFrom, N
bab0: 6f 64 65 54 6f 2c 20 43 6f 73 74 2c 20 47 65 6f  odeTo, Cost, Geo
bac0: 6d 65 74 72 79 2c 20 4e 61 6d 65 0d 0a 46 52 4f  metry, Name..FRO
bad0: 4d 20 62 79 66 6f 6f 74 0d 0a 57 48 45 52 45 20  M byfoot..WHERE 
bae0: 4e 6f 64 65 46 72 6f 6d 20 3d 20 31 37 38 37 33  NodeFrom = 17873
baf0: 31 20 41 4e 44 20 4e 6f 64 65 54 6f 20 3d 20 31  1 AND NodeTo = 1
bb00: 38 33 32 38 36 3b 0d 0a 3c 2f 76 65 72 62 61 74  83286;..</verbat
bb10: 69 6d 3e 0d 0a 41 66 74 65 72 20 73 65 74 74 69  im>..After setti
bb20: 6e 67 20 3c 62 3e 4f 70 74 69 6f 6e 73 3d 27 4e  ng <b>Options='N
bb30: 4f 20 4c 49 4e 4b 53 27 3c 2f 62 3e 20 74 68 65  O LINKS'</b> the
bb40: 20 72 65 73 75 6c 74 73 65 74 20 77 69 6c 6c 20   resultset will 
bb50: 73 69 6d 70 6c 79 20 63 6f 6e 74 61 69 6e 20 74  simply contain t
bb60: 68 65 20 68 65 61 64 65 72 20 72 6f 77 2c 20 61  he header row, a
bb70: 6e 64 20 61 6c 6c 20 74 68 65 20 66 6f 6c 6c 6f  nd all the follo
bb80: 77 69 6e 67 20 72 6f 77 73 20 77 69 6c 6c 20 62  wing rows will b
bb90: 65 20 73 75 70 70 72 65 73 73 65 64 2e 3c 62 72  e suppressed.<br
bba0: 3e 0d 0a 3c 75 3e 4e 6f 74 65 3c 2f 75 3e 3a 20  >..<u>Note</u>: 
bbb0: 70 72 6f 64 75 63 69 6e 67 20 61 20 72 65 64 75  producing a redu
bbc0: 63 65 64 20 72 65 73 75 6c 74 73 65 74 20 69 73  ced resultset is
bbd0: 20 65 78 70 65 63 74 65 64 20 74 6f 20 62 65 20   expected to be 
bbe0: 73 6f 6d 65 77 61 79 20 66 61 73 74 65 72 2e 3c  someway faster.<
bbf0: 62 72 3e 0d 0a 54 68 65 20 66 6f 6c 6c 6f 77 69  br>..The followi
bc00: 6e 67 20 74 61 62 6c 65 20 73 68 6f 77 73 20 74  ng table shows t
bc10: 68 65 20 72 65 73 75 6c 74 73 65 74 20 72 65 74  he resultset ret
bc20: 75 72 6e 65 64 20 62 79 20 74 68 65 20 70 72 65  urned by the pre
bc30: 76 69 6f 75 73 20 53 68 6f 72 74 65 73 74 20 50  vious Shortest P
bc40: 61 74 68 20 71 75 65 72 79 3b 20 70 6c 65 61 73  ath query; pleas
bc50: 65 20 6e 6f 74 69 63 65 20 74 68 65 20 76 61 6c  e notice the val
bc60: 75 65 20 69 6e 20 74 68 65 20 3c 62 3e 4f 70 74  ue in the <b>Opt
bc70: 69 6f 6e 73 3c 2f 62 3e 20 63 6f 6c 75 6d 6e 2e  ions</b> column.
bc80: 0d 0a 3c 62 72 3e 3c 62 72 3e 0d 0a 3c 74 61 62  ..<br><br>..<tab
bc90: 6c 65 20 62 6f 72 64 65 72 3d 22 31 22 20 62 67  le border="1" bg
bca0: 63 6f 6c 6f 72 3d 22 23 66 66 66 66 63 66 22 20  color="#ffffcf" 
bcb0: 63 65 6c 6c 73 70 61 63 69 6e 67 3d 22 34 22 20  cellspacing="4" 
bcc0: 63 65 6c 6c 70 61 64 64 69 6e 67 3d 22 36 22 3e  cellpadding="6">
bcd0: 0d 0a 3c 74 72 3e 3c 74 68 20 62 67 63 6f 6c 6f  ..<tr><th bgcolo
bce0: 72 3d 22 23 64 30 64 30 61 30 22 3e 41 6c 67 6f  r="#d0d0a0">Algo
bcf0: 72 69 74 68 6d 3c 2f 74 68 3e 3c 74 68 20 62 67  rithm</th><th bg
bd00: 63 6f 6c 6f 72 3d 22 23 64 30 64 30 61 30 22 3e  color="#d0d0a0">
bd10: 4f 70 74 69 6f 6e 73 3c 2f 74 68 3e 3c 74 68 20  Options</th><th 
bd20: 62 67 63 6f 6c 6f 72 3d 22 23 64 30 64 30 61 30  bgcolor="#d0d0a0
bd30: 22 3e 52 6f 75 74 65 52 6f 77 3c 2f 74 68 3e 3c  ">RouteRow</th><
bd40: 74 68 20 62 67 63 6f 6c 6f 72 3d 22 23 64 30 64  th bgcolor="#d0d
bd50: 30 61 30 22 3e 52 6f 6c 65 3c 2f 74 68 3e 3c 74  0a0">Role</th><t
bd60: 68 20 62 67 63 6f 6c 6f 72 3d 22 23 64 30 64 30  h bgcolor="#d0d0
bd70: 61 30 22 3e 4c 69 6e 6b 52 6f 77 69 64 3c 2f 74  a0">LinkRowid</t
bd80: 68 3e 3c 74 68 20 62 67 63 6f 6c 6f 72 3d 22 23  h><th bgcolor="#
bd90: 64 30 64 30 61 30 22 3e 4e 6f 64 65 46 72 6f 6d  d0d0a0">NodeFrom
bda0: 3c 2f 74 68 3e 3c 74 68 20 62 67 63 6f 6c 6f 72  </th><th bgcolor
bdb0: 3d 22 23 64 30 64 30 61 30 22 3e 4e 6f 64 65 54  ="#d0d0a0">NodeT
bdc0: 6f 3c 2f 74 68 3e 3c 74 68 20 62 67 63 6f 6c 6f  o</th><th bgcolo
bdd0: 72 3d 22 23 64 30 64 30 61 30 22 3e 43 6f 73 74  r="#d0d0a0">Cost
bde0: 3c 2f 74 68 3e 3c 74 68 20 62 67 63 6f 6c 6f 72  </th><th bgcolor
bdf0: 3d 22 23 64 30 64 30 61 30 22 3e 47 65 6f 6d 65  ="#d0d0a0">Geome
be00: 74 72 79 3c 2f 74 68 3e 3c 74 68 20 62 67 63 6f  try</th><th bgco
be10: 6c 6f 72 3d 22 23 64 30 64 30 61 30 22 3e 4e 61  lor="#d0d0a0">Na
be20: 6d 65 3c 2f 74 68 3e 3c 2f 74 72 3e 0d 0a 3c 74  me</th></tr>..<t
be30: 72 3e 0d 0a 3c 74 64 3e 41 2a 3c 2f 74 64 3e 3c  r>..<td>A*</td><
be40: 74 64 3e 4e 6f 20 4c 69 6e 6b 73 3c 2f 74 64 3e  td>No Links</td>
be50: 3c 74 64 20 61 6c 69 67 6e 3d 22 72 69 67 68 74  <td align="right
be60: 22 3e 30 3c 2f 74 64 3e 3c 74 64 3e 52 6f 75 74  ">0</td><td>Rout
be70: 65 3c 2f 74 64 3e 3c 74 64 3e 4e 55 4c 4c 3c 2f  e</td><td>NULL</
be80: 74 64 3e 3c 74 64 20 61 6c 69 67 6e 3d 22 72 69  td><td align="ri
be90: 67 68 74 22 3e 31 37 38 37 33 31 3c 2f 74 64 3e  ght">178731</td>
bea0: 3c 74 64 20 61 6c 69 67 6e 3d 22 72 69 67 68 74  <td align="right
beb0: 22 3e 31 38 33 32 38 36 3c 2f 74 64 3e 3c 74 64  ">183286</td><td
bec0: 20 61 6c 69 67 6e 3d 22 72 69 67 68 74 22 3e 33   align="right">3
bed0: 30 30 2e 39 31 32 32 30 38 3c 2f 74 64 3e 3c 74  00.912208</td><t
bee0: 64 3e 42 4c 4f 42 20 73 7a 3d 32 37 32 20 47 45  d>BLOB sz=272 GE
bef0: 4f 4d 45 54 52 59 3c 2f 74 64 3e 3c 74 64 3e 4e  OMETRY</td><td>N
bf00: 55 4c 4c 3c 2f 74 64 3e 0d 0a 3c 2f 74 72 3e 0d  ULL</td>..</tr>.
bf10: 0a 3c 2f 74 61 62 6c 65 3e 0d 0a 3c 62 72 3e 3c  .</table>..<br><
bf20: 62 72 3e 3c 62 72 3e 0d 0a 3c 76 65 72 62 61 74  br><br>..<verbat
bf30: 69 6d 3e 0d 0a 55 50 44 41 54 45 20 62 79 66 6f  im>..UPDATE byfo
bf40: 6f 74 20 53 45 54 20 4f 70 74 69 6f 6e 73 20 3d  ot SET Options =
bf50: 20 27 4e 4f 20 47 45 4f 4d 45 54 52 49 45 53 27   'NO GEOMETRIES'
bf60: 3b 0d 0a 0d 0a 53 45 4c 45 43 54 20 41 6c 67 6f  ;....SELECT Algo
bf70: 72 69 74 68 6d 2c 20 4f 70 74 69 6f 6e 73 2c 20  rithm, Options, 
bf80: 52 6f 75 74 65 52 6f 77 2c 20 52 6f 6c 65 2c 20  RouteRow, Role, 
bf90: 4c 69 6e 6b 52 6f 77 69 64 2c 20 4e 6f 64 65 46  LinkRowid, NodeF
bfa0: 72 6f 6d 2c 20 4e 6f 64 65 54 6f 2c 20 43 6f 73  rom, NodeTo, Cos
bfb0: 74 2c 20 47 65 6f 6d 65 74 72 79 2c 20 4e 61 6d  t, Geometry, Nam
bfc0: 65 0d 0a 46 52 4f 4d 20 62 79 66 6f 6f 74 0d 0a  e..FROM byfoot..
bfd0: 57 48 45 52 45 20 4e 6f 64 65 46 72 6f 6d 20 3d  WHERE NodeFrom =
bfe0: 20 31 37 38 37 33 31 20 41 4e 44 20 4e 6f 64 65   178731 AND Node
bff0: 54 6f 20 3d 20 31 38 33 32 38 36 3b 0d 0a 3c 2f  To = 183286;..</
c000: 76 65 72 62 61 74 69 6d 3e 41 66 74 65 72 20 73  verbatim>After s
c010: 65 74 74 69 6e 67 20 3c 62 3e 4f 70 74 69 6f 6e  etting <b>Option
c020: 73 3d 27 4e 4f 20 47 45 4f 4d 45 54 52 49 45 53  s='NO GEOMETRIES
c030: 27 3c 2f 62 3e 20 74 68 65 20 72 65 73 75 6c 74  '</b> the result
c040: 73 65 74 20 77 69 6c 6c 20 63 6f 6e 74 61 69 6e  set will contain
c050: 20 61 6c 6c 20 72 6f 77 73 2c 20 62 75 74 20 61   all rows, but a
c060: 6c 6c 20 47 65 6f 6d 65 74 72 69 65 73 20 77 69  ll Geometries wi
c070: 6c 6c 20 62 65 20 73 75 70 70 72 65 73 73 65 64  ll be suppressed
c080: 2e 3c 62 72 3e 0d 0a 3c 75 3e 4e 6f 74 65 3c 2f  .<br>..<u>Note</
c090: 75 3e 3a 20 74 68 69 73 20 74 6f 6f 20 69 73 20  u>: this too is 
c0a0: 65 78 70 65 63 74 65 64 20 74 6f 20 62 65 20 73  expected to be s
c0b0: 6f 6d 65 77 61 79 20 66 61 73 74 65 72 2e 3c 62  omeway faster.<b
c0c0: 72 3e 0d 0a 54 68 65 20 66 6f 6c 6c 6f 77 69 6e  r>..The followin
c0d0: 67 20 74 61 62 6c 65 20 73 68 6f 77 73 20 74 68  g table shows th
c0e0: 65 20 72 65 73 75 6c 74 73 65 74 20 72 65 74 75  e resultset retu
c0f0: 72 6e 65 64 20 62 79 20 74 68 65 20 70 72 65 76  rned by the prev
c100: 69 6f 75 73 20 53 68 6f 72 74 65 73 74 20 50 61  ious Shortest Pa
c110: 74 68 20 71 75 65 72 79 3b 20 70 6c 65 61 73 65  th query; please
c120: 20 6e 6f 74 69 63 65 20 74 68 65 20 76 61 6c 75   notice the valu
c130: 65 20 69 6e 20 74 68 65 20 3c 62 3e 4f 70 74 69  e in the <b>Opti
c140: 6f 6e 73 3c 2f 62 3e 20 63 6f 6c 75 6d 6e 2e 0d  ons</b> column..
c150: 0a 3c 62 72 3e 3c 62 72 3e 0d 0a 3c 74 61 62 6c  .<br><br>..<tabl
c160: 65 20 62 6f 72 64 65 72 3d 22 31 22 20 62 67 63  e border="1" bgc
c170: 6f 6c 6f 72 3d 22 23 66 66 66 66 63 66 22 20 63  olor="#ffffcf" c
c180: 65 6c 6c 73 70 61 63 69 6e 67 3d 22 34 22 20 63  ellspacing="4" c
c190: 65 6c 6c 70 61 64 64 69 6e 67 3d 22 36 22 3e 0d  ellpadding="6">.
c1a0: 0a 3c 74 72 3e 3c 74 68 20 62 67 63 6f 6c 6f 72  .<tr><th bgcolor
c1b0: 3d 22 23 64 30 64 30 61 30 22 3e 41 6c 67 6f 72  ="#d0d0a0">Algor
c1c0: 69 74 68 6d 3c 2f 74 68 3e 3c 74 68 20 62 67 63  ithm</th><th bgc
c1d0: 6f 6c 6f 72 3d 22 23 64 30 64 30 61 30 22 3e 4f  olor="#d0d0a0">O
c1e0: 70 74 69 6f 6e 73 3c 2f 74 68 3e 3c 74 68 20 62  ptions</th><th b
c1f0: 67 63 6f 6c 6f 72 3d 22 23 64 30 64 30 61 30 22  gcolor="#d0d0a0"
c200: 3e 52 6f 75 74 65 52 6f 77 3c 2f 74 68 3e 3c 74  >RouteRow</th><t
c210: 68 20 62 67 63 6f 6c 6f 72 3d 22 23 64 30 64 30  h bgcolor="#d0d0
c220: 61 30 22 3e 52 6f 6c 65 3c 2f 74 68 3e 3c 74 68  a0">Role</th><th
c230: 20 62 67 63 6f 6c 6f 72 3d 22 23 64 30 64 30 61   bgcolor="#d0d0a
c240: 30 22 3e 4c 69 6e 6b 52 6f 77 69 64 3c 2f 74 68  0">LinkRowid</th
c250: 3e 3c 74 68 20 62 67 63 6f 6c 6f 72 3d 22 23 64  ><th bgcolor="#d
c260: 30 64 30 61 30 22 3e 4e 6f 64 65 46 72 6f 6d 3c  0d0a0">NodeFrom<
c270: 2f 74 68 3e 3c 74 68 20 62 67 63 6f 6c 6f 72 3d  /th><th bgcolor=
c280: 22 23 64 30 64 30 61 30 22 3e 4e 6f 64 65 54 6f  "#d0d0a0">NodeTo
c290: 3c 2f 74 68 3e 3c 74 68 20 62 67 63 6f 6c 6f 72  </th><th bgcolor
c2a0: 3d 22 23 64 30 64 30 61 30 22 3e 43 6f 73 74 3c  ="#d0d0a0">Cost<
c2b0: 2f 74 68 3e 3c 74 68 20 62 67 63 6f 6c 6f 72 3d  /th><th bgcolor=
c2c0: 22 23 64 30 64 30 61 30 22 3e 47 65 6f 6d 65 74  "#d0d0a0">Geomet
c2d0: 72 79 3c 2f 74 68 3e 3c 74 68 20 62 67 63 6f 6c  ry</th><th bgcol
c2e0: 6f 72 3d 22 23 64 30 64 30 61 30 22 3e 4e 61 6d  or="#d0d0a0">Nam
c2f0: 65 3c 2f 74 68 3e 3c 2f 74 72 3e 0d 0a 3c 74 72  e</th></tr>..<tr
c300: 3e 3c 74 64 3e 41 2a 3c 2f 74 64 3e 3c 74 64 3e  ><td>A*</td><td>
c310: 4e 6f 20 47 65 6f 6d 65 74 72 69 65 73 3c 2f 74  No Geometries</t
c320: 64 3e 3c 74 64 20 61 6c 69 67 6e 3d 22 72 69 67  d><td align="rig
c330: 68 74 22 3e 30 3c 2f 74 64 3e 3c 74 64 3e 52 6f  ht">0</td><td>Ro
c340: 75 74 65 3c 2f 74 64 3e 3c 74 64 3e 4e 55 4c 4c  ute</td><td>NULL
c350: 3c 2f 74 64 3e 3c 74 64 20 61 6c 69 67 6e 3d 22  </td><td align="
c360: 72 69 67 68 74 22 3e 31 37 38 37 33 31 3c 2f 74  right">178731</t
c370: 64 3e 3c 74 64 20 61 6c 69 67 6e 3d 22 72 69 67  d><td align="rig
c380: 68 74 22 3e 31 38 33 32 38 36 3c 2f 74 64 3e 3c  ht">183286</td><
c390: 74 64 20 61 6c 69 67 6e 3d 22 72 69 67 68 74 22  td align="right"
c3a0: 3e 33 30 30 2e 39 31 32 32 30 38 3c 2f 74 64 3e  >300.912208</td>
c3b0: 3c 74 64 3e 4e 55 4c 4c 3c 2f 74 64 3e 3c 74 64  <td>NULL</td><td
c3c0: 3e 4e 55 4c 4c 3c 2f 74 64 3e 0d 0a 3c 2f 74 72  >NULL</td>..</tr
c3d0: 3e 0d 0a 3c 74 72 3e 0d 0a 3c 74 64 3e 4e 55 4c  >..<tr>..<td>NUL
c3e0: 4c 3c 2f 74 64 3e 3c 74 64 3e 4e 55 4c 4c 3c 2f  L</td><td>NULL</
c3f0: 74 64 3e 3c 74 64 20 61 6c 69 67 6e 3d 22 72 69  td><td align="ri
c400: 67 68 74 22 3e 31 3c 2f 74 64 3e 3c 74 64 3e 4c  ght">1</td><td>L
c410: 69 6e 6b 3c 2f 74 64 3e 3c 74 64 20 61 6c 69 67  ink</td><td alig
c420: 6e 3d 22 72 69 67 68 74 22 3e 32 32 34 30 31 34  n="right">224014
c430: 3c 2f 74 64 3e 3c 74 64 20 61 6c 69 67 6e 3d 22  </td><td align="
c440: 72 69 67 68 74 22 3e 31 37 38 37 33 31 3c 2f 74  right">178731</t
c450: 64 3e 3c 74 64 20 61 6c 69 67 6e 3d 22 72 69 67  d><td align="rig
c460: 68 74 22 3e 31 38 32 38 38 35 3c 2f 74 64 3e 3c  ht">182885</td><
c470: 74 64 20 61 6c 69 67 6e 3d 22 72 69 67 68 74 22  td align="right"
c480: 3e 39 34 2e 38 31 32 34 32 34 3c 2f 74 64 3e 3c  >94.812424</td><
c490: 74 64 3e 4e 55 4c 4c 3c 2f 74 64 3e 3c 74 64 3e  td>NULL</td><td>
c4a0: 56 49 41 20 50 49 45 54 52 4f 20 41 52 45 54 49  VIA PIETRO ARETI
c4b0: 4e 4f 3c 2f 74 64 3e 0d 0a 3c 2f 74 72 3e 0d 0a  NO</td>..</tr>..
c4c0: 3c 74 72 3e 0d 0a 3c 74 64 3e 4e 55 4c 4c 3c 2f  <tr>..<td>NULL</
c4d0: 74 64 3e 3c 74 64 3e 4e 55 4c 4c 3c 2f 74 64 3e  td><td>NULL</td>
c4e0: 3c 74 64 20 61 6c 69 67 6e 3d 22 72 69 67 68 74  <td align="right
c4f0: 22 3e 32 3c 2f 74 64 3e 3c 74 64 3e 4c 69 6e 6b  ">2</td><td>Link
c500: 3c 2f 74 64 3e 3c 74 64 20 61 6c 69 67 6e 3d 22  </td><td align="
c510: 72 69 67 68 74 22 3e 32 32 34 34 34 36 3c 2f 74  right">224446</t
c520: 64 3e 3c 74 64 20 61 6c 69 67 6e 3d 22 72 69 67  d><td align="rig
c530: 68 74 22 3e 31 38 32 38 38 35 3c 2f 74 64 3e 3c  ht">182885</td><
c540: 74 64 20 61 6c 69 67 6e 3d 22 72 69 67 68 74 22  td align="right"
c550: 3e 31 37 38 38 38 30 3c 2f 74 64 3e 3c 74 64 20  >178880</td><td 
c560: 61 6c 69 67 6e 3d 22 72 69 67 68 74 22 3e 36 39  align="right">69
c570: 2e 37 32 37 37 32 36 3c 2f 74 64 3e 3c 74 64 3e  .727726</td><td>
c580: 4e 55 4c 4c 3c 2f 74 64 3e 3c 74 64 3e 56 49 41  NULL</td><td>VIA
c590: 20 4d 41 52 47 41 52 49 54 4f 4e 45 3c 2f 74 64   MARGARITONE</td
c5a0: 3e 0d 0a 3c 2f 74 72 3e 0d 0a 3c 74 72 3e 0d 0a  >..</tr>..<tr>..
c5b0: 3c 74 64 3e 4e 55 4c 4c 3c 2f 74 64 3e 3c 74 64  <td>NULL</td><td
c5c0: 3e 4e 55 4c 4c 3c 2f 74 64 3e 3c 74 64 20 61 6c  >NULL</td><td al
c5d0: 69 67 6e 3d 22 72 69 67 68 74 22 3e 33 3c 2f 74  ign="right">3</t
c5e0: 64 3e 3c 74 64 3e 4c 69 6e 6b 3c 2f 74 64 3e 3c  d><td>Link</td><
c5f0: 74 64 20 61 6c 69 67 6e 3d 22 72 69 67 68 74 22  td align="right"
c600: 3e 32 32 34 34 31 34 3c 2f 74 64 3e 3c 74 64 20  >224414</td><td 
c610: 61 6c 69 67 6e 3d 22 72 69 67 68 74 22 3e 31 37  align="right">17
c620: 38 38 38 30 3c 2f 74 64 3e 3c 74 64 20 61 6c 69  8880</td><td ali
c630: 67 6e 3d 22 72 69 67 68 74 22 3e 31 38 33 32 38  gn="right">18328
c640: 36 3c 2f 74 64 3e 3c 74 64 20 61 6c 69 67 6e 3d  6</td><td align=
c650: 22 72 69 67 68 74 22 3e 31 33 36 2e 33 37 32 30  "right">136.3720
c660: 35 37 3c 2f 74 64 3e 3c 74 64 3e 4e 55 4c 4c 3c  57</td><td>NULL<
c670: 2f 74 64 3e 3c 74 64 3e 56 49 41 20 4d 41 52 47  /td><td>VIA MARG
c680: 41 52 49 54 4f 4e 45 3c 2f 74 64 3e 0d 0a 3c 2f  ARITONE</td>..</
c690: 74 72 3e 0d 0a 3c 2f 74 61 62 6c 65 3e 0d 0a 3c  tr>..</table>..<
c6a0: 62 72 3e 3c 62 72 3e 3c 62 72 3e 0d 0a 3c 76 65  br><br><br>..<ve
c6b0: 72 62 61 74 69 6d 3e 0d 0a 55 50 44 41 54 45 20  rbatim>..UPDATE 
c6c0: 62 79 66 6f 6f 74 20 53 45 54 20 4f 70 74 69 6f  byfoot SET Optio
c6d0: 6e 73 20 3d 20 27 53 49 4d 50 4c 45 27 3b 0d 0a  ns = 'SIMPLE';..
c6e0: 0d 0a 53 45 4c 45 43 54 20 41 6c 67 6f 72 69 74  ..SELECT Algorit
c6f0: 68 6d 2c 20 4f 70 74 69 6f 6e 73 2c 20 52 6f 75  hm, Options, Rou
c700: 74 65 52 6f 77 2c 20 52 6f 6c 65 2c 20 4c 69 6e  teRow, Role, Lin
c710: 6b 52 6f 77 69 64 2c 20 4e 6f 64 65 46 72 6f 6d  kRowid, NodeFrom
c720: 2c 20 4e 6f 64 65 54 6f 2c 20 43 6f 73 74 2c 20  , NodeTo, Cost, 
c730: 47 65 6f 6d 65 74 72 79 2c 20 4e 61 6d 65 0d 0a  Geometry, Name..
c740: 46 52 4f 4d 20 62 79 66 6f 6f 74 0d 0a 57 48 45  FROM byfoot..WHE
c750: 52 45 20 4e 6f 64 65 46 72 6f 6d 20 3d 20 31 37  RE NodeFrom = 17
c760: 38 37 33 31 20 41 4e 44 20 4e 6f 64 65 54 6f 20  8731 AND NodeTo 
c770: 3d 20 31 38 33 32 38 36 3b 0d 0a 3c 2f 76 65 72  = 183286;..</ver
c780: 62 61 74 69 6d 3e 53 65 74 74 69 6e 67 20 3c 62  batim>Setting <b
c790: 3e 4f 70 74 69 6f 6e 73 3d 27 53 49 4d 50 4c 45  >Options='SIMPLE
c7a0: 27 3c 2f 62 3e 20 68 61 73 20 74 68 65 20 73 61  '</b> has the sa
c7b0: 6d 65 20 65 66 66 65 63 74 20 74 68 61 6e 20 73  me effect than s
c7c0: 65 74 74 69 6e 67 20 62 6f 74 68 20 3c 62 3e 4e  etting both <b>N
c7d0: 4f 20 4c 49 4e 4b 53 3c 2f 62 3e 20 61 6e 64 20  O LINKS</b> and 
c7e0: 3c 62 3e 4e 4f 20 47 45 4f 4d 45 54 52 49 45 53  <b>NO GEOMETRIES
c7f0: 3c 2f 62 3e 20 61 74 20 74 68 65 20 73 61 6d 65  </b> at the same
c800: 20 74 69 6d 65 2e 3c 62 72 3e 0d 0a 3c 75 3e 4e   time.<br>..<u>N
c810: 6f 74 65 3c 2f 75 3e 3a 20 74 68 69 73 20 69 73  ote</u>: this is
c820: 20 65 78 70 65 63 74 65 64 20 74 6f 20 62 65 20   expected to be 
c830: 74 68 65 20 66 61 73 74 65 73 74 20 73 65 74 74  the fastest sett
c840: 69 6e 67 2e 3c 62 72 3e 0d 0a 54 68 65 20 66 6f  ing.<br>..The fo
c850: 6c 6c 6f 77 69 6e 67 20 74 61 62 6c 65 20 73 68  llowing table sh
c860: 6f 77 73 20 74 68 65 20 72 65 73 75 6c 74 73 65  ows the resultse
c870: 74 20 72 65 74 75 72 6e 65 64 20 62 79 20 74 68  t returned by th
c880: 65 20 70 72 65 76 69 6f 75 73 20 53 68 6f 72 74  e previous Short
c890: 65 73 74 20 50 61 74 68 20 71 75 65 72 79 3b 20  est Path query; 
c8a0: 70 6c 65 61 73 65 20 6e 6f 74 69 63 65 20 74 68  please notice th
c8b0: 65 20 76 61 6c 75 65 20 69 6e 20 74 68 65 20 3c  e value in the <
c8c0: 62 3e 4f 70 74 69 6f 6e 73 3c 2f 62 3e 20 63 6f  b>Options</b> co
c8d0: 6c 75 6d 6e 2e 0d 0a 3c 62 72 3e 3c 62 72 3e 0d  lumn...<br><br>.
c8e0: 0a 3c 74 61 62 6c 65 20 62 6f 72 64 65 72 3d 22  .<table border="
c8f0: 31 22 20 62 67 63 6f 6c 6f 72 3d 22 23 66 66 66  1" bgcolor="#fff
c900: 66 63 66 22 20 63 65 6c 6c 73 70 61 63 69 6e 67  fcf" cellspacing
c910: 3d 22 34 22 20 63 65 6c 6c 70 61 64 64 69 6e 67  ="4" cellpadding
c920: 3d 22 36 22 3e 0d 0a 3c 74 72 3e 3c 74 68 20 62  ="6">..<tr><th b
c930: 67 63 6f 6c 6f 72 3d 22 23 64 30 64 30 61 30 22  gcolor="#d0d0a0"
c940: 3e 41 6c 67 6f 72 69 74 68 6d 3c 2f 74 68 3e 3c  >Algorithm</th><
c950: 74 68 20 62 67 63 6f 6c 6f 72 3d 22 23 64 30 64  th bgcolor="#d0d
c960: 30 61 30 22 3e 4f 70 74 69 6f 6e 73 3c 2f 74 68  0a0">Options</th
c970: 3e 3c 74 68 20 62 67 63 6f 6c 6f 72 3d 22 23 64  ><th bgcolor="#d
c980: 30 64 30 61 30 22 3e 52 6f 75 74 65 52 6f 77 3c  0d0a0">RouteRow<
c990: 2f 74 68 3e 3c 74 68 20 62 67 63 6f 6c 6f 72 3d  /th><th bgcolor=
c9a0: 22 23 64 30 64 30 61 30 22 3e 52 6f 6c 65 3c 2f  "#d0d0a0">Role</
c9b0: 74 68 3e 3c 74 68 20 62 67 63 6f 6c 6f 72 3d 22  th><th bgcolor="
c9c0: 23 64 30 64 30 61 30 22 3e 4c 69 6e 6b 52 6f 77  #d0d0a0">LinkRow
c9d0: 69 64 3c 2f 74 68 3e 3c 74 68 20 62 67 63 6f 6c  id</th><th bgcol
c9e0: 6f 72 3d 22 23 64 30 64 30 61 30 22 3e 4e 6f 64  or="#d0d0a0">Nod
c9f0: 65 46 72 6f 6d 3c 2f 74 68 3e 3c 74 68 20 62 67  eFrom</th><th bg
ca00: 63 6f 6c 6f 72 3d 22 23 64 30 64 30 61 30 22 3e  color="#d0d0a0">
ca10: 4e 6f 64 65 54 6f 3c 2f 74 68 3e 3c 74 68 20 62  NodeTo</th><th b
ca20: 67 63 6f 6c 6f 72 3d 22 23 64 30 64 30 61 30 22  gcolor="#d0d0a0"
ca30: 3e 43 6f 73 74 3c 2f 74 68 3e 3c 74 68 20 62 67  >Cost</th><th bg
ca40: 63 6f 6c 6f 72 3d 22 23 64 30 64 30 61 30 22 3e  color="#d0d0a0">
ca50: 47 65 6f 6d 65 74 72 79 3c 2f 74 68 3e 3c 74 68  Geometry</th><th
ca60: 20 62 67 63 6f 6c 6f 72 3d 22 23 64 30 64 30 61   bgcolor="#d0d0a
ca70: 30 22 3e 4e 61 6d 65 3c 2f 74 68 3e 3c 2f 74 72  0">Name</th></tr
ca80: 3e 0d 0a 3c 74 72 3e 0d 0a 3c 74 64 3e 41 2a 3c  >..<tr>..<td>A*<
ca90: 2f 74 64 3e 3c 74 64 3e 53 69 6d 70 6c 65 3c 2f  /td><td>Simple</
caa0: 74 64 3e 3c 74 64 20 61 6c 69 67 6e 3d 22 72 69  td><td align="ri
cab0: 67 68 74 22 3e 30 3c 2f 74 64 3e 3c 74 64 3e 52  ght">0</td><td>R
cac0: 6f 75 74 65 3c 2f 74 64 3e 3c 74 64 3e 4e 55 4c  oute</td><td>NUL
cad0: 4c 3c 2f 74 64 3e 3c 74 64 20 61 6c 69 67 6e 3d  L</td><td align=
cae0: 22 72 69 67 68 74 22 3e 31 37 38 37 33 31 3c 2f  "right">178731</
caf0: 74 64 3e 3c 74 64 20 61 6c 69 67 6e 3d 22 72 69  td><td align="ri
cb00: 67 68 74 22 3e 31 38 33 32 38 36 3c 2f 74 64 3e  ght">183286</td>
cb10: 3c 74 64 20 61 6c 69 67 6e 3d 22 72 69 67 68 74  <td align="right
cb20: 22 3e 33 30 30 2e 39 31 32 32 30 38 3c 2f 74 64  ">300.912208</td
cb30: 3e 3c 74 64 3e 4e 55 4c 4c 3c 2f 74 64 3e 3c 74  ><td>NULL</td><t
cb40: 64 3e 4e 55 4c 4c 3c 2f 74 64 3e 0d 0a 3c 2f 74  d>NULL</td>..</t
cb50: 72 3e 0d 0a 3c 2f 74 61 62 6c 65 3e 0d 0a 3c 62  r>..</table>..<b
cb60: 72 3e 0d 0a 46 69 6e 61 6c 6c 79 2c 20 69 66 20  r>..Finally, if 
cb70: 79 6f 75 20 77 69 73 68 20 74 6f 20 73 65 6c 65  you wish to sele
cb80: 63 74 20 61 67 61 69 6e 20 74 68 65 20 69 6e 69  ct again the ini
cb90: 74 69 61 6c 20 73 74 61 6e 64 61 72 64 20 73 65  tial standard se
cba0: 74 74 69 6e 67 20 79 6f 75 20 6a 75 73 74 20 68  tting you just h
cbb0: 61 76 65 20 74 6f 20 65 78 65 63 75 74 65 3c 62  ave to execute<b
cbc0: 72 3e 20 3c 62 3e 55 50 44 41 54 45 20 62 79 66  r> <b>UPDATE byf
cbd0: 6f 6f 74 20 53 45 54 20 4f 70 74 69 6f 6e 73 20  oot SET Options 
cbe0: 3d 20 27 46 55 4c 4c 27 3b 3c 2f 62 3e 2e 3c 62  = 'FULL';</b>.<b
cbf0: 72 3e 3c 62 72 3e 0d 0a 3c 68 72 3e 3c 62 72 3e  r><br>..<hr><br>
cc00: 0d 0a 3c 68 31 3e 3c 61 20 6e 61 6d 65 3d 22 6d  ..<h1><a name="m
cc10: 75 6c 74 69 22 3e 35 20 2d 20 53 6f 6c 76 69 6e  ulti">5 - Solvin
cc20: 67 20 6d 75 6c 74 69 2d 64 65 73 74 69 6e 61 74  g multi-destinat
cc30: 69 6f 6e 20 53 68 6f 72 74 65 73 74 20 50 61 74  ion Shortest Pat
cc40: 68 20 70 72 6f 62 6c 65 6d 73 3c 2f 61 3e 3c 2f  h problems</a></
cc50: 68 31 3e 0d 0a 41 20 76 65 72 79 20 69 6e 74 65  h1>..A very inte
cc60: 72 65 73 74 69 6e 67 20 66 65 61 74 75 72 65 20  resting feature 
cc70: 73 75 70 70 6f 72 74 65 64 20 62 79 20 74 68 65  supported by the
cc80: 20 44 69 6a 6b 73 74 72 61 27 73 20 41 6c 67 6f   Dijkstra's Algo
cc90: 72 69 74 68 6d 20 69 73 20 74 68 61 74 20 69 74  rithm is that it
cca0: 20 72 6f 62 75 73 74 6c 79 20 65 6e 73 75 72 65   robustly ensure
ccb0: 73 20 74 68 61 74 20 77 68 65 6e 20 61 20 64 65  s that when a de
ccc0: 73 74 69 6e 61 74 69 6f 6e 20 69 73 20 72 65 61  stination is rea
ccd0: 63 68 65 64 20 61 6c 6c 20 74 68 65 20 64 65 73  ched all the des
cce0: 74 69 6e 61 74 69 6f 6e 73 20 70 72 65 73 65 6e  tinations presen
ccf0: 74 69 6e 67 20 61 20 3c 62 3e 6c 65 73 73 65 72  ting a <b>lesser
cd00: 20 63 6f 73 74 3c 2f 62 3e 20 68 61 76 65 20 61   cost</b> have a
cd10: 6c 72 65 61 64 79 20 62 65 65 6e 20 72 65 61 63  lready been reac
cd20: 68 65 64 20 69 6e 20 73 6f 6d 65 20 70 72 65 76  hed in some prev
cd30: 69 6f 75 73 20 73 74 65 70 20 6f 66 20 74 68 65  ious step of the
cd40: 20 70 72 6f 63 65 73 73 2e 3c 62 72 3e 0d 0a 54   process.<br>..T
cd50: 68 69 73 20 61 6c 6c 6f 77 73 20 74 6f 20 65 66  his allows to ef
cd60: 66 69 63 69 65 6e 74 6c 79 20 73 75 70 70 6f 72  ficiently suppor
cd70: 74 20 3c 62 3e 6d 75 6c 74 69 70 6c 65 20 64 65  t <b>multiple de
cd80: 73 74 69 6e 61 74 69 6f 6e 73 3c 2f 62 3e 20 53  stinations</b> S
cd90: 68 6f 72 74 65 73 74 20 50 61 74 68 20 71 75 65  hortest Path que
cda0: 72 69 65 73 2e 0d 0a 59 6f 75 20 73 69 6d 70 6c  ries...You simpl
cdb0: 79 20 68 61 76 65 20 74 6f 20 73 70 65 63 69 66  y have to specif
cdc0: 79 20 61 20 3c 62 3e 73 69 6e 67 6c 65 20 6f 72  y a <b>single or
cdd0: 69 67 69 6e 20 4e 6f 64 65 3c 2f 62 3e 20 61 6e  igin Node</b> an
cde0: 64 20 61 6e 20 3c 62 3e 61 72 62 69 74 72 61 72  d an <b>arbitrar
cdf0: 79 20 6c 69 73 74 20 6f 66 20 64 65 73 74 69 6e  y list of destin
ce00: 61 74 69 6f 6e 20 4e 6f 64 65 73 3c 2f 62 3e 20  ation Nodes</b> 
ce10: 69 6e 20 61 20 73 69 6e 67 6c 65 20 44 69 6a 6b  in a single Dijk
ce20: 73 74 72 61 27 73 20 65 78 65 63 75 74 69 6f 6e  stra's execution
ce30: 2e 3c 62 72 3e 3c 62 72 3e 0d 0a 3c 75 3e 4e 6f  .<br><br>..<u>No
ce40: 74 65 3c 2f 75 3e 3a 20 65 78 65 63 75 74 69 6e  te</u>: executin
ce50: 67 20 61 20 6d 75 6c 74 69 2d 64 65 73 74 69 6e  g a multi-destin
ce60: 61 74 69 6f 6e 20 53 68 6f 72 74 65 73 74 20 50  ation Shortest P
ce70: 61 74 68 20 71 75 65 72 79 20 72 65 71 75 69 72  ath query requir
ce80: 65 73 20 61 20 3c 62 3e 70 72 6f 63 65 73 73 69  es a <b>processi
ce90: 6e 67 20 74 69 6d 65 3c 2f 62 3e 20 74 68 61 74  ng time</b> that
cea0: 20 69 73 6e 27 74 20 74 68 65 20 3c 75 3e 73 75   isn't the <u>su
ceb0: 6d 20 6f 66 20 61 6c 6c 20 69 6e 64 69 76 69 64  m of all individ
cec0: 75 61 6c 20 74 69 6d 69 6e 67 73 20 66 6f 72 20  ual timings for 
ced0: 65 61 63 68 20 64 65 73 74 69 6e 61 74 69 6f 6e  each destination
cee0: 3c 2f 75 3e 2c 20 62 75 74 20 73 69 6d 70 6c 79  </u>, but simply
cef0: 20 69 73 20 74 68 65 20 3c 75 3e 74 69 6d 65 20   is the <u>time 
cf00: 72 65 71 75 69 72 65 64 20 74 6f 20 72 65 61 63  required to reac
cf10: 68 20 74 68 65 20 6d 6f 73 74 20 63 6f 73 74 6c  h the most costl
cf20: 79 20 6f 66 20 61 6c 6c 20 64 65 73 74 69 6e 61  y of all destina
cf30: 74 69 6f 6e 73 20 69 6e 20 74 68 65 20 6c 69 73  tions in the lis
cf40: 74 3c 2f 75 3e 2e 3c 62 72 3e 0d 0a 54 68 69 73  t</u>.<br>..This
cf50: 20 69 73 6e 27 74 20 72 69 67 6f 72 6f 75 73 6c   isn't rigorousl
cf60: 79 20 74 72 75 65 20 69 6e 20 74 68 65 20 63 61  y true in the ca
cf70: 73 65 20 6f 66 20 74 68 65 20 56 69 72 74 75 61  se of the Virtua
cf80: 6c 52 6f 75 74 69 6e 67 20 73 70 65 63 69 66 69  lRouting specifi
cf90: 63 20 69 6d 70 6c 65 6d 65 6e 74 61 74 69 6f 6e  c implementation
cfa0: 2c 20 62 65 63 61 75 73 65 20 61 72 72 61 6e 67  , because arrang
cfb0: 69 6e 67 20 74 68 65 20 72 65 73 75 6c 74 73 65  ing the resultse
cfc0: 74 20 74 6f 20 62 65 20 72 65 74 75 72 6e 65 64  t to be returned
cfd0: 20 61 6e 64 20 63 72 65 61 74 69 6e 67 20 61 6c   and creating al
cfe0: 6c 20 74 68 65 20 69 6e 64 69 76 69 64 75 61 6c  l the individual
cff0: 20 4c 69 6e 65 73 74 72 69 6e 67 73 20 66 6f 72   Linestrings for
d000: 20 65 61 63 68 20 64 65 73 74 69 6e 61 74 69 6f   each destinatio
d010: 6e 20 77 69 6c 6c 20 73 75 72 65 6c 79 20 69 6d  n will surely im
d020: 70 6f 73 65 20 73 6f 6d 65 20 66 75 72 74 68 65  pose some furthe
d030: 72 20 6f 76 65 72 68 65 61 64 2c 20 62 75 74 20  r overhead, but 
d040: 6e 6f 6e 65 74 68 65 6c 65 73 73 20 69 74 20 72  nonetheless it r
d050: 65 6d 61 69 6e 73 20 63 6f 6e 66 69 72 6d 65 64  emains confirmed
d060: 20 74 68 61 74 20 65 78 65 63 75 74 69 6e 67 20   that executing 
d070: 61 20 73 69 6e 67 6c 65 20 6d 75 6c 74 69 2d 64  a single multi-d
d080: 65 73 74 69 6e 61 74 69 6f 6e 20 71 75 65 72 79  estination query
d090: 20 77 69 6c 6c 20 73 75 72 65 6c 79 20 62 65 20   will surely be 
d0a0: 20 6e 6f 74 69 63 65 61 62 6c 79 20 66 61 73 74   noticeably fast
d0b0: 65 72 20 74 68 65 6e 20 65 78 65 63 75 74 69 6e  er then executin
d0c0: 67 20 6d 61 6e 79 20 73 70 61 72 73 65 20 73 69  g many sparse si
d0d0: 6e 67 6c 65 2d 64 65 73 74 69 6e 61 74 69 6f 6e  ngle-destination
d0e0: 20 71 75 65 72 69 65 73 2e 0d 0a 3c 76 65 72 62   queries...<verb
d0f0: 61 74 69 6d 3e 0d 0a 53 45 4c 45 43 54 20 41 6c  atim>..SELECT Al
d100: 67 6f 72 69 74 68 6d 2c 20 52 65 71 75 65 73 74  gorithm, Request
d110: 2c 20 4f 70 74 69 6f 6e 73 2c 20 44 65 6c 69 6d  , Options, Delim
d120: 69 74 65 72 2c 20 52 6f 75 74 65 49 64 2c 20 52  iter, RouteId, R
d130: 6f 75 74 65 52 6f 77 2c 20 52 6f 6c 65 2c 20 4c  outeRow, Role, L
d140: 69 6e 6b 52 6f 77 69 64 2c 20 4e 6f 64 65 46 72  inkRowid, NodeFr
d150: 6f 6d 2c 20 4e 6f 64 65 54 6f 2c 20 43 6f 73 74  om, NodeTo, Cost
d160: 2c 20 47 65 6f 6d 65 74 72 79 2c 20 4e 61 6d 65  , Geometry, Name
d170: 0d 0a 46 52 4f 4d 20 62 79 66 6f 6f 74 0d 0a 57  ..FROM byfoot..W
d180: 48 45 52 45 20 4e 6f 64 65 46 72 6f 6d 20 3d 20  HERE NodeFrom = 
d190: 31 37 38 37 33 31 20 41 4e 44 20 4e 6f 64 65 54  178731 AND NodeT
d1a0: 6f 20 3d 20 27 31 38 33 32 38 36 2c 32 39 30 34  o = '183286,2904
d1b0: 35 38 2c 31 38 31 39 39 39 2c 31 38 34 30 33 30  58,181999,184030
d1c0: 2c 31 32 34 36 32 32 2c 31 38 33 38 38 32 2c 31  ,124622,183882,1
d1d0: 37 38 37 35 34 27 3b 0d 0a 3c 2f 76 65 72 62 61  78754';..</verba
d1e0: 74 69 6d 3e 0d 0a 41 73 20 79 6f 75 20 63 61 6e  tim>..As you can
d1f0: 20 65 61 73 69 6c 79 20 6e 6f 74 69 63 65 2c 20   easily notice, 
d200: 61 20 3c 62 3e 6d 75 6c 74 69 70 6c 65 2d 64 65  a <b>multiple-de
d210: 73 74 69 6e 61 74 69 6f 6e 73 3c 2f 62 3e 20 71  stinations</b> q
d220: 75 65 72 79 20 68 61 73 20 74 68 65 20 73 61 6d  uery has the sam
d230: 65 20 69 64 65 6e 74 69 63 61 6c 20 66 6f 72 6d  e identical form
d240: 20 6f 66 20 61 6e 79 20 75 73 75 61 6c 20 53 68   of any usual Sh
d250: 6f 72 74 65 73 74 20 50 61 74 68 20 71 75 65 72  ortest Path quer
d260: 79 2c 20 65 78 63 65 70 74 20 69 6e 20 74 68 61  y, except in tha
d270: 74 20 3c 62 3e 4e 6f 64 65 54 6f 3c 2f 62 3e 20  t <b>NodeTo</b> 
d280: 6e 6f 77 20 63 6f 72 72 65 73 70 6f 6e 64 73 20  now corresponds 
d290: 74 6f 20 61 20 63 6f 6d 6d 61 2d 73 65 70 61 72  to a comma-separ
d2a0: 61 74 65 64 20 6c 69 73 74 2e 3c 62 72 3e 0d 0a  ated list.<br>..
d2b0: 54 68 65 20 66 6f 6c 6c 6f 77 69 6e 67 20 74 61  The following ta
d2c0: 62 6c 65 20 73 68 6f 77 73 20 74 68 65 20 72 65  ble shows the re
d2d0: 73 75 6c 74 73 65 74 20 72 65 74 75 72 6e 65 64  sultset returned
d2e0: 20 62 79 20 74 68 65 20 70 72 65 76 69 6f 75 73   by the previous
d2f0: 20 6d 75 6c 74 69 2d 64 65 73 74 69 6e 61 74 69   multi-destinati
d300: 6f 6e 20 53 68 6f 72 74 65 73 74 20 50 61 74 68  on Shortest Path
d310: 20 71 75 65 72 79 2e 0d 0a 3c 62 72 3e 3c 62 72   query...<br><br
d320: 3e 0d 0a 3c 74 61 62 6c 65 20 62 6f 72 64 65 72  >..<table border
d330: 3d 22 31 22 20 62 67 63 6f 6c 6f 72 3d 22 23 66  ="1" bgcolor="#f
d340: 66 66 66 63 66 22 20 63 65 6c 6c 73 70 61 63 69  fffcf" cellspaci
d350: 6e 67 3d 22 34 22 20 63 65 6c 6c 70 61 64 64 69  ng="4" cellpaddi
d360: 6e 67 3d 22 36 22 3e 0d 0a 3c 74 72 3e 3c 74 68  ng="6">..<tr><th
d370: 20 62 67 63 6f 6c 6f 72 3d 22 23 64 30 64 30 61   bgcolor="#d0d0a
d380: 30 22 3e 41 6c 67 6f 72 69 74 68 6d 3c 2f 74 68  0">Algorithm</th
d390: 3e 3c 74 68 20 62 67 63 6f 6c 6f 72 3d 22 23 64  ><th bgcolor="#d
d3a0: 30 64 30 61 30 22 3e 52 65 71 75 65 73 74 3c 2f  0d0a0">Request</
d3b0: 74 68 3e 3c 74 68 20 62 67 63 6f 6c 6f 72 3d 22  th><th bgcolor="
d3c0: 23 64 30 64 30 61 30 22 3e 4f 70 74 69 6f 6e 73  #d0d0a0">Options
d3d0: 3c 2f 74 68 3e 3c 74 68 20 62 67 63 6f 6c 6f 72  </th><th bgcolor
d3e0: 3d 22 23 64 30 64 30 61 30 22 3e 44 65 6c 69 6d  ="#d0d0a0">Delim
d3f0: 69 74 65 72 3c 2f 74 68 3e 3c 74 68 20 62 67 63  iter</th><th bgc
d400: 6f 6c 6f 72 3d 22 23 64 30 64 30 61 30 22 3e 52  olor="#d0d0a0">R
d410: 6f 75 74 65 49 64 3c 2f 74 68 3e 3c 74 68 20 62  outeId</th><th b
d420: 67 63 6f 6c 6f 72 3d 22 23 64 30 64 30 61 30 22  gcolor="#d0d0a0"
d430: 3e 52 6f 75 74 65 52 6f 77 3c 2f 74 68 3e 3c 74  >RouteRow</th><t
d440: 68 20 62 67 63 6f 6c 6f 72 3d 22 23 64 30 64 30  h bgcolor="#d0d0
d450: 61 30 22 3e 52 6f 6c 65 3c 2f 74 68 3e 3c 74 68  a0">Role</th><th
d460: 20 62 67 63 6f 6c 6f 72 3d 22 23 64 30 64 30 61   bgcolor="#d0d0a
d470: 30 22 3e 4c 69 6e 6b 52 6f 77 69 64 3c 2f 74 68  0">LinkRowid</th
d480: 3e 3c 74 68 20 62 67 63 6f 6c 6f 72 3d 22 23 64  ><th bgcolor="#d
d490: 30 64 30 61 30 22 3e 4e 6f 64 65 46 72 6f 6d 3c  0d0a0">NodeFrom<
d4a0: 2f 74 68 3e 3c 74 68 20 62 67 63 6f 6c 6f 72 3d  /th><th bgcolor=
d4b0: 22 23 64 30 64 30 61 30 22 3e 4e 6f 64 65 54 6f  "#d0d0a0">NodeTo
d4c0: 3c 2f 74 68 3e 3c 74 68 20 62 67 63 6f 6c 6f 72  </th><th bgcolor
d4d0: 3d 22 23 64 30 64 30 61 30 22 3e 43 6f 73 74 3c  ="#d0d0a0">Cost<
d4e0: 2f 74 68 3e 3c 74 68 20 62 67 63 6f 6c 6f 72 3d  /th><th bgcolor=
d4f0: 22 23 64 30 64 30 61 30 22 3e 47 65 6f 6d 65 74  "#d0d0a0">Geomet
d500: 72 79 3c 2f 74 68 3e 3c 74 68 20 62 67 63 6f 6c  ry</th><th bgcol
d510: 6f 72 3d 22 23 64 30 64 30 61 30 22 3e 4e 61 6d  or="#d0d0a0">Nam
d520: 65 3c 2f 74 68 3e 3c 2f 74 72 3e 0d 0a 3c 74 72  e</th></tr>..<tr
d530: 3e 0d 0a 3c 74 64 3e 44 69 6a 6b 73 74 72 61 3c  >..<td>Dijkstra<
d540: 2f 74 64 3e 3c 74 64 3e 53 68 6f 72 74 65 73 74  /td><td>Shortest
d550: 20 50 61 74 68 3c 2f 74 64 3e 3c 74 64 3e 46 75   Path</td><td>Fu
d560: 6c 6c 3c 2f 74 64 3e 3c 74 64 3e 2c 20 26 23 39  ll</td><td>, &#9
d570: 31 3b 64 65 63 3d 34 34 2c 20 68 65 78 3d 32 63  1;dec=44, hex=2c
d580: 26 23 39 33 3b 3c 2f 74 64 3e 3c 74 64 20 61 6c  &#93;</td><td al
d590: 69 67 6e 3d 22 72 69 67 68 74 22 3e 30 3c 2f 74  ign="right">0</t
d5a0: 64 3e 3c 74 64 20 61 6c 69 67 6e 3d 22 72 69 67  d><td align="rig
d5b0: 68 74 22 3e 30 3c 2f 74 64 3e 3c 74 64 3e 52 6f  ht">0</td><td>Ro
d5c0: 75 74 65 3c 2f 74 64 3e 3c 74 64 3e 4e 55 4c 4c  ute</td><td>NULL
d5d0: 3c 2f 74 64 3e 3c 74 64 20 61 6c 69 67 6e 3d 22  </td><td align="
d5e0: 72 69 67 68 74 22 3e 31 37 38 37 33 31 3c 2f 74  right">178731</t
d5f0: 64 3e 3c 74 64 20 61 6c 69 67 6e 3d 22 72 69 67  d><td align="rig
d600: 68 74 22 3e 31 38 33 38 38 32 3c 2f 74 64 3e 3c  ht">183882</td><
d610: 74 64 20 61 6c 69 67 6e 3d 22 72 69 67 68 74 22  td align="right"
d620: 3e 31 35 34 2e 37 35 30 38 33 39 3c 2f 74 64 3e  >154.750839</td>
d630: 3c 74 64 3e 42 4c 4f 42 20 73 7a 3d 32 34 30 20  <td>BLOB sz=240 
d640: 47 45 4f 4d 45 54 52 59 3c 2f 74 64 3e 3c 74 64  GEOMETRY</td><td
d650: 3e 4e 55 4c 4c 3c 2f 74 64 3e 0d 0a 3c 2f 74 72  >NULL</td>..</tr
d660: 3e 0d 0a 3c 74 72 3e 0d 0a 3c 74 64 3e 4e 55 4c  >..<tr>..<td>NUL
d670: 4c 3c 2f 74 64 3e 3c 74 64 3e 4e 55 4c 4c 3c 2f  L</td><td>NULL</
d680: 74 64 3e 3c 74 64 3e 4e 55 4c 4c 3c 2f 74 64 3e  td><td>NULL</td>
d690: 3c 74 64 3e 4e 55 4c 4c 3c 2f 74 64 3e 3c 74 64  <td>NULL</td><td
d6a0: 20 61 6c 69 67 6e 3d 22 72 69 67 68 74 22 3e 30   align="right">0
d6b0: 3c 2f 74 64 3e 3c 74 64 20 61 6c 69 67 6e 3d 22  </td><td align="
d6c0: 72 69 67 68 74 22 3e 31 3c 2f 74 64 3e 3c 74 64  right">1</td><td
d6d0: 3e 4c 69 6e 6b 3c 2f 74 64 3e 3c 74 64 20 61 6c  >Link</td><td al
d6e0: 69 67 6e 3d 22 72 69 67 68 74 22 3e 32 32 32 36  ign="right">2226
d6f0: 33 36 3c 2f 74 64 3e 3c 74 64 20 61 6c 69 67 6e  36</td><td align
d700: 3d 22 72 69 67 68 74 22 3e 31 37 38 37 33 31 3c  ="right">178731<
d710: 2f 74 64 3e 3c 74 64 20 61 6c 69 67 6e 3d 22 72  /td><td align="r
d720: 69 67 68 74 22 3e 31 38 32 30 30 30 3c 2f 74 64  ight">182000</td
d730: 3e 3c 74 64 20 61 6c 69 67 6e 3d 22 72 69 67 68  ><td align="righ
d740: 74 22 3e 31 30 33 2e 37 33 35 37 32 32 3c 2f 74  t">103.735722</t
d750: 64 3e 3c 74 64 3e 4e 55 4c 4c 3c 2f 74 64 3e 3c  d><td>NULL</td><
d760: 74 64 3e 56 49 41 20 50 49 45 54 52 4f 20 41 52  td>VIA PIETRO AR
d770: 45 54 49 4e 4f 3c 2f 74 64 3e 0d 0a 3c 2f 74 72  ETINO</td>..</tr
d780: 3e 0d 0a 3c 74 72 3e 0d 0a 3c 74 64 3e 4e 55 4c  >..<tr>..<td>NUL
d790: 4c 3c 2f 74 64 3e 3c 74 64 3e 4e 55 4c 4c 3c 2f  L</td><td>NULL</
d7a0: 74 64 3e 3c 74 64 3e 4e 55 4c 4c 3c 2f 74 64 3e  td><td>NULL</td>
d7b0: 3c 74 64 3e 4e 55 4c 4c 3c 2f 74 64 3e 3c 74 64  <td>NULL</td><td
d7c0: 20 61 6c 69 67 6e 3d 22 72 69 67 68 74 22 3e 30   align="right">0
d7d0: 3c 2f 74 64 3e 3c 74 64 20 61 6c 69 67 6e 3d 22  </td><td align="
d7e0: 72 69 67 68 74 22 3e 32 3c 2f 74 64 3e 3c 74 64  right">2</td><td
d7f0: 3e 4c 69 6e 6b 3c 2f 74 64 3e 3c 74 64 20 61 6c  >Link</td><td al
d800: 69 67 6e 3d 22 72 69 67 68 74 22 3e 32 32 35 35  ign="right">2255
d810: 32 37 3c 2f 74 64 3e 3c 74 64 20 61 6c 69 67 6e  27</td><td align
d820: 3d 22 72 69 67 68 74 22 3e 31 38 32 30 30 30 3c  ="right">182000<
d830: 2f 74 64 3e 3c 74 64 20 61 6c 69 67 6e 3d 22 72  /td><td align="r
d840: 69 67 68 74 22 3e 31 38 33 38 38 32 3c 2f 74 64  ight">183882</td
d850: 3e 3c 74 64 20 61 6c 69 67 6e 3d 22 72 69 67 68  ><td align="righ
d860: 74 22 3e 35 31 2e 30 31 35 31 31 37 3c 2f 74 64  t">51.015117</td
d870: 3e 3c 74 64 3e 4e 55 4c 4c 3c 2f 74 64 3e 3c 74  ><td>NULL</td><t
d880: 64 3e 56 49 41 20 4c 49 43 49 4f 20 4e 45 4e 43  d>VIA LICIO NENC
d890: 45 54 54 49 3c 2f 74 64 3e 0d 0a 3c 2f 74 72 3e  ETTI</td>..</tr>
d8a0: 0d 0a 3c 74 72 3e 0d 0a 3c 74 64 3e 4e 55 4c 4c  ..<tr>..<td>NULL
d8b0: 3c 2f 74 64 3e 3c 74 64 3e 4e 55 4c 4c 3c 2f 74  </td><td>NULL</t
d8c0: 64 3e 3c 74 64 3e 4e 55 4c 4c 3c 2f 74 64 3e 3c  d><td>NULL</td><
d8d0: 74 64 3e 4e 55 4c 4c 3c 2f 74 64 3e 3c 74 64 20  td>NULL</td><td 
d8e0: 61 6c 69 67 6e 3d 22 72 69 67 68 74 22 3e 31 3c  align="right">1<
d8f0: 2f 74 64 3e 3c 74 64 20 61 6c 69 67 6e 3d 22 72  /td><td align="r
d900: 69 67 68 74 22 3e 30 3c 2f 74 64 3e 3c 74 64 3e  ight">0</td><td>
d910: 52 6f 75 74 65 3c 2f 74 64 3e 3c 74 64 3e 4e 55  Route</td><td>NU
d920: 4c 4c 3c 2f 74 64 3e 3c 74 64 20 61 6c 69 67 6e  LL</td><td align
d930: 3d 22 72 69 67 68 74 22 3e 31 37 38 37 33 31 3c  ="right">178731<
d940: 2f 74 64 3e 3c 74 64 20 61 6c 69 67 6e 3d 22 72  /td><td align="r
d950: 69 67 68 74 22 3e 31 38 34 30 33 30 3c 2f 74 64  ight">184030</td
d960: 3e 3c 74 64 20 61 6c 69 67 6e 3d 22 72 69 67 68  ><td align="righ
d970: 74 22 3e 31 37 36 2e 33 36 34 37 35 35 3c 2f 74  t">176.364755</t
d980: 64 3e 3c 74 64 3e 42 4c 4f 42 20 73 7a 3d 33 30  d><td>BLOB sz=30
d990: 34 20 47 45 4f 4d 45 54 52 59 3c 2f 74 64 3e 3c  4 GEOMETRY</td><
d9a0: 74 64 3e 4e 55 4c 4c 3c 2f 74 64 3e 0d 0a 3c 2f  td>NULL</td>..</
d9b0: 74 72 3e 0d 0a 3c 74 72 3e 0d 0a 3c 74 64 3e 4e  tr>..<tr>..<td>N
d9c0: 55 4c 4c 3c 2f 74 64 3e 3c 74 64 3e 4e 55 4c 4c  ULL</td><td>NULL
d9d0: 3c 2f 74 64 3e 3c 74 64 3e 4e 55 4c 4c 3c 2f 74  </td><td>NULL</t
d9e0: 64 3e 3c 74 64 3e 4e 55 4c 4c 3c 2f 74 64 3e 3c  d><td>NULL</td><
d9f0: 74 64 20 61 6c 69 67 6e 3d 22 72 69 67 68 74 22  td align="right"
da00: 3e 31 3c 2f 74 64 3e 3c 74 64 20 61 6c 69 67 6e  >1</td><td align
da10: 3d 22 72 69 67 68 74 22 3e 31 3c 2f 74 64 3e 3c  ="right">1</td><
da20: 74 64 3e 4c 69 6e 6b 3c 2f 74 64 3e 3c 74 64 20  td>Link</td><td 
da30: 61 6c 69 67 6e 3d 22 72 69 67 68 74 22 3e 32 32  align="right">22
da40: 34 30 31 34 3c 2f 74 64 3e 3c 74 64 20 61 6c 69  4014</td><td ali
da50: 67 6e 3d 22 72 69 67 68 74 22 3e 31 37 38 37 33  gn="right">17873
da60: 31 3c 2f 74 64 3e 3c 74 64 20 61 6c 69 67 6e 3d  1</td><td align=
da70: 22 72 69 67 68 74 22 3e 31 38 32 38 38 35 3c 2f  "right">182885</
da80: 74 64 3e 3c 74 64 20 61 6c 69 67 6e 3d 22 72 69  td><td align="ri
da90: 67 68 74 22 3e 39 34 2e 38 31 32 34 32 34 3c 2f  ght">94.812424</
daa0: 74 64 3e 3c 74 64 3e 4e 55 4c 4c 3c 2f 74 64 3e  td><td>NULL</td>
dab0: 3c 74 64 3e 56 49 41 20 50 49 45 54 52 4f 20 41  <td>VIA PIETRO A
dac0: 52 45 54 49 4e 4f 3c 2f 74 64 3e 0d 0a 3c 2f 74  RETINO</td>..</t
dad0: 72 3e 0d 0a 3c 74 72 3e 0d 0a 3c 74 64 3e 4e 55  r>..<tr>..<td>NU
dae0: 4c 4c 3c 2f 74 64 3e 3c 74 64 3e 4e 55 4c 4c 3c  LL</td><td>NULL<
daf0: 2f 74 64 3e 3c 74 64 3e 4e 55 4c 4c 3c 2f 74 64  /td><td>NULL</td
db00: 3e 3c 74 64 3e 4e 55 4c 4c 3c 2f 74 64 3e 3c 74  ><td>NULL</td><t
db10: 64 20 61 6c 69 67 6e 3d 22 72 69 67 68 74 22 3e  d align="right">
db20: 31 3c 2f 74 64 3e 3c 74 64 20 61 6c 69 67 6e 3d  1</td><td align=
db30: 22 72 69 67 68 74 22 3e 32 3c 2f 74 64 3e 3c 74  "right">2</td><t
db40: 64 3e 4c 69 6e 6b 3c 2f 74 64 3e 3c 74 64 20 61  d>Link</td><td a
db50: 6c 69 67 6e 3d 22 72 69 67 68 74 22 3e 32 32 34  lign="right">224
db60: 38 36 32 3c 2f 74 64 3e 3c 74 64 20 61 6c 69 67  862</td><td alig
db70: 6e 3d 22 72 69 67 68 74 22 3e 31 38 32 38 38 35  n="right">182885
db80: 3c 2f 74 64 3e 3c 74 64 20 61 6c 69 67 6e 3d 22  </td><td align="
db90: 72 69 67 68 74 22 3e 31 38 32 30 34 33 3c 2f 74  right">182043</t
dba0: 64 3e 3c 74 64 20 61 6c 69 67 6e 3d 22 72 69 67  d><td align="rig
dbb0: 68 74 22 3e 33 37 2e 30 39 35 32 38 37 3c 2f 74  ht">37.095287</t
dbc0: 64 3e 3c 74 64 3e 4e 55 4c 4c 3c 2f 74 64 3e 3c  d><td>NULL</td><
dbd0: 74 64 3e 56 49 41 20 4d 41 52 47 41 52 49 54 4f  td>VIA MARGARITO
dbe0: 4e 45 3c 2f 74 64 3e 0d 0a 3c 2f 74 72 3e 0d 0a  NE</td>..</tr>..
dbf0: 3c 74 72 3e 0d 0a 3c 74 64 3e 4e 55 4c 4c 3c 2f  <tr>..<td>NULL</
dc00: 74 64 3e 3c 74 64 3e 4e 55 4c 4c 3c 2f 74 64 3e  td><td>NULL</td>
dc10: 3c 74 64 3e 4e 55 4c 4c 3c 2f 74 64 3e 3c 74 64  <td>NULL</td><td
dc20: 3e 4e 55 4c 4c 3c 2f 74 64 3e 3c 74 64 20 61 6c  >NULL</td><td al
dc30: 69 67 6e 3d 22 72 69 67 68 74 22 3e 31 3c 2f 74  ign="right">1</t
dc40: 64 3e 3c 74 64 20 61 6c 69 67 6e 3d 22 72 69 67  d><td align="rig
dc50: 68 74 22 3e 33 3c 2f 74 64 3e 3c 74 64 3e 4c 69  ht">3</td><td>Li
dc60: 6e 6b 3c 2f 74 64 3e 3c 74 64 20 61 6c 69 67 6e  nk</td><td align
dc70: 3d 22 72 69 67 68 74 22 3e 32 32 36 30 37 30 3c  ="right">226070<
dc80: 2f 74 64 3e 3c 74 64 20 61 6c 69 67 6e 3d 22 72  /td><td align="r
dc90: 69 67 68 74 22 3e 31 38 32 30 34 33 3c 2f 74 64  ight">182043</td
dca0: 3e 3c 74 64 20 61 6c 69 67 6e 3d 22 72 69 67 68  ><td align="righ
dcb0: 74 22 3e 31 38 34 30 33 30 3c 2f 74 64 3e 3c 74  t">184030</td><t
dcc0: 64 20 61 6c 69 67 6e 3d 22 72 69 67 68 74 22 3e  d align="right">
dcd0: 34 34 2e 34 35 37 30 34 34 3c 2f 74 64 3e 3c 74  44.457044</td><t
dce0: 64 3e 4e 55 4c 4c 3c 2f 74 64 3e 3c 74 64 3e 50  d>NULL</td><td>P
dcf0: 49 41 5a 5a 41 20 53 41 4e 54 27 41 47 4f 53 54  IAZZA SANT'AGOST
dd00: 49 4e 4f 3c 2f 74 64 3e 0d 0a 3c 2f 74 72 3e 0d  INO</td>..</tr>.
dd10: 0a 3c 74 72 3e 0d 0a 3c 74 64 3e 4e 55 4c 4c 3c  .<tr>..<td>NULL<
dd20: 2f 74 64 3e 3c 74 64 3e 4e 55 4c 4c 3c 2f 74 64  /td><td>NULL</td
dd30: 3e 3c 74 64 3e 4e 55 4c 4c 3c 2f 74 64 3e 3c 74  ><td>NULL</td><t
dd40: 64 3e 4e 55 4c 4c 3c 2f 74 64 3e 3c 74 64 20 61  d>NULL</td><td a
dd50: 6c 69 67 6e 3d 22 72 69 67 68 74 22 3e 32 3c 2f  lign="right">2</
dd60: 74 64 3e 3c 74 64 20 61 6c 69 67 6e 3d 22 72 69  td><td align="ri
dd70: 67 68 74 22 3e 30 3c 2f 74 64 3e 3c 74 64 3e 52  ght">0</td><td>R
dd80: 6f 75 74 65 3c 2f 74 64 3e 3c 74 64 3e 4e 55 4c  oute</td><td>NUL
dd90: 4c 3c 2f 74 64 3e 3c 74 64 20 61 6c 69 67 6e 3d  L</td><td align=
dda0: 22 72 69 67 68 74 22 3e 31 37 38 37 33 31 3c 2f  "right">178731</
ddb0: 74 64 3e 3c 74 64 20 61 6c 69 67 6e 3d 22 72 69  td><td align="ri
ddc0: 67 68 74 22 3e 31 37 38 37 35 34 3c 2f 74 64 3e  ght">178754</td>
ddd0: 3c 74 64 20 61 6c 69 67 6e 3d 22 72 69 67 68 74  <td align="right
dde0: 22 3e 32 32 34 2e 36 37 37 30 39 35 3c 2f 74 64  ">224.677095</td
ddf0: 3e 3c 74 64 3e 42 4c 4f 42 20 73 7a 3d 32 34 30  ><td>BLOB sz=240
de00: 20 47 45 4f 4d 45 54 52 59 3c 2f 74 64 3e 3c 74   GEOMETRY</td><t
de10: 64 3e 4e 55 4c 4c 3c 2f 74 64 3e 0d 0a 3c 2f 74  d>NULL</td>..</t
de20: 72 3e 0d 0a 3c 74 72 3e 0d 0a 3c 74 64 3e 4e 55  r>..<tr>..<td>NU
de30: 4c 4c 3c 2f 74 64 3e 3c 74 64 3e 4e 55 4c 4c 3c  LL</td><td>NULL<
de40: 2f 74 64 3e 3c 74 64 3e 4e 55 4c 4c 3c 2f 74 64  /td><td>NULL</td
de50: 3e 3c 74 64 3e 4e 55 4c 4c 3c 74 64 20 61 6c 69  ><td>NULL<td ali
de60: 67 6e 3d 22 72 69 67 68 74 22 3e 32 3c 2f 74 64  gn="right">2</td
de70: 3e 3c 74 64 20 61 6c 69 67 6e 3d 22 72 69 67 68  ><td align="righ
de80: 74 22 3e 31 3c 2f 74 64 3e 3c 74 64 3e 4c 69 6e  t">1</td><td>Lin
de90: 6b 3c 2f 74 64 3e 3c 74 64 20 61 6c 69 67 6e 3d  k</td><td align=
dea0: 22 72 69 67 68 74 22 3e 32 31 39 30 34 35 3c 2f  "right">219045</
deb0: 74 64 3e 3c 74 64 20 61 6c 69 67 6e 3d 22 72 69  td><td align="ri
dec0: 67 68 74 22 3e 31 37 38 37 33 31 3c 2f 74 64 3e  ght">178731</td>
ded0: 3c 74 64 20 61 6c 69 67 6e 3d 22 72 69 67 68 74  <td align="right
dee0: 22 3e 31 37 38 37 33 32 3c 2f 74 64 3e 3c 74 64  ">178732</td><td
def0: 20 61 6c 69 67 6e 3d 22 72 69 67 68 74 22 3e 37   align="right">7
df00: 36 2e 30 32 31 30 30 37 3c 2f 74 64 3e 3c 74 64  6.021007</td><td
df10: 3e 4e 55 4c 4c 3c 2f 74 64 3e 3c 74 64 3e 56 49  >NULL</td><td>VI
df20: 41 20 41 53 53 41 42 3c 2f 74 64 3e 0d 0a 3c 2f  A ASSAB</td>..</
df30: 74 72 3e 0d 0a 3c 74 72 3e 0d 0a 3c 74 64 3e 4e  tr>..<tr>..<td>N
df40: 55 4c 4c 3c 2f 74 64 3e 3c 74 64 3e 4e 55 4c 4c  ULL</td><td>NULL
df50: 3c 2f 74 64 3e 3c 74 64 3e 4e 55 4c 4c 3c 2f 74  </td><td>NULL</t
df60: 64 3e 3c 74 64 3e 4e 55 4c 4c 3c 2f 74 64 3e 3c  d><td>NULL</td><
df70: 74 64 20 61 6c 69 67 6e 3d 22 72 69 67 68 74 22  td align="right"
df80: 3e 32 3c 2f 74 64 3e 3c 74 64 20 61 6c 69 67 6e  >2</td><td align
df90: 3d 22 72 69 67 68 74 22 3e 32 3c 2f 74 64 3e 3c  ="right">2</td><
dfa0: 74 64 3e 4c 69 6e 6b 3c 2f 74 64 3e 3c 74 64 20  td>Link</td><td 
dfb0: 61 6c 69 67 6e 3d 22 72 69 67 68 74 22 3e 32 31  align="right">21
dfc0: 39 30 35 38 3c 2f 74 64 3e 3c 74 64 20 61 6c 69  9058</td><td ali
dfd0: 67 6e 3d 22 72 69 67 68 74 22 3e 31 37 38 37 33  gn="right">17873
dfe0: 32 3c 2f 74 64 3e 3c 74 64 20 61 6c 69 67 6e 3d  2</td><td align=
dff0: 22 72 69 67 68 74 22 3e 31 37 38 37 35 34 3c 2f  "right">178754</
e000: 74 64 3e 3c 74 64 20 61 6c 69 67 6e 3d 22 72 69  td><td align="ri
e010: 67 68 74 22 3e 31 34 38 2e 36 35 36 30 38 39 3c  ght">148.656089<
e020: 2f 74 64 3e 3c 74 64 3e 4e 55 4c 4c 3c 2f 74 64  /td><td>NULL</td
e030: 3e 3c 74 64 3e 56 49 41 20 46 52 41 4e 43 45 53  ><td>VIA FRANCES
e040: 43 4f 20 43 52 49 53 50 49 3c 2f 74 64 3e 0d 0a  CO CRISPI</td>..
e050: 3c 2f 74 72 3e 0d 0a 3c 74 72 3e 0d 0a 3c 74 64  </tr>..<tr>..<td
e060: 3e 4e 55 4c 4c 3c 2f 74 64 3e 3c 74 64 3e 4e 55  >NULL</td><td>NU
e070: 4c 4c 3c 2f 74 64 3e 3c 74 64 3e 4e 55 4c 4c 3c  LL</td><td>NULL<
e080: 2f 74 64 3e 3c 74 64 3e 4e 55 4c 4c 3c 2f 74 64  /td><td>NULL</td
e090: 3e 3c 74 64 20 61 6c 69 67 6e 3d 22 72 69 67 68  ><td align="righ
e0a0: 74 22 3e 33 3c 2f 74 64 3e 3c 74 64 20 61 6c 69  t">3</td><td ali
e0b0: 67 6e 3d 22 72 69 67 68 74 22 3e 30 3c 2f 74 64  gn="right">0</td
e0c0: 3e 3c 74 64 3e 52 6f 75 74 65 3c 2f 74 64 3e 3c  ><td>Route</td><
e0d0: 74 64 3e 4e 55 4c 4c 3c 2f 74 64 3e 3c 74 64 20  td>NULL</td><td 
e0e0: 61 6c 69 67 6e 3d 22 72 69 67 68 74 22 3e 31 37  align="right">17
e0f0: 38 37 33 31 3c 2f 74 64 3e 3c 74 64 20 61 6c 69  8731</td><td ali
e100: 67 6e 3d 22 72 69 67 68 74 22 3e 31 38 31 39 39  gn="right">18199
e110: 39 3c 2f 74 64 3e 3c 74 64 20 61 6c 69 67 6e 3d  9</td><td align=
e120: 22 72 69 67 68 74 22 3e 32 36 30 2e 31 33 32 33  "right">260.1323
e130: 35 34 3c 2f 74 64 3e 3c 74 64 3e 42 4c 4f 42 20  54</td><td>BLOB 
e140: 73 7a 3d 32 34 30 20 47 45 4f 4d 45 54 52 59 3c  sz=240 GEOMETRY<
e150: 2f 74 64 3e 3c 74 64 3e 4e 55 4c 4c 3c 2f 74 64  /td><td>NULL</td
e160: 3e 0d 0a 3c 2f 74 72 3e 0d 0a 3c 74 72 3e 0d 0a  >..</tr>..<tr>..
e170: 3c 74 64 3e 4e 55 4c 4c 3c 2f 74 64 3e 3c 74 64  <td>NULL</td><td
e180: 3e 4e 55 4c 4c 3c 2f 74 64 3e 3c 74 64 3e 4e 55  >NULL</td><td>NU
e190: 4c 4c 3c 2f 74 64 3e 3c 74 64 3e 4e 55 4c 4c 3c  LL</td><td>NULL<
e1a0: 2f 74 64 3e 3c 74 64 20 61 6c 69 67 6e 3d 22 72  /td><td align="r
e1b0: 69 67 68 74 22 3e 33 3c 2f 74 64 3e 3c 74 64 20  ight">3</td><td 
e1c0: 61 6c 69 67 6e 3d 22 72 69 67 68 74 22 3e 31 3c  align="right">1<
e1d0: 2f 74 64 3e 3c 74 64 3e 4c 69 6e 6b 3c 2f 74 64  /td><td>Link</td
e1e0: 3e 3c 74 64 20 61 6c 69 67 6e 3d 22 72 69 67 68  ><td align="righ
e1f0: 74 22 3e 32 32 34 30 31 34 3c 2f 74 64 3e 3c 74  t">224014</td><t
e200: 64 20 61 6c 69 67 6e 3d 22 72 69 67 68 74 22 3e  d align="right">
e210: 31 37 38 37 33 31 3c 2f 74 64 3e 3c 74 64 20 61  178731</td><td a
e220: 6c 69 67 6e 3d 22 72 69 67 68 74 22 3e 31 38 32  lign="right">182
e230: 38 38 35 3c 2f 74 64 3e 3c 74 64 20 61 6c 69 67  885</td><td alig
e240: 6e 3d 22 72 69 67 68 74 22 3e 39 34 2e 38 31 32  n="right">94.812
e250: 34 32 34 3c 2f 74 64 3e 3c 74 64 3e 4e 55 4c 4c  424</td><td>NULL
e260: 3c 2f 74 64 3e 3c 74 64 3e 56 49 41 20 50 49 45  </td><td>VIA PIE
e270: 54 52 4f 20 41 52 45 54 49 4e 4f 3c 2f 74 64 3e  TRO ARETINO</td>
e280: 0d 0a 3c 2f 74 72 3e 0d 0a 3c 74 72 3e 0d 0a 3c  ..</tr>..<tr>..<
e290: 74 64 3e 4e 55 4c 4c 3c 2f 74 64 3e 3c 74 64 3e  td>NULL</td><td>
e2a0: 4e 55 4c 4c 3c 2f 74 64 3e 3c 74 64 3e 4e 55 4c  NULL</td><td>NUL
e2b0: 4c 3c 2f 74 64 3e 3c 74 64 3e 4e 55 4c 4c 3c 2f  L</td><td>NULL</
e2c0: 74 64 3e 3c 74 64 20 61 6c 69 67 6e 3d 22 72 69  td><td align="ri
e2d0: 67 68 74 22 3e 33 3c 2f 74 64 3e 3c 74 64 20 61  ght">3</td><td a
e2e0: 6c 69 67 6e 3d 22 72 69 67 68 74 22 3e 32 3c 2f  lign="right">2</
e2f0: 74 64 3e 3c 74 64 3e 4c 69 6e 6b 3c 2f 74 64 3e  td><td>Link</td>
e300: 3c 74 64 20 61 6c 69 67 6e 3d 22 72 69 67 68 74  <td align="right
e310: 22 3e 32 32 34 34 34 36 3c 2f 74 64 3e 3c 74 64  ">224446</td><td
e320: 20 61 6c 69 67 6e 3d 22 72 69 67 68 74 22 3e 31   align="right">1
e330: 38 32 38 38 35 3c 2f 74 64 3e 3c 74 64 20 61 6c  82885</td><td al
e340: 69 67 6e 3d 22 72 69 67 68 74 22 3e 31 37 38 38  ign="right">1788
e350: 38 30 3c 2f 74 64 3e 3c 74 64 20 61 6c 69 67 6e  80</td><td align
e360: 3d 22 72 69 67 68 74 22 3e 36 39 2e 37 32 37 37  ="right">69.7277
e370: 32 36 3c 2f 74 64 3e 3c 74 64 3e 4e 55 4c 4c 3c  26</td><td>NULL<
e380: 2f 74 64 3e 3c 74 64 3e 56 49 41 20 4d 41 52 47  /td><td>VIA MARG
e390: 41 52 49 54 4f 4e 45 3c 2f 74 64 3e 0d 0a 3c 2f  ARITONE</td>..</
e3a0: 74 72 3e 0d 0a 3c 74 72 3e 0d 0a 3c 74 64 3e 4e  tr>..<tr>..<td>N
e3b0: 55 4c 4c 3c 2f 74 64 3e 3c 74 64 3e 4e 55 4c 4c  ULL</td><td>NULL
e3c0: 3c 2f 74 64 3e 3c 74 64 3e 4e 55 4c 4c 3c 2f 74  </td><td>NULL</t
e3d0: 64 3e 3c 74 64 3e 4e 55 4c 4c 3c 2f 74 64 3e 3c  d><td>NULL</td><
e3e0: 74 64 20 61 6c 69 67 6e 3d 22 72 69 67 68 74 22  td align="right"
e3f0: 3e 33 3c 2f 74 64 3e 3c 74 64 20 61 6c 69 67 6e  >3</td><td align
e400: 3d 22 72 69 67 68 74 22 3e 33 3c 2f 74 64 3e 3c  ="right">3</td><
e410: 74 64 3e 4c 69 6e 6b 3c 2f 74 64 3e 3c 74 64 20  td>Link</td><td 
e420: 61 6c 69 67 6e 3d 22 72 69 67 68 74 22 3e 32 32  align="right">22
e430: 35 38 30 30 3c 2f 74 64 3e 3c 74 64 20 61 6c 69  5800</td><td ali
e440: 67 6e 3d 22 72 69 67 68 74 22 3e 31 37 38 38 38  gn="right">17888
e450: 30 3c 2f 74 64 3e 3c 74 64 20 61 6c 69 67 6e 3d  0</td><td align=
e460: 22 72 69 67 68 74 22 3e 31 38 31 39 39 39 3c 2f  "right">181999</
e470: 74 64 3e 3c 74 64 20 61 6c 69 67 6e 3d 22 72 69  td><td align="ri
e480: 67 68 74 22 3e 39 35 2e 35 39 32 32 30 34 3c 2f  ght">95.592204</
e490: 74 64 3e 3c 74 64 3e 4e 55 4c 4c 3c 2f 74 64 3e  td><td>NULL</td>
e4a0: 3c 74 64 3e 56 49 41 20 46 52 41 4e 43 45 53 43  <td>VIA FRANCESC
e4b0: 4f 20 43 52 49 53 50 49 3c 2f 74 64 3e 0d 0a 3c  O CRISPI</td>..<
e4c0: 2f 74 72 3e 0d 0a 3c 74 72 3e 0d 0a 3c 74 64 3e  /tr>..<tr>..<td>
e4d0: 4e 55 4c 4c 3c 2f 74 64 3e 3c 74 64 3e 4e 55 4c  NULL</td><td>NUL
e4e0: 4c 3c 2f 74 64 3e 3c 74 64 3e 4e 55 4c 4c 3c 2f  L</td><td>NULL</
e4f0: 74 64 3e 3c 74 64 3e 4e 55 4c 4c 3c 2f 74 64 3e  td><td>NULL</td>
e500: 3c 74 64 20 61 6c 69 67 6e 3d 22 72 69 67 68 74  <td align="right
e510: 22 3e 34 3c 2f 74 64 3e 3c 74 64 20 61 6c 69 67  ">4</td><td alig
e520: 6e 3d 22 72 69 67 68 74 22 3e 30 3c 2f 74 64 3e  n="right">0</td>
e530: 3c 74 64 3e 52 6f 75 74 65 3c 2f 74 64 3e 3c 74  <td>Route</td><t
e540: 64 3e 4e 55 4c 4c 3c 2f 74 64 3e 3c 74 64 20 61  d>NULL</td><td a
e550: 6c 69 67 6e 3d 22 72 69 67 68 74 22 3e 31 37 38  lign="right">178
e560: 37 33 31 3c 2f 74 64 3e 3c 74 64 20 61 6c 69 67  731</td><td alig
e570: 6e 3d 22 72 69 67 68 74 22 3e 31 38 33 32 38 36  n="right">183286
e580: 3c 2f 74 64 3e 3c 74 64 20 61 6c 69 67 6e 3d 22  </td><td align="
e590: 72 69 67 68 74 22 3e 33 30 30 2e 39 31 32 32 30  right">300.91220
e5a0: 38 3c 2f 74 64 3e 3c 74 64 3e 42 4c 4f 42 20 73  8</td><td>BLOB s
e5b0: 7a 3d 32 37 32 20 47 45 4f 4d 45 54 52 59 3c 2f  z=272 GEOMETRY</
e5c0: 74 64 3e 3c 74 64 3e 4e 55 4c 4c 3c 2f 74 64 3e  td><td>NULL</td>
e5d0: 0d 0a 3c 2f 74 72 3e 0d 0a 3c 74 72 3e 0d 0a 3c  ..</tr>..<tr>..<
e5e0: 74 64 3e 4e 55 4c 4c 3c 2f 74 64 3e 3c 74 64 3e  td>NULL</td><td>
e5f0: 4e 55 4c 4c 3c 2f 74 64 3e 3c 74 64 3e 4e 55 4c  NULL</td><td>NUL
e600: 4c 3c 2f 74 64 3e 3c 74 64 3e 4e 55 4c 4c 3c 2f  L</td><td>NULL</
e610: 74 64 3e 3c 74 64 20 61 6c 69 67 6e 3d 22 72 69  td><td align="ri
e620: 67 68 74 22 3e 34 3c 2f 74 64 3e 3c 74 64 20 61  ght">4</td><td a
e630: 6c 69 67 6e 3d 22 72 69 67 68 74 22 3e 31 3c 2f  lign="right">1</
e640: 74 64 3e 3c 74 64 3e 4c 69 6e 6b 3c 2f 74 64 3e  td><td>Link</td>
e650: 3c 74 64 20 61 6c 69 67 6e 3d 22 72 69 67 68 74  <td align="right
e660: 22 3e 32 32 34 30 31 34 3c 2f 74 64 3e 3c 74 64  ">224014</td><td
e670: 20 61 6c 69 67 6e 3d 22 72 69 67 68 74 22 3e 31   align="right">1
e680: 37 38 37 33 31 3c 2f 74 64 3e 3c 74 64 20 61 6c  78731</td><td al
e690: 69 67 6e 3d 22 72 69 67 68 74 22 3e 31 38 32 38  ign="right">1828
e6a0: 38 35 3c 2f 74 64 3e 3c 74 64 20 61 6c 69 67 6e  85</td><td align
e6b0: 3d 22 72 69 67 68 74 22 3e 39 34 2e 38 31 32 34  ="right">94.8124
e6c0: 32 34 3c 2f 74 64 3e 3c 74 64 3e 4e 55 4c 4c 3c  24</td><td>NULL<
e6d0: 2f 74 64 3e 3c 74 64 3e 56 49 41 20 50 49 45 54  /td><td>VIA PIET
e6e0: 52 4f 20 41 52 45 54 49 4e 4f 3c 2f 74 64 3e 0d  RO ARETINO</td>.
e6f0: 0a 3c 2f 74 72 3e 0d 0a 3c 74 72 3e 0d 0a 3c 74  .</tr>..<tr>..<t
e700: 64 3e 4e 55 4c 4c 3c 2f 74 64 3e 3c 74 64 3e 4e  d>NULL</td><td>N
e710: 55 4c 4c 3c 2f 74 64 3e 3c 74 64 3e 4e 55 4c 4c  ULL</td><td>NULL
e720: 3c 2f 74 64 3e 3c 74 64 3e 4e 55 4c 4c 3c 2f 74  </td><td>NULL</t
e730: 64 3e 3c 74 64 20 61 6c 69 67 6e 3d 22 72 69 67  d><td align="rig
e740: 68 74 22 3e 34 3c 2f 74 64 3e 3c 74 64 20 61 6c  ht">4</td><td al
e750: 69 67 6e 3d 22 72 69 67 68 74 22 3e 32 3c 2f 74  ign="right">2</t
e760: 64 3e 3c 74 64 3e 4c 69 6e 6b 3c 2f 74 64 3e 3c  d><td>Link</td><
e770: 74 64 20 61 6c 69 67 6e 3d 22 72 69 67 68 74 22  td align="right"
e780: 3e 32 32 34 34 34 36 3c 2f 74 64 3e 3c 74 64 20  >224446</td><td 
e790: 61 6c 69 67 6e 3d 22 72 69 67 68 74 22 3e 31 38  align="right">18
e7a0: 32 38 38 35 3c 2f 74 64 3e 3c 74 64 20 61 6c 69  2885</td><td ali
e7b0: 67 6e 3d 22 72 69 67 68 74 22 3e 31 37 38 38 38  gn="right">17888
e7c0: 30 3c 2f 74 64 3e 3c 74 64 20 61 6c 69 67 6e 3d  0</td><td align=
e7d0: 22 72 69 67 68 74 22 3e 36 39 2e 37 32 37 37 32  "right">69.72772
e7e0: 36 3c 2f 74 64 3e 3c 74 64 3e 4e 55 4c 4c 3c 2f  6</td><td>NULL</
e7f0: 74 64 3e 3c 74 64 3e 56 49 41 20 4d 41 52 47 41  td><td>VIA MARGA
e800: 52 49 54 4f 4e 45 3c 2f 74 64 3e 0d 0a 3c 2f 74  RITONE</td>..</t
e810: 72 3e 0d 0a 3c 74 72 3e 0d 0a 3c 74 64 3e 4e 55  r>..<tr>..<td>NU
e820: 4c 4c 3c 2f 74 64 3e 3c 74 64 3e 4e 55 4c 4c 3c  LL</td><td>NULL<
e830: 2f 74 64 3e 3c 74 64 3e 4e 55 4c 4c 3c 2f 74 64  /td><td>NULL</td
e840: 3e 3c 74 64 3e 4e 55 4c 4c 3c 2f 74 64 3e 3c 74  ><td>NULL</td><t
e850: 64 20 61 6c 69 67 6e 3d 22 72 69 67 68 74 22 3e  d align="right">
e860: 34 3c 2f 74 64 3e 3c 74 64 20 61 6c 69 67 6e 3d  4</td><td align=
e870: 22 72 69 67 68 74 22 3e 33 3c 2f 74 64 3e 3c 74  "right">3</td><t
e880: 64 3e 4c 69 6e 6b 3c 2f 74 64 3e 3c 74 64 20 61  d>Link</td><td a
e890: 6c 69 67 6e 3d 22 72 69 67 68 74 22 3e 32 32 34  lign="right">224
e8a0: 34 31 34 3c 2f 74 64 3e 3c 74 64 20 61 6c 69 67  414</td><td alig
e8b0: 6e 3d 22 72 69 67 68 74 22 3e 31 37 38 38 38 30  n="right">178880
e8c0: 3c 2f 74 64 3e 3c 74 64 20 61 6c 69 67 6e 3d 22  </td><td align="
e8d0: 72 69 67 68 74 22 3e 31 38 33 32 38 36 3c 2f 74  right">183286</t
e8e0: 64 3e 3c 74 64 20 61 6c 69 67 6e 3d 22 72 69 67  d><td align="rig
e8f0: 68 74 22 3e 31 33 36 2e 33 37 32 30 35 37 3c 2f  ht">136.372057</
e900: 74 64 3e 3c 74 64 3e 4e 55 4c 4c 3c 2f 74 64 3e  td><td>NULL</td>
e910: 3c 74 64 3e 56 49 41 20 4d 41 52 47 41 52 49 54  <td>VIA MARGARIT
e920: 4f 4e 45 3c 2f 74 64 3e 0d 0a 3c 2f 74 72 3e 0d  ONE</td>..</tr>.
e930: 0a 3c 74 72 3e 0d 0a 3c 74 64 3e 4e 55 4c 4c 3c  .<tr>..<td>NULL<
e940: 2f 74 64 3e 3c 74 64 3e 4e 55 4c 4c 3c 2f 74 64  /td><td>NULL</td
e950: 3e 3c 74 64 3e 4e 55 4c 4c 3c 2f 74 64 3e 3c 74  ><td>NULL</td><t
e960: 64 3e 4e 55 4c 4c 3c 2f 74 64 3e 3c 74 64 3e 4e  d>NULL</td><td>N
e970: 55 4c 4c 3c 2f 74 64 3e 3c 74 64 3e 4e 55 4c 4c  ULL</td><td>NULL
e980: 3c 2f 74 64 3e 3c 74 64 3e 55 6e 72 65 61 63 68  </td><td>Unreach
e990: 61 62 6c 65 20 4e 6f 64 65 54 6f 3c 2f 74 64 3e  able NodeTo</td>
e9a0: 3c 74 64 3e 4e 55 4c 4c 3c 2f 74 64 3e 3c 74 64  <td>NULL</td><td
e9b0: 20 61 6c 69 67 6e 3d 22 72 69 67 68 74 22 3e 31   align="right">1
e9c0: 37 38 37 33 31 3c 2f 74 64 3e 3c 74 64 20 61 6c  78731</td><td al
e9d0: 69 67 6e 3d 22 72 69 67 68 74 22 3e 32 39 30 34  ign="right">2904
e9e0: 35 38 3c 2f 74 64 3e 3c 74 64 3e 4e 55 4c 4c 3c  58</td><td>NULL<
e9f0: 2f 74 64 3e 3c 74 64 3e 4e 55 4c 4c 3c 2f 74 64  /td><td>NULL</td
ea00: 3e 3c 74 64 3e 4e 55 4c 4c 3c 2f 74 64 3e 0d 0a  ><td>NULL</td>..
ea10: 3c 2f 74 72 3e 0d 0a 3c 74 72 3e 0d 0a 3c 74 64  </tr>..<tr>..<td
ea20: 3e 4e 55 4c 4c 3c 2f 74 64 3e 3c 74 64 3e 4e 55  >NULL</td><td>NU
ea30: 4c 4c 3c 2f 74 64 3e 3c 74 64 3e 4e 55 4c 4c 3c  LL</td><td>NULL<
ea40: 2f 74 64 3e 3c 74 64 3e 4e 55 4c 4c 3c 2f 74 64  /td><td>NULL</td
ea50: 3e 3c 74 64 3e 4e 55 4c 4c 3c 2f 74 64 3e 3c 74  ><td>NULL</td><t
ea60: 64 3e 4e 55 4c 4c 3c 2f 74 64 3e 3c 74 64 3e 55  d>NULL</td><td>U
ea70: 6e 72 65 61 63 68 61 62 6c 65 20 4e 6f 64 65 54  nreachable NodeT
ea80: 6f 3c 2f 74 64 3e 3c 74 64 3e 4e 55 4c 4c 3c 2f  o</td><td>NULL</
ea90: 74 64 3e 3c 74 64 20 61 6c 69 67 6e 3d 22 72 69  td><td align="ri
eaa0: 67 68 74 22 3e 31 37 38 37 33 31 3c 2f 74 64 3e  ght">178731</td>
eab0: 3c 74 64 20 61 6c 69 67 6e 3d 22 72 69 67 68 74  <td align="right
eac0: 22 3e 31 32 34 36 32 32 3c 2f 74 64 3e 3c 74 64  ">124622</td><td
ead0: 3e 4e 55 4c 4c 3c 2f 74 64 3e 3c 74 64 3e 4e 55  >NULL</td><td>NU
eae0: 4c 4c 3c 2f 74 64 3e 3c 74 64 3e 4e 55 4c 4c 3c  LL</td><td>NULL<
eaf0: 2f 74 64 3e 0d 0a 3c 2f 74 72 3e 0d 0a 3c 2f 74  /td>..</tr>..</t
eb00: 61 62 6c 65 3e 0d 0a 3c 62 72 3e 0d 0a 4c 65 74  able>..<br>..Let
eb10: 27 73 20 71 75 69 63 6b 6c 79 20 65 78 61 6d 69  's quickly exami
eb20: 6e 65 20 74 68 65 20 72 65 73 75 6c 74 73 65 74  ne the resultset
eb30: 20 72 65 74 75 72 6e 65 64 20 62 79 20 74 68 65   returned by the
eb40: 20 61 62 6f 76 65 20 3c 62 3e 6d 75 6c 74 69 2d   above <b>multi-
eb50: 64 65 73 74 69 6e 61 74 69 6f 6e 73 3c 2f 62 3e  destinations</b>
eb60: 20 71 75 65 72 79 2e 0d 0a 3c 75 6c 3e 0d 0a 3c   query...<ul>..<
eb70: 6c 69 3e 74 68 65 20 6f 76 65 72 61 6c 6c 20 6c  li>the overall l
eb80: 61 79 6f 75 74 20 69 73 20 61 6c 6d 6f 73 74 20  ayout is almost 
eb90: 65 78 61 63 74 6c 79 20 74 68 65 20 73 61 6d 65  exactly the same
eba0: 20 61 73 20 79 6f 75 27 76 65 20 61 6c 72 65 61   as you've alrea
ebb0: 64 79 20 73 65 65 6e 20 69 6e 20 74 68 65 20 63  dy seen in the c
ebc0: 61 73 65 20 6f 66 20 3c 62 3e 73 69 6e 67 6c 65  ase of <b>single
ebd0: 2d 64 65 73 74 69 6e 61 74 69 6f 6e 3c 2f 62 3e  -destination</b>
ebe0: 20 71 75 65 72 69 65 73 2c 20 62 75 74 20 69 6e   queries, but in
ebf0: 20 74 68 69 73 20 63 61 73 65 20 6d 6f 72 65 20   this case more 
ec00: 69 6e 64 69 76 69 64 75 61 6c 20 74 72 61 76 65  individual trave
ec10: 6c 20 73 6f 6c 75 74 69 6f 6e 73 20 61 72 65 20  l solutions are 
ec20: 67 72 6f 75 70 65 64 20 61 6c 74 6f 67 65 74 68  grouped altogeth
ec30: 65 72 2e 3c 2f 6c 69 3e 0d 0a 3c 6c 69 3e 74 68  er.</li>..<li>th
ec40: 65 20 3c 62 3e 66 69 72 73 74 20 72 6f 77 3c 2f  e <b>first row</
ec50: 62 3e 20 6f 66 20 74 68 65 20 72 65 73 75 6c 74  b> of the result
ec60: 73 65 74 20 69 73 20 73 6f 6d 65 77 61 79 20 65  set is someway e
ec70: 78 63 65 70 74 69 6f 6e 61 6c 2c 20 61 6e 64 20  xceptional, and 
ec80: 69 73 20 74 68 65 20 75 6e 69 71 75 65 20 72 6f  is the unique ro
ec90: 77 20 6f 66 20 74 68 65 20 72 65 73 75 6c 74 73  w of the results
eca0: 65 74 20 70 72 65 73 65 6e 74 69 6e 67 20 3c 62  et presenting <b
ecb0: 3e 4e 4f 54 20 4e 55 4c 4c 3c 2f 62 3e 20 76 61  >NOT NULL</b> va
ecc0: 6c 75 65 73 20 69 6e 20 74 68 65 20 3c 62 3e 41  lues in the <b>A
ecd0: 6c 67 6f 72 69 74 68 6d 3c 2f 62 3e 2c 20 3c 62  lgorithm</b>, <b
ece0: 3e 52 65 71 75 65 73 74 3c 2f 62 3e 2c 20 3c 62  >Request</b>, <b
ecf0: 3e 4f 70 74 69 6f 6e 73 3c 2f 62 3e 20 61 6e 64  >Options</b> and
ed00: 20 3c 62 3e 44 65 6c 69 6d 69 74 65 72 3c 2f 62   <b>Delimiter</b
ed10: 3e 20 63 6f 6c 75 6d 6e 73 2e 3c 2f 6c 69 3e 0d  > columns.</li>.
ed20: 0a 3c 6c 69 3e 74 68 65 20 3c 62 3e 52 6f 75 74  .<li>the <b>Rout
ed30: 65 49 64 3c 2f 62 3e 20 63 6f 6c 75 6d 6e 20 69  eId</b> column i
ed40: 73 20 69 6e 74 65 6e 64 65 64 20 74 6f 20 67 72  s intended to gr
ed50: 6f 75 70 20 74 6f 67 65 74 68 65 72 20 61 6c 6c  oup together all
ed60: 20 72 6f 77 73 20 62 65 6c 6f 6e 67 69 6e 67 20   rows belonging 
ed70: 74 6f 20 73 61 6d 65 20 74 72 61 76 65 6c 20 73  to same travel s
ed80: 6f 6c 75 74 69 6f 6e 20 28 3c 69 3e 61 6b 61 3c  olution (<i>aka<
ed90: 2f 69 3e 20 3c 62 3e 52 6f 75 74 65 3c 2f 62 3e  /i> <b>Route</b>
eda0: 29 2e 3c 62 72 3e 0d 0a 52 6f 75 74 65 73 20 61  ).<br>..Routes a
edb0: 72 65 20 70 72 6f 67 72 65 73 73 69 76 65 6c 79  re progressively
edc0: 20 6e 75 6d 62 65 72 65 64 20 61 6e 64 20 61 72   numbered and ar
edd0: 65 20 6f 72 64 65 72 65 64 20 61 63 63 6f 72 64  e ordered accord
ede0: 69 6e 67 6c 79 20 74 6f 20 74 68 65 69 72 20 3c  ingly to their <
edf0: 62 3e 74 6f 74 61 6c 20 63 6f 73 74 3c 2f 62 3e  b>total cost</b>
ee00: 2e 3c 2f 6c 69 3e 0d 0a 3c 6c 69 3e 74 68 65 20  .</li>..<li>the 
ee10: 3c 62 3e 52 6f 75 74 65 52 6f 77 3c 2f 62 3e 20  <b>RouteRow</b> 
ee20: 63 6f 6c 75 6d 6e 20 68 61 73 20 74 68 65 20 73  column has the s
ee30: 61 6d 65 20 69 6e 74 65 72 70 72 65 74 61 74 69  ame interpretati
ee40: 6f 6e 20 61 73 20 69 6e 20 73 69 6e 67 6c 65 2d  on as in single-
ee50: 64 65 73 74 69 6e 61 74 69 6f 6e 20 72 65 73 75  destination resu
ee60: 6c 74 73 65 74 73 2c 20 61 6e 64 20 69 73 20 69  ltsets, and is i
ee70: 6e 74 65 6e 64 65 64 20 74 6f 20 70 72 6f 67 72  ntended to progr
ee80: 65 73 73 69 76 65 6c 79 20 6f 72 64 65 72 20 69  essively order i
ee90: 6e 20 74 68 65 20 63 6f 72 72 65 63 74 20 73 65  n the correct se
eea0: 71 75 65 6e 63 65 20 61 6c 6c 20 4c 69 6e 6b 73  quence all Links
eeb0: 20 63 6f 6e 6e 65 63 74 69 6e 67 20 74 68 65 20   connecting the 
eec0: 4f 72 69 67 69 6e 20 61 6e 64 20 74 68 65 20 44  Origin and the D
eed0: 65 73 74 69 6e 61 74 69 6f 6e 20 6f 66 20 65 61  estination of ea
eee0: 63 68 20 52 6f 75 74 65 2e 3c 62 72 3e 0d 0a 3c  ch Route.<br>..<
eef0: 62 3e 52 6f 75 74 65 52 6f 77 3d 30 3c 2f 62 3e  b>RouteRow=0</b>
ef00: 20 61 6c 77 61 79 73 20 69 64 65 6e 74 69 66 69   always identifi
ef10: 65 73 20 74 68 65 20 68 65 61 64 65 72 20 72 6f  es the header ro
ef20: 77 20 6f 66 20 65 61 63 68 20 74 72 61 76 65 6c  w of each travel
ef30: 20 73 6f 6c 75 74 69 6f 6e 2e 3c 2f 6c 69 3e 0d   solution.</li>.
ef40: 0a 3c 2f 75 6c 3e 0d 0a 3c 62 72 3e 0d 0a 3c 75  .</ul>..<br>..<u
ef50: 3e 4e 6f 74 69 63 65 3c 2f 75 3e 3a 20 74 68 65  >Notice</u>: the
ef60: 20 6c 61 73 74 20 74 77 6f 20 72 6f 77 73 20 69   last two rows i
ef70: 6e 20 74 68 65 20 72 65 73 75 6c 74 73 65 74 20  n the resultset 
ef80: 72 65 70 6f 72 74 73 20 3c 62 3e 55 6e 72 65 61  reports <b>Unrea
ef90: 63 68 61 62 6c 65 20 4e 6f 64 65 54 6f 09 3c 2f  chable NodeTo.</
efa0: 62 3e 20 69 6e 20 74 68 65 20 3c 62 3e 52 6f 6c  b> in the <b>Rol
efb0: 65 3c 2f 62 3e 20 63 6f 6c 75 6d 6e 2c 20 74 68  e</b> column, th
efc0: 75 73 20 69 6d 70 6c 79 69 6e 67 20 61 20 3c 62  us implying a <b
efd0: 3e 66 6f 72 62 69 64 64 65 6e 20 63 6f 6e 6e 65  >forbidden conne
efe0: 63 74 69 6f 6e 3c 2f 62 3e 2e 3c 62 72 3e 0d 0a  ction</b>.<br>..
eff0: 54 68 69 73 20 77 61 73 20 70 75 72 70 6f 73 65  This was purpose
f000: 6c 79 20 69 6e 74 65 6e 64 65 64 3a 20 4e 6f 64  ly intended: Nod
f010: 65 73 20 3c 62 3e 32 39 30 34 35 38 3c 2f 62 3e  es <b>290458</b>
f020: 20 61 6e 64 20 3c 62 3e 31 32 34 36 32 32 3c 2f   and <b>124622</
f030: 62 3e 20 61 72 65 20 6c 6f 63 61 74 65 64 20 6f  b> are located o
f040: 6e 20 45 6c 62 61 20 61 6e 64 20 47 69 67 6c 69  n Elba and Gigli
f050: 6f 20 69 73 6c 61 6e 64 73 2e 20 54 68 65 20 75  o islands. The u
f060: 6e 64 65 72 6c 61 79 69 6e 67 20 4e 65 74 77 6f  nderlaying Netwo
f070: 72 6b 20 69 73 20 62 61 73 65 64 20 6f 6e 20 3c  rk is based on <
f080: 62 3e 49 74 65 72 2e 4e 65 74 3c 2f 62 3e 20 74  b>Iter.Net</b> t
f090: 68 61 74 20 64 6f 6e 27 74 20 73 75 70 70 6f 72  hat don't suppor
f0a0: 74 73 20 66 65 72 72 79 20 63 6f 6e 6e 65 63 74  ts ferry connect
f0b0: 69 6f 6e 73 2c 20 73 6f 20 61 6e 79 20 74 72 61  ions, so any tra
f0c0: 76 65 6c 20 73 6f 6c 75 74 69 6f 6e 20 62 65 74  vel solution bet
f0d0: 77 65 65 6e 20 74 68 65 20 69 73 6c 61 6e 64 73  ween the islands
f0e0: 20 61 6e 64 20 74 68 65 20 6d 61 69 6e 6c 61 6e   and the mainlan
f0f0: 64 20 77 69 6c 6c 20 61 6c 77 61 79 73 20 66 61  d will always fa
f100: 69 6c 2e 0d 0a 3c 62 72 3e 3c 62 72 3e 3c 62 72  il...<br><br><br
f110: 3e 0d 0a 41 6c 73 6f 20 3c 62 3e 6d 75 6c 74 69  >..Also <b>multi
f120: 2d 64 65 73 74 69 6e 61 74 69 6f 6e 73 3c 2f 62  -destinations</b
f130: 3e 20 71 75 65 72 69 65 73 20 63 61 6e 20 62 65  > queries can be
f140: 20 63 75 73 74 6f 6d 69 7a 65 64 2c 20 62 75 74   customized, but
f150: 20 74 68 65 20 63 6f 6e 66 69 67 75 72 61 74 69   the configurati
f160: 6f 6e 20 72 75 6c 65 73 20 73 6c 69 67 68 74 6c  on rules slightl
f170: 79 20 64 69 66 66 65 72 20 66 72 6f 6d 20 77 68  y differ from wh
f180: 61 74 20 79 6f 75 20 68 61 76 65 20 61 6c 72 65  at you have alre
f190: 61 64 79 20 73 65 65 6e 20 69 6e 20 74 68 65 20  ady seen in the 
f1a0: 63 61 73 65 20 6f 66 20 73 69 6e 67 6c 65 2d 64  case of single-d
f1b0: 65 73 74 69 6e 61 74 69 6f 6e 2e 0d 0a 3c 75 6c  estination...<ul
f1c0: 3e 0d 0a 3c 6c 69 3e 3c 62 3e 41 6c 67 6f 72 69  >..<li><b>Algori
f1d0: 74 68 6d 3c 2f 62 3e 3a 20 6f 6e 6c 79 20 3c 62  thm</b>: only <b
f1e0: 3e 44 69 6a 6b 73 74 72 61 3c 2f 62 3e 20 69 73  >Dijkstra</b> is
f1f0: 20 73 75 70 70 6f 72 74 65 64 20 62 79 20 6d 75   supported by mu
f200: 6c 74 69 2d 64 65 73 74 69 6e 61 74 69 6f 6e 2c  lti-destination,
f210: 20 61 6e 64 20 77 69 6c 6c 20 62 65 20 69 6d 70   and will be imp
f220: 6c 69 63 69 74 6c 79 20 61 73 73 75 6d 65 64 20  licitly assumed 
f230: 65 76 65 6e 20 77 68 65 6e 20 74 68 65 20 61 6c  even when the al
f240: 74 65 72 6e 61 74 69 76 65 20 3c 62 3e 41 2a 3c  ternative <b>A*<
f250: 2f 62 3e 20 61 6c 67 6f 72 69 74 68 6d 20 69 73  /b> algorithm is
f260: 20 63 75 72 72 65 6e 74 6c 79 20 73 65 6c 65 63   currently selec
f270: 74 65 64 2e 3c 2f 6c 69 3e 0d 0a 3c 6c 69 3e 3c  ted.</li>..<li><
f280: 62 3e 4f 70 74 69 6f 6e 73 3c 2f 62 3e 3a 20 74  b>Options</b>: t
f290: 68 65 20 75 73 75 61 6c 20 3c 62 3e 46 55 4c 4c  he usual <b>FULL
f2a0: 3c 2f 62 3e 2c 20 3c 62 3e 53 49 4d 50 4c 45 3c  </b>, <b>SIMPLE<
f2b0: 2f 62 3e 2c 20 3c 62 3e 4e 4f 20 4c 49 4e 4b 53  /b>, <b>NO LINKS
f2c0: 3c 2f 62 3e 20 61 6e 64 20 3c 62 3e 4e 4f 20 47  </b> and <b>NO G
f2d0: 45 4f 4d 45 54 52 49 45 53 3c 2f 62 3e 20 61 72  EOMETRIES</b> ar
f2e0: 65 20 73 75 70 70 6f 72 74 65 64 20 61 6e 64 20  e supported and 
f2f0: 77 69 6c 6c 20 68 61 76 65 20 74 68 65 20 73 61  will have the sa
f300: 6d 65 20 65 66 66 65 63 74 20 61 73 20 69 6e 20  me effect as in 
f310: 73 69 6e 67 6c 65 2d 64 65 73 74 69 6e 61 74 69  single-destinati
f320: 6f 6e 20 71 75 65 72 69 65 73 2e 3c 2f 6c 69 3e  on queries.</li>
f330: 0d 0a 3c 2f 75 6c 3e 0d 0a 3c 76 65 72 62 61 74  ..</ul>..<verbat
f340: 69 6d 3e 0d 0a 55 50 44 41 54 45 20 62 79 66 6f  im>..UPDATE byfo
f350: 6f 74 20 53 45 54 20 4f 70 74 69 6f 6e 73 20 3d  ot SET Options =
f360: 20 27 53 49 4d 50 4c 45 27 3b 0d 0a 0d 0a 53 45   'SIMPLE';....SE
f370: 4c 45 43 54 20 41 6c 67 6f 72 69 74 68 6d 2c 20  LECT Algorithm, 
f380: 52 65 71 75 65 73 74 2c 20 4f 70 74 69 6f 6e 73  Request, Options
f390: 2c 20 44 65 6c 69 6d 69 74 65 72 2c 20 52 6f 75  , Delimiter, Rou
f3a0: 74 65 49 64 2c 20 52 6f 75 74 65 52 6f 77 2c 20  teId, RouteRow, 
f3b0: 52 6f 6c 65 2c 20 4c 69 6e 6b 52 6f 77 69 64 2c  Role, LinkRowid,
f3c0: 20 4e 6f 64 65 46 72 6f 6d 2c 20 4e 6f 64 65 54   NodeFrom, NodeT
f3d0: 6f 2c 20 43 6f 73 74 2c 20 47 65 6f 6d 65 74 72  o, Cost, Geometr
f3e0: 79 2c 20 4e 61 6d 65 0d 0a 46 52 4f 4d 20 62 79  y, Name..FROM by
f3f0: 66 6f 6f 74 0d 0a 57 48 45 52 45 20 4e 6f 64 65  foot..WHERE Node
f400: 46 72 6f 6d 20 3d 20 31 37 38 37 33 31 20 41 4e  From = 178731 AN
f410: 44 20 4e 6f 64 65 54 6f 20 3d 20 27 31 38 33 32  D NodeTo = '1832
f420: 38 36 2c 32 39 30 34 35 38 2c 31 38 31 39 39 39  86,290458,181999
f430: 2c 31 38 34 30 33 30 2c 31 32 34 36 32 32 2c 31  ,184030,124622,1
f440: 38 33 38 38 32 2c 31 37 38 37 35 34 27 3b 0d 0a  83882,178754';..
f450: 3c 2f 76 65 72 62 61 74 69 6d 3e 0d 0a 54 68 65  </verbatim>..The
f460: 20 66 6f 6c 6c 6f 77 69 6e 67 20 74 61 62 6c 65   following table
f470: 20 73 68 6f 77 73 20 74 68 65 20 72 65 73 75 6c   shows the resul
f480: 74 73 65 74 20 72 65 74 75 72 6e 65 64 20 62 79  tset returned by
f490: 20 74 68 65 20 73 61 6d 65 20 6d 75 6c 74 69 2d   the same multi-
f4a0: 64 65 73 74 69 6e 61 74 69 6f 6e 20 71 75 65 72  destination quer
f4b0: 79 20 75 73 65 64 20 69 6e 20 74 68 65 20 70 72  y used in the pr
f4c0: 65 76 69 6f 75 73 20 65 78 61 6d 70 6c 65 20 61  evious example a
f4d0: 66 74 65 72 20 65 6e 61 62 6c 69 6e 67 20 74 68  fter enabling th
f4e0: 65 20 3c 62 3e 53 49 4d 50 4c 45 3c 2f 62 3e 20  e <b>SIMPLE</b> 
f4f0: 6f 70 74 69 6f 6e 2e 0d 0a 3c 62 72 3e 3c 62 72  option...<br><br
f500: 3e 0d 0a 3c 74 61 62 6c 65 20 62 6f 72 64 65 72  >..<table border
f510: 3d 22 31 22 20 62 67 63 6f 6c 6f 72 3d 22 23 66  ="1" bgcolor="#f
f520: 66 66 66 63 66 22 20 63 65 6c 6c 73 70 61 63 69  fffcf" cellspaci
f530: 6e 67 3d 22 34 22 20 63 65 6c 6c 70 61 64 64 69  ng="4" cellpaddi
f540: 6e 67 3d 22 36 22 3e 0d 0a 3c 74 72 3e 3c 74 68  ng="6">..<tr><th
f550: 20 62 67 63 6f 6c 6f 72 3d 22 23 64 30 64 30 61   bgcolor="#d0d0a
f560: 30 22 3e 41 6c 67 6f 72 69 74 68 6d 3c 2f 74 68  0">Algorithm</th
f570: 3e 3c 74 68 20 62 67 63 6f 6c 6f 72 3d 22 23 64  ><th bgcolor="#d
f580: 30 64 30 61 30 22 3e 52 65 71 75 65 73 74 3c 2f  0d0a0">Request</
f590: 74 68 3e 3c 74 68 20 62 67 63 6f 6c 6f 72 3d 22  th><th bgcolor="
f5a0: 23 64 30 64 30 61 30 22 3e 4f 70 74 69 6f 6e 73  #d0d0a0">Options
f5b0: 3c 2f 74 68 3e 3c 74 68 20 62 67 63 6f 6c 6f 72  </th><th bgcolor
f5c0: 3d 22 23 64 30 64 30 61 30 22 3e 44 65 6c 69 6d  ="#d0d0a0">Delim
f5d0: 69 74 65 72 3c 2f 74 68 3e 3c 74 68 20 62 67 63  iter</th><th bgc
f5e0: 6f 6c 6f 72 3d 22 23 64 30 64 30 61 30 22 3e 52  olor="#d0d0a0">R
f5f0: 6f 75 74 65 49 64 3c 2f 74 68 3e 3c 74 68 20 62  outeId</th><th b
f600: 67 63 6f 6c 6f 72 3d 22 23 64 30 64 30 61 30 22  gcolor="#d0d0a0"
f610: 3e 52 6f 75 74 65 52 6f 77 3c 2f 74 68 3e 3c 74  >RouteRow</th><t
f620: 68 20 62 67 63 6f 6c 6f 72 3d 22 23 64 30 64 30  h bgcolor="#d0d0
f630: 61 30 22 3e 52 6f 6c 65 3c 2f 74 68 3e 3c 74 68  a0">Role</th><th
f640: 20 62 67 63 6f 6c 6f 72 3d 22 23 64 30 64 30 61   bgcolor="#d0d0a
f650: 30 22 3e 4c 69 6e 6b 52 6f 77 69 64 3c 2f 74 68  0">LinkRowid</th
f660: 3e 3c 74 68 20 62 67 63 6f 6c 6f 72 3d 22 23 64  ><th bgcolor="#d
f670: 30 64 30 61 30 22 3e 4e 6f 64 65 46 72 6f 6d 3c  0d0a0">NodeFrom<
f680: 2f 74 68 3e 3c 74 68 20 62 67 63 6f 6c 6f 72 3d  /th><th bgcolor=
f690: 22 23 64 30 64 30 61 30 22 3e 4e 6f 64 65 54 6f  "#d0d0a0">NodeTo
f6a0: 3c 2f 74 68 3e 3c 74 68 20 62 67 63 6f 6c 6f 72  </th><th bgcolor
f6b0: 3d 22 23 64 30 64 30 61 30 22 3e 43 6f 73 74 3c  ="#d0d0a0">Cost<
f6c0: 2f 74 68 3e 3c 74 68 20 62 67 63 6f 6c 6f 72 3d  /th><th bgcolor=
f6d0: 22 23 64 30 64 30 61 30 22 3e 47 65 6f 6d 65 74  "#d0d0a0">Geomet
f6e0: 72 79 3c 2f 74 68 3e 3c 74 68 20 62 67 63 6f 6c  ry</th><th bgcol
f6f0: 6f 72 3d 22 23 64 30 64 30 61 30 22 3e 4e 61 6d  or="#d0d0a0">Nam
f700: 65 3c 2f 74 68 3e 3c 2f 74 72 3e 0d 0a 3c 74 72  e</th></tr>..<tr
f710: 3e 0d 0a 3c 74 64 3e 44 69 6a 6b 73 74 72 61 3c  >..<td>Dijkstra<
f720: 2f 74 64 3e 3c 74 64 3e 53 68 6f 72 74 65 73 74  /td><td>Shortest
f730: 20 50 61 74 68 3c 2f 74 64 3e 3c 74 64 3e 46 75   Path</td><td>Fu
f740: 6c 6c 3c 2f 74 64 3e 3c 74 64 3e 2c 20 26 23 39  ll</td><td>, &#9
f750: 31 3b 64 65 63 3d 34 34 2c 20 68 65 78 3d 32 63  1;dec=44, hex=2c
f760: 26 23 39 33 3b 3c 2f 74 64 3e 3c 74 64 20 61 6c  &#93;</td><td al
f770: 69 67 6e 3d 22 72 69 67 68 74 22 3e 30 3c 2f 74  ign="right">0</t
f780: 64 3e 3c 74 64 20 61 6c 69 67 6e 3d 22 72 69 67  d><td align="rig
f790: 68 74 22 3e 30 3c 2f 74 64 3e 3c 74 64 3e 52 6f  ht">0</td><td>Ro
f7a0: 75 74 65 3c 2f 74 64 3e 3c 74 64 3e 4e 55 4c 4c  ute</td><td>NULL
f7b0: 3c 2f 74 64 3e 3c 74 64 20 61 6c 69 67 6e 3d 22  </td><td align="
f7c0: 72 69 67 68 74 22 3e 31 37 38 37 33 31 3c 2f 74  right">178731</t
f7d0: 64 3e 3c 74 64 20 61 6c 69 67 6e 3d 22 72 69 67  d><td align="rig
f7e0: 68 74 22 3e 31 38 33 38 38 32 3c 2f 74 64 3e 3c  ht">183882</td><
f7f0: 74 64 20 61 6c 69 67 6e 3d 22 72 69 67 68 74 22  td align="right"
f800: 3e 31 35 34 2e 37 35 30 38 33 39 3c 2f 74 64 3e  >154.750839</td>
f810: 3c 74 64 3e 4e 55 4c 4c 3c 2f 74 64 3e 3c 74 64  <td>NULL</td><td
f820: 3e 4e 55 4c 4c 3c 2f 74 64 3e 0d 0a 3c 2f 74 72  >NULL</td>..</tr
f830: 3e 0d 0a 3c 74 72 3e 0d 0a 3c 74 64 3e 4e 55 4c  >..<tr>..<td>NUL
f840: 4c 3c 2f 74 64 3e 3c 74 64 3e 4e 55 4c 4c 3c 2f  L</td><td>NULL</
f850: 74 64 3e 3c 74 64 3e 4e 55 4c 4c 3c 2f 74 64 3e  td><td>NULL</td>
f860: 3c 74 64 3e 4e 55 4c 4c 3c 2f 74 64 3e 3c 74 64  <td>NULL</td><td
f870: 20 61 6c 69 67 6e 3d 22 72 69 67 68 74 22 3e 31   align="right">1
f880: 3c 2f 74 64 3e 3c 74 64 20 61 6c 69 67 6e 3d 22  </td><td align="
f890: 72 69 67 68 74 22 3e 30 3c 2f 74 64 3e 3c 74 64  right">0</td><td
f8a0: 3e 52 6f 75 74 65 3c 2f 74 64 3e 3c 74 64 3e 4e  >Route</td><td>N
f8b0: 55 4c 4c 3c 2f 74 64 3e 3c 74 64 20 61 6c 69 67  ULL</td><td alig
f8c0: 6e 3d 22 72 69 67 68 74 22 3e 31 37 38 37 33 31  n="right">178731
f8d0: 3c 2f 74 64 3e 3c 74 64 20 61 6c 69 67 6e 3d 22  </td><td align="
f8e0: 72 69 67 68 74 22 3e 31 38 34 30 33 30 3c 2f 74  right">184030</t
f8f0: 64 3e 3c 74 64 20 61 6c 69 67 6e 3d 22 72 69 67  d><td align="rig
f900: 68 74 22 3e 31 37 36 2e 33 36 34 37 35 35 3c 2f  ht">176.364755</
f910: 74 64 3e 3c 74 64 3e 4e 55 4c 4c 3c 2f 74 64 3e  td><td>NULL</td>
f920: 3c 74 64 3e 4e 55 4c 4c 3c 2f 74 64 3e 0d 0a 3c  <td>NULL</td>..<
f930: 2f 74 72 3e 0d 0a 3c 74 72 3e 0d 0a 3c 74 64 3e  /tr>..<tr>..<td>
f940: 4e 55 4c 4c 3c 2f 74 64 3e 3c 74 64 3e 4e 55 4c  NULL</td><td>NUL
f950: 4c 3c 2f 74 64 3e 3c 74 64 3e 4e 55 4c 4c 3c 2f  L</td><td>NULL</
f960: 74 64 3e 3c 74 64 3e 4e 55 4c 4c 3c 2f 74 64 3e  td><td>NULL</td>
f970: 3c 74 64 20 61 6c 69 67 6e 3d 22 72 69 67 68 74  <td align="right
f980: 22 3e 32 3c 2f 74 64 3e 3c 74 64 20 61 6c 69 67  ">2</td><td alig
f990: 6e 3d 22 72 69 67 68 74 22 3e 30 3c 2f 74 64 3e  n="right">0</td>
f9a0: 3c 74 64 3e 52 6f 75 74 65 3c 2f 74 64 3e 3c 74  <td>Route</td><t
f9b0: 64 3e 4e 55 4c 4c 3c 2f 74 64 3e 3c 74 64 20 61  d>NULL</td><td a
f9c0: 6c 69 67 6e 3d 22 72 69 67 68 74 22 3e 31 37 38  lign="right">178
f9d0: 37 33 31 3c 2f 74 64 3e 3c 74 64 20 61 6c 69 67  731</td><td alig
f9e0: 6e 3d 22 72 69 67 68 74 22 3e 31 37 38 37 35 34  n="right">178754
f9f0: 3c 2f 74 64 3e 3c 74 64 20 61 6c 69 67 6e 3d 22  </td><td align="
fa00: 72 69 67 68 74 22 3e 32 32 34 2e 36 37 37 30 39  right">224.67709
fa10: 35 3c 2f 74 64 3e 3c 74 64 3e 4e 55 4c 4c 3c 2f  5</td><td>NULL</
fa20: 74 64 3e 3c 74 64 3e 4e 55 4c 4c 3c 2f 74 64 3e  td><td>NULL</td>
fa30: 0d 0a 3c 2f 74 72 3e 0d 0a 3c 74 72 3e 0d 0a 3c  ..</tr>..<tr>..<
fa40: 74 64 3e 4e 55 4c 4c 3c 2f 74 64 3e 3c 74 64 3e  td>NULL</td><td>
fa50: 4e 55 4c 4c 3c 2f 74 64 3e 3c 74 64 3e 4e 55 4c  NULL</td><td>NUL
fa60: 4c 3c 2f 74 64 3e 3c 74 64 3e 4e 55 4c 4c 3c 2f  L</td><td>NULL</
fa70: 74 64 3e 3c 74 64 20 61 6c 69 67 6e 3d 22 72 69  td><td align="ri
fa80: 67 68 74 22 3e 33 3c 2f 74 64 3e 3c 74 64 20 61  ght">3</td><td a
fa90: 6c 69 67 6e 3d 22 72 69 67 68 74 22 3e 30 3c 2f  lign="right">0</
faa0: 74 64 3e 3c 74 64 3e 52 6f 75 74 65 3c 2f 74 64  td><td>Route</td
fab0: 3e 3c 74 64 3e 4e 55 4c 4c 3c 2f 74 64 3e 3c 74  ><td>NULL</td><t
fac0: 64 20 61 6c 69 67 6e 3d 22 72 69 67 68 74 22 3e  d align="right">
fad0: 31 37 38 37 33 31 3c 2f 74 64 3e 3c 74 64 20 61  178731</td><td a
fae0: 6c 69 67 6e 3d 22 72 69 67 68 74 22 3e 31 38 31  lign="right">181
faf0: 39 39 39 3c 2f 74 64 3e 3c 74 64 20 61 6c 69 67  999</td><td alig
fb00: 6e 3d 22 72 69 67 68 74 22 3e 32 36 30 2e 31 33  n="right">260.13
fb10: 32 33 35 34 3c 2f 74 64 3e 3c 74 64 3e 4e 55 4c  2354</td><td>NUL
fb20: 4c 3c 2f 74 64 3e 3c 74 64 3e 4e 55 4c 4c 3c 2f  L</td><td>NULL</
fb30: 74 64 3e 0d 0a 3c 2f 74 72 3e 0d 0a 3c 74 72 3e  td>..</tr>..<tr>
fb40: 0d 0a 3c 74 64 3e 4e 55 4c 4c 3c 2f 74 64 3e 3c  ..<td>NULL</td><
fb50: 74 64 3e 4e 55 4c 4c 3c 2f 74 64 3e 3c 74 64 3e  td>NULL</td><td>
fb60: 4e 55 4c 4c 3c 2f 74 64 3e 3c 74 64 3e 4e 55 4c  NULL</td><td>NUL
fb70: 4c 3c 2f 74 64 3e 3c 74 64 20 61 6c 69 67 6e 3d  L</td><td align=
fb80: 22 72 69 67 68 74 22 3e 34 3c 2f 74 64 3e 3c 74  "right">4</td><t
fb90: 64 20 61 6c 69 67 6e 3d 22 72 69 67 68 74 22 3e  d align="right">
fba0: 30 3c 2f 74 64 3e 3c 74 64 3e 52 6f 75 74 65 3c  0</td><td>Route<
fbb0: 2f 74 64 3e 3c 74 64 3e 4e 55 4c 4c 3c 2f 74 64  /td><td>NULL</td
fbc0: 3e 3c 74 64 20 61 6c 69 67 6e 3d 22 72 69 67 68  ><td align="righ
fbd0: 74 22 3e 31 37 38 37 33 31 3c 2f 74 64 3e 3c 74  t">178731</td><t
fbe0: 64 20 61 6c 69 67 6e 3d 22 72 69 67 68 74 22 3e  d align="right">
fbf0: 31 38 33 32 38 36 3c 2f 74 64 3e 3c 74 64 20 61  183286</td><td a
fc00: 6c 69 67 6e 3d 22 72 69 67 68 74 22 3e 33 30 30  lign="right">300
fc10: 2e 39 31 32 32 30 38 3c 2f 74 64 3e 3c 74 64 3e  .912208</td><td>
fc20: 4e 55 4c 4c 3c 2f 74 64 3e 3c 74 64 3e 4e 55 4c  NULL</td><td>NUL
fc30: 4c 3c 2f 74 64 3e 0d 0a 3c 2f 74 72 3e 0d 0a 3c  L</td>..</tr>..<
fc40: 74 72 3e 0d 0a 3c 74 64 3e 4e 55 4c 4c 3c 2f 74  tr>..<td>NULL</t
fc50: 64 3e 3c 74 64 3e 4e 55 4c 4c 3c 2f 74 64 3e 3c  d><td>NULL</td><
fc60: 74 64 3e 4e 55 4c 4c 3c 2f 74 64 3e 3c 74 64 3e  td>NULL</td><td>
fc70: 4e 55 4c 4c 3c 2f 74 64 3e 3c 74 64 3e 4e 55 4c  NULL</td><td>NUL
fc80: 4c 3c 2f 74 64 3e 3c 74 64 3e 4e 55 4c 4c 3c 2f  L</td><td>NULL</
fc90: 74 64 3e 3c 74 64 3e 55 6e 72 65 61 63 68 61 62  td><td>Unreachab
fca0: 6c 65 20 4e 6f 64 65 54 6f 3c 2f 74 64 3e 3c 74  le NodeTo</td><t
fcb0: 64 3e 4e 55 4c 4c 3c 2f 74 64 3e 3c 74 64 20 61  d>NULL</td><td a
fcc0: 6c 69 67 6e 3d 22 72 69 67 68 74 22 3e 31 37 38  lign="right">178
fcd0: 37 33 31 3c 2f 74 64 3e 3c 74 64 20 61 6c 69 67  731</td><td alig
fce0: 6e 3d 22 72 69 67 68 74 22 3e 32 39 30 34 35 38  n="right">290458
fcf0: 3c 2f 74 64 3e 3c 74 64 3e 4e 55 4c 4c 3c 2f 74  </td><td>NULL</t
fd00: 64 3e 3c 74 64 3e 4e 55 4c 4c 3c 2f 74 64 3e 3c  d><td>NULL</td><
fd10: 74 64 3e 4e 55 4c 4c 3c 2f 74 64 3e 0d 0a 3c 2f  td>NULL</td>..</
fd20: 74 72 3e 0d 0a 3c 74 72 3e 0d 0a 3c 74 64 3e 4e  tr>..<tr>..<td>N
fd30: 55 4c 4c 3c 2f 74 64 3e 3c 74 64 3e 4e 55 4c 4c  ULL</td><td>NULL
fd40: 3c 2f 74 64 3e 3c 74 64 3e 4e 55 4c 4c 3c 2f 74  </td><td>NULL</t
fd50: 64 3e 3c 74 64 3e 4e 55 4c 4c 3c 2f 74 64 3e 3c  d><td>NULL</td><
fd60: 74 64 3e 4e 55 4c 4c 3c 2f 74 64 3e 3c 74 64 3e  td>NULL</td><td>
fd70: 4e 55 4c 4c 3c 2f 74 64 3e 3c 74 64 3e 55 6e 72  NULL</td><td>Unr
fd80: 65 61 63 68 61 62 6c 65 20 4e 6f 64 65 54 6f 3c  eachable NodeTo<
fd90: 2f 74 64 3e 3c 74 64 3e 4e 55 4c 4c 3c 2f 74 64  /td><td>NULL</td
fda0: 3e 3c 74 64 20 61 6c 69 67 6e 3d 22 72 69 67 68  ><td align="righ
fdb0: 74 22 3e 31 37 38 37 33 31 3c 2f 74 64 3e 3c 74  t">178731</td><t
fdc0: 64 20 61 6c 69 67 6e 3d 22 72 69 67 68 74 22 3e  d align="right">
fdd0: 31 32 34 36 32 32 3c 2f 74 64 3e 3c 74 64 3e 4e  124622</td><td>N
fde0: 55 4c 4c 3c 2f 74 64 3e 3c 74 64 3e 4e 55 4c 4c  ULL</td><td>NULL
fdf0: 3c 2f 74 64 3e 3c 74 64 3e 4e 55 4c 4c 3c 2f 74  </td><td>NULL</t
fe00: 64 3e 0d 0a 3c 2f 74 72 3e 0d 0a 3c 2f 74 61 62  d>..</tr>..</tab
fe10: 6c 65 3e 0d 0a 3c 62 72 3e 0d 0a 54 68 65 20 6d  le>..<br>..The m
fe20: 61 70 20 62 65 6c 6f 77 20 67 72 61 70 68 69 63  ap below graphic
fe30: 61 6c 6c 79 20 73 68 6f 77 73 20 74 68 65 20 70  ally shows the p
fe40: 72 65 76 69 6f 75 73 20 3c 62 3e 6d 75 6c 74 69  revious <b>multi
fe50: 2d 64 65 73 74 69 6e 61 74 69 6f 6e 73 3c 2f 62  -destinations</b
fe60: 3e 20 71 75 65 72 69 65 73 2e 0d 0a 3c 62 72 3e  > queries...<br>
fe70: 3c 62 72 3e 0d 0a 3c 69 6d 67 20 73 72 63 3d 22  <br>..<img src="
fe80: 68 74 74 70 73 3a 2f 2f 77 77 77 2e 67 61 69 61  https://www.gaia
fe90: 2d 67 69 73 2e 69 74 2f 67 61 69 61 2d 73 69 6e  -gis.it/gaia-sin
fea0: 73 2f 72 6f 75 74 69 6e 67 2d 66 69 67 73 2f 72  s/routing-figs/r
feb0: 6f 75 74 69 6e 67 33 2e 6a 70 67 22 20 61 6c 74  outing3.jpg" alt
fec0: 3d 22 66 69 67 33 22 3e 0d 0a 3c 75 6c 3e 0d 0a  ="fig3">..<ul>..
fed0: 3c 6c 69 3e 52 65 64 20 73 74 61 72 3a 20 74 68  <li>Red star: th
fee0: 65 20 4f 72 69 67 69 6e 20 4e 6f 64 65 2e 3c 2f  e Origin Node.</
fef0: 6c 69 3e 0d 0a 3c 6c 69 3e 47 72 65 65 6e 20 64  li>..<li>Green d
ff00: 6f 74 73 3a 20 74 68 65 20 44 65 73 74 69 6e 61  ots: the Destina
ff10: 74 69 6f 6e 20 4e 6f 64 65 73 2e 3c 2f 6c 69 3e  tion Nodes.</li>
ff20: 0d 0a 3c 6c 69 3e 59 65 6c 6c 6f 77 20 6c 69 6e  ..<li>Yellow lin
ff30: 65 73 3a 20 61 6c 6c 20 69 6e 64 69 76 69 64 75  es: all individu
ff40: 61 6c 20 74 72 61 76 65 6c 20 73 6f 6c 75 74 69  al travel soluti
ff50: 6f 6e 73 2e 3c 2f 6c 69 3e 0d 0a 3c 2f 75 6c 3e  ons.</li>..</ul>
ff60: 0d 0a 3c 62 72 3e 0d 0a 3c 74 61 62 6c 65 20 62  ..<br>..<table b
ff70: 67 63 6f 6c 6f 72 3d 22 23 66 66 62 30 36 30 22  gcolor="#ffb060"
ff80: 20 63 65 6c 6c 73 70 61 63 69 6e 67 3d 22 31 30   cellspacing="10
ff90: 22 20 63 65 6c 6c 70 61 64 64 69 6e 67 3d 22 36  " cellpadding="6
ffa0: 22 3e 3c 74 72 3e 3c 74 64 3e 0d 0a 3c 68 33 3e  "><tr><td>..<h3>
ffb0: 44 61 6e 67 65 72 6f 75 73 20 70 69 74 66 61 6c  Dangerous pitfal
ffc0: 6c 73 20 72 65 6c 61 74 65 64 20 74 6f 20 6d 75  ls related to mu
ffd0: 6c 74 69 70 6c 65 20 64 65 73 74 69 6e 61 74 69  ltiple destinati
ffe0: 6f 6e 20 6c 69 73 74 73 3c 2f 68 33 3e 0d 0a 53  on lists</h3>..S
fff0: 51 4c 20 73 79 6e 74 61 78 20 64 69 72 65 63 74  QL syntax direct
10000 6c 79 20 61 6c 6c 6f 77 73 20 74 6f 20 73 70 65  ly allows to spe
10010 63 69 66 79 20 6c 69 73 74 73 20 6f 66 20 20 6d  cify lists of  m
10020 75 6c 74 69 70 6c 65 20 76 61 6c 75 65 73 2c 20  ultiple values, 
10030 73 6f 20 6d 61 79 20 62 65 20 79 6f 75 20 61 72  so may be you ar
10040 65 20 6e 6f 77 20 77 6f 6e 64 65 72 69 6e 67 20  e now wondering 
10050 61 62 6f 75 74 20 77 72 69 74 69 6e 67 20 74 68  about writing th
10060 65 20 3c 62 3e 6d 75 6c 74 69 70 6c 65 20 64 65  e <b>multiple de
10070 73 74 69 6e 61 74 69 6f 6e 73 3c 2f 62 3e 20 71  stinations</b> q
10080 75 65 72 79 20 74 65 73 74 65 64 20 69 6e 20 74  uery tested in t
10090 68 65 20 70 72 65 76 69 6f 75 73 20 65 78 61 6d  he previous exam
100a0 70 6c 65 73 20 74 68 69 73 20 77 61 79 3a 0d 0a  ples this way:..
100b0 3c 76 65 72 62 61 74 69 6d 3e 0d 0a 53 45 4c 45  <verbatim>..SELE
100c0 43 54 20 41 6c 67 6f 72 69 74 68 6d 2c 20 52 65  CT Algorithm, Re
100d0 71 75 65 73 74 2c 20 4f 70 74 69 6f 6e 73 2c 20  quest, Options, 
100e0 44 65 6c 69 6d 69 74 65 72 2c 20 52 6f 75 74 65  Delimiter, Route
100f0 49 64 2c 20 52 6f 75 74 65 52 6f 77 2c 20 52 6f  Id, RouteRow, Ro
10100 6c 65 2c 20 4c 69 6e 6b 52 6f 77 69 64 2c 20 4e  le, LinkRowid, N
10110 6f 64 65 46 72 6f 6d 2c 20 4e 6f 64 65 54 6f 2c  odeFrom, NodeTo,
10120 20 43 6f 73 74 2c 20 47 65 6f 6d 65 74 72 79 2c   Cost, Geometry,
10130 20 4e 61 6d 65 0d 0a 46 52 4f 4d 20 62 79 66 6f   Name..FROM byfo
10140 6f 74 0d 0a 57 48 45 52 45 20 4e 6f 64 65 46 72  ot..WHERE NodeFr
10150 6f 6d 20 3d 20 31 37 38 37 33 31 20 41 4e 44 20  om = 178731 AND 
10160 4e 6f 64 65 54 6f 20 49 4e 20 28 31 38 33 32 38  NodeTo IN (18328
10170 36 2c 20 32 39 30 34 35 38 2c 20 31 38 31 39 39  6, 290458, 18199
10180 39 2c 20 31 38 34 30 33 30 2c 20 31 32 34 36 32  9, 184030, 12462
10190 32 2c 20 31 38 33 38 38 32 2c 20 31 37 38 37 35  2, 183882, 17875
101a0 34 29 3b 0d 0a 3c 2f 76 65 72 62 61 74 69 6d 3e  4);..</verbatim>
101b0 0d 0a 54 68 65 72 65 20 69 73 20 61 20 76 65 72  ..There is a ver
101c0 79 20 67 6f 6f 64 20 72 65 61 73 6f 6e 20 64 69  y good reason di
101d0 73 63 6f 75 72 61 67 69 6e 67 20 66 72 6f 6d 20  scouraging from 
101e0 64 6f 69 6e 67 20 73 75 63 68 20 61 20 74 68 69  doing such a thi
101f0 6e 67 2c 20 6c 65 74 27 73 20 73 65 65 20 77 68  ng, let's see wh
10200 79 2e 3c 62 72 3e 0d 0a 3c 62 3e 53 51 4c 69 74  y.<br>..<b>SQLit
10210 65 3c 2f 62 3e 20 77 69 6c 6c 20 70 72 6f 63 65  e</b> will proce
10220 73 73 20 61 20 72 65 71 75 65 73 74 20 77 72 69  ss a request wri
10230 74 74 65 6e 20 74 68 69 73 20 77 61 79 20 62 79  tten this way by
10240 20 72 65 70 65 61 74 65 64 6c 79 20 63 61 6c 6c   repeatedly call
10250 69 6e 67 20 56 69 72 74 75 61 6c 52 6f 75 74 69  ing VirtualRouti
10260 6e 67 20 70 61 73 73 69 6e 67 20 65 61 63 68 20  ng passing each 
10270 74 69 6d 65 20 61 20 73 69 6e 67 6c 65 20 44 65  time a single De
10280 73 74 69 6e 61 74 69 6f 6e 3b 20 61 6e 64 20 63  stination; and c
10290 6f 6e 73 65 71 75 65 6e 74 6c 79 20 3c 62 3e 56  onsequently <b>V
102a0 69 72 74 75 61 6c 52 6f 75 74 69 6e 67 3c 2f 62  irtualRouting</b
102b0 3e 20 77 69 6c 6c 20 6e 65 76 65 72 20 72 65 63  > will never rec
102c0 65 69 76 65 20 74 68 65 20 63 72 69 74 69 63 61  eive the critica
102d0 6c 20 69 6e 66 6f 72 6d 61 74 69 6f 6e 20 74 68  l information th
102e0 61 74 20 61 20 73 69 6e 67 6c 65 20 6d 6f 6e 6f  at a single mono
102f0 6c 69 74 68 69 63 20 72 65 71 75 65 73 74 20 77  lithic request w
10300 61 73 20 69 6e 74 65 6e 64 65 64 20 74 6f 20 62  as intended to b
10310 65 20 65 78 65 63 75 74 65 64 20 69 6e 20 61 20  e executed in a 
10320 73 69 6e 67 6c 65 20 73 68 6f 74 2e 20 53 6f 20  single shot. So 
10330 74 68 65 20 72 65 71 75 65 73 74 20 63 6f 6e 74  the request cont
10340 65 78 74 20 77 69 6c 6c 20 62 65 20 65 61 73 69  ext will be easi
10350 6c 79 20 6d 69 73 69 6e 74 65 72 70 72 65 74 65  ly misinterprete
10360 64 2c 20 61 6e 64 20 61 6e 79 20 65 78 70 65 63  d, and any expec
10370 74 65 64 20 73 70 65 65 64 20 62 65 6e 65 66 69  ted speed benefi
10380 74 20 77 69 6c 6c 20 62 65 20 63 6f 6d 70 6c 65  t will be comple
10390 74 65 6c 79 20 66 72 75 73 74 72 61 74 65 64 2e  tely frustrated.
103a0 0d 0a 3c 68 33 3e 42 65 77 61 72 65 3c 2f 68 33  ..<h3>Beware</h3
103b0 3e 0d 0a 3c 62 3e 4e 65 76 65 72 20 65 76 65 72  >..<b>Never ever
103c0 3c 2f 62 3e 20 61 74 74 65 6d 70 74 20 74 6f 20  </b> attempt to 
103d0 64 65 66 69 6e 65 20 61 20 6c 69 73 74 20 6f 66  define a list of
103e0 20 6d 75 6c 74 69 70 6c 65 20 64 65 73 74 69 6e   multiple destin
103f0 61 74 69 6f 6e 73 20 75 73 69 6e 67 20 74 68 65  ations using the
10400 20 73 74 61 6e 64 61 72 64 20 53 51 4c 20 73 79   standard SQL sy
10410 6e 74 61 78 20 3c 62 3e 3c 69 3e 57 48 45 52 45  ntax <b><i>WHERE
10420 20 4e 6f 64 65 54 6f 20 49 4e 20 28 2e 2e 2e 2e   NodeTo IN (....
10430 2e 2e 29 3c 2f 69 3e 3c 2f 62 3e 2c 20 62 65 63  ..)</i></b>, bec
10440 61 75 73 65 20 74 68 69 73 20 77 69 6c 6c 20 63  ause this will c
10450 65 72 74 61 69 6e 6c 79 20 63 61 75 73 65 20 6d  ertainly cause m
10460 61 6e 79 20 75 6e 65 78 70 65 63 74 65 64 20 74  any unexpected t
10470 72 6f 75 62 6c 65 73 2e 3c 62 72 3e 0d 0a 42 61  roubles.<br>..Ba
10480 64 6c 79 20 66 6f 72 6d 61 74 74 65 64 20 72 65  dly formatted re
10490 73 75 6c 74 73 65 74 73 20 77 69 6c 6c 20 62 65  sultsets will be
104a0 20 74 68 65 6e 20 72 65 74 75 72 6e 65 64 2c 20   then returned, 
104b0 6d 61 79 20 62 65 20 63 6f 6e 74 61 69 6e 69 6e  may be containin
104c0 67 20 77 72 6f 6e 67 20 72 65 73 75 6c 74 73 2e  g wrong results.
104d0 20 3c 62 3e 59 6f 75 20 61 72 65 20 77 61 72 6e   <b>You are warn
104e0 65 64 3c 2f 62 3e 2e 3c 62 72 3e 3c 62 72 3e 0d  ed</b>.<br><br>.
104f0 0a 3c 2f 74 64 3e 3c 2f 74 72 3e 3c 2f 74 61 62  .</td></tr></tab
10500 6c 65 3e 0d 0a 3c 62 72 3e 0d 0a 3c 74 61 62 6c  le>..<br>..<tabl
10510 65 20 62 67 63 6f 6c 6f 72 3d 22 23 63 30 66 66  e bgcolor="#c0ff
10520 63 30 22 20 63 65 6c 6c 73 70 61 63 69 6e 67 3d  c0" cellspacing=
10530 22 31 30 22 20 63 65 6c 6c 70 61 64 64 69 6e 67  "10" cellpadding
10540 3d 22 36 22 3e 3c 74 72 3e 3c 74 64 3e 0d 0a 3c  ="6"><tr><td>..<
10550 68 33 3e 48 6f 77 20 74 6f 20 63 6f 72 72 65 63  h3>How to correc
10560 74 6c 79 20 66 6f 72 6d 61 74 20 6d 75 6c 74 69  tly format multi
10570 70 6c 65 20 64 65 73 74 69 6e 61 74 69 6f 6e 73  ple destinations
10580 20 6c 69 73 74 73 3c 2f 68 33 3e 0d 0a 56 69 72   lists</h3>..Vir
10590 74 75 61 6c 52 6f 75 74 69 6e 67 20 61 6c 77 61  tualRouting alwa
105a0 79 73 20 65 78 70 65 63 74 73 20 74 6f 20 72 65  ys expects to re
105b0 63 65 69 76 65 20 61 20 3c 62 3e 6d 75 6c 74 69  ceive a <b>multi
105c0 2d 64 65 73 74 69 6e 61 74 69 6f 6e 73 3c 2f 62  -destinations</b
105d0 3e 20 6c 69 73 74 20 61 73 20 61 20 3c 62 3e 54  > list as a <b>T
105e0 45 58 54 3c 2f 62 3e 20 73 74 72 69 6e 67 20 63  EXT</b> string c
105f0 6f 6e 74 61 69 6e 69 6e 67 20 74 69 67 68 74 6c  ontaining tightl
10600 79 20 70 61 63 6b 65 64 20 76 61 6c 75 65 73 20  y packed values 
10610 73 65 70 61 72 61 74 65 64 20 62 79 20 61 20 63  separated by a c
10620 6f 6e 76 65 6e 74 69 6f 6e 61 6c 20 3c 62 3e 64  onventional <b>d
10630 65 6c 69 6d 69 74 65 72 3c 2f 62 3e 20 28 75 73  elimiter</b> (us
10640 75 61 6c 6c 79 20 72 65 70 72 65 73 65 6e 74 65  ually represente
10650 64 20 62 79 20 61 20 3c 62 3e 63 6f 6d 6d 61 3c  d by a <b>comma<
10660 2f 62 3e 29 2e 3c 62 72 3e 0d 0a 45 78 61 6d 70  /b>).<br>..Examp
10670 6c 65 73 20 6f 66 20 3c 62 3e 77 65 6c 6c 20 66  les of <b>well f
10680 6f 72 6d 61 74 74 65 64 3c 2f 62 3e 20 6d 75 6c  ormatted</b> mul
10690 74 69 2d 64 65 73 74 69 6e 61 74 69 6f 6e 73 20  ti-destinations 
106a0 6c 69 73 74 73 3a 0d 0a 3c 76 65 72 62 61 74 69  lists:..<verbati
106b0 6d 3e 0d 0a 27 31 2c 32 2c 33 2c 34 2c 35 2c 31  m>..'1,2,3,4,5,1
106c0 30 2c 31 30 30 2c 31 30 30 30 2c 31 30 30 30 30  0,100,1000,10000
106d0 30 27 20 20 20 2d 2d 20 69 6e 74 65 67 65 72 20  0'   -- integer 
106e0 4e 6f 64 65 20 49 44 73 0d 0a 0d 0a 27 41 31 30  Node IDs....'A10
106f0 30 42 2c 41 31 30 30 46 2c 42 32 35 30 5a 2c 43  0B,A100F,B250Z,C
10700 30 31 30 4d 2c 5a 39 39 39 41 27 20 20 2d 2d 20  010M,Z999A'  -- 
10710 61 6c 70 68 61 6e 75 6d 65 72 69 63 20 4e 6f 64  alphanumeric Nod
10720 65 20 43 6f 64 65 73 0d 0a 3c 2f 76 65 72 62 61  e Codes..</verba
10730 74 69 6d 3e 0d 0a 45 78 61 6d 70 6c 65 73 20 6f  tim>..Examples o
10740 66 20 3c 62 3e 62 61 64 6c 79 20 66 6f 72 6d 61  f <b>badly forma
10750 74 74 65 64 3c 2f 62 3e 20 6d 75 6c 74 69 2d 64  tted</b> multi-d
10760 65 73 74 69 6e 61 74 69 6f 6e 73 20 6c 69 73 74  estinations list
10770 73 3a 0d 0a 3c 76 65 72 62 61 74 69 6d 3e 0d 0a  s:..<verbatim>..
10780 27 20 20 31 2c 20 32 2c 20 33 2c 20 34 20 2c 20  '  1, 2, 3, 4 , 
10790 35 20 2c 20 31 30 2c 20 31 30 30 2c 20 31 30 30  5 , 10, 100, 100
107a0 30 2c 20 31 30 30 30 30 30 20 20 27 20 20 20 2d  0, 100000  '   -
107b0 2d 20 69 6e 74 65 67 65 72 20 4e 6f 64 65 20 49  - integer Node I
107c0 44 73 0d 0a 0d 0a 27 20 20 41 31 30 30 42 2c 20  Ds....'  A100B, 
107d0 41 31 30 30 46 20 2c 20 42 32 35 30 5a 20 2c 20  A100F , B250Z , 
107e0 43 30 31 30 4d 2c 20 5a 39 39 39 41 20 20 27 20  C010M, Z999A  ' 
107f0 20 20 20 20 20 2d 2d 20 61 6c 70 68 61 6e 75 6d       -- alphanum
10800 65 72 69 63 20 4e 6f 64 65 20 43 6f 64 65 73 0d  eric Node Codes.
10810 0a 3c 2f 76 65 72 62 61 74 69 6d 3e 0d 0a 3c 75  .</verbatim>..<u
10820 3e 4e 6f 74 65 3c 2f 75 3e 3a 20 61 6c 6c 20 77  >Note</u>: all w
10830 68 69 74 65 73 70 61 63 65 73 20 69 6d 6d 65 64  hitespaces immed
10840 69 61 74 65 6c 79 20 70 72 65 63 65 64 69 6e 67  iately preceding
10850 20 6f 72 20 66 6f 6c 6c 6f 77 69 6e 67 20 74 68   or following th
10860 65 20 3c 62 3e 64 65 6c 69 6d 69 74 65 72 3c 2f  e <b>delimiter</
10870 62 3e 20 77 69 6c 6c 20 62 65 20 63 6f 6e 73 69  b> will be consi
10880 64 65 72 65 64 20 74 6f 20 62 65 20 69 6e 74 65  dered to be inte
10890 67 72 61 6c 20 70 61 72 74 20 6f 66 20 74 68 65  gral part of the
108a0 20 76 61 6c 75 65 20 69 74 73 65 6c 66 2e 3c 62   value itself.<b
108b0 72 3e 0d 0a 54 68 69 73 20 77 69 6c 6c 20 68 61  r>..This will ha
108c0 76 65 20 6e 6f 20 61 64 76 65 72 73 65 20 63 6f  ve no adverse co
108d0 6e 73 65 71 75 65 6e 63 65 73 20 69 6e 20 74 68  nsequences in th
108e0 65 20 63 61 73 65 20 6f 66 20 69 6e 74 65 67 65  e case of intege
108f0 72 20 76 61 6c 75 65 73 2c 20 62 75 74 20 63 61  r values, but ca
10900 6e 20 65 61 73 69 6c 79 20 68 61 76 65 20 63 61  n easily have ca
10910 74 61 73 74 72 6f 70 68 69 63 20 65 66 66 65 63  tastrophic effec
10920 74 73 20 6f 6e 20 61 6c 70 68 61 6e 75 6d 65 72  ts on alphanumer
10930 69 63 20 76 61 6c 75 65 73 2e 0d 0a 3c 68 33 3e  ic values...<h3>
10940 44 65 66 69 6e 69 6e 67 20 61 20 63 75 73 74 6f  Defining a custo
10950 6d 20 64 65 6c 69 6d 69 74 65 72 3c 2f 68 33 3e  m delimiter</h3>
10960 0d 0a 53 6f 6d 65 74 69 6d 65 73 20 69 74 20 63  ..Sometimes it c
10970 6f 75 6c 64 20 62 65 20 75 73 65 66 75 6c 20 73  ould be useful s
10980 65 74 74 69 6e 67 20 75 70 20 61 20 64 65 6c 69  etting up a deli
10990 6d 69 74 65 72 20 64 69 66 66 65 72 65 6e 74 20  miter different 
109a0 66 72 6f 6d 20 3c 62 3e 63 6f 6d 6d 61 3c 2f 62  from <b>comma</b
109b0 3e 2e 0d 0a 3c 76 65 72 62 61 74 69 6d 3e 0d 0a  >...<verbatim>..
109c0 55 50 44 41 54 45 20 62 79 66 6f 6f 74 20 53 45  UPDATE byfoot SE
109d0 54 20 44 65 6c 69 6d 69 74 65 72 20 3d 20 27 2a  T Delimiter = '*
109e0 27 3b 0d 0a 0d 0a 53 45 4c 45 43 54 20 44 65 6c  ';....SELECT Del
109f0 69 6d 69 74 65 72 20 46 52 4f 4d 20 62 79 66 6f  imiter FROM byfo
10a00 6f 74 3b 0d 0a 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d  ot;..-----------
10a10 2d 2d 2d 2d 2d 2d 2d 0d 0a 2a 20 5b 64 65 63 3d  -------..* [dec=
10a20 34 32 2c 20 68 65 78 3d 32 61 5d 0d 0a 3c 2f 76  42, hex=2a]..</v
10a30 65 72 62 61 74 69 6d 3e 20 0d 0a 59 6f 75 20 73  erbatim> ..You s
10a40 69 6d 70 6c 79 20 68 61 76 65 20 74 6f 20 65 78  imply have to ex
10a50 65 63 75 74 65 20 61 6e 20 3c 62 3e 55 50 44 41  ecute an <b>UPDA
10a60 54 45 3c 2f 62 3e 20 73 74 61 74 65 6d 65 6e 74  TE</b> statement
10a70 20 62 79 20 73 70 65 63 69 66 79 69 6e 67 20 74   by specifying t
10a80 68 65 20 6e 65 77 20 64 65 6c 69 6d 69 74 65 72  he new delimiter
10a90 20 76 61 6c 75 65 2e 3c 62 72 3e 3c 62 72 3e 0d   value.<br><br>.
10aa0 0a 3c 2f 74 64 3e 3c 2f 74 72 3e 3c 2f 74 61 62  .</td></tr></tab
10ab0 6c 65 3e 0d 0a 3c 62 72 3e 3c 62 72 3e 0d 0a 3c  le>..<br><br>..<
10ac0 68 72 3e 3c 62 72 3e 0d 0a 3c 68 31 3e 3c 61 20  hr><br>..<h1><a 
10ad0 6e 61 6d 65 3d 22 69 73 6f 63 68 72 6f 6e 65 22  name="isochrone"
10ae0 3e 36 20 2d 20 53 6f 6c 76 69 6e 67 20 49 73 6f  >6 - Solving Iso
10af0 63 68 72 6f 6e 65 20 70 72 6f 62 6c 65 6d 73 3c  chrone problems<
10b00 2f 61 3e 3c 2f 68 31 3e 0d 0a 3c 61 20 68 72 65  /a></h1>..<a hre
10b10 66 3d 22 68 74 74 70 73 3a 2f 2f 65 6e 2e 77 69  f="https://en.wi
10b20 6b 69 70 65 64 69 61 2e 6f 72 67 2f 77 69 6b 69  kipedia.org/wiki
10b30 2f 49 73 6f 63 68 72 6f 6e 65 5f 6d 61 70 22 3e  /Isochrone_map">
10b40 49 73 6f 63 68 72 6f 6e 65 73 3c 2f 61 3e 20 61  Isochrones</a> a
10b50 72 65 20 61 72 65 61 73 20 28 6f 72 20 63 75 72  re areas (or cur
10b60 76 65 73 29 20 63 6f 6e 6e 65 63 74 69 6e 67 20  ves) connecting 
10b70 70 6f 69 6e 74 73 20 61 74 20 77 68 69 63 68 20  points at which 
10b80 73 6f 6d 65 74 68 69 6e 67 20 6f 63 63 75 72 73  something occurs
10b90 20 6f 72 20 61 72 72 69 76 65 73 20 61 74 20 74   or arrives at t
10ba0 68 65 20 73 61 6d 65 20 74 69 6d 65 2e 3c 62 72  he same time.<br
10bb0 3e 0d 0a 49 73 6f 63 68 72 6f 6e 65 73 20 61 72  >..Isochrones ar
10bc0 65 20 75 73 75 61 6c 6c 79 20 72 65 6c 61 74 65  e usually relate
10bd0 64 20 74 6f 20 4e 65 74 77 6f 72 6b 20 41 6e 61  d to Network Ana
10be0 6c 79 73 69 73 20 61 6e 64 20 52 6f 75 74 69 6e  lysis and Routin
10bf0 67 20 62 65 63 61 75 73 65 20 74 68 65 79 20 61  g because they a
10c00 6c 6c 6f 77 20 74 6f 20 65 61 73 69 6c 79 20 69  llow to easily i
10c10 64 65 6e 74 69 66 79 20 77 68 69 63 68 20 73 70  dentify which sp
10c20 65 63 69 66 69 63 20 70 6f 72 74 69 6f 6e 20 6f  ecific portion o
10c30 66 20 74 68 65 20 4e 65 74 77 6f 72 6b 20 63 61  f the Network ca
10c40 6e 20 62 65 20 72 65 61 63 68 65 64 20 73 74 61  n be reached sta
10c50 72 74 69 6e 67 20 62 79 20 73 6f 6d 65 20 3c 62  rting by some <b
10c60 3e 6f 72 69 67 69 6e 20 4e 6f 64 65 3c 2f 62 3e  >origin Node</b>
10c70 20 73 70 65 6e 64 69 6e 67 20 6e 6f 20 6d 6f 72   spending no mor
10c80 65 20 74 68 61 6e 20 61 20 67 69 76 65 6e 20 3c  e than a given <
10c90 62 3e 43 6f 73 74 3c 2f 62 3e 2e 3c 62 72 3e 3c  b>Cost</b>.<br><
10ca0 62 72 3e 0d 0a 41 73 20 79 6f 75 20 68 61 76 65  br>..As you have
10cb0 20 61 6c 72 65 61 64 79 20 73 65 65 6e 20 61 62   already seen ab
10cc0 6f 75 74 20 3c 62 3e 6d 75 6c 74 69 2d 64 65 73  out <b>multi-des
10cd0 74 69 6e 61 74 69 6f 6e 3c 2f 62 3e 20 71 75 65  tination</b> que
10ce0 72 69 65 73 2c 20 74 68 65 20 44 69 6a 6b 73 74  ries, the Dijkst
10cf0 72 61 27 73 20 41 6c 67 6f 72 69 74 68 6d 20 72  ra's Algorithm r
10d00 6f 62 75 73 74 6c 79 20 65 6e 73 75 72 65 73 20  obustly ensures 
10d10 74 68 61 74 20 77 68 65 6e 20 61 20 64 65 73 74  that when a dest
10d20 69 6e 61 74 69 6f 6e 20 69 73 20 72 65 61 63 68  ination is reach
10d30 65 64 20 61 6c 6c 20 74 68 65 20 64 65 73 74 69  ed all the desti
10d40 6e 61 74 69 6f 6e 73 20 70 72 65 73 65 6e 74 69  nations presenti
10d50 6e 67 20 61 20 3c 62 3e 6c 65 73 73 65 72 20 63  ng a <b>lesser c
10d60 6f 73 74 3c 2f 62 3e 20 68 61 76 65 20 61 6c 72  ost</b> have alr
10d70 65 61 64 79 20 62 65 65 6e 20 72 65 61 63 68 65  eady been reache
10d80 64 20 69 6e 20 73 6f 6d 65 20 70 72 65 76 69 6f  d in some previo
10d90 75 73 20 73 74 65 70 20 6f 66 20 74 68 65 20 70  us step of the p
10da0 72 6f 63 65 73 73 2e 3c 62 72 3e 0d 0a 54 68 69  rocess.<br>..Thi
10db0 73 20 61 6c 6c 6f 77 73 20 74 6f 20 65 66 66 69  s allows to effi
10dc0 63 69 65 6e 74 6c 79 20 73 75 70 70 6f 72 74 20  ciently support 
10dd0 3c 62 3e 49 73 6f 63 68 72 6f 6e 65 3c 2f 62 3e  <b>Isochrone</b>
10de0 20 71 75 65 72 69 65 73 2e 0d 0a 59 6f 75 20 73   queries...You s
10df0 69 6d 70 6c 79 20 68 61 76 65 20 74 6f 20 73 70  imply have to sp
10e00 65 63 69 66 79 20 61 20 3c 62 3e 73 69 6e 67 6c  ecify a <b>singl
10e10 65 20 6f 72 69 67 69 6e 20 4e 6f 64 65 3c 2f 62  e origin Node</b
10e20 3e 20 61 6e 64 20 61 20 3c 62 3e 43 6f 73 74 20  > and a <b>Cost 
10e30 74 68 72 65 73 68 6f 6c 64 3c 2f 62 3e 2e 3c 62  threshold</b>.<b
10e40 72 3e 3c 62 72 3e 0d 0a 3c 75 3e 4e 6f 74 65 3c  r><br>..<u>Note<
10e50 2f 75 3e 3a 20 65 78 65 63 75 74 69 6e 67 20 61  /u>: executing a
10e60 6e 20 49 73 6f 63 68 72 6f 6e 65 20 71 75 65 72  n Isochrone quer
10e70 79 20 72 65 71 75 69 72 65 73 20 61 20 3c 62 3e  y requires a <b>
10e80 70 72 6f 63 65 73 73 69 6e 67 20 74 69 6d 65 3c  processing time<
10e90 2f 62 3e 20 74 68 61 74 20 69 73 6e 27 74 20 74  /b> that isn't t
10ea0 68 65 20 3c 75 3e 73 75 6d 20 6f 66 20 61 6c 6c  he <u>sum of all
10eb0 20 69 6e 64 69 76 69 64 75 61 6c 20 74 69 6d 69   individual timi
10ec0 6e 67 73 20 66 6f 72 20 65 61 63 68 20 64 65 73  ngs for each des
10ed0 74 69 6e 61 74 69 6f 6e 3c 2f 75 3e 2c 20 62 75  tination</u>, bu
10ee0 74 20 73 69 6d 70 6c 79 20 69 73 20 74 68 65 20  t simply is the 
10ef0 3c 75 3e 74 69 6d 65 20 72 65 71 75 69 72 65 64  <u>time required
10f00 20 74 6f 20 72 65 61 63 68 20 74 68 65 20 6d 6f   to reach the mo
10f10 73 74 20 63 6f 73 74 6c 79 20 64 65 73 74 69 6e  st costly destin
10f20 61 74 69 6f 6e 3c 2f 75 3e 2e 3c 62 72 3e 0d 0a  ation</u>.<br>..
10f30 3c 76 65 72 62 61 74 69 6d 3e 0d 0a 53 45 4c 45  <verbatim>..SELE
10f40 43 54 20 41 6c 67 6f 72 69 74 68 6d 2c 20 52 65  CT Algorithm, Re
10f50 71 75 65 73 74 2c 20 52 6f 6c 65 2c 20 4e 6f 64  quest, Role, Nod
10f60 65 46 72 6f 6d 2c 20 4e 6f 64 65 54 6f 2c 20 43  eFrom, NodeTo, C
10f70 6f 73 74 2c 20 47 65 6f 6d 65 74 72 79 0d 0a 46  ost, Geometry..F
10f80 52 4f 4d 20 62 79 66 6f 6f 74 0d 0a 57 48 45 52  ROM byfoot..WHER
10f90 45 20 4e 6f 64 65 46 72 6f 6d 20 3d 20 31 38 31  E NodeFrom = 181
10fa0 39 39 39 20 41 4e 44 20 43 6f 73 74 20 3c 3d 20  999 AND Cost <= 
10fb0 31 30 30 30 2e 30 3b 0d 0a 3c 2f 76 65 72 62 61  1000.0;..</verba
10fc0 74 69 6d 3e 0d 0a 41 6e 20 3c 62 3e 49 73 6f 63  tim>..An <b>Isoc
10fd0 68 72 6f 6e 65 3c 2f 62 3e 20 71 75 65 72 79 20  hrone</b> query 
10fe0 61 73 20 73 75 70 70 6f 72 74 65 64 20 62 79 20  as supported by 
10ff0 3c 62 3e 56 69 72 74 75 61 6c 52 6f 75 74 69 6e  <b>VirtualRoutin
11000 67 3c 2f 62 3e 20 6a 75 73 74 20 72 65 71 75 69  g</b> just requi
11010 72 65 73 20 74 6f 20 73 70 65 63 69 66 79 3a 0d  res to specify:.
11020 0a 3c 75 6c 3e 0d 0a 3c 6c 69 3e 3c 62 3e 4e 6f  .<ul>..<li><b>No
11030 64 65 46 72 6f 6d 3c 2f 62 3e 3a 20 74 68 65 20  deFrom</b>: the 
11040 3c 62 3e 3c 69 3e 49 44 3c 2f 69 3e 3c 2f 62 3e  <b><i>ID</i></b>
11050 20 6f 72 20 3c 62 3e 3c 69 3e 43 6f 64 65 3c 2f   or <b><i>Code</
11060 69 3e 3c 2f 62 3e 20 75 6e 69 71 75 65 6c 79 20  i></b> uniquely 
11070 69 64 65 6e 74 69 66 79 69 6e 67 20 74 68 65 20  identifying the 
11080 3c 62 3e 6f 72 69 67 69 6e 20 4e 6f 64 65 3c 2f  <b>origin Node</
11090 62 3e 2e 3c 2f 6c 69 3e 0d 0a 3c 6c 69 3e 3c 62  b>.</li>..<li><b
110a0 3e 43 6f 73 74 3c 2f 62 3e 3a 20 74 68 65 20 6d  >Cost</b>: the m
110b0 61 78 69 6d 75 6d 20 3c 62 3e 43 6f 73 74 20 74  aximum <b>Cost t
110c0 68 72 65 73 68 6f 6c 64 3c 2f 62 3e 20 6e 6f 74  hreshold</b> not
110d0 20 74 6f 20 62 65 20 65 78 63 65 65 64 65 64 2e   to be exceeded.
110e0 3c 62 72 3e 0d 0a 3c 75 3e 4e 6f 74 65 3c 2f 75  <br>..<u>Note</u
110f0 3e 3a 20 61 6e 79 20 76 61 6c 69 64 20 49 73 6f  >: any valid Iso
11100 63 68 72 6f 6e 65 20 71 75 65 72 79 20 3c 62 3e  chrone query <b>
11110 6d 75 73 74 3c 2f 62 3e 20 6e 65 63 65 73 73 61  must</b> necessa
11120 72 69 6c 79 20 73 70 65 63 69 66 79 20 61 20 3c  rily specify a <
11130 62 3e 3c 3d 3c 2f 62 3e 20 28 3c 75 3e 3c 69 3e  b><=</b> (<u><i>
11140 6c 65 73 73 65 72 20 74 68 61 6e 20 6f 72 20 65  lesser than or e
11150 71 75 61 6c 20 74 6f 3c 2f 69 3e 3c 2f 75 3e 29  qual to</i></u>)
11160 20 63 6f 6d 70 61 72 69 73 6f 6e 20 6f 70 65 72   comparison oper
11170 61 74 6f 72 2e 3c 2f 6c 69 3e 0d 0a 3c 2f 75 6c  ator.</li>..</ul
11180 3e 0d 0a 3c 62 72 3e 0d 0a 54 68 65 20 66 6f 6c  >..<br>..The fol
11190 6c 6f 77 69 6e 67 20 74 61 62 6c 65 20 73 68 6f  lowing table sho
111a0 77 73 20 74 68 65 20 72 65 73 75 6c 74 73 65 74  ws the resultset
111b0 20 72 65 74 75 72 6e 65 64 20 62 79 20 74 68 65   returned by the
111c0 20 61 62 6f 76 65 20 49 73 6f 63 68 72 6f 6e 65   above Isochrone
111d0 20 71 75 65 72 79 2e 0d 0a 3c 62 72 3e 3c 62 72   query...<br><br
111e0 3e 0d 0a 3c 74 61 62 6c 65 20 62 6f 72 64 65 72  >..<table border
111f0 3d 22 31 22 20 62 67 63 6f 6c 6f 72 3d 22 23 66  ="1" bgcolor="#f
11200 66 66 66 63 66 22 20 63 65 6c 6c 73 70 61 63 69  fffcf" cellspaci
11210 6e 67 3d 22 34 22 20 63 65 6c 6c 70 61 64 64 69  ng="4" cellpaddi
11220 6e 67 3d 22 36 22 3e 0d 0a 3c 74 72 3e 3c 74 68  ng="6">..<tr><th
11230 20 62 67 63 6f 6c 6f 72 3d 22 23 64 30 64 30 61   bgcolor="#d0d0a
11240 30 22 3e 41 6c 67 6f 72 69 74 68 6d 3c 2f 74 68  0">Algorithm</th
11250 3e 3c 74 68 20 62 67 63 6f 6c 6f 72 3d 22 23 64  ><th bgcolor="#d
11260 30 64 30 61 30 22 3e 52 65 71 75 65 73 74 3c 2f  0d0a0">Request</
11270 74 68 3e 3c 74 68 20 62 67 63 6f 6c 6f 72 3d 22  th><th bgcolor="
11280 23 64 30 64 30 61 30 22 3e 52 6f 6c 65 3c 2f 74  #d0d0a0">Role</t
11290 68 3e 3c 74 68 20 62 67 63 6f 6c 6f 72 3d 22 23  h><th bgcolor="#
112a0 64 30 64 30 61 30 22 3e 4e 6f 64 65 46 72 6f 6d  d0d0a0">NodeFrom
112b0 3c 2f 74 68 3e 3c 74 68 20 62 67 63 6f 6c 6f 72  </th><th bgcolor
112c0 3d 22 23 64 30 64 30 61 30 22 3e 4e 6f 64 65 54  ="#d0d0a0">NodeT
112d0 6f 3c 2f 74 68 3e 3c 74 68 20 62 67 63 6f 6c 6f  o</th><th bgcolo
112e0 72 3d 22 23 64 30 64 30 61 30 22 3e 43 6f 73 74  r="#d0d0a0">Cost
112f0 3c 2f 74 68 3e 3c 74 68 20 62 67 63 6f 6c 6f 72  </th><th bgcolor
11300 3d 22 23 64 30 64 30 61 30 22 3e 47 65 6f 6d 65  ="#d0d0a0">Geome
11310 74 72 79 3c 2f 74 68 3e 3c 2f 74 72 3e 0d 0a 3c  try</th></tr>..<
11320 74 72 3e 0d 0a 3c 74 72 3e 0d 0a 3c 74 64 3e 44  tr>..<tr>..<td>D
11330 69 6a 6b 73 74 72 61 3c 2f 74 64 3e 3c 74 64 3e  ijkstra</td><td>
11340 49 73 6f 63 68 72 6f 6e 65 3c 2f 74 64 3e 3c 74  Isochrone</td><t
11350 64 3e 53 6f 6c 75 74 69 6f 6e 3c 2f 74 64 3e 3c  d>Solution</td><
11360 74 64 20 61 6c 69 67 6e 3d 22 72 69 67 68 74 22  td align="right"
11370 3e 31 38 31 39 39 39 3c 2f 74 64 3e 3c 74 64 20  >181999</td><td 
11380 61 6c 69 67 6e 3d 22 72 69 67 68 74 22 3e 31 37  align="right">17
11390 38 37 31 37 3c 2f 74 64 3e 3c 74 64 20 61 6c 69  8717</td><td ali
113a0 67 6e 3d 22 72 69 67 68 74 22 3e 35 37 32 2e 34  gn="right">572.4
113b0 35 35 31 34 33 3c 2f 74 64 3e 3c 74 64 3e 42 4c  55143</td><td>BL
113c0 4f 42 20 73 7a 3d 36 30 20 47 45 4f 4d 45 54 52  OB sz=60 GEOMETR
113d0 59 3c 2f 74 64 3e 0d 0a 3c 2f 74 72 3e 0d 0a 3c  Y</td>..</tr>..<
113e0 74 72 3e 0d 0a 3c 74 64 3e 4e 55 4c 4c 3c 2f 74  tr>..<td>NULL</t
113f0 64 3e 3c 74 64 3e 4e 55 4c 4c 3c 2f 74 64 3e 3c  d><td>NULL</td><
11400 74 64 3e 53 6f 6c 75 74 69 6f 6e 3c 74 64 20 61  td>Solution<td a
11410 6c 69 67 6e 3d 22 72 69 67 68 74 22 3e 31 38 31  lign="right">181
11420 39 39 39 3c 2f 74 64 3e 3c 74 64 20 61 6c 69 67  999</td><td alig
11430 6e 3d 22 72 69 67 68 74 22 3e 31 37 38 37 31 38  n="right">178718
11440 3c 2f 74 64 3e 3c 74 64 20 61 6c 69 67 6e 3d 22  </td><td align="
11450 72 69 67 68 74 22 3e 35 38 37 2e 33 30 33 37 37  right">587.30377
11460 39 3c 2f 74 64 3e 3c 74 64 3e 42 4c 4f 42 20 73  9</td><td>BLOB s
11470 7a 3d 36 30 20 47 45 4f 4d 45 54 52 59 3c 2f 74  z=60 GEOMETRY</t
11480 64 3e 0d 0a 3c 2f 74 72 3e 0d 0a 3c 74 72 3e 0d  d>..</tr>..<tr>.
11490 0a 3c 74 64 20 61 6c 69 67 6e 3d 22 63 65 6e 74  .<td align="cent
114a0 65 72 22 20 63 6f 6c 73 70 61 6e 3d 22 37 22 3e  er" colspan="7">
114b0 2e 2e 2e 2e 2e 2e 2e 2e 2e 2e 2e 2e 2e 3c 2f 74  .............</t
114c0 64 3e 0d 0a 3c 2f 74 72 3e 0d 0a 3c 74 72 3e 0d  d>..</tr>..<tr>.
114d0 0a 3c 74 64 3e 4e 55 4c 4c 3c 2f 74 64 3e 3c 74  .<td>NULL</td><t
114e0 64 3e 4e 55 4c 4c 3c 2f 74 64 3e 3c 74 64 20 61  d>NULL</td><td a
114f0 6c 69 67 6e 3d 22 72 69 67 68 74 22 3e 53 6f 6c  lign="right">Sol
11500 75 74 69 6f 6e 3c 2f 74 64 3e 3c 74 64 20 61 6c  ution</td><td al
11510 69 67 6e 3d 22 72 69 67 68 74 22 3e 31 38 31 39  ign="right">1819
11520 39 39 3c 2f 74 64 3e 3c 74 64 20 61 6c 69 67 6e  99</td><td align
11530 3d 22 72 69 67 68 74 22 3e 31 38 34 30 33 35 3c  ="right">184035<
11540 2f 74 64 3e 3c 74 64 20 61 6c 69 67 6e 3d 22 72  /td><td align="r
11550 69 67 68 74 22 3e 35 37 39 2e 37 38 36 37 32 34  ight">579.786724
11560 3c 2f 74 64 3e 3c 74 64 3e 42 4c 4f 42 20 73 7a  </td><td>BLOB sz
11570 3d 36 30 20 47 45 4f 4d 45 54 52 59 3c 2f 74 64  =60 GEOMETRY</td
11580 3e 0d 0a 3c 2f 74 72 3e 0d 0a 3c 74 72 3e 0d 0a  >..</tr>..<tr>..
11590 3c 74 64 3e 4e 55 4c 4c 3c 2f 74 64 3e 3c 74 64  <td>NULL</td><td
115a0 3e 4e 55 4c 4c 3c 2f 74 64 3e 3c 74 64 3e 53 6f  >NULL</td><td>So
115b0 6c 75 74 69 6f 6e 3c 2f 74 64 3e 3c 74 64 20 61  lution</td><td a
115c0 6c 69 67 6e 3d 22 72 69 67 68 74 22 3e 31 38 31  lign="right">181
115d0 39 39 39 3c 2f 74 64 3e 3c 74 64 20 61 6c 69 67  999</td><td alig
115e0 6e 3d 22 72 69 67 68 74 22 3e 31 38 34 30 33 36  n="right">184036
115f0 3c 2f 74 64 3e 3c 74 64 20 61 6c 69 67 6e 3d 22  </td><td align="
11600 72 69 67 68 74 22 3e 36 34 32 2e 36 39 31 35 39  right">642.69159
11610 37 3c 2f 74 64 3e 3c 74 64 3e 42 4c 4f 42 20 73  7</td><td>BLOB s
11620 7a 3d 36 30 20 47 45 4f 4d 45 54 52 59 3c 2f 74  z=60 GEOMETRY</t
11630 64 3e 0d 0a 3c 2f 74 72 3e 0d 0a 3c 2f 74 61 62  d>..</tr>..</tab
11640 6c 65 3e 0d 0a 3c 62 72 3e 0d 0a 4c 65 74 27 73  le>..<br>..Let's
11650 20 71 75 69 63 6b 6c 79 20 65 78 61 6d 69 6e 65   quickly examine
11660 20 74 68 65 20 72 65 73 75 6c 74 73 65 74 20 72   the resultset r
11670 65 74 75 72 6e 65 64 20 62 79 20 74 68 65 20 61  eturned by the a
11680 62 6f 76 65 20 3c 62 3e 69 73 6f 63 68 72 6f 6e  bove <b>isochron
11690 65 3c 2f 62 3e 20 71 75 65 72 79 2e 0d 0a 3c 75  e</b> query...<u
116a0 6c 3e 0d 0a 3c 6c 69 3e 74 68 65 20 3c 62 3e 66  l>..<li>the <b>f
116b0 69 72 73 74 20 72 6f 77 3c 2f 62 3e 20 6f 66 20  irst row</b> of 
116c0 74 68 65 20 72 65 73 75 6c 74 73 65 74 20 69 73  the resultset is
116d0 20 73 6f 6d 65 77 61 79 20 65 78 63 65 70 74 69   someway excepti
116e0 6f 6e 61 6c 2c 20 61 6e 64 20 69 73 20 74 68 65  onal, and is the
116f0 20 75 6e 69 71 75 65 20 72 6f 77 20 6f 66 20 74   unique row of t
11700 68 65 20 72 65 73 75 6c 74 73 65 74 20 70 72 65  he resultset pre
11710 73 65 6e 74 69 6e 67 20 3c 62 3e 4e 4f 54 20 4e  senting <b>NOT N
11720 55 4c 4c 3c 2f 62 3e 20 76 61 6c 75 65 73 20 69  ULL</b> values i
11730 6e 20 74 68 65 20 3c 62 3e 41 6c 67 6f 72 69 74  n the <b>Algorit
11740 68 6d 3c 2f 62 3e 2c 20 3c 62 3e 52 65 71 75 65  hm</b>, <b>Reque
11750 73 74 3c 2f 62 3e 2c 20 3c 2f 62 3e 4f 70 74 69  st</b>, </b>Opti
11760 6f 6e 73 3c 2f 62 3e 20 28 61 6e 64 20 3c 2f 62  ons</b> (and </b
11770 3e 44 65 6c 69 6d 69 74 65 72 3c 2f 62 3e 29 20  >Delimiter</b>) 
11780 63 6f 6c 75 6d 6e 73 2e 3c 2f 6c 69 3e 0d 0a 3c  columns.</li>..<
11790 6c 69 3e 61 6c 6c 20 72 6f 77 73 20 28 69 6e 63  li>all rows (inc
117a0 6c 75 64 69 6e 67 20 74 68 65 20 66 69 72 73 74  luding the first
117b0 20 6f 6e 65 29 20 68 61 76 65 20 3c 62 3e 52 6f   one) have <b>Ro
117c0 6c 65 20 3d 20 53 6f 6c 75 74 69 6f 6e 3c 2f 62  le = Solution</b
117d0 3e 2c 20 61 6e 64 20 72 65 70 72 65 73 65 6e 74  >, and represent
117e0 20 61 20 73 69 6e 67 6c 65 20 63 6f 6e 6e 65 63   a single connec
117f0 74 69 6f 6e 20 62 65 74 77 65 65 6e 20 3c 62 3e  tion between <b>
11800 4e 6f 64 65 46 72 6f 6d 3c 2f 62 3e 20 61 6e 64  NodeFrom</b> and
11810 20 3c 62 3e 4e 6f 64 65 54 6f 3c 2f 62 3e 2c 20   <b>NodeTo</b>, 
11820 77 69 74 68 20 74 68 65 20 63 6f 72 72 65 73 70  with the corresp
11830 6f 6e 64 69 6e 67 20 3c 62 3e 43 6f 73 74 3c 2f  onding <b>Cost</
11840 62 3e 2e 3c 2f 6c 69 3e 0d 0a 3c 6c 69 3e 74 68  b>.</li>..<li>th
11850 65 20 3c 62 3e 47 65 6f 6d 65 74 72 79 3c 2f 62  e <b>Geometry</b
11860 3e 20 63 6f 6c 75 6d 6e 20 61 6c 77 61 79 73 20  > column always 
11870 63 6f 72 72 65 73 70 6f 6e 64 73 20 74 6f 20 74  corresponds to t
11880 68 65 20 3c 62 3e 32 44 20 50 6f 69 6e 74 3c 2f  he <b>2D Point</
11890 62 3e 20 77 68 65 72 65 20 3c 62 3e 4e 6f 64 65  b> where <b>Node
118a0 54 6f 3c 2f 62 3e 20 69 73 20 6c 6f 63 61 74 65  To</b> is locate
118b0 64 2e 3c 2f 6c 69 3e 0d 0a 3c 2f 75 6c 3e 0d 0a  d.</li>..</ul>..
118c0 3c 62 72 3e 0d 0a 3c 75 3e 4e 6f 74 65 3c 2f 75  <br>..<u>Note</u
118d0 3e 3a 20 3c 62 3e 69 73 6f 63 68 72 6f 6e 65 3c  >: <b>isochrone<
118e0 2f 62 3e 20 71 75 65 72 69 65 73 20 61 72 65 20  /b> queries are 
118f0 6e 6f 74 20 61 66 66 65 63 74 65 64 20 62 79 20  not affected by 
11900 63 6f 6e 66 69 67 75 72 61 62 6c 65 20 6f 70 74  configurable opt
11910 69 6f 6e 73 2e 0d 0a 3c 62 3e 41 6c 67 6f 72 69  ions...<b>Algori
11920 74 68 6d 3c 2f 62 3e 20 77 69 6c 6c 20 62 65 20  thm</b> will be 
11930 61 6c 77 61 79 73 20 61 73 73 75 6d 65 64 20 74  always assumed t
11940 6f 20 62 65 20 3c 62 3e 44 69 6a 73 6b 74 72 61  o be <b>Dijsktra
11950 3c 2f 62 3e 2c 20 61 6e 64 20 74 68 65 20 63 75  </b>, and the cu
11960 72 72 65 6e 74 20 3c 62 3e 4f 70 74 69 6f 6e 73  rrent <b>Options
11970 3c 2f 62 3e 20 73 65 74 74 69 6e 67 73 20 77 69  </b> settings wi
11980 6c 6c 20 62 65 20 73 69 6d 70 6c 79 20 69 67 6e  ll be simply ign
11990 6f 72 65 64 2e 0d 0a 3c 76 65 72 62 61 74 69 6d  ored...<verbatim
119a0 3e 0d 0a 53 45 4c 45 43 54 20 53 54 5f 43 6f 6e  >..SELECT ST_Con
119b0 63 61 76 65 48 75 6c 6c 28 53 54 5f 43 6f 6c 6c  caveHull(ST_Coll
119c0 65 63 74 28 47 65 6f 6d 65 74 72 79 29 29 0d 0a  ect(Geometry))..
119d0 46 52 4f 4d 20 62 79 66 6f 6f 74 0d 0a 57 48 45  FROM byfoot..WHE
119e0 52 45 20 4e 6f 64 65 46 72 6f 6d 20 3d 20 31 38  RE NodeFrom = 18
119f0 31 39 39 39 20 41 4e 44 20 43 6f 73 74 20 3c 3d  1999 AND Cost <=
11a00 20 31 30 30 30 2e 30 3b 0d 0a 3c 2f 76 65 72 62   1000.0;..</verb
11a10 61 74 69 6d 3e 0d 0a 41 6e 79 20 69 73 6f 63 68  atim>..Any isoch
11a20 72 6f 6e 65 20 71 75 65 72 79 20 77 69 6c 6c 20  rone query will 
11a30 6a 75 73 74 20 72 65 74 75 72 6e 20 61 20 50 6f  just return a Po
11a40 69 6e 74 2d 73 65 74 3b 20 69 66 20 79 6f 75 20  int-set; if you 
11a50 65 76 65 6e 74 75 61 6c 6c 79 20 77 69 73 68 20  eventually wish 
11a60 74 6f 20 6f 62 74 61 69 6e 20 74 68 65 20 63 6f  to obtain the co
11a70 72 72 65 73 70 6f 6e 64 69 6e 67 20 61 72 65 61  rresponding area
11a80 6c 20 72 65 70 72 65 73 65 6e 74 61 74 69 6f 6e  l representation
11a90 20 79 6f 75 20 6a 75 73 74 20 68 61 76 65 20 74   you just have t
11aa0 6f 20 63 61 6c 6c 20 3c 62 3e 53 54 5f 43 6f 6c  o call <b>ST_Col
11ab0 6c 65 63 74 28 29 3c 2f 62 3e 20 69 6e 20 6f 72  lect()</b> in or
11ac0 64 65 72 20 74 6f 20 67 65 74 20 61 20 6d 6f 6e  der to get a mon
11ad0 6f 6c 69 74 68 69 63 20 4d 75 6c 74 69 50 6f 69  olithic MultiPoi
11ae0 6e 74 2c 20 74 68 65 6e 20 63 61 6c 6c 69 6e 67  nt, then calling
11af0 20 3c 62 3e 53 54 5f 43 6f 6e 63 61 76 65 48 75   <b>ST_ConcaveHu
11b00 6c 6c 28 29 3c 2f 62 3e 20 69 6e 20 6f 72 64 65  ll()</b> in orde
11b10 72 20 74 6f 20 67 65 74 20 61 20 50 6f 6c 79 67  r to get a Polyg
11b20 6f 6e 2e 0d 0a 3c 62 72 3e 3c 62 72 3e 3c 62 72  on...<br><br><br
11b30 3e 0d 0a 54 68 65 20 6d 61 70 20 62 65 6c 6f 77  >..The map below
11b40 20 67 72 61 70 68 69 63 61 6c 6c 79 20 73 68 6f   graphically sho
11b50 77 73 20 74 68 65 20 70 72 65 76 69 6f 75 73 20  ws the previous 
11b60 3c 62 3e 69 73 6f 63 68 72 6f 6e 65 3c 2f 62 3e  <b>isochrone</b>
11b70 20 71 75 65 72 79 2e 0d 0a 3c 62 72 3e 3c 62 72   query...<br><br
11b80 3e 0d 0a 3c 69 6d 67 20 73 72 63 3d 22 68 74 74  >..<img src="htt
11b90 70 73 3a 2f 2f 77 77 77 2e 67 61 69 61 2d 67 69  ps://www.gaia-gi
11ba0 73 2e 69 74 2f 67 61 69 61 2d 73 69 6e 73 2f 72  s.it/gaia-sins/r
11bb0 6f 75 74 69 6e 67 2d 66 69 67 73 2f 69 73 6f 63  outing-figs/isoc
11bc0 68 72 6f 6e 65 2e 6a 70 67 22 20 61 6c 74 3d 22  hrone.jpg" alt="
11bd0 69 73 6f 63 68 72 6f 6e 65 22 3e 0d 0a 3c 75 6c  isochrone">..<ul
11be0 3e 0d 0a 3c 6c 69 3e 59 65 6c 6c 6f 77 20 73 74  >..<li>Yellow st
11bf0 61 72 3a 20 74 68 65 20 4f 72 69 67 69 6e 20 4e  ar: the Origin N
11c00 6f 64 65 2e 3c 2f 6c 69 3e 0d 0a 3c 6c 69 3e 42  ode.</li>..<li>B
11c10 6c 75 65 20 64 6f 74 73 3a 20 61 6c 6c 20 44 65  lue dots: all De
11c20 73 74 69 6e 61 74 69 6f 6e 20 4e 6f 64 65 73 20  stination Nodes 
11c30 77 69 74 68 69 6e 20 74 68 65 20 67 69 76 65 6e  within the given
11c40 20 43 6f 73 74 2e 3c 2f 6c 69 3e 0d 0a 3c 6c 69   Cost.</li>..<li
11c50 3e 57 68 69 74 65 20 6c 69 6e 65 3a 20 74 68 65  >White line: the
11c60 20 62 6f 75 6e 64 61 72 79 20 6f 66 20 74 68 65   boundary of the
11c70 20 49 73 6f 63 68 72 6f 6e 65 2e 20 0d 0a 3c 62   Isochrone. ..<b
11c80 72 3e 3c 62 72 3e 0d 0a 3c 74 61 62 6c 65 20 62  r><br>..<table b
11c90 67 63 6f 6c 6f 72 3d 22 23 63 30 66 66 63 30 22  gcolor="#c0ffc0"
11ca0 20 63 65 6c 6c 73 70 61 63 69 6e 67 3d 22 31 30   cellspacing="10
11cb0 22 20 63 65 6c 6c 70 61 64 64 69 6e 67 3d 22 36  " cellpadding="6
11cc0 22 3e 3c 74 72 3e 3c 74 64 3e 0d 0a 3c 62 72 3e  "><tr><td>..<br>
11cd0 3c 62 72 3e 0d 0a 3c 75 3e 3c 62 3e 4e 6f 74 65  <br>..<u><b>Note
11ce0 3c 2f 62 3e 3c 2f 75 3e 3a 20 69 74 20 74 68 69  </b></u>: it thi
11cf0 73 20 65 78 61 6d 70 6c 65 20 79 6f 75 27 76 65  s example you've
11d00 20 75 73 65 64 20 74 68 65 20 3c 62 3e 62 79 66   used the <b>byf
11d10 6f 6f 74 3c 2f 62 3e 20 4e 65 74 77 6f 72 6b 2c  oot</b> Network,
11d20 20 74 68 61 74 20 69 73 20 62 61 73 65 64 20 6f   that is based o
11d30 6e 20 3c 62 3e 43 6f 73 74 73 3c 2f 62 3e 20 65  n <b>Costs</b> e
11d40 78 70 72 65 73 73 65 64 20 69 6e 20 3c 62 3e 6d  xpressed in <b>m
11d50 65 74 65 72 73 3c 2f 62 3e 20 28 67 65 6f 6d 65  eters</b> (geome
11d60 74 72 69 63 20 6c 65 6e 67 74 68 20 6f 66 20 65  tric length of e
11d70 61 63 68 20 4c 69 6e 6b 29 2e 3c 62 72 3e 0d 0a  ach Link).<br>..
11d80 54 68 69 73 20 4e 65 74 77 6f 72 6b 20 69 73 20  This Network is 
11d90 6d 61 69 6e 6c 79 20 69 6e 74 65 6e 64 65 64 20  mainly intended 
11da0 66 6f 72 20 3c 62 3e 70 65 64 65 73 74 72 69 61  for <b>pedestria
11db0 6e 73 3c 2f 62 3e 2c 20 73 6f 20 77 65 20 63 61  ns</b>, so we ca
11dc0 6e 20 73 61 66 65 6c 79 20 61 73 73 75 6d 65 20  n safely assume 
11dd0 61 20 3c 75 3e 3c 69 3e 63 6f 6e 73 74 61 6e 74  a <u><i>constant
11de0 20 73 70 65 65 64 3c 2f 69 3e 3c 2f 75 3e 20 6f   speed</i></u> o
11df0 66 20 61 62 6f 75 74 20 3c 62 3e 34 3c 2f 62 3e  f about <b>4</b>
11e00 20 74 6f 20 3c 62 3e 36 20 6b 6d 2f 68 3c 2f 62   to <b>6 km/h</b
11e10 3e 2c 20 61 6e 64 20 63 6f 6e 73 65 71 75 65 6e  >, and consequen
11e20 74 6c 79 20 74 68 65 20 3c 62 3e 49 73 6f 63 68  tly the <b>Isoch
11e30 72 6f 6e 65 3c 2f 62 3e 20 65 66 66 65 63 74 69  rone</b> effecti
11e40 76 65 6c 79 20 72 65 73 70 65 63 74 73 20 74 68  vely respects th
11e50 65 20 3c 75 3e 3c 69 3e 73 61 6d 65 20 74 69 6d  e <u><i>same tim
11e60 65 3c 2f 69 3e 3c 2f 75 3e 20 72 65 71 75 69 73  e</i></u> requis
11e70 69 74 65 2e 3c 62 72 3e 3c 62 72 3e 0d 0a 53 70  ite.<br><br>..Sp
11e80 65 61 6b 69 6e 67 20 69 6e 20 6d 6f 72 65 20 67  eaking in more g
11e90 65 6e 65 72 61 6c 20 74 65 72 6d 73 2c 20 61 6e  eneral terms, an
11ea0 20 49 73 6f 63 68 72 6f 6e 65 20 63 61 6e 20 62   Isochrone can b
11eb0 65 20 69 6e 74 65 6e 64 65 64 20 61 73 20 61 20  e intended as a 
11ec0 67 65 6e 65 72 69 63 20 73 79 6e 6f 6e 79 6d 20  generic synonym 
11ed0 66 6f 72 20 3c 75 3e 3c 69 3e 73 61 6d 65 20 43  for <u><i>same C
11ee0 6f 73 74 3c 2f 69 3e 3c 2f 75 3e 2c 20 65 76 65  ost</i></u>, eve
11ef0 6e 20 77 68 65 6e 20 74 68 65 72 65 20 69 73 20  n when there is 
11f00 6e 6f 20 6f 62 76 69 6f 75 73 20 63 6f 6e 6e 65  no obvious conne
11f10 63 74 69 6f 6e 20 77 69 74 68 20 3c 62 3e 54 69  ction with <b>Ti
11f20 6d 65 2e 3c 2f 62 3e 2e 3c 62 72 3e 3c 62 72 3e  me.</b>.<br><br>
11f30 0d 0a 3c 2f 74 64 3e 3c 2f 74 72 3e 3c 2f 74 61  ..</td></tr></ta
11f40 62 6c 65 3e 0d 0a 3c 68 72 3e 3c 62 72 3e 0d 0a  ble>..<hr><br>..
11f50 3c 68 31 3e 3c 61 20 6e 61 6d 65 3d 22 74 73 70  <h1><a name="tsp
11f60 22 3e 37 20 2d 20 53 6f 6c 76 69 6e 67 20 54 53  ">7 - Solving TS
11f70 50 20 28 74 72 61 76 65 6c 69 6e 67 20 73 61 6c  P (traveling sal
11f80 65 73 6d 61 6e 29 20 70 72 6f 62 6c 65 6d 73 3c  esman) problems<
11f90 2f 61 3e 3c 2f 68 31 3e 0d 0a 3c 62 3e 54 53 50  /a></h1>..<b>TSP
11fa0 3c 2f 62 3e 20 28 3c 61 20 68 72 65 66 3d 22 68  </b> (<a href="h
11fb0 74 74 70 73 3a 2f 2f 65 6e 2e 77 69 6b 69 70 65  ttps://en.wikipe
11fc0 64 69 61 2e 6f 72 67 2f 77 69 6b 69 2f 54 72 61  dia.org/wiki/Tra
11fd0 76 65 6c 6c 69 6e 67 5f 73 61 6c 65 73 6d 61 6e  velling_salesman
11fe0 5f 70 72 6f 62 6c 65 6d 22 3e 54 72 61 76 65 6c  _problem">Travel
11ff0 69 6e 67 20 53 61 6c 65 73 6d 61 6e 20 50 72 6f  ing Salesman Pro
12000 62 6c 65 6d 3c 2f 61 3e 29 20 69 73 20 61 20 77  blem</a>) is a w
12010 65 6c 6c 20 6b 6e 6f 77 6e 20 4f 70 65 72 61 74  ell known Operat
12020 69 6f 6e 73 20 52 65 73 65 61 72 63 68 20 70 72  ions Research pr
12030 6f 62 6c 65 6d 2e 0d 0a 3c 62 72 3e 3c 62 72 3e  oblem...<br><br>
12040 0d 0a 3c 74 61 62 6c 65 20 62 67 63 6f 6c 6f 72  ..<table bgcolor
12050 3d 22 23 63 30 66 66 63 30 22 20 63 65 6c 6c 73  ="#c0ffc0" cells
12060 70 61 63 69 6e 67 3d 22 31 30 22 20 63 65 6c 6c  pacing="10" cell
12070 70 61 64 64 69 6e 67 3d 22 36 22 3e 3c 74 72 3e  padding="6"><tr>
12080 3c 74 64 3e 0d 0a 3c 68 33 3e 54 68 65 20 54 72  <td>..<h3>The Tr
12090 61 76 65 6c 69 6e 67 20 53 61 6c 65 73 6d 61 6e  aveling Salesman
120a0 20 50 72 6f 62 6c 65 6d 3c 2f 68 33 3e 0d 0a 3c   Problem</h3>..<
120b0 62 3e 3c 69 3e 47 69 76 65 6e 20 61 20 6c 69 73  b><i>Given a lis
120c0 74 20 6f 66 20 63 69 74 69 65 73 20 61 6e 64 20  t of cities and 
120d0 74 68 65 20 64 69 73 74 61 6e 63 65 73 20 62 65  the distances be
120e0 74 77 65 65 6e 20 65 61 63 68 20 70 61 69 72 20  tween each pair 
120f0 6f 66 20 63 69 74 69 65 73 2c 20 77 68 61 74 20  of cities, what 
12100 69 73 20 74 68 65 20 73 68 6f 72 74 65 73 74 20  is the shortest 
12110 70 6f 73 73 69 62 6c 65 20 72 6f 75 74 65 20 74  possible route t
12120 68 61 74 20 76 69 73 69 74 73 20 65 61 63 68 20  hat visits each 
12130 63 69 74 79 20 61 6e 64 20 72 65 74 75 72 6e 73  city and returns
12140 20 74 6f 20 74 68 65 20 6f 72 69 67 69 6e 20 63   to the origin c
12150 69 74 79 20 3f 3c 2f 69 3e 3c 2f 62 3e 0d 0a 3c  ity ?</i></b>..<
12160 62 72 3e 3c 62 72 3e 0d 0a 3c 2f 74 64 3e 3c 2f  br><br>..</td></
12170 74 72 3e 3c 2f 74 61 62 6c 65 3e 0d 0a 3c 62 72  tr></table>..<br
12180 3e 0d 0a 3c 75 3e 4e 6f 74 65 3a 3c 2f 75 3e 20  >..<u>Note:</u> 
12190 74 68 65 20 74 65 72 6d 73 20 3c 69 3e 3c 75 3e  the terms <i><u>
121a0 73 61 6c 65 73 6d 61 6e 3c 2f 75 3e 3c 2f 69 3e  salesman</u></i>
121b0 20 61 6e 64 20 3c 69 3e 3c 75 3e 63 69 74 79 3c   and <i><u>city<
121c0 2f 75 3e 3c 2f 69 3e 20 61 72 65 20 75 6e 69 76  /u></i> are univ
121d0 65 72 73 61 6c 6c 79 20 75 73 65 64 20 66 6f 72  ersally used for
121e0 20 68 69 73 74 6f 72 69 63 61 6c 20 72 65 61 73   historical reas
121f0 6f 6e 73 2c 20 62 75 74 20 79 6f 75 20 73 68 6f  ons, but you sho
12200 75 6c 64 20 61 76 6f 69 64 20 74 6f 20 6c 69 74  uld avoid to lit
12210 65 72 61 6c 6c 79 20 69 6e 74 65 6e 64 20 62 6f  erally intend bo
12220 74 68 20 74 68 65 6d 2e 3c 62 72 3e 0d 0a 54 68  th them.<br>..Th
12230 65 20 74 65 72 6d 20 3c 75 3e 3c 69 3e 73 61 6c  e term <u><i>sal
12240 65 73 6d 61 6e 3c 2f 69 3e 3c 2f 75 3e 20 69 6e  esman</i></u> in
12250 20 74 68 69 73 20 73 70 65 63 69 66 69 63 20 63   this specific c
12260 6f 6e 74 65 78 74 20 69 6e 74 65 6e 64 73 20 61  ontext intends a
12270 6e 79 20 70 6f 73 73 69 62 6c 65 20 6b 69 6e 64  ny possible kind
12280 20 6f 66 20 3c 75 3e 3c 69 3e 6d 6f 76 69 6e 67   of <u><i>moving
12290 20 61 67 65 6e 74 3c 2f 69 3e 3c 2f 75 3e 20 28   agent</i></u> (
122a0 70 65 64 65 73 74 72 69 61 6e 2c 20 76 65 68 69  pedestrian, vehi
122b0 63 6c 65 2c 20 70 61 73 73 65 6e 67 65 72 20 6f  cle, passenger o
122c0 72 20 77 68 61 74 65 76 65 72 20 65 6c 73 65 29  r whatever else)
122d0 2c 20 65 78 61 63 74 6c 79 20 61 73 20 3c 69 3e  , exactly as <i>
122e0 3c 75 3e 63 69 74 79 3c 2f 75 3e 3c 2f 69 3e 20  <u>city</u></i> 
122f0 73 69 6d 70 6c 79 20 73 74 61 6e 64 73 20 66 6f  simply stands fo
12300 72 20 61 6e 79 20 3c 69 3e 3c 75 3e 67 65 6e 65  r any <i><u>gene
12310 72 69 63 20 64 65 73 74 69 6e 61 74 69 6f 6e 3c  ric destination<
12320 2f 75 3e 3c 2f 69 3e 20 6f 6e 20 61 20 67 69 76  /u></i> on a giv
12330 65 6e 20 4e 65 74 77 6f 72 6b 2e 0d 0a 3c 62 72  en Network...<br
12340 3e 3c 62 72 3e 0d 0a 57 65 20 63 61 6e 20 63 6f  ><br>..We can co
12350 6e 63 65 70 74 75 61 6c 79 20 73 70 6c 69 74 20  nceptualy split 
12360 54 50 53 20 69 6e 20 74 77 6f 20 68 61 6c 76 65  TPS in two halve
12370 73 3a 0d 0a 3c 6f 6c 3e 0d 0a 3c 6c 69 3e 63 6f  s:..<ol>..<li>co
12380 6d 70 75 74 69 6e 67 20 61 6c 6c 20 64 69 73 74  mputing all dist
12390 61 6e 63 65 73 20 62 65 74 77 65 65 6e 20 70 61  ances between pa
123a0 69 72 73 20 6f 66 20 3c 69 3e 63 69 74 69 65 73  irs of <i>cities
123b0 3c 2f 69 3e 2e 20 54 68 69 73 20 69 73 20 61 20  </i>. This is a 
123c0 74 79 70 69 63 61 6c 20 3c 62 3e 53 68 6f 72 74  typical <b>Short
123d0 65 73 74 50 61 74 68 3c 2f 62 3e 20 70 72 6f 62  estPath</b> prob
123e0 6c 65 6d 2c 20 61 6e 64 20 77 65 20 63 61 6e 20  lem, and we can 
123f0 64 75 6c 79 20 75 73 65 20 74 68 65 20 44 69 6a  duly use the Dij
12400 6b 73 74 72 61 27 73 20 61 6c 67 6f 72 69 74 68  kstra's algorith
12410 6d 20 66 6f 72 20 74 68 69 73 2e 3c 2f 6c 69 3e  m for this.</li>
12420 0d 0a 3c 6c 69 3e 74 68 65 6e 20 77 65 20 68 61  ..<li>then we ha
12430 76 65 20 74 6f 20 63 68 65 63 6b 20 61 6c 6c 20  ve to check all 
12440 70 6f 73 73 69 62 6c 65 20 3c 62 3e 70 65 72 6d  possible <b>perm
12450 75 74 61 74 69 6f 6e 73 3c 2f 62 3e 20 2f 20 3c  utations</b> / <
12460 62 3e 63 6f 6d 62 69 6e 61 74 69 6f 6e 73 3c 2f  b>combinations</
12470 62 3e 20 73 6f 20 74 6f 20 69 64 65 6e 74 69 66  b> so to identif
12480 79 20 74 68 65 20 6f 70 74 69 6d 61 6c 20 54 53  y the optimal TS
12490 50 20 73 6f 6c 75 74 69 6f 6e 2e 3c 2f 6c 69 3e  P solution.</li>
124a0 0d 0a 3c 2f 6f 6c 3e 0d 0a 55 6e 68 61 70 70 69  ..</ol>..Unhappi
124b0 6c 79 20 74 68 65 72 65 20 69 73 20 61 20 70 72  ly there is a pr
124c0 61 63 74 69 63 61 6c 20 64 69 66 66 69 63 75 6c  actical difficul
124d0 74 79 20 69 6e 20 73 75 63 68 20 61 20 73 74 72  ty in such a str
124e0 61 69 67 68 74 20 61 70 70 72 6f 61 63 68 3b 20  aight approach; 
124f0 74 68 65 20 6e 75 6d 62 65 72 20 6f 66 20 63 6f  the number of co
12500 6d 62 69 6e 61 74 69 6f 6e 73 20 77 69 6c 6c 20  mbinations will 
12510 67 72 6f 77 20 65 78 74 72 65 6d 65 6c 79 20 66  grow extremely f
12520 61 73 74 20 61 73 20 74 68 65 20 6e 75 6d 62 65  ast as the numbe
12530 72 20 6f 66 20 3c 62 3e 3c 69 3e 63 69 74 69 65  r of <b><i>citie
12540 73 3c 2f 69 3e 3c 2f 62 3e 20 69 6e 63 72 65 61  s</i></b> increa
12550 73 65 73 2e 3c 62 72 3e 0d 0a 53 69 6d 70 6c 79  ses.<br>..Simply
12560 20 63 6f 6d 70 75 74 69 6e 67 20 74 68 65 20 63   computing the c
12570 6f 6d 70 6c 65 74 65 20 54 53 50 20 73 6f 6c 75  omplete TSP solu
12580 74 69 6f 6e 20 66 6f 72 20 61 62 6f 75 74 20 74  tion for about t
12590 65 6e 20 63 69 74 69 65 73 20 77 69 6c 6c 20 72  en cities will r
125a0 65 71 75 69 72 65 20 61 20 3c 62 3e 76 65 72 79  equire a <b>very
125b0 20 6c 6f 6e 67 20 74 69 6d 65 3c 2f 62 3e 20 65   long time</b> e
125c0 76 65 6e 20 75 73 69 6e 67 20 61 20 73 75 70 65  ven using a supe
125d0 72 63 6f 6d 70 75 74 65 72 2e 3c 62 72 3e 0d 0a  rcomputer.<br>..
125e0 41 6e 64 20 61 74 74 65 6d 70 74 69 6e 67 20 74  And attempting t
125f0 6f 20 63 6f 6d 70 75 74 65 20 61 20 54 53 50 20  o compute a TSP 
12600 73 6f 6c 75 74 69 6f 6e 20 66 6f 72 20 61 62 6f  solution for abo
12610 75 74 20 68 75 6e 64 72 65 64 20 63 69 74 69 65  ut hundred citie
12620 73 20 77 69 6c 6c 20 72 65 71 75 69 72 65 20 61  s will require a
12630 20 3c 62 3e 70 72 61 63 74 69 63 61 6c 6c 79 20   <b>practically 
12640 69 6e 66 69 6e 69 74 65 3c 2f 62 3e 20 74 69 6d  infinite</b> tim
12650 65 2e 0d 0a 3c 62 72 3e 3c 62 72 3e 0d 0a 48 6f  e...<br><br>..Ho
12660 77 65 76 65 72 20 73 6f 6c 76 69 6e 67 20 54 53  wever solving TS
12670 50 20 69 73 20 68 69 67 68 6c 79 20 64 65 73 69  P is highly desi
12680 72 61 62 6c 65 20 69 6e 20 6d 61 6e 79 20 61 70  rable in many ap
12690 70 6c 69 63 61 74 69 6f 6e 20 66 69 65 6c 64 73  plication fields
126a0 3a 20 3c 62 3e 6c 6f 67 69 73 74 69 63 73 3c 2f  : <b>logistics</
126b0 62 3e 20 28 6a 75 73 74 20 74 68 69 6e 6b 20 61  b> (just think a
126c0 62 6f 75 74 20 63 6f 75 72 69 65 72 20 63 6f 6d  bout courier com
126d0 70 61 6e 69 65 73 20 61 73 20 44 48 4c 2c 20 46  panies as DHL, F
126e0 65 64 45 58 2c 20 55 50 53 20 6f 72 20 54 4e 54  edEX, UPS or TNT
126f0 29 2c 20 3c 62 3e 66 69 65 6c 64 20 6d 61 69 6e  ), <b>field main
12700 74 65 6e 61 6e 63 65 3c 2f 62 3e 20 2f 20 3c 62  tenance</b> / <b
12710 3e 61 73 73 69 73 74 61 6e 63 65 3c 2f 62 3e 2c  >assistance</b>,
12720 20 3c 62 3e 77 61 73 74 65 20 63 6f 6c 6c 65 63   <b>waste collec
12730 74 69 6f 6e 3c 2f 62 3e 2c 20 3c 62 3e 73 63 68  tion</b>, <b>sch
12740 6f 6f 6c 62 75 73 3c 2f 62 3e 20 2f 20 3c 62 3e  oolbus</b> / <b>
12750 73 68 61 72 65 64 20 74 61 78 69 20 73 65 72 76  shared taxi serv
12760 69 63 65 73 3c 2f 62 3e 20 65 74 63 2e 3c 62 72  ices</b> etc.<br
12770 3e 0d 0a 4d 61 6e 79 20 61 6c 67 6f 72 69 74 68  >..Many algorith
12780 6d 73 20 68 61 76 65 20 62 65 65 6e 20 69 6e 76  ms have been inv
12790 65 6e 74 65 64 20 64 75 72 69 6e 67 20 6c 61 73  ented during las
127a0 74 20 64 65 63 61 64 65 73 20 69 6e 74 65 6e 64  t decades intend
127b0 65 64 20 74 6f 20 70 72 6f 64 75 63 65 20 70 72  ed to produce pr
127c0 61 63 74 69 63 61 6c 20 61 6c 74 68 6f 75 67 68  actical although
127d0 20 61 70 70 72 6f 78 69 6d 61 74 65 20 2f 20 69   approximate / i
127e0 6d 70 65 72 66 65 63 74 20 54 53 50 20 73 6f 6c  mperfect TSP sol
127f0 75 74 69 6f 6e 73 20 69 6e 20 61 20 72 65 61 73  utions in a reas
12800 6f 6e 61 62 6c 79 20 73 68 6f 72 74 20 74 69 6d  onably short tim
12810 65 2e 0d 0a 4d 61 6e 79 20 6f 66 20 74 68 65 6d  e...Many of them
12820 20 73 74 72 6f 6e 67 6c 79 20 64 65 70 65 6e 64   strongly depend
12830 20 6f 6e 20 3c 61 20 68 72 65 66 3d 22 68 74 74   on <a href="htt
12840 70 73 3a 2f 2f 65 6e 2e 77 69 6b 69 70 65 64 69  ps://en.wikipedi
12850 61 2e 6f 72 67 2f 77 69 6b 69 2f 48 65 75 72 69  a.org/wiki/Heuri
12860 73 74 69 63 22 3e 68 65 75 72 69 73 74 69 63 3c  stic">heuristic<
12870 2f 61 3e 20 61 6e 64 20 2f 20 6f 72 20 3c 61 20  /a> and / or <a 
12880 68 72 65 66 3d 22 68 74 74 70 73 3a 2f 2f 65 6e  href="https://en
12890 2e 77 69 6b 69 70 65 64 69 61 2e 6f 72 67 2f 77  .wikipedia.org/w
128a0 69 6b 69 2f 52 61 6e 64 6f 6d 6e 65 73 73 22 3e  iki/Randomness">
128b0 72 61 6e 64 6f 6d 6e 65 73 73 3c 2f 61 3e 2e 0d  randomness</a>..
128c0 0a 3c 62 72 3e 3c 62 72 3e 0d 0a 3c 62 3e 56 69  .<br><br>..<b>Vi
128d0 72 74 75 61 6c 52 6f 75 74 69 6e 67 3c 2f 62 3e  rtualRouting</b>
128e0 20 73 75 70 70 6f 72 74 73 20 74 77 6f 20 64 69   supports two di
128f0 66 66 65 72 65 6e 74 20 54 53 50 20 61 6c 67 6f  fferent TSP algo
12900 72 69 74 68 6d 73 3a 0d 0a 3c 75 6c 3e 0d 0a 3c  rithms:..<ul>..<
12910 6c 69 3e 3c 62 3e 54 53 50 20 4e 4e 3c 2f 62 3e  li><b>TSP NN</b>
12920 20 28 3c 69 3e 61 6b 61 3c 2f 69 3e 20 3c 62 3e   (<i>aka</i> <b>
12930 3c 69 3e 4e 65 61 72 65 73 74 20 4e 65 69 67 68  <i>Nearest Neigh
12940 62 6f 75 72 3c 2f 69 3e 3c 2f 62 3e 29 3c 62 72  bour</i></b>)<br
12950 3e 0d 0a 54 68 69 73 20 3c 61 20 68 72 65 66 3d  >..This <a href=
12960 22 68 74 74 70 73 3a 2f 2f 65 6e 2e 77 69 6b 69  "https://en.wiki
12970 70 65 64 69 61 2e 6f 72 67 2f 77 69 6b 69 2f 4e  pedia.org/wiki/N
12980 65 61 72 65 73 74 5f 6e 65 69 67 68 62 6f 75 72  earest_neighbour
12990 5f 61 6c 67 6f 72 69 74 68 6d 22 3e 66 69 72 73  _algorithm">firs
129a0 74 20 61 6c 67 6f 72 69 74 68 6d 3c 2f 61 3e 20  t algorithm</a> 
129b0 69 73 20 73 74 72 61 69 67 68 74 66 6f 72 77 61  is straightforwa
129c0 72 64 20 73 69 6d 70 6c 65 20 61 6e 64 20 76 65  rd simple and ve
129d0 72 79 20 66 61 73 74 3b 20 69 74 20 63 61 6e 20  ry fast; it can 
129e0 65 66 66 65 63 74 69 76 65 6c 79 20 73 6f 6c 76  effectively solv
129f0 65 20 68 75 67 65 20 54 53 50 20 73 6f 6c 75 74  e huge TSP solut
12a00 69 6f 6e 73 20 28 74 68 6f 75 73 61 6e 64 20 3c  ions (thousand <
12a10 69 3e 63 69 74 69 65 73 3c 2f 69 3e 20 6f 72 20  i>cities</i> or 
12a20 65 76 65 6e 20 6d 6f 72 65 29 20 69 6e 20 61 20  even more) in a 
12a30 76 65 72 79 20 73 68 6f 72 74 20 74 69 6d 65 2e  very short time.
12a40 3c 62 72 3e 0d 0a 3c 75 3e 53 68 6f 72 74 20 64  <br>..<u>Short d
12a50 65 73 63 72 69 70 74 69 6f 6e 3c 2f 75 3e 3a 0d  escription</u>:.
12a60 0a 3c 75 6c 3e 0d 0a 3c 6c 69 3e 73 74 61 72 74  .<ul>..<li>start
12a70 69 6e 67 20 66 72 6f 6d 20 74 68 65 20 3c 75 3e  ing from the <u>
12a80 3c 69 3e 62 61 73 65 20 63 69 74 79 3c 2f 69 3e  <i>base city</i>
12a90 3c 2f 75 3e 20 74 68 65 20 3c 75 3e 3c 69 3e 73  </u> the <u><i>s
12aa0 61 6c 65 73 6d 61 6e 3c 2f 69 3e 3c 2f 75 3e 20  alesman</i></u> 
12ab0 67 6f 65 73 20 74 6f 20 74 68 65 20 3c 75 3e 3c  goes to the <u><
12ac0 69 3e 63 69 74 79 3c 2f 69 3e 3c 2f 75 3e 20 70  i>city</i></u> p
12ad0 72 65 73 65 6e 74 69 6e 67 20 74 68 65 20 3c 69  resenting the <i
12ae0 3e 3c 75 3e 6c 65 73 73 65 72 20 63 6f 6e 6e 65  ><u>lesser conne
12af0 63 74 69 6f 6e 20 63 6f 73 74 3c 2f 75 3e 3c 2f  ction cost</u></
12b00 69 3e 2e 3c 2f 6c 69 3e 0d 0a 3c 6c 69 3e 74 68  i>.</li>..<li>th
12b10 65 20 61 6c 72 65 61 64 79 20 76 69 73 69 74 65  e already visite
12b20 64 20 3c 69 3e 3c 75 3e 63 69 74 79 3c 2f 75 3e  d <i><u>city</u>
12b30 3c 2f 69 3e 20 69 73 20 63 61 6e 63 65 6c 6c 65  </i> is cancelle
12b40 64 20 66 72 6f 6d 20 74 68 65 20 6c 69 73 74 2c  d from the list,
12b50 20 61 6e 64 20 74 68 65 6e 20 74 68 65 20 3c 75   and then the <u
12b60 3e 3c 69 3e 73 61 6c 65 73 6d 61 6e 3c 2f 69 3e  ><i>salesman</i>
12b70 3c 2f 75 3e 20 67 6f 65 73 20 74 6f 20 74 68 65  </u> goes to the
12b80 20 6e 65 78 74 20 3c 75 3e 3c 69 3e 63 69 74 79   next <u><i>city
12b90 3c 2f 69 3e 3c 2f 75 3e 20 70 72 65 73 65 6e 74  </i></u> present
12ba0 69 6e 67 20 74 68 65 20 3c 69 3e 3c 75 3e 6c 65  ing the <i><u>le
12bb0 73 73 65 72 20 63 6f 6e 6e 65 63 74 69 6f 6e 20  sser connection 
12bc0 63 6f 73 74 3c 2f 75 3e 3c 2f 69 3e 2e 3c 2f 6c  cost</u></i>.</l
12bd0 69 3e 0d 0a 3c 6c 69 3e 74 68 65 20 63 79 63 6c  i>..<li>the cycl
12be0 65 20 63 6f 6e 74 69 6e 75 65 73 20 75 6e 74 69  e continues unti
12bf0 6c 20 61 6c 6c 20 20 3c 69 3e 3c 75 3e 63 69 74  l all  <i><u>cit
12c00 69 65 73 3c 2f 75 3e 3c 2f 69 3e 20 69 6e 20 74  ies</u></i> in t
12c10 68 65 20 6c 69 73 74 20 68 61 76 65 20 62 65 65  he list have bee
12c20 6e 20 76 69 73 69 74 65 64 2e 3c 2f 6c 69 3e 0d  n visited.</li>.
12c30 0a 3c 6c 69 3e 66 69 6e 61 6c 6c 79 2c 20 74 68  .<li>finally, th
12c40 65 20 3c 75 3e 3c 69 3e 73 61 6c 65 73 6d 61 6e  e <u><i>salesman
12c50 3c 2f 69 3e 3c 2f 75 3e 20 72 65 74 75 72 6e 73  </i></u> returns
12c60 20 74 6f 20 68 69 73 2f 68 65 72 20 69 6e 69 74   to his/her init
12c70 69 61 6c 20 3c 75 3e 3c 69 3e 62 61 73 65 20 63  ial <u><i>base c
12c80 69 74 79 3c 2f 69 3e 3c 2f 75 3e 3c 2f 6c 69 3e  ity</i></u></li>
12c90 0d 0a 3c 2f 75 6c 3e 0d 0a 3c 75 3e 4e 6f 74 65  ..</ul>..<u>Note
12ca0 3c 2f 75 3e 20 69 74 27 73 20 76 65 72 79 20 75  </u> it's very u
12cb0 6e 6c 69 6b 65 20 74 68 61 74 20 54 53 50 20 4e  nlike that TSP N
12cc0 4e 20 63 6f 75 6c 64 20 66 69 6e 64 20 74 68 65  N could find the
12cd0 20 3c 62 3e 6f 70 74 69 6d 61 6c 3c 2f 62 3e 20   <b>optimal</b> 
12ce0 73 6f 6c 75 74 69 6f 6e 2c 20 62 75 74 20 69 74  solution, but it
12cf0 20 63 61 6e 20 71 75 69 63 6b 6c 79 20 66 69 6e   can quickly fin
12d00 64 20 73 6f 6d 65 20 72 65 61 73 6f 6e 61 62 6c  d some reasonabl
12d10 65 20 3c 62 3e 61 70 70 72 6f 78 69 6d 61 74 65  e <b>approximate
12d20 3c 2f 62 3e 20 73 6f 6c 75 74 69 6f 6e 20 28 3c  </b> solution (<
12d30 69 3e 66 65 77 20 69 73 20 73 75 72 65 6c 79 20  i>few is surely 
12d40 62 65 74 74 65 72 20 74 68 61 6e 20 6e 6f 74 68  better than noth
12d50 69 6e 67 3c 2f 69 3e 29 2e 3c 62 72 3e 0d 0a 49  ing</i>).<br>..I
12d60 6e 20 74 68 65 20 6d 6f 73 74 20 75 6e 6c 75 63  n the most unluc
12d70 6b 79 20 63 61 73 65 20 54 53 50 20 4e 4e 20 63  ky case TSP NN c
12d80 6f 75 6c 64 20 70 6f 73 73 69 62 6c 79 20 72 65  ould possibly re
12d90 74 75 72 6e 20 74 68 65 20 3c 62 3e 77 6f 72 73  turn the <b>wors
12da0 74 20 73 6f 6c 75 74 69 6f 6e 3c 2f 62 3e 2c 20  t solution</b>, 
12db0 62 75 74 20 74 68 65 20 73 70 65 63 69 66 69 63  but the specific
12dc0 20 69 6d 70 6c 65 6d 65 6e 74 61 74 69 6f 6e 20   implementation 
12dd0 61 64 6f 70 74 65 64 20 62 79 20 56 69 72 74 75  adopted by Virtu
12de0 61 6c 52 6f 75 74 69 6e 67 20 63 68 65 63 6b 73  alRouting checks
12df0 20 61 67 61 69 6e 73 74 20 74 68 69 73 20 70 6f   against this po
12e00 73 73 69 62 69 6c 69 74 79 3a 0d 0a 3c 75 6c 3e  ssibility:..<ul>
12e10 0d 0a 3c 6c 69 3e 65 61 63 68 20 54 53 50 20 4e  ..<li>each TSP N
12e20 4e 20 69 73 20 61 6c 77 61 79 73 20 63 6f 6d 70  N is always comp
12e30 75 74 65 64 20 74 77 69 63 65 20 62 79 20 72 61  uted twice by ra
12e40 6e 64 6f 6d 6c 79 20 63 68 6f 6f 73 69 6e 67 20  ndomly choosing 
12e50 61 20 64 69 66 66 65 72 65 6e 74 20 3c 75 3e 3c  a different <u><
12e60 69 3e 62 61 73 65 20 63 69 74 79 3c 2f 69 3e 3c  i>base city</i><
12e70 2f 75 3e 20 61 6e 64 20 74 68 65 6e 20 6e 6f 72  /u> and then nor
12e80 6d 61 6c 69 7a 69 6e 67 20 74 68 65 20 73 6f 6c  malizing the sol
12e90 75 74 69 6f 6e 3b 20 74 68 65 20 62 65 73 74 20  ution; the best 
12ea0 6f 66 20 74 68 65 20 74 77 6f 20 73 6f 6c 75 74  of the two solut
12eb0 69 6f 6e 73 20 69 73 20 74 68 65 6e 20 72 65 74  ions is then ret
12ec0 75 72 6e 65 64 2e 3c 2f 6c 69 3e 0d 0a 3c 6c 69  urned.</li>..<li
12ed0 3e 74 68 69 73 20 73 69 6d 70 6c 65 20 62 75 74  >this simple but
12ee0 20 65 66 66 65 63 74 69 76 65 20 70 72 65 63 61   effective preca
12ef0 75 74 69 6f 6e 20 72 6f 62 75 73 74 6c 79 20 65  ution robustly e
12f00 6e 73 75 72 65 73 20 74 68 61 74 20 74 68 65 20  nsures that the 
12f10 3c 62 3e 77 6f 72 73 74 20 73 6f 6c 75 74 69 6f  <b>worst solutio
12f20 6e 3c 2f 62 3e 20 77 69 6c 6c 20 6e 65 76 65 72  n</b> will never
12f30 20 62 65 20 72 65 74 75 72 6e 65 64 2c 20 61 6e   be returned, an
12f40 64 20 6a 75 73 74 20 69 6d 70 6c 69 65 73 20 61  d just implies a
12f50 20 6d 6f 64 65 72 61 74 65 6c 79 20 69 6e 63 72   moderately incr
12f60 65 61 73 65 64 20 65 78 65 63 75 74 69 6f 6e 20  eased execution 
12f70 74 69 6d 65 2e 3c 2f 6c 69 3e 0d 0a 3c 2f 75 6c  time.</li>..</ul
12f80 3e 3c 2f 6c 69 3e 0d 0a 3c 6c 69 3e 3c 62 3e 54  ></li>..<li><b>T
12f90 53 50 20 47 41 3c 2f 62 3e 20 28 3c 69 3e 61 6b  SP GA</b> (<i>ak
12fa0 61 3c 2f 69 3e 20 3c 62 3e 3c 69 3e 47 65 6e 65  a</i> <b><i>Gene
12fb0 74 69 63 20 41 6c 67 6f 72 69 74 68 6d 3c 2f 69  tic Algorithm</i
12fc0 3e 3c 2f 62 3e 29 2e 3c 62 72 3e 0d 0a 54 68 69  ></b>).<br>..Thi
12fd0 73 20 3c 61 20 68 72 65 66 3d 22 68 74 74 70 73  s <a href="https
12fe0 3a 2f 2f 65 6e 2e 77 69 6b 69 70 65 64 69 61 2e  ://en.wikipedia.
12ff0 6f 72 67 2f 77 69 6b 69 2f 47 65 6e 65 74 69 63  org/wiki/Genetic
13000 5f 61 6c 67 6f 72 69 74 68 6d 22 3e 61 6c 74 65  _algorithm">alte
13010 72 6e 61 74 69 76 65 20 61 6c 67 6f 72 69 74 68  rnative algorith
13020 6d 3c 2f 61 3e 20 69 73 20 6d 75 63 68 20 6d 6f  m</a> is much mo
13030 72 65 20 63 6f 6d 70 6c 65 78 20 61 6e 64 20 73  re complex and s
13040 6f 70 68 69 73 74 69 63 61 74 65 64 2c 20 61 6e  ophisticated, an
13050 64 20 69 73 20 64 69 72 65 63 74 6c 79 20 69 6e  d is directly in
13060 73 70 69 72 65 64 20 62 79 20 62 69 6f 6c 6f 67  spired by biolog
13070 69 63 61 6c 20 63 6f 6e 63 65 70 74 73 20 73 75  ical concepts su
13080 63 68 20 61 73 20 3c 62 3e 73 65 78 75 61 6c 20  ch as <b>sexual 
13090 72 65 70 72 6f 64 75 63 74 69 6f 6e 3c 2f 62 3e  reproduction</b>
130a0 2c 20 3c 62 3e 67 65 6e 65 74 69 63 20 6d 75 74  , <b>genetic mut
130b0 61 74 69 6f 6e 73 3c 2f 62 3e 20 61 6e 64 20 3c  ations</b> and <
130c0 62 3e 6e 61 74 75 72 61 6c 20 73 65 6c 65 63 74  b>natural select
130d0 69 6f 6e 3c 2f 62 3e 2e 3c 62 72 3e 0d 0a 3c 75  ion</b>.<br>..<u
130e0 3e 53 68 6f 72 74 20 64 65 73 63 72 69 70 74 69  >Short descripti
130f0 6f 6e 3c 2f 75 3e 3a 0d 0a 3c 75 6c 3e 0d 0a 3c  on</u>:..<ul>..<
13100 6c 69 3e 61 20 66 69 72 73 74 20 69 6e 69 74 69  li>a first initi
13110 61 6c 20 73 65 74 20 6f 66 20 73 6f 6c 75 74 69  al set of soluti
13120 6f 6e 73 20 28 3c 69 3e 3c 75 3e 74 68 65 20 70  ons (<i><u>the p
13130 6f 70 75 6c 61 74 69 6f 6e 3c 2f 75 3e 3c 2f 69  opulation</u></i
13140 3e 29 20 69 73 20 63 72 65 61 74 65 64 20 62 79  >) is created by
13150 20 75 73 69 6e 67 20 54 53 50 20 4e 4e 20 61 66   using TSP NN af
13160 74 65 72 20 72 61 6e 64 6f 6d 6c 79 20 63 68 6f  ter randomly cho
13170 6f 73 69 6e 67 20 74 68 65 20 3c 75 3e 3c 69 3e  osing the <u><i>
13180 62 61 73 65 20 63 69 74 79 3c 2f 69 3e 3c 2f 75  base city</i></u
13190 3e 20 61 6e 64 20 74 68 65 6e 20 6e 6f 72 6d 61  > and then norma
131a0 6c 69 7a 69 6e 67 20 65 61 63 68 20 73 6f 6c 75  lizing each solu
131b0 74 69 6f 6e 2e 3c 2f 6c 69 3e 0d 0a 3c 6c 69 3e  tion.</li>..<li>
131c0 74 68 65 6e 20 64 75 72 69 6e 67 20 65 61 63 68  then during each
131d0 20 73 74 65 70 20 6f 66 20 74 68 65 20 65 78 65   step of the exe
131e0 63 75 74 69 6f 6e 20 6c 6f 6f 70 20 28 3c 69 3e  cution loop (<i>
131f0 3c 75 3e 67 65 6e 65 72 61 74 69 6f 6e 3c 2f 75  <u>generation</u
13200 3e 3c 2f 69 3e 29 20 70 61 69 72 73 20 6f 66 20  ></i>) pairs of 
13210 73 6f 6c 75 74 69 6f 6e 73 20 3c 69 3e 3c 75 3e  solutions <i><u>
13220 73 65 78 75 61 6c 6c 79 20 72 65 70 72 6f 64 75  sexually reprodu
13230 63 65 73 3c 2f 69 3e 3c 2f 75 3e 20 67 69 76 69  ces</i></u> givi
13240 6e 67 20 62 69 72 74 68 20 74 6f 20 3c 75 3e 3c  ng birth to <u><
13250 69 3e 63 68 69 6c 64 72 65 6e 20 73 6f 6c 75 74  i>children solut
13260 69 6f 6e 73 3c 2f 69 3e 3c 2f 75 3e 3b 20 72 65  ions</i></u>; re
13270 70 72 6f 64 75 63 74 69 6f 6e 20 69 73 20 73 75  production is su
13280 62 6a 65 63 74 20 74 6f 20 3c 75 3e 3c 69 3e 63  bject to <u><i>c
13290 68 72 6f 6d 6f 73 6f 6d 65 20 63 72 6f 73 73 6f  hromosome crosso
132a0 76 65 72 73 3c 2f 69 3e 3c 2f 75 3e 20 61 6e 64  vers</i></u> and
132b0 20 3c 69 3e 3c 75 3e 72 61 6e 64 6f 6d 20 6d 75   <i><u>random mu
132c0 74 61 74 69 6f 6e 3c 2f 75 3e 3c 2f 69 3e 2e 3c  tation</u></i>.<
132d0 2f 6c 69 3e 0d 0a 3c 6c 69 3e 66 6f 72 20 65 61  /li>..<li>for ea
132e0 63 68 20 3c 69 3e 3c 75 3e 67 65 6e 65 72 61 74  ch <i><u>generat
132f0 69 6f 6e 3c 2f 75 3e 3c 2f 69 3e 20 74 68 65 20  ion</u></i> the 
13300 3c 69 3e 3c 75 3e 6e 61 74 75 72 61 6c 20 73 65  <i><u>natural se
13310 6c 65 63 74 69 6f 6e 3c 2f 75 3e 3c 2f 69 3e 20  lection</u></i> 
13320 65 6c 69 6d 69 6e 61 74 65 73 20 61 6c 6c 20 70  eliminates all p
13330 6f 6f 72 6c 79 20 66 69 74 20 69 6e 64 69 76 69  oorly fit indivi
13340 64 75 61 6c 73 20 66 72 6f 6d 20 74 68 65 20 3c  duals from the <
13350 75 3e 3c 69 3e 70 6f 70 75 6c 61 74 69 6f 6e 3c  u><i>population<
13360 2f 69 3e 3c 2f 75 3e 20 61 6e 64 20 63 6f 6e 73  /i></u> and cons
13370 65 71 75 65 6e 74 6c 79 20 6f 6e 6c 79 20 74 68  equently only th
13380 65 20 62 65 73 74 20 66 69 74 20 69 6e 64 69 76  e best fit indiv
13390 69 64 75 61 6c 73 20 63 61 6e 20 66 75 72 74 68  iduals can furth
133a0 65 72 20 70 72 6f 70 61 67 61 74 65 20 74 68 65  er propagate the
133b0 69 72 20 3c 75 3e 3c 69 3e 67 65 6e 6f 6d 65 3c  ir <u><i>genome<
133c0 2f 69 3e 3c 2f 75 3e 20 74 6f 20 74 68 65 20 6e  /i></u> to the n
133d0 65 78 74 20 3c 75 3e 3c 69 3e 67 65 6e 65 72 61  ext <u><i>genera
133e0 74 69 6f 6e 3c 2f 69 3e 3c 2f 75 3e 2e 3c 2f 6c  tion</i></u>.</l
133f0 69 3e 0d 0a 3c 6c 69 3e 61 66 74 65 72 20 61 20  i>..<li>after a 
13400 63 65 72 74 61 69 6e 20 6e 75 6d 62 65 72 20 6f  certain number o
13410 66 20 3c 69 3e 3c 75 3e 67 65 6e 65 72 61 74 69  f <i><u>generati
13420 6f 6e 73 3c 2f 69 3e 3c 2f 75 3e 20 28 6c 65 74  ons</i></u> (let
13430 27 73 20 73 61 79 20 61 62 6f 75 74 20 73 6f 6d  's say about som
13440 65 20 68 75 6e 64 72 65 64 74 68 20 69 74 65 72  e hundredth iter
13450 61 74 69 6f 6e 73 29 20 74 68 65 20 3c 62 3e 6f  ations) the <b>o
13460 70 74 69 6d 61 6c 20 73 6f 6c 75 74 69 6f 6e 3c  ptimal solution<
13470 2f 62 3e 20 28 6f 72 20 61 74 20 6c 65 61 73 74  /b> (or at least
13480 20 61 20 3c 62 3e 66 61 69 72 6c 79 20 67 6f 6f   a <b>fairly goo
13490 64 20 73 75 62 2d 6f 70 74 69 6d 61 6c 20 73 6f  d sub-optimal so
134a0 6c 75 74 69 6f 6e 3c 2f 62 3e 29 20 73 68 6f 75  lution</b>) shou
134b0 6c 64 20 66 69 6e 61 6c 6c 79 20 65 6d 65 72 67  ld finally emerg
134c0 65 2c 20 61 6e 64 20 73 6f 20 74 68 65 20 6c 6f  e, and so the lo
134d0 6f 70 20 63 61 6e 20 65 78 69 74 2e 3c 2f 6c 69  op can exit.</li
134e0 3e 0d 0a 3c 2f 75 6c 3e 3c 2f 6c 69 3e 0d 0a 3c  >..</ul></li>..<
134f0 6c 69 3e 3c 75 3e 4e 6f 74 65 3c 2f 75 3e 3a 20  li><u>Note</u>: 
13500 54 53 50 20 47 41 20 69 73 20 75 73 75 61 6c 6c  TSP GA is usuall
13510 79 20 65 78 70 65 63 74 65 64 20 74 6f 20 69 64  y expected to id
13520 65 6e 74 69 66 79 20 62 65 74 74 65 72 20 73 6f  entify better so
13530 6c 75 74 69 6f 6e 73 20 74 68 61 6e 20 54 53 50  lutions than TSP
13540 20 4e 4e 20 63 61 6e 20 64 6f 2c 20 62 75 74 20   NN can do, but 
13550 69 74 20 77 69 6c 6c 20 73 75 72 65 6c 79 20 72  it will surely r
13560 65 71 75 69 72 65 20 6d 75 63 68 20 6d 6f 72 65  equire much more
13570 20 74 69 6d 65 20 74 6f 20 63 6f 6d 70 6c 65 74   time to complet
13580 65 2e 3c 2f 6c 69 3e 20 0d 0a 3c 2f 75 6c 3e 0d  e.</li> ..</ul>.
13590 0a 3c 62 72 3e 3c 62 72 3e 0d 0a 4c 65 74 27 73  .<br><br>..Let's
135a0 20 6e 6f 77 20 65 78 61 6d 69 6e 65 20 61 20 70   now examine a p
135b0 72 61 63 74 69 63 61 6c 20 65 78 61 6d 70 6c 65  ractical example
135c0 20 6f 66 20 54 53 50 20 73 6f 6c 76 69 6e 67 20   of TSP solving 
135d0 75 73 69 6e 67 20 56 69 72 74 75 61 6c 52 6f 75  using VirtualRou
135e0 74 69 6e 67 2e 20 0d 0a 3c 76 65 72 62 61 74 69  ting. ..<verbati
135f0 6d 3e 0d 0a 55 50 44 41 54 45 20 62 79 66 6f 6f  m>..UPDATE byfoo
13600 74 20 53 45 54 20 52 65 71 75 65 73 74 20 3d 20  t SET Request = 
13610 27 54 53 50 27 3b 0d 0a 0d 0a 53 45 4c 45 43 54  'TSP';....SELECT
13620 20 41 6c 67 6f 72 69 74 68 6d 2c 20 52 65 71 75   Algorithm, Requ
13630 65 73 74 2c 20 4f 70 74 69 6f 6e 73 2c 20 44 65  est, Options, De
13640 6c 69 6d 69 74 65 72 2c 20 52 6f 75 74 65 49 64  limiter, RouteId
13650 2c 20 52 6f 75 74 65 52 6f 77 2c 20 52 6f 6c 65  , RouteRow, Role
13660 2c 20 4c 69 6e 6b 52 6f 77 69 64 2c 20 4e 6f 64  , LinkRowid, Nod
13670 65 46 72 6f 6d 2c 20 4e 6f 64 65 54 6f 2c 20 43  eFrom, NodeTo, C
13680 6f 73 74 2c 20 47 65 6f 6d 65 74 72 79 2c 20 4e  ost, Geometry, N
13690 61 6d 65 0d 0a 46 52 4f 4d 20 62 79 66 6f 6f 74  ame..FROM byfoot
136a0 0d 0a 57 48 45 52 45 20 4e 6f 64 65 46 72 6f 6d  ..WHERE NodeFrom
136b0 20 3d 20 31 37 38 37 33 31 20 41 4e 44 20 4e 6f   = 178731 AND No
136c0 64 65 54 6f 20 3d 20 27 31 38 33 32 38 36 2c 31  deTo = '183286,1
136d0 38 31 39 39 39 2c 31 38 34 30 33 30 2c 31 38 33  81999,184030,183
136e0 38 38 32 2c 31 37 38 37 35 34 27 3b 0d 0a 3c 2f  882,178754';..</
136f0 76 65 72 62 61 74 69 6d 3e 0d 0a 41 20 56 69 72  verbatim>..A Vir
13700 74 75 61 6c 52 6f 75 74 69 6e 67 20 3c 62 3e 54  tualRouting <b>T
13710 53 50 3c 2f 62 3e 20 71 75 65 72 79 20 68 61 73  SP</b> query has
13720 20 74 68 65 20 73 61 6d 65 20 69 64 65 6e 74 69   the same identi
13730 63 61 6c 20 66 6f 72 6d 20 6f 66 20 61 20 3c 62  cal form of a <b
13740 3e 6d 75 6c 74 69 2d 64 65 73 74 69 6e 61 74 69  >multi-destinati
13750 6f 6e 3c 2f 62 3e 20 71 75 65 72 79 3b 20 74 68  on</b> query; th
13760 65 20 3c 69 3e 3c 75 3e 62 61 73 65 20 63 69 74  e <i><u>base cit
13770 79 3c 75 3e 3c 2f 69 3e 20 69 73 20 61 6c 77 61  y<u></i> is alwa
13780 79 73 20 65 78 70 65 63 74 65 64 20 74 6f 20 63  ys expected to c
13790 6f 72 72 65 73 70 6f 6e 64 20 74 6f 20 3c 62 3e  orrespond to <b>
137a0 4e 6f 64 65 46 72 6f 6d 3c 2f 62 3e 20 61 6e 64  NodeFrom</b> and
137b0 20 61 6c 6c 20 6f 74 68 65 72 20 3c 69 3e 3c 75   all other <i><u
137c0 3e 63 69 74 69 65 73 3c 2f 75 3e 3c 2f 69 3e 20  >cities</u></i> 
137d0 74 6f 20 62 65 20 76 69 73 69 74 65 64 20 61 72  to be visited ar
137e0 65 20 65 78 70 65 63 74 65 64 20 74 6f 20 62 65  e expected to be
137f0 20 65 6e 75 6d 65 72 61 74 65 64 20 69 6e 74 6f   enumerated into
13800 20 61 20 3c 62 3e 6d 75 6c 74 69 2d 64 65 73 74   a <b>multi-dest
13810 69 6e 61 74 69 6f 6e 3c 2f 62 3e 20 6c 69 73 74  ination</b> list
13820 20 61 73 73 69 67 6e 65 64 20 74 6f 20 3c 62 3e   assigned to <b>
13830 4e 6f 64 65 54 6f 3c 2f 62 3e 2e 0d 0a 3c 75 3e  NodeTo</b>...<u>
13840 4e 6f 74 65 3c 2f 75 3e 3a 20 79 6f 75 20 6d 75  Note</u>: you mu
13850 73 74 20 65 78 70 6c 69 63 69 74 6c 79 20 73 65  st explicitly se
13860 74 20 74 68 65 20 63 75 72 72 65 6e 74 20 3c 62  t the current <b
13870 3e 52 65 71 75 65 73 74 3c 2f 62 3e 20 61 73 20  >Request</b> as 
13880 3c 62 3e 54 53 50 3c 2f 62 3e 2c 20 3c 62 3e 54  <b>TSP</b>, <b>T
13890 53 50 20 4e 4e 3c 2f 62 3e 20 6f 72 20 3c 62 3e  SP NN</b> or <b>
138a0 54 53 50 20 47 41 3c 2f 62 3e 20 28 54 53 50 20  TSP GA</b> (TSP 
138b0 61 6e 64 20 54 53 50 20 4e 4e 20 61 72 65 20 73  and TSP NN are s
138c0 79 6e 6f 6e 79 6d 73 29 2e 0d 0a 3c 62 72 3e 3c  ynonyms)...<br><
138d0 62 72 3e 0d 0a 3c 74 61 62 6c 65 20 62 6f 72 64  br>..<table bord
138e0 65 72 3d 22 31 22 20 62 67 63 6f 6c 6f 72 3d 22  er="1" bgcolor="
138f0 23 66 66 66 66 63 66 22 20 63 65 6c 6c 73 70 61  #ffffcf" cellspa
13900 63 69 6e 67 3d 22 34 22 20 63 65 6c 6c 70 61 64  cing="4" cellpad
13910 64 69 6e 67 3d 22 36 22 3e 0d 0a 3c 74 72 3e 3c  ding="6">..<tr><
13920 74 68 20 62 67 63 6f 6c 6f 72 3d 22 23 64 30 64  th bgcolor="#d0d
13930 30 61 30 22 3e 41 6c 67 6f 72 69 74 68 6d 3c 2f  0a0">Algorithm</
13940 74 68 3e 3c 74 68 20 62 67 63 6f 6c 6f 72 3d 22  th><th bgcolor="
13950 23 64 30 64 30 61 30 22 3e 52 65 71 75 65 73 74  #d0d0a0">Request
13960 3c 2f 74 68 3e 3c 74 68 20 62 67 63 6f 6c 6f 72  </th><th bgcolor
13970 3d 22 23 64 30 64 30 61 30 22 3e 4f 70 74 69 6f  ="#d0d0a0">Optio
13980 6e 73 3c 2f 74 68 3e 3c 74 68 20 62 67 63 6f 6c  ns</th><th bgcol
13990 6f 72 3d 22 23 64 30 64 30 61 30 22 3e 44 65 6c  or="#d0d0a0">Del
139a0 69 6d 69 74 65 72 3c 2f 74 68 3e 3c 74 68 20 62  imiter</th><th b
139b0 67 63 6f 6c 6f 72 3d 22 23 64 30 64 30 61 30 22  gcolor="#d0d0a0"
139c0 3e 52 6f 75 74 65 49 64 3c 2f 74 68 3e 3c 74 68  >RouteId</th><th
139d0 20 62 67 63 6f 6c 6f 72 3d 22 23 64 30 64 30 61   bgcolor="#d0d0a
139e0 30 22 3e 52 6f 75 74 65 52 6f 77 3c 2f 74 68 3e  0">RouteRow</th>
139f0 3c 74 68 20 62 67 63 6f 6c 6f 72 3d 22 23 64 30  <th bgcolor="#d0
13a00 64 30 61 30 22 3e 52 6f 6c 65 3c 2f 74 68 3e 3c  d0a0">Role</th><
13a10 74 68 20 62 67 63 6f 6c 6f 72 3d 22 23 64 30 64  th bgcolor="#d0d
13a20 30 61 30 22 3e 4c 69 6e 6b 52 6f 77 69 64 3c 2f  0a0">LinkRowid</
13a30 74 68 3e 3c 74 68 20 62 67 63 6f 6c 6f 72 3d 22  th><th bgcolor="
13a40 23 64 30 64 30 61 30 22 3e 4e 6f 64 65 46 72 6f  #d0d0a0">NodeFro
13a50 6d 3c 2f 74 68 3e 3c 74 68 20 62 67 63 6f 6c 6f  m</th><th bgcolo
13a60 72 3d 22 23 64 30 64 30 61 30 22 3e 4e 6f 64 65  r="#d0d0a0">Node
13a70 54 6f 3c 2f 74 68 3e 3c 74 68 20 62 67 63 6f 6c  To</th><th bgcol
13a80 6f 72 3d 22 23 64 30 64 30 61 30 22 3e 43 6f 73  or="#d0d0a0">Cos
13a90 74 3c 2f 74 68 3e 3c 74 68 20 62 67 63 6f 6c 6f  t</th><th bgcolo
13aa0 72 3d 22 23 64 30 64 30 61 30 22 3e 47 65 6f 6d  r="#d0d0a0">Geom
13ab0 65 74 72 79 3c 2f 74 68 3e 3c 74 68 20 62 67 63  etry</th><th bgc
13ac0 6f 6c 6f 72 3d 22 23 64 30 64 30 61 30 22 3e 4e  olor="#d0d0a0">N
13ad0 61 6d 65 3c 2f 74 68 3e 3c 2f 74 72 3e 0d 0a 3c  ame</th></tr>..<
13ae0 74 72 3e 0d 0a 3c 74 64 3e 44 69 6a 6b 73 74 72  tr>..<td>Dijkstr
13af0 61 3c 2f 74 64 3e 3c 74 64 3e 54 53 50 20 4e 4e  a</td><td>TSP NN
13b00 3c 2f 74 64 3e 3c 74 64 3e 46 75 6c 6c 3c 2f 74  </td><td>Full</t
13b10 64 3e 3c 74 64 3e 2c 20 26 23 39 31 3b 64 65 63  d><td>, &#91;dec
13b20 3d 34 34 2c 20 68 65 78 3d 32 63 26 23 39 33 3b  =44, hex=2c&#93;
13b30 3c 2f 74 64 3e 3c 74 64 20 61 6c 69 67 6e 3d 22  </td><td align="
13b40 72 69 67 68 74 22 3e 30 3c 2f 74 64 3e 3c 74 64  right">0</td><td
13b50 20 61 6c 69 67 6e 3d 22 72 69 67 68 74 22 3e 30   align="right">0
13b60 3c 2f 74 64 3e 3c 74 64 3e 54 53 50 20 53 6f 6c  </td><td>TSP Sol
13b70 75 74 69 6f 6e 3c 2f 74 64 3e 3c 74 64 3e 4e 55  ution</td><td>NU
13b80 4c 4c 3c 2f 74 64 3e 3c 74 64 20 61 6c 69 67 6e  LL</td><td align
13b90 3d 22 72 69 67 68 74 22 3e 31 37 38 37 33 31 3c  ="right">178731<
13ba0 2f 74 64 3e 3c 74 64 20 61 6c 69 67 6e 3d 22 72  /td><td align="r
13bb0 69 67 68 74 22 3e 31 37 38 37 33 31 3c 2f 74 64  ight">178731</td
13bc0 3e 3c 74 64 20 61 6c 69 67 6e 3d 22 72 69 67 68  ><td align="righ
13bd0 74 22 3e 31 32 35 34 2e 34 33 33 39 33 33 3c 2f  t">1254.433933</
13be0 74 64 3e 3c 74 64 3e 42 4c 4f 42 20 73 7a 3d 32  td><td>BLOB sz=2
13bf0 30 30 30 20 47 45 4f 4d 45 54 52 59 3c 2f 74 64  000 GEOMETRY</td
13c00 3e 3c 74 64 3e 4e 55 4c 4c 3c 2f 74 64 3e 0d 0a  ><td>NULL</td>..
13c10 3c 2f 74 72 3e 0d 0a 3c 74 72 3e 0d 0a 3c 74 64  </tr>..<tr>..<td
13c20 3e 4e 55 4c 4c 3c 2f 74 64 3e 3c 74 64 3e 4e 55  >NULL</td><td>NU
13c30 4c 4c 3c 2f 74 64 3e 3c 74 64 3e 4e 55 4c 4c 3c  LL</td><td>NULL<
13c40 2f 74 64 3e 3c 74 64 3e 4e 55 4c 4c 3c 74 64 20  /td><td>NULL<td 
13c50 61 6c 69 67 6e 3d 22 72 69 67 68 74 22 3e 31 3c  align="right">1<
13c60 2f 74 64 3e 3c 74 64 20 61 6c 69 67 6e 3d 22 72  /td><td align="r
13c70 69 67 68 74 22 3e 30 3c 2f 74 64 3e 3c 74 64 3e  ight">0</td><td>
13c80 52 6f 75 74 65 3c 2f 74 64 3e 3c 74 64 3e 4e 55  Route</td><td>NU
13c90 4c 4c 3c 2f 74 64 3e 3c 74 64 20 61 6c 69 67 6e  LL</td><td align
13ca0 3d 22 72 69 67 68 74 22 3e 31 37 38 37 33 31 3c  ="right">178731<
13cb0 2f 74 64 3e 3c 74 64 20 61 6c 69 67 6e 3d 22 72  /td><td align="r
13cc0 69 67 68 74 22 3e 31 38 34 30 33 30 3c 2f 74 64  ight">184030</td
13cd0 3e 3c 74 64 20 61 6c 69 67 6e 3d 22 72 69 67 68  ><td align="righ
13ce0 74 22 3e 31 37 36 2e 33 36 34 37 35 35 3c 2f 74  t">176.364755</t
13cf0 64 3e 3c 74 64 3e 42 4c 4f 42 20 73 7a 3d 33 30  d><td>BLOB sz=30
13d00 34 20 47 45 4f 4d 45 54 52 59 3c 2f 74 64 3e 3c  4 GEOMETRY</td><
13d10 74 64 3e 4e 55 4c 4c 3c 2f 74 64 3e 0d 0a 3c 2f  td>NULL</td>..</
13d20 74 72 3e 0d 0a 3c 74 72 3e 0d 0a 3c 74 64 3e 4e  tr>..<tr>..<td>N
13d30 55 4c 4c 3c 2f 74 64 3e 3c 74 64 3e 4e 55 4c 4c  ULL</td><td>NULL
13d40 3c 2f 74 64 3e 3c 74 64 3e 4e 55 4c 4c 3c 2f 74  </td><td>NULL</t
13d50 64 3e 3c 74 64 3e 4e 55 4c 4c 3c 2f 74 64 3e 3c  d><td>NULL</td><
13d60 74 64 20 61 6c 69 67 6e 3d 22 72 69 67 68 74 22  td align="right"
13d70 3e 32 3c 2f 74 64 3e 3c 74 64 20 61 6c 69 67 6e  >2</td><td align
13d80 3d 22 72 69 67 68 74 22 3e 31 3c 2f 74 64 3e 3c  ="right">1</td><
13d90 74 64 3e 4c 69 6e 6b 3c 2f 74 64 3e 3c 74 64 20  td>Link</td><td 
13da0 61 6c 69 67 6e 3d 22 72 69 67 68 74 22 3e 32 32  align="right">22
13db0 34 30 31 34 3c 2f 74 64 3e 3c 74 64 20 61 6c 69  4014</td><td ali
13dc0 67 6e 3d 22 72 69 67 68 74 22 3e 31 37 38 37 33  gn="right">17873
13dd0 31 3c 2f 74 64 3e 3c 74 64 20 61 6c 69 67 6e 3d  1</td><td align=
13de0 22 72 69 67 68 74 22 3e 31 38 32 38 38 35 3c 2f  "right">182885</
13df0 74 64 3e 3c 74 64 20 61 6c 69 67 6e 3d 22 72 69  td><td align="ri
13e00 67 68 74 22 3e 39 34 2e 38 31 32 34 32 34 3c 2f  ght">94.812424</
13e10 74 64 3e 3c 74 64 3e 4e 55 4c 4c 3c 2f 74 64 3e  td><td>NULL</td>
13e20 3c 74 64 3e 56 49 41 20 50 49 45 54 52 4f 20 41  <td>VIA PIETRO A
13e30 52 45 54 49 4e 4f 3c 2f 74 64 3e 0d 0a 3c 2f 74  RETINO</td>..</t
13e40 72 3e 0d 0a 3c 74 72 3e 0d 0a 3c 74 72 3e 0d 0a  r>..<tr>..<tr>..
13e50 3c 74 64 3e 4e 55 4c 4c 3c 2f 74 64 3e 3c 74 64  <td>NULL</td><td
13e60 3e 4e 55 4c 4c 3c 2f 74 64 3e 3c 74 64 3e 4e 55  >NULL</td><td>NU
13e70 4c 4c 3c 2f 74 64 3e 3c 74 64 3e 4e 55 4c 4c 3c  LL</td><td>NULL<
13e80 2f 74 64 3e 3c 74 64 20 61 6c 69 67 6e 3d 22 72  /td><td align="r
13e90 69 67 68 74 22 3e 32 3c 2f 74 64 3e 3c 74 64 20  ight">2</td><td 
13ea0 61 6c 69 67 6e 3d 22 72 69 67 68 74 22 3e 32 3c  align="right">2<
13eb0 2f 74 64 3e 3c 74 64 3e 4c 69 6e 6b 3c 2f 74 64  /td><td>Link</td
13ec0 3e 3c 74 64 20 61 6c 69 67 6e 3d 22 72 69 67 68  ><td align="righ
13ed0 74 22 3e 32 32 34 38 36 32 3c 2f 74 64 3e 3c 74  t">224862</td><t
13ee0 64 20 61 6c 69 67 6e 3d 22 72 69 67 68 74 22 3e  d align="right">
13ef0 31 38 32 38 38 35 3c 2f 74 64 3e 3c 74 64 20 61  182885</td><td a
13f00 6c 69 67 6e 3d 22 72 69 67 68 74 22 3e 31 38 32  lign="right">182
13f10 30 34 33 3c 2f 74 64 3e 3c 74 64 20 61 6c 69 67  043</td><td alig
13f20 6e 3d 22 72 69 67 68 74 22 3e 33 37 2e 30 39 35  n="right">37.095
13f30 32 38 37 3c 2f 74 64 3e 3c 74 64 3e 4e 55 4c 4c  287</td><td>NULL
13f40 3c 2f 74 64 3e 3c 74 64 3e 56 49 41 20 4d 41 52  </td><td>VIA MAR
13f50 47 41 52 49 54 4f 4e 45 3c 2f 74 64 3e 0d 0a 3c  GARITONE</td>..<
13f60 2f 74 72 3e 0d 0a 3c 74 72 3e 0d 0a 3c 74 64 3e  /tr>..<tr>..<td>
13f70 4e 55 4c 4c 3c 2f 74 64 3e 3c 74 64 3e 4e 55 4c  NULL</td><td>NUL
13f80 4c 3c 2f 74 64 3e 3c 74 64 3e 4e 55 4c 4c 3c 2f  L</td><td>NULL</
13f90 74 64 3e 3c 74 64 3e 4e 55 4c 4c 3c 2f 74 64 3e  td><td>NULL</td>
13fa0 3c 74 64 20 61 6c 69 67 6e 3d 22 72 69 67 68 74  <td align="right
13fb0 22 3e 32 3c 2f 74 64 3e 3c 74 64 20 61 6c 69 67  ">2</td><td alig
13fc0 6e 3d 22 72 69 67 68 74 22 3e 33 3c 2f 74 64 3e  n="right">3</td>
13fd0 3c 74 64 3e 4c 69 6e 6b 3c 2f 74 64 3e 3c 74 64  <td>Link</td><td
13fe0 20 61 6c 69 67 6e 3d 22 72 69 67 68 74 22 3e 32   align="right">2
13ff0 32 36 30 37 30 3c 2f 74 64 3e 3c 74 64 20 61 6c  26070</td><td al
14000 69 67 6e 3d 22 72 69 67 68 74 22 3e 31 38 32 30  ign="right">1820
14010 34 33 3c 2f 74 64 3e 3c 74 64 20 61 6c 69 67 6e  43</td><td align
14020 3d 22 72 69 67 68 74 22 3e 31 38 34 30 33 30 3c  ="right">184030<
14030 2f 74 64 3e 3c 74 64 20 61 6c 69 67 6e 3d 22 72  /td><td align="r
14040 69 67 68 74 22 3e 34 34 2e 34 35 37 30 34 34 3c  ight">44.457044<
14050 2f 74 64 3e 3c 74 64 3e 4e 55 4c 4c 3c 2f 74 64  /td><td>NULL</td
14060 3e 3c 74 64 3e 50 49 41 5a 5a 41 20 53 41 4e 54  ><td>PIAZZA SANT
14070 27 41 47 4f 53 54 49 4e 4f 3c 2f 74 64 3e 0d 0a  'AGOSTINO</td>..
14080 3c 2f 74 72 3e 0d 0a 3c 74 72 3e 0d 0a 3c 74 64  </tr>..<tr>..<td
14090 3e 4e 55 4c 4c 3c 2f 74 64 3e 3c 74 64 3e 4e 55  >NULL</td><td>NU
140a0 4c 4c 3c 2f 74 64 3e 3c 74 64 3e 4e 55 4c 4c 3c  LL</td><td>NULL<
140b0 2f 74 64 3e 3c 74 64 3e 4e 55 4c 4c 3c 2f 74 64  /td><td>NULL</td
140c0 3e 3c 74 64 20 61 6c 69 67 6e 3d 22 72 69 67 68  ><td align="righ
140d0 74 22 3e 32 3c 2f 74 64 3e 3c 74 64 20 61 6c 69  t">2</td><td ali
140e0 67 6e 3d 22 72 69 67 68 74 22 3e 30 3c 2f 74 64  gn="right">0</td
140f0 3e 3c 74 64 3e 52 6f 75 74 65 3c 2f 74 64 3e 3c  ><td>Route</td><
14100 74 64 3e 4e 55 4c 4c 3c 2f 74 64 3e 3c 74 64 20  td>NULL</td><td 
14110 61 6c 69 67 6e 3d 22 72 69 67 68 74 22 3e 31 38  align="right">18
14120 34 30 33 30 3c 2f 74 64 3e 3c 74 64 20 61 6c 69  4030</td><td ali
14130 67 6e 3d 22 72 69 67 68 74 22 3e 31 38 31 39 39  gn="right">18199
14140 39 3c 2f 74 64 3e 3c 74 64 20 61 6c 69 67 6e 3d  9</td><td align=
14150 22 72 69 67 68 74 22 3e 31 33 39 2e 31 31 34 39  "right">139.1149
14160 33 38 3c 2f 74 64 3e 3c 74 64 3e 42 4c 4f 42 20  38</td><td>BLOB 
14170 73 7a 3d 34 39 36 20 47 45 4f 4d 45 54 52 59 3c  sz=496 GEOMETRY<
14180 2f 74 64 3e 3c 74 64 3e 4e 55 4c 4c 3c 2f 74 64  /td><td>NULL</td
14190 3e 0d 0a 3c 2f 74 72 3e 0d 0a 3c 74 72 3e 0d 0a  >..</tr>..<tr>..
141a0 3c 74 64 3e 4e 55 4c 4c 3c 2f 74 64 3e 3c 74 64  <td>NULL</td><td
141b0 3e 4e 55 4c 4c 3c 2f 74 64 3e 3c 74 64 3e 4e 55  >NULL</td><td>NU
141c0 4c 4c 3c 2f 74 64 3e 3c 74 64 3e 4e 55 4c 4c 3c  LL</td><td>NULL<
141d0 2f 74 64 3e 3c 74 64 20 61 6c 69 67 6e 3d 22 72  /td><td align="r
141e0 69 67 68 74 22 3e 33 3c 2f 74 64 3e 3c 74 64 20  ight">3</td><td 
141f0 61 6c 69 67 6e 3d 22 72 69 67 68 74 22 3e 31 3c  align="right">1<
14200 2f 74 64 3e 3c 74 64 3e 4c 69 6e 6b 3c 2f 74 64  /td><td>Link</td
14210 3e 3c 74 64 20 61 6c 69 67 6e 3d 22 72 69 67 68  ><td align="righ
14220 74 22 3e 32 32 36 30 37 31 3c 2f 74 64 3e 3c 74  t">226071</td><t
14230 64 20 61 6c 69 67 6e 3d 22 72 69 67 68 74 22 3e  d align="right">
14240 31 38 34 30 33 30 3c 2f 74 64 3e 3c 74 64 20 61  184030</td><td a
14250 6c 69 67 6e 3d 22 72 69 67 68 74 22 3e 31 38 32  lign="right">182
14260 36 32 39 3c 2f 74 64 3e 3c 74 64 20 61 6c 69 67  629</td><td alig
14270 6e 3d 22 72 69 67 68 74 22 3e 35 35 2e 36 38 39  n="right">55.689
14280 30 30 39 3c 2f 74 64 3e 3c 74 64 3e 4e 55 4c 4c  009</td><td>NULL
14290 3c 2f 74 64 3e 3c 74 64 3e 56 49 41 20 47 49 55  </td><td>VIA GIU
142a0 53 45 50 50 45 20 47 41 52 49 42 41 4c 44 49 3c  SEPPE GARIBALDI<
142b0 2f 74 64 3e 0d 0a 3c 2f 74 72 3e 0d 0a 3c 74 72  /td>..</tr>..<tr
142c0 3e 0d 0a 3c 74 64 3e 4e 55 4c 4c 3c 2f 74 64 3e  >..<td>NULL</td>
142d0 3c 74 64 3e 4e 55 4c 4c 3c 2f 74 64 3e 3c 74 64  <td>NULL</td><td
142e0 3e 4e 55 4c 4c 3c 2f 74 64 3e 3c 74 64 3e 4e 55  >NULL</td><td>NU
142f0 4c 4c 3c 2f 74 64 3e 3c 74 64 20 61 6c 69 67 6e  LL</td><td align
14300 3d 22 72 69 67 68 74 22 3e 33 3c 2f 74 64 3e 3c  ="right">3</td><
14310 74 64 20 61 6c 69 67 6e 3d 22 72 69 67 68 74 22  td align="right"
14320 3e 32 3c 2f 74 64 3e 3c 74 64 3e 4c 69 6e 6b 3c  >2</td><td>Link<
14330 2f 74 64 3e 3c 74 64 20 61 6c 69 67 6e 3d 22 72  /td><td align="r
14340 69 67 68 74 22 3e 32 32 35 35 31 32 3c 2f 74 64  ight">225512</td
14350 3e 3c 74 64 20 61 6c 69 67 6e 3d 22 72 69 67 68  ><td align="righ
14360 74 22 3e 31 38 32 36 32 39 3c 2f 74 64 3e 3c 74  t">182629</td><t
14370 64 20 61 6c 69 67 6e 3d 22 72 69 67 68 74 22 3e  d align="right">
14380 31 38 32 39 33 33 3c 2f 74 64 3e 3c 74 64 20 61  182933</td><td a
14390 6c 69 67 6e 3d 22 72 69 67 68 74 22 3e 33 34 2e  lign="right">34.
143a0 31 38 34 31 39 34 3c 2f 74 64 3e 3c 74 64 3e 4e  184194</td><td>N
143b0 55 4c 4c 3c 2f 74 64 3e 3c 74 64 3e 43 4f 52 53  ULL</td><td>CORS
143c0 4f 20 49 54 41 4c 49 41 3c 2f 74 64 3e 0d 0a 3c  O ITALIA</td>..<
143d0 2f 74 72 3e 0d 0a 3c 74 72 3e 0d 0a 3c 74 64 3e  /tr>..<tr>..<td>
143e0 4e 55 4c 4c 3c 2f 74 64 3e 3c 74 64 3e 4e 55 4c  NULL</td><td>NUL
143f0 4c 3c 2f 74 64 3e 3c 74 64 3e 4e 55 4c 4c 3c 2f  L</td><td>NULL</
14400 74 64 3e 3c 74 64 3e 4e 55 4c 4c 3c 2f 74 64 3e  td><td>NULL</td>
14410 3c 74 64 20 61 6c 69 67 6e 3d 22 72 69 67 68 74  <td align="right
14420 22 3e 33 3c 2f 74 64 3e 3c 74 64 20 61 6c 69 67  ">3</td><td alig
14430 6e 3d 22 72 69 67 68 74 22 3e 33 3c 2f 74 64 3e  n="right">3</td>
14440 3c 74 64 3e 4c 69 6e 6b 3c 2f 74 64 3e 3c 74 64  <td>Link</td><td
14450 20 61 6c 69 67 6e 3d 22 72 69 67 68 74 22 3e 32   align="right">2
14460 32 35 35 31 31 3c 2f 74 64 3e 3c 74 64 20 61 6c  25511</td><td al
14470 69 67 6e 3d 22 72 69 67 68 74 22 3e 31 38 32 39  ign="right">1829
14480 33 33 3c 2f 74 64 3e 3c 74 64 20 61 6c 69 67 6e  33</td><td align
14490 3d 22 72 69 67 68 74 22 3e 31 38 31 39 39 39 3c  ="right">181999<
144a0 2f 74 64 3e 3c 74 64 20 61 6c 69 67 6e 3d 22 72  /td><td align="r
144b0 69 67 68 74 22 3e 34 39 2e 32 34 31 37 33 35 3c  ight">49.241735<
144c0 2f 74 64 3e 3c 74 64 3e 4e 55 4c 4c 3c 2f 74 64  /td><td>NULL</td
144d0 3e 3c 74 64 3e 43 4f 52 53 4f 20 49 54 41 4c 49  ><td>CORSO ITALI
144e0 41 3c 2f 74 64 3e 0d 0a 3c 2f 74 72 3e 0d 0a 3c  A</td>..</tr>..<
144f0 74 72 3e 0d 0a 3c 74 64 3e 4e 55 4c 4c 3c 2f 74  tr>..<td>NULL</t
14500 64 3e 3c 74 64 3e 4e 55 4c 4c 3c 2f 74 64 3e 3c  d><td>NULL</td><
14510 74 64 3e 4e 55 4c 4c 3c 2f 74 64 3e 3c 74 64 3e  td>NULL</td><td>
14520 4e 55 4c 4c 3c 2f 74 64 3e 3c 74 64 20 61 6c 69  NULL</td><td ali
14530 67 6e 3d 22 72 69 67 68 74 22 3e 33 3c 2f 74 64  gn="right">3</td
14540 3e 3c 74 64 20 61 6c 69 67 6e 3d 22 72 69 67 68  ><td align="righ
14550 74 22 3e 30 3c 2f 74 64 3e 3c 74 64 3e 52 6f 75  t">0</td><td>Rou
14560 74 65 3c 2f 74 64 3e 3c 74 64 3e 4e 55 4c 4c 3c  te</td><td>NULL<
14570 2f 74 64 3e 3c 74 64 20 61 6c 69 67 6e 3d 22 72  /td><td align="r
14580 69 67 68 74 22 3e 31 38 31 39 39 39 3c 2f 74 64  ight">181999</td
14590 3e 3c 74 64 20 61 6c 69 67 6e 3d 22 72 69 67 68  ><td align="righ
145a0 74 22 3e 31 38 33 32 38 36 3c 2f 74 64 3e 3c 74  t">183286</td><t
145b0 64 20 61 6c 69 67 6e 3d 22 72 69 67 68 74 22 3e  d align="right">
145c0 32 31 37 2e 36 37 32 38 38 35 3c 2f 74 64 3e 3c  217.672885</td><
145d0 74 64 3e 42 4c 4f 42 20 73 7a 3d 36 38 38 20 47  td>BLOB sz=688 G
145e0 45 4f 4d 45 54 52 59 3c 2f 74 64 3e 3c 74 64 3e  EOMETRY</td><td>
145f0 4e 55 4c 4c 3c 2f 74 64 3e 0d 0a 3c 2f 74 72 3e  NULL</td>..</tr>
14600 0d 0a 3c 74 72 3e 0d 0a 3c 74 64 3e 4e 55 4c 4c  ..<tr>..<td>NULL
14610 3c 2f 74 64 3e 3c 74 64 3e 4e 55 4c 4c 3c 2f 74  </td><td>NULL</t
14620 64 3e 3c 74 64 3e 4e 55 4c 4c 3c 2f 74 64 3e 3c  d><td>NULL</td><
14630 74 64 3e 4e 55 4c 4c 3c 2f 74 64 3e 3c 74 64 20  td>NULL</td><td 
14640 61 6c 69 67 6e 3d 22 72 69 67 68 74 22 3e 34 3c  align="right">4<
14650 2f 74 64 3e 3c 74 64 20 61 6c 69 67 6e 3d 22 72  /td><td align="r
14660 69 67 68 74 22 3e 31 3c 2f 74 64 3e 3c 74 64 3e  ight">1</td><td>
14670 4c 69 6e 6b 3c 2f 74 64 3e 3c 74 64 20 61 6c 69  Link</td><td ali
14680 67 6e 3d 22 72 69 67 68 74 22 3e 32 32 32 36 33  gn="right">22263
14690 35 3c 2f 74 64 3e 3c 74 64 20 61 6c 69 67 6e 3d  5</td><td align=
146a0 22 72 69 67 68 74 22 3e 31 38 31 39 39 39 3c 2f  "right">181999</
146b0 74 64 3e 3c 74 64 20 61 6c 69 67 6e 3d 22 72 69  td><td align="ri
146c0 67 68 74 22 3e 31 38 31 39 39 38 3c 2f 74 64 3e  ght">181998</td>
146d0 3c 74 64 20 61 6c 69 67 6e 3d 22 72 69 67 68 74  <td align="right
146e0 22 3e 31 30 31 2e 36 32 39 37 35 30 3c 2f 74 64  ">101.629750</td
146f0 3e 3c 74 64 3e 4e 55 4c 4c 3c 2f 74 64 3e 3c 74  ><td>NULL</td><t
14700 64 3e 43 4f 52 53 4f 20 49 54 41 4c 49 41 3c 2f  d>CORSO ITALIA</
14710 74 64 3e 0d 0a 3c 2f 74 72 3e 0d 0a 3c 74 72 3e  td>..</tr>..<tr>
14720 0d 0a 3c 74 64 3e 4e 55 4c 4c 3c 2f 74 64 3e 3c  ..<td>NULL</td><
14730 74 64 3e 4e 55 4c 4c 3c 2f 74 64 3e 3c 74 64 3e  td>NULL</td><td>
14740 4e 55 4c 4c 3c 2f 74 64 3e 3c 74 64 3e 4e 55 4c  NULL</td><td>NUL
14750 4c 3c 2f 74 64 3e 3c 74 64 20 61 6c 69 67 6e 3d  L</td><td align=
14760 22 72 69 67 68 74 22 3e 34 3c 2f 74 64 3e 3c 74  "right">4</td><t
14770 64 20 61 6c 69 67 6e 3d 22 72 69 67 68 74 22 3e  d align="right">
14780 32 3c 2f 74 64 3e 3c 74 64 3e 4c 69 6e 6b 3c 2f  2</td><td>Link</
14790 74 64 3e 3c 74 64 20 61 6c 69 67 6e 3d 22 72 69  td><td align="ri
147a0 67 68 74 22 3e 32 32 34 37 38 30 3c 2f 74 64 3e  ght">224780</td>
147b0 3c 74 64 20 61 6c 69 67 6e 3d 22 72 69 67 68 74  <td align="right
147c0 22 3e 31 38 31 39 39 38 3c 2f 74 64 3e 3c 74 64  ">181998</td><td
147d0 20 61 6c 69 67 6e 3d 22 72 69 67 68 74 22 3e 31   align="right">1
147e0 38 33 35 36 30 3c 2f 74 64 3e 3c 74 64 20 61 6c  83560</td><td al
147f0 69 67 6e 3d 22 72 69 67 68 74 22 3e 37 33 2e 37  ign="right">73.7
14800 33 33 35 37 32 3c 2f 74 64 3e 3c 74 64 3e 4e 55  33572</td><td>NU
14810 4c 4c 3c 2f 74 64 3e 3c 74 64 3e 56 49 41 20 44  LL</td><td>VIA D
14820 45 4c 4c 27 41 4e 46 49 54 45 41 54 52 4f 3c 2f  ELL'ANFITEATRO</
14830 74 64 3e 0d 0a 3c 2f 74 72 3e 0d 0a 3c 74 72 3e  td>..</tr>..<tr>
14840 0d 0a 3c 74 64 3e 4e 55 4c 4c 3c 2f 74 64 3e 3c  ..<td>NULL</td><
14850 74 64 3e 4e 55 4c 4c 3c 2f 74 64 3e 3c 74 64 3e  td>NULL</td><td>
14860 4e 55 4c 4c 3c 2f 74 64 3e 3c 74 64 3e 4e 55 4c  NULL</td><td>NUL
14870 4c 3c 74 64 20 61 6c 69 67 6e 3d 22 72 69 67 68  L<td align="righ
14880 74 22 3e 34 3c 2f 74 64 3e 3c 74 64 20 61 6c 69  t">4</td><td ali
14890 67 6e 3d 22 72 69 67 68 74 22 3e 33 3c 2f 74 64  gn="right">3</td
148a0 3e 3c 74 64 3e 4c 69 6e 6b 3c 2f 74 64 3e 3c 74  ><td>Link</td><t
148b0 64 20 61 6c 69 67 6e 3d 22 72 69 67 68 74 22 3e  d align="right">
148c0 32 32 35 38 32 37 3c 2f 74 64 3e 3c 74 64 20 61  225827</td><td a
148d0 6c 69 67 6e 3d 22 72 69 67 68 74 22 3e 31 38 33  lign="right">183
148e0 35 36 30 3c 2f 74 64 3e 3c 74 64 20 61 6c 69 67  560</td><td alig
148f0 6e 3d 22 72 69 67 68 74 22 3e 31 38 33 32 38 36  n="right">183286
14900 3c 2f 74 64 3e 3c 74 64 20 61 6c 69 67 6e 3d 22  </td><td align="
14910 72 69 67 68 74 22 3e 34 32 2e 33 30 39 35 36 34  right">42.309564
14920 3c 2f 74 64 3e 3c 74 64 3e 4e 55 4c 4c 3c 2f 74  </td><td>NULL</t
14930 64 3e 3c 74 64 3e 56 49 41 20 44 45 4c 4c 27 41  d><td>VIA DELL'A
14940 4e 46 49 54 45 41 54 52 4f 3c 2f 74 64 3e 0d 0a  NFITEATRO</td>..
14950 3c 2f 74 72 3e 0d 0a 3c 74 72 3e 0d 0a 3c 74 64  </tr>..<tr>..<td
14960 3e 4e 55 4c 4c 3c 2f 74 64 3e 3c 74 64 3e 4e 55  >NULL</td><td>NU
14970 4c 4c 3c 2f 74 64 3e 3c 74 64 3e 4e 55 4c 4c 3c  LL</td><td>NULL<
14980 2f 74 64 3e 3c 74 64 3e 4e 55 4c 4c 3c 2f 74 64  /td><td>NULL</td
14990 3e 3c 74 64 20 61 6c 69 67 6e 3d 22 72 69 67 68  ><td align="righ
149a0 74 22 3e 34 3c 2f 74 64 3e 3c 74 64 20 61 6c 69  t">4</td><td ali
149b0 67 6e 3d 22 72 69 67 68 74 22 3e 30 3c 2f 74 64  gn="right">0</td
149c0 3e 3c 74 64 3e 52 6f 75 74 65 3c 2f 74 64 3e 3c  ><td>Route</td><
149d0 74 64 3e 4e 55 4c 4c 3c 2f 74 64 3e 3c 74 64 20  td>NULL</td><td 
149e0 61 6c 69 67 6e 3d 22 72 69 67 68 74 22 3e 31 38  align="right">18
149f0 33 32 38 36 3c 2f 74 64 3e 3c 74 64 20 61 6c 69  3286</td><td ali
14a00 67 6e 3d 22 72 69 67 68 74 22 3e 31 37 38 37 35  gn="right">17875
14a10 34 3c 2f 74 64 3e 3c 74 64 20 61 6c 69 67 6e 3d  4</td><td align=
14a20 22 72 69 67 68 74 22 3e 33 37 38 2e 33 31 33 36  "right">378.3136
14a30 38 34 3c 2f 74 64 3e 3c 74 64 3e 42 4c 4f 42 20  84</td><td>BLOB 
14a40 73 7a 3d 32 37 32 20 47 45 4f 4d 45 54 52 59 3c  sz=272 GEOMETRY<
14a50 2f 74 64 3e 3c 74 64 3e 4e 55 4c 4c 3c 2f 74 64  /td><td>NULL</td
14a60 3e 0d 0a 3c 2f 74 72 3e 0d 0a 3c 74 72 3e 0d 0a  >..</tr>..<tr>..
14a70 3c 74 64 3e 4e 55 4c 4c 3c 2f 74 64 3e 3c 74 64  <td>NULL</td><td
14a80 3e 4e 55 4c 4c 3c 2f 74 64 3e 3c 74 64 3e 4e 55  >NULL</td><td>NU
14a90 4c 4c 3c 2f 74 64 3e 3c 74 64 3e 4e 55 4c 4c 3c  LL</td><td>NULL<
14aa0 2f 74 64 3e 3c 74 64 20 61 6c 69 67 6e 3d 22 72  /td><td align="r
14ab0 69 67 68 74 22 3e 35 3c 2f 74 64 3e 3c 74 64 20  ight">5</td><td 
14ac0 61 6c 69 67 6e 3d 22 72 69 67 68 74 22 3e 31 3c  align="right">1<
14ad0 2f 74 64 3e 3c 74 64 3e 4c 69 6e 6b 3c 2f 74 64  /td><td>Link</td
14ae0 3e 3c 74 64 20 61 6c 69 67 6e 3d 22 72 69 67 68  ><td align="righ
14af0 74 22 3e 32 32 34 34 31 34 3c 2f 74 64 3e 3c 74  t">224414</td><t
14b00 64 20 61 6c 69 67 6e 3d 22 72 69 67 68 74 22 3e  d align="right">
14b10 31 38 33 32 38 36 3c 2f 74 64 3e 3c 74 64 20 61  183286</td><td a
14b20 6c 69 67 6e 3d 22 72 69 67 68 74 22 3e 31 37 38  lign="right">178
14b30 38 38 30 3c 2f 74 64 3e 3c 74 64 20 61 6c 69 67  880</td><td alig
14b40 6e 3d 22 72 69 67 68 74 22 3e 31 33 36 2e 33 37  n="right">136.37
14b50 32 30 35 37 3c 2f 74 64 3e 3c 74 64 3e 4e 55 4c  2057</td><td>NUL
14b60 4c 3c 2f 74 64 3e 3c 74 64 3e 56 49 41 20 4d 41  L</td><td>VIA MA
14b70 52 47 41 52 49 54 4f 4e 45 3c 2f 74 64 3e 0d 0a  RGARITONE</td>..
14b80 3c 2f 74 72 3e 0d 0a 3c 74 72 3e 0d 0a 3c 74 64  </tr>..<tr>..<td
14b90 3e 4e 55 4c 4c 3c 2f 74 64 3e 3c 74 64 3e 4e 55  >NULL</td><td>NU
14ba0 4c 4c 3c 2f 74 64 3e 3c 74 64 3e 4e 55 4c 4c 3c  LL</td><td>NULL<
14bb0 2f 74 64 3e 3c 74 64 3e 4e 55 4c 4c 3c 2f 74 64  /td><td>NULL</td
14bc0 3e 3c 74 64 20 61 6c 69 67 6e 3d 22 72 69 67 68  ><td align="righ
14bd0 74 22 3e 35 3c 2f 74 64 3e 3c 74 64 20 61 6c 69  t">5</td><td ali
14be0 67 6e 3d 22 72 69 67 68 74 22 3e 32 3c 2f 74 64  gn="right">2</td
14bf0 3e 3c 74 64 3e 4c 69 6e 6b 3c 2f 74 64 3e 3c 74  ><td>Link</td><t
14c00 64 20 61 6c 69 67 6e 3d 22 72 69 67 68 74 22 3e  d align="right">
14c10 32 31 39 31 37 31 3c 2f 74 64 3e 3c 74 64 20 61  219171</td><td a
14c20 6c 69 67 6e 3d 22 72 69 67 68 74 22 3e 31 37 38  lign="right">178
14c30 38 38 30 3c 2f 74 64 3e 3c 74 64 20 61 6c 69 67  880</td><td alig
14c40 6e 3d 22 72 69 67 68 74 22 3e 31 37 38 37 33 32  n="right">178732
14c50 3c 2f 74 64 3e 3c 74 64 20 61 6c 69 67 6e 3d 22  </td><td align="
14c60 72 69 67 68 74 22 3e 39 33 2e 32 38 35 35 33 38  right">93.285538
14c70 3c 2f 74 64 3e 3c 74 64 3e 4e 55 4c 4c 3c 2f 74  </td><td>NULL</t
14c80 64 3e 3c 74 64 3e 56 49 41 20 46 52 41 4e 43 45  d><td>VIA FRANCE
14c90 53 43 4f 20 43 52 49 53 50 49 3c 2f 74 64 3e 0d  SCO CRISPI</td>.
14ca0 0a 3c 2f 74 72 3e 0d 0a 3c 74 72 3e 0d 0a 3c 74  .</tr>..<tr>..<t
14cb0 64 3e 4e 55 4c 4c 3c 2f 74 64 3e 3c 74 64 3e 4e  d>NULL</td><td>N
14cc0 55 4c 4c 3c 2f 74 64 3e 3c 74 64 3e 4e 55 4c 4c  ULL</td><td>NULL
14cd0 3c 2f 74 64 3e 3c 74 64 3e 4e 55 4c 4c 3c 2f 74  </td><td>NULL</t
14ce0 64 3e 3c 74 64 20 61 6c 69 67 6e 3d 22 72 69 67  d><td align="rig
14cf0 68 74 22 3e 35 3c 2f 74 64 3e 3c 74 64 20 61 6c  ht">5</td><td al
14d00 69 67 6e 3d 22 72 69 67 68 74 22 3e 33 3c 2f 74  ign="right">3</t
14d10 64 3e 3c 74 64 3e 4c 69 6e 6b 3c 2f 74 64 3e 3c  d><td>Link</td><
14d20 74 64 20 61 6c 69 67 6e 3d 22 72 69 67 68 74 22  td align="right"
14d30 3e 32 31 39 30 35 38 3c 2f 74 64 3e 3c 74 64 20  >219058</td><td 
14d40 61 6c 69 67 6e 3d 22 72 69 67 68 74 22 3e 31 37  align="right">17
14d50 38 37 33 32 3c 2f 74 64 3e 3c 74 64 20 61 6c 69  8732</td><td ali
14d60 67 6e 3d 22 72 69 67 68 74 22 3e 31 37 38 37 35  gn="right">17875
14d70 34 3c 2f 74 64 3e 3c 74 64 20 61 6c 69 67 6e 3d  4</td><td align=
14d80 22 72 69 67 68 74 22 3e 31 34 38 2e 36 35 36 30  "right">148.6560
14d90 38 39 3c 2f 74 64 3e 3c 74 64 3e 4e 55 4c 4c 3c  89</td><td>NULL<
14da0 2f 74 64 3e 3c 74 64 3e 56 49 41 20 46 52 41 4e  /td><td>VIA FRAN
14db0 43 45 53 43 4f 20 43 52 49 53 50 49 3c 2f 74 64  CESCO CRISPI</td
14dc0 3e 0d 0a 3c 2f 74 72 3e 0d 0a 3c 74 72 3e 0d 0a  >..</tr>..<tr>..
14dd0 3c 74 64 3e 4e 55 4c 4c 3c 2f 74 64 3e 3c 74 64  <td>NULL</td><td
14de0 3e 4e 55 4c 4c 3c 2f 74 64 3e 3c 74 64 3e 4e 55  >NULL</td><td>NU
14df0 4c 4c 3c 2f 74 64 3e 3c 74 64 3e 4e 55 4c 4c 3c  LL</td><td>NULL<
14e00 2f 74 64 3e 3c 74 64 20 61 6c 69 67 6e 3d 22 72  /td><td align="r
14e10 69 67 68 74 22 3e 35 3c 2f 74 64 3e 3c 74 64 20  ight">5</td><td 
14e20 61 6c 69 67 6e 3d 22 72 69 67 68 74 22 3e 30 3c  align="right">0<
14e30 2f 74 64 3e 3c 74 64 3e 52 6f 75 74 65 3c 2f 74  /td><td>Route</t
14e40 64 3e 3c 74 64 3e 4e 55 4c 4c 3c 2f 74 64 3e 3c  d><td>NULL</td><
14e50 74 64 20 61 6c 69 67 6e 3d 22 72 69 67 68 74 22  td align="right"
14e60 3e 31 37 38 37 35 34 3c 2f 74 64 3e 3c 74 64 20  >178754</td><td 
14e70 61 6c 69 67 6e 3d 22 72 69 67 68 74 22 3e 31 38  align="right">18
14e80 33 38 38 32 3c 2f 74 64 3e 3c 74 64 20 61 6c 69  3882</td><td ali
14e90 67 6e 3d 22 72 69 67 68 74 22 3e 31 38 38 2e 32  gn="right">188.2
14ea0 31 36 38 33 31 3c 2f 74 64 3e 3c 74 64 3e 42 4c  16831</td><td>BL
14eb0 4f 42 20 73 7a 3d 34 30 30 20 47 45 4f 4d 45 54  OB sz=400 GEOMET
14ec0 52 59 3c 2f 74 64 3e 3c 74 64 3e 4e 55 4c 4c 3c  RY</td><td>NULL<
14ed0 2f 74 64 3e 0d 0a 3c 2f 74 72 3e 0d 0a 3c 74 72  /td>..</tr>..<tr
14ee0 3e 0d 0a 3c 74 64 3e 4e 55 4c 4c 3c 2f 74 64 3e  >..<td>NULL</td>
14ef0 3c 74 64 3e 4e 55 4c 4c 3c 2f 74 64 3e 3c 74 64  <td>NULL</td><td
14f00 3e 4e 55 4c 4c 3c 2f 74 64 3e 3c 74 64 3e 4e 55  >NULL</td><td>NU
14f10 4c 4c 3c 2f 74 64 3e 3c 74 64 20 61 6c 69 67 6e  LL</td><td align
14f20 3d 22 72 69 67 68 74 22 3e 36 3c 2f 74 64 3e 3c  ="right">6</td><
14f30 74 64 20 61 6c 69 67 6e 3d 22 72 69 67 68 74 22  td align="right"
14f40 3e 31 3c 2f 74 64 3e 3c 74 64 3e 4c 69 6e 6b 3c  >1</td><td>Link<
14f50 2f 74 64 3e 3c 74 64 20 61 6c 69 67 6e 3d 22 72  /td><td align="r
14f60 69 67 68 74 22 3e 32 32 34 35 33 38 3c 2f 74 64  ight">224538</td
14f70 3e 3c 74 64 20 61 6c 69 67 6e 3d 22 72 69 67 68  ><td align="righ
14f80 74 22 3e 31 37 38 37 35 34 3c 2f 74 64 3e 3c 74  t">178754</td><t
14f90 64 20 61 6c 69 67 6e 3d 22 72 69 67 68 74 22 3e  d align="right">
14fa0 31 38 31 39 37 32 3c 2f 74 64 3e 3c 74 64 20 61  181972</td><td a
14fb0 6c 69 67 6e 3d 22 72 69 67 68 74 22 3e 35 30 2e  lign="right">50.
14fc0 39 30 30 36 36 33 3c 2f 74 64 3e 3c 74 64 3e 4e  900663</td><td>N
14fd0 55 4c 4c 3c 2f 74 64 3e 3c 74 64 3e 56 49 41 20  ULL</td><td>VIA 
14fe0 41 4e 54 4f 4e 49 4f 20 47 55 41 44 41 47 4e 4f  ANTONIO GUADAGNO
14ff0 4c 49 3c 2f 74 64 3e 0d 0a 3c 2f 74 72 3e 0d 0a  LI</td>..</tr>..
15000 3c 74 72 3e 0d 0a 3c 74 64 3e 4e 55 4c 4c 3c 2f  <tr>..<td>NULL</
15010 74 64 3e 3c 74 64 3e 4e 55 4c 4c 3c 2f 74 64 3e  td><td>NULL</td>
15020 3c 74 64 3e 4e 55 4c 4c 3c 2f 74 64 3e 3c 74 64  <td>NULL</td><td
15030 3e 4e 55 4c 4c 3c 2f 74 64 3e 0d 0a 3c 74 64 20  >NULL</td>..<td 
15040 61 6c 69 67 6e 3d 22 72 69 67 68 74 22 3e 36 3c  align="right">6<
15050 2f 74 64 3e 3c 74 64 20 61 6c 69 67 6e 3d 22 72  /td><td align="r
15060 69 67 68 74 22 3e 32 3c 2f 74 64 3e 3c 74 64 3e  ight">2</td><td>
15070 4c 69 6e 6b 3c 2f 74 64 3e 3c 74 64 20 61 6c 69  Link</td><td ali
15080 67 6e 3d 22 72 69 67 68 74 22 3e 32 32 34 35 33  gn="right">22453
15090 37 3c 2f 74 64 3e 3c 74 64 20 61 6c 69 67 6e 3d  7</td><td align=
150a0 22 72 69 67 68 74 22 3e 31 38 31 39 37 32 3c 2f  "right">181972</
150b0 74 64 3e 3c 74 64 20 61 6c 69 67 6e 3d 22 72 69  td><td align="ri
150c0 67 68 74 22 3e 31 38 32 30 30 30 3c 2f 74 64 3e  ght">182000</td>
150d0 3c 74 64 20 61 6c 69 67 6e 3d 22 72 69 67 68 74  <td align="right
150e0 22 3e 38 36 2e 33 30 31 30 35 31 3c 2f 74 64 3e  ">86.301051</td>
150f0 3c 74 64 3e 4e 55 4c 4c 3c 2f 74 64 3e 3c 74 64  <td>NULL</td><td
15100 3e 56 49 41 20 44 45 4c 20 4e 49 4e 46 45 4f 3c  >VIA DEL NINFEO<
15110 2f 74 64 3e 0d 0a 3c 2f 74 72 3e 0d 0a 3c 74 72  /td>..</tr>..<tr
15120 3e 0d 0a 3c 74 64 3e 4e 55 4c 4c 3c 2f 74 64 3e  >..<td>NULL</td>
15130 3c 74 64 3e 4e 55 4c 4c 3c 2f 74 64 3e 3c 74 64  <td>NULL</td><td
15140 3e 4e 55 4c 4c 3c 2f 74 64 3e 3c 74 64 3e 4e 55  >NULL</td><td>NU
15150 4c 4c 3c 2f 74 64 3e 3c 74 64 20 61 6c 69 67 6e  LL</td><td align
15160 3d 22 72 69 67 68 74 22 3e 36 3c 2f 74 64 3e 3c  ="right">6</td><
15170 74 64 20 61 6c 69 67 6e 3d 22 72 69 67 68 74 22  td align="right"
15180 3e 33 3c 2f 74 64 3e 3c 74 64 3e 4c 69 6e 6b 3c  >3</td><td>Link<
15190 2f 74 64 3e 3c 74 64 20 61 6c 69 67 6e 3d 22 72  /td><td align="r
151a0 69 67 68 74 22 3e 32 32 35 35 32 37 3c 2f 74 64  ight">225527</td
151b0 3e 3c 74 64 20 61 6c 69 67 6e 3d 22 72 69 67 68  ><td align="righ
151c0 74 22 3e 31 38 32 30 30 30 3c 2f 74 64 3e 3c 74  t">182000</td><t
151d0 64 20 61 6c 69 67 6e 3d 22 72 69 67 68 74 22 3e  d align="right">
151e0 31 38 33 38 38 32 3c 2f 74 64 3e 3c 74 64 20 61  183882</td><td a
151f0 6c 69 67 6e 3d 22 72 69 67 68 74 22 3e 35 31 2e  lign="right">51.
15200 30 31 35 31 31 37 3c 2f 74 64 3e 3c 74 64 3e 4e  015117</td><td>N
15210 55 4c 4c 3c 2f 74 64 3e 3c 74 64 3e 56 49 41 20  ULL</td><td>VIA 
15220 4c 49 43 49 4f 20 4e 45 4e 43 45 54 54 49 3c 2f  LICIO NENCETTI</
15230 74 64 3e 0d 0a 3c 2f 74 72 3e 0d 0a 3c 74 72 3e  td>..</tr>..<tr>
15240 0d 0a 3c 74 64 3e 4e 55 4c 4c 3c 2f 74 64 3e 3c  ..<td>NULL</td><
15250 74 64 3e 4e 55 4c 4c 3c 2f 74 64 3e 3c 74 64 3e  td>NULL</td><td>
15260 4e 55 4c 4c 3c 2f 74 64 3e 3c 74 64 3e 4e 55 4c  NULL</td><td>NUL
15270 4c 3c 2f 74 64 3e 3c 74 64 20 61 6c 69 67 6e 3d  L</td><td align=
15280 22 72 69 67 68 74 22 3e 36 3c 2f 74 64 3e 3c 74  "right">6</td><t
15290 64 20 61 6c 69 67 6e 3d 22 72 69 67 68 74 22 3e  d align="right">
152a0 30 3c 2f 74 64 3e 3c 74 64 3e 52 6f 75 74 65 3c  0</td><td>Route<
152b0 2f 74 64 3e 3c 74 64 3e 4e 55 4c 4c 3c 74 64 20  /td><td>NULL<td 
152c0 61 6c 69 67 6e 3d 22 72 69 67 68 74 22 3e 31 38  align="right">18
152d0 33 38 38 32 3c 2f 74 64 3e 3c 74 64 20 61 6c 69  3882</td><td ali
152e0 67 6e 3d 22 72 69 67 68 74 22 3e 31 37 38 37 33  gn="right">17873
152f0 31 3c 2f 74 64 3e 3c 74 64 20 61 6c 69 67 6e 3d  1</td><td align=
15300 22 72 69 67 68 74 22 3e 31 35 34 2e 37 35 30 38  "right">154.7508
15310 33 39 3c 2f 74 64 3e 3c 74 64 3e 42 4c 4f 42 20  39</td><td>BLOB 
15320 73 7a 3d 32 34 30 20 47 45 4f 4d 45 54 52 59 3c  sz=240 GEOMETRY<
15330 2f 74 64 3e 3c 74 64 3e 4e 55 4c 4c 3c 2f 74 64  /td><td>NULL</td
15340 3e 0d 0a 3c 2f 74 72 3e 0d 0a 3c 74 72 3e 0d 0a  >..</tr>..<tr>..
15350 3c 74 64 3e 4e 55 4c 4c 3c 2f 74 64 3e 3c 74 64  <td>NULL</td><td
15360 3e 4e 55 4c 4c 3c 2f 74 64 3e 3c 74 64 3e 4e 55  >NULL</td><td>NU
15370 4c 4c 3c 2f 74 64 3e 3c 74 64 3e 4e 55 4c 4c 3c  LL</td><td>NULL<
15380 2f 74 64 3e 3c 74 64 20 61 6c 69 67 6e 3d 22 72  /td><td align="r
15390 69 67 68 74 22 3e 37 3c 2f 74 64 3e 3c 74 64 20  ight">7</td><td 
153a0 61 6c 69 67 6e 3d 22 72 69 67 68 74 22 3e 31 3c  align="right">1<
153b0 2f 74 64 3e 3c 74 64 3e 4c 69 6e 6b 3c 2f 74 64  /td><td>Link</td
153c0 3e 3c 74 64 20 61 6c 69 67 6e 3d 22 72 69 67 68  ><td align="righ
153d0 74 22 3e 32 32 35 35 32 37 3c 2f 74 64 3e 3c 74  t">225527</td><t
153e0 64 20 61 6c 69 67 6e 3d 22 72 69 67 68 74 22 3e  d align="right">
153f0 31 38 33 38 38 32 3c 2f 74 64 3e 3c 74 64 20 61  183882</td><td a
15400 6c 69 67 6e 3d 22 72 69 67 68 74 22 3e 31 38 32  lign="right">182
15410 30 30 30 3c 2f 74 64 3e 3c 74 64 20 61 6c 69 67  000</td><td alig
15420 6e 3d 22 72 69 67 68 74 22 3e 35 31 2e 30 31 35  n="right">51.015
15430 31 31 37 3c 2f 74 64 3e 3c 74 64 3e 4e 55 4c 4c  117</td><td>NULL
15440 3c 2f 74 64 3e 3c 74 64 3e 56 49 41 20 4c 49 43  </td><td>VIA LIC
15450 49 4f 20 4e 45 4e 43 45 54 54 49 3c 2f 74 64 3e  IO NENCETTI</td>
15460 0d 0a 3c 2f 74 72 3e 0d 0a 3c 74 72 3e 0d 0a 3c  ..</tr>..<tr>..<
15470 74 64 3e 4e 55 4c 4c 3c 2f 74 64 3e 3c 74 64 3e  td>NULL</td><td>
15480 4e 55 4c 4c 3c 2f 74 64 3e 3c 74 64 3e 4e 55 4c  NULL</td><td>NUL
15490 4c 3c 2f 74 64 3e 3c 74 64 3e 4e 55 4c 4c 3c 2f  L</td><td>NULL</
154a0 74 64 3e 3c 74 64 20 61 6c 69 67 6e 3d 22 72 69  td><td align="ri
154b0 67 68 74 22 3e 37 3c 2f 74 64 3e 3c 74 64 20 61  ght">7</td><td a
154c0 6c 69 67 6e 3d 22 72 69 67 68 74 22 3e 32 3c 2f  lign="right">2</
154d0 74 64 3e 3c 74 64 3e 4c 69 6e 6b 3c 2f 74 64 3e  td><td>Link</td>
154e0 3c 74 64 20 61 6c 69 67 6e 3d 22 72 69 67 68 74  <td align="right
154f0 22 3e 32 32 32 36 33 36 3c 2f 74 64 3e 3c 74 64  ">222636</td><td
15500 20 61 6c 69 67 6e 3d 22 72 69 67 68 74 22 3e 31   align="right">1
15510 38 32 30 30 30 3c 2f 74 64 3e 3c 74 64 20 61 6c  82000</td><td al
15520 69 67 6e 3d 22 72 69 67 68 74 22 3e 31 37 38 37  ign="right">1787
15530 33 31 3c 2f 74 64 3e 3c 74 64 20 61 6c 69 67 6e  31</td><td align
15540 3d 22 72 69 67 68 74 22 3e 31 30 33 2e 37 33 35  ="right">103.735
15550 37 32 32 3c 2f 74 64 3e 3c 74 64 3e 4e 55 4c 4c  722</td><td>NULL
15560 3c 2f 74 64 3e 3c 74 64 3e 56 49 41 20 50 49 45  </td><td>VIA PIE
15570 54 52 4f 20 41 52 45 54 49 4e 4f 3c 2f 74 64 3e  TRO ARETINO</td>
15580 0d 0a 3c 2f 74 72 3e 0d 0a 3c 2f 74 61 62 6c 65  ..</tr>..</table
15590 3e 0d 0a 3c 62 72 3e 0d 0a 4c 65 74 27 73 20 6e  >..<br>..Let's n
155a0 6f 77 20 71 75 69 63 6b 6c 79 20 65 78 61 6d 69  ow quickly exami
155b0 6e 65 20 74 68 65 20 72 65 73 75 6c 74 73 65 74  ne the resultset
155c0 20 72 65 74 75 72 6e 65 64 20 62 79 20 61 6e 79   returned by any
155d0 20 54 53 50 20 71 75 65 72 79 3a 0d 0a 3c 75 6c   TSP query:..<ul
155e0 3e 0d 0a 3c 6c 69 3e 74 68 65 20 67 65 6e 65 72  >..<li>the gener
155f0 61 6c 20 6c 61 79 6f 75 74 20 69 73 20 6d 6f 72  al layout is mor
15600 65 20 6f 72 20 6c 65 73 73 20 74 68 65 20 73 61  e or less the sa
15610 6d 65 20 61 73 20 79 6f 75 27 76 65 20 61 6c 72  me as you've alr
15620 65 61 64 79 20 73 65 65 6e 20 69 6e 20 74 68 65  eady seen in the
15630 20 63 61 73 65 20 6f 66 20 3c 62 3e 53 68 6f 72   case of <b>Shor
15640 74 65 73 74 50 61 74 68 3c 2f 62 3e 20 71 75 65  testPath</b> que
15650 72 69 65 73 2e 3c 2f 6c 69 3e 0d 0a 3c 6c 69 3e  ries.</li>..<li>
15660 74 68 65 20 3c 62 3e 66 69 72 73 74 20 72 6f 77  the <b>first row
15670 3c 2f 62 3e 20 6f 66 20 74 68 65 20 72 65 73 75  </b> of the resu
15680 6c 74 73 65 74 20 69 73 20 73 6f 6d 65 77 61 79  ltset is someway
15690 20 65 78 63 65 70 74 69 6f 6e 61 6c 2c 20 61 6e   exceptional, an
156a0 64 20 69 73 20 74 68 65 20 75 6e 69 71 75 65 20  d is the unique 
156b0 72 6f 77 20 6f 66 20 74 68 65 20 72 65 73 75 6c  row of the resul
156c0 74 73 65 74 20 70 72 65 73 65 6e 74 69 6e 67 20  tset presenting 
156d0 3c 62 3e 4e 4f 54 20 4e 55 4c 4c 3c 2f 62 3e 20  <b>NOT NULL</b> 
156e0 76 61 6c 75 65 73 20 69 6e 20 74 68 65 20 3c 62  values in the <b
156f0 3e 41 6c 67 6f 72 69 74 68 6d 3c 2f 62 3e 2c 20  >Algorithm</b>, 
15700 3c 62 3e 52 65 71 75 65 73 74 3c 2f 62 3e 2c 20  <b>Request</b>, 
15710 3c 62 3e 4f 70 74 69 6f 6e 73 3c 2f 62 3e 20 61  <b>Options</b> a
15720 6e 64 20 3c 62 3e 44 65 6c 69 6d 69 74 65 72 3c  nd <b>Delimiter<
15730 2f 62 3e 20 63 6f 6c 75 6d 6e 73 2e 3c 62 72 3e  /b> columns.<br>
15740 0d 0a 49 74 20 63 6f 6e 74 61 69 6e 73 20 74 68  ..It contains th
15750 65 20 3c 62 3e 54 53 50 20 73 6f 6c 75 74 69 6f  e <b>TSP solutio
15760 6e 3c 2f 62 3e 20 61 73 20 61 20 77 68 6f 6c 65  n</b> as a whole
15770 3a 20 63 6f 6c 75 6d 6e 20 3c 62 3e 43 6f 73 74  : column <b>Cost
15780 3c 2f 62 3e 20 69 73 20 74 68 65 20 3c 75 3e 74  </b> is the <u>t
15790 6f 74 61 6c 20 63 6f 73 74 3c 2f 75 3e 20 61 6e  otal cost</u> an
157a0 64 20 63 6f 6c 75 6d 6e 20 3c 62 3e 47 65 6f 6d  d column <b>Geom
157b0 65 74 72 79 3c 2f 62 3e 20 69 73 20 74 68 65 20  etry</b> is the 
157c0 3c 75 3e 6f 76 65 72 61 6c 6c 20 73 6f 6c 75 74  <u>overall solut
157d0 69 6f 6e 20 70 61 74 68 3c 2f 75 3e 2e 3c 2f 6c  ion path</u>.</l
157e0 69 3e 0d 0a 3c 6c 69 3e 63 6f 6c 75 6d 6e 73 20  i>..<li>columns 
157f0 3c 62 3e 52 6f 75 74 65 49 64 3c 2f 62 3e 20 61  <b>RouteId</b> a
15800 6e 64 20 3c 62 3e 52 6f 75 74 65 52 6f 77 3c 2f  nd <b>RouteRow</
15810 62 3e 20 68 61 76 65 20 74 68 65 20 73 61 6d 65  b> have the same
15820 20 69 6e 74 65 72 70 72 65 74 61 74 69 6f 6e 20   interpretation 
15830 61 73 20 69 6e 20 3c 62 3e 6d 75 6c 74 69 2d 64  as in <b>multi-d
15840 65 73 74 69 6e 61 74 69 6f 6e 20 53 68 6f 72 74  estination Short
15850 65 73 74 50 61 74 68 3c 2f 62 3e 20 71 75 65 72  estPath</b> quer
15860 69 65 73 2c 20 62 75 74 20 69 6e 20 74 68 69 73  ies, but in this
15870 20 73 70 65 63 69 66 69 63 20 63 61 73 65 20 65   specific case e
15880 61 63 68 20 3c 75 3e 3c 69 3e 72 6f 75 74 65 3c  ach <u><i>route<
15890 2f 69 3e 3c 2f 75 3e 20 63 6f 72 72 65 73 70 6f  /i></u> correspo
158a0 6e 64 73 20 74 6f 20 61 20 63 6f 6e 6e 65 63 74  nds to a connect
158b0 69 6f 6e 20 62 65 74 77 65 65 6e 20 74 77 6f 20  ion between two 
158c0 3c 69 3e 3c 75 3e 63 69 74 69 65 73 3c 2f 75 3e  <i><u>cities</u>
158d0 3c 2f 69 3e 2e 3c 62 72 3e 0d 0a 41 6c 6c 20 3c  </i>.<br>..All <
158e0 69 3e 3c 75 3e 72 6f 75 74 65 73 3c 2f 75 3e 3c  i><u>routes</u><
158f0 2f 69 3e 20 61 72 65 20 6f 72 64 65 72 20 61 63  /i> are order ac
15900 63 6f 72 64 69 6e 67 6c 79 20 74 6f 20 74 68 65  cordingly to the
15910 20 72 75 6e 6e 69 6e 67 20 73 65 71 75 65 6e 63   running sequenc
15920 65 20 6f 66 20 74 68 65 20 54 53 50 20 73 6f 6c  e of the TSP sol
15930 75 74 69 6f 6e 2e 20 3c 62 3e 52 6f 75 74 65 49  ution. <b>RouteI
15940 64 3d 30 3c 2f 62 3e 20 69 64 65 6e 74 69 66 69  d=0</b> identifi
15950 65 73 20 74 68 65 20 6f 76 65 72 61 6c 6c 20 54  es the overall T
15960 53 50 20 73 6f 6c 75 74 69 6f 6e 2e 3c 2f 6c 69  SP solution.</li
15970 3e 0d 0a 3c 2f 75 6c 3e 3c 62 72 3e 3c 62 72 3e  >..</ul><br><br>
15980 0d 0a 3c 76 65 72 62 61 74 69 6d 3e 0d 0a 55 50  ..<verbatim>..UP
15990 44 41 54 45 20 62 79 66 6f 6f 74 20 53 45 54 20  DATE byfoot SET 
159a0 52 65 71 75 65 73 74 20 3d 20 27 54 53 50 20 47  Request = 'TSP G
159b0 41 27 3b 0d 0a 0d 0a 53 45 4c 45 43 54 20 41 6c  A';....SELECT Al
159c0 67 6f 72 69 74 68 6d 2c 20 52 65 71 75 65 73 74  gorithm, Request
159d0 2c 20 4f 70 74 69 6f 6e 73 2c 20 44 65 6c 69 6d  , Options, Delim
159e0 69 74 65 72 2c 20 52 6f 75 74 65 49 64 2c 20 52  iter, RouteId, R
159f0 6f 75 74 65 52 6f 77 2c 20 52 6f 6c 65 2c 20 4c  outeRow, Role, L
15a00 69 6e 6b 52 6f 77 69 64 2c 20 4e 6f 64 65 46 72  inkRowid, NodeFr
15a10 6f 6d 2c 20 4e 6f 64 65 54 6f 2c 20 43 6f 73 74  om, NodeTo, Cost
15a20 2c 20 47 65 6f 6d 65 74 72 79 2c 20 4e 61 6d 65  , Geometry, Name
15a30 0d 0a 46 52 4f 4d 20 62 79 66 6f 6f 74 0d 0a 57  ..FROM byfoot..W
15a40 48 45 52 45 20 4e 6f 64 65 46 72 6f 6d 20 3d 20  HERE NodeFrom = 
15a50 31 37 38 37 33 31 20 41 4e 44 20 4e 6f 64 65 54  178731 AND NodeT
15a60 6f 20 3d 20 27 31 38 33 32 38 36 2c 31 38 31 39  o = '183286,1819
15a70 39 39 2c 31 38 34 30 33 30 2c 31 38 33 38 38 32  99,184030,183882
15a80 2c 31 37 38 37 35 34 27 3b 0d 0a 3c 2f 76 65 72  ,178754';..</ver
15a90 62 61 74 69 6d 3e 0d 0a 49 66 20 79 6f 75 20 77  batim>..If you w
15aa0 69 73 68 20 74 6f 20 67 65 74 20 61 20 3c 62 3e  ish to get a <b>
15ab0 54 53 50 20 47 41 3c 2f 62 3e 20 73 6f 6c 75 74  TSP GA</b> solut
15ac0 69 6f 6e 20 79 6f 75 20 73 69 6d 70 6c 65 20 68  ion you simple h
15ad0 61 76 65 20 74 6f 20 73 65 74 20 3c 62 3e 52 65  ave to set <b>Re
15ae0 71 75 65 73 74 3c 2f 62 3e 20 61 73 20 3c 62 3e  quest</b> as <b>
15af0 54 53 50 20 47 41 3c 2f 62 3e 3b 20 61 6e 64 20  TSP GA</b>; and 
15b00 79 6f 75 20 63 61 6e 20 73 65 74 20 61 67 61 69  you can set agai
15b10 6e 20 3c 62 3e 52 65 71 75 65 73 74 3c 2f 62 3e  n <b>Request</b>
15b20 20 61 73 20 3c 62 3e 54 53 50 3c 2f 62 3e 20 6f   as <b>TSP</b> o
15b30 72 20 3c 62 3e 54 53 50 20 4e 4e 3c 2f 62 3e 20  r <b>TSP NN</b> 
15b40 74 6f 20 72 65 76 65 72 74 20 62 61 63 6b 20 74  to revert back t
15b50 6f 20 74 68 65 20 73 69 6d 70 6c 65 72 20 2f 20  o the simpler / 
15b60 66 61 73 74 65 72 20 61 6c 67 6f 72 69 74 68 6d  faster algorithm
15b70 2e 0d 0a 3c 62 72 3e 0d 0a 41 6c 73 6f 20 69 6e  ...<br>..Also in
15b80 20 74 68 65 20 63 61 73 65 20 6f 66 20 54 53 50   the case of TSP
15b90 20 79 6f 75 20 63 61 6e 20 65 76 65 6e 74 75 61   you can eventua
15ba0 6c 6c 79 20 61 63 74 69 76 61 74 65 20 74 68 65  lly activate the
15bb0 20 75 73 75 61 6c 20 3c 62 3e 4f 70 74 69 6f 6e   usual <b>Option
15bc0 73 3c 2f 62 3e 20 61 6c 72 65 61 64 79 20 65 78  s</b> already ex
15bd0 70 6c 61 69 6e 65 64 20 69 6e 20 74 68 65 20 53  plained in the S
15be0 68 6f 72 74 65 73 74 50 61 74 68 20 65 78 61 6d  hortestPath exam
15bf0 70 6c 65 73 2e 3c 62 72 3e 0d 0a 3c 75 3e 4e 6f  ples.<br>..<u>No
15c00 74 65 3c 2f 75 3e 3a 54 53 50 20 70 72 6f 62 6c  te</u>:TSP probl
15c10 65 6d 73 20 77 69 6c 6c 20 61 6c 77 61 79 73 20  ems will always 
15c20 69 6d 70 6c 79 20 75 73 69 6e 67 20 74 68 65 20  imply using the 
15c30 3c 62 3e 44 69 6a 6b 73 74 72 61 27 73 3c 2f 62  <b>Dijkstra's</b
15c40 3e 20 61 6c 67 6f 72 69 74 68 6d 2c 20 65 76 65  > algorithm, eve
15c50 6e 20 77 68 65 6e 20 74 68 65 20 61 6c 74 65 72  n when the alter
15c60 6e 61 74 69 76 65 20 3c 62 3e 41 2a 3c 2f 62 3e  native <b>A*</b>
15c70 20 61 6c 67 6f 72 69 74 68 6d 20 69 73 20 63 75   algorithm is cu
15c80 72 72 65 6e 74 6c 79 20 73 65 6c 65 63 74 65 64  rrently selected
15c90 2e 0d 0a 3c 76 65 72 62 61 74 69 6d 3e 0d 0a 55  ...<verbatim>..U
15ca0 50 44 41 54 45 20 62 79 66 6f 6f 74 20 53 45 54  PDATE byfoot SET
15cb0 20 52 65 71 75 65 73 74 20 3d 20 27 54 53 50 27   Request = 'TSP'
15cc0 2c 20 4f 70 74 69 6f 6e 73 20 3d 20 27 4e 4f 20  , Options = 'NO 
15cd0 4c 49 4e 4b 53 27 3b 0d 0a 0d 0a 53 45 4c 45 43  LINKS';....SELEC
15ce0 54 20 41 6c 67 6f 72 69 74 68 6d 2c 20 52 65 71  T Algorithm, Req
15cf0 75 65 73 74 2c 20 4f 70 74 69 6f 6e 73 2c 20 44  uest, Options, D
15d00 65 6c 69 6d 69 74 65 72 2c 20 52 6f 75 74 65 49  elimiter, RouteI
15d10 64 2c 20 52 6f 75 74 65 52 6f 77 2c 20 52 6f 6c  d, RouteRow, Rol
15d20 65 2c 20 4c 69 6e 6b 52 6f 77 69 64 2c 20 4e 6f  e, LinkRowid, No
15d30 64 65 46 72 6f 6d 2c 20 4e 6f 64 65 54 6f 2c 20  deFrom, NodeTo, 
15d40 43 6f 73 74 2c 20 47 65 6f 6d 65 74 72 79 2c 20  Cost, Geometry, 
15d50 4e 61 6d 65 0d 0a 46 52 4f 4d 20 62 79 66 6f 6f  Name..FROM byfoo
15d60 74 0d 0a 57 48 45 52 45 20 4e 6f 64 65 46 72 6f  t..WHERE NodeFro
15d70 6d 20 3d 20 31 37 38 37 33 31 20 41 4e 44 20 4e  m = 178731 AND N
15d80 6f 64 65 54 6f 20 3d 20 27 31 38 33 32 38 36 2c  odeTo = '183286,
15d90 31 38 31 39 39 39 2c 31 38 34 30 33 30 2c 31 38  181999,184030,18
15da0 33 38 38 32 2c 31 37 38 37 35 34 27 3b 0d 0a 3c  3882,178754';..<
15db0 2f 76 65 72 62 61 74 69 6d 3e 0d 0a 54 68 65 20  /verbatim>..The 
15dc0 66 6f 6c 6c 6f 77 69 6e 67 20 74 61 62 6c 65 20  following table 
15dd0 73 68 6f 77 73 20 74 68 65 20 72 65 73 75 6c 74  shows the result
15de0 73 65 74 20 72 65 74 75 72 6e 65 64 20 62 79 20  set returned by 
15df0 74 68 65 20 73 61 6d 65 20 54 53 50 20 71 75 65  the same TSP que
15e00 72 79 20 75 73 65 64 20 69 6e 20 74 68 65 20 70  ry used in the p
15e10 72 65 76 69 6f 75 73 20 65 78 61 6d 70 6c 65 20  revious example 
15e20 61 66 74 65 72 20 65 6e 61 62 6c 69 6e 67 20 74  after enabling t
15e30 68 65 20 3c 62 3e 4e 4f 20 4c 49 4e 4b 53 3c 2f  he <b>NO LINKS</
15e40 62 3e 20 6f 70 74 69 6f 6e 2e 20 3c 62 72 3e 3c  b> option. <br><
15e50 62 72 3e 0d 0a 3c 74 61 62 6c 65 20 62 6f 72 64  br>..<table bord
15e60 65 72 3d 22 31 22 20 62 67 63 6f 6c 6f 72 3d 22  er="1" bgcolor="
15e70 23 66 66 66 66 63 66 22 20 63 65 6c 6c 73 70 61  #ffffcf" cellspa
15e80 63 69 6e 67 3d 22 34 22 20 63 65 6c 6c 70 61 64  cing="4" cellpad
15e90 64 69 6e 67 3d 22 36 22 3e 0d 0a 3c 74 72 3e 3c  ding="6">..<tr><
15ea0 74 68 20 62 67 63 6f 6c 6f 72 3d 22 23 64 30 64  th bgcolor="#d0d
15eb0 30 61 30 22 3e 41 6c 67 6f 72 69 74 68 6d 3c 2f  0a0">Algorithm</
15ec0 74 68 3e 3c 74 68 20 62 67 63 6f 6c 6f 72 3d 22  th><th bgcolor="
15ed0 23 64 30 64 30 61 30 22 3e 52 65 71 75 65 73 74  #d0d0a0">Request
15ee0 3c 2f 74 68 3e 3c 74 68 20 62 67 63 6f 6c 6f 72  </th><th bgcolor
15ef0 3d 22 23 64 30 64 30 61 30 22 3e 4f 70 74 69 6f  ="#d0d0a0">Optio
15f00 6e 73 3c 2f 74 68 3e 3c 74 68 20 62 67 63 6f 6c  ns</th><th bgcol
15f10 6f 72 3d 22 23 64 30 64 30 61 30 22 3e 44 65 6c  or="#d0d0a0">Del
15f20 69 6d 69 74 65 72 3c 2f 74 68 3e 3c 74 68 20 62  imiter</th><th b
15f30 67 63 6f 6c 6f 72 3d 22 23 64 30 64 30 61 30 22  gcolor="#d0d0a0"
15f40 3e 52 6f 75 74 65 49 64 3c 2f 74 68 3e 3c 74 68  >RouteId</th><th
15f50 20 62 67 63 6f 6c 6f 72 3d 22 23 64 30 64 30 61   bgcolor="#d0d0a
15f60 30 22 3e 52 6f 75 74 65 52 6f 77 3c 2f 74 68 3e  0">RouteRow</th>
15f70 3c 74 68 20 62 67 63 6f 6c 6f 72 3d 22 23 64 30  <th bgcolor="#d0
15f80 64 30 61 30 22 3e 52 6f 6c 65 3c 2f 74 68 3e 3c  d0a0">Role</th><
15f90 74 68 20 62 67 63 6f 6c 6f 72 3d 22 23 64 30 64  th bgcolor="#d0d
15fa0 30 61 30 22 3e 4c 69 6e 6b 52 6f 77 69 64 3c 2f  0a0">LinkRowid</
15fb0 74 68 3e 3c 74 68 20 62 67 63 6f 6c 6f 72 3d 22  th><th bgcolor="
15fc0 23 64 30 64 30 61 30 22 3e 4e 6f 64 65 46 72 6f  #d0d0a0">NodeFro
15fd0 6d 3c 2f 74 68 3e 3c 74 68 20 62 67 63 6f 6c 6f  m</th><th bgcolo
15fe0 72 3d 22 23 64 30 64 30 61 30 22 3e 4e 6f 64 65  r="#d0d0a0">Node
15ff0 54 6f 3c 2f 74 68 3e 3c 74 68 20 62 67 63 6f 6c  To</th><th bgcol
16000 6f 72 3d 22 23 64 30 64 30 61 30 22 3e 43 6f 73  or="#d0d0a0">Cos
16010 74 3c 2f 74 68 3e 3c 74 68 20 62 67 63 6f 6c 6f  t</th><th bgcolo
16020 72 3d 22 23 64 30 64 30 61 30 22 3e 47 65 6f 6d  r="#d0d0a0">Geom
16030 65 74 72 79 3c 2f 74 68 3e 3c 74 68 20 62 67 63  etry</th><th bgc
16040 6f 6c 6f 72 3d 22 23 64 30 64 30 61 30 22 3e 4e  olor="#d0d0a0">N
16050 61 6d 65 3c 2f 74 68 3e 3c 2f 74 72 3e 0d 0a 3c  ame</th></tr>..<
16060 74 72 3e 0d 0a 3c 74 64 3e 44 69 6a 6b 73 74 72  tr>..<td>Dijkstr
16070 61 3c 2f 74 64 3e 3c 74 64 3e 54 53 50 20 4e 4e  a</td><td>TSP NN
16080 3c 2f 74 64 3e 3c 74 64 3e 4e 6f 20 4c 69 6e 6b  </td><td>No Link
16090 73 3c 2f 74 64 3e 3c 74 64 3e 2c 20 26 23 39 31  s</td><td>, &#91
160a0 3b 64 65 63 3d 34 34 2c 20 68 65 78 3d 32 63 26  ;dec=44, hex=2c&
160b0 23 39 33 3b 3c 2f 74 64 3e 3c 74 64 20 61 6c 69  #93;</td><td ali
160c0 67 6e 3d 22 72 69 67 68 74 22 3e 30 3c 2f 74 64  gn="right">0</td
160d0 3e 3c 74 64 20 61 6c 69 67 6e 3d 22 72 69 67 68  ><td align="righ
160e0 74 22 3e 30 3c 2f 74 64 3e 3c 74 64 3e 54 53 50  t">0</td><td>TSP
160f0 20 53 6f 6c 75 74 69 6f 6e 3c 2f 74 64 3e 3c 74   Solution</td><t
16100 64 3e 4e 55 4c 4c 3c 2f 74 64 3e 3c 74 64 20 61  d>NULL</td><td a
16110 6c 69 67 6e 3d 22 72 69 67 68 74 22 3e 31 37 38  lign="right">178
16120 37 33 31 3c 2f 74 64 3e 3c 74 64 20 61 6c 69 67  731</td><td alig
16130 6e 3d 22 72 69 67 68 74 22 3e 31 37 38 37 33 31  n="right">178731
16140 3c 2f 74 64 3e 3c 74 64 20 61 6c 69 67 6e 3d 22  </td><td align="
16150 72 69 67 68 74 22 3e 31 32 35 34 2e 34 33 33 39  right">1254.4339
16160 33 33 3c 2f 74 64 3e 3c 74 64 3e 42 4c 4f 42 20  33</td><td>BLOB 
16170 73 7a 3d 32 30 30 30 20 47 45 4f 4d 45 54 52 59  sz=2000 GEOMETRY
16180 3c 2f 74 64 3e 3c 74 64 3e 4e 55 4c 4c 3c 2f 74  </td><td>NULL</t
16190 64 3e 0d 0a 3c 2f 74 72 3e 0d 0a 3c 74 72 3e 0d  d>..</tr>..<tr>.
161a0 0a 3c 74 64 3e 4e 55 4c 4c 3c 2f 74 64 3e 3c 74  .<td>NULL</td><t
161b0 64 3e 4e 55 4c 4c 3c 2f 74 64 3e 3c 74 64 3e 4e  d>NULL</td><td>N
161c0 55 4c 4c 3c 2f 74 64 3e 3c 74 64 3e 4e 55 4c 4c  ULL</td><td>NULL
161d0 3c 74 64 20 61 6c 69 67 6e 3d 22 72 69 67 68 74  <td align="right
161e0 22 3e 31 3c 2f 74 64 3e 3c 74 64 20 61 6c 69 67  ">1</td><td alig
161f0 6e 3d 22 72 69 67 68 74 22 3e 30 3c 2f 74 64 3e  n="right">0</td>
16200 3c 74 64 3e 52 6f 75 74 65 3c 2f 74 64 3e 3c 74  <td>Route</td><t
16210 64 3e 4e 55 4c 4c 3c 2f 74 64 3e 3c 74 64 20 61  d>NULL</td><td a
16220 6c 69 67 6e 3d 22 72 69 67 68 74 22 3e 31 37 38  lign="right">178
16230 37 33 31 3c 2f 74 64 3e 3c 74 64 20 61 6c 69 67  731</td><td alig
16240 6e 3d 22 72 69 67 68 74 22 3e 31 38 34 30 33 30  n="right">184030
16250 3c 2f 74 64 3e 3c 74 64 20 61 6c 69 67 6e 3d 22  </td><td align="
16260 72 69 67 68 74 22 3e 31 37 36 2e 33 36 34 37 35  right">176.36475
16270 35 3c 2f 74 64 3e 3c 74 64 3e 42 4c 4f 42 20 73  5</td><td>BLOB s
16280 7a 3d 33 30 34 20 47 45 4f 4d 45 54 52 59 3c 2f  z=304 GEOMETRY</
16290 74 64 3e 3c 74 64 3e 4e 55 4c 4c 3c 2f 74 64 3e  td><td>NULL</td>
162a0 0d 0a 3c 2f 74 72 3e 0d 0a 3c 74 72 3e 0d 0a 3c  ..</tr>..<tr>..<
162b0 74 64 3e 4e 55 4c 4c 3c 2f 74 64 3e 3c 74 64 3e  td>NULL</td><td>
162c0 4e 55 4c 4c 3c 2f 74 64 3e 3c 74 64 3e 4e 55 4c  NULL</td><td>NUL
162d0 4c 3c 2f 74 64 3e 3c 74 64 3e 4e 55 4c 4c 3c 74  L</td><td>NULL<t
162e0 64 20 61 6c 69 67 6e 3d 22 72 69 67 68 74 22 3e  d align="right">
162f0 32 3c 2f 74 64 3e 3c 74 64 20 61 6c 69 67 6e 3d  2</td><td align=
16300 22 72 69 67 68 74 22 3e 30 3c 2f 74 64 3e 3c 74  "right">0</td><t
16310 64 3e 52 6f 75 74 65 3c 2f 74 64 3e 3c 74 64 3e  d>Route</td><td>
16320 4e 55 4c 4c 3c 2f 74 64 3e 3c 74 64 20 61 6c 69  NULL</td><td ali
16330 67 6e 3d 22 72 69 67 68 74 22 3e 31 38 34 30 33  gn="right">18403
16340 30 3c 2f 74 64 3e 3c 74 64 20 61 6c 69 67 6e 3d  0</td><td align=
16350 22 72 69 67 68 74 22 3e 31 38 31 39 39 39 3c 2f  "right">181999</
16360 74 64 3e 3c 74 64 20 61 6c 69 67 6e 3d 22 72 69  td><td align="ri
16370 67 68 74 22 3e 31 33 39 2e 31 31 34 39 33 38 3c  ght">139.114938<
16380 2f 74 64 3e 3c 74 64 3e 42 4c 4f 42 20 73 7a 3d  /td><td>BLOB sz=
16390 34 39 36 20 47 45 4f 4d 45 54 52 59 3c 2f 74 64  496 GEOMETRY</td
163a0 3e 3c 74 64 3e 4e 55 4c 4c 3c 2f 74 64 3e 0d 0a  ><td>NULL</td>..
163b0 3c 2f 74 72 3e 0d 0a 3c 74 72 3e 0d 0a 3c 74 64  </tr>..<tr>..<td
163c0 3e 4e 55 4c 4c 3c 2f 74 64 3e 3c 74 64 3e 4e 55  >NULL</td><td>NU
163d0 4c 4c 3c 2f 74 64 3e 3c 74 64 3e 4e 55 4c 4c 3c  LL</td><td>NULL<
163e0 2f 74 64 3e 3c 74 64 3e 4e 55 4c 4c 3c 2f 74 64  /td><td>NULL</td
163f0 3e 3c 74 64 20 61 6c 69 67 6e 3d 22 72 69 67 68  ><td align="righ
16400 74 22 3e 33 3c 2f 74 64 3e 3c 74 64 20 61 6c 69  t">3</td><td ali
16410 67 6e 3d 22 72 69 67 68 74 22 3e 30 3c 2f 74 64  gn="right">0</td
16420 3e 3c 74 64 3e 52 6f 75 74 65 3c 2f 74 64 3e 3c  ><td>Route</td><
16430 74 64 3e 4e 55 4c 4c 3c 2f 74 64 3e 3c 74 64 20  td>NULL</td><td 
16440 61 6c 69 67 6e 3d 22 72 69 67 68 74 22 3e 31 38  align="right">18
16450 31 39 39 39 3c 2f 74 64 3e 3c 74 64 20 61 6c 69  1999</td><td ali
16460 67 6e 3d 22 72 69 67 68 74 22 3e 31 38 33 32 38  gn="right">18328
16470 36 3c 2f 74 64 3e 3c 74 64 20 61 6c 69 67 6e 3d  6</td><td align=
16480 22 72 69 67 68 74 22 3e 32 31 37 2e 36 37 32 38  "right">217.6728
16490 38 35 3c 2f 74 64 3e 3c 74 64 3e 42 4c 4f 42 20  85</td><td>BLOB 
164a0 73 7a 3d 36 38 38 20 47 45 4f 4d 45 54 52 59 3c  sz=688 GEOMETRY<
164b0 2f 74 64 3e 3c 74 64 3e 4e 55 4c 4c 3c 2f 74 64  /td><td>NULL</td
164c0 3e 0d 0a 3c 2f 74 72 3e 0d 0a 3c 74 72 3e 0d 0a  >..</tr>..<tr>..
164d0 3c 74 64 3e 4e 55 4c 4c 3c 2f 74 64 3e 3c 74 64  <td>NULL</td><td
164e0 3e 4e 55 4c 4c 3c 2f 74 64 3e 3c 74 64 3e 4e 55  >NULL</td><td>NU
164f0 4c 4c 3c 2f 74 64 3e 3c 74 64 3e 4e 55 4c 4c 3c  LL</td><td>NULL<
16500 2f 74 64 3e 3c 74 64 20 61 6c 69 67 6e 3d 22 72  /td><td align="r
16510 69 67 68 74 22 3e 34 3c 2f 74 64 3e 3c 74 64 20  ight">4</td><td 
16520 61 6c 69 67 6e 3d 22 72 69 67 68 74 22 3e 30 3c  align="right">0<
16530 2f 74 64 3e 3c 74 64 3e 52 6f 75 74 65 3c 2f 74  /td><td>Route</t
16540 64 3e 3c 74 64 3e 4e 55 4c 4c 3c 2f 74 64 3e 3c  d><td>NULL</td><
16550 74 64 20 61 6c 69 67 6e 3d 22 72 69 67 68 74 22  td align="right"
16560 3e 31 38 33 32 38 36 3c 2f 74 64 3e 3c 74 64 20  >183286</td><td 
16570 61 6c 69 67 6e 3d 22 72 69 67 68 74 22 3e 31 37  align="right">17
16580 38 37 35 34 3c 2f 74 64 3e 3c 74 64 20 61 6c 69  8754</td><td ali
16590 67 6e 3d 22 72 69 67 68 74 22 3e 33 37 38 2e 33  gn="right">378.3
165a0 31 33 36 38 34 3c 2f 74 64 3e 3c 74 64 3e 42 4c  13684</td><td>BL
165b0 4f 42 20 73 7a 3d 32 37 32 20 47 45 4f 4d 45 54  OB sz=272 GEOMET
165c0 52 59 3c 2f 74 64 3e 3c 74 64 3e 4e 55 4c 4c 3c  RY</td><td>NULL<
165d0 2f 74 64 3e 0d 0a 3c 2f 74 72 3e 0d 0a 3c 74 72  /td>..</tr>..<tr
165e0 3e 0d 0a 3c 74 64 3e 4e 55 4c 4c 3c 2f 74 64 3e  >..<td>NULL</td>
165f0 3c 74 64 3e 4e 55 4c 4c 3c 2f 74 64 3e 3c 74 64  <td>NULL</td><td
16600 3e 4e 55 4c 4c 3c 2f 74 64 3e 3c 74 64 3e 4e 55  >NULL</td><td>NU
16610 4c 4c 3c 2f 74 64 3e 3c 74 64 20 61 6c 69 67 6e  LL</td><td align
16620 3d 22 72 69 67 68 74 22 3e 35 3c 2f 74 64 3e 3c  ="right">5</td><
16630 74 64 20 61 6c 69 67 6e 3d 22 72 69 67 68 74 22  td align="right"
16640 3e 30 3c 2f 74 64 3e 3c 74 64 3e 52 6f 75 74 65  >0</td><td>Route
16650 3c 2f 74 64 3e 3c 74 64 3e 4e 55 4c 4c 3c 2f 74  </td><td>NULL</t
16660 64 3e 3c 74 64 20 61 6c 69 67 6e 3d 22 72 69 67  d><td align="rig
16670 68 74 22 3e 31 37 38 37 35 34 3c 2f 74 64 3e 3c  ht">178754</td><
16680 74 64 20 61 6c 69 67 6e 3d 22 72 69 67 68 74 22  td align="right"
16690 3e 31 38 33 38 38 32 3c 2f 74 64 3e 3c 74 64 20  >183882</td><td 
166a0 61 6c 69 67 6e 3d 22 72 69 67 68 74 22 3e 31 38  align="right">18
166b0 38 2e 32 31 36 38 33 31 3c 2f 74 64 3e 3c 74 64  8.216831</td><td
166c0 3e 42 4c 4f 42 20 73 7a 3d 34 30 30 20 47 45 4f  >BLOB sz=400 GEO
166d0 4d 45 54 52 59 3c 2f 74 64 3e 3c 74 64 3e 4e 55  METRY</td><td>NU
166e0 4c 4c 3c 2f 74 64 3e 0d 0a 3c 2f 74 72 3e 0d 0a  LL</td>..</tr>..
166f0 3c 74 72 3e 0d 0a 3c 74 64 3e 4e 55 4c 4c 3c 2f  <tr>..<td>NULL</
16700 74 64 3e 3c 74 64 3e 4e 55 4c 4c 3c 2f 74 64 3e  td><td>NULL</td>
16710 3c 74 64 3e 4e 55 4c 4c 3c 2f 74 64 3e 3c 74 64  <td>NULL</td><td
16720 3e 4e 55 4c 4c 3c 2f 74 64 3e 3c 74 64 20 61 6c  >NULL</td><td al
16730 69 67 6e 3d 22 72 69 67 68 74 22 3e 36 3c 2f 74  ign="right">6</t
16740 64 3e 3c 74 64 20 61 6c 69 67 6e 3d 22 72 69 67  d><td align="rig
16750 68 74 22 3e 30 3c 2f 74 64 3e 3c 74 64 3e 52 6f  ht">0</td><td>Ro
16760 75 74 65 3c 2f 74 64 3e 3c 74 64 3e 4e 55 4c 4c  ute</td><td>NULL
16770 3c 2f 74 64 3e 3c 74 64 20 61 6c 69 67 6e 3d 22  </td><td align="
16780 72 69 67 68 74 22 3e 31 38 33 38 38 32 3c 2f 74  right">183882</t
16790 64 3e 3c 74 64 20 61 6c 69 67 6e 3d 22 72 69 67  d><td align="rig
167a0 68 74 22 3e 31 37 38 37 33 31 3c 2f 74 64 3e 3c  ht">178731</td><
167b0 74 64 20 61 6c 69 67 6e 3d 22 72 69 67 68 74 22  td align="right"
167c0 3e 31 35 34 2e 37 35 30 38 33 39 3c 2f 74 64 3e  >154.750839</td>
167d0 3c 74 64 3e 42 4c 4f 42 20 73 7a 3d 32 34 30 20  <td>BLOB sz=240 
167e0 47 45 4f 4d 45 54 52 59 3c 2f 74 64 3e 3c 74 64  GEOMETRY</td><td
167f0 3e 4e 55 4c 4c 3c 2f 74 64 3e 0d 0a 3c 2f 74 72  >NULL</td>..</tr
16800 3e 0d 0a 3c 2f 74 61 62 6c 65 3e 0d 0a 3c 62 72  >..</table>..<br
16810 3e 3c 62 72 3e 3c 62 72 3e 0d 0a 54 68 65 20 6d  ><br><br>..The m
16820 61 70 20 62 65 6c 6f 77 20 67 72 61 70 68 69 63  ap below graphic
16830 61 6c 6c 79 20 73 68 6f 77 73 20 74 68 65 20 70  ally shows the p
16840 72 65 76 69 6f 75 73 20 3c 62 3e 54 53 50 3c 2f  revious <b>TSP</
16850 62 3e 20 71 75 65 72 69 65 73 2e 0d 0a 3c 62 72  b> queries...<br
16860 3e 3c 62 72 3e 0d 0a 3c 69 6d 67 20 73 72 63 3d  ><br>..<img src=
16870 22 68 74 74 70 73 3a 2f 2f 77 77 77 2e 67 61 69  "https://www.gai
16880 61 2d 67 69 73 2e 69 74 2f 67 61 69 61 2d 73 69  a-gis.it/gaia-si
16890 6e 73 2f 72 6f 75 74 69 6e 67 2d 66 69 67 73 2f  ns/routing-figs/
168a0 74 73 70 31 2e 6a 70 67 22 20 61 6c 74 3d 22 66  tsp1.jpg" alt="f
168b0 69 67 34 22 3e 0d 0a 3c 75 6c 3e 0d 0a 3c 6c 69  ig4">..<ul>..<li
168c0 3e 52 65 64 20 73 74 61 72 3a 20 74 68 65 20 3c  >Red star: the <
168d0 75 3e 3c 69 3e 62 61 73 65 2d 63 69 74 79 3c 2f  u><i>base-city</
168e0 69 3e 3c 2f 75 3e 20 28 66 72 6f 6d 20 77 68 65  i></u> (from whe
168f0 72 65 20 74 68 65 20 3c 75 3e 3c 69 3e 73 61 6c  re the <u><i>sal
16900 65 73 6d 61 6e 3c 2f 69 3e 3c 2f 75 3e 29 20 62  esman</i></u>) b
16910 65 67 69 6e 73 20 68 69 73 2f 68 65 72 20 74 72  egins his/her tr
16920 69 70 2e 3c 2f 6c 69 3e 0d 0a 3c 6c 69 3e 47 72  ip.</li>..<li>Gr
16930 65 65 6e 20 64 6f 74 73 3a 20 74 68 65 20 3c 75  een dots: the <u
16940 3e 3c 69 3e 63 69 74 69 65 73 3c 2f 69 3e 3c 2f  ><i>cities</i></
16950 75 3e 20 74 6f 20 62 65 20 76 69 73 69 74 65 64  u> to be visited
16960 2e 3c 2f 6c 69 3e 0d 0a 3c 6c 69 3e 59 65 6c 6c  .</li>..<li>Yell
16970 6f 77 20 6c 69 6e 65 3a 20 74 68 65 20 54 53 50  ow line: the TSP
16980 20 73 6f 6c 75 74 69 6f 6e 20 28 74 68 61 74 20   solution (that 
16990 69 73 20 61 6c 77 61 79 73 20 61 20 63 69 72 63  is always a circ
169a0 75 6c 61 72 20 70 61 74 68 29 2e 3c 2f 6c 69 3e  ular path).</li>
169b0 0d 0a 3c 2f 75 6c 3e 3c 62 72 3e 0d 0a 3c 74 61  ..</ul><br>..<ta
169c0 62 6c 65 20 62 67 63 6f 6c 6f 72 3d 22 23 66 66  ble bgcolor="#ff
169d0 62 30 36 30 22 20 63 65 6c 6c 73 70 61 63 69 6e  b060" cellspacin
169e0 67 3d 22 31 30 22 20 63 65 6c 6c 70 61 64 64 69  g="10" cellpaddi
169f0 6e 67 3d 22 36 22 3e 3c 74 72 3e 3c 74 64 3e 0d  ng="6"><tr><td>.
16a00 0a 3c 68 33 3e 57 61 72 6e 69 6e 67 3a 20 68 6f  .<h3>Warning: ho
16a10 77 20 74 6f 20 63 6f 72 72 65 63 74 6c 79 20 68  w to correctly h
16a20 61 6e 64 6c 69 6e 67 20 54 53 50 20 72 65 73 75  andling TSP resu
16a30 6c 74 73 65 74 73 20 77 69 74 68 20 73 70 61 74  ltsets with spat
16a40 69 61 6c 69 74 65 5f 67 75 69 3c 2f 68 33 3e 0d  ialite_gui</h3>.
16a50 0a 59 6f 75 20 73 68 6f 75 6c 64 20 6e 65 76 65  .You should neve
16a60 72 20 66 6f 72 67 65 74 20 6f 72 20 6f 76 65 72  r forget or over
16a70 6c 6f 6f 6b 20 74 68 61 74 20 62 6f 74 68 20 3c  look that both <
16a80 62 3e 54 53 50 20 4e 4e 3c 2f 62 3e 20 61 6e 64  b>TSP NN</b> and
16a90 20 3c 62 3e 54 53 50 20 47 41 3c 2f 62 3e 20 61   <b>TSP GA</b> a
16aa0 72 65 20 3c 75 3e 3c 69 3e 68 65 75 72 69 73 74  re <u><i>heurist
16ab0 69 63 20 61 6c 67 6f 72 69 74 68 6d 73 3c 2f 69  ic algorithms</i
16ac0 3e 3c 2f 75 3e 20 68 65 61 76 69 6c 79 20 72 65  ></u> heavily re
16ad0 6c 79 69 6e 67 20 6f 6e 20 3c 75 3e 3c 69 3e 72  lying on <u><i>r
16ae0 61 6e 64 6f 6d 3c 69 3e 3c 2f 75 3e 20 63 68 6f  andom<i></u> cho
16af0 69 63 65 73 2e 3c 62 72 3e 0d 0a 54 68 69 73 20  ices.<br>..This 
16b00 63 6f 75 6c 64 20 65 61 73 69 6c 79 20 68 61 76  could easily hav
16b10 65 20 74 68 65 20 70 72 61 63 74 69 63 61 6c 20  e the practical 
16b20 63 6f 6e 73 65 71 75 65 6e 63 65 20 74 68 61 74  consequence that
16b30 20 72 65 73 6f 6c 76 69 6e 67 20 74 77 69 63 65   resolving twice
16b40 20 28 6f 72 20 65 76 65 6e 20 6d 6f 72 65 20 74   (or even more t
16b50 69 6d 65 73 29 20 74 68 65 20 73 61 6d 65 20 69  imes) the same i
16b60 64 65 6e 74 69 63 61 6c 20 54 53 50 20 71 75 65  dentical TSP que
16b70 72 79 20 63 6f 75 6c 64 20 65 76 65 6e 74 75 61  ry could eventua
16b80 6c 6c 79 20 72 65 74 75 72 6e 20 64 69 66 66 65  lly return diffe
16b90 72 65 6e 74 20 72 65 73 75 6c 74 73 65 74 73 2e  rent resultsets.
16ba0 3c 62 72 3e 0d 0a 54 68 65 72 65 20 69 73 20 6e  <br>..There is n
16bb0 6f 74 68 69 6e 67 20 69 6e 74 72 69 6e 73 69 63  othing intrinsic
16bc0 61 6c 6c 79 20 77 72 6f 6e 67 20 69 6e 20 74 68  ally wrong in th
16bd0 69 73 2c 20 69 74 20 73 69 6d 70 6c 79 20 69 73  is, it simply is
16be0 20 61 20 64 69 72 65 63 74 20 63 6f 6e 73 65 71   a direct conseq
16bf0 75 65 6e 63 65 20 6f 66 20 75 73 69 6e 67 20 3c  uence of using <
16c00 75 3e 3c 69 3e 72 61 6e 64 6f 6d 6e 65 73 73 3c  u><i>randomness<
16c10 2f 69 3e 3c 2f 75 3e 3b 20 77 65 20 61 72 65 20  /i></u>; we are 
16c20 73 69 6d 70 6c 79 20 62 61 72 67 61 69 6e 69 6e  simply bargainin
16c30 67 20 3c 62 3e 65 78 61 63 74 6e 65 73 73 3c 2f  g <b>exactness</
16c40 62 3e 20 61 6e 64 20 3c 62 3e 72 65 70 72 6f 64  b> and <b>reprod
16c50 75 63 69 62 69 6c 69 74 79 3c 2f 62 3e 20 66 6f  ucibility</b> fo
16c60 72 20 3c 62 3e 71 75 69 63 6b 6e 65 73 73 3c 2f  r <b>quickness</
16c70 62 3e 2e 3c 62 72 3e 3c 62 72 3e 0d 0a 3c 62 3e  b>.<br><br>..<b>
16c80 73 70 61 74 69 61 6c 69 74 65 5f 67 75 69 3c 2f  spatialite_gui</
16c90 62 3e 20 6f 6e 20 69 74 73 20 6f 77 6e 20 61 64  b> on its own ad
16ca0 6f 70 74 73 20 61 20 3c 62 3e 70 61 67 65 64 20  opts a <b>paged 
16cb0 73 74 72 61 74 65 67 79 3c 2f 62 3e 20 77 68 65  strategy</b> whe
16cc0 6e 20 73 68 6f 77 69 6e 67 20 68 75 67 65 20 72  n showing huge r
16cd0 65 73 75 6c 74 73 65 74 73 3b 20 74 68 69 73 20  esultsets; this 
16ce0 72 65 71 75 69 72 65 73 20 72 65 70 65 61 74 69  requires repeati
16cf0 6e 67 20 61 67 61 69 6e 20 74 68 65 20 69 6e 69  ng again the ini
16d00 74 69 61 6c 20 53 51 4c 20 71 75 65 72 79 20 65  tial SQL query e
16d10 61 63 68 20 74 69 6d 65 20 74 68 61 74 20 61 20  ach time that a 
16d20 3c 62 3e 6e 65 77 20 70 61 67 65 20 6f 66 20 35  <b>new page of 5
16d30 30 30 20 72 6f 77 73 3c 2f 62 3e 20 68 61 73 20  00 rows</b> has 
16d40 74 6f 20 62 65 20 73 68 6f 77 6e 20 6f 6e 20 74  to be shown on t
16d50 68 65 20 63 75 72 72 65 6e 74 20 77 69 6e 64 6f  he current windo
16d60 77 20 70 61 6e 65 6c 2e 3c 62 72 3e 0d 0a 54 68  w panel.<br>..Th
16d70 65 20 74 77 6f 20 74 68 69 6e 67 73 20 64 6f 6e  e two things don
16d80 27 74 20 67 6f 20 74 6f 67 65 74 68 65 72 20 77  't go together w
16d90 65 6c 6c 3b 20 73 6f 20 64 6f 6e 27 74 20 62 65  ell; so don't be
16da0 20 73 75 72 70 72 69 73 65 64 20 77 68 65 6e 20   surprised when 
16db0 65 76 65 6e 74 75 61 6c 6c 79 20 64 69 73 63 6f  eventually disco
16dc0 76 65 72 69 6e 67 20 74 68 61 74 20 3c 62 3e 73  vering that <b>s
16dd0 70 61 74 69 61 6c 69 74 65 5f 67 75 69 3c 2f 62  patialite_gui</b
16de0 3e 20 77 69 6c 6c 20 62 65 68 61 76 65 20 62 69  > will behave bi
16df0 7a 61 72 72 65 6c 79 20 77 68 69 6c 65 20 70 72  zarrely while pr
16e00 65 73 65 6e 74 69 6e 67 20 73 6f 6d 65 20 72 65  esenting some re
16e10 73 75 6c 74 73 65 74 20 72 65 74 75 72 6e 65 64  sultset returned
16e20 20 62 79 20 61 20 54 53 50 20 71 75 65 72 79 2e   by a TSP query.
16e30 20 0d 0a 3c 76 65 72 62 61 74 69 6d 3e 0d 0a 55   ..<verbatim>..U
16e40 50 44 41 54 45 20 62 79 66 6f 6f 74 20 53 45 54  PDATE byfoot SET
16e50 20 52 65 71 75 65 73 74 20 3d 20 27 54 53 50 27   Request = 'TSP'
16e60 3b 0d 0a 0d 0a 43 52 45 41 54 45 20 54 41 42 4c  ;....CREATE TABL
16e70 45 20 6d 79 5f 74 73 70 5f 73 6f 6c 75 74 69 6f  E my_tsp_solutio
16e80 6e 20 41 53 0d 0a 53 45 4c 45 43 54 20 41 6c 67  n AS..SELECT Alg
16e90 6f 72 69 74 68 6d 2c 20 52 65 71 75 65 73 74 2c  orithm, Request,
16ea0 20 4f 70 74 69 6f 6e 73 2c 20 44 65 6c 69 6d 69   Options, Delimi
16eb0 74 65 72 2c 20 52 6f 75 74 65 49 64 2c 20 52 6f  ter, RouteId, Ro
16ec0 75 74 65 52 6f 77 2c 20 52 6f 6c 65 2c 20 4c 69  uteRow, Role, Li
16ed0 6e 6b 52 6f 77 69 64 2c 20 4e 6f 64 65 46 72 6f  nkRowid, NodeFro
16ee0 6d 2c 20 4e 6f 64 65 54 6f 2c 20 43 6f 73 74 2c  m, NodeTo, Cost,
16ef0 20 47 65 6f 6d 65 74 72 79 2c 20 4e 61 6d 65 0d   Geometry, Name.
16f00 0a 46 52 4f 4d 20 62 79 66 6f 6f 74 0d 0a 57 48  .FROM byfoot..WH
16f10 45 52 45 20 4e 6f 64 65 46 72 6f 6d 20 3d 20 31  ERE NodeFrom = 1
16f20 37 38 37 33 31 20 41 4e 44 20 4e 6f 64 65 54 6f  78731 AND NodeTo
16f30 20 3d 20 27 31 38 33 32 38 36 2c 31 38 31 39 39   = '183286,18199
16f40 39 2c 31 38 34 30 33 30 2c 31 38 33 38 38 32 2c  9,184030,183882,
16f50 31 37 38 37 35 34 27 3b 0d 0a 0d 0a 2e 2e 2e 20  178754';....... 
16f60 20 3c 6e 6f 77 20 71 75 65 72 79 20 22 6d 79 5f   <now query "my_
16f70 74 73 70 5f 73 6f 6c 75 74 69 6f 6e 22 20 75 73  tsp_solution" us
16f80 69 6e 67 20 73 70 61 74 69 61 6c 69 74 65 5f 67  ing spatialite_g
16f90 75 69 3e 20 20 2e 2e 2e 0d 0a 0d 0a 44 52 4f 50  ui>  .......DROP
16fa0 20 54 41 42 4c 45 20 6d 79 5f 74 73 70 5f 73 6f   TABLE my_tsp_so
16fb0 6c 75 74 69 6f 6e 3b 0d 0a 3c 2f 76 65 72 62 61  lution;..</verba
16fc0 74 69 6d 3e 0d 0a 3c 75 3e 48 69 6e 74 3c 2f 75  tim>..<u>Hint</u
16fd0 3e 3a 20 72 65 73 6f 6c 76 69 6e 67 20 74 68 69  >: resolving thi
16fe0 73 20 70 75 7a 7a 6c 69 6e 67 20 69 73 73 75 65  s puzzling issue
16ff0 20 69 73 20 68 6f 77 65 76 65 72 20 62 61 73 69   is however basi
17000 63 61 6c 6c 79 20 73 69 6d 70 6c 65 3a 0d 0a 3c  cally simple:..<
17010 6f 6c 3e 0d 0a 3c 6c 69 3e 79 6f 75 20 73 69 6d  ol>..<li>you sim
17020 70 6c 79 20 68 61 76 65 20 74 6f 20 74 61 6b 65  ply have to take
17030 20 61 20 3c 62 3e 73 74 61 74 69 63 20 73 6e 61   a <b>static sna
17040 70 73 68 6f 74 3c 2f 62 3e 20 6f 66 20 79 6f 75  pshot</b> of you
17050 72 20 54 53 50 20 72 65 73 75 6c 74 73 65 74 20  r TSP resultset 
17060 62 79 20 75 73 69 6e 67 20 74 68 65 20 3c 62 3e  by using the <b>
17070 43 52 45 41 54 45 20 54 41 42 4c 45 20 3c 69 3e  CREATE TABLE <i>
17080 6e 61 6d 65 3c 2f 69 3e 20 41 53 20 3c 69 3e 54  name</i> AS <i>T
17090 53 50 20 71 75 65 72 79 3c 69 3e 3c 2f 62 3e 2e  SP query<i></b>.
170a0 3c 2f 6c 69 3e 0d 0a 3c 6c 69 3e 74 68 65 6e 20  </li>..<li>then 
170b0 79 6f 75 20 63 61 6e 20 66 72 65 65 6c 79 20 65  you can freely e
170c0 78 61 6d 69 6e 65 20 74 68 65 20 61 62 6f 76 65  xamine the above
170d0 20 73 6e 61 70 73 68 6f 74 2e 3c 2f 6c 69 3e 0d   snapshot.</li>.
170e0 0a 3c 6c 69 3e 61 6e 64 20 66 69 6e 61 6c 6c 79  .<li>and finally
170f0 20 79 6f 75 20 63 61 6e 20 64 75 6c 79 20 3c 62   you can duly <b
17100 3e 44 52 4f 50 3c 2f 62 3e 20 74 68 65 20 73 6e  >DROP</b> the sn
17110 61 70 73 68 6f 74 20 6f 6e 63 65 20 69 74 27 73  apshot once it's
17120 20 6e 6f 20 6c 6f 6e 67 65 72 20 75 73 65 66 75   no longer usefu
17130 6c 2e 3c 2f 6c 69 3e 0d 0a 3c 2f 6f 6c 3e 0d 0a  l.</li>..</ol>..
17140 3c 2f 74 64 3e 3c 2f 74 72 3e 0d 0a 3c 2f 74 61  </td></tr>..</ta
17150 62 6c 65 3e 0d 0a 3c 62 72 3e 0d 0a 3c 74 61 62  ble>..<br>..<tab
17160 6c 65 20 62 67 63 6f 6c 6f 72 3d 22 23 63 30 66  le bgcolor="#c0f
17170 66 63 30 22 20 63 65 6c 6c 73 70 61 63 69 6e 67  fc0" cellspacing
17180 3d 22 31 30 22 20 63 65 6c 6c 70 61 64 64 69 6e  ="10" cellpaddin
17190 67 3d 22 36 22 3e 3c 74 72 3e 3c 74 64 3e 0d 0a  g="6"><tr><td>..
171a0 3c 68 33 3e 4d 6f 72 65 20 61 62 6f 75 74 20 4c  <h3>More about L
171b0 69 6e 65 61 72 20 52 65 66 65 72 65 6e 63 69 6e  inear Referencin
171c0 67 20 61 6e 64 20 56 69 72 74 75 61 6c 52 6f 75  g and VirtualRou
171d0 74 69 6e 67 20 4c 69 6e 65 73 74 72 69 6e 67 73  ting Linestrings
171e0 3c 2f 68 33 3e 20 0d 0a 59 6f 75 20 68 61 76 65  </h3> ..You have
171f0 20 61 6c 72 65 61 64 79 20 73 65 65 6e 20 69 6e   already seen in
17200 20 61 20 70 72 65 76 69 6f 75 73 20 65 78 61 6d   a previous exam
17210 70 6c 65 20 74 68 61 74 20 61 6c 6c 20 4c 49 4e  ple that all LIN
17220 45 53 54 52 49 4e 47 73 20 63 72 65 61 74 65 64  ESTRINGs created
17230 20 62 79 20 56 69 72 74 75 61 6c 52 6f 75 74 69   by VirtualRouti
17240 6e 67 20 73 75 70 70 6f 72 74 20 74 68 65 20 3c  ng support the <
17250 62 3e 4d 3c 2f 62 3e 20 28 3c 62 3e 3c 69 3e 6d  b>M</b> (<b><i>m
17260 65 61 73 75 72 65 3c 2f 69 3e 3c 2f 62 3e 29 20  easure</i></b>) 
17270 63 6f 6f 72 64 69 6e 61 74 65 20 69 6e 74 65 6e  coordinate inten
17280 64 65 64 20 61 73 20 61 20 3c 62 3e 70 72 6f 67  ded as a <b>prog
17290 72 65 73 73 69 76 65 20 63 6f 73 74 3c 2f 62 3e  ressive cost</b>
172a0 20 66 6f 72 20 65 61 63 68 20 76 65 72 74 65 78   for each vertex
172b0 2e 20 41 6e 64 20 79 6f 75 20 61 6c 72 65 61 64  . And you alread
172c0 79 20 6b 6e 6f 77 20 74 68 65 20 74 68 65 79 20  y know the they 
172d0 63 61 6e 20 73 75 70 70 6f 72 74 20 3c 62 3e 3c  can support <b><
172e0 69 3e 6c 69 6e 65 61 72 20 72 65 66 65 72 65 6e  i>linear referen
172f0 63 69 6e 67 3c 2f 69 3e 3c 2f 62 3e 20 28 3c 62  cing</i></b> (<b
17300 3e 4c 52 3c 2f 62 3e 29 20 53 51 4c 20 66 75 6e  >LR</b>) SQL fun
17310 63 74 69 6f 6e 73 2e 3c 62 72 3e 0d 0a 4c 65 74  ctions.<br>..Let
17320 27 73 20 6e 6f 77 20 67 6f 20 69 6e 20 66 75 72  's now go in fur
17330 74 68 65 72 20 64 65 70 74 68 2e 0d 0a 3c 68 33  ther depth...<h3
17340 3e 54 72 61 6a 65 63 74 6f 72 79 20 6f 62 6a 65  >Trajectory obje
17350 63 74 73 3c 2f 68 33 3e 0d 0a 41 20 3c 62 3e 54  cts</h3>..A <b>T
17360 72 61 6a 65 63 74 6f 72 79 3c 2f 62 3e 20 69 73  rajectory</b> is
17370 20 61 6e 79 20 4c 69 6e 65 73 74 72 69 6e 67 20   any Linestring 
17380 73 75 70 70 6f 72 74 69 6e 67 20 3c 62 3e 4d 20  supporting <b>M 
17390 63 6f 6f 72 64 69 6e 61 74 65 73 3c 2f 62 3e 20  coordinates</b> 
173a0 77 69 74 68 20 61 20 63 6f 6e 74 69 6e 75 6f 75  with a continuou
173b0 73 6c 79 20 69 6e 63 72 65 61 73 69 6e 67 20 74  sly increasing t
173c0 72 65 6e 64 2e 3c 62 72 3e 0d 0a 49 6e 20 73 69  rend.<br>..In si
173d0 6d 70 6c 65 72 20 77 6f 72 64 73 2c 20 74 68 65  mpler words, the
173e0 20 3c 62 3e 4d 2d 76 61 6c 75 65 3c 2f 62 3e 20   <b>M-value</b> 
173f0 6f 66 20 65 61 63 68 20 76 65 72 74 65 78 20 28  of each vertex (
17400 65 78 63 65 70 74 20 74 68 65 20 6c 61 73 74 20  except the last 
17410 6f 6e 65 29 20 6d 75 73 74 20 62 65 20 3c 62 3e  one) must be <b>
17420 6c 65 73 73 65 72 3c 2f 62 3e 20 74 68 61 6e 20  lesser</b> than 
17430 74 68 65 20 4d 2d 56 61 6c 75 65 20 6f 66 20 74  the M-Value of t
17440 68 65 20 6e 65 78 74 20 76 65 72 74 65 78 2e 0d  he next vertex..
17450 0a 3c 76 65 72 62 61 74 69 6d 3e 0d 0a 53 45 4c  .<verbatim>..SEL
17460 45 43 54 20 2a 20 46 52 4f 4d 20 6d 79 5f 74 73  ECT * FROM my_ts
17470 70 5f 73 6f 6c 75 74 69 6f 6e 20 57 48 45 52 45  p_solution WHERE
17480 20 53 54 5f 49 73 56 61 6c 69 64 54 72 61 6a 65   ST_IsValidTraje
17490 63 74 6f 72 79 28 67 65 6f 6d 65 74 72 79 29 20  ctory(geometry) 
174a0 3d 20 31 3b 0d 0a 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d  = 1;..----------
174b0 2d 2d 2d 2d 2d 2d 2d 2d 2d 0d 0a 31 0d 0a 3c 2f  ---------..1..</
174c0 76 65 72 62 61 74 69 6d 3e 0d 0a 41 73 20 79 6f  verbatim>..As yo
174d0 75 20 63 61 6e 20 65 61 73 69 6c 79 20 63 68 65  u can easily che
174e0 63 6b 20 62 79 20 63 61 6c 6c 69 6e 67 20 3c 62  ck by calling <b
174f0 3e 53 54 5f 49 73 56 61 6c 69 64 54 72 61 6a 65  >ST_IsValidTraje
17500 63 74 6f 72 79 28 29 3c 2f 62 3e 20 65 76 65 72  ctory()</b> ever
17510 79 20 4c 69 6e 65 73 74 72 69 6e 67 20 63 72 65  y Linestring cre
17520 61 74 65 64 20 62 79 20 56 69 72 74 75 61 6c 52  ated by VirtualR
17530 6f 75 74 69 6e 67 20 69 73 20 61 20 3c 62 3e 76  outing is a <b>v
17540 61 6c 69 64 20 54 72 61 6a 65 63 74 6f 72 79 3c  alid Trajectory<
17550 2f 62 3e 2e 0d 0a 3c 76 65 72 62 61 74 69 6d 3e  /b>...<verbatim>
17560 0d 0a 53 45 4c 45 43 54 20 53 54 5f 54 72 61 6a  ..SELECT ST_Traj
17570 65 63 74 6f 72 79 49 6e 74 65 72 70 6f 6c 61 74  ectoryInterpolat
17580 65 50 6f 69 6e 74 28 47 65 6f 6d 65 74 72 79 2c  ePoint(Geometry,
17590 20 31 30 30 2e 30 29 0d 0a 46 52 4f 4d 20 6d 79   100.0)..FROM my
175a0 5f 74 73 70 5f 73 6f 6c 75 74 69 6f 6e 0d 0a 57  _tsp_solution..W
175b0 48 45 52 45 20 52 6f 75 74 65 49 64 20 3d 20 30  HERE RouteId = 0
175c0 3b 0d 0a 3c 2f 76 65 72 62 61 74 69 6d 3e 0d 0a  ;..</verbatim>..
175d0 53 6f 20 79 6f 75 20 6a 75 73 74 20 68 61 76 65  So you just have
175e0 20 74 6f 20 63 61 6c 6c 20 3c 62 3e 53 54 5f 54   to call <b>ST_T
175f0 72 61 6a 65 63 74 6f 72 79 49 6e 74 65 72 70 6f  rajectoryInterpo
17600 6c 61 74 65 50 6f 69 6e 74 28 29 3c 2f 62 3e 20  latePoint()</b> 
17610 69 6e 20 6f 72 64 65 72 20 74 6f 20 63 72 65 61  in order to crea
17620 74 65 20 61 20 50 4f 49 4e 54 20 70 72 65 63 69  te a POINT preci
17630 73 65 6c 79 20 6c 6f 63 61 74 65 64 20 6f 6e 20  sely located on 
17640 74 68 65 20 4c 69 6e 65 73 74 72 69 6e 67 20 61  the Linestring a
17650 74 20 74 68 65 20 67 69 76 65 6e 20 3c 62 3e 63  t the given <b>c
17660 6f 73 74 3c 2f 62 3e 2e 0d 0a 3c 62 72 3e 3c 62  ost</b>...<br><b
17670 72 3e 3c 68 72 3e 3c 62 72 3e 3c 62 72 3e 0d 0a  r><hr><br><br>..
17680 54 68 65 20 73 69 64 65 20 6d 61 70 20 67 72 61  The side map gra
17690 70 68 69 63 61 6c 6c 79 20 73 68 6f 77 73 20 74  phically shows t
176a0 68 65 20 65 73 74 69 6d 61 74 65 64 20 70 6f 73  he estimated pos
176b0 69 74 69 6f 6e 73 20 65 76 65 72 79 20 31 30 30  itions every 100
176c0 6d 20 61 73 73 75 6d 69 6e 67 20 74 68 65 20 73  m assuming the s
176d0 61 6d 65 20 70 61 74 68 20 72 65 74 75 72 6e 65  ame path returne
176e0 64 20 62 79 20 74 68 65 20 6c 61 74 65 73 74 20  d by the latest 
176f0 54 53 50 20 71 75 65 72 79 2e 0d 0a 3c 2f 74 64  TSP query...</td
17700 3e 3c 74 64 3e 20 20 20 20 20 20 20 20 20 20 20  ><td>           
17710 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
17720 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
17730 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
17740 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
17750 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
17760 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
17770 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
17780 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
17790 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
177a0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
177b0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
177c0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
177d0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
177e0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
177f0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
17800 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
17810 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
17820 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
17830 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
17840 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
17850 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
17860 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
17870 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
17880 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
17890 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
178a0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
178b0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
178c0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
178d0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
178e0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
178f0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
17900 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
17910 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
17920 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
17930 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
17940 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
17950 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
17960 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
17970 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
17980 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
17990 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
179a0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
179b0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
179c0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
179d0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
179e0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
179f0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
17a00 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
17a10 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
17a20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
17a30 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
17a40 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
17a50 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
17a60 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
17a70 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
17a80 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
17a90 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
17aa0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
17ab0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
17ac0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
17ad0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
17ae0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
17af0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
17b00 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
17b10 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
17b20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
17b30 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
17b40 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
17b50 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
17b60 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
17b70 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
17b80 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
17b90 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
17ba0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
17bb0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
17bc0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
17bd0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
17be0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
17bf0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
17c00 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
17c10 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
17c20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
17c30 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
17c40 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
17c50 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
17c60 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
17c70 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
17c80 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
17c90 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
17ca0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
17cb0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
17cc0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
17cd0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
17ce0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
17cf0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
17d00 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
17d10 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
17d20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
17d30 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
17d40 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
17d50 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
17d60 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
17d70 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
17d80 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
17d90 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
17da0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
17db0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
17dc0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
17dd0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
17de0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
17df0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
17e00 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
17e10 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
17e20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
17e30 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
17e40 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
17e50 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
17e60 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
17e70 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
17e80 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
17e90 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
17ea0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
17eb0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
17ec0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
17ed0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
17ee0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
17ef0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
17f00 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
17f10 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
17f20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
17f30 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
17f40 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
17f50 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
17f60 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
17f70 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
17f80 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
17f90 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
17fa0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
17fb0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
17fc0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
17fd0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
17fe0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
17ff0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
18000 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
18010 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
18020 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
18030 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
18040 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
18050 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
18060 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
18070 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
18080 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
18090 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
180a0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
180b0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
180c0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
180d0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
180e0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
180f0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
18100 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
18110 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
18120 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
18130 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
18140 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
18150 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
18160 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
18170 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
18180 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
18190 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
181a0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
181b0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
181c0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
181d0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
181e0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
181f0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
18200 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
18210 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
18220 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
18230 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
18240 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
18250 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
18260 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
18270 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
18280 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
18290 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
182a0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
182b0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
182c0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
182d0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
182e0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
182f0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
18300 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
18310 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
18320 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
18330 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
18340 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
18350 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
18360 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
18370 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
18380 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
18390 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
183a0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
183b0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
183c0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
183d0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
183e0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
183f0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
18400 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
18410 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
18420 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
18430 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
18440 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
18450 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
18460 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
18470 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
18480 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
18490 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
184a0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
184b0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
184c0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
184d0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
184e0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
184f0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
18500 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
18510 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
18520 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
18530 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
18540 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
18550 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
18560 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
18570 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
18580 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
18590 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
185a0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
185b0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
185c0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
185d0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
185e0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
185f0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
18600 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
18610 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
18620 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
18630 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
18640 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
18650 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
18660 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
18670 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
18680 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
18690 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
186a0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
186b0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
186c0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
186d0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
186e0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
186f0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
18700 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
18710 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
18720 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
18730 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
18740 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
18750 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
18760 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
18770 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
18780 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
18790 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
187a0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
187b0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
187c0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
187d0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
187e0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
187f0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
18800 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
18810 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
18820 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
18830 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
18840 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
18850 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
18860 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
18870 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
18880 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
18890 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
188a0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
188b0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
188c0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
188d0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
188e0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
188f0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
18900 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
18910 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
18920 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
18930 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
18940 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
18950 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
18960 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
18970 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
18980 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
18990 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
189a0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
189b0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
189c0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
189d0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
189e0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
189f0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
18a00 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
18a10 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
18a20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
18a30 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
18a40 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
18a50 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
18a60 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
18a70 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
18a80 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
18a90 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
18aa0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
18ab0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
18ac0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
18ad0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
18ae0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
18af0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
18b00 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
18b10 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
18b20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
18b30 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
18b40 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
18b50 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
18b60 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
18b70 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
18b80 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
18b90 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
18ba0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
18bb0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
18bc0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
18bd0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
18be0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
18bf0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
18c00 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
18c10 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
18c20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
18c30 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
18c40 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
18c50 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
18c60 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
18c70 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
18c80 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
18c90 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
18ca0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
18cb0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
18cc0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
18cd0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
18ce0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
18cf0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
18d00 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
18d10 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
18d20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
18d30 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
18d40 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
18d50 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
18d60 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
18d70 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
18d80 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
18d90 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
18da0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
18db0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
18dc0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
18dd0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
18de0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
18df0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
18e00 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
18e10 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
18e20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
18e30 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
18e40 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
18e50 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
18e60 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
18e70 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
18e80 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
18e90 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
18ea0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
18eb0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
18ec0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
18ed0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
18ee0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
18ef0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
18f00 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
18f10 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
18f20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
18f30 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
18f40 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
18f50 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
18f60 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
18f70 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
18f80 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
18f90 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
18fa0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
18fb0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
18fc0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
18fd0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
18fe0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
18ff0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
19000 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
19010 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
19020 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
19030 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
19040 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
19050 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
19060 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
19070 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
19080 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
19090 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
190a0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
190b0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
190c0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
190d0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
190e0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
190f0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
19100 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
19110 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
19120 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
19130 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
19140 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
19150 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
19160 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
19170 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
19180 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
19190 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
191a0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
191b0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
191c0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
191d0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
191e0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
191f0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
19200 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
19210 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
19220 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
19230 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
19240 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
19250 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
19260 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
19270 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
19280 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
19290 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
192a0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
192b0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
192c0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
192d0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
192e0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
192f0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
19300 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
19310 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
19320 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
19330 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
19340 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
19350 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
19360 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
19370 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
19380 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
19390 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
193a0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
193b0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
193c0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
193d0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
193e0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
193f0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
19400 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
19410 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
19420 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
19430 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
19440 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
19450 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
19460 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
19470 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
19480 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
19490 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
194a0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
194b0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
194c0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
194d0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
194e0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
194f0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
19500 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
19510 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
19520 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
19530 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
19540 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
19550 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
19560 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
19570 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
19580 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
19590 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
195a0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
195b0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
195c0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
195d0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
195e0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
195f0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
19600 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
19610 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
19620 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
19630 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
19640 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
19650 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
19660 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
19670 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
19680 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
19690 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
196a0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
196b0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
196c0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
196d0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
196e0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
196f0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
19700 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
19710 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
19720 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
19730 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
19740 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
19750 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
19760 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
19770 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
19780 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
19790 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
197a0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
197b0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
197c0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
197d0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
197e0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
197f0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
19800 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
19810 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
19820 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
19830 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
19840 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
19850 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
19860 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
19870 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
19880 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
19890 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
198a0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
198b0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
198c0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
198d0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
198e0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
198f0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
19900 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
19910 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
19920 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
19930 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
19940 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
19950 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
19960 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
19970 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
19980 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
19990 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
199a0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
199b0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
199c0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
199d0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
199e0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
199f0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
19a00 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
19a10 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
19a20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
19a30 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
19a40 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
19a50 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
19a60 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
19a70 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
19a80 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
19a90 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
19aa0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
19ab0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
19ac0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
19ad0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
19ae0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
19af0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
19b00 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
19b10 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
19b20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
19b30 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
19b40 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
19b50 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
19b60 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
19b70 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
19b80 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
19b90 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
19ba0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
19bb0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
19bc0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
19bd0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
19be0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
19bf0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
19c00 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
19c10 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
19c20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
19c30 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
19c40 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
19c50 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
19c60 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
19c70 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
19c80 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
19c90 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
19ca0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
19cb0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
19cc0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
19cd0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
19ce0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
19cf0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
19d00 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
19d10 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
19d20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
19d30 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
19d40 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
19d50 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
19d60 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
19d70 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
19d80 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
19d90 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
19da0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
19db0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
19dc0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
19dd0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
19de0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
19df0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
19e00 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
19e10 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
19e20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
19e30 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
19e40 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
19e50 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
19e60 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
19e70 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
19e80 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
19e90 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
19ea0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
19eb0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
19ec0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
19ed0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
19ee0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
19ef0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
19f00 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
19f10 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
19f20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
19f30 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
19f40 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
19f50 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
19f60 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
19f70 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
19f80 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
19f90 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
19fa0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
19fb0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
19fc0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
19fd0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
19fe0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
19ff0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1a000 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1a010 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1a020 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1a030 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1a040 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1a050 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1a060 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1a070 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1a080 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1a090 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1a0a0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1a0b0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1a0c0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1a0d0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1a0e0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1a0f0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1a100 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1a110 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1a120 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1a130 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1a140 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1a150 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1a160 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1a170 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1a180 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1a190 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1a1a0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1a1b0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1a1c0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1a1d0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1a1e0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1a1f0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1a200 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1a210 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1a220 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1a230 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1a240 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1a250 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1a260 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1a270 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1a280 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1a290 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1a2a0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1a2b0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1a2c0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1a2d0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1a2e0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1a2f0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1a300 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1a310 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1a320 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1a330 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1a340 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1a350 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1a360 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1a370 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1a380 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1a390 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1a3a0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1a3b0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1a3c0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1a3d0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1a3e0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1a3f0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1a400 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1a410 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1a420 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1a430 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1a440 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1a450 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1a460 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1a470 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1a480 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1a490 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1a4a0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1a4b0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1a4c0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1a4d0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1a4e0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1a4f0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1a500 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1a510 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1a520 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1a530 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1a540 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1a550 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1a560 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1a570 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1a580 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1a590 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1a5a0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1a5b0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1a5c0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1a5d0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1a5e0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1a5f0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1a600 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1a610 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1a620 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1a630 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1a640 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1a650 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1a660 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1a670 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1a680 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1a690 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1a6a0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1a6b0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1a6c0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1a6d0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1a6e0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1a6f0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1a700 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1a710 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1a720 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1a730 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1a740 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1a750 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1a760 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1a770 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1a780 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1a790 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1a7a0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1a7b0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1a7c0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1a7d0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1a7e0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1a7f0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1a800 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1a810 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1a820 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1a830 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1a840 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1a850 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1a860 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1a870 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1a880 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1a890 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1a8a0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1a8b0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1a8c0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1a8d0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1a8e0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1a8f0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1a900 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1a910 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1a920 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1a930 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1a940 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1a950 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1a960 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1a970 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1a980 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1a990 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1a9a0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1a9b0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1a9c0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1a9d0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1a9e0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1a9f0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1aa00 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1aa10 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1aa20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1aa30 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1aa40 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1aa50 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1aa60 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1aa70 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1aa80 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1aa90 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1aaa0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1aab0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1aac0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1aad0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1aae0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1aaf0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1ab00 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1ab10 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1ab20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1ab30 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1ab40 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1ab50 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1ab60 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1ab70 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1ab80 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1ab90 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1aba0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1abb0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1abc0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1abd0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1abe0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1abf0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1ac00 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1ac10 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1ac20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1ac30 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1ac40 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1ac50 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1ac60 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1ac70 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1ac80 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1ac90 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1aca0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1acb0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1acc0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1acd0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1ace0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1acf0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1ad00 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1ad10 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1ad20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1ad30 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1ad40 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1ad50 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1ad60 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1ad70 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1ad80 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1ad90 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1ada0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1adb0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1adc0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1add0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1ade0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1adf0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1ae00 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1ae10 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1ae20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1ae30 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1ae40 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1ae50 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1ae60 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1ae70 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1ae80 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1ae90 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1aea0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1aeb0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1aec0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1aed0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1aee0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1aef0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1af00 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1af10 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1af20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1af30 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1af40 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1af50 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1af60 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1af70 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1af80 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1af90 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1afa0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1afb0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1afc0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1afd0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1afe0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1aff0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1b000 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1b010 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1b020 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1b030 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1b040 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1b050 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1b060 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1b070 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1b080 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1b090 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1b0a0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1b0b0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1b0c0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1b0d0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1b0e0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1b0f0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1b100 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1b110 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1b120 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1b130 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1b140 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1b150 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1b160 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1b170 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1b180 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1b190 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1b1a0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1b1b0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1b1c0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1b1d0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1b1e0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1b1f0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1b200 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1b210 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1b220 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1b230 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1b240 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1b250 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1b260 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1b270 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1b280 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1b290 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1b2a0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1b2b0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1b2c0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1b2d0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1b2e0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1b2f0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1b300 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1b310 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1b320 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1b330 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1b340 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1b350 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1b360 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1b370 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1b380 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1b390 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1b3a0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1b3b0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1b3c0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1b3d0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1b3e0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1b3f0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1b400 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1b410 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1b420 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1b430 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1b440 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1b450 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1b460 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1b470 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1b480 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1b490 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1b4a0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1b4b0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1b4c0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1b4d0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1b4e0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1b4f0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1b500 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1b510 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1b520 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1b530 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1b540 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1b550 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1b560 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1b570 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1b580 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1b590 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1b5a0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1b5b0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1b5c0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1b5d0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1b5e0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1b5f0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1b600 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1b610 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1b620 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1b630 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1b640 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1b650 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1b660 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1b670 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1b680 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1b690 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1b6a0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1b6b0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1b6c0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1b6d0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1b6e0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1b6f0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1b700 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1b710 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1b720 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1b730 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1b740 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1b750 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1b760 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1b770 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1b780 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1b790 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1b7a0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1b7b0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1b7c0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1b7d0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1b7e0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1b7f0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1b800 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1b810 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1b820 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1b830 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1b840 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1b850 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1b860 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1b870 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1b880 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1b890 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1b8a0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1b8b0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1b8c0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1b8d0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1b8e0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1b8f0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1b900 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1b910 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1b920 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1b930 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1b940 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1b950 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1b960 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1b970 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1b980 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1b990 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1b9a0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1b9b0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1b9c0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1b9d0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1b9e0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1b9f0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1ba00 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1ba10 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1ba20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1ba30 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1ba40 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1ba50 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1ba60 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1ba70 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1ba80 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1ba90 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1baa0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1bab0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1bac0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1bad0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1bae0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1baf0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1bb00 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1bb10 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1bb20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1bb30 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1bb40 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1bb50 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1bb60 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1bb70 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1bb80 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1bb90 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1bba0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1bbb0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1bbc0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1bbd0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1bbe0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1bbf0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1bc00 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1bc10 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1bc20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1bc30 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1bc40 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1bc50 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1bc60 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1bc70 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1bc80 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1bc90 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1bca0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1bcb0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1bcc0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1bcd0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1bce0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1bcf0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1bd00 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1bd10 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1bd20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1bd30 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1bd40 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1bd50 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1bd60 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1bd70 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1bd80 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1bd90 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1bda0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1bdb0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1bdc0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1bdd0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1bde0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1bdf0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1be00 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1be10 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1be20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1be30 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1be40 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1be50 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1be60 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1be70 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1be80 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1be90 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1bea0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1beb0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1bec0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1bed0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1bee0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1bef0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1bf00 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1bf10 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1bf20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1bf30 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1bf40 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1bf50 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1bf60 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1bf70 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1bf80 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1bf90 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1bfa0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1bfb0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1bfc0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1bfd0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1bfe0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1bff0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1c000 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1c010 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1c020 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1c030 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1c040 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1c050 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1c060 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1c070 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1c080 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1c090 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1c0a0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1c0b0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1c0c0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1c0d0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1c0e0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1c0f0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1c100 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1c110 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1c120 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1c130 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1c140 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1c150 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1c160 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1c170 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1c180 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1c190 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1c1a0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1c1b0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1c1c0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1c1d0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1c1e0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1c1f0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1c200 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1c210 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1c220 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1c230 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1c240 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1c250 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1c260 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1c270 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1c280 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1c290 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1c2a0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1c2b0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1c2c0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1c2d0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1c2e0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1c2f0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1c300 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1c310 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1c320 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1c330 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1c340 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1c350 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1c360 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1c370 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1c380 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1c390 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1c3a0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1c3b0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1c3c0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1c3d0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1c3e0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1c3f0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1c400 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1c410 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1c420 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1c430 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1c440 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1c450 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1c460 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1c470 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1c480 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1c490 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1c4a0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1c4b0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1c4c0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1c4d0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1c4e0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1c4f0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1c500 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1c510 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1c520 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1c530 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1c540 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1c550 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1c560 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1c570 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1c580 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1c590 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1c5a0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1c5b0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1c5c0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1c5d0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1c5e0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1c5f0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1c600 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1c610 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1c620 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1c630 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1c640 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1c650 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1c660 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1c670 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1c680 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1c690 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1c6a0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1c6b0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1c6c0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1c6d0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1c6e0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1c6f0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1c700 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1c710 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1c720 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1c730 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1c740 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1c750 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1c760 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1c770 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1c780 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1c790 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1c7a0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1c7b0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1c7c0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1c7d0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1c7e0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1c7f0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1c800 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1c810 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1c820 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1c830 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1c840 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1c850 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1c860 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1c870 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1c880 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1c890 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1c8a0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1c8b0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1c8c0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1c8d0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1c8e0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1c8f0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1c900 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1c910 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1c920 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1c930 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1c940 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1c950 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1c960 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1c970 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1c980 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1c990 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1c9a0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1c9b0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1c9c0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1c9d0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1c9e0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1c9f0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1ca00 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1ca10 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1ca20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1ca30 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1ca40 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1ca50 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1ca60 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1ca70 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1ca80 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1ca90 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1caa0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1cab0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1cac0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1cad0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1cae0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1caf0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1cb00 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1cb10 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1cb20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1cb30 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1cb40 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1cb50 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1cb60 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1cb70 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1cb80 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1cb90 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1cba0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1cbb0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1cbc0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1cbd0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1cbe0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1cbf0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1cc00 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1cc10 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1cc20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1cc30 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1cc40 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1cc50 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1cc60 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1cc70 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1cc80 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1cc90 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1cca0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1ccb0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1ccc0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1ccd0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1cce0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1ccf0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1cd00 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1cd10 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1cd20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1cd30 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1cd40 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1cd50 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1cd60 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1cd70 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1cd80 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1cd90 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1cda0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1cdb0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1cdc0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1cdd0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1cde0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1cdf0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1ce00 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1ce10 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1ce20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1ce30 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1ce40 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1ce50 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1ce60 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1ce70 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1ce80 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1ce90 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1cea0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1ceb0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1cec0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1ced0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1cee0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1cef0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1cf00 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1cf10 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1cf20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1cf30 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1cf40 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1cf50 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1cf60 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1cf70 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1cf80 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1cf90 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1cfa0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1cfb0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1cfc0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1cfd0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1cfe0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1cff0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1d000 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1d010 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1d020 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1d030 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1d040 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1d050 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1d060 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1d070 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1d080 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1d090 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1d0a0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1d0b0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1d0c0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1d0d0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1d0e0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1d0f0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1d100 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1d110 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1d120 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1d130 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1d140 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1d150 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1d160 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1d170 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1d180 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1d190 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1d1a0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1d1b0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1d1c0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1d1d0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1d1e0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1d1f0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1d200 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1d210 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1d220 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1d230 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1d240 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1d250 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1d260 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1d270 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1d280 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1d290 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1d2a0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1d2b0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1d2c0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1d2d0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1d2e0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1d2f0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1d300 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1d310 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1d320 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1d330 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1d340 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1d350 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1d360 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1d370 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1d380 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1d390 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1d3a0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1d3b0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1d3c0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1d3d0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1d3e0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1d3f0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1d400 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1d410 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1d420 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1d430 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1d440 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1d450 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1d460 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1d470 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1d480 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1d490 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1d4a0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1d4b0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1d4c0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1d4d0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1d4e0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1d4f0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1d500 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1d510 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1d520 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1d530 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1d540 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1d550 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1d560 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1d570 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1d580 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1d590 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1d5a0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1d5b0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1d5c0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1d5d0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1d5e0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1d5f0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1d600 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1d610 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1d620 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1d630 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1d640 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1d650 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1d660 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1d670 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1d680 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1d690 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1d6a0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1d6b0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1d6c0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1d6d0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1d6e0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1d6f0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1d700 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1d710 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1d720 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1d730 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1d740 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1d750 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1d760 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1d770 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1d780 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1d790 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1d7a0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1d7b0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1d7c0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1d7d0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1d7e0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1d7f0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1d800 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1d810 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1d820 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1d830 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1d840 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1d850 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1d860 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1d870 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1d880 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1d890 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1d8a0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1d8b0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1d8c0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1d8d0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1d8e0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1d8f0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1d900 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1d910 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1d920 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1d930 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1d940 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1d950 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1d960 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1d970 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1d980 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1d990 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1d9a0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1d9b0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1d9c0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1d9d0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1d9e0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1d9f0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1da00 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1da10 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1da20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1da30 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1da40 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1da50 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1da60 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1da70 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1da80 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1da90 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1daa0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1dab0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1dac0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1dad0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1dae0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1daf0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1db00 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1db10 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1db20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1db30 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1db40 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1db50 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1db60 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1db70 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1db80 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1db90 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1dba0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1dbb0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1dbc0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1dbd0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1dbe0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1dbf0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1dc00 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1dc10 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1dc20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1dc30 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1dc40 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1dc50 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1dc60 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1dc70 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1dc80 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1dc90 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1dca0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1dcb0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1dcc0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1dcd0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1dce0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1dcf0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1dd00 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1dd10 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1dd20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1dd30 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1dd40 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1dd50 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1dd60 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1dd70 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1dd80 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1dd90 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1dda0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1ddb0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1ddc0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1ddd0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1dde0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1ddf0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1de00 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1de10 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1de20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1de30 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1de40 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1de50 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1de60 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1de70 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1de80 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1de90 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1dea0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1deb0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1dec0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1ded0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1dee0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1def0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1df00 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1df10 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1df20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1df30 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1df40 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1df50 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1df60 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1df70 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1df80 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1df90 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1dfa0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1dfb0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1dfc0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1dfd0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1dfe0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1dff0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1e000 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1e010 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1e020 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1e030 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1e040 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1e050 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1e060 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1e070 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1e080 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1e090 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1e0a0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1e0b0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1e0c0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1e0d0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1e0e0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1e0f0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1e100 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1e110 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1e120 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1e130 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1e140 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1e150 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1e160 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1e170 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1e180 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1e190 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1e1a0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1e1b0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1e1c0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1e1d0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1e1e0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1e1f0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1e200 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1e210 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1e220 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1e230 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1e240 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1e250 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1e260 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1e270 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1e280 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1e290 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1e2a0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1e2b0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1e2c0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1e2d0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1e2e0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1e2f0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1e300 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1e310 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1e320 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1e330 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1e340 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1e350 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1e360 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1e370 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1e380 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1e390 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1e3a0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1e3b0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1e3c0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1e3d0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1e3e0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1e3f0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1e400 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1e410 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1e420 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1e430 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1e440 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1e450 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1e460 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1e470 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1e480 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1e490 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1e4a0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1e4b0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1e4c0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1e4d0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1e4e0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1e4f0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1e500 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1e510 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1e520 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1e530 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1e540 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1e550 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1e560 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1e570 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1e580 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1e590 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1e5a0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1e5b0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1e5c0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1e5d0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1e5e0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1e5f0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1e600 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1e610 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1e620 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1e630 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1e640 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1e650 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1e660 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1e670 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1e680 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1e690 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1e6a0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1e6b0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1e6c0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1e6d0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1e6e0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1e6f0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1e700 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1e710 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1e720 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1e730 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1e740 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1e750 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1e760 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1e770 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1e780 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1e790 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1e7a0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1e7b0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1e7c0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1e7d0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1e7e0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1e7f0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1e800 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1e810 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1e820 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1e830 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1e840 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1e850 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1e860 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1e870 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1e880 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1e890 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1e8a0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1e8b0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1e8c0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1e8d0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1e8e0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1e8f0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1e900 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1e910 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1e920 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1e930 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1e940 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1e950 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1e960 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1e970 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1e980 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1e990 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1e9a0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1e9b0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1e9c0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1e9d0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1e9e0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1e9f0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1ea00 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1ea10 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1ea20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1ea30 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1ea40 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1ea50 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1ea60 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1ea70 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1ea80 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1ea90 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1eaa0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1eab0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1eac0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1ead0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1eae0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1eaf0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1eb00 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1eb10 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1eb20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1eb30 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1eb40 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1eb50 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1eb60 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1eb70 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1eb80 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1eb90 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1eba0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1ebb0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1ebc0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1ebd0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1ebe0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1ebf0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1ec00 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1ec10 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1ec20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1ec30 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1ec40 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1ec50 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1ec60 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1ec70 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1ec80 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1ec90 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1eca0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1ecb0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1ecc0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1ecd0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1ece0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1ecf0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1ed00 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1ed10 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1ed20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1ed30 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1ed40 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1ed50 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1ed60 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1ed70 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1ed80 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1ed90 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1eda0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1edb0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1edc0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1edd0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1ede0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1edf0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1ee00 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1ee10 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1ee20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1ee30 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1ee40 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1ee50 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1ee60 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1ee70 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1ee80 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1ee90 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1eea0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1eeb0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1eec0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1eed0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1eee0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1eef0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1ef00 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1ef10 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1ef20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1ef30 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1ef40 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1ef50 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1ef60 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1ef70 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1ef80 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1ef90 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1efa0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1efb0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1efc0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1efd0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1efe0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1eff0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1f000 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1f010 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1f020 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1f030 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1f040 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1f050 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1f060 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1f070 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1f080 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1f090 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1f0a0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1f0b0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1f0c0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1f0d0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1f0e0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1f0f0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1f100 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1f110 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1f120 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1f130 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1f140 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1f150 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1f160 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1f170 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1f180 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1f190 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1f1a0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1f1b0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1f1c0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1f1d0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1f1e0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1f1f0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1f200 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1f210 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1f220 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1f230 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1f240 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1f250 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1f260 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1f270 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1f280 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1f290 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1f2a0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1f2b0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1f2c0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1f2d0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1f2e0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1f2f0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1f300 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1f310 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1f320 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1f330 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1f340 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1f350 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1f360 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1f370 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1f380 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1f390 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1f3a0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1f3b0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1f3c0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1f3d0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1f3e0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1f3f0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1f400 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1f410 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1f420 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1f430 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1f440 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1f450 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1f460 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1f470 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1f480 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1f490 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1f4a0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1f4b0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1f4c0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1f4d0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1f4e0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1f4f0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1f500 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1f510 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1f520 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1f530 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1f540 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1f550 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1f560 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1f570 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1f580 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1f590 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1f5a0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1f5b0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1f5c0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1f5d0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1f5e0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1f5f0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1f600 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1f610 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1f620 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1f630 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1f640 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1f650 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1f660 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1f670 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1f680 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1f690 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1f6a0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1f6b0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1f6c0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1f6d0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1f6e0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1f6f0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1f700 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1f710 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1f720 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1f730 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1f740 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1f750 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1f760 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1f770 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1f780 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1f790 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1f7a0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1f7b0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1f7c0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1f7d0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1f7e0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1f7f0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1f800 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1f810 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1f820 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1f830 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1f840 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1f850 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1f860 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1f870 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1f880 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1f890 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1f8a0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1f8b0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1f8c0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1f8d0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1f8e0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1f8f0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1f900 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1f910 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1f920 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1f930 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1f940 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1f950 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1f960 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1f970 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1f980 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1f990 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1f9a0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1f9b0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1f9c0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1f9d0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1f9e0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1f9f0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1fa00 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1fa10 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1fa20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1fa30 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1fa40 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1fa50 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1fa60 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1fa70 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1fa80 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1fa90 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1faa0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1fab0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1fac0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1fad0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1fae0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1faf0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1fb00 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1fb10 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1fb20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1fb30 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1fb40 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1fb50 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1fb60 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1fb70 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1fb80 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1fb90 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1fba0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1fbb0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1fbc0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1fbd0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1fbe0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1fbf0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1fc00 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1fc10 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1fc20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1fc30 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1fc40 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1fc50 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1fc60 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1fc70 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1fc80 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1fc90 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1fca0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1fcb0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1fcc0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1fcd0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1fce0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1fcf0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1fd00 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1fd10 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1fd20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1fd30 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1fd40 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1fd50 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1fd60 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1fd70 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1fd80 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1fd90 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1fda0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1fdb0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1fdc0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1fdd0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1fde0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1fdf0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1fe00 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1fe10 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1fe20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1fe30 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1fe40 20 20 20 20 20 20 20 20 20 20 20 20 0d 0a 3c 69              ..<i
1fe50 6d 67 20 73 72 63 3d 22 68 74 74 70 73 3a 2f 2f  mg src="https://
1fe60 77 77 77 2e 67 61 69 61 2d 67 69 73 2e 69 74 2f  www.gaia-gis.it/
1fe70 67 61 69 61 2d 73 69 6e 73 2f 72 6f 75 74 69 6e  gaia-sins/routin
1fe80 67 2d 66 69 67 73 2f 74 73 70 32 2e 6a 70 67 22  g-figs/tsp2.jpg"
1fe90 20 61 6c 74 3d 22 66 69 67 35 22 3e 0d 0a 3c 2f   alt="fig5">..</
1fea0 74 64 3e 3c 2f 74 72 3e 3c 2f 74 61 62 6c 65 3e  td></tr></table>
1feb0 0d 0a 3c 62 72 3e 3c 62 72 3e 0d 0a 3c 68 72 3e  ..<br><br>..<hr>
1fec0 3c 62 72 3e 0d 0a 3c 68 31 3e 3c 61 20 6e 61 6d  <br>..<h1><a nam
1fed0 65 3d 22 70 32 70 22 3e 38 20 2d 20 53 6f 6c 76  e="p2p">8 - Solv
1fee0 69 6e 67 20 50 6f 69 6e 74 2d 74 6f 2d 50 6f 69  ing Point-to-Poi
1fef0 6e 74 20 70 72 6f 62 6c 65 6d 73 3c 2f 61 3e 3c  nt problems</a><
1ff00 2f 68 31 3e 0d 0a 41 20 3c 62 3e 50 6f 69 6e 74  /h1>..A <b>Point
1ff10 2d 74 6f 2d 50 6f 69 6e 74 3c 2f 62 3e 20 71 75  -to-Point</b> qu
1ff20 65 72 79 20 69 73 20 76 65 72 79 20 73 69 6d 69  ery is very simi
1ff30 6c 61 72 20 74 6f 20 61 20 6d 6f 73 74 20 75 73  lar to a most us
1ff40 75 61 6c 20 3c 62 3e 73 69 6e 67 6c 65 2d 64 65  ual <b>single-de
1ff50 73 74 69 6e 61 74 69 6f 6e 20 53 68 6f 72 74 65  stination Shorte
1ff60 73 74 20 50 61 74 68 3c 2f 62 3e 20 71 75 65 72  st Path</b> quer
1ff70 79 2c 20 65 78 63 65 70 74 20 74 68 61 74 3a 0d  y, except that:.
1ff80 0a 3c 75 6c 3e 0d 0a 3c 6c 69 3e 41 20 63 6c 61  .<ul>..<li>A cla
1ff90 73 73 69 63 20 53 68 6f 72 74 65 73 74 20 50 61  ssic Shortest Pa
1ffa0 74 68 20 71 75 65 72 79 20 72 65 71 75 69 72 65  th query require
1ffb0 73 20 74 6f 20 73 70 65 63 69 66 79 20 61 20 3c  s to specify a <
1ffc0 62 3e 4e 6f 64 65 46 72 6f 6d 3c 2f 62 3e 20 28  b>NodeFrom</b> (
1ffd0 3c 75 3e 3c 69 3e 6f 72 69 67 69 6e 3c 2f 69 3e  <u><i>origin</i>
1ffe0 3c 2f 75 3e 29 20 61 6e 64 20 61 20 3c 62 3e 4e  </u>) and a <b>N
1fff0 6f 64 65 54 6f 3c 2f 62 3e 20 28 3c 75 3e 3c 69  odeTo</b> (<u><i
20000 3e 64 65 73 74 69 6e 61 74 69 6f 6e 3c 2f 69 3e  >destination</i>
20010 3c 2f 75 3e 29 2e 3c 2f 6c 69 3e 0d 0a 3c 6c 69  </u>).</li>..<li
20020 3e 41 20 50 6f 69 6e 74 2d 74 6f 2d 50 6f 69 6e  >A Point-to-Poin
20030 74 20 71 75 65 72 79 20 68 61 73 20 6d 6f 72 65  t query has more
20040 20 72 65 6c 61 78 65 64 20 72 65 71 75 69 73 69   relaxed requisi
20050 74 65 73 2c 20 61 6e 64 20 6a 75 73 74 20 72 65  tes, and just re
20060 71 75 69 72 65 73 20 74 6f 20 73 70 65 63 69 66  quires to specif
20070 79 20 61 20 3c 62 3e 50 6f 69 6e 74 46 72 6f 6d  y a <b>PointFrom
20080 3c 2f 62 3e 20 28 3c 75 3e 3c 69 3e 6f 72 69 67  </b> (<u><i>orig
20090 69 6e 3c 2f 69 3e 3c 2f 75 3e 29 20 61 6e 64 20  in</i></u>) and 
200a0 61 20 3c 62 3e 50 6f 69 6e 74 54 6f 3c 2f 62 3e  a <b>PointTo</b>
200b0 20 28 3c 75 3e 3c 69 3e 64 65 73 74 69 6e 61 74   (<u><i>destinat
200c0 69 6f 6e 3c 2f 69 3e 3c 2f 75 3e 29 2e 3c 62 72  ion</i></u>).<br
200d0 3e 0d 0a 42 6f 74 68 20 3c 62 3e 50 6f 69 6e 74  >..Both <b>Point
200e0 73 3c 2f 62 3e 20 63 61 6e 20 62 65 20 66 72 65  s</b> can be fre
200f0 65 6c 79 20 70 6f 73 69 74 69 6f 6e 65 64 20 65  ely positioned e
20100 76 65 72 79 77 68 65 72 65 20 6f 6e 20 61 20 6d  verywhere on a m
20110 61 70 2c 20 61 6e 64 20 61 72 65 20 6e 6f 74 20  ap, and are not 
20120 72 65 71 75 69 72 65 64 20 74 6f 20 70 72 65 63  required to prec
20130 69 73 65 6c 79 20 69 6e 74 65 72 73 65 63 74 20  isely intersect 
20140 6e 65 69 74 68 65 72 20 61 20 3c 62 3e 4e 6f 64  neither a <b>Nod
20150 65 3c 2f 62 3e 20 6e 6f 72 20 61 20 3c 62 3e 4c  e</b> nor a <b>L
20160 69 6e 6b 3c 2f 62 3e 20 6f 66 20 74 68 65 20 75  ink</b> of the u
20170 6e 64 65 72 6c 61 79 69 6e 67 20 4e 65 74 77 6f  nderlaying Netwo
20180 72 6b 2e 3c 62 72 3e 0d 0a 54 68 65 20 50 6f 69  rk.<br>..The Poi
20190 6e 74 2d 74 6f 2d 50 6f 69 6e 74 27 73 20 3c 75  nt-to-Point's <u
201a0 3e 3c 69 3e 69 6e 74 65 72 6e 61 6c 20 6c 6f 67  ><i>internal log
201b0 69 63 3c 2f 69 3e 3c 2f 75 3e 20 77 69 6c 6c 20  ic</i></u> will 
201c0 74 68 65 6e 20 61 75 74 6f 6d 61 74 69 63 61 6c  then automatical
201d0 6c 79 20 69 64 65 6e 74 69 66 79 20 28 69 66 20  ly identify (if 
201e0 70 6f 73 73 69 62 6c 65 29 20 74 68 65 20 61 70  possible) the ap
201f0 70 72 6f 70 72 69 61 74 65 20 4e 6f 64 65 73 20  propriate Nodes 
20200 66 6f 72 20 63 6f 6d 70 75 74 69 6e 67 20 61 20  for computing a 
20210 53 68 6f 72 74 65 73 74 20 50 61 74 68 20 73 6f  Shortest Path so
20220 6c 75 74 69 6f 6e 2e 3c 62 72 3e 0d 0a 3c 75 3e  lution.<br>..<u>
20230 4e 6f 74 65 3c 2f 75 3e 3a 20 74 68 65 20 74 77  Note</u>: the tw
20240 6f 20 50 6f 69 6e 74 73 20 3c 62 3e 6d 75 73 74  o Points <b>must
20250 3c 2f 62 3e 20 62 65 20 69 6e 20 74 68 65 20 73  </b> be in the s
20260 61 6d 65 20 3c 62 3e 53 52 49 44 3c 2f 62 3e 20  ame <b>SRID</b> 
20270 6f 66 20 74 68 65 20 75 6e 64 65 72 6c 61 79 69  of the underlayi
20280 6e 67 20 4e 65 74 77 6f 72 6b 2e 3c 2f 6c 69 3e  ng Network.</li>
20290 0d 0a 3c 2f 75 6c 3e 0d 0a 3c 68 33 3e 48 6f 77  ..</ul>..<h3>How
202a0 20 69 74 20 70 72 61 63 74 69 63 61 6c 6c 79 20   it practically 
202b0 77 6f 72 6b 73 3c 2f 68 33 3e 0d 0a 3c 6f 6c 3e  works</h3>..<ol>
202c0 0d 0a 3c 6c 69 3e 61 20 66 69 72 73 74 20 3c 75  ..<li>a first <u
202d0 3e 3c 69 3e 73 70 61 74 69 61 6c 20 73 65 61 72  ><i>spatial sear
202e0 63 68 3c 2f 69 3e 3c 2f 75 3e 20 62 61 73 65 64  ch</i></u> based
202f0 20 6f 6e 20 74 68 65 20 3c 62 3e 50 6f 69 6e 74   on the <b>Point
20300 46 72 6f 6d 3c 2f 62 3e 20 77 69 6c 6c 20 61 74  From</b> will at
20310 74 65 6d 70 74 20 74 6f 20 69 64 65 6e 74 69 66  tempt to identif
20320 79 20 61 6c 6c 20 3c 62 3e 4c 69 6e 6b 73 3c 2f  y all <b>Links</
20330 62 3e 20 66 61 6c 6c 69 6e 67 20 77 69 74 68 69  b> falling withi
20340 6e 20 61 20 67 69 76 65 6e 20 3c 62 3e 74 6f 6c  n a given <b>tol
20350 65 72 61 6e 63 65 20 72 61 64 69 75 73 3c 2f 62  erance radius</b
20360 3e 20 66 72 6f 6d 20 74 68 65 20 50 6f 69 6e 74  > from the Point
20370 2e 3c 2f 6c 69 3e 0d 0a 3c 6c 69 3e 61 20 73 65  .</li>..<li>a se
20380 63 6f 6e 64 20 73 69 6d 69 6c 61 72 20 73 70 61  cond similar spa
20390 74 69 61 6c 20 73 65 61 72 63 68 20 77 69 6c 6c  tial search will
203a0 20 61 74 74 65 6d 70 74 20 74 6f 20 69 64 65 6e   attempt to iden
203b0 74 69 66 79 20 61 6c 6c 20 3c 62 3e 4c 69 6e 6b  tify all <b>Link
203c0 73 3c 2f 62 3e 20 72 65 6c 61 74 65 64 20 74 6f  s</b> related to
203d0 20 74 68 65 20 3c 62 3e 50 6f 69 6e 74 54 6f 3c   the <b>PointTo<
203e0 2f 62 3e 2e 3c 2f 6c 69 3e 0d 0a 3c 6c 69 3e 61  /b>.</li>..<li>a
203f0 6c 6c 20 3c 62 3e 4e 6f 64 65 73 3c 2f 62 3e 20  ll <b>Nodes</b> 
20400 62 65 6c 6f 6e 67 69 6e 67 20 74 6f 20 61 6e 79  belonging to any
20410 20 3c 62 3e 4c 69 6e 6b 3c 2f 62 3e 20 69 64 65   <b>Link</b> ide
20420 6e 74 69 66 69 65 64 20 62 79 20 74 68 65 20 66  ntified by the f
20430 69 72 73 74 20 73 70 61 74 69 61 6c 20 73 65 61  irst spatial sea
20440 72 63 68 20 77 69 6c 6c 20 62 65 20 63 6f 6e 73  rch will be cons
20450 69 64 65 72 65 64 20 61 73 20 70 6f 73 73 69 62  idered as possib
20460 6c 65 20 3c 62 3e 4e 6f 64 65 46 72 6f 6d 20 63  le <b>NodeFrom c
20470 61 6e 64 69 64 61 74 65 73 3c 2f 62 3e 2e 3c 2f  andidates</b>.</
20480 6c 69 3e 0d 0a 3c 6c 69 3e 61 6e 64 20 73 79 6d  li>..<li>and sym
20490 6d 65 74 72 69 63 61 6c 6c 79 2c 20 61 6c 6c 20  metrically, all 
204a0 3c 62 3e 4e 6f 64 65 73 3c 2f 62 3e 20 62 65 6c  <b>Nodes</b> bel
204b0 6f 6e 67 69 6e 67 20 74 6f 20 61 6e 79 20 3c 62  onging to any <b
204c0 3e 4c 69 6e 6b 3c 2f 62 3e 20 69 64 65 6e 74 69  >Link</b> identi
204d0 66 69 65 64 20 62 79 20 74 68 65 20 73 65 63 6f  fied by the seco
204e0 6e 64 20 73 70 61 74 69 61 6c 20 73 65 61 72 63  nd spatial searc
204f0 68 20 77 69 6c 6c 20 62 65 20 63 6f 6e 73 69 64  h will be consid
20500 65 72 65 64 20 61 73 20 70 6f 73 73 69 62 6c 65  ered as possible
20510 20 3c 62 3e 4e 6f 64 65 54 6f 20 63 61 6e 64 69   <b>NodeTo candi
20520 64 61 74 65 73 3c 2f 62 3e 2e 3c 2f 6c 69 3e 0d  dates</b>.</li>.
20530 0a 3c 6c 69 3e 61 20 66 75 6c 6c 20 70 65 72 6d  .<li>a full perm
20540 75 74 61 74 69 6f 6e 20 6f 66 20 61 6c 6c 20 53  utation of all S
20550 68 6f 72 74 65 73 74 20 50 61 74 68 20 73 6f 6c  hortest Path sol
20560 75 74 69 6f 6e 73 20 63 6f 6e 6e 65 63 74 69 6e  utions connectin
20570 67 20 6f 6e 65 20 74 68 65 20 46 72 6f 6d 20 63  g one the From c
20580 61 6e 64 69 64 61 74 65 73 20 74 6f 20 6f 6e 65  andidates to one
20590 20 6f 66 20 74 68 65 20 54 6f 20 63 61 6e 64 69   of the To candi
205a0 64 61 74 65 73 20 77 69 6c 6c 20 62 65 20 74 68  dates will be th
205b0 65 6e 20 63 6f 6d 70 75 74 65 64 2e 3c 2f 6c 69  en computed.</li
205c0 3e 0d 0a 3c 6c 69 3e 61 6e 64 20 66 69 6e 61 6c  >..<li>and final
205d0 6c 79 20 74 68 65 20 3c 62 3e 6f 70 74 69 6d 61  ly the <b>optima
205e0 6c 20 50 6f 69 6e 74 2d 74 6f 2d 50 6f 69 6e 74  l Point-to-Point
205f0 20 73 6f 6c 75 74 69 6f 6e 3c 2f 62 3e 20 77 69   solution</b> wi
20600 6c 6c 20 62 65 20 73 65 6c 65 63 74 65 64 20 62  ll be selected b
20610 79 20 69 64 65 6e 74 69 66 79 69 6e 67 20 77 68  y identifying wh
20620 69 63 68 20 73 70 65 63 69 66 69 63 20 63 61 6e  ich specific can
20630 64 69 64 61 74 65 20 70 72 65 73 65 6e 74 73 20  didate presents 
20640 74 68 65 20 3c 62 3e 6c 65 73 73 65 72 20 43 6f  the <b>lesser Co
20650 73 74 3c 2f 62 3e 20 6f 66 20 74 68 65 6d 20 61  st</b> of them a
20660 6c 6c 2e 3c 2f 6c 69 3e 0d 0a 3c 2f 6f 6c 3e 3c  ll.</li>..</ol><
20670 62 72 3e 0d 0a 3c 74 61 62 6c 65 20 62 67 63 6f  br>..<table bgco
20680 6c 6f 72 3d 22 23 66 66 62 30 36 30 22 20 63 65  lor="#ffb060" ce
20690 6c 6c 73 70 61 63 69 6e 67 3d 22 31 30 22 20 63  llspacing="10" c
206a0 65 6c 6c 70 61 64 64 69 6e 67 3d 22 36 22 3e 3c  ellpadding="6"><
206b0 74 72 3e 3c 74 64 3e 0d 0a 3c 68 33 3e 42 65 20  tr><td>..<h3>Be 
206c0 61 77 61 72 65 3c 2f 68 33 3e 0d 0a 41 74 74 65  aware</h3>..Atte
206d0 6d 70 74 69 6e 67 20 74 6f 20 73 6f 6c 76 65 20  mpting to solve 
206e0 50 6f 69 6e 74 2d 74 6f 2d 50 6f 69 6e 74 20 71  Point-to-Point q
206f0 75 65 72 69 65 73 20 73 74 72 69 63 74 6c 79 20  ueries strictly 
20700 72 65 71 75 69 72 65 73 20 74 68 61 74 20 61 6e  requires that an
20710 20 61 70 70 72 6f 70 72 69 61 74 65 20 3c 62 3e   appropriate <b>
20720 53 70 61 74 69 61 6c 20 49 6e 64 65 78 3c 2f 62  Spatial Index</b
20730 3e 20 63 61 6e 20 65 66 66 65 63 74 69 76 65 6c  > can effectivel
20740 79 20 73 75 70 70 6f 72 74 20 61 6c 6c 20 4c 69  y support all Li
20750 6e 6b 73 20 6f 66 20 74 68 65 20 75 6e 64 65 72  nks of the under
20760 6c 61 79 69 6e 67 20 4e 65 74 77 6f 72 6b 2e 3c  laying Network.<
20770 62 72 3e 0d 0a 49 66 20 73 75 63 68 20 61 20 72  br>..If such a r
20780 65 71 75 69 73 69 74 65 20 69 73 20 6e 6f 74 20  equisite is not 
20790 73 61 74 69 73 66 69 65 64 20 74 68 65 20 61 62  satisfied the ab
207a0 6f 76 65 20 6d 65 6e 74 69 6f 6e 65 64 20 3c 75  ove mentioned <u
207b0 3e 3c 69 3e 73 70 61 74 69 61 6c 20 73 65 61 72  ><i>spatial sear
207c0 63 68 65 73 3c 2f 69 3e 3c 2f 75 3e 20 77 69 6c  ches</i></u> wil
207d0 6c 20 6d 69 73 65 72 61 62 6c 79 20 66 61 69 6c  l miserably fail
207e0 2c 20 61 6e 64 20 63 6f 6e 73 65 71 75 65 6e 74  , and consequent
207f0 6c 79 20 61 6c 6c 20 50 6f 69 6e 74 2d 74 6f 2d  ly all Point-to-
20800 50 6f 69 6e 74 20 71 75 65 72 69 65 73 20 77 69  Point queries wi
20810 6c 6c 20 62 65 20 75 6e 61 62 6c 65 20 74 6f 20  ll be unable to 
20820 69 64 65 6e 74 69 66 79 20 61 6e 79 20 70 6f 73  identify any pos
20830 73 69 62 6c 65 20 43 61 6e 64 69 64 61 74 65 20  sible Candidate 
20840 74 6f 20 62 65 20 65 76 61 6c 75 61 74 65 64 2e  to be evaluated.
20850 0d 0a 3c 68 33 3e 41 6c 77 61 79 73 20 72 65 6d  ..<h3>Always rem
20860 65 6d 62 65 72 3c 2f 68 33 3e 0d 0a 43 61 72 65  ember</h3>..Care
20870 66 75 6c 6c 79 20 63 68 65 63 6b 20 69 66 20 61  fully check if a
20880 6e 20 61 70 70 72 6f 70 72 69 61 74 65 20 53 70  n appropriate Sp
20890 61 74 69 61 6c 20 49 6e 64 65 78 20 64 6f 20 72  atial Index do r
208a0 65 61 6c 6c 79 20 65 78 69 73 74 73 20 62 65 66  eally exists bef
208b0 6f 72 65 20 61 74 74 65 6d 70 74 69 6e 67 20 74  ore attempting t
208c0 6f 20 65 78 65 63 75 74 65 20 61 6e 79 20 50 6f  o execute any Po
208d0 69 6e 74 2d 74 6f 2d 50 6f 69 6e 74 20 71 75 65  int-to-Point que
208e0 72 79 2e 0d 0a 3c 62 72 3e 3c 62 72 3e 0d 0a 3c  ry...<br><br>..<
208f0 2f 74 64 3e 3c 2f 74 72 3e 3c 2f 74 61 62 6c 65  /td></tr></table
20900 3e 0d 0a 3c 62 72 3e 0d 0a 3c 74 61 62 6c 65 20  >..<br>..<table 
20910 62 67 63 6f 6c 6f 72 3d 22 23 63 30 66 66 63 30  bgcolor="#c0ffc0
20920 22 20 63 65 6c 6c 73 70 61 63 69 6e 67 3d 22 31  " cellspacing="1
20930 30 22 20 63 65 6c 6c 70 61 64 64 69 6e 67 3d 22  0" cellpadding="
20940 36 22 3e 3c 74 72 3e 3c 74 64 20 61 6c 69 67 6e  6"><tr><td align
20950 3d 22 63 65 6e 74 65 72 22 20 63 6f 6c 73 70 61  ="center" colspa
20960 6e 3d 22 32 22 3e 0d 0a 3c 68 32 3e 42 61 73 69  n="2">..<h2>Basi
20970 63 20 63 6f 6e 63 65 70 74 73 2c 20 74 65 63 68  c concepts, tech
20980 6e 69 63 61 6c 20 64 65 74 61 69 6c 73 20 61 6e  nical details an
20990 64 20 72 65 6c 61 74 65 64 20 67 6c 6f 73 73 61  d related glossa
209a0 72 79 3c 2f 68 32 3e 0d 0a 3c 2f 74 64 3e 3c 2f  ry</h2>..</td></
209b0 74 72 3e 0d 0a 3c 74 72 3e 3c 74 64 3e 0d 0a 54  tr>..<tr><td>..T
209c0 68 65 20 73 69 64 65 20 66 69 67 75 72 65 20 73  he side figure s
209d0 68 6f 77 73 20 61 20 68 79 70 6f 74 68 65 74 69  hows a hypotheti
209e0 63 61 6c 20 50 6f 69 6e 74 2d 74 6f 2d 50 6f 69  cal Point-to-Poi
209f0 6e 74 20 73 6f 6c 75 74 69 6f 6e 20 61 6c 6d 6f  nt solution almo
20a00 73 74 20 70 72 65 63 69 73 65 6c 79 20 62 61 73  st precisely bas
20a10 65 64 20 6f 6e 20 74 68 65 20 66 6f 6c 6c 6f 77  ed on the follow
20a20 69 6e 67 20 73 65 71 75 65 6e 63 65 20 6f 66 20  ing sequence of 
20a30 4e 6f 64 65 73 3a 3c 62 72 3e 0d 0a 3c 62 3e 3c  Nodes:<br>..<b><
20a40 69 3e 4e 31 2d 4e 32 2d 4e 33 2d 4e 34 2d 4e 35  i>N1-N2-N3-N4-N5
20a50 2d 4e 36 2d 4e 37 2d 4e 38 2d 4e 39 2d 4e 31 30  -N6-N7-N8-N9-N10
20a60 2d 4e 31 31 2d 4e 31 32 2d 4e 31 33 2d 4e 31 34  -N11-N12-N13-N14
20a70 2d 4e 31 35 3c 2f 69 3e 3c 2f 62 3e 0d 0a 3c 62  -N15</i></b>..<b
20a80 72 3e 3c 62 72 3e 0d 0a 48 6f 77 65 76 65 72 2c  r><br>..However,
20a90 20 61 73 20 79 6f 75 20 63 61 6e 20 65 61 73 69   as you can easi
20aa0 6c 79 20 6e 6f 74 69 63 65 2c 20 74 68 65 72 65  ly notice, there
20ab0 20 61 72 65 20 74 77 6f 20 73 74 72 69 6b 69 6e   are two strikin
20ac0 67 20 65 78 63 65 70 74 69 6f 6e 73 3a 0d 0a 3c  g exceptions:..<
20ad0 75 6c 3e 0d 0a 3c 6c 69 3e 54 68 65 20 3c 62 3e  ul>..<li>The <b>
20ae0 66 69 72 73 74 3c 2f 62 3e 20 4c 69 6e 6b 20 28  first</b> Link (
20af0 63 6f 6e 6e 65 63 74 69 6e 67 20 3c 62 3e 4e 31  connecting <b>N1
20b00 3c 2f 62 3e 20 74 6f 20 3c 62 3e 4e 32 3c 2f 62  </b> to <b>N2</b
20b10 3e 29 20 69 73 20 6e 6f 74 20 63 6f 6d 70 6c 65  >) is not comple
20b20 74 65 6c 79 20 72 65 71 75 69 72 65 64 20 62 79  tely required by
20b30 20 74 68 65 20 53 6f 6c 75 74 69 6f 6e 2e 3c 62   the Solution.<b
20b40 72 3e 0d 0a 4a 75 73 74 20 61 20 73 6d 61 6c 6c  r>..Just a small
20b50 20 70 6f 72 74 69 6f 6e 20 28 64 72 61 77 6e 20   portion (drawn 
20b60 69 6e 20 72 65 64 29 20 6f 66 20 74 68 69 73 20  in red) of this 
20b70 4c 69 6e 6b 20 69 73 20 65 66 66 65 63 74 69 76  Link is effectiv
20b80 65 6c 79 20 72 65 71 75 69 72 65 64 2e 3c 62 72  ely required.<br
20b90 3e 0d 0a 54 68 65 20 72 65 6d 61 69 6e 69 6e 67  >..The remaining
20ba0 20 70 61 72 74 20 28 64 72 61 77 6e 20 69 6e 20   part (drawn in 
20bb0 67 72 61 79 29 20 69 73 6e 27 74 20 63 6f 76 65  gray) isn't cove
20bc0 72 65 64 20 62 79 20 74 68 65 20 53 6f 6c 75 74  red by the Solut
20bd0 69 6f 6e 2e 3c 2f 6c 69 3e 0d 0a 3c 6c 69 3e 45  ion.</li>..<li>E
20be0 78 61 63 74 6c 79 20 74 68 65 20 73 61 6d 65 20  xactly the same 
20bf0 69 73 20 66 6f 72 20 74 68 65 20 3c 62 3e 6c 61  is for the <b>la
20c00 73 74 3c 2f 62 3e 20 4c 69 6e 6b 20 63 6f 6e 6e  st</b> Link conn
20c10 65 63 74 69 6e 67 20 3c 62 3e 4e 31 34 3c 2f 62  ecting <b>N14</b
20c20 3e 20 74 6f 20 3c 62 3e 4e 31 35 3c 2f 62 3e 2e  > to <b>N15</b>.
20c30 3c 2f 6c 69 3e 0d 0a 3c 6c 69 3e 54 68 61 74 27  </li>..<li>That'
20c40 73 20 6e 6f 74 20 61 6c 6c 3a 20 74 68 65 72 65  s not all: there
20c50 20 61 72 65 20 74 77 6f 20 73 68 6f 72 74 20 73   are two short s
20c60 65 67 6d 65 6e 74 73 20 28 64 72 61 77 6e 20 69  egments (drawn i
20c70 6e 20 67 72 65 65 6e 29 20 63 6f 6e 6e 65 63 74  n green) connect
20c80 69 6e 67 20 3c 62 3e 50 66 72 6f 6d 3c 2f 62 3e  ing <b>Pfrom</b>
20c90 20 61 6e 64 20 3c 62 3e 50 74 6f 3c 2f 62 3e 20   and <b>Pto</b> 
20ca0 28 3c 69 3e 6f 72 69 67 69 6e 3c 2f 69 3e 20 61  (<i>origin</i> a
20cb0 6e 64 20 3c 69 3e 64 65 73 74 69 6e 61 74 69 6f  nd <i>destinatio
20cc0 6e 3c 2f 69 3e 20 50 6f 69 6e 74 73 29 20 72 65  n</i> Points) re
20cd0 73 70 65 63 74 69 76 65 6c 79 20 74 6f 20 74 68  spectively to th
20ce0 65 20 3c 62 3e 66 69 72 73 74 3c 2f 62 3e 20 61  e <b>first</b> a
20cf0 6e 64 20 3c 62 3e 6c 61 73 74 3c 2f 62 3e 20 70  nd <b>last</b> p
20d00 61 72 74 69 61 6c 20 4c 69 6e 6b 73 2e 3c 2f 6c  artial Links.</l
20d10 69 3e 0d 0a 3c 2f 75 6c 3e 0d 0a 3c 62 72 3e 0d  i>..</ul>..<br>.
20d20 0a 41 6c 6c 20 74 68 69 73 20 73 68 6f 75 6c 64  .All this should
20d30 6e 27 74 20 62 65 20 75 6e 65 78 70 65 63 74 65  n't be unexpecte
20d40 64 2c 20 62 65 63 61 75 73 65 20 69 74 20 73 69  d, because it si
20d50 6d 70 6c 79 20 69 73 20 74 68 65 20 6d 6f 73 74  mply is the most
20d60 20 6f 62 76 69 6f 75 73 20 64 69 72 65 63 74 20   obvious direct 
20d70 63 6f 6e 73 65 71 75 65 6e 63 65 20 6f 66 20 74  consequence of t
20d80 68 65 20 76 65 72 79 20 62 61 73 69 63 20 61 73  he very basic as
20d90 73 75 6d 70 74 69 6f 6e 73 20 61 74 20 74 68 65  sumptions at the
20da0 20 62 61 73 69 73 20 6f 66 20 50 6f 69 6e 74 2d   basis of Point-
20db0 74 6f 2d 50 6f 69 6e 74 20 71 75 65 72 69 65 73  to-Point queries
20dc0 3a 0d 0a 3c 75 6c 3e 0d 0a 3c 6c 69 3e 4e 65 69  :..<ul>..<li>Nei
20dd0 74 68 65 72 20 74 68 65 20 3c 62 3e 50 6f 69 6e  ther the <b>Poin
20de0 74 46 72 6f 6d 3c 2f 62 3e 20 6e 6f 72 20 74 68  tFrom</b> nor th
20df0 65 20 3c 62 3e 50 6f 69 6e 74 54 6f 3c 2f 62 3e  e <b>PointTo</b>
20e00 20 61 72 65 20 72 65 71 75 69 72 65 64 20 74 6f   are required to
20e10 20 65 78 61 63 74 6c 79 20 69 6e 74 65 72 73 65   exactly interse
20e20 63 74 20 61 20 3c 62 3e 4e 6f 64 65 3c 2f 62 3e  ct a <b>Node</b>
20e30 2e 3c 62 72 3e 0d 0a 43 6f 6e 73 65 71 75 65 6e  .<br>..Consequen
20e40 74 6c 79 20 74 68 65 20 3c 62 3e 66 69 72 73 74  tly the <b>first
20e50 3c 2f 62 3e 20 61 6e 64 20 3c 62 3e 6c 61 73 74  </b> and <b>last
20e60 3c 2f 62 3e 20 4c 69 6e 6b 73 20 6f 66 20 74 68  </b> Links of th
20e70 65 20 6f 76 65 72 61 6c 6c 20 50 6f 69 6e 74 2d  e overall Point-
20e80 74 6f 2d 50 6f 69 6e 74 20 53 6f 6c 75 74 69 6f  to-Point Solutio
20e90 6e 20 63 6f 75 6c 64 20 62 65 20 6f 6e 6c 79 20  n could be only 
20ea0 70 61 72 74 69 61 6c 6c 79 20 69 6e 76 6f 6c 76  partially involv
20eb0 65 64 2e 3c 62 72 3e 0d 0a 49 6e 20 56 69 72 74  ed.<br>..In Virt
20ec0 75 61 6c 52 6f 75 74 69 6e 67 20 6a 61 72 67 6f  ualRouting jargo
20ed0 6e 20 74 68 65 73 65 20 74 77 6f 20 3c 75 3e 3c  n these two <u><
20ee0 69 3e 73 70 65 63 69 61 6c 20 69 74 65 6d 73 3c  i>special items<
20ef0 2f 69 3e 3c 2f 75 3e 20 61 72 65 20 72 65 73 70  /i></u> are resp
20f00 65 63 74 69 76 65 6c 79 20 63 61 6c 6c 65 64 3a  ectively called:
20f10 0d 0a 3c 75 6c 3e 0d 0a 3c 6c 69 3e 3c 62 3e 50  ..<ul>..<li><b>P
20f20 61 72 74 69 61 6c 20 4c 69 6e 6b 20 28 53 74 61  artial Link (Sta
20f30 72 74 29 3c 2f 62 3e 3c 2f 6c 69 3e 0d 0a 3c 6c  rt)</b></li>..<l
20f40 69 3e 3c 62 3e 50 61 72 74 69 61 6c 20 4c 69 6e  i><b>Partial Lin
20f50 6b 20 28 45 6e 64 29 3c 2f 62 3e 3c 2f 6c 69 3e  k (End)</b></li>
20f60 0d 0a 3c 2f 75 6c 3e 3c 2f 6c 69 3e 20 0d 0a 3c  ..</ul></li> ..<
20f70 6c 69 3e 42 6f 74 68 20 74 68 65 20 3c 62 3e 50  li>Both the <b>P
20f80 6f 69 6e 74 46 72 6f 6d 3c 2f 62 3e 20 61 6e 64  ointFrom</b> and
20f90 20 74 68 65 20 3c 62 3e 50 6f 69 6e 74 54 6f 3c   the <b>PointTo<
20fa0 2f 62 3e 20 63 61 6e 20 6c 65 67 69 74 69 6d 61  /b> can legitima
20fb0 74 65 6c 79 20 68 61 76 65 20 61 6e 79 20 61 72  tely have any ar
20fc0 62 69 74 72 61 72 79 20 70 6f 73 69 74 69 6f 6e  bitrary position
20fd0 20 61 6e 64 20 61 72 65 20 6e 65 76 65 72 20 72   and are never r
20fe0 65 71 75 69 72 65 64 20 74 6f 20 65 78 61 63 74  equired to exact
20ff0 6c 79 20 69 6e 74 65 72 73 65 63 74 20 61 20 3c  ly intersect a <
21000 62 3e 4c 69 6e 6b 3c 2f 62 3e 2e 3c 62 72 3e 0d  b>Link</b>.<br>.
21010 0a 54 68 69 73 20 63 61 6e 20 65 61 73 69 6c 79  .This can easily
21020 20 69 6d 70 6c 79 20 74 68 61 74 20 61 6e 20 3c   imply that an <
21030 75 3e 3c 69 3e 65 78 74 72 61 20 73 68 6f 72 74  u><i>extra short
21040 20 6c 65 67 3c 2f 69 3e 3c 2f 75 3e 20 63 6f 75   leg</i></u> cou
21050 6c 64 20 62 65 20 72 65 71 75 69 72 65 64 20 69  ld be required i
21060 6e 20 6f 72 64 65 72 20 74 6f 20 63 6f 6e 6e 65  n order to conne
21070 63 74 20 74 68 65 20 46 72 6f 6d 2f 54 6f 20 50  ct the From/To P
21080 6f 69 6e 74 73 20 74 6f 20 74 68 65 20 63 6f 72  oints to the cor
21090 72 65 73 70 6f 6e 64 69 6e 67 20 4c 69 6e 6b 73  responding Links
210a0 2e 3c 62 72 3e 0d 0a 49 6e 20 56 69 72 75 74 61  .<br>..In Viruta
210b0 6c 52 6f 75 74 69 6e 67 20 6a 61 72 67 6f 6e 20  lRouting jargon 
210c0 74 68 65 73 65 20 74 77 6f 20 3c 75 3e 3c 69 3e  these two <u><i>
210d0 73 70 65 63 69 61 6c 20 69 74 65 6d 73 3c 2f 69  special items</i
210e0 3e 3c 2f 75 3e 20 61 72 65 20 72 65 73 70 65 63  ></u> are respec
210f0 74 69 76 65 6c 79 20 63 61 6c 6c 65 64 3a 0d 0a  tively called:..
21100 3c 75 6c 3e 0d 0a 3c 6c 69 3e 3c 62 3e 49 6e 67  <ul>..<li><b>Ing
21110 72 65 73 73 20 50 61 74 68 3c 2f 62 3e 3c 2f 6c  ress Path</b></l
21120 69 3e 0d 0a 3c 6c 69 3e 3c 62 3e 45 67 72 65 73  i>..<li><b>Egres
21130 73 20 50 61 74 68 3c 2f 62 3e 3c 2f 6c 69 3e 0d  s Path</b></li>.
21140 0a 3c 2f 75 6c 3e 3c 2f 6c 69 3e 20 0d 0a 3c 6c  .</ul></li> ..<l
21150 69 3e 3c 75 3e 4e 6f 74 65 3c 2f 75 3e 3a 20 6e  i><u>Note</u>: n
21160 6f 6e 65 20 6f 66 20 74 68 65 6d 20 69 73 20 61  one of them is a
21170 20 73 74 72 69 63 74 6c 79 20 6d 61 6e 64 61 74   strictly mandat
21180 6f 72 79 20 69 74 65 6d 3a 0d 0a 3c 75 6c 3e 0d  ory item:..<ul>.
21190 0a 3c 6c 69 3e 74 68 65 20 3c 62 3e 49 6e 67 72  .<li>the <b>Ingr
211a0 65 73 73 3c 2f 62 3e 20 61 6e 64 2f 6f 72 20 3c  ess</b> and/or <
211b0 62 3e 45 67 72 65 73 73 20 50 61 74 68 73 3c 2f  b>Egress Paths</
211c0 62 3e 20 61 72 65 20 6e 6f 74 20 72 65 71 75 69  b> are not requi
211d0 72 65 64 20 77 68 65 6e 20 74 68 65 20 63 6f 72  red when the cor
211e0 72 65 73 70 6f 6e 64 69 6e 67 20 50 6f 69 6e 74  responding Point
211f0 20 65 78 61 63 74 6c 79 20 69 6e 74 65 72 73 65   exactly interse
21200 63 74 73 20 61 20 4c 69 6e 6b 2e 3c 2f 6c 69 3e  cts a Link.</li>
21210 0d 0a 3c 6c 69 3e 3c 62 3e 50 61 72 74 69 61 6c  ..<li><b>Partial
21220 20 4c 69 6e 6b 73 3c 2f 62 3e 20 28 65 69 74 68   Links</b> (eith
21230 65 72 20 3c 62 3e 28 53 74 61 72 74 29 3c 2f 62  er <b>(Start)</b
21240 3e 20 6f 72 20 3c 62 3e 28 45 6e 64 28 3c 2f 62  > or <b>(End(</b
21250 3e 29 20 61 72 65 20 6e 65 76 65 72 20 72 65 71  >) are never req
21260 75 69 72 65 64 20 77 68 65 6e 20 74 68 65 20 63  uired when the c
21270 6f 72 72 65 73 70 6f 6e 64 69 6e 67 20 50 6f 69  orresponding Poi
21280 6e 74 20 65 78 61 63 74 6c 79 20 6d 61 74 63 68  nt exactly match
21290 65 73 20 61 20 4e 6f 64 65 2e 3c 2f 6c 69 3e 0d  es a Node.</li>.
212a0 0a 3c 2f 75 6c 3e 3c 2f 6c 69 3e 0d 0a 3c 2f 75  .</ul></li>..</u
212b0 6c 3e 0d 0a 3c 2f 74 64 3e 0d 0a 3c 74 64 3e 0d  l>..</td>..<td>.
212c0 0a 3c 69 6d 67 20 73 72 63 3d 22 68 74 74 70 73  .<img src="https
212d0 3a 2f 2f 77 77 77 2e 67 61 69 61 2d 67 69 73 2e  ://www.gaia-gis.
212e0 69 74 2f 67 61 69 61 2d 73 69 6e 73 2f 72 6f 75  it/gaia-sins/rou
212f0 74 69 6e 67 2d 66 69 67 73 2f 70 32 70 2d 73 74  ting-figs/p2p-st
21300 72 75 63 74 2e 70 6e 67 22 20 61 6c 74 3d 22 70  ruct.png" alt="p
21310 32 70 2d 73 74 72 75 63 74 22 3e 0d 0a 3c 2f 74  2p-struct">..</t
21320 64 3e 3c 2f 74 72 3e 0d 0a 3c 74 72 3e 3c 74 64  d></tr>..<tr><td
21330 3e 0d 0a 41 20 6d 6f 72 65 20 63 6f 6d 70 72 65  >..A more compre
21340 68 65 6e 73 69 76 65 20 61 6e 64 20 64 65 74 61  hensive and deta
21350 69 6c 65 64 20 65 78 70 6c 61 6e 61 74 69 6f 6e  iled explanation
21360 20 62 61 73 65 64 20 6f 6e 20 74 68 65 20 73 69   based on the si
21370 64 65 20 66 69 67 75 72 65 3a 0d 0a 3c 75 6c 3e  de figure:..<ul>
21380 0d 0a 3c 6c 69 3e 3c 62 3e 4c 31 3c 2f 62 3e 20  ..<li><b>L1</b> 
21390 69 73 20 61 20 4c 69 6e 6b 20 63 6f 6e 6e 65 63  is a Link connec
213a0 74 69 6e 67 20 4e 6f 64 65 73 20 3c 62 3e 4e 31  ting Nodes <b>N1
213b0 3c 2f 62 3e 20 61 6e 64 20 3c 62 3e 4e 32 3c 2f  </b> and <b>N2</
213c0 62 3e 2e 3c 2f 6c 69 3e 0d 0a 3c 6c 69 3e 3c 62  b>.</li>..<li><b
213d0 3e 50 74 3c 2f 62 3e 20 69 73 20 6f 6e 65 20 62  >Pt</b> is one b
213e0 65 74 77 65 65 6e 20 50 6f 69 6e 74 46 72 6f 6d  etween PointFrom
213f0 20 6f 72 20 50 6f 69 6e 74 54 6f 2e 3c 2f 6c 69   or PointTo.</li
21400 3e 0d 0a 3c 2f 75 6c 3e 0d 0a 3c 62 72 3e 0d 0a  >..</ul>..<br>..
21410 3c 6f 6c 3e 0d 0a 3c 6c 69 3e 54 68 65 20 50 6f  <ol>..<li>The Po
21420 69 6e 74 2d 74 6f 2d 50 6f 69 6e 74 20 69 6e 74  int-to-Point int
21430 65 72 6e 61 6c 20 6c 6f 67 69 63 20 77 69 6c 6c  ernal logic will
21440 20 73 74 61 72 74 20 62 79 20 69 64 65 6e 74 69   start by identi
21450 66 79 69 6e 67 20 3c 62 3e 69 3c 2f 62 3e 2c 0d  fying <b>i</b>,.
21460 0a 74 68 61 74 20 69 73 20 74 68 65 20 50 6f 69  .that is the Poi
21470 6e 74 20 69 6e 74 65 72 73 65 63 74 69 6e 67 20  nt intersecting 
21480 3c 62 3e 4c 31 3c 2f 62 3e 20 61 6e 64 20 70 72  <b>L1</b> and pr
21490 65 73 65 6e 74 69 6e 67 20 74 68 65 20 6d 69 6e  esenting the min
214a0 69 6d 75 6d 20 64 69 73 74 61 6e 63 65 20 62 65  imum distance be
214b0 74 77 65 65 6e 20 74 68 65 20 4c 69 6e 6b 20 61  tween the Link a
214c0 6e 64 20 3c 62 3e 50 74 3c 2f 62 3e 0d 0a 28 63  nd <b>Pt</b>..(c
214d0 6f 72 72 65 73 70 6f 6e 64 69 6e 67 20 74 6f 20  orresponding to 
214e0 74 68 65 20 72 65 73 75 6c 74 20 72 65 74 75 72  the result retur
214f0 6e 65 64 20 62 79 20 63 61 6c 6c 69 6e 67 20 74  ned by calling t
21500 68 65 20 3c 62 3e 53 54 5f 4c 69 6e 65 5f 4c 6f  he <b>ST_Line_Lo
21510 63 61 74 65 5f 50 6f 69 6e 74 28 29 3c 2f 62 3e  cate_Point()</b>
21520 20 53 51 4c 20 66 75 6e 63 74 69 6f 6e 29 2e 3c   SQL function).<
21530 2f 6c 69 3e 0d 0a 3c 6c 69 3e 4e 6f 77 20 74 68  /li>..<li>Now th
21540 65 20 4c 69 6e 6b 20 3c 62 3e 4c 31 3c 2f 62 3e  e Link <b>L1</b>
21550 20 77 69 6c 6c 20 62 65 20 73 70 6c 69 74 20 69   will be split i
21560 6e 20 74 77 6f 20 68 61 6c 76 65 73 20 3c 62 3e  n two halves <b>
21570 4c 31 2d 61 3c 2f 62 3e 20 61 6e 64 20 3c 62 3e  L1-a</b> and <b>
21580 4c 31 2d 62 3c 2f 62 3e 20 61 63 63 6f 72 64 69  L1-b</b> accordi
21590 6e 67 6c 79 20 74 6f 20 74 68 65 20 70 6f 73 69  ngly to the posi
215a0 74 69 6f 6e 20 6f 66 20 3c 62 3e 69 3c 2f 62 3e  tion of <b>i</b>
215b0 0d 0a 28 63 6f 72 72 65 73 70 6f 6e 64 69 6e 67  ..(corresponding
215c0 20 74 6f 20 74 68 65 20 72 65 73 75 6c 74 73 20   to the results 
215d0 72 65 74 75 72 6e 65 64 20 62 79 20 63 61 6c 6c  returned by call
215e0 69 6e 67 20 74 68 65 20 3c 62 3e 53 54 5f 4c 69  ing the <b>ST_Li
215f0 6e 65 5f 53 75 62 73 74 72 69 6e 67 28 29 3c 2f  ne_Substring()</
21600 62 3e 20 53 51 4c 20 66 75 6e 63 74 69 6f 6e 29  b> SQL function)
21610 2e 3c 62 72 3e 0d 0a 42 6f 74 68 20 68 61 6c 76  .<br>..Both halv
21620 65 73 20 77 69 6c 6c 20 62 65 20 6e 6f 77 20 63  es will be now c
21630 6f 6e 73 69 64 65 72 65 64 20 61 73 20 70 6f 73  onsidered as pos
21640 73 69 62 6c 65 20 3c 62 3e 50 61 72 74 69 61 6c  sible <b>Partial
21650 20 4c 69 6e 6b 73 20 28 53 74 61 72 74 29 20 63   Links (Start) c
21660 61 6e 64 69 64 61 74 65 73 3c 2f 62 3e 20 6c 65  andidates</b> le
21670 61 64 69 6e 67 20 72 65 73 70 65 63 74 69 76 65  ading respective
21680 6c 79 20 74 6f 20 3c 62 3e 4e 31 3c 2f 62 3e 20  ly to <b>N1</b> 
21690 6f 72 20 3c 62 3e 4e 32 3c 2f 62 3e 3b 0d 0a 64  or <b>N2</b>;..d
216a0 69 72 65 63 74 69 6f 6e 73 20 77 69 6c 6c 20 62  irections will b
216b0 65 20 61 75 74 6f 6d 61 74 69 63 61 6c 6c 79 20  e automatically 
216c0 69 6e 76 65 72 74 65 64 20 61 73 20 72 65 71 75  inverted as requ
216d0 69 72 65 64 2c 20 62 75 74 20 6f 6e 6c 79 20 69  ired, but only i
216e0 66 20 74 68 65 72 65 20 61 72 65 20 6e 6f 20 3c  f there are no <
216f0 62 3e 6f 6e 65 2d 77 61 79 3c 2f 62 3e 20 66 6f  b>one-way</b> fo
21700 72 62 69 64 64 69 6e 67 20 72 65 73 74 72 69 63  rbidding restric
21710 74 69 6f 6e 73 2e 3c 62 72 3e 0d 0a 28 74 68 65  tions.<br>..(the
21720 20 64 69 72 65 63 74 69 6f 6e 73 20 77 69 6c 6c   directions will
21730 20 62 65 20 6f 62 76 69 6f 75 73 6c 79 20 69 6e   be obviously in
21740 76 65 72 74 65 64 20 69 6e 20 74 68 65 20 63 61  verted in the ca
21750 73 65 20 6f 66 20 3c 62 3e 50 61 72 74 69 61 6c  se of <b>Partial
21760 20 4c 69 6e 6b 73 20 28 45 6e 64 29 3c 2f 62 3e   Links (End)</b>
21770 20 2f 20 3c 62 3e 4e 6f 64 65 54 6f 3c 2f 62 3e   / <b>NodeTo</b>
21780 29 3c 2f 6c 69 3e 0d 0a 3c 6c 69 3e 41 6e 64 20  )</li>..<li>And 
21790 66 69 6e 61 6c 6c 79 20 61 20 73 74 72 61 69 67  finally a straig
217a0 68 74 20 73 65 67 6d 65 6e 74 20 3c 62 3e 70 3c  ht segment <b>p<
217b0 2f 62 3e 20 63 6f 6e 6e 65 63 74 69 6e 67 20 3c  /b> connecting <
217c0 62 3e 50 74 3c 2f 62 3e 20 74 6f 20 3c 62 3e 69  b>Pt</b> to <b>i
217d0 3c 2f 62 3e 20 77 69 6c 6c 20 62 65 20 63 6f 6e  </b> will be con
217e0 73 74 72 75 63 74 65 64 2e 0d 0a 53 6f 20 3c 62  structed...So <b
217f0 3e 70 3c 2f 62 3e 20 65 78 61 63 74 6c 79 20 63  >p</b> exactly c
21800 6f 72 72 65 73 70 6f 6e 64 73 20 74 6f 20 74 68  orresponds to th
21810 65 20 3c 62 3e 49 6e 67 72 65 73 73 20 50 61 74  e <b>Ingress Pat
21820 68 3c 2f 62 3e 20 69 66 20 3c 62 3e 50 74 3c 2f  h</b> if <b>Pt</
21830 62 3e 20 69 73 20 3c 62 3e 50 6f 69 6e 74 46 72  b> is <b>PointFr
21840 6f 6d 3c 2f 62 3e 2e 3c 62 72 3e 0d 0a 28 74 68  om</b>.<br>..(th
21850 65 20 64 69 72 65 63 74 69 6f 6e 20 73 68 6f 75  e direction shou
21860 6c 64 20 62 65 20 6f 62 76 69 6f 75 73 6c 79 20  ld be obviously 
21870 69 6e 76 65 72 74 65 64 20 69 6e 20 74 68 65 20  inverted in the 
21880 63 61 73 65 20 6f 66 20 74 68 65 20 3c 62 3e 45  case of the <b>E
21890 67 72 65 73 73 20 50 61 74 68 3c 2f 62 3e 20 2f  gress Path</b> /
218a0 20 3c 62 3e 50 6f 69 6e 74 54 6f 3c 2f 62 3e 29   <b>PointTo</b>)
218b0 3c 2f 6c 69 3e 0d 0a 3c 2f 6f 6c 3e 0d 0a 3c 2f  </li>..</ol>..</
218c0 74 64 3e 0d 0a 3c 74 64 3e 0d 0a 3c 69 6d 67 20  td>..<td>..<img 
218d0 73 72 63 3d 22 68 74 74 70 73 3a 2f 2f 77 77 77  src="https://www
218e0 2e 67 61 69 61 2d 67 69 73 2e 69 74 2f 67 61 69  .gaia-gis.it/gai
218f0 61 2d 73 69 6e 73 2f 72 6f 75 74 69 6e 67 2d 66  a-sins/routing-f
21900 69 67 73 2f 73 70 6c 69 74 2d 6c 69 6e 6b 2e 70  igs/split-link.p
21910 6e 67 22 20 61 6c 74 3d 22 70 32 70 2d 73 74 72  ng" alt="p2p-str
21920 75 63 74 22 3e 0d 0a 3c 2f 74 64 3e 3c 2f 74 72  uct">..</td></tr
21930 3e 0d 0a 3c 2f 74 61 62 6c 65 3e 0d 0a 3c 62 72  >..</table>..<br
21940 3e 0d 0a 3c 74 61 62 6c 65 20 62 67 63 6f 6c 6f  >..<table bgcolo
21950 72 3d 22 23 66 66 62 30 36 30 22 20 63 65 6c 6c  r="#ffb060" cell
21960 73 70 61 63 69 6e 67 3d 22 31 30 22 20 63 65 6c  spacing="10" cel
21970 6c 70 61 64 64 69 6e 67 3d 22 36 22 3e 3c 74 72  lpadding="6"><tr
21980 3e 3c 74 64 3e 0d 0a 3c 68 33 3e 57 61 72 6e 69  ><td>..<h3>Warni
21990 6e 67 3c 2f 68 33 3e 0d 0a 56 69 72 74 75 61 6c  ng</h3>..Virtual
219a0 52 6f 75 74 69 6e 67 20 77 68 65 6e 20 73 6f 6c  Routing when sol
219b0 76 69 6e 67 20 61 20 50 6f 69 6e 74 2d 74 6f 2d  ving a Point-to-
219c0 50 72 6f 62 6c 65 6d 20 72 65 71 75 69 72 65 73  Problem requires
219d0 20 74 6f 20 67 65 74 20 61 20 70 72 65 63 69 73   to get a precis
219e0 65 20 65 73 74 69 6d 61 74 69 6f 6e 20 6f 66 20  e estimation of 
219f0 3c 62 3e 43 6f 73 74 73 3c 2f 62 3e 20 72 65 6c  <b>Costs</b> rel
21a00 61 74 65 64 20 74 6f 20 3c 62 3e 49 6e 67 72 65  ated to <b>Ingre
21a10 73 73 3c 2f 62 3e 20 61 6e 64 20 3c 62 3e 45 67  ss</b> and <b>Eg
21a20 72 65 73 73 20 50 61 74 68 73 3c 2f 62 3e 20 61  ress Paths</b> a
21a30 6e 64 20 74 6f 20 3c 62 3e 50 61 72 74 69 61 6c  nd to <b>Partial
21a40 20 4c 69 6e 6b 73 3c 2f 62 3e 2e 3c 62 72 3e 0d   Links</b>.<br>.
21a50 0a 42 75 74 20 56 69 72 74 75 61 6c 52 6f 75 74  .But VirtualRout
21a60 69 6e 67 20 69 73 20 63 6f 6d 70 6c 65 74 65 6c  ing is completel
21a70 79 20 75 6e 61 62 6c 65 20 74 6f 20 63 6f 6d 70  y unable to comp
21a80 75 74 65 20 63 6f 6d 70 6c 65 78 20 28 61 6e 64  ute complex (and
21a90 20 75 6e 73 70 65 63 69 66 69 65 64 29 20 43 6f   unspecified) Co
21aa0 73 74 20 66 6f 72 6d 75 6c 61 65 2c 20 61 6e 64  st formulae, and
21ab0 20 63 6f 6e 73 65 71 75 65 6e 74 6c 79 20 69 74   consequently it
21ac0 20 63 61 6e 20 73 69 6d 70 6c 79 20 61 73 73 75   can simply assu
21ad0 6d 65 20 61 20 43 6f 73 74 20 63 6f 72 72 65 73  me a Cost corres
21ae0 70 6f 6e 64 69 6e 67 20 74 6f 20 74 68 65 20 47  ponding to the G
21af0 65 6f 6d 65 74 72 69 63 20 4c 65 6e 67 74 68 20  eometric Length 
21b00 6f 66 20 73 75 63 68 20 69 74 65 6d 73 2e 3c 62  of such items.<b
21b10 72 3e 3c 62 72 3e 0d 0a 3c 62 3e 43 6f 6e 63 6c  r><br>..<b>Concl
21b20 75 73 69 6f 6e 3c 2f 62 3e 3a 20 6f 6e 6c 79 20  usion</b>: only 
21b30 4e 65 74 77 6f 72 6b 73 20 62 61 73 65 64 20 6f  Networks based o
21b40 6e 20 3c 62 3e 43 6f 73 74 73 3c 2f 62 3e 20 63  n <b>Costs</b> c
21b50 6f 72 72 65 73 70 6f 6e 64 69 6e 67 20 74 6f 20  orresponding to 
21b60 3c 62 3e 47 65 6f 6d 65 74 72 69 63 20 4c 65 6e  <b>Geometric Len
21b70 67 74 68 73 3c 2f 62 3e 20 63 61 6e 20 65 66 66  gths</b> can eff
21b80 65 63 74 69 76 65 6c 79 20 73 75 70 70 6f 72 74  ectively support
21b90 20 50 6f 69 6e 74 2d 74 6f 2d 50 6f 69 6e 74 20   Point-to-Point 
21ba0 71 75 65 72 69 65 73 2e 3c 62 72 3e 0d 0a 41 6e  queries.<br>..An
21bb0 79 20 64 69 66 66 65 72 65 6e 74 20 4e 65 74 77  y different Netw
21bc0 6f 72 6b 20 63 6f 6e 66 69 67 75 72 61 74 69 6f  ork configuratio
21bd0 6e 20 77 69 6c 6c 20 73 75 72 65 6c 79 20 6c 65  n will surely le
21be0 61 64 20 74 6f 20 77 72 6f 6e 67 20 61 6e 64 20  ad to wrong and 
21bf0 69 6e 63 6f 6e 73 69 73 74 65 6e 74 20 72 65 73  inconsistent res
21c00 75 6c 74 73 2e 0d 0a 3c 62 72 3e 3c 62 72 3e 0d  ults...<br><br>.
21c10 0a 3c 2f 74 64 3e 3c 2f 74 72 3e 3c 2f 74 61 62  .</td></tr></tab
21c20 6c 65 3e 0d 0a 3c 62 72 3e 3c 62 72 3e 0d 0a 4c  le>..<br><br>..L
21c30 65 74 27 73 20 6e 6f 77 20 65 78 61 6d 69 6e 65  et's now examine
21c40 20 61 20 70 72 61 63 74 69 63 61 6c 20 65 78 61   a practical exa
21c50 6d 70 6c 65 20 6f 66 20 50 6f 69 6e 74 2d 74 6f  mple of Point-to
21c60 2d 50 6f 69 6e 74 20 73 6f 6c 76 69 6e 67 20 75  -Point solving u
21c70 73 69 6e 67 20 56 69 72 74 75 61 6c 52 6f 75 74  sing VirtualRout
21c80 69 6e 67 2e 0d 0a 3c 76 65 72 62 61 74 69 6d 3e  ing...<verbatim>
21c90 0d 0a 53 45 4c 45 43 54 20 41 6c 67 6f 72 69 74  ..SELECT Algorit
21ca0 68 6d 2c 20 52 65 71 75 65 73 74 2c 20 4f 70 74  hm, Request, Opt
21cb0 69 6f 6e 73 2c 20 52 6f 75 74 65 49 64 2c 20 52  ions, RouteId, R
21cc0 6f 75 74 65 52 6f 77 2c 20 52 6f 6c 65 2c 20 4c  outeRow, Role, L
21cd0 69 6e 6b 52 6f 77 69 64 2c 20 4e 6f 64 65 46 72  inkRowid, NodeFr
21ce0 6f 6d 2c 20 4e 6f 64 65 54 6f 2c 20 50 6f 69 6e  om, NodeTo, Poin
21cf0 74 46 72 6f 6d 2c 20 50 6f 69 6e 74 54 6f 2c 20  tFrom, PointTo, 
21d00 54 6f 6c 65 72 61 6e 63 65 2c 20 43 6f 73 74 2c  Tolerance, Cost,
21d10 20 47 65 6f 6d 65 74 72 79 2c 20 4e 61 6d 65 0d   Geometry, Name.
21d20 0a 46 52 4f 4d 20 62 79 66 6f 6f 74 0d 0a 57 48  .FROM byfoot..WH
21d30 45 52 45 20 50 6f 69 6e 74 46 72 6f 6d 20 3d 20  ERE PointFrom = 
21d40 28 53 45 4c 45 43 54 20 67 65 6f 6d 20 46 52 4f  (SELECT geom FRO
21d50 4d 20 68 6f 75 73 65 5f 6e 72 5f 76 77 20 57 48  M house_nr_vw WH
21d60 45 52 45 20 6d 75 6e 69 63 69 70 61 6c 69 74 79  ERE municipality
21d70 20 3d 20 27 41 52 45 5a 5a 4f 27 20 41 4e 44 20   = 'AREZZO' AND 
21d80 61 64 64 72 65 73 73 20 3d 20 27 56 49 41 20 44  address = 'VIA D
21d90 45 27 27 20 43 45 4e 43 49 20 31 33 27 29 0d 0a  E'' CENCI 13')..
21da0 20 20 20 20 41 4e 44 20 50 6f 69 6e 74 54 6f 20      AND PointTo 
21db0 3d 20 28 53 45 4c 45 43 54 20 67 65 6f 6d 20 46  = (SELECT geom F
21dc0 52 4f 4d 20 68 6f 75 73 65 5f 6e 72 5f 76 77 20  ROM house_nr_vw 
21dd0 57 48 45 52 45 20 6d 75 6e 69 63 69 70 61 6c 69  WHERE municipali
21de0 74 79 20 3d 20 27 41 52 45 5a 5a 4f 27 20 41 4e  ty = 'AREZZO' AN
21df0 44 20 61 64 64 72 65 73 73 20 3d 20 27 56 49 41  D address = 'VIA
21e00 20 41 4e 54 4f 4e 49 4f 20 47 55 41 44 41 47 4e   ANTONIO GUADAGN
21e10 4f 4c 49 20 31 39 2f 42 27 29 3b 0d 0a 3c 2f 76  OLI 19/B');..</v
21e20 65 72 62 61 74 69 6d 3e 0d 0a 41 20 3c 62 3e 50  erbatim>..A <b>P
21e30 6f 69 6e 74 2d 74 6f 2d 50 6f 69 6e 74 3c 2f 62  oint-to-Point</b
21e40 3e 20 71 75 65 72 79 20 68 61 73 20 74 68 65 20  > query has the 
21e50 73 61 6d 65 20 66 6f 72 6d 20 6f 66 20 61 20 3c  same form of a <
21e60 62 3e 73 69 6e 67 6c 65 2d 64 65 73 74 69 6e 61  b>single-destina
21e70 74 69 6f 6e 20 53 68 6f 72 74 65 73 74 20 50 61  tion Shortest Pa
21e80 74 68 3c 2f 62 3e 20 71 75 65 72 79 2c 20 65 78  th</b> query, ex
21e90 63 65 70 74 20 74 68 61 74 20 3c 62 3e 4e 6f 64  cept that <b>Nod
21ea0 65 46 72 6f 6d 3c 2f 62 3e 20 61 6e 64 20 3c 62  eFrom</b> and <b
21eb0 3e 4e 6f 64 65 54 6f 3c 2f 62 3e 20 61 72 65 20  >NodeTo</b> are 
21ec0 6e 6f 77 20 72 65 70 6c 61 63 65 64 20 62 79 20  now replaced by 
21ed0 3c 62 3e 50 6f 69 6e 74 46 72 6f 6d 3c 2f 62 3e  <b>PointFrom</b>
21ee0 20 61 6e 64 20 3c 62 3e 50 6f 69 6e 74 54 6f 3c   and <b>PointTo<
21ef0 2f 62 3e 2e 3c 62 72 3e 0d 0a 3c 75 3e 4e 6f 74  /b>.<br>..<u>Not
21f00 65 3c 2f 75 3e 20 74 68 65 20 73 61 6d 70 6c 65  e</u> the sample
21f10 20 44 42 2d 66 69 6c 65 20 73 75 70 70 6f 72 74   DB-file support
21f20 73 20 3c 62 3e 48 6f 75 73 65 20 4e 75 6d 62 65  s <b>House Numbe
21f30 72 73 3c 2f 62 3e 2c 20 73 6f 20 79 6f 75 20 63  rs</b>, so you c
21f40 61 6e 20 64 69 72 65 63 74 6c 79 20 75 73 65 20  an directly use 
21f50 48 6f 75 73 65 20 4e 75 6d 62 65 72 20 63 6f 6f  House Number coo
21f60 72 64 69 6e 61 74 65 73 20 61 73 20 72 65 66 65  rdinates as refe
21f70 72 65 6e 63 65 20 50 6f 69 6e 74 73 2e 0d 0a 3c  rence Points...<
21f80 62 72 3e 3c 62 72 3e 0d 0a 54 68 65 20 66 6f 6c  br><br>..The fol
21f90 6c 6f 77 69 6e 67 20 74 61 62 6c 65 20 73 68 6f  lowing table sho
21fa0 77 73 20 74 68 65 20 72 65 73 75 6c 74 73 65 74  ws the resultset
21fb0 20 72 65 74 75 72 6e 65 64 20 62 79 20 74 68 65   returned by the
21fc0 20 61 62 6f 76 65 20 50 6f 69 6e 74 2d 74 6f 2d   above Point-to-
21fd0 50 6f 69 6e 74 20 71 75 65 72 79 2e 3c 62 72 3e  Point query.<br>
21fe0 3c 62 72 3e 0d 0a 3c 74 61 62 6c 65 20 62 6f 72  <br>..<table bor
21ff0 64 65 72 3d 22 31 22 20 62 67 63 6f 6c 6f 72 3d  der="1" bgcolor=
22000 22 23 66 66 66 66 63 66 22 20 63 65 6c 6c 73 70  "#ffffcf" cellsp
22010 61 63 69 6e 67 3d 22 34 22 20 63 65 6c 6c 70 61  acing="4" cellpa
22020 64 64 69 6e 67 3d 22 36 22 3e 0d 0a 3c 74 72 3e  dding="6">..<tr>
22030 3c 74 68 20 62 67 63 6f 6c 6f 72 3d 22 23 64 30  <th bgcolor="#d0
22040 64 30 61 30 22 3e 41 6c 67 6f 72 69 74 68 6d 3c  d0a0">Algorithm<
22050 2f 74 68 3e 3c 74 68 20 62 67 63 6f 6c 6f 72 3d  /th><th bgcolor=
22060 22 23 64 30 64 30 61 30 22 3e 52 65 71 75 65 73  "#d0d0a0">Reques
22070 74 3c 2f 74 68 3e 3c 74 68 20 62 67 63 6f 6c 6f  t</th><th bgcolo
22080 72 3d 22 23 64 30 64 30 61 30 22 3e 4f 70 74 69  r="#d0d0a0">Opti
22090 6f 6e 73 3c 2f 74 68 3e 3c 74 68 20 62 67 63 6f  ons</th><th bgco
220a0 6c 6f 72 3d 22 23 64 30 64 30 61 30 22 3e 52 6f  lor="#d0d0a0">Ro
220b0 75 74 65 49 64 3c 2f 74 68 3e 3c 74 68 20 62 67  uteId</th><th bg
220c0 63 6f 6c 6f 72 3d 22 23 64 30 64 30 61 30 22 3e  color="#d0d0a0">
220d0 52 6f 75 74 65 52 6f 77 3c 2f 74 68 3e 3c 74 68  RouteRow</th><th
220e0 20 62 67 63 6f 6c 6f 72 3d 22 23 64 30 64 30 61   bgcolor="#d0d0a
220f0 30 22 3e 52 6f 6c 65 3c 2f 74 68 3e 3c 74 68 20  0">Role</th><th 
22100 62 67 63 6f 6c 6f 72 3d 22 23 64 30 64 30 61 30  bgcolor="#d0d0a0
22110 22 3e 4c 69 6e 6b 52 6f 77 69 64 3c 2f 74 68 3e  ">LinkRowid</th>
22120 3c 74 68 20 62 67 63 6f 6c 6f 72 3d 22 23 64 30  <th bgcolor="#d0
22130 64 30 61 30 22 3e 4e 6f 64 65 46 72 6f 6d 3c 2f  d0a0">NodeFrom</
22140 74 68 3e 3c 74 68 20 62 67 63 6f 6c 6f 72 3d 22  th><th bgcolor="
22150 23 64 30 64 30 61 30 22 3e 4e 6f 64 65 54 6f 3c  #d0d0a0">NodeTo<
22160 2f 74 68 3e 3c 74 68 20 62 67 63 6f 6c 6f 72 3d  /th><th bgcolor=
22170 22 23 64 30 64 30 61 30 22 3e 50 6f 69 6e 74 46  "#d0d0a0">PointF
22180 72 6f 6d 3c 2f 74 68 3e 3c 74 68 20 62 67 63 6f  rom</th><th bgco
22190 6c 6f 72 3d 22 23 64 30 64 30 61 30 22 3e 50 6f  lor="#d0d0a0">Po
221a0 69 6e 74 54 6f 3c 2f 74 68 3e 3c 74 68 20 62 67  intTo</th><th bg
221b0 63 6f 6c 6f 72 3d 22 23 64 30 64 30 61 30 22 3e  color="#d0d0a0">
221c0 54 6f 6c 65 72 61 6e 63 65 3c 2f 74 68 3e 3c 74  Tolerance</th><t
221d0 68 20 62 67 63 6f 6c 6f 72 3d 22 23 64 30 64 30  h bgcolor="#d0d0
221e0 61 30 22 3e 43 6f 73 74 3c 2f 74 68 3e 3c 74 68  a0">Cost</th><th
221f0 20 62 67 63 6f 6c 6f 72 3d 22 23 64 30 64 30 61   bgcolor="#d0d0a
22200 30 22 3e 47 65 6f 6d 65 74 72 79 3c 2f 74 68 3e  0">Geometry</th>
22210 3c 74 68 20 62 67 63 6f 6c 6f 72 3d 22 23 64 30  <th bgcolor="#d0
22220 64 30 61 30 22 3e 4e 61 6d 65 3c 2f 74 68 3e 3c  d0a0">Name</th><
22230 2f 74 72 3e 0d 0a 3c 74 72 3e 0d 0a 3c 74 64 3e  /tr>..<tr>..<td>
22240 44 69 6a 6b 73 74 72 61 3c 2f 74 64 3e 3c 74 64  Dijkstra</td><td
22250 3e 50 6f 69 6e 74 32 50 6f 69 6e 74 20 50 61 74  >Point2Point Pat
22260 68 3c 2f 74 64 3e 3c 74 64 3e 46 75 6c 6c 3c 2f  h</td><td>Full</
22270 74 64 3e 3c 74 64 20 61 6c 69 67 6e 3d 22 72 69  td><td align="ri
22280 67 68 74 22 3e 30 3c 2f 74 64 3e 3c 74 64 20 61  ght">0</td><td a
22290 6c 69 67 6e 3d 22 72 69 67 68 74 22 3e 30 3c 2f  lign="right">0</
222a0 74 64 3e 3c 74 64 3e 50 6f 69 6e 74 32 50 6f 69  td><td>Point2Poi
222b0 6e 74 20 53 6f 6c 75 74 69 6f 6e 3c 2f 74 64 3e  nt Solution</td>
222c0 3c 74 64 3e 4e 55 4c 4c 3c 2f 74 64 3e 3c 74 64  <td>NULL</td><td
222d0 3e 4e 55 4c 4c 3c 2f 74 64 3e 3c 74 64 3e 4e 55  >NULL</td><td>NU
222e0 4c 4c 3c 2f 74 64 3e 3c 74 64 3e 42 4c 4f 42 20  LL</td><td>BLOB 
222f0 73 7a 3d 36 38 20 47 45 4f 4d 45 54 52 59 3c 2f  sz=68 GEOMETRY</
22300 74 64 3e 3c 74 64 3e 42 4c 4f 42 20 73 7a 3d 36  td><td>BLOB sz=6
22310 38 20 47 45 4f 4d 45 54 52 59 3c 2f 74 64 3e 3c  8 GEOMETRY</td><
22320 74 64 20 61 6c 69 67 6e 3d 22 72 69 67 68 74 22  td align="right"
22330 3e 32 30 2e 30 30 30 30 30 30 3c 2f 74 64 3e 3c  >20.000000</td><
22340 74 64 20 61 6c 69 67 6e 3d 22 72 69 67 68 74 22  td align="right"
22350 3e 36 35 32 2e 38 31 35 31 33 39 3c 2f 74 64 3e  >652.815139</td>
22360 3c 74 64 3e 42 4c 4f 42 20 73 7a 3d 31 35 35 32  <td>BLOB sz=1552
22370 20 47 45 4f 4d 45 54 52 59 3c 2f 74 64 3e 3c 74   GEOMETRY</td><t
22380 64 3e 4e 55 4c 4c 3c 2f 74 64 3e 0d 0a 3c 2f 74  d>NULL</td>..</t
22390 72 3e 0d 0a 3c 74 72 3e 0d 0a 3c 74 64 3e 4e 55  r>..<tr>..<td>NU
223a0 4c 4c 3c 2f 74 64 3e 3c 74 64 3e 4e 55 4c 4c 3c  LL</td><td>NULL<
223b0 2f 74 64 3e 3c 74 64 3e 4e 55 4c 4c 3c 2f 74 64  /td><td>NULL</td
223c0 3e 3c 74 64 20 61 6c 69 67 6e 3d 22 72 69 67 68  ><td align="righ
223d0 74 22 3e 30 3c 2f 74 64 3e 3c 74 64 20 61 6c 69  t">0</td><td ali
223e0 67 6e 3d 22 72 69 67 68 74 22 3e 31 3c 2f 74 64  gn="right">1</td
223f0 3e 3c 74 64 3e 49 6e 67 72 65 73 73 20 50 61 74  ><td>Ingress Pat
22400 68 3c 2f 74 64 3e 3c 74 64 3e 4e 55 4c 4c 3c 2f  h</td><td>NULL</
22410 74 64 3e 3c 74 64 3e 4e 55 4c 4c 3c 2f 74 64 3e  td><td>NULL</td>
22420 3c 74 64 3e 4e 55 4c 4c 3c 2f 74 64 3e 3c 74 64  <td>NULL</td><td
22430 3e 4e 55 4c 4c 3c 2f 74 64 3e 3c 74 64 3e 4e 55  >NULL</td><td>NU
22440 4c 4c 3c 2f 74 64 3e 3c 74 64 3e 4e 55 4c 4c 3c  LL</td><td>NULL<
22450 2f 74 64 3e 3c 74 64 20 61 6c 69 67 6e 3d 22 72  /td><td align="r
22460 69 67 68 74 22 3e 32 2e 33 30 31 36 38 37 3c 2f  ight">2.301687</
22470 74 64 3e 3c 74 64 3e 4e 55 4c 4c 3c 2f 74 64 3e  td><td>NULL</td>
22480 3c 74 64 3e 4e 55 4c 4c 3c 2f 74 64 3e 0d 0a 3c  <td>NULL</td>..<
22490 2f 74 72 3e 0d 0a 3c 74 72 3e 0d 0a 3c 74 64 3e  /tr>..<tr>..<td>
224a0 4e 55 4c 4c 3c 2f 74 64 3e 3c 74 64 3e 4e 55 4c  NULL</td><td>NUL
224b0 4c 3c 2f 74 64 3e 3c 74 64 3e 4e 55 4c 4c 3c 2f  L</td><td>NULL</
224c0 74 64 3e 3c 74 64 20 61 6c 69 67 6e 3d 22 72 69  td><td align="ri
224d0 67 68 74 22 3e 30 3c 2f 74 64 3e 3c 74 64 20 61  ght">0</td><td a
224e0 6c 69 67 6e 3d 22 72 69 67 68 74 22 3e 32 3c 2f  lign="right">2</
224f0 74 64 3e 3c 74 64 3e 50 61 72 74 69 61 6c 20 4c  td><td>Partial L
22500 69 6e 6b 20 28 53 74 61 72 74 29 3c 2f 74 64 3e  ink (Start)</td>
22510 3c 74 64 20 61 6c 69 67 6e 3d 22 72 69 67 68 74  <td align="right
22520 22 3e 32 32 34 32 36 34 3c 2f 74 64 3e 3c 74 64  ">224264</td><td
22530 3e 4e 55 4c 4c 3c 2f 74 64 3e 3c 74 64 20 61 6c  >NULL</td><td al
22540 69 67 6e 3d 22 72 69 67 68 74 22 3e 31 38 32 36  ign="right">1826
22550 33 30 3c 2f 74 64 3e 3c 74 64 3e 4e 55 4c 4c 3c  30</td><td>NULL<
22560 2f 74 64 3e 3c 74 64 3e 4e 55 4c 4c 3c 2f 74 64  /td><td>NULL</td
22570 3e 3c 74 64 3e 4e 55 4c 4c 3c 2f 74 64 3e 3c 74  ><td>NULL</td><t
22580 64 20 61 6c 69 67 6e 3d 22 72 69 67 68 74 22 3e  d align="right">
22590 34 36 2e 30 38 32 37 36 31 3c 2f 74 64 3e 3c 74  46.082761</td><t
225a0 64 3e 4e 55 4c 4c 3c 2f 74 64 3e 3c 74 64 3e 56  d>NULL</td><td>V
225b0 49 41 20 44 45 27 20 43 45 4e 43 49 3c 2f 74 64  IA DE' CENCI</td
225c0 3e 0d 0a 3c 2f 74 72 3e 0d 0a 3c 74 72 3e 0d 0a  >..</tr>..<tr>..
225d0 3c 74 64 3e 4e 55 4c 4c 3c 2f 74 64 3e 3c 74 64  <td>NULL</td><td
225e0 3e 4e 55 4c 4c 3c 2f 74 64 3e 3c 74 64 3e 4e 55  >NULL</td><td>NU
225f0 4c 4c 3c 2f 74 64 3e 3c 74 64 20 61 6c 69 67 6e  LL</td><td align
22600 3d 22 72 69 67 68 74 22 3e 30 3c 2f 74 64 3e 3c  ="right">0</td><
22610 74 64 20 61 6c 69 67 6e 3d 22 72 69 67 68 74 22  td align="right"
22620 3e 33 3c 2f 74 64 3e 3c 74 64 3e 4c 69 6e 6b 3c  >3</td><td>Link<
22630 2f 74 64 3e 3c 74 64 20 61 6c 69 67 6e 3d 22 72  /td><td align="r
22640 69 67 68 74 22 3e 32 32 33 37 35 38 3c 2f 74 64  ight">223758</td
22650 3e 3c 74 64 20 61 6c 69 67 6e 3d 22 72 69 67 68  ><td align="righ
22660 74 22 3e 31 38 32 36 33 30 3c 2f 74 64 3e 3c 74  t">182630</td><t
22670 64 20 61 6c 69 67 6e 3d 22 72 69 67 68 74 22 3e  d align="right">
22680 31 38 32 36 32 39 3c 2f 74 64 3e 3c 74 64 3e 4e  182629</td><td>N
22690 55 4c 4c 3c 2f 74 64 3e 3c 74 64 3e 4e 55 4c 4c  ULL</td><td>NULL
226a0 3c 2f 74 64 3e 3c 74 64 3e 4e 55 4c 4c 3c 2f 74  </td><td>NULL</t
226b0 64 3e 3c 74 64 20 61 6c 69 67 6e 3d 22 72 69 67  d><td align="rig
226c0 68 74 22 3e 32 34 2e 31 39 38 31 31 35 3c 2f 74  ht">24.198115</t
226d0 64 3e 3c 74 64 3e 4e 55 4c 4c 3c 2f 74 64 3e 3c  d><td>NULL</td><
226e0 74 64 3e 43 4f 52 53 4f 20 49 54 41 4c 49 41 3c  td>CORSO ITALIA<
226f0 2f 74 64 3e 0d 0a 3c 2f 74 72 3e 0d 0a 3c 74 72  /td>..</tr>..<tr
22700 3e 0d 0a 3c 74 64 3e 4e 55 4c 4c 3c 2f 74 64 3e  >..<td>NULL</td>
22710 3c 74 64 3e 4e 55 4c 4c 3c 2f 74 64 3e 3c 74 64  <td>NULL</td><td
22720 3e 4e 55 4c 4c 3c 2f 74 64 3e 3c 74 64 20 61 6c  >NULL</td><td al
22730 69 67 6e 3d 22 72 69 67 68 74 22 3e 30 3c 2f 74  ign="right">0</t
22740 64 3e 3c 74 64 20 61 6c 69 67 6e 3d 22 72 69 67  d><td align="rig
22750 68 74 22 3e 34 3c 2f 74 64 3e 3c 74 64 3e 4c 69  ht">4</td><td>Li
22760 6e 6b 3c 2f 74 64 3e 3c 74 64 20 61 6c 69 67 6e  nk</td><td align
22770 3d 22 72 69 67 68 74 22 3e 32 32 35 35 31 32 3c  ="right">225512<
22780 2f 74 64 3e 3c 74 64 20 61 6c 69 67 6e 3d 22 72  /td><td align="r
22790 69 67 68 74 22 3e 31 38 32 36 32 39 3c 2f 74 64  ight">182629</td
227a0 3e 3c 74 64 20 61 6c 69 67 6e 3d 22 72 69 67 68  ><td align="righ
227b0 74 22 3e 31 38 32 39 33 33 3c 2f 74 64 3e 3c 74  t">182933</td><t
227c0 64 3e 4e 55 4c 4c 3c 2f 74 64 3e 3c 74 64 3e 4e  d>NULL</td><td>N
227d0 55 4c 4c 3c 2f 74 64 3e 3c 74 64 3e 4e 55 4c 4c  ULL</td><td>NULL
227e0 3c 2f 74 64 3e 3c 74 64 20 61 6c 69 67 6e 3d 22  </td><td align="
227f0 72 69 67 68 74 22 3e 33 34 2e 31 38 34 31 39 34  right">34.184194
22800 3c 2f 74 64 3e 3c 74 64 3e 4e 55 4c 4c 3c 2f 74  </td><td>NULL</t
22810 64 3e 3c 74 64 3e 43 4f 52 53 4f 20 49 54 41 4c  d><td>CORSO ITAL
22820 49 41 3c 2f 74 64 3e 0d 0a 3c 2f 74 72 3e 0d 0a  IA</td>..</tr>..
22830 3c 74 72 3e 0d 0a 3c 74 64 3e 4e 55 4c 4c 3c 2f  <tr>..<td>NULL</
22840 74 64 3e 3c 74 64 3e 4e 55 4c 4c 3c 2f 74 64 3e  td><td>NULL</td>
22850 3c 74 64 3e 4e 55 4c 4c 3c 2f 74 64 3e 3c 74 64  <td>NULL</td><td
22860 20 61 6c 69 67 6e 3d 22 72 69 67 68 74 22 3e 30   align="right">0
22870 3c 2f 74 64 3e 3c 74 64 20 61 6c 69 67 6e 3d 22  </td><td align="
22880 72 69 67 68 74 22 3e 35 3c 2f 74 64 3e 3c 74 64  right">5</td><td
22890 3e 4c 69 6e 6b 3c 2f 74 64 3e 3c 74 64 20 61 6c  >Link</td><td al
228a0 69 67 6e 3d 22 72 69 67 68 74 22 3e 32 32 35 35  ign="right">2255
228b0 31 31 3c 2f 74 64 3e 3c 74 64 20 61 6c 69 67 6e  11</td><td align
228c0 3d 22 72 69 67 68 74 22 3e 31 38 32 39 33 33 3c  ="right">182933<
228d0 2f 74 64 3e 3c 74 64 20 61 6c 69 67 6e 3d 22 72  /td><td align="r
228e0 69 67 68 74 22 3e 31 38 31 39 39 39 3c 2f 74 64  ight">181999</td
228f0 3e 3c 74 64 3e 4e 55 4c 4c 3c 2f 74 64 3e 3c 74  ><td>NULL</td><t
22900 64 3e 4e 55 4c 4c 3c 2f 74 64 3e 3c 74 64 3e 4e  d>NULL</td><td>N
22910 55 4c 4c 3c 2f 74 64 3e 3c 74 64 20 61 6c 69 67  ULL</td><td alig
22920 6e 3d 22 72 69 67 68 74 22 3e 34 39 2e 32 34 31  n="right">49.241
22930 37 33 35 3c 2f 74 64 3e 3c 74 64 3e 4e 55 4c 4c  735</td><td>NULL
22940 3c 2f 74 64 3e 3c 74 64 3e 43 4f 52 53 4f 20 49  </td><td>CORSO I
22950 54 41 4c 49 41 3c 2f 74 64 3e 0d 0a 3c 2f 74 72  TALIA</td>..</tr
22960 3e 0d 0a 3c 74 72 3e 0d 0a 3c 74 64 3e 4e 55 4c  >..<tr>..<td>NUL
22970 4c 3c 2f 74 64 3e 3c 74 64 3e 4e 55 4c 4c 3c 2f  L</td><td>NULL</
22980 74 64 3e 3c 74 64 3e 4e 55 4c 4c 3c 2f 74 64 3e  td><td>NULL</td>
22990 3c 74 64 20 61 6c 69 67 6e 3d 22 72 69 67 68 74  <td align="right
229a0 22 3e 30 3c 2f 74 64 3e 3c 74 64 20 61 6c 69 67  ">0</td><td alig
229b0 6e 3d 22 72 69 67 68 74 22 3e 36 3c 2f 74 64 3e  n="right">6</td>
229c0 3c 74 64 3e 4c 69 6e 6b 3c 2f 74 64 3e 3c 74 64  <td>Link</td><td
229d0 20 61 6c 69 67 6e 3d 22 72 69 67 68 74 22 3e 32   align="right">2
229e0 32 32 36 33 35 3c 2f 74 64 3e 3c 74 64 20 61 6c  22635</td><td al
229f0 69 67 6e 3d 22 72 69 67 68 74 22 3e 31 38 31 39  ign="right">1819
22a00 39 39 3c 2f 74 64 3e 3c 74 64 20 61 6c 69 67 6e  99</td><td align
22a10 3d 22 72 69 67 68 74 22 3e 31 38 31 39 39 38 3c  ="right">181998<
22a20 2f 74 64 3e 3c 74 64 3e 4e 55 4c 4c 3c 2f 74 64  /td><td>NULL</td
22a30 3e 3c 74 64 3e 4e 55 4c 4c 3c 2f 74 64 3e 3c 74  ><td>NULL</td><t
22a40 64 3e 4e 55 4c 4c 3c 2f 74 64 3e 3c 74 64 20 61  d>NULL</td><td a
22a50 6c 69 67 6e 3d 22 72 69 67 68 74 22 3e 31 30 31  lign="right">101
22a60 2e 36 32 39 37 35 30 3c 2f 74 64 3e 3c 74 64 3e  .629750</td><td>
22a70 4e 55 4c 4c 3c 2f 74 64 3e 3c 74 64 3e 43 4f 52  NULL</td><td>COR
22a80 53 4f 20 49 54 41 4c 49 41 3c 2f 74 64 3e 0d 0a  SO ITALIA</td>..
22a90 3c 2f 74 72 3e 0d 0a 3c 74 72 3e 0d 0a 3c 74 64  </tr>..<tr>..<td
22aa0 3e 4e 55 4c 4c 3c 2f 74 64 3e 3c 74 64 3e 4e 55  >NULL</td><td>NU
22ab0 4c 4c 3c 2f 74 64 3e 3c 74 64 3e 4e 55 4c 4c 3c  LL</td><td>NULL<
22ac0 2f 74 64 3e 3c 74 64 20 61 6c 69 67 6e 3d 22 72  /td><td align="r
22ad0 69 67 68 74 22 3e 30 3c 2f 74 64 3e 3c 74 64 20  ight">0</td><td 
22ae0 61 6c 69 67 6e 3d 22 72 69 67 68 74 22 3e 37 3c  align="right">7<
22af0 2f 74 64 3e 3c 74 64 3e 4c 69 6e 6b 3c 2f 74 64  /td><td>Link</td
22b00 3e 3c 74 64 20 61 6c 69 67 6e 3d 22 72 69 67 68  ><td align="righ
22b10 74 22 3e 32 32 34 37 38 30 3c 2f 74 64 3e 3c 74  t">224780</td><t
22b20 64 20 61 6c 69 67 6e 3d 22 72 69 67 68 74 22 3e  d align="right">
22b30 31 38 31 39 39 38 3c 2f 74 64 3e 3c 74 64 20 61  181998</td><td a
22b40 6c 69 67 6e 3d 22 72 69 67 68 74 22 3e 31 38 33  lign="right">183
22b50 35 36 30 3c 2f 74 64 3e 3c 74 64 3e 4e 55 4c 4c  560</td><td>NULL
22b60 3c 2f 74 64 3e 3c 74 64 3e 4e 55 4c 4c 3c 2f 74  </td><td>NULL</t
22b70 64 3e 3c 74 64 3e 4e 55 4c 4c 3c 2f 74 64 3e 3c  d><td>NULL</td><
22b80 74 64 20 61 6c 69 67 6e 3d 22 72 69 67 68 74 22  td align="right"
22b90 3e 37 33 2e 37 33 33 35 37 32 3c 2f 74 64 3e 3c  >73.733572</td><
22ba0 74 64 3e 4e 55 4c 4c 3c 2f 74 64 3e 3c 74 64 3e  td>NULL</td><td>
22bb0 56 49 41 20 44 45 4c 4c 27 41 4e 46 49 54 45 41  VIA DELL'ANFITEA
22bc0 54 52 4f 3c 2f 74 64 3e 0d 0a 3c 2f 74 72 3e 0d  TRO</td>..</tr>.
22bd0 0a 3c 74 72 3e 0d 0a 3c 74 64 3e 4e 55 4c 4c 3c  .<tr>..<td>NULL<
22be0 2f 74 64 3e 3c 74 64 3e 4e 55 4c 4c 3c 2f 74 64  /td><td>NULL</td
22bf0 3e 3c 74 64 3e 4e 55 4c 4c 3c 2f 74 64 3e 3c 74  ><td>NULL</td><t
22c00 64 20 61 6c 69 67 6e 3d 22 72 69 67 68 74 22 3e  d align="right">
22c10 30 3c 2f 74 64 3e 3c 74 64 20 61 6c 69 67 6e 3d  0</td><td align=
22c20 22 72 69 67 68 74 22 3e 38 3c 2f 74 64 3e 3c 74  "right">8</td><t
22c30 64 3e 4c 69 6e 6b 3c 2f 74 64 3e 3c 74 64 20 61  d>Link</td><td a
22c40 6c 69 67 6e 3d 22 72 69 67 68 74 22 3e 32 32 35  lign="right">225
22c50 38 32 37 3c 2f 74 64 3e 3c 74 64 20 61 6c 69 67  827</td><td alig
22c60 6e 3d 22 72 69 67 68 74 22 3e 31 38 33 35 36 30  n="right">183560
22c70 3c 2f 74 64 3e 3c 74 64 20 61 6c 69 67 6e 3d 22  </td><td align="
22c80 72 69 67 68 74 22 3e 31 38 33 32 38 36 3c 2f 74  right">183286</t
22c90 64 3e 3c 74 64 3e 4e 55 4c 4c 3c 2f 74 64 3e 3c  d><td>NULL</td><
22ca0 74 64 3e 4e 55 4c 4c 3c 2f 74 64 3e 3c 74 64 3e  td>NULL</td><td>
22cb0 4e 55 4c 4c 3c 2f 74 64 3e 3c 74 64 20 61 6c 69  NULL</td><td ali
22cc0 67 6e 3d 22 72 69 67 68 74 22 3e 34 32 2e 33 30  gn="right">42.30
22cd0 39 35 36 34 3c 2f 74 64 3e 3c 74 64 3e 4e 55 4c  9564</td><td>NUL
22ce0 4c 3c 2f 74 64 3e 3c 74 64 3e 56 49 41 20 44 45  L</td><td>VIA DE
22cf0 4c 4c 27 41 4e 46 49 54 45 41 54 52 4f 3c 2f 74  LL'ANFITEATRO</t
22d00 64 3e 0d 0a 3c 2f 74 72 3e 0d 0a 3c 74 72 3e 0d  d>..</tr>..<tr>.
22d10 0a 3c 74 64 3e 4e 55 4c 4c 3c 2f 74 64 3e 3c 74  .<td>NULL</td><t
22d20 64 3e 4e 55 4c 4c 3c 2f 74 64 3e 3c 74 64 3e 4e  d>NULL</td><td>N
22d30 55 4c 4c 3c 2f 74 64 3e 3c 74 64 20 61 6c 69 67  ULL</td><td alig
22d40 6e 3d 22 72 69 67 68 74 22 3e 30 3c 2f 74 64 3e  n="right">0</td>
22d50 3c 74 64 20 61 6c 69 67 6e 3d 22 72 69 67 68 74  <td align="right
22d60 22 3e 39 3c 2f 74 64 3e 3c 74 64 3e 4c 69 6e 6b  ">9</td><td>Link
22d70 3c 2f 74 64 3e 3c 74 64 20 61 6c 69 67 6e 3d 22  </td><td align="
22d80 72 69 67 68 74 22 3e 32 32 34 38 39 37 3c 2f 74  right">224897</t
22d90 64 3e 3c 74 64 20 61 6c 69 67 6e 3d 22 72 69 67  d><td align="rig
22da0 68 74 22 3e 31 38 33 32 38 36 3c 2f 74 64 3e 3c  ht">183286</td><
22db0 74 64 20 61 6c 69 67 6e 3d 22 72 69 67 68 74 22  td align="right"
22dc0 3e 31 38 33 31 32 38 3c 2f 74 64 3e 3c 74 64 3e  >183128</td><td>
22dd0 4e 55 4c 4c 3c 2f 74 64 3e 3c 74 64 3e 4e 55 4c  NULL</td><td>NUL
22de0 4c 3c 2f 74 64 3e 3c 74 64 3e 4e 55 4c 4c 3c 2f  L</td><td>NULL</
22df0 74 64 3e 3c 74 64 20 61 6c 69 67 6e 3d 22 72 69  td><td align="ri
22e00 67 68 74 22 3e 37 32 2e 34 34 34 36 30 39 3c 2f  ght">72.444609</
22e10 74 64 3e 3c 74 64 3e 4e 55 4c 4c 3c 2f 74 64 3e  td><td>NULL</td>
22e20 3c 74 64 3e 56 49 41 20 4d 41 52 47 41 52 49 54  <td>VIA MARGARIT
22e30 4f 4e 45 3c 2f 74 64 3e 0d 0a 3c 2f 74 72 3e 0d  ONE</td>..</tr>.
22e40 0a 3c 74 72 3e 0d 0a 3c 74 64 3e 4e 55 4c 4c 3c  .<tr>..<td>NULL<
22e50 2f 74 64 3e 3c 74 64 3e 4e 55 4c 4c 3c 2f 74 64  /td><td>NULL</td
22e60 3e 3c 74 64 3e 4e 55 4c 4c 3c 2f 74 64 3e 3c 74  ><td>NULL</td><t
22e70 64 20 61 6c 69 67 6e 3d 22 72 69 67 68 74 22 3e  d align="right">
22e80 30 3c 2f 74 64 3e 3c 74 64 20 61 6c 69 67 6e 3d  0</td><td align=
22e90 22 72 69 67 68 74 22 3e 31 30 3c 2f 74 64 3e 3c  "right">10</td><
22ea0 74 64 3e 4c 69 6e 6b 3c 2f 74 64 3e 3c 74 64 20  td>Link</td><td 
22eb0 61 6c 69 67 6e 3d 22 72 69 67 68 74 22 3e 32 32  align="right">22
22ec0 34 32 33 32 3c 2f 74 64 3e 3c 74 64 20 61 6c 69  4232</td><td ali
22ed0 67 6e 3d 22 72 69 67 68 74 22 3e 31 38 33 31 32  gn="right">18312
22ee0 38 3c 2f 74 64 3e 3c 74 64 20 61 6c 69 67 6e 3d  8</td><td align=
22ef0 22 72 69 67 68 74 22 3e 31 38 32 38 39 30 3c 2f  "right">182890</
22f00 74 64 3e 3c 74 64 3e 4e 55 4c 4c 3c 2f 74 64 3e  td><td>NULL</td>
22f10 3c 74 64 3e 4e 55 4c 4c 3c 2f 74 64 3e 3c 74 64  <td>NULL</td><td
22f20 3e 4e 55 4c 4c 3c 2f 74 64 3e 3c 74 64 20 61 6c  >NULL</td><td al
22f30 69 67 6e 3d 22 72 69 67 68 74 22 3e 31 30 33 2e  ign="right">103.
22f40 36 31 32 32 32 31 3c 2f 74 64 3e 3c 74 64 3e 4e  612221</td><td>N
22f50 55 4c 4c 3c 2f 74 64 3e 3c 74 64 3e 56 49 41 20  ULL</td><td>VIA 
22f60 4e 49 43 43 4f 4c 4f 27 20 41 52 45 54 49 4e 4f  NICCOLO' ARETINO
22f70 3c 2f 74 64 3e 0d 0a 3c 2f 74 72 3e 0d 0a 3c 74  </td>..</tr>..<t
22f80 72 3e 0d 0a 3c 74 64 3e 4e 55 4c 4c 3c 2f 74 64  r>..<td>NULL</td
22f90 3e 3c 74 64 3e 4e 55 4c 4c 3c 2f 74 64 3e 3c 74  ><td>NULL</td><t
22fa0 64 3e 4e 55 4c 4c 3c 2f 74 64 3e 3c 74 64 20 61  d>NULL</td><td a
22fb0 6c 69 67 6e 3d 22 72 69 67 68 74 22 3e 30 3c 2f  lign="right">0</
22fc0 74 64 3e 3c 74 64 20 61 6c 69 67 6e 3d 22 72 69  td><td align="ri
22fd0 67 68 74 22 3e 31 31 3c 2f 74 64 3e 3c 74 64 3e  ght">11</td><td>
22fe0 50 61 72 74 69 61 6c 20 4c 69 6e 6b 20 28 45 6e  Partial Link (En
22ff0 64 29 3c 2f 74 64 3e 3c 74 64 20 61 6c 69 67 6e  d)</td><td align
23000 3d 22 72 69 67 68 74 22 3e 32 32 34 30 31 39 3c  ="right">224019<
23010 2f 74 64 3e 3c 74 64 20 61 6c 69 67 6e 3d 22 72  /td><td align="r
23020 69 67 68 74 22 3e 31 38 32 38 39 30 3c 2f 74 64  ight">182890</td
23030 3e 3c 74 64 3e 4e 55 4c 4c 3c 2f 74 64 3e 3c 74  ><td>NULL</td><t
23040 64 3e 4e 55 4c 4c 3c 2f 74 64 3e 3c 74 64 3e 4e  d>NULL</td><td>N
23050 55 4c 4c 3c 2f 74 64 3e 3c 74 64 3e 4e 55 4c 4c  ULL</td><td>NULL
23060 3c 2f 74 64 3e 0d 0a 3c 74 64 20 61 6c 69 67 6e  </td>..<td align
23070 3d 22 72 69 67 68 74 22 3e 39 35 2e 37 36 30 32  ="right">95.7602
23080 32 32 3c 2f 74 64 3e 3c 74 64 3e 4e 55 4c 4c 3c  22</td><td>NULL<
23090 2f 74 64 3e 3c 74 64 3e 56 49 41 20 41 4e 54 4f  /td><td>VIA ANTO
230a0 4e 49 4f 20 47 55 41 44 41 47 4e 4f 4c 49 3c 2f  NIO GUADAGNOLI</
230b0 74 64 3e 0d 0a 3c 2f 74 72 3e 0d 0a 3c 74 72 3e  td>..</tr>..<tr>
230c0 0d 0a 3c 74 64 3e 4e 55 4c 4c 3c 2f 74 64 3e 3c  ..<td>NULL</td><
230d0 74 64 3e 4e 55 4c 4c 3c 2f 74 64 3e 3c 74 64 3e  td>NULL</td><td>
230e0 4e 55 4c 4c 3c 2f 74 64 3e 3c 74 64 20 61 6c 69  NULL</td><td ali
230f0 67 6e 3d 22 72 69 67 68 74 22 3e 30 3c 2f 74 64  gn="right">0</td
23100 3e 3c 74 64 20 61 6c 69 67 6e 3d 22 72 69 67 68  ><td align="righ
23110 74 22 3e 31 32 3c 2f 74 64 3e 3c 74 64 3e 45 67  t">12</td><td>Eg
23120 72 65 73 73 20 50 61 74 68 3c 2f 74 64 3e 3c 74  ress Path</td><t
23130 64 3e 4e 55 4c 4c 3c 2f 74 64 3e 3c 74 64 3e 4e  d>NULL</td><td>N
23140 55 4c 4c 3c 2f 74 64 3e 3c 74 64 3e 4e 55 4c 4c  ULL</td><td>NULL
23150 3c 2f 74 64 3e 3c 74 64 3e 4e 55 4c 4c 3c 2f 74  </td><td>NULL</t
23160 64 3e 3c 74 64 3e 4e 55 4c 4c 3c 2f 74 64 3e 3c  d><td>NULL</td><
23170 74 64 3e 4e 55 4c 4c 3c 2f 74 64 3e 3c 74 64 20  td>NULL</td><td 
23180 61 6c 69 67 6e 3d 22 72 69 67 68 74 22 3e 37 2e  align="right">7.
23190 33 31 36 37 30 39 3c 2f 74 64 3e 3c 74 64 3e 4e  316709</td><td>N
231a0 55 4c 4c 3c 2f 74 64 3e 3c 74 64 3e 4e 55 4c 4c  ULL</td><td>NULL
231b0 3c 2f 74 64 3e 0d 0a 3c 2f 74 72 3e 0d 0a 3c 2f  </td>..</tr>..</
231c0 74 61 62 6c 65 3e 0d 0a 3c 62 72 3e 0d 0a 4c 65  table>..<br>..Le
231d0 74 27 73 20 6e 6f 77 20 71 75 69 63 6b 6c 79 20  t's now quickly 
231e0 65 78 61 6d 69 6e 65 20 74 68 65 20 72 65 73 75  examine the resu
231f0 6c 74 73 65 74 20 72 65 74 75 72 6e 65 64 20 62  ltset returned b
23200 79 20 74 68 65 20 61 62 6f 76 65 20 3c 62 3e 50  y the above <b>P
23210 6f 69 6e 74 2d 74 6f 2d 50 6f 69 6e 74 3c 2f 62  oint-to-Point</b
23220 3e 20 71 75 65 72 79 3a 0d 0a 3c 75 6c 3e 0d 0a  > query:..<ul>..
23230 3c 6c 69 3e 74 68 65 20 67 65 6e 65 72 61 6c 20  <li>the general 
23240 6c 61 79 6f 75 74 20 69 73 20 61 6c 6d 6f 73 74  layout is almost
23250 20 65 78 61 63 74 6c 79 20 74 68 65 20 73 61 6d   exactly the sam
23260 65 20 61 73 20 79 6f 75 27 76 65 20 61 6c 72 65  e as you've alre
23270 61 64 79 20 73 65 65 6e 20 69 6e 20 74 68 65 20  ady seen in the 
23280 63 61 73 65 20 6f 66 20 53 68 6f 72 74 65 73 74  case of Shortest
23290 50 61 74 68 20 71 75 65 72 69 65 73 2e 3c 2f 6c  Path queries.</l
232a0 69 3e 0d 0a 3c 6c 69 3e 69 6e 20 74 68 65 20 73  i>..<li>in the s
232b0 70 65 63 69 66 69 63 20 63 61 73 65 20 6f 66 20  pecific case of 
232c0 50 6f 69 6e 74 2d 74 6f 2d 50 6f 69 6e 74 20 74  Point-to-Point t
232d0 68 65 20 3c 62 3e 66 69 72 73 74 20 72 6f 77 3c  he <b>first row<
232e0 2f 62 3e 20 6f 66 20 74 68 65 20 72 65 73 75 6c  /b> of the resul
232f0 74 73 65 74 20 77 69 6c 6c 20 61 6c 77 61 79 73  tset will always
23300 20 63 6f 6e 74 61 69 6e 20 74 68 65 20 66 6f 6c   contain the fol
23310 6c 6f 77 69 6e 67 73 20 3c 62 3e 4e 4f 54 20 4e  lowings <b>NOT N
23320 55 4c 4c 3c 2f 62 3e 20 63 6f 6c 75 6d 6e 73 3a  ULL</b> columns:
23330 0d 0a 3c 75 6c 3e 0d 0a 3c 6c 69 3e 3c 62 3e 4e  ..<ul>..<li><b>N
23340 6f 64 65 46 72 6f 6d 3c 2f 62 3e 20 61 6e 64 20  odeFrom</b> and 
23350 3c 62 3e 4e 6f 64 65 54 6f 3c 2f 62 3e 3a 20 74  <b>NodeTo</b>: t
23360 68 65 20 74 77 6f 20 47 65 6f 6d 65 74 72 69 65  he two Geometrie
23370 73 20 64 65 66 69 6e 69 6e 67 20 74 68 65 20 3c  s defining the <
23380 75 3e 3c 69 3e 6f 72 69 67 69 6e 3c 2f 69 3e 3c  u><i>origin</i><
23390 2f 75 3e 20 61 6e 64 20 3c 75 3e 3c 69 3e 64 65  /u> and <u><i>de
233a0 73 74 69 6e 61 74 69 6f 6e 3c 2f 69 3e 3c 2f 75  stination</i></u
233b0 3e 20 50 6f 69 6e 74 73 2e 3c 2f 6c 69 3e 0d 0a  > Points.</li>..
233c0 3c 6c 69 3e 3c 62 3e 54 6f 6c 65 72 61 6e 63 65  <li><b>Tolerance
233d0 3c 2f 62 3e 3a 20 74 68 65 20 6d 61 78 69 6d 75  </b>: the maximu
233e0 6d 20 64 69 73 74 61 6e 63 65 20 61 6c 6c 6f 77  m distance allow
233f0 65 64 20 62 65 74 77 65 65 6e 20 72 65 66 65 72  ed between refer
23400 65 6e 63 65 20 50 6f 69 6e 74 73 20 61 6e 64 20  ence Points and 
23410 43 61 6e 64 69 64 61 74 65 20 4c 69 6e 6b 73 2e  Candidate Links.
23420 3c 2f 6c 69 3e 0d 0a 3c 2f 75 6c 3e 3c 2f 6c 69  </li>..</ul></li
23430 3e 0d 0a 3c 6c 69 3e 74 68 65 20 3c 62 3e 52 6f  >..<li>the <b>Ro
23440 6c 65 3c 2f 62 3e 20 63 6f 6c 75 6d 6e 20 63 61  le</b> column ca
23450 6e 20 61 73 73 75 6d 65 20 6f 6e 65 20 6f 66 20  n assume one of 
23460 74 68 65 20 66 6f 6c 6c 6f 77 69 6e 67 20 76 61  the following va
23470 6c 75 65 73 3a 0d 0a 3c 75 6c 3e 0d 0a 3c 6c 69  lues:..<ul>..<li
23480 3e 3c 62 3e 50 6f 69 6e 74 32 50 6f 69 6e 74 20  ><b>Point2Point 
23490 53 6f 6c 75 74 69 6f 6e 3c 2f 62 3e 3a 20 74 68  Solution</b>: th
234a0 65 20 68 65 61 64 65 72 20 72 6f 77 20 73 75 6d  e header row sum
234b0 6d 61 72 69 7a 69 6e 67 20 74 68 65 20 53 6f 6c  marizing the Sol
234c0 75 74 69 6f 6e 20 61 73 20 61 20 77 68 6f 6c 65  ution as a whole
234d0 2e 0d 0a 3c 75 6c 3e 0d 0a 3c 6c 69 3e 3c 62 3e  ...<ul>..<li><b>
234e0 50 6f 69 6e 74 46 72 6f 6d 3c 2f 62 3e 2c 20 3c  PointFrom</b>, <
234f0 62 3e 50 6f 69 6e 74 54 6f 3c 2f 62 3e 20 61 6e  b>PointTo</b> an
23500 64 20 3c 62 3e 54 6f 6c 65 72 61 6e 63 65 3c 2f  d <b>Tolerance</
23510 62 3e 20 63 6f 6c 75 6d 6e 73 20 77 69 6c 6c 20  b> columns will 
23520 68 61 76 65 20 3c 62 3e 4e 4f 54 20 4e 55 4c 4c  have <b>NOT NULL
23530 3c 2f 62 3e 20 76 61 6c 75 65 73 20 6f 6e 6c 79  </b> values only
23540 20 69 6e 20 74 68 65 20 68 65 61 64 65 72 20 72   in the header r
23550 6f 77 2e 3c 2f 6c 69 3e 0d 0a 3c 2f 75 6c 3e 3c  ow.</li>..</ul><
23560 2f 6c 69 3e 0d 0a 3c 6c 69 3e 3c 62 3e 49 6e 67  /li>..<li><b>Ing
23570 72 65 73 73 20 50 61 74 68 3c 2f 62 3e 3a 20 61  ress Path</b>: a
23580 20 73 74 72 61 69 67 68 74 20 73 65 67 6d 65 6e   straight segmen
23590 74 20 63 6f 6e 6e 65 63 74 69 6e 67 20 74 68 65  t connecting the
235a0 20 4f 72 69 67 69 6e 20 50 6f 69 6e 74 20 74 6f   Origin Point to
235b0 20 74 68 65 20 66 69 72 73 74 20 4c 69 6e 6b 2e   the first Link.
235c0 3c 2f 6c 69 3e 0d 0a 3c 6c 69 3e 3c 62 3e 45 67  </li>..<li><b>Eg
235d0 72 65 73 73 20 50 61 74 68 3c 2f 62 3e 3a 20 61  ress Path</b>: a
235e0 20 73 74 72 61 69 67 68 74 20 73 65 67 6d 65 6e   straight segmen
235f0 74 20 63 6f 6e 6e 65 63 74 69 6e 67 20 74 68 65  t connecting the
23600 20 6c 61 73 74 20 4c 69 6e 6b 20 74 6f 20 74 68   last Link to th
23610 65 20 44 65 73 74 69 6e 61 74 69 6f 6e 20 50 6f  e Destination Po
23620 69 6e 74 2e 0d 0a 3c 75 6c 3e 0d 0a 3c 6c 69 3e  int...<ul>..<li>
23630 62 6f 74 68 20 74 68 65 20 49 6e 67 72 65 73 73  both the Ingress
23640 20 61 6e 64 20 74 68 65 20 45 67 72 65 73 73 20   and the Egress 
23650 50 61 74 68 20 72 6f 77 73 20 77 69 6c 6c 20 61  Path rows will a
23660 6c 77 61 79 73 20 68 61 76 65 20 3c 62 3e 4e 55  lways have <b>NU
23670 4c 4c 3c 2f 62 3e 20 76 61 6c 75 65 73 20 6f 6e  LL</b> values on
23680 20 3c 62 3e 4c 69 6e 6b 52 6f 77 69 64 3c 2f 62   <b>LinkRowid</b
23690 3e 2c 20 3c 62 3e 4e 6f 64 65 46 72 6f 6d 3c 2f  >, <b>NodeFrom</
236a0 62 3e 20 61 6e 64 20 3c 62 3e 4e 6f 64 65 54 6f  b> and <b>NodeTo
236b0 3c 2f 62 3e 20 63 6f 6c 75 6d 6e 73 2e 3c 2f 6c  </b> columns.</l
236c0 69 3e 0d 0a 3c 2f 75 6c 3e 3c 2f 6c 69 3e 0d 0a  i>..</ul></li>..
236d0 3c 6c 69 3e 3c 62 3e 50 61 72 74 69 61 6c 20 4c  <li><b>Partial L
236e0 69 6e 6b 20 28 53 74 61 72 74 29 3c 2f 62 3e 3a  ink (Start)</b>:
236f0 20 74 68 65 20 70 61 72 74 69 61 6c 20 73 65 63   the partial sec
23700 74 69 6f 6e 20 6f 66 20 74 68 65 20 66 69 72 73  tion of the firs
23710 74 20 4c 69 6e 6b 2e 0d 0a 3c 75 6c 3e 0d 0a 3c  t Link...<ul>..<
23720 6c 69 3e 74 68 69 73 20 73 70 65 63 69 66 69 63  li>this specific
23730 20 72 6f 77 20 77 69 6c 6c 20 61 6c 77 61 79 73   row will always
23740 20 68 61 76 65 20 61 20 3c 62 3e 4e 55 4c 4c 3c   have a <b>NULL<
23750 2f 62 3e 20 76 61 6c 75 65 20 6f 6e 20 74 68 65  /b> value on the
23760 20 3c 62 3e 4e 6f 64 65 46 72 6f 6d 3c 2f 62 3e   <b>NodeFrom</b>
23770 20 63 6f 6c 75 6d 6e 2e 3c 2f 6c 69 3e 0d 0a 3c   column.</li>..<
23780 2f 75 6c 3e 3c 2f 6c 69 3e 0d 0a 3c 6c 69 3e 3c  /ul></li>..<li><
23790 62 3e 50 61 72 74 69 61 6c 20 4c 69 6e 6b 20 28  b>Partial Link (
237a0 45 6e 64 29 3c 2f 62 3e 3a 20 74 68 65 20 70 61  End)</b>: the pa
237b0 72 74 69 61 6c 20 73 65 63 74 69 6f 6e 20 6f 66  rtial section of
237c0 20 74 68 65 20 6c 61 73 74 20 4c 69 6e 6b 2e 0d   the last Link..
237d0 0a 3c 75 6c 3e 0d 0a 3c 6c 69 3e 74 68 69 73 20  .<ul>..<li>this 
237e0 73 70 65 63 69 66 69 63 20 72 6f 77 20 77 69 6c  specific row wil
237f0 6c 20 61 6c 77 61 79 73 20 68 61 76 65 20 61 20  l always have a 
23800 3c 62 3e 4e 55 4c 4c 3c 2f 62 3e 20 76 61 6c 75  <b>NULL</b> valu
23810 65 20 6f 6e 20 74 68 65 20 3c 62 3e 4e 6f 64 65  e on the <b>Node
23820 54 6f 3c 2f 62 3e 20 63 6f 6c 75 6d 6e 2e 3c 2f  To</b> column.</
23830 6c 69 3e 0d 0a 3c 2f 75 6c 3e 3c 2f 6c 69 3e 0d  li>..</ul></li>.
23840 0a 3c 6c 69 3e 3c 62 3e 4c 69 6e 6b 3c 2f 62 3e  .<li><b>Link</b>
23850 3a 20 61 6e 79 20 6f 74 68 65 72 20 4c 69 6e 6b  : any other Link
23860 20 72 65 71 75 69 72 65 64 20 62 79 20 74 68 65   required by the
23870 20 50 6f 69 6e 74 2d 74 6f 2d 50 6f 69 6e 74 20   Point-to-Point 
23880 53 6f 6c 75 74 69 6f 6e 2e 0d 0a 3c 75 6c 3e 0d  Solution...<ul>.
23890 0a 3c 6c 69 3e 61 6c 6c 20 74 68 65 73 65 20 72  .<li>all these r
238a0 6f 77 73 20 77 69 6c 6c 20 61 6c 77 61 79 73 20  ows will always 
238b0 68 61 76 65 20 3c 62 3e 4e 4f 54 20 4e 55 4c 4c  have <b>NOT NULL
238c0 3c 2f 62 3e 20 76 61 6c 75 65 73 20 6f 6e 20 3c  </b> values on <
238d0 62 3e 4c 69 6e 6b 52 6f 77 69 64 3c 2f 62 3e 2c  b>LinkRowid</b>,
238e0 20 3c 62 3e 4e 6f 64 65 46 72 6f 6d 3c 2f 62 3e   <b>NodeFrom</b>
238f0 20 61 6e 64 20 3c 62 3e 4e 6f 64 65 54 6f 3c 2f   and <b>NodeTo</
23900 62 3e 20 63 6f 6c 75 6d 6e 73 2e 3c 2f 6c 69 3e  b> columns.</li>
23910 0d 0a 3c 2f 75 6c 3e 3c 2f 6c 69 3e 0d 0a 3c 2f  ..</ul></li>..</
23920 75 6c 3e 3c 2f 6c 69 3e 0d 0a 3c 2f 75 6c 3e 0d  ul></li>..</ul>.
23930 0a 3c 62 72 3e 3c 62 72 3e 3c 62 72 3e 0d 0a 3c  .<br><br><br>..<
23940 62 3e 50 6f 69 6e 74 2d 74 6f 2d 50 6f 69 6e 74  b>Point-to-Point
23950 3c 2f 62 3e 20 71 75 65 72 69 65 73 20 63 61 6e  </b> queries can
23960 20 62 65 20 63 75 73 74 6f 6d 69 7a 65 64 2c 20   be customized, 
23970 62 75 74 20 74 68 65 20 63 6f 6e 66 69 67 75 72  but the configur
23980 61 74 69 6f 6e 20 72 75 6c 65 73 20 73 6c 69 67  ation rules slig
23990 68 74 6c 79 20 64 69 66 66 65 72 20 66 72 6f 6d  htly differ from
239a0 20 77 68 61 74 20 79 6f 75 20 68 61 76 65 20 61   what you have a
239b0 6c 72 65 61 64 79 20 73 65 65 6e 20 69 6e 20 70  lready seen in p
239c0 72 65 76 69 6f 75 73 20 65 78 61 6d 70 6c 65 73  revious examples
239d0 2e 0d 0a 3c 75 6c 3e 0d 0a 3c 6c 69 3e 3c 62 3e  ...<ul>..<li><b>
239e0 41 6c 67 6f 72 69 74 68 6d 3c 2f 62 3e 3a 20 6f  Algorithm</b>: o
239f0 6e 6c 79 20 3c 62 3e 44 69 6a 6b 73 74 72 61 3c  nly <b>Dijkstra<
23a00 2f 62 3e 20 69 73 20 73 75 70 70 6f 72 74 65 64  /b> is supported
23a10 20 62 79 20 3c 62 3e 50 6f 69 6e 74 2d 74 6f 2d   by <b>Point-to-
23a20 50 6f 69 6e 74 3c 2f 62 3e 2c 20 61 6e 64 20 77  Point</b>, and w
23a30 69 6c 6c 20 62 65 20 69 6d 70 6c 69 63 69 74 6c  ill be implicitl
23a40 79 20 61 73 73 75 6d 65 64 20 65 76 65 6e 20 77  y assumed even w
23a50 68 65 6e 20 74 68 65 20 61 6c 74 65 72 6e 61 74  hen the alternat
23a60 69 76 65 20 3c 62 3e 41 2a 3c 2f 62 3e 20 61 6c  ive <b>A*</b> al
23a70 67 6f 72 69 74 68 6d 20 69 73 20 63 75 72 72 65  gorithm is curre
23a80 6e 74 6c 79 20 73 65 6c 65 63 74 65 64 2e 3c 62  ntly selected.<b
23a90 72 3e 0d 0a 54 68 69 73 20 69 73 20 62 65 63 61  r>..This is beca
23aa0 75 73 65 20 74 68 65 20 69 6e 74 65 72 6e 61 6c  use the internal
23ab0 20 6c 6f 67 69 63 20 6f 66 20 50 6f 69 6e 74 2d   logic of Point-
23ac0 74 6f 2d 50 6f 69 6e 74 20 72 65 71 75 69 72 65  to-Point require
23ad0 73 20 6d 75 6c 74 69 2d 64 65 73 74 69 6e 61 74  s multi-destinat
23ae0 69 6f 6e 20 71 75 65 72 69 65 73 20 69 6e 20 6f  ion queries in o
23af0 72 64 65 72 20 74 6f 20 65 76 61 6c 75 61 74 65  rder to evaluate
23b00 20 61 6c 6c 20 43 61 6e 64 69 64 61 74 65 20 53   all Candidate S
23b10 6f 6c 75 74 69 6f 6e 73 2e 3c 2f 6c 69 3e 0d 0a  olutions.</li>..
23b20 3c 6c 69 3e 3c 62 3e 4f 70 74 69 6f 6e 73 3c 2f  <li><b>Options</
23b30 62 3e 3a 20 74 68 65 20 75 73 75 61 6c 20 3c 62  b>: the usual <b
23b40 3e 46 55 4c 4c 3c 2f 62 3e 2c 20 3c 62 3e 53 49  >FULL</b>, <b>SI
23b50 4d 50 4c 45 3c 2f 62 3e 2c 20 3c 62 3e 4e 4f 20  MPLE</b>, <b>NO 
23b60 4c 49 4e 4b 53 3c 2f 62 3e 20 61 6e 64 20 3c 62  LINKS</b> and <b
23b70 3e 4e 4f 20 47 45 4f 4d 45 54 52 49 45 53 3c 2f  >NO GEOMETRIES</
23b80 62 3e 20 61 72 65 20 73 75 70 70 6f 72 74 65 64  b> are supported
23b90 20 61 6e 64 20 77 69 6c 6c 20 68 61 76 65 20 74   and will have t
23ba0 68 65 20 73 61 6d 65 20 65 66 66 65 63 74 20 61  he same effect a
23bb0 73 20 69 6e 20 73 69 6e 67 6c 65 2d 64 65 73 74  s in single-dest
23bc0 69 6e 61 74 69 6f 6e 20 71 75 65 72 69 65 73 2e  ination queries.
23bd0 3c 2f 6c 69 3e 0d 0a 3c 6c 69 3e 3c 62 3e 54 6f  </li>..<li><b>To
23be0 6c 65 72 61 6e 63 65 3c 2f 62 3e 3a 20 74 68 69  lerance</b>: thi
23bf0 73 20 73 65 74 74 69 6e 67 20 69 73 20 73 70 65  s setting is spe
23c00 63 69 66 69 63 20 74 6f 20 50 6f 69 6e 74 2d 74  cific to Point-t
23c10 6f 2d 50 6f 69 6e 74 2c 20 61 6e 64 20 64 65 66  o-Point, and def
23c20 69 6e 65 73 20 74 68 65 20 6d 61 78 69 6d 75 6d  ines the maximum
23c30 20 61 6c 6c 6f 77 61 62 6c 65 20 64 69 73 74 61   allowable dista
23c40 6e 63 65 20 62 65 74 77 65 65 6e 20 61 20 72 65  nce between a re
23c50 66 65 72 65 6e 63 65 20 50 6f 69 6e 74 20 61 6e  ference Point an
23c60 64 20 43 61 6e 64 69 64 61 74 65 20 4c 69 6e 6b  d Candidate Link
23c70 73 2e 3c 62 72 3e 0d 0a 49 74 20 64 65 66 61 75  s.<br>..It defau
23c80 6c 74 73 20 74 6f 20 3c 62 3e 32 30 2e 30 6d 3c  lts to <b>20.0m<
23c90 2f 62 3e 20 69 66 20 6e 6f 74 20 65 78 70 6c 69  /b> if not expli
23ca0 63 69 74 6c 79 20 73 65 74 2e 3c 2f 6c 69 3e 0d  citly set.</li>.
23cb0 0a 3c 2f 75 6c 3e 0d 0a 3c 76 65 72 62 61 74 69  .</ul>..<verbati
23cc0 6d 3e 0d 0a 55 50 44 41 54 45 20 62 79 66 6f 6f  m>..UPDATE byfoo
23cd0 74 20 53 45 54 20 4f 70 74 69 6f 6e 73 20 3d 20  t SET Options = 
23ce0 27 4e 4f 20 47 45 4f 4d 45 54 52 49 45 53 27 2c  'NO GEOMETRIES',
23cf0 20 54 6f 6c 65 72 61 6e 63 65 20 3d 20 32 35 2e   Tolerance = 25.
23d00 35 3b 0d 0a 0d 0a 53 45 4c 45 43 54 20 52 65 71  5;....SELECT Req
23d10 75 65 73 74 2c 20 4f 70 74 69 6f 6e 73 2c 20 54  uest, Options, T
23d20 6f 6c 65 72 61 6e 63 65 2c 20 52 6f 75 74 65 52  olerance, RouteR
23d30 6f 77 2c 20 52 6f 6c 65 2c 20 4c 69 6e 6b 52 6f  ow, Role, LinkRo
23d40 77 69 64 2c 20 4e 6f 64 65 46 72 6f 6d 2c 20 4e  wid, NodeFrom, N
23d50 6f 64 65 54 6f 2c 20 43 6f 73 74 2c 20 47 65 6f  odeTo, Cost, Geo
23d60 6d 65 74 72 79 2c 20 4e 61 6d 65 0d 0a 46 52 4f  metry, Name..FRO
23d70 4d 20 62 79 66 6f 6f 74 0d 0a 57 48 45 52 45 20  M byfoot..WHERE 
23d80 50 6f 69 6e 74 46 72 6f 6d 20 3d 20 28 53 45 4c  PointFrom = (SEL
23d90 45 43 54 20 67 65 6f 6d 20 46 52 4f 4d 20 68 6f  ECT geom FROM ho
23da0 75 73 65 5f 6e 72 5f 76 77 20 57 48 45 52 45 20  use_nr_vw WHERE 
23db0 6d 75 6e 69 63 69 70 61 6c 69 74 79 20 3d 20 27  municipality = '
23dc0 41 52 45 5a 5a 4f 27 20 41 4e 44 20 61 64 64 72  AREZZO' AND addr
23dd0 65 73 73 20 3d 20 27 56 49 41 20 44 45 27 27 20  ess = 'VIA DE'' 
23de0 43 45 4e 43 49 20 31 33 27 29 0d 0a 20 20 20 20  CENCI 13')..    
23df0 41 4e 44 20 50 6f 69 6e 74 54 6f 20 3d 20 28 53  AND PointTo = (S
23e00 45 4c 45 43 54 20 67 65 6f 6d 20 46 52 4f 4d 20  ELECT geom FROM 
23e10 68 6f 75 73 65 5f 6e 72 5f 76 77 20 57 48 45 52  house_nr_vw WHER
23e20 45 20 6d 75 6e 69 63 69 70 61 6c 69 74 79 20 3d  E municipality =
23e30 20 27 41 52 45 5a 5a 4f 27 20 41 4e 44 20 61 64   'AREZZO' AND ad
23e40 64 72 65 73 73 20 3d 20 27 56 49 41 20 41 4e 54  dress = 'VIA ANT
23e50 4f 4e 49 4f 20 47 55 41 44 41 47 4e 4f 4c 49 20  ONIO GUADAGNOLI 
23e60 31 39 2f 43 27 29 3b 0d 0a 3c 2f 76 65 72 62 61  19/C');..</verba
23e70 74 69 6d 3e 0d 0a 54 68 65 20 66 6f 6c 6c 6f 77  tim>..The follow
23e80 69 6e 67 20 74 61 62 6c 65 20 73 68 6f 77 73 20  ing table shows 
23e90 74 68 65 20 72 65 73 75 6c 74 73 65 74 20 72 65  the resultset re
23ea0 74 75 72 6e 65 64 20 62 79 20 74 68 65 20 61 62  turned by the ab
23eb0 6f 76 65 20 50 6f 69 6e 74 2d 74 6f 2d 50 6f 69  ove Point-to-Poi
23ec0 6e 74 20 71 75 65 72 79 20 61 66 74 65 72 20 73  nt query after s
23ed0 65 6c 65 63 74 69 6e 67 20 3c 62 3e 4f 70 74 69  electing <b>Opti
23ee0 6f 6e 73 20 3d 20 27 4e 4f 20 47 45 4f 4d 45 54  ons = 'NO GEOMET
23ef0 52 49 45 53 27 3c 2f 62 3e 20 61 6e 64 20 3c 62  RIES'</b> and <b
23f00 3e 54 6f 6c 65 72 61 6e 63 65 20 3d 20 32 35 2e  >Tolerance = 25.
23f10 35 3c 2f 62 3e 3c 62 72 3e 3c 62 72 3e 0d 0a 3c  5</b><br><br>..<
23f20 74 61 62 6c 65 20 62 6f 72 64 65 72 3d 22 31 22  table border="1"
23f30 20 62 67 63 6f 6c 6f 72 3d 22 23 66 66 66 66 63   bgcolor="#ffffc
23f40 66 22 20 63 65 6c 6c 73 70 61 63 69 6e 67 3d 22  f" cellspacing="
23f50 34 22 20 63 65 6c 6c 70 61 64 64 69 6e 67 3d 22  4" cellpadding="
23f60 36 22 3e 0d 0a 3c 74 72 3e 3c 74 68 20 62 67 63  6">..<tr><th bgc
23f70 6f 6c 6f 72 3d 22 23 64 30 64 30 61 30 22 3e 52  olor="#d0d0a0">R
23f80 65 71 75 65 73 74 3c 2f 74 68 3e 3c 74 68 20 62  equest</th><th b
23f90 67 63 6f 6c 6f 72 3d 22 23 64 30 64 30 61 30 22  gcolor="#d0d0a0"
23fa0 3e 4f 70 74 69 6f 6e 73 3c 2f 74 68 3e 3c 74 68  >Options</th><th
23fb0 20 62 67 63 6f 6c 6f 72 3d 22 23 64 30 64 30 61   bgcolor="#d0d0a
23fc0 30 22 3e 54 6f 6c 65 72 61 6e 63 65 3c 2f 74 68  0">Tolerance</th
23fd0 3e 3c 74 68 20 62 67 63 6f 6c 6f 72 3d 22 23 64  ><th bgcolor="#d
23fe0 30 64 30 61 30 22 3e 52 6f 75 74 65 52 6f 77 3c  0d0a0">RouteRow<
23ff0 2f 74 68 3e 3c 74 68 20 62 67 63 6f 6c 6f 72 3d  /th><th bgcolor=
24000 22 23 64 30 64 30 61 30 22 3e 52 6f 6c 65 3c 2f  "#d0d0a0">Role</
24010 74 68 3e 3c 74 68 20 62 67 63 6f 6c 6f 72 3d 22  th><th bgcolor="
24020 23 64 30 64 30 61 30 22 3e 4c 69 6e 6b 52 6f 77  #d0d0a0">LinkRow
24030 69 64 3c 2f 74 68 3e 3c 74 68 20 62 67 63 6f 6c  id</th><th bgcol
24040 6f 72 3d 22 23 64 30 64 30 61 30 22 3e 4e 6f 64  or="#d0d0a0">Nod
24050 65 46 72 6f 6d 3c 2f 74 68 3e 3c 74 68 20 62 67  eFrom</th><th bg
24060 63 6f 6c 6f 72 3d 22 23 64 30 64 30 61 30 22 3e  color="#d0d0a0">
24070 4e 6f 64 65 54 6f 3c 2f 74 68 3e 3c 74 68 20 62  NodeTo</th><th b
24080 67 63 6f 6c 6f 72 3d 22 23 64 30 64 30 61 30 22  gcolor="#d0d0a0"
24090 3e 43 6f 73 74 3c 2f 74 68 3e 3c 74 68 20 62 67  >Cost</th><th bg
240a0 63 6f 6c 6f 72 3d 22 23 64 30 64 30 61 30 22 3e  color="#d0d0a0">
240b0 47 65 6f 6d 65 74 72 79 3c 2f 74 68 3e 3c 74 68  Geometry</th><th
240c0 20 62 67 63 6f 6c 6f 72 3d 22 23 64 30 64 30 61   bgcolor="#d0d0a
240d0 30 22 3e 4e 61 6d 65 3c 2f 74 68 3e 3c 2f 74 72  0">Name</th></tr
240e0 3e 0d 0a 3c 74 72 3e 0d 0a 3c 74 64 3e 50 6f 69  >..<tr>..<td>Poi
240f0 6e 74 32 50 6f 69 6e 74 20 50 61 74 68 3c 2f 74  nt2Point Path</t
24100 64 3e 3c 74 64 3e 4e 6f 20 47 65 6f 6d 65 74 72  d><td>No Geometr
24110 69 65 73 3c 2f 74 64 3e 3c 74 64 20 61 6c 69 67  ies</td><td alig
24120 6e 3d 22 72 69 67 68 74 22 3e 32 35 2e 35 30 30  n="right">25.500
24130 30 30 30 3c 2f 74 64 3e 3c 74 64 20 61 6c 69 67  000</td><td alig
24140 6e 3d 22 72 69 67 68 74 22 3e 30 3c 2f 74 64 3e  n="right">0</td>
24150 3c 74 64 3e 50 6f 69 6e 74 32 50 6f 69 6e 74 20  <td>Point2Point 
24160 53 6f 6c 75 74 69 6f 6e 3c 2f 74 64 3e 3c 74 64  Solution</td><td
24170 3e 4e 55 4c 4c 3c 2f 74 64 3e 3c 74 64 3e 4e 55  >NULL</td><td>NU
24180 4c 4c 3c 2f 74 64 3e 3c 74 64 3e 4e 55 4c 4c 3c  LL</td><td>NULL<
24190 2f 74 64 3e 3c 74 64 20 61 6c 69 67 6e 3d 22 72  /td><td align="r
241a0 69 67 68 74 22 3e 36 35 31 2e 30 36 37 30 38 32  ight">651.067082
241b0 3c 2f 74 64 3e 3c 74 64 3e 4e 55 4c 4c 3c 2f 74  </td><td>NULL</t
241c0 64 3e 3c 74 64 3e 4e 55 4c 4c 3c 2f 74 64 3e 0d  d><td>NULL</td>.
241d0 0a 3c 2f 74 72 3e 0d 0a 3c 74 72 3e 0d 0a 3c 74  .</tr>..<tr>..<t
241e0 64 3e 4e 55 4c 4c 3c 2f 74 64 3e 3c 74 64 3e 4e  d>NULL</td><td>N
241f0 55 4c 4c 3c 2f 74 64 3e 3c 74 64 3e 4e 55 4c 4c  ULL</td><td>NULL
24200 3c 2f 74 64 3e 3c 74 64 20 61 6c 69 67 6e 3d 22  </td><td align="
24210 72 69 67 68 74 22 3e 31 3c 2f 74 64 3e 3c 74 64  right">1</td><td
24220 3e 49 6e 67 72 65 73 73 20 50 61 74 68 3c 2f 74  >Ingress Path</t
24230 64 3e 3c 74 64 3e 4e 55 4c 4c 3c 2f 74 64 3e 3c  d><td>NULL</td><
24240 74 64 3e 4e 55 4c 4c 3c 2f 74 64 3e 3c 74 64 3e  td>NULL</td><td>
24250 4e 55 4c 4c 3c 2f 74 64 3e 3c 74 64 20 61 6c 69  NULL</td><td ali
24260 67 6e 3d 22 72 69 67 68 74 22 3e 32 2e 33 30 31  gn="right">2.301
24270 36 38 37 3c 2f 74 64 3e 3c 74 64 3e 4e 55 4c 4c  687</td><td>NULL
24280 3c 2f 74 64 3e 3c 74 64 3e 4e 55 4c 4c 3c 2f 74  </td><td>NULL</t
24290 64 3e 0d 0a 3c 2f 74 72 3e 0d 0a 3c 74 72 3e 0d  d>..</tr>..<tr>.
242a0 0a 3c 74 64 3e 4e 55 4c 4c 3c 2f 74 64 3e 3c 74  .<td>NULL</td><t
242b0 64 3e 4e 55 4c 4c 3c 2f 74 64 3e 3c 74 64 3e 4e  d>NULL</td><td>N
242c0 55 4c 4c 3c 2f 74 64 3e 3c 74 64 20 61 6c 69 67  ULL</td><td alig
242d0 6e 3d 22 72 69 67 68 74 22 3e 32 3c 2f 74 64 3e  n="right">2</td>
242e0 3c 74 64 3e 50 61 72 74 69 61 6c 20 4c 69 6e 6b  <td>Partial Link
242f0 20 28 53 74 61 72 74 29 3c 2f 74 64 3e 3c 74 64   (Start)</td><td
24300 20 61 6c 69 67 6e 3d 22 72 69 67 68 74 22 3e 32   align="right">2
24310 32 34 32 36 34 3c 2f 74 64 3e 3c 74 64 3e 4e 55  24264</td><td>NU
24320 4c 4c 3c 2f 74 64 3e 3c 74 64 20 61 6c 69 67 6e  LL</td><td align
24330 3d 22 72 69 67 68 74 22 3e 31 38 32 36 33 30 3c  ="right">182630<
24340 2f 74 64 3e 3c 74 64 20 61 6c 69 67 6e 3d 22 72  /td><td align="r
24350 69 67 68 74 22 3e 34 36 2e 30 38 32 37 36 31 3c  ight">46.082761<
24360 2f 74 64 3e 3c 74 64 3e 4e 55 4c 4c 3c 2f 74 64  /td><td>NULL</td
24370 3e 3c 74 64 3e 56 49 41 20 44 45 27 20 43 45 4e  ><td>VIA DE' CEN
24380 43 49 3c 2f 74 64 3e 0d 0a 3c 2f 74 72 3e 0d 0a  CI</td>..</tr>..
24390 3c 74 72 3e 0d 0a 3c 74 64 3e 4e 55 4c 4c 3c 2f  <tr>..<td>NULL</
243a0 74 64 3e 3c 74 64 3e 4e 55 4c 4c 3c 2f 74 64 3e  td><td>NULL</td>
243b0 3c 74 64 3e 4e 55 4c 4c 3c 2f 74 64 3e 3c 74 64  <td>NULL</td><td
243c0 20 61 6c 69 67 6e 3d 22 72 69 67 68 74 22 3e 33   align="right">3
243d0 3c 2f 74 64 3e 3c 74 64 3e 4c 69 6e 6b 3c 2f 74  </td><td>Link</t
243e0 64 3e 3c 74 64 20 61 6c 69 67 6e 3d 22 72 69 67  d><td align="rig
243f0 68 74 22 3e 32 32 33 37 35 38 3c 2f 74 64 3e 3c  ht">223758</td><
24400 74 64 20 61 6c 69 67 6e 3d 22 72 69 67 68 74 22  td align="right"
24410 3e 31 38 32 36 33 30 3c 2f 74 64 3e 3c 74 64 20  >182630</td><td 
24420 61 6c 69 67 6e 3d 22 72 69 67 68 74 22 3e 31 38  align="right">18
24430 32 36 32 39 3c 2f 74 64 3e 3c 74 64 20 61 6c 69  2629</td><td ali
24440 67 6e 3d 22 72 69 67 68 74 22 3e 32 34 2e 31 39  gn="right">24.19
24450 38 31 31 35 3c 2f 74 64 3e 3c 74 64 3e 4e 55 4c  8115</td><td>NUL
24460 4c 3c 2f 74 64 3e 3c 74 64 3e 43 4f 52 53 4f 20  L</td><td>CORSO 
24470 49 54 41 4c 49 41 3c 2f 74 64 3e 0d 0a 3c 2f 74  ITALIA</td>..</t
24480 72 3e 0d 0a 3c 74 72 3e 0d 0a 3c 74 64 3e 4e 55  r>..<tr>..<td>NU
24490 4c 4c 3c 2f 74 64 3e 3c 74 64 3e 4e 55 4c 4c 3c  LL</td><td>NULL<
244a0 2f 74 64 3e 3c 74 64 3e 4e 55 4c 4c 3c 2f 74 64  /td><td>NULL</td
244b0 3e 3c 74 64 20 61 6c 69 67 6e 3d 22 72 69 67 68  ><td align="righ
244c0 74 22 3e 34 3c 2f 74 64 3e 3c 74 64 3e 4c 69 6e  t">4</td><td>Lin
244d0 6b 3c 2f 74 64 3e 3c 74 64 20 61 6c 69 67 6e 3d  k</td><td align=
244e0 22 72 69 67 68 74 22 3e 32 32 35 35 31 32 3c 2f  "right">225512</
244f0 74 64 3e 3c 74 64 20 61 6c 69 67 6e 3d 22 72 69  td><td align="ri
24500 67 68 74 22 3e 31 38 32 36 32 39 3c 2f 74 64 3e  ght">182629</td>
24510 3c 74 64 20 61 6c 69 67 6e 3d 22 72 69 67 68 74  <td align="right
24520 22 3e 31 38 32 39 33 33 3c 2f 74 64 3e 3c 74 64  ">182933</td><td
24530 20 61 6c 69 67 6e 3d 22 72 69 67 68 74 22 3e 33   align="right">3
24540 34 2e 31 38 34 31 39 34 3c 2f 74 64 3e 3c 74 64  4.184194</td><td
24550 3e 4e 55 4c 4c 3c 2f 74 64 3e 3c 74 64 3e 43 4f  >NULL</td><td>CO
24560 52 53 4f 20 49 54 41 4c 49 41 3c 2f 74 64 3e 0d  RSO ITALIA</td>.
24570 0a 3c 2f 74 72 3e 0d 0a 3c 74 72 3e 0d 0a 3c 74  .</tr>..<tr>..<t
24580 64 3e 4e 55 4c 4c 3c 2f 74 64 3e 3c 74 64 3e 4e  d>NULL</td><td>N
24590 55 4c 4c 3c 2f 74 64 3e 3c 74 64 3e 4e 55 4c 4c  ULL</td><td>NULL
245a0 3c 2f 74 64 3e 3c 74 64 20 61 6c 69 67 6e 3d 22  </td><td align="
245b0 72 69 67 68 74 22 3e 35 3c 2f 74 64 3e 3c 74 64  right">5</td><td
245c0 3e 4c 69 6e 6b 3c 2f 74 64 3e 3c 74 64 20 61 6c  >Link</td><td al
245d0 69 67 6e 3d 22 72 69 67 68 74 22 3e 32 32 35 35  ign="right">2255
245e0 31 31 3c 2f 74 64 3e 3c 74 64 20 61 6c 69 67 6e  11</td><td align
245f0 3d 22 72 69 67 68 74 22 3e 31 38 32 39 33 33 3c  ="right">182933<
24600 2f 74 64 3e 3c 74 64 20 61 6c 69 67 6e 3d 22 72  /td><td align="r
24610 69 67 68 74 22 3e 31 38 31 39 39 39 3c 2f 74 64  ight">181999</td
24620 3e 3c 74 64 20 61 6c 69 67 6e 3d 22 72 69 67 68  ><td align="righ
24630 74 22 3e 34 39 2e 32 34 31 37 33 35 3c 2f 74 64  t">49.241735</td
24640 3e 3c 74 64 3e 4e 55 4c 4c 3c 2f 74 64 3e 3c 74  ><td>NULL</td><t
24650 64 3e 43 4f 52 53 4f 20 49 54 41 4c 49 41 3c 2f  d>CORSO ITALIA</
24660 74 64 3e 0d 0a 3c 2f 74 72 3e 0d 0a 3c 74 72 3e  td>..</tr>..<tr>
24670 0d 0a 3c 74 64 3e 4e 55 4c 4c 3c 2f 74 64 3e 3c  ..<td>NULL</td><
24680 74 64 3e 4e 55 4c 4c 3c 2f 74 64 3e 3c 74 64 3e  td>NULL</td><td>
24690 4e 55 4c 4c 3c 2f 74 64 3e 3c 74 64 20 61 6c 69  NULL</td><td ali
246a0 67 6e 3d 22 72 69 67 68 74 22 3e 36 3c 2f 74 64  gn="right">6</td
246b0 3e 3c 74 64 3e 4c 69 6e 6b 3c 2f 74 64 3e 3c 74  ><td>Link</td><t
246c0 64 20 61 6c 69 67 6e 3d 22 72 69 67 68 74 22 3e  d align="right">
246d0 32 32 35 38 30 30 3c 2f 74 64 3e 3c 74 64 20 61  225800</td><td a
246e0 6c 69 67 6e 3d 22 72 69 67 68 74 22 3e 31 38 31  lign="right">181
246f0 39 39 39 3c 2f 74 64 3e 3c 74 64 20 61 6c 69 67  999</td><td alig
24700 6e 3d 22 72 69 67 68 74 22 3e 31 37 38 38 38 30  n="right">178880
24710 3c 2f 74 64 3e 3c 74 64 20 61 6c 69 67 6e 3d 22  </td><td align="
24720 72 69 67 68 74 22 3e 39 35 2e 35 39 32 32 30 34  right">95.592204
24730 3c 2f 74 64 3e 3c 74 64 3e 4e 55 4c 4c 3c 2f 74  </td><td>NULL</t
24740 64 3e 3c 74 64 3e 56 49 41 20 46 52 41 4e 43 45  d><td>VIA FRANCE
24750 53 43 4f 20 43 52 49 53 50 49 3c 2f 74 64 3e 0d  SCO CRISPI</td>.
24760 0a 3c 2f 74 72 3e 0d 0a 3c 74 72 3e 0d 0a 3c 74  .</tr>..<tr>..<t
24770 64 3e 4e 55 4c 4c 3c 2f 74 64 3e 3c 74 64 3e 4e  d>NULL</td><td>N
24780 55 4c 4c 3c 2f 74 64 3e 3c 74 64 3e 4e 55 4c 4c  ULL</td><td>NULL
24790 3c 2f 74 64 3e 3c 74 64 20 61 6c 69 67 6e 3d 22  </td><td align="
247a0 72 69 67 68 74 22 3e 37 3c 2f 74 64 3e 3c 74 64  right">7</td><td
247b0 3e 4c 69 6e 6b 3c 2f 74 64 3e 3c 74 64 20 61 6c  >Link</td><td al
247c0 69 67 6e 3d 22 72 69 67 68 74 22 3e 32 31 39 31  ign="right">2191
247d0 37 31 3c 2f 74 64 3e 3c 74 64 20 61 6c 69 67 6e  71</td><td align
247e0 3d 22 72 69 67 68 74 22 3e 31 37 38 38 38 30 3c  ="right">178880<
247f0 2f 74 64 3e 3c 74 64 20 61 6c 69 67 6e 3d 22 72  /td><td align="r
24800 69 67 68 74 22 3e 31 37 38 37 33 32 3c 2f 74 64  ight">178732</td
24810 3e 3c 74 64 20 61 6c 69 67 6e 3d 22 72 69 67 68  ><td align="righ
24820 74 22 3e 39 33 2e 32 38 35 35 33 38 3c 2f 74 64  t">93.285538</td
24830 3e 3c 74 64 3e 4e 55 4c 4c 3c 2f 74 64 3e 3c 74  ><td>NULL</td><t
24840 64 3e 56 49 41 20 46 52 41 4e 43 45 53 43 4f 20  d>VIA FRANCESCO 
24850 43 52 49 53 50 49 3c 2f 74 64 3e 0d 0a 3c 2f 74  CRISPI</td>..</t
24860 72 3e 0d 0a 3c 74 72 3e 0d 0a 3c 74 64 3e 4e 55  r>..<tr>..<td>NU
24870 4c 4c 3c 2f 74 64 3e 3c 74 64 3e 4e 55 4c 4c 3c  LL</td><td>NULL<
24880 2f 74 64 3e 3c 74 64 3e 4e 55 4c 4c 3c 2f 74 64  /td><td>NULL</td
24890 3e 3c 74 64 20 61 6c 69 67 6e 3d 22 72 69 67 68  ><td align="righ
248a0 74 22 3e 38 3c 2f 74 64 3e 3c 74 64 3e 4c 69 6e  t">8</td><td>Lin
248b0 6b 3c 2f 74 64 3e 3c 74 64 20 61 6c 69 67 6e 3d  k</td><td align=
248c0 22 72 69 67 68 74 22 3e 32 31 39 30 35 38 3c 2f  "right">219058</
248d0 74 64 3e 3c 74 64 20 61 6c 69 67 6e 3d 22 72 69  td><td align="ri
248e0 67 68 74 22 3e 31 37 38 37 33 32 3c 2f 74 64 3e  ght">178732</td>
248f0 3c 74 64 20 61 6c 69 67 6e 3d 22 72 69 67 68 74  <td align="right
24900 22 3e 31 37 38 37 35 34 3c 2f 74 64 3e 3c 74 64  ">178754</td><td
24910 20 61 6c 69 67 6e 3d 22 72 69 67 68 74 22 3e 31   align="right">1
24920 34 38 2e 36 35 36 30 38 39 3c 2f 74 64 3e 3c 74  48.656089</td><t
24930 64 3e 4e 55 4c 4c 3c 2f 74 64 3e 3c 74 64 3e 56  d>NULL</td><td>V
24940 49 41 20 46 52 41 4e 43 45 53 43 4f 20 43 52 49  IA FRANCESCO CRI
24950 53 50 49 3c 2f 74 64 3e 0d 0a 3c 2f 74 72 3e 0d  SPI</td>..</tr>.
24960 0a 3c 74 72 3e 0d 0a 3c 74 64 3e 4e 55 4c 4c 3c  .<tr>..<td>NULL<
24970 2f 74 64 3e 3c 74 64 3e 4e 55 4c 4c 3c 2f 74 64  /td><td>NULL</td
24980 3e 3c 74 64 3e 4e 55 4c 4c 3c 2f 74 64 3e 3c 74  ><td>NULL</td><t
24990 64 20 61 6c 69 67 6e 3d 22 72 69 67 68 74 22 3e  d align="right">
249a0 39 3c 2f 74 64 3e 3c 74 64 3e 50 61 72 74 69 61  9</td><td>Partia
249b0 6c 20 4c 69 6e 6b 20 28 45 6e 64 29 3c 2f 74 64  l Link (End)</td
249c0 3e 3c 74 64 20 61 6c 69 67 6e 3d 22 72 69 67 68  ><td align="righ
249d0 74 22 3e 32 32 34 30 31 39 3c 2f 74 64 3e 3c 74  t">224019</td><t
249e0 64 20 61 6c 69 67 6e 3d 22 72 69 67 68 74 22 3e  d align="right">
249f0 31 38 32 38 39 30 3c 2f 74 64 3e 3c 74 64 3e 4e  182890</td><td>N
24a00 55 4c 4c 3c 2f 74 64 3e 3c 74 64 20 61 6c 69 67  ULL</td><td alig
24a10 6e 3d 22 72 69 67 68 74 22 3e 31 35 30 2e 32 36  n="right">150.26
24a20 30 36 34 31 3c 2f 74 64 3e 3c 74 64 3e 4e 55 4c  0641</td><td>NUL
24a30 4c 3c 2f 74 64 3e 3c 74 64 3e 56 49 41 20 41 4e  L</td><td>VIA AN
24a40 54 4f 4e 49 4f 20 47 55 41 44 41 47 4e 4f 4c 49  TONIO GUADAGNOLI
24a50 3c 2f 74 64 3e 0d 0a 3c 2f 74 72 3e 0d 0a 3c 74  </td>..</tr>..<t
24a60 72 3e 0d 0a 3c 74 64 3e 4e 55 4c 4c 3c 2f 74 64  r>..<td>NULL</td
24a70 3e 3c 74 64 3e 4e 55 4c 4c 3c 2f 74 64 3e 3c 74  ><td>NULL</td><t
24a80 64 3e 4e 55 4c 4c 3c 2f 74 64 3e 3c 74 64 20 61  d>NULL</td><td a
24a90 6c 69 67 6e 3d 22 72 69 67 68 74 22 3e 31 30 3c  lign="right">10<
24aa0 2f 74 64 3e 3c 74 64 3e 45 67 72 65 73 73 20 50  /td><td>Egress P
24ab0 61 74 68 3c 2f 74 64 3e 3c 74 64 3e 4e 55 4c 4c  ath</td><td>NULL
24ac0 3c 2f 74 64 3e 3c 74 64 3e 4e 55 4c 4c 3c 2f 74  </td><td>NULL</t
24ad0 64 3e 3c 74 64 3e 4e 55 4c 4c 3c 2f 74 64 3e 3c  d><td>NULL</td><
24ae0 74 64 20 61 6c 69 67 6e 3d 22 72 69 67 68 74 22  td align="right"
24af0 3e 37 2e 32 36 34 31 31 38 3c 2f 74 64 3e 3c 74  >7.264118</td><t
24b00 64 3e 4e 55 4c 4c 3c 2f 74 64 3e 3c 74 64 3e 4e  d>NULL</td><td>N
24b10 55 4c 4c 3c 2f 74 64 3e 0d 0a 3c 2f 74 72 3e 0d  ULL</td>..</tr>.
24b20 0a 3c 2f 74 61 62 6c 65 3e 0d 0a 3c 62 72 3e 3c  .</table>..<br><
24b30 62 72 3e 0d 0a 54 68 65 20 6d 61 70 20 62 65 6c  br>..The map bel
24b40 6f 77 20 67 72 61 70 68 69 63 61 6c 6c 79 20 73  ow graphically s
24b50 68 6f 77 73 20 74 68 65 20 74 77 6f 20 50 6f 69  hows the two Poi
24b60 6e 74 2d 74 6f 2d 50 6f 69 6e 74 20 53 6f 6c 75  nt-to-Point Solu
24b70 74 69 6f 6e 73 20 72 65 74 75 72 6e 65 64 20 62  tions returned b
24b80 79 20 74 68 65 20 70 72 65 76 69 6f 75 73 20 71  y the previous q
24b90 75 65 72 69 65 73 2e 0d 0a 3c 62 72 3e 3c 62 72  ueries...<br><br
24ba0 3e 0d 0a 3c 69 6d 67 20 73 72 63 3d 22 68 74 74  >..<img src="htt
24bb0 70 73 3a 2f 2f 77 77 77 2e 67 61 69 61 2d 67 69  ps://www.gaia-gi
24bc0 73 2e 69 74 2f 67 61 69 61 2d 73 69 6e 73 2f 72  s.it/gaia-sins/r
24bd0 6f 75 74 69 6e 67 2d 66 69 67 73 2f 70 6f 69 6e  outing-figs/poin
24be0 74 2d 74 6f 2d 70 6f 69 6e 74 2e 6a 70 67 22 20  t-to-point.jpg" 
24bf0 61 6c 74 3d 22 70 6f 69 6e 74 2d 74 6f 2d 70 6f  alt="point-to-po
24c00 69 6e 74 22 3e 0d 0a 3c 75 6c 3e 0d 0a 3c 6c 69  int">..<ul>..<li
24c10 3e 74 68 65 20 67 72 65 65 6e 20 6c 69 6e 65 20  >the green line 
24c20 63 6f 72 72 65 73 70 6f 6e 64 73 20 74 6f 20 74  corresponds to t
24c30 68 65 20 66 69 72 73 74 20 73 6f 6c 75 74 69 6f  he first solutio
24c40 6e 20 28 3c 69 3e 50 6f 69 6e 74 54 6f 20 3d 20  n (<i>PointTo = 
24c50 56 49 41 20 47 55 41 44 41 47 4e 4f 4c 49 20 31  VIA GUADAGNOLI 1
24c60 39 2f 42 3c 2f 69 3e 29 2e 3c 2f 6c 69 3e 0d 0a  9/B</i>).</li>..
24c70 3c 6c 69 3e 74 68 65 20 79 65 6c 6c 6f 77 20 6c  <li>the yellow l
24c80 69 6e 65 20 63 6f 72 72 65 73 70 6f 6e 64 73 20  ine corresponds 
24c90 74 6f 20 74 68 65 20 73 65 63 6f 6e 64 20 73 6f  to the second so
24ca0 6c 75 74 69 6f 6e 20 28 3c 69 3e 50 6f 69 6e 74  lution (<i>Point
24cb0 54 6f 20 3d 20 56 49 41 20 47 55 41 44 41 47 4e  To = VIA GUADAGN
24cc0 4f 4c 49 20 31 39 2f 43 3c 2f 69 3e 29 2e 3c 2f  OLI 19/C</i>).</
24cd0 6c 69 3e 0d 0a 3c 2f 75 6c 3e 0d 0a 3c 62 72 3e  li>..</ul>..<br>
24ce0 0d 0a 3c 75 3e 4e 6f 74 65 3c 2f 75 3e 3a 20 50  ..<u>Note</u>: P
24cf0 6f 69 6e 74 2d 74 6f 2d 50 6f 69 6e 74 20 71 75  oint-to-Point qu
24d00 65 72 69 65 73 20 61 72 65 20 76 65 72 79 20 73  eries are very s
24d10 65 6e 73 69 74 69 76 65 2c 20 61 6e 64 20 61 20  ensitive, and a 
24d20 76 65 72 79 20 62 6c 61 6e 64 20 73 68 69 66 74  very bland shift
24d30 20 61 66 66 65 63 74 69 6e 67 20 74 68 65 20 70   affecting the p
24d40 6f 73 69 74 69 6f 6e 20 6f 66 20 61 20 72 65 66  osition of a ref
24d50 65 72 65 6e 63 65 20 50 6f 69 6e 74 20 63 6f 75  erence Point cou
24d60 6c 64 20 65 61 73 69 6c 79 20 63 61 75 73 65 20  ld easily cause 
24d70 64 72 61 6d 61 74 69 63 20 63 68 61 6e 67 65 73  dramatic changes
24d80 20 69 6e 20 74 68 65 20 53 6f 6c 75 74 69 6f 6e   in the Solution
24d90 27 73 20 50 61 74 68 20 28 61 73 20 69 73 20 69  's Path (as is i
24da0 6e 20 74 68 69 73 20 63 61 73 65 29 2e 0d 0a 3c  n this case)...<
24db0 62 72 3e 3c 62 72 3e 0d 0a 3c 68 72 3e 3c 62 72  br><br>..<hr><br
24dc0 3e 0d 0a 3c 61 20 68 72 65 66 3d 22 68 74 74 70  >..<a href="http
24dd0 73 3a 2f 2f 77 77 77 2e 67 61 69 61 2d 67 69 73  s://www.gaia-gis
24de0 2e 69 74 2f 66 6f 73 73 69 6c 2f 6c 69 62 73 70  .it/fossil/libsp
24df0 61 74 69 61 6c 69 74 65 2f 77 69 6b 69 3f 6e 61  atialite/wiki?na
24e00 6d 65 3d 34 2e 33 2e 30 2d 64 6f 63 22 3e 62 61  me=4.3.0-doc">ba
24e10 63 6b 3c 2f 61 3e 0a 5a 20 61 62 31 39 66 64 36  ck</a>.Z ab19fd6
24e20 36 62 34 31 38 62 66 39 62 35 61 66 33 34 37 66  6b418bf9b5af347f
24e30 30 61 61 37 32 65 39 66 62 0a                    0aa72e9fb.