Hex Artifact Content
Not logged in

Artifact 332c4c112f741b46a6fbbd4606600da10b52d5bc:

Wiki page [VirtualRouting] by sandro 2018-04-03 16:15:15.
0000: 44 20 32 30 31 38 2d 30 34 2d 30 33 54 31 36 3a  D 2018-04-03T16:
0010: 31 35 3a 31 35 2e 30 31 35 0a 4c 20 56 69 72 74  15:15.015.L Virt
0020: 75 61 6c 52 6f 75 74 69 6e 67 0a 50 20 37 61 38  ualRouting.P 7a8
0030: 63 33 38 37 30 32 32 61 37 35 62 35 66 64 62 66  c387022a75b5fdbf
0040: 37 32 34 66 31 32 39 62 63 62 35 32 66 35 39 31  724f129bcb52f591
0050: 35 64 37 35 32 0a 55 20 73 61 6e 64 72 6f 0a 57  5d752.U sandro.W
0060: 20 35 31 39 35 35 0a 3c 61 20 68 72 65 66 3d 22   51955.<a href="
0070: 68 74 74 70 73 3a 2f 2f 77 77 77 2e 67 61 69 61  https://www.gaia
0080: 2d 67 69 73 2e 69 74 2f 66 6f 73 73 69 6c 2f 6c  -gis.it/fossil/l
0090: 69 62 73 70 61 74 69 61 6c 69 74 65 2f 77 69 6b  ibspatialite/wik
00a0: 69 3f 6e 61 6d 65 3d 34 2e 33 2e 30 2d 64 6f 63  i?name=4.3.0-doc
00b0: 22 3e 62 61 63 6b 3c 2f 61 3e 3c 68 72 3e 3c 62  ">back</a><hr><b
00c0: 72 3e 0d 0a 3c 68 31 3e 54 61 62 6c 65 20 6f 66  r>..<h1>Table of
00d0: 20 43 6f 6e 74 65 6e 74 73 3c 2f 68 31 3e 0d 0a   Contents</h1>..
00e0: 31 20 2d 20 3c 61 20 68 72 65 66 3d 22 23 69 6e  1 - <a href="#in
00f0: 74 72 6f 22 3e 49 6e 74 72 6f 64 75 63 74 69 6f  tro">Introductio
0100: 6e 3c 2f 61 3e 3c 62 72 3e 0d 0a 32 20 2d 20 3c  n</a><br>..2 - <
0110: 61 20 68 72 65 66 3d 22 23 73 61 6d 70 6c 65 22  a href="#sample"
0120: 3e 54 68 65 20 73 61 6d 70 6c 65 2f 74 65 73 74  >The sample/test
0130: 20 44 42 3c 2f 61 3e 3c 62 72 3e 0d 0a 33 20 2d   DB</a><br>..3 -
0140: 20 3c 61 20 68 72 65 66 3d 22 23 63 72 65 61 74   <a href="#creat
0150: 65 22 3e 43 72 65 61 74 69 6e 67 20 56 69 72 74  e">Creating Virt
0160: 75 61 6c 52 6f 75 74 69 6e 67 20 54 61 62 6c 65  ualRouting Table
0170: 73 3c 2f 61 3e 3c 62 72 3e 0d 0a 34 20 2d 20 3c  s</a><br>..4 - <
0180: 61 20 68 72 65 66 3d 22 23 66 72 6f 6d 5f 74 6f  a href="#from_to
0190: 22 3e 53 6f 6c 76 69 6e 67 20 63 6c 61 73 73 69  ">Solving classi
01a0: 63 20 53 68 6f 72 74 65 73 74 20 50 61 74 68 20  c Shortest Path 
01b0: 70 72 6f 62 6c 65 6d 73 3c 2f 61 3e 3c 62 72 3e  problems</a><br>
01c0: 0d 0a 3c 62 72 3e 3c 68 72 3e 0d 0a 3c 68 31 3e  ..<br><hr>..<h1>
01d0: 3c 61 20 6e 61 6d 65 3d 22 69 6e 74 72 6f 22 3e  <a name="intro">
01e0: 31 20 2d 20 49 6e 74 72 6f 64 75 63 74 69 6f 6e  1 - Introduction
01f0: 3c 2f 61 3e 3c 2f 68 31 3e 0d 0a 50 72 65 76 69  </a></h1>..Previ
0200: 6f 75 73 20 76 65 72 73 69 6f 6e 73 20 6f 66 20  ous versions of 
0210: 53 70 61 74 69 61 4c 69 74 65 20 74 72 61 64 69  SpatiaLite tradi
0220: 74 69 6f 6e 61 6c 6c 79 20 73 75 70 70 6f 72 74  tionally support
0230: 65 64 20 61 20 3c 62 3e 70 75 72 65 20 53 51 4c  ed a <b>pure SQL
0240: 20 72 6f 75 74 69 6e 67 20 6d 6f 64 75 6c 65 3c   routing module<
0250: 2f 62 3e 20 74 68 61 74 20 77 61 73 20 6e 61 6d  /b> that was nam
0260: 65 64 20 3c 61 20 68 72 65 66 3d 22 68 74 74 70  ed <a href="http
0270: 73 3a 2f 2f 77 77 77 2e 67 61 69 61 2d 67 69 73  s://www.gaia-gis
0280: 2e 69 74 2f 66 6f 73 73 69 6c 2f 6c 69 62 73 70  .it/fossil/libsp
0290: 61 74 69 61 6c 69 74 65 2f 77 69 6b 69 3f 6e 61  atialite/wiki?na
02a0: 6d 65 3d 56 69 72 74 75 61 6c 4e 65 74 77 6f 72  me=VirtualNetwor
02b0: 6b 2b 72 65 6c 6f 61 64 65 64 22 3e 56 69 72 74  k+reloaded">Virt
02c0: 75 61 6c 4e 65 74 77 6f 72 6b 3c 2f 61 3e 2e 3c  ualNetwork</a>.<
02d0: 62 72 3e 3c 62 72 3e 0d 0a 53 69 6e 63 65 20 76  br><br>..Since v
02e0: 65 72 73 69 6f 6e 20 3c 62 3e 35 2e 30 2e 30 3c  ersion <b>5.0.0<
02f0: 2f 62 3e 20 61 20 62 72 61 6e 64 20 6e 65 77 20  /b> a brand new 
0300: 3c 62 3e 72 6f 75 74 69 6e 67 20 6d 6f 64 75 6c  <b>routing modul
0310: 65 3c 2f 62 3e 20 28 6d 6f 72 65 20 61 64 76 61  e</b> (more adva
0320: 6e 63 65 64 20 61 6e 64 20 73 6f 70 68 69 73 74  nced and sophist
0330: 69 63 61 74 65 64 29 20 69 73 20 61 76 61 69 6c  icated) is avail
0340: 61 62 6c 65 2c 20 74 68 61 74 20 69 73 20 63 61  able, that is ca
0350: 6c 6c 65 64 20 3c 62 3e 56 69 72 74 75 61 6c 52  lled <b>VirtualR
0360: 6f 75 74 69 6e 67 3c 2f 62 3e 2e 3c 62 72 3e 0d  outing</b>.<br>.
0370: 0a 54 68 65 20 6e 6f 77 20 6f 62 73 6f 6c 65 74  .The now obsolet
0380: 65 20 3c 62 3e 56 69 72 74 75 61 6c 4e 65 74 77  e <b>VirtualNetw
0390: 6f 72 6b 3c 2f 62 3e 20 69 73 20 73 74 69 6c 6c  ork</b> is still
03a0: 20 73 75 70 70 6f 72 74 65 64 20 62 79 20 76 65   supported by ve
03b0: 72 73 69 6f 6e 20 3c 62 3e 35 2e 30 2e 30 3c 2f  rsion <b>5.0.0</
03c0: 62 3e 20 73 6f 20 61 73 20 74 6f 20 6e 6f 74 20  b> so as to not 
03d0: 63 61 75 73 65 20 61 6e 20 61 62 72 75 70 74 20  cause an abrupt 
03e0: 62 72 65 61 6b 20 74 6f 20 61 6c 72 65 61 64 79  break to already
03f0: 20 65 78 69 73 74 69 6e 67 20 61 70 70 6c 69 63   existing applic
0400: 61 74 69 6f 6e 73 2c 20 62 75 74 20 77 69 6c 6c  ations, but will
0410: 20 70 72 65 73 75 6d 61 62 6c 79 20 62 65 20 64   presumably be d
0420: 69 73 63 6f 6e 74 69 6e 75 65 64 20 69 6e 20 66  iscontinued in f
0430: 75 74 75 72 65 20 76 65 72 73 69 6f 6e 73 2e 3c  uture versions.<
0440: 62 72 3e 0d 0a 55 73 69 6e 67 20 3c 62 3e 56 69  br>..Using <b>Vi
0450: 72 74 75 61 6c 52 6f 75 74 69 6e 67 3c 2f 62 3e  rtualRouting</b>
0460: 20 69 6e 73 74 65 61 64 20 6f 66 20 3c 62 3e 56   instead of <b>V
0470: 69 72 74 75 61 6c 4e 65 74 77 69 72 6b 3c 2f 62  irtualNetwirk</b
0480: 3e 20 69 73 20 77 61 72 6d 6c 79 20 72 65 63 6f  > is warmly reco
0490: 6d 6d 65 6e 64 65 64 20 66 6f 72 20 61 6e 79 20  mmended for any 
04a0: 6e 65 77 20 64 65 76 65 6c 6f 70 6d 65 6e 74 2e  new development.
04b0: 20 0d 0a 3c 68 32 3e 54 68 65 6f 72 65 74 69 63   ..<h2>Theoretic
04c0: 61 6c 20 66 6f 75 6e 64 61 74 69 6f 6e 73 20 2d  al foundations -
04d0: 20 61 6e 20 75 6c 74 72 61 2d 71 75 69 63 6b 20   an ultra-quick 
04e0: 72 65 63 61 6c 6c 3c 2f 68 32 3e 0d 0a 41 6c 6c  recall</h2>..All
04f0: 20 3c 62 3e 52 6f 75 74 69 6e 67 20 61 6c 67 6f   <b>Routing algo
0500: 72 69 74 68 6d 73 3c 2f 62 3e 20 28 3c 69 3e 61  rithms</b> (<i>a
0510: 6b 61 3c 2f 69 3e 20 3c 62 3e 53 68 6f 72 74 65  ka</i> <b>Shorte
0520: 73 74 20 50 61 74 68 3c 2f 62 3e 20 61 6c 67 6f  st Path</b> algo
0530: 72 69 74 68 6d 73 29 20 61 72 65 20 62 61 73 65  rithms) are base
0540: 64 20 6f 6e 20 74 68 65 20 6d 61 74 68 65 6d 61  d on the mathema
0550: 74 69 63 73 20 6f 66 20 74 68 65 20 3c 61 20 68  tics of the <a h
0560: 72 65 66 3d 22 68 74 74 70 73 3a 2f 2f 65 6e 2e  ref="https://en.
0570: 77 69 6b 69 70 65 64 69 61 2e 6f 72 67 2f 77 69  wikipedia.org/wi
0580: 6b 69 2f 47 72 61 70 68 5f 74 68 65 6f 72 79 22  ki/Graph_theory"
0590: 3e 47 72 61 70 68 20 74 68 65 6f 72 79 3c 2f 61  >Graph theory</a
05a0: 3e 20 6f 72 20 74 6f 20 62 65 20 6d 6f 72 65 20  > or to be more 
05b0: 70 72 65 63 69 73 65 3a 20 6f 6e 20 3c 62 3e 57  precise: on <b>W
05c0: 65 69 67 68 74 65 64 20 47 72 61 70 68 73 3c 2f  eighted Graphs</
05d0: 62 3e 2e 0d 0a 3c 62 72 3e 0d 0a 3c 69 6d 67 20  b>...<br>..<img 
05e0: 73 72 63 3d 22 68 74 74 70 3a 2f 2f 77 77 77 2e  src="http://www.
05f0: 67 61 69 61 2d 67 69 73 2e 69 74 2f 67 61 69 61  gaia-gis.it/gaia
0600: 2d 73 69 6e 73 2f 6e 65 74 77 6f 72 6b 2e 70 6e  -sins/network.pn
0610: 67 22 20 61 6c 74 3d 22 6e 65 74 77 6f 72 6b 22  g" alt="network"
0620: 3e 0d 0a 3c 62 72 3e 0d 0a 41 20 74 6f 70 6f 6c  >..<br>..A topol
0630: 6f 67 69 63 61 6c 6c 79 20 76 61 6c 69 64 20 3c  ogically valid <
0640: 62 3e 4e 65 74 77 6f 72 6b 3c 2f 62 3e 20 69 73  b>Network</b> is
0650: 20 61 20 64 61 74 61 73 65 74 20 74 68 61 74 20   a dataset that 
0660: 66 75 6c 66 69 6c 6c 73 20 74 68 65 20 66 6f 6c  fulfills the fol
0670: 6c 6f 77 69 6e 67 20 72 65 71 75 69 72 65 6d 65  lowing requireme
0680: 6e 74 73 3a 0d 0a 3c 75 6c 3e 0d 0a 3c 6c 69 3e  nts:..<ul>..<li>
0690: 41 6c 6c 20 69 74 65 6d 73 20 69 6e 20 74 68 65  All items in the
06a0: 20 64 61 74 61 73 65 74 20 61 72 65 20 63 61 6c   dataset are cal
06b0: 6c 65 64 20 3c 62 3e 4c 69 6e 6b 73 3c 2f 62 3e  led <b>Links</b>
06c0: 20 28 3c 69 3e 61 6b 61 3c 2f 69 3e 20 3c 62 3e   (<i>aka</i> <b>
06d0: 41 72 63 73 3c 2f 62 3e 29 2c 20 61 6e 64 20 61  Arcs</b>), and a
06e0: 72 65 20 65 78 70 65 63 74 65 64 20 74 6f 20 72  re expected to r
06f0: 65 70 72 65 73 65 6e 74 20 73 6f 6d 65 20 6f 72  epresent some or
0700: 69 65 6e 74 65 64 20 63 6f 6e 6e 65 63 74 69 6f  iented connectio
0710: 6e 20 6a 6f 69 6e 69 6e 67 20 74 77 6f 20 3c 62  n joining two <b
0720: 3e 4e 6f 64 65 73 3c 2f 62 3e 2e 3c 62 72 3e 0d  >Nodes</b>.<br>.
0730: 0a 3c 75 3e 45 78 61 6d 70 6c 65 3c 2f 75 3e 3a  .<u>Example</u>:
0740: 20 69 6e 20 74 68 65 20 61 62 6f 76 65 20 66 69   in the above fi
0750: 67 75 72 65 20 4c 69 6e 6b 20 3c 62 3e 4c 33 3c  gure Link <b>L3<
0760: 2f 62 3e 20 63 6f 6e 6e 65 63 74 73 20 4e 6f 64  /b> connects Nod
0770: 65 73 20 3c 62 3e 4e 32 3c 2f 62 3e 20 61 6e 64  es <b>N2</b> and
0780: 20 3c 62 3e 4e 35 3c 2f 62 3e 2e 3c 2f 6c 69 3e   <b>N5</b>.</li>
0790: 0d 0a 3c 6c 69 3e 53 6f 20 61 6c 6c 20 3c 62 3e  ..<li>So all <b>
07a0: 4c 69 6e 6b 73 3c 2f 62 3e 20 61 72 65 20 61 6c  Links</b> are al
07b0: 77 61 79 73 20 65 78 70 65 63 74 65 64 20 74 6f  ways expected to
07c0: 20 65 78 70 6c 69 63 69 74 6c 79 20 72 65 66 65   explicitly refe
07d0: 72 65 6e 63 65 20 61 20 3c 62 3e 53 74 61 72 74  rence a <b>Start
07e0: 2d 4e 6f 64 65 3c 2f 62 3e 20 28 3c 69 3e 61 6b  -Node</b> (<i>ak
07f0: 61 3c 2f 69 3e 20 3c 62 3e 4e 6f 64 65 2d 46 72  a</i> <b>Node-Fr
0800: 6f 6d 3c 2f 62 3e 29 20 61 6e 64 20 61 6e 20 3c  om</b>) and an <
0810: 62 3e 45 6e 64 2d 4e 6f 64 65 3c 2f 62 3e 20 28  b>End-Node</b> (
0820: 3c 69 3e 61 6b 61 3c 2f 69 3e 20 3c 62 3e 4e 6f  <i>aka</i> <b>No
0830: 64 65 2d 54 6f 3c 2f 62 3e 29 2e 0d 0a 3c 75 6c  de-To</b>)...<ul
0840: 3e 0d 0a 3c 6c 69 3e 4c 69 6e 6b 73 20 61 72 65  >..<li>Links are
0850: 20 61 6c 77 61 79 73 20 3c 62 3e 6f 72 69 65 6e   always <b>orien
0860: 74 65 64 3c 2f 62 3e 2c 20 61 6e 64 20 74 68 65  ted</b>, and the
0870: 69 72 20 6e 61 74 75 72 61 6c 20 64 69 72 65 63  ir natural direc
0880: 74 69 6f 6e 20 69 73 20 3c 62 3e 46 72 6f 6d 2d  tion is <b>From-
0890: 54 6f 3c 2f 62 3e 3a 0d 0a 3c 75 6c 3e 0d 0a 3c  To</b>:..<ul>..<
08a0: 6c 69 3e 69 6e 20 61 6e 20 3c 62 3e 75 6e 69 64  li>in an <b>unid
08b0: 69 72 65 63 74 69 6f 6e 61 6c 3c 2f 62 3e 20 4e  irectional</b> N
08c0: 65 74 77 6f 72 6b 20 65 61 63 68 20 4c 69 6e 6b  etwork each Link
08d0: 20 69 73 20 61 6e 20 3c 62 3e 6f 6e 65 2d 77 61   is an <b>one-wa
08e0: 79 3c 2f 62 3e 20 63 6f 6e 6e 65 63 74 69 6f 6e  y</b> connection
08f0: 2e 3c 62 72 3e 0d 0a 49 66 20 74 68 65 20 63 6f  .<br>..If the co
0900: 6e 6e 65 63 74 69 6f 6e 20 69 73 20 61 76 61 69  nnection is avai
0910: 6c 61 62 6c 65 20 69 6e 20 74 68 65 20 6f 70 70  lable in the opp
0920: 6f 73 69 74 65 20 64 69 72 65 63 74 69 6f 6e 20  osite direction 
0930: 61 20 73 65 63 6f 6e 64 20 4c 69 6e 6b 20 6d 75  a second Link mu
0940: 73 74 20 62 65 20 65 78 70 6c 69 63 69 74 6c 79  st be explicitly
0950: 20 64 65 63 6c 61 72 65 64 2e 3c 62 72 3e 0d 0a   declared.<br>..
0960: 3c 75 3e 45 78 61 6d 70 6c 65 3c 2f 75 3e 3a 20  <u>Example</u>: 
0970: 4c 69 6e 6b 20 3c 62 3e 58 31 3c 2f 62 3e 20 67  Link <b>X1</b> g
0980: 6f 65 73 20 66 72 6f 6d 20 4e 6f 64 65 20 3c 62  oes from Node <b
0990: 3e 41 3c 2f 62 3e 20 74 6f 20 4e 6f 64 65 20 3c  >A</b> to Node <
09a0: 62 3e 42 3c 2f 62 3e 2c 20 61 6e 64 20 4c 69 6e  b>B</b>, and Lin
09b0: 6b 20 3c 62 3e 58 32 3c 2f 62 3e 20 67 6f 65 73  k <b>X2</b> goes
09c0: 20 66 72 6f 6d 20 4e 6f 64 65 20 3c 62 3e 42 3c   from Node <b>B<
09d0: 2f 62 3e 20 74 6f 20 4e 6f 64 65 20 3c 62 3e 41  /b> to Node <b>A
09e0: 3c 2f 62 3e 2e 3c 2f 6c 69 3e 0d 0a 3c 6c 69 3e  </b>.</li>..<li>
09f0: 69 6e 20 61 20 3c 62 3e 62 69 64 69 72 65 63 74  in a <b>bidirect
0a00: 69 6f 6e 61 6c 3c 2f 62 3e 20 4e 65 74 77 6f 72  ional</b> Networ
0a10: 6b 20 61 6c 6c 20 4c 69 6e 6b 73 20 61 72 65 20  k all Links are 
0a20: 61 73 73 75 6d 65 64 20 74 6f 20 65 73 74 61 62  assumed to estab
0a30: 6c 69 73 68 20 61 20 63 6f 6e 6e 65 63 74 69 6f  lish a connectio
0a40: 6e 20 69 6e 20 62 6f 74 68 20 64 69 72 65 63 74  n in both direct
0a50: 69 6f 6e 73 2e 3c 62 72 3e 0d 0a 44 65 66 69 6e  ions.<br>..Defin
0a60: 69 74 69 6e 67 20 61 6e 20 3c 62 3e 6f 6e 65 2d  iting an <b>one-
0a70: 77 61 79 20 63 6f 6e 6e 65 63 74 69 6f 6e 3c 2f  way connection</
0a80: 62 3e 20 72 65 71 75 69 72 65 73 20 61 6e 20 61  b> requires an a
0a90: 70 70 72 6f 70 72 69 61 74 65 20 61 74 74 72 69  ppropriate attri
0aa0: 62 75 74 65 20 74 6f 20 62 65 20 73 65 74 20 28  bute to be set (
0ab0: 73 65 65 20 62 65 6c 6f 77 29 2e 3c 2f 6c 69 3e  see below).</li>
0ac0: 0d 0a 3c 2f 75 6c 3e 3c 2f 6c 69 3e 0d 0a 3c 6c  ..</ul></li>..<l
0ad0: 69 3e 54 68 65 20 3c 62 3e 53 74 61 72 74 2d 3c  i>The <b>Start-<
0ae0: 2f 62 3e 20 61 6e 64 20 3c 62 3e 45 6e 64 2d 4e  /b> and <b>End-N
0af0: 6f 64 65 3c 2f 62 3e 20 63 6f 75 6c 64 20 65 76  ode</b> could ev
0b00: 65 6e 74 75 61 6c 6c 79 20 62 65 20 74 68 65 20  entually be the 
0b10: 73 61 6d 65 2c 20 61 6e 64 20 69 6e 20 74 68 69  same, and in thi
0b20: 73 20 63 61 73 65 20 77 65 27 6c 6c 20 68 61 76  s case we'll hav
0b30: 65 20 61 20 3c 62 3e 73 65 6c 66 2d 63 6c 6f 73  e a <b>self-clos
0b40: 65 64 3c 2f 62 3e 20 4c 69 6e 6b 2e 3c 2f 6c 69  ed</b> Link.</li
0b50: 3e 0d 0a 3c 6c 69 3e 4e 65 74 77 6f 72 6b 27 73  >..<li>Network's
0b60: 20 4c 69 6e 6b 73 20 3c 62 3e 63 61 6e 3c 2f 62   Links <b>can</b
0b70: 3e 20 65 76 65 6e 74 75 61 6c 6c 79 20 64 65 66  > eventually def
0b80: 69 6e 65 20 61 20 6c 69 6e 65 61 72 20 47 65 6f  ine a linear Geo
0b90: 6d 65 74 72 79 20 28 3c 62 3e 4c 49 4e 45 53 54  metry (<b>LINEST
0ba0: 52 49 4e 47 3c 2f 62 3e 29 20 67 6f 69 6e 67 20  RING</b>) going 
0bb0: 66 72 6f 6d 20 74 68 65 20 3c 62 3e 53 74 61 72  from the <b>Star
0bc0: 74 2d 4e 6f 64 65 3c 2f 62 3e 20 74 6f 20 74 68  t-Node</b> to th
0bd0: 65 20 3c 62 3e 45 6e 64 2d 4e 6f 64 65 3c 2f 62  e <b>End-Node</b
0be0: 3e 2c 20 62 75 74 20 74 68 69 73 20 69 73 20 61  >, but this is a
0bf0: 6e 20 6f 70 74 69 6f 6e 61 6c 20 66 65 61 74 75  n optional featu
0c00: 72 65 2c 20 6e 6f 74 20 61 20 6d 61 6e 64 61 74  re, not a mandat
0c10: 6f 72 79 20 72 65 71 75 69 72 65 6d 65 6e 74 2e  ory requirement.
0c20: 3c 2f 6c 69 3e 0d 0a 3c 6c 69 3e 57 68 61 74 20  </li>..<li>What 
0c30: 69 73 20 61 62 73 6f 6c 75 74 65 6c 79 20 6d 61  is absolutely ma
0c40: 6e 64 61 74 6f 72 79 20 69 73 20 74 68 61 74 20  ndatory is that 
0c50: 65 61 63 68 20 3c 62 3e 4c 69 6e 6b 3c 2f 62 3e  each <b>Link</b>
0c60: 20 6d 75 73 74 20 65 78 70 6c 69 63 69 74 6c 79   must explicitly
0c70: 20 72 65 66 65 72 65 6e 63 65 20 69 74 73 20 3c   reference its <
0c80: 62 3e 4e 6f 64 65 73 3c 2f 62 3e 2e 3c 2f 6c 69  b>Nodes</b>.</li
0c90: 3e 0d 0a 3c 2f 75 6c 3e 3c 2f 6c 69 3e 0d 0a 3c  >..</ul></li>..<
0ca0: 6c 69 3e 41 20 4e 65 74 77 6f 72 6b 20 73 75 70  li>A Network sup
0cb0: 70 6f 72 74 69 6e 67 20 47 65 6f 6d 65 74 72 69  porting Geometri
0cc0: 65 73 20 69 73 20 61 20 3c 62 3e 53 70 61 74 69  es is a <b>Spati
0cd0: 61 6c 20 4e 65 74 77 6f 72 6b 3c 2f 62 3e 3b 20  al Network</b>; 
0ce0: 6f 74 68 65 72 77 69 73 65 20 61 20 4e 65 74 77  otherwise a Netw
0cf0: 6f 72 6b 20 6c 61 63 6b 69 6e 67 20 61 6e 79 20  ork lacking any 
0d00: 47 65 6f 6d 65 74 72 79 20 69 73 20 61 20 3c 62  Geometry is a <b
0d10: 3e 4c 6f 67 69 63 61 6c 20 4e 65 74 77 6f 72 6b  >Logical Network
0d20: 3c 2f 62 3e 2e 0d 0a 3c 75 6c 3e 0d 0a 3c 6c 69  </b>...<ul>..<li
0d30: 3e 49 6e 20 61 20 3c 62 3e 53 70 61 74 69 61 6c  >In a <b>Spatial
0d40: 20 4e 65 74 77 6f 72 6b 3c 2f 62 3e 20 61 6c 6c   Network</b> all
0d50: 20 4c 69 6e 6b 73 20 3c 62 3e 6d 75 73 74 3c 2f   Links <b>must</
0d60: 62 3e 20 68 61 76 65 20 61 20 63 6f 72 72 65 73  b> have a corres
0d70: 70 6f 6e 64 69 6e 67 20 47 65 6f 6d 65 74 72 79  ponding Geometry
0d80: 2e 3c 2f 6c 69 3e 0d 0a 3c 6c 69 3e 49 6e 20 61  .</li>..<li>In a
0d90: 20 3c 62 3e 4c 6f 67 69 63 61 6c 20 4e 65 74 77   <b>Logical Netw
0da0: 6f 72 6b 3c 2f 62 3e 20 61 6c 6c 20 4c 69 6e 6b  ork</b> all Link
0db0: 73 20 3c 62 3e 61 72 65 20 73 74 72 69 63 74 6c  s <b>are strictl
0dc0: 79 20 66 6f 72 62 69 64 64 65 6e 3c 2f 62 3e 20  y forbidden</b> 
0dd0: 74 6f 20 68 61 76 65 20 61 6e 79 20 47 65 6f 6d  to have any Geom
0de0: 65 74 72 79 2e 3c 2f 6c 69 3e 0d 0a 3c 6c 69 3e  etry.</li>..<li>
0df0: 49 6e 20 61 20 3c 62 3e 53 70 61 74 69 61 6c 20  In a <b>Spatial 
0e00: 4e 65 74 77 6f 72 6b 3c 2f 62 3e 20 62 6f 74 68  Network</b> both
0e10: 20 74 68 65 20 3c 62 3e 53 74 61 72 74 50 6f 69   the <b>StartPoi
0e20: 6e 74 3c 2f 62 3e 20 61 6e 64 20 3c 62 3e 45 6e  nt</b> and <b>En
0e30: 64 50 6f 69 6e 74 3c 2f 62 3e 20 6f 66 20 65 61  dPoint</b> of ea
0e40: 63 68 20 4c 69 6e 6b 27 73 20 3c 62 3e 4c 49 4e  ch Link's <b>LIN
0e50: 45 53 54 52 49 4e 47 3c 2f 62 3e 20 61 72 65 20  ESTRING</b> are 
0e60: 61 6c 77 61 79 73 20 65 78 70 65 63 74 65 64 20  always expected 
0e70: 74 6f 20 65 78 61 63 74 6c 79 20 63 6f 69 6e 63  to exactly coinc
0e80: 69 64 65 20 77 69 74 68 20 74 68 65 20 63 6f 72  ide with the cor
0e90: 72 65 73 70 6f 6e 64 69 6e 67 20 3c 62 3e 4e 6f  responding <b>No
0ea0: 64 65 73 3c 2f 62 3e 2e 3c 2f 6c 69 3e 0d 0a 3c  des</b>.</li>..<
0eb0: 2f 75 6c 3e 3c 2f 6c 69 3e 0d 0a 3c 6c 69 3e 49  /ul></li>..<li>I
0ec0: 6e 20 61 20 3c 62 3e 53 70 61 74 69 61 6c 20 4e  n a <b>Spatial N
0ed0: 65 74 77 6f 72 6b 3c 2f 62 3e 20 61 6c 6c 20 72  etwork</b> all r
0ee0: 65 66 65 72 65 6e 63 65 73 20 74 6f 20 74 68 65  eferences to the
0ef0: 20 73 61 6d 65 20 3c 62 3e 4e 6f 64 65 3c 2f 62   same <b>Node</b
0f00: 3e 20 62 79 20 64 69 66 66 65 72 65 6e 74 20 4c  > by different L
0f10: 69 6e 6b 73 20 3c 62 3e 6d 75 73 74 3c 2f 62 3e  inks <b>must</b>
0f20: 20 62 65 20 61 6e 20 65 78 61 63 74 20 6d 61 74   be an exact mat
0f30: 63 68 2e 3c 62 72 3e 0d 0a 3c 75 3e 45 78 61 6d  ch.<br>..<u>Exam
0f40: 70 6c 65 3c 2f 75 3e 3a 20 4e 6f 64 65 20 3c 62  ple</u>: Node <b
0f50: 3e 4e 35 3c 2f 62 3e 20 69 73 20 73 68 61 72 65  >N5</b> is share
0f60: 64 20 62 79 20 4c 69 6e 6b 73 20 3c 62 3e 4c 33  d by Links <b>L3
0f70: 3c 2f 62 3e 2c 20 3c 62 3e 4c 36 3c 2f 62 3e 2c  </b>, <b>L6</b>,
0f80: 20 3c 62 3e 4c 37 3c 2f 62 3e 2c 20 3c 62 3e 4c   <b>L7</b>, <b>L
0f90: 39 3c 2f 62 3e 20 61 6e 64 20 3c 62 3e 4c 31 30  9</b> and <b>L10
0fa0: 3c 2f 62 3e 2c 20 73 6f 20 61 6c 6c 20 74 68 65  </b>, so all the
0fb0: 69 72 20 63 6f 72 72 65 73 70 6f 6e 64 69 6e 67  ir corresponding
0fc0: 20 4c 49 4e 45 53 54 52 49 4e 47 53 20 61 72 65   LINESTRINGS are
0fd0: 20 65 78 70 65 63 74 65 64 20 74 6f 20 68 61 76   expected to hav
0fe0: 65 20 74 68 65 20 63 6f 72 72 65 73 70 6f 6e 64  e the correspond
0ff0: 69 6e 67 20 65 78 74 72 65 6d 69 74 79 20 28 3c  ing extremity (<
1000: 62 3e 53 74 61 72 74 2d 3c 2f 62 3e 20 6f 72 20  b>Start-</b> or 
1010: 3c 62 3e 45 6e 64 2d 3c 2f 62 3e 2c 20 64 65 70  <b>End-</b>, dep
1020: 65 6e 64 69 6e 67 20 6f 6e 20 74 68 65 20 6f 72  ending on the or
1030: 69 65 6e 74 61 74 69 6f 6e 29 20 70 6f 69 6e 74  ientation) point
1040: 73 20 74 68 61 74 20 6d 75 73 74 20 65 78 61 63  s that must exac
1050: 74 6c 79 20 6d 61 74 63 68 20 74 68 65 20 6f 74  tly match the ot
1060: 68 65 72 2e 3c 62 72 3e 0d 0a 41 20 3c 62 3e 74  her.<br>..A <b>t
1070: 6f 70 6f 6c 6f 67 69 63 61 6c 20 69 6e 63 6f 6e  opological incon
1080: 73 69 73 74 65 6e 63 79 3c 2f 62 3e 20 65 78 69  sistency</b> exi
1090: 73 74 73 20 69 66 20 61 6e 79 20 6f 66 20 74 68  sts if any of th
10a0: 65 73 65 20 63 6f 6e 64 69 74 69 6f 6e 73 20 61  ese conditions a
10b0: 72 65 20 6e 6f 74 20 73 61 74 69 73 66 69 65 64  re not satisfied
10c0: 2c 20 77 68 69 63 68 20 6c 65 61 64 73 20 74 6f  , which leads to
10d0: 20 61 6e 20 3c 62 3e 69 6e 76 61 6c 69 64 3c 2f   an <b>invalid</
10e0: 62 3e 20 4e 65 74 77 6f 72 6b 2e 3c 2f 6c 69 3e  b> Network.</li>
10f0: 0d 0a 3c 6c 69 3e 49 6e 20 61 20 3c 62 3e 53 70  ..<li>In a <b>Sp
1100: 61 74 69 61 6c 20 4e 65 74 77 6f 72 6b 3c 2f 62  atial Network</b
1110: 3e 20 74 77 6f 0d 0a 3c 6c 69 3e 41 63 63 6f 72  > two..<li>Accor
1120: 64 69 6e 67 6c 79 20 74 6f 20 74 68 65 20 61 62  dingly to the ab
1130: 6f 76 65 20 70 72 65 6d 69 73 65 73 2c 20 3c 62  ove premises, <b
1140: 3e 4e 6f 64 65 73 3c 2f 62 3e 20 61 72 65 20 6e  >Nodes</b> are n
1150: 65 76 65 72 20 65 78 70 65 63 74 65 64 20 74 6f  ever expected to
1160: 20 62 65 20 65 78 70 6c 69 63 69 74 6c 79 20 64   be explicitly d
1170: 65 63 6c 61 72 65 64 20 69 6e 20 61 20 73 65 70  eclared in a sep
1180: 61 72 61 74 65 20 54 61 62 6c 65 2e 3c 62 72 3e  arate Table.<br>
1190: 0d 0a 4a 75 73 74 20 61 20 73 69 6e 67 6c 65 20  ..Just a single 
11a0: 54 61 62 6c 65 20 64 65 63 6c 61 72 69 6e 67 20  Table declaring 
11b0: 61 6c 6c 20 3c 62 3e 4c 69 6e 6b 73 3c 2f 62 3e  all <b>Links</b>
11c0: 20 69 73 20 72 65 71 75 69 72 65 64 20 69 6e 20   is required in 
11d0: 6f 72 64 65 72 20 74 6f 20 66 75 6c 6c 79 20 64  order to fully d
11e0: 65 66 69 6e 65 20 61 20 74 6f 70 6f 6c 6f 67 69  efine a topologi
11f0: 63 61 6c 6c 79 20 76 61 6c 69 64 20 4e 65 74 77  cally valid Netw
1200: 6f 72 6b 2e 3c 62 72 3e 0d 0a 41 6c 6c 20 74 68  ork.<br>..All th
1210: 65 20 4e 6f 64 65 73 20 63 61 6e 20 74 68 65 6e  e Nodes can then
1220: 20 62 65 20 65 61 73 69 6c 79 20 65 78 74 72 61   be easily extra
1230: 63 74 65 64 20 66 72 6f 6d 20 74 68 65 20 4c 69  cted from the Li
1240: 6e 6b 73 27 20 64 65 66 69 6e 69 74 69 6f 6e 73  nks' definitions
1250: 20 61 6e 64 20 74 68 65 20 63 6f 6f 72 64 69 6e   and the coordin
1260: 61 74 65 73 20 66 6f 72 20 65 61 63 68 20 4e 6f  ates for each No
1270: 64 65 20 63 61 6e 20 62 65 20 64 69 72 65 63 74  de can be direct
1280: 6c 79 20 73 65 74 20 62 79 20 65 78 74 72 61 63  ly set by extrac
1290: 74 69 6e 67 20 74 68 65 20 65 78 74 72 65 6d 65  ting the extreme
12a0: 20 50 6f 69 6e 74 20 6f 66 20 74 68 65 20 63 6f   Point of the co
12b0: 72 72 65 73 70 6f 6e 64 69 6e 67 20 4c 69 6e 65  rresponding Line
12c0: 73 74 72 69 6e 67 73 2e 3c 62 72 3e 0d 0a 49 66  strings.<br>..If
12d0: 20 61 6e 79 20 6d 69 73 6d 61 74 63 68 20 69 73   any mismatch is
12e0: 20 64 65 74 65 63 74 65 64 20 74 68 69 73 20 73   detected this s
12f0: 75 72 65 6c 79 20 6d 65 61 6e 73 20 74 68 61 74  urely means that
1300: 20 74 68 65 20 4e 65 74 77 6f 72 6b 20 69 73 20   the Network is 
1310: 69 6e 76 61 6c 69 64 2e 3c 2f 6c 69 3e 0d 0a 3c  invalid.</li>..<
1320: 6c 69 3e 41 20 3c 62 3e 4c 69 6e 6b 3c 2f 62 3e  li>A <b>Link</b>
1330: 20 6d 61 79 20 6c 65 67 69 74 69 6d 61 74 65 6c   may legitimatel
1340: 79 20 73 65 6c 66 2d 69 6e 74 65 72 73 65 63 74  y self-intersect
1350: 20 69 74 73 65 6c 66 20 28 65 2e 67 2e 20 66 6f   itself (e.g. fo
1360: 72 6d 69 6e 67 20 61 20 6c 6f 6f 70 29 2c 20 61  rming a loop), a
1370: 73 20 73 68 6f 77 6e 20 69 6e 20 74 68 65 20 61  s shown in the a
1380: 62 6f 76 65 20 66 69 67 75 72 65 20 62 79 20 4c  bove figure by L
1390: 69 6e 6b 20 3c 62 3e 4c 31 35 3c 2f 62 3e 20 28  ink <b>L15</b> (
13a0: 6f 72 61 6e 67 65 20 73 70 6f 74 29 2e 3c 2f 6c  orange spot).</l
13b0: 69 3e 0d 0a 3c 6c 69 3e 54 77 6f 20 3c 62 3e 4c  i>..<li>Two <b>L
13c0: 69 6e 6b 73 3c 2f 62 3e 20 6d 61 79 20 6c 65 67  inks</b> may leg
13d0: 69 74 69 6d 61 74 65 6c 79 20 69 6e 74 65 72 73  itimately inters
13e0: 65 63 74 20 77 68 65 72 65 20 6e 6f 20 4e 6f 64  ect where no Nod
13f0: 65 20 65 78 69 73 74 73 2c 20 61 73 20 65 78 65  e exists, as exe
1400: 6d 70 6c 69 66 69 65 64 20 6f 6e 20 74 68 65 20  mplified on the 
1410: 61 62 6f 76 65 20 66 69 67 75 72 65 20 62 79 20  above figure by 
1420: 4c 69 6e 6b 73 20 3c 62 3e 4c 34 3c 2f 62 3e 20  Links <b>L4</b> 
1430: 61 6e 64 20 3c 62 3e 4c 37 3c 2f 62 3e 20 28 67  and <b>L7</b> (g
1440: 72 65 65 6e 20 73 70 6f 74 29 2e 3c 62 72 3e 0d  reen spot).<br>.
1450: 0a 54 68 69 73 20 75 73 75 61 6c 6c 79 20 68 61  .This usually ha
1460: 70 70 65 6e 73 20 77 68 65 6e 20 6f 6e 65 20 6f  ppens when one o
1470: 66 20 74 68 65 20 74 77 6f 20 4c 69 6e 6b 73 20  f the two Links 
1480: 6f 76 65 72 70 61 73 73 65 73 20 74 68 65 20 6f  overpasses the o
1490: 74 68 65 72 2c 20 6f 72 20 77 68 65 72 65 20 73  ther, or where s
14a0: 6f 6d 65 20 74 65 63 68 6e 69 63 61 6c 20 72 65  ome technical re
14b0: 73 74 72 69 63 74 69 6f 6e 20 65 78 69 73 74 73  striction exists
14c0: 20 28 65 2e 67 2e 20 74 77 6f 20 69 6e 73 75 6c   (e.g. two insul
14d0: 61 74 65 64 20 77 69 72 65 73 20 69 6e 20 61 6e  ated wires in an
14e0: 20 45 6c 65 63 74 72 69 63 61 6c 20 4e 65 74 77   Electrical Netw
14f0: 6f 72 6b 29 2e 3c 2f 6c 69 3e 0d 0a 3c 6c 69 3e  ork).</li>..<li>
1500: 3c 62 3e 4c 69 6e 6b 73 3c 2f 62 3e 20 61 72 65  <b>Links</b> are
1510: 6e 27 74 20 73 74 72 69 63 74 6c 79 20 72 65 71  n't strictly req
1520: 75 69 72 65 64 20 74 6f 20 62 65 20 61 73 73 6f  uired to be asso
1530: 63 69 61 74 65 64 20 77 69 74 68 20 61 6e 79 20  ciated with any 
1540: 73 70 65 63 69 66 69 63 20 61 74 74 72 69 62 75  specific attribu
1550: 74 65 2c 20 62 75 74 20 74 68 65 20 66 6f 6c 6c  te, but the foll
1560: 6f 77 69 6e 67 20 61 74 74 72 69 62 75 74 65 73  owing attributes
1570: 20 61 72 65 20 61 6c 6d 6f 73 74 20 75 6e 69 76   are almost univ
1580: 65 72 73 61 6c 6c 79 20 73 75 70 70 6f 72 74 65  ersally supporte
1590: 64 3a 0d 0a 3c 75 6c 3e 0d 0a 3c 6c 69 3e 61 20  d:..<ul>..<li>a 
15a0: 3c 62 3e 6e 61 6d 65 3c 2f 62 3e 20 69 64 65 6e  <b>name</b> iden
15b0: 74 69 66 79 69 6e 67 20 74 68 65 20 4c 69 6e 6b  tifying the Link
15c0: 2e 3c 62 72 3e 0d 0a 3c 75 3e 45 78 61 6d 70 6c  .<br>..<u>Exampl
15d0: 65 73 3c 2f 75 3e 3a 20 74 68 65 20 3c 69 3e 72  es</u>: the <i>r
15e0: 6f 61 64 20 74 6f 70 6f 6e 79 6d 3c 2f 69 3e 20  oad toponym</i> 
15f0: 69 6e 20 61 20 3c 62 3e 72 6f 61 64 20 6e 65 74  in a <b>road net
1600: 77 6f 72 6b 3c 2f 62 3e 2c 20 6f 72 20 74 68 65  work</b>, or the
1610: 20 3c 69 3e 72 69 76 65 72 20 6e 61 6d 65 3c 2f   <i>river name</
1620: 69 3e 20 69 6e 20 61 6e 20 3c 62 3e 68 79 64 72  i> in an <b>hydr
1630: 6f 67 72 61 70 68 69 63 20 6e 65 74 77 6f 72 6b  ographic network
1640: 3c 2f 62 3e 2e 3c 2f 6c 69 3e 0d 0a 3c 6c 69 3e  </b>.</li>..<li>
1650: 6f 6e 65 20 28 6f 72 20 65 76 65 6e 20 6d 6f 72  one (or even mor
1660: 65 29 20 61 70 70 72 6f 70 72 69 61 74 65 20 3c  e) appropriate <
1670: 62 3e 63 6f 73 74 20 76 61 6c 75 65 3c 2f 62 3e  b>cost value</b>
1680: 28 73 29 2e 3c 62 72 3e 0d 0a 3c 75 3e 45 78 61  (s).<br>..<u>Exa
1690: 6d 70 6c 65 3c 2f 75 3e 3a 20 74 68 65 20 3c 69  mple</u>: the <i
16a0: 3e 74 69 6d 65 3c 2f 69 3e 20 72 65 71 75 69 72  >time</i> requir
16b0: 65 64 20 74 6f 20 74 72 61 76 65 72 73 65 20 74  ed to traverse t
16c0: 68 65 20 4c 69 6e 6b 20 28 6d 61 79 20 62 65 20  he Link (may be 
16d0: 64 69 73 74 69 6e 67 75 69 73 68 65 64 20 62 65  distinguished be
16e0: 74 77 65 65 6e 20 70 65 64 65 73 74 72 69 61 6e  tween pedestrian
16f0: 73 2c 20 62 69 63 79 63 6c 65 73 2c 20 63 61 72  s, bicycles, car
1700: 73 2c 20 6c 6f 72 72 69 65 73 20 61 6e 64 20 73  s, lorries and s
1710: 6f 20 6f 6e 29 2e 3c 2f 6c 69 3e 0d 0a 3c 6c 69  o on).</li>..<li
1720: 3e 61 20 70 61 69 72 20 6f 66 20 3c 62 3e 62 6f  >a pair of <b>bo
1730: 6f 6c 65 61 6e 20 66 6c 61 67 73 3c 2f 62 3e 20  olean flags</b> 
1740: 28 3c 62 3e 66 72 6f 6d 2d 74 6f 3c 2f 62 3e 20  (<b>from-to</b> 
1750: 61 6e 64 20 3c 62 3e 74 6f 2d 66 72 6f 6d 3c 2f  and <b>to-from</
1760: 62 3e 29 20 61 72 65 20 69 6e 74 65 6e 64 65 6e  b>) are intenden
1770: 64 20 74 6f 20 73 70 65 63 69 66 79 20 69 66 20  d to specify if 
1780: 74 68 65 20 4c 69 6e 6b 20 63 61 6e 20 62 65 20  the Link can be 
1790: 74 72 61 76 65 72 73 65 64 20 6f 6e 20 62 6f 74  traversed on bot
17a0: 68 20 64 69 72 65 63 74 69 6f 6e 73 20 6f 72 20  h directions or 
17b0: 6a 75 73 74 20 69 6e 20 6f 6e 65 20 28 3c 62 3e  just in one (<b>
17c0: 6f 6e 65 2d 77 61 79 3c 2f 62 3e 29 2e 3c 2f 6c  one-way</b>).</l
17d0: 69 3e 0d 0a 3c 2f 75 6c 3e 3c 2f 6c 69 3e 0d 0a  i>..</ul></li>..
17e0: 3c 2f 75 6c 3e 0d 0a 3c 68 34 3e 4c 6f 67 69 63  </ul>..<h4>Logic
17f0: 61 6c 20 63 6f 6e 63 6c 75 73 69 6f 6e 73 3c 2f  al conclusions</
1800: 68 34 3e 0d 0a 41 6e 79 20 74 6f 70 6f 6c 6f 67  h4>..Any topolog
1810: 69 63 61 6c 6c 79 20 76 61 6c 69 64 20 3c 62 3e  ically valid <b>
1820: 4e 65 74 77 6f 72 6b 3c 2f 62 3e 20 28 69 72 72  Network</b> (irr
1830: 65 73 70 65 63 74 69 76 65 20 6f 66 20 77 68 65  espective of whe
1840: 74 68 65 72 20 69 74 20 69 73 20 61 20 3c 62 3e  ther it is a <b>
1850: 53 70 61 74 69 61 6c 3c 2f 62 3e 20 6f 72 20 3c  Spatial</b> or <
1860: 62 3e 4c 6f 67 69 63 61 6c 3c 2f 62 3e 20 74 79  b>Logical</b> ty
1870: 70 65 29 20 69 73 20 61 20 76 61 6c 69 64 20 3c  pe) is a valid <
1880: 62 3e 47 72 61 70 68 3c 2f 62 3e 2e 3c 62 72 3e  b>Graph</b>.<br>
1890: 0d 0a 41 20 4e 65 74 77 6f 72 6b 20 61 6c 6c 6f  ..A Network allo
18a0: 77 69 6e 67 20 74 68 65 20 73 75 70 70 6f 72 74  wing the support
18b0: 20 28 64 69 72 65 63 74 20 6f 72 20 69 6e 64 69   (direct or indi
18c0: 72 65 63 74 29 20 6f 66 20 73 6f 6d 65 20 61 70  rect) of some ap
18d0: 70 72 6f 70 72 69 61 74 65 20 3c 62 3e 63 6f 73  propriate <b>cos
18e0: 74 20 76 61 6c 75 65 3c 2f 62 3e 20 69 73 20 61  t value</b> is a
18f0: 20 76 61 6c 69 64 20 3c 62 3e 57 65 69 67 68 74   valid <b>Weight
1900: 65 64 20 47 72 61 70 68 3c 2f 62 3e 2c 20 61 6e  ed Graph</b>, an
1910: 64 20 63 61 6e 20 63 6f 6e 73 65 71 75 65 6e 74  d can consequent
1920: 6c 79 20 73 75 70 70 6f 72 74 20 3c 62 3e 52 6f  ly support <b>Ro
1930: 75 74 69 6e 67 20 61 6c 67 6f 72 69 74 68 6d 73  uting algorithms
1940: 3c 2f 62 3e 2e 3c 62 72 3e 0d 0a 41 6c 6c 20 52  </b>.<br>..All R
1950: 6f 75 74 69 6e 67 20 61 6c 67 6f 72 69 74 68 6d  outing algorithm
1960: 73 20 61 72 65 20 69 6e 74 65 6e 64 65 64 20 74  s are intended t
1970: 6f 20 69 64 65 6e 74 69 66 79 20 74 68 65 20 3c  o identify the <
1980: 62 3e 53 68 6f 72 74 65 73 74 20 50 61 74 68 3c  b>Shortest Path<
1990: 2f 62 3e 20 73 6f 6c 75 74 69 6f 6e 20 63 6f 6e  /b> solution con
19a0: 6e 65 63 74 69 6e 67 20 74 77 6f 20 3c 62 3e 4e  necting two <b>N
19b0: 6f 64 65 73 3c 2f 62 3e 20 69 6e 20 61 20 3c 62  odes</b> in a <b
19c0: 3e 77 65 69 67 68 74 65 64 20 67 72 61 70 68 3c  >weighted graph<
19d0: 2f 62 3e 20 28 3c 69 3e 61 6b 61 3c 2f 69 3e 20  /b> (<i>aka</i> 
19e0: 3c 62 3e 4e 65 74 77 6f 72 6b 3c 2f 62 3e 29 2e  <b>Network</b>).
19f0: 3c 62 72 3e 3c 62 72 3e 0d 0a 3c 62 3e 3c 75 3e  <br><br>..<b><u>
1a00: 4e 6f 74 65 3c 2f 75 3e 3c 2f 62 3e 3a 20 74 68  Note</u></b>: th
1a10: 65 20 74 65 72 6d 20 3c 62 3e 3c 69 3e 53 68 6f  e term <b><i>Sho
1a20: 72 74 65 73 74 20 50 61 74 68 3c 2f 69 3e 3c 2f  rtest Path</i></
1a30: 62 3e 20 63 61 6e 20 62 65 20 65 61 73 69 6c 79  b> can be easily
1a40: 20 6d 69 73 75 6e 64 65 72 73 74 6f 6f 64 2e 3c   misunderstood.<
1a50: 62 72 3e 0d 0a 44 75 65 20 74 6f 20 68 69 73 74  br>..Due to hist
1a60: 6f 72 69 63 61 6c 20 72 65 61 73 6f 6e 73 20 74  orical reasons t
1a70: 68 65 20 6d 6f 73 74 20 63 6f 6d 6d 6f 6e 20 61  he most common a
1a80: 70 70 6c 69 63 61 74 69 6f 6e 20 66 69 65 6c 64  pplication field
1a90: 20 66 6f 72 20 52 6f 75 74 69 6e 67 20 61 6c 67   for Routing alg
1aa0: 6f 72 69 74 68 6d 73 20 69 73 20 72 65 6c 61 74  orithms is relat
1ab0: 65 64 20 74 6f 20 3c 62 3e 52 6f 61 64 20 4e 65  ed to <b>Road Ne
1ac0: 74 77 6f 72 6b 73 3c 2f 62 3e 2c 20 62 75 74 20  tworks</b>, but 
1ad0: 61 6c 73 6f 20 6d 61 6e 79 20 6f 74 68 65 72 20  also many other 
1ae0: 6b 69 6e 64 73 20 6f 66 20 4e 65 74 77 6f 72 6b  kinds of Network
1af0: 73 20 65 78 69 73 74 3a 0d 0a 3c 75 6c 3e 0d 0a  s exist:..<ul>..
1b00: 3c 6c 69 3e 48 79 64 72 6f 67 72 61 70 68 69 63  <li>Hydrographic
1b10: 20 4e 65 74 77 6f 72 6b 73 2e 3c 2f 6c 69 3e 0d   Networks.</li>.
1b20: 0a 3c 6c 69 3e 47 61 73 20 2f 20 57 61 74 65 72  .<li>Gas / Water
1b30: 20 2f 20 4f 69 6c 20 4e 65 74 77 6f 72 6b 73 2e   / Oil Networks.
1b40: 3c 2f 6c 69 3e 0d 0a 3c 6c 69 3e 45 6c 65 63 74  </li>..<li>Elect
1b50: 72 69 63 61 6c 20 4e 65 74 77 6f 72 6b 73 2e 3c  rical Networks.<
1b60: 2f 6c 69 3e 0d 0a 3c 6c 69 3e 54 65 6c 65 63 6f  /li>..<li>Teleco
1b70: 6d 75 6e 69 63 61 74 69 6f 6e 20 4e 65 74 77 6f  munication Netwo
1b80: 72 6b 73 2e 3c 2f 6c 69 3e 0d 0a 3c 6c 69 3e 53  rks.</li>..<li>S
1b90: 6f 63 69 61 6c 20 6f 72 20 45 63 6f 6e 6f 6d 69  ocial or Economi
1ba0: 63 61 6c 20 4e 65 74 77 6f 72 6b 73 20 72 65 70  cal Networks rep
1bb0: 72 65 73 65 6e 74 69 6e 67 20 72 65 6c 61 74 69  resenting relati
1bc0: 6f 6e 73 68 69 70 73 20 62 65 74 77 65 65 6e 20  onships between 
1bd0: 69 6e 64 69 76 69 64 75 61 6c 73 20 6f 72 20 63  individuals or c
1be0: 6f 6d 70 61 6e 69 65 73 2e 3c 2f 6c 69 3e 0d 0a  ompanies.</li>..
1bf0: 3c 6c 69 3e 45 70 69 64 65 6d 69 6f 6c 6f 67 69  <li>Epidemiologi
1c00: 63 61 6c 20 4e 65 74 77 6f 72 6b 73 20 72 65 70  cal Networks rep
1c10: 72 65 73 65 6e 74 69 6e 67 20 74 68 65 20 70 72  resenting the pr
1c20: 6f 70 61 67 61 74 69 6f 6e 20 6f 66 20 69 6e 66  opagation of inf
1c30: 65 63 74 69 76 65 20 64 69 73 65 61 73 65 73 20  ective diseases 
1c40: 62 65 74 77 65 65 6e 20 69 6e 64 69 76 69 64 75  between individu
1c50: 61 6c 73 20 6f 72 20 67 72 6f 75 70 73 2e 3c 2f  als or groups.</
1c60: 6c 69 3e 0d 0a 3c 2f 75 6c 3e 3c 2f 6c 69 3e 20  li>..</ul></li> 
1c70: 0d 0a 3c 62 72 3e 0d 0a 49 6e 20 61 6c 6c 20 74  ..<br>..In all t
1c80: 68 65 20 61 62 6f 76 65 20 63 61 73 65 73 20 77  he above cases w
1c90: 65 20 63 65 72 74 61 69 6e 6c 79 20 68 61 76 65  e certainly have
1ca0: 20 76 61 6c 69 64 20 4e 65 74 77 6f 72 6b 73 20   valid Networks 
1cb0: 73 75 70 70 6f 72 74 69 6e 67 20 52 6f 75 74 69  supporting Routi
1cc0: 6e 67 20 61 6c 67 6f 72 69 74 68 6e 73 2c 20 62  ng algorithns, b
1cd0: 75 74 20 6e 6f 74 20 61 6c 6c 20 6f 66 20 74 68  ut not all of th
1ce0: 65 6d 20 63 61 6e 20 69 6d 70 6c 79 20 73 6f 6d  em can imply som
1cf0: 65 74 68 69 6e 67 20 6c 69 6b 65 20 61 20 3c 69  ething like a <i
1d00: 3e 73 70 61 74 69 61 6c 20 64 69 73 74 61 6e 63  >spatial distanc
1d10: 65 3c 2f 69 3e 20 28 3c 69 3e 67 65 6f 6d 65 74  e</i> (<i>geomet
1d20: 72 69 63 20 6c 65 6e 67 74 68 3c 2f 69 3e 29 20  ric length</i>) 
1d30: 6f 72 20 61 20 3c 69 3e 74 72 61 76 65 6c 20 74  or a <i>travel t
1d40: 69 6d 65 3c 2f 69 3e 2e 3c 62 72 3e 0d 0a 49 6e  ime</i>.<br>..In
1d50: 20 74 68 65 20 6d 6f 73 74 20 67 65 6e 65 72 61   the most genera
1d60: 6c 20 61 63 63 65 70 74 69 6f 6e 20 3c 62 3e 63  l acception <b>c
1d70: 6f 73 74 73 3c 2f 62 3e 20 63 61 6e 20 62 65 20  osts</b> can be 
1d80: 72 65 70 72 65 73 65 6e 74 65 64 20 62 79 20 61  represented by a
1d90: 6e 79 20 72 65 61 73 6f 6e 61 62 6c 65 20 70 68  ny reasonable ph
1da0: 79 73 69 63 61 6c 20 71 75 61 6e 74 69 74 79 2e  ysical quantity.
1db0: 3c 62 72 3e 0d 0a 53 6f 20 61 20 6d 6f 72 65 20  <br>..So a more 
1dc0: 67 65 6e 65 72 61 6c 69 7a 65 64 20 64 65 66 69  generalized defi
1dd0: 6e 69 74 69 6f 6e 20 69 73 20 61 73 73 75 6d 69  nition is assumi
1de0: 6e 67 20 74 68 61 74 20 52 6f 75 74 69 6e 67 20  ng that Routing 
1df0: 61 6c 67 6f 72 69 74 68 6d 73 20 61 72 65 20 69  algorithms are i
1e00: 6e 74 65 6e 64 65 64 20 74 6f 20 69 64 65 6e 74  ntended to ident
1e10: 69 66 79 20 3c 62 3e 6c 65 73 73 65 72 20 63 6f  ify <b>lesser co
1e20: 73 74 3c 2f 62 3e 20 73 6f 6c 75 74 69 6f 6e 73  st</b> solutions
1e30: 20 6f 6e 20 61 20 3c 62 3e 77 65 69 67 68 74 65   on a <b>weighte
1e40: 64 20 67 72 61 70 68 3c 2f 62 3e 2e 3c 62 72 3e  d graph</b>.<br>
1e50: 0d 0a 54 68 65 20 65 78 61 63 74 20 69 6e 74 65  ..The exact inte
1e60: 72 70 72 65 74 61 74 69 6f 6e 20 6f 66 20 74 68  rpretation of th
1e70: 65 20 69 6e 76 6f 6c 76 65 64 20 3c 62 3e 63 6f  e involved <b>co
1e80: 73 74 73 3c 2f 62 3e 20 28 3c 69 3e 61 6b 61 3c  sts</b> (<i>aka<
1e90: 2f 69 3e 20 3c 62 3e 77 65 69 67 68 74 73 3c 2f  /i> <b>weights</
1ea0: 62 3e 29 20 73 74 72 69 63 74 6c 79 20 64 65 70  b>) strictly dep
1eb0: 65 6e 64 73 20 6f 6e 20 74 68 65 20 76 65 72 79  ends on the very
1ec0: 20 73 70 65 63 69 66 69 63 20 6e 61 74 75 72 65   specific nature
1ed0: 20 6f 66 20 65 61 63 68 20 4e 65 74 77 6f 72 6b   of each Network
1ee0: 2e 0d 0a 3c 68 33 3e 54 68 65 20 44 69 6a 6b 73  ...<h3>The Dijks
1ef0: 74 72 61 27 73 20 61 6c 67 6f 72 69 74 68 6d 3c  tra's algorithm<
1f00: 2f 68 33 3e 0d 0a 54 68 69 73 20 77 65 6c 6c 20  /h3>..This well 
1f10: 6b 6e 6f 77 6e 20 3c 61 20 68 72 65 66 3d 22 68  known <a href="h
1f20: 74 74 70 73 3a 2f 2f 65 6e 2e 77 69 6b 69 70 65  ttps://en.wikipe
1f30: 64 69 61 2e 6f 72 67 2f 77 69 6b 69 2f 44 69 6a  dia.org/wiki/Dij
1f40: 6b 73 74 72 61 25 32 37 73 5f 61 6c 67 6f 72 69  kstra%27s_algori
1f50: 74 68 6d 22 3e 61 6c 67 6f 72 69 74 68 6d 3c 2f  thm">algorithm</
1f60: 61 3e 20 69 73 6e 27 74 20 6e 65 63 65 73 73 61  a> isn't necessa
1f70: 72 69 6c 79 20 74 68 65 20 66 61 73 74 65 73 74  rily the fastest
1f80: 20 6f 6e 65 2c 20 62 75 74 20 69 74 20 61 6c 77   one, but it alw
1f90: 61 79 73 20 65 6e 73 75 72 65 73 20 3c 62 3e 66  ays ensures <b>f
1fa0: 75 6c 6c 20 63 6f 72 72 65 63 74 6e 65 73 73 3c  ull correctness<
1fb0: 2f 62 3e 3a 0d 0a 3c 75 6c 3e 0d 0a 3c 6c 69 3e  /b>:..<ul>..<li>
1fc0: 41 6e 79 20 4e 6f 64 65 2d 74 6f 2d 4e 6f 64 65  Any Node-to-Node
1fd0: 20 63 6f 6e 6e 65 63 74 69 6f 6e 20 69 64 65 6e   connection iden
1fe0: 74 69 66 69 65 64 20 62 79 20 44 69 6a 6b 73 74  tified by Dijkst
1ff0: 72 61 27 73 20 69 73 20 63 65 72 74 61 69 6e 6c  ra's is certainl
2000: 79 20 65 6e 73 75 72 65 64 20 74 6f 20 62 65 20  y ensured to be 
2010: 3c 62 3e 6f 70 74 69 6d 61 6c 3c 2f 62 3e 2e 3c  <b>optimal</b>.<
2020: 62 72 3e 0d 0a 49 6e 20 6f 74 68 65 72 20 77 6f  br>..In other wo
2030: 72 64 73 2c 20 6e 6f 20 63 6f 6e 6e 65 74 63 74  rds, no connetct
2040: 69 6f 6e 20 70 72 65 73 65 6e 74 69 6e 67 20 61  ion presenting a
2050: 20 6c 6f 77 65 72 20 63 6f 73 74 20 63 61 6e 20   lower cost can 
2060: 63 6f 6e 63 65 70 74 75 61 6c 6c 79 20 65 78 69  conceptually exi
2070: 73 74 2e 3c 2f 6c 69 3e 0d 0a 3c 6c 69 3e 57 68  st.</li>..<li>Wh
2080: 65 6e 20 44 69 6a 73 6a 74 72 61 27 73 20 66 61  en Dijsjtra's fa
2090: 69 6c 73 20 74 6f 20 69 64 65 6e 74 69 66 79 20  ils to identify 
20a0: 61 20 73 6f 6c 75 74 69 6f 6e 20 74 68 69 73 20  a solution this 
20b0: 73 75 72 65 6c 79 20 6d 65 61 6e 73 20 74 68 61  surely means tha
20c0: 74 20 6e 6f 20 73 6f 6c 75 74 69 6f 6e 20 69 73  t no solution is
20d0: 20 70 6f 73 73 69 62 6c 65 2e 3c 2f 6c 69 3e 0d   possible.</li>.
20e0: 0a 3c 2f 75 6c 3e 0d 0a 3c 68 33 3e 54 68 65 20  .</ul>..<h3>The 
20f0: 41 2a 20 61 6c 67 6f 72 69 74 68 6d 3c 2f 68 33  A* algorithm</h3
2100: 3e 0d 0a 4d 61 6e 79 20 61 6c 74 65 72 6e 61 74  >..Many alternat
2110: 69 76 65 20 52 6f 75 74 69 6e 67 20 61 6c 67 6f  ive Routing algo
2120: 72 69 74 68 6d 73 20 68 61 76 65 20 62 65 65 6e  rithms have been
2130: 20 69 6e 76 65 6e 74 65 64 20 64 75 72 69 6e 67   invented during
2140: 20 74 68 65 20 79 65 61 72 73 2e 3c 62 72 3e 0d   the years.<br>.
2150: 0a 41 6c 6c 20 74 68 65 6d 20 61 72 65 20 62 61  .All them are ba
2160: 73 65 64 20 6f 6e 20 68 65 75 72 69 73 74 69 63  sed on heuristic
2170: 20 61 73 73 75 6d 70 74 69 6f 6e 73 20 61 6e 64   assumptions and
2180: 20 61 72 65 20 69 6e 74 65 6e 64 65 64 20 74 6f   are intended to
2190: 20 62 65 20 66 61 73 74 65 72 20 74 68 61 6e 20   be faster than 
21a0: 44 69 6a 6b 73 74 72 61 27 73 2c 20 62 75 74 20  Dijkstra's, but 
21b0: 6e 6f 6e 65 20 6f 66 20 74 68 65 6d 20 63 61 6e  none of them can
21c0: 20 65 6e 73 75 72 65 20 3c 62 3e 66 75 6c 6c 20   ensure <b>full 
21d0: 63 6f 72 72 65 63 74 6e 65 73 73 3c 2f 62 3e 20  correctness</b> 
21e0: 61 73 20 44 69 6a 6b 73 74 72 61 27 73 20 64 6f  as Dijkstra's do
21f0: 65 73 2e 3c 62 72 3e 0d 0a 54 68 65 20 3c 61 20  es.<br>..The <a 
2200: 68 72 65 66 3d 22 68 74 74 70 73 3a 2f 2f 65 6e  href="https://en
2210: 2e 77 69 6b 69 70 65 64 69 61 2e 6f 72 67 2f 77  .wikipedia.org/w
2220: 69 6b 69 2f 41 2a 5f 73 65 61 72 63 68 5f 61 6c  iki/A*_search_al
2230: 67 6f 72 69 74 68 6d 22 3e 41 2a 20 61 6c 67 6f  gorithm">A* algo
2240: 72 69 74 68 6d 3c 2f 61 3e 20 61 70 70 6c 69 65  rithm</a> applie
2250: 73 20 61 20 6d 69 6c 64 20 68 65 75 72 69 73 74  s a mild heurist
2260: 69 63 20 6f 70 74 69 6d 69 7a 61 74 69 6f 6e 2c  ic optimization,
2270: 20 61 6e 64 20 63 61 6e 20 62 65 20 61 20 72 65   and can be a re
2280: 61 6c 69 73 74 69 63 20 61 6c 74 65 72 6e 61 74  alistic alternat
2290: 69 76 65 20 74 6f 20 44 69 6a 6b 73 74 72 61 27  ive to Dijkstra'
22a0: 73 20 69 6e 20 6d 61 6e 79 20 63 61 73 65 73 2e  s in many cases.
22b0: 3c 62 72 3e 3c 62 72 3e 0d 0a 3c 68 72 3e 0d 0a  <br><br>..<hr>..
22c0: 3c 68 31 3e 32 20 2d 20 54 68 65 20 73 61 6d 70  <h1>2 - The samp
22d0: 6c 65 2f 74 65 73 74 20 44 42 3c 2f 68 31 3e 0d  le/test DB</h1>.
22e0: 0a 59 6f 75 20 61 72 65 20 65 78 70 65 63 74 65  .You are expecte
22f0: 64 20 74 6f 20 66 6f 6c 6c 6f 77 20 74 68 65 20  d to follow the 
2300: 63 75 72 72 65 6e 74 20 74 75 74 6f 72 69 61 6c  current tutorial
2310: 20 61 62 6f 75 74 20 3c 62 3e 56 69 72 74 75 61   about <b>Virtua
2320: 6c 52 6f 75 74 69 6e 67 3c 2f 62 3e 20 62 79 20  lRouting</b> by 
2330: 64 69 72 65 63 74 6c 79 20 74 65 73 74 69 6e 67  directly testing
2340: 20 61 6c 6c 20 53 51 4c 20 71 75 65 72 69 65 73   all SQL queries
2350: 20 64 69 73 63 75 73 73 65 64 20 62 65 6c 6f 77   discussed below
2360: 20 6f 6e 20 62 65 68 61 6c 66 20 6f 66 20 74 68   on behalf of th
2370: 65 20 3c 61 20 68 72 65 66 3d 22 68 74 74 70 73  e <a href="https
2380: 3a 2f 2f 77 77 77 2e 67 61 69 61 2d 67 69 73 2e  ://www.gaia-gis.
2390: 69 74 2f 67 61 69 61 2d 73 69 6e 73 2f 72 6f 75  it/gaia-sins/rou
23a0: 74 69 6e 67 2d 73 61 6d 70 6c 65 2d 35 2e 30 2e  ting-sample-5.0.
23b0: 30 2e 37 7a 22 3e 73 61 6d 70 6c 65 2f 74 65 73  0.7z">sample/tes
23c0: 74 20 44 42 20 74 68 61 74 20 79 6f 75 20 63 61  t DB that you ca
23d0: 6e 20 64 6f 77 6e 6c 6f 61 64 20 66 72 6f 6d 20  n download from 
23e0: 68 65 72 65 3c 2f 61 3e 3c 62 72 3e 3c 62 72 3e  here</a><br><br>
23f0: 0d 0a 54 68 65 20 73 61 6d 70 6c 65 20 44 42 20  ..The sample DB 
2400: 63 6f 6e 74 61 69 6e 73 20 74 68 65 20 66 75 6c  contains the ful
2410: 6c 20 3c 62 3e 72 6f 61 64 20 6e 65 74 77 6f 72  l <b>road networ
2420: 6b 3c 2f 62 3e 20 6f 66 20 3c 62 3e 54 75 73 63  k</b> of <b>Tusc
2430: 61 6e 79 20 52 65 67 69 6f 6e 20 28 49 74 61 6c  any Region (Ital
2440: 79 29 3c 2f 62 3e 20 28 3c 61 20 68 72 65 66 3d  y)</b> (<a href=
2450: 22 68 74 74 70 3a 2f 2f 77 77 77 35 30 32 2e 72  "http://www502.r
2460: 65 67 69 6f 6e 65 2e 74 6f 73 63 61 6e 61 2e 69  egione.toscana.i
2470: 74 2f 67 65 6f 73 63 6f 70 69 6f 2f 64 6f 77 6e  t/geoscopio/down
2480: 6c 6f 61 64 2f 67 72 61 66 6f 5f 73 74 72 61 64  load/grafo_strad
2490: 61 6c 65 2f 69 74 65 72 6e 65 74 2e 7a 69 70 22  ale/iternet.zip"
24a0: 3e 49 74 65 72 2e 4e 65 74 20 64 61 74 61 73 65  >Iter.Net datase
24b0: 74 3c 2f 61 3e 29 20 6b 69 6e 64 6c 79 20 72 65  t</a>) kindly re
24c0: 6c 65 61 73 65 64 20 75 6e 64 65 72 20 74 68 65  leased under the
24d0: 20 3c 62 3e 43 43 2d 42 59 2d 53 41 20 34 2e 30   <b>CC-BY-SA 4.0
24e0: 3c 2f 62 3e 20 6c 69 63 65 6e 63 65 20 74 65 72  </b> licence ter
24f0: 6d 73 2e 3c 62 72 3e 0d 0a 54 68 65 20 63 6f 6e  ms.<br>..The con
2500: 74 65 6e 74 73 20 73 74 6f 72 65 64 20 69 6e 74  tents stored int
2510: 6f 20 74 68 65 20 73 61 6d 70 6c 65 20 64 61 74  o the sample dat
2520: 61 62 61 73 65 20 77 65 72 65 20 6f 70 70 6f 72  abase were oppor
2530: 74 75 6e 65 6c 79 20 72 65 61 72 72 61 6e 67 65  tunely rearrange
2540: 64 2c 20 61 6e 64 20 61 72 65 20 73 74 69 6c 6c  d, and are still
2550: 20 73 75 62 6a 65 63 74 20 74 6f 20 74 68 65 20   subject to the 
2560: 69 6e 69 74 69 61 6c 20 3c 62 3e 43 43 2d 42 59  initial <b>CC-BY
2570: 2d 53 41 20 34 2e 30 3c 2f 62 3e 20 63 6c 61 75  -SA 4.0</b> clau
2580: 73 65 73 20 28 3c 69 3e 64 65 72 69 76 65 64 20  ses (<i>derived 
2590: 77 6f 72 6b 3c 2f 69 3e 29 2e 0d 0a 3c 62 72 3e  work</i>)...<br>
25a0: 3c 62 72 3e 0d 0a 3c 75 6c 3e 0d 0a 3c 6c 69 3e  <br>..<ul>..<li>
25b0: 61 6c 6c 20 72 6f 61 64 20 6e 61 6d 65 73 20 61  all road names a
25c0: 72 65 20 73 74 6f 72 65 64 20 77 69 74 68 69 6e  re stored within
25d0: 20 74 68 65 20 3c 62 3e 74 6f 70 6f 6e 79 6d 73   the <b>toponyms
25e0: 3c 2f 62 3e 20 54 61 62 6c 65 2e 3c 62 72 3e 0d  </b> Table.<br>.
25f0: 0a 74 68 65 20 73 61 6d 65 20 72 6f 61 64 20 6e  .the same road n
2600: 61 6d 65 20 63 6f 75 6c 64 20 62 65 20 75 73 65  ame could be use
2610: 64 20 69 6e 20 64 69 66 66 65 72 65 6e 74 20 4d  d in different M
2620: 75 6e 69 63 69 70 61 6c 69 74 69 65 73 2c 20 73  unicipalities, s
2630: 6f 20 74 68 65 20 3c 62 3e 74 6f 70 6f 6e 79 6d  o the <b>toponym
2640: 73 3c 2f 62 3e 20 54 61 62 6c 65 20 72 65 6c 61  s</b> Table rela
2650: 74 69 6f 6e 61 6c 6c 79 20 72 65 66 65 72 65 6e  tionally referen
2660: 63 65 73 20 74 68 65 20 3c 62 3e 6d 75 6e 69 63  ces the <b>munic
2670: 69 70 61 6c 69 74 69 65 73 3c 2f 62 3e 20 54 61  ipalities</b> Ta
2680: 62 6c 65 20 28 76 69 61 20 3c 62 3e 50 52 49 4d  ble (via <b>PRIM
2690: 41 52 59 3c 2f 62 3e 20 2f 20 3c 62 3e 46 4f 52  ARY</b> / <b>FOR
26a0: 45 49 47 4e 20 4b 45 59 3c 2f 62 3e 20 72 65 6c  EIGN KEY</b> rel
26b0: 61 74 69 6f 6e 73 68 69 70 73 29 2e 3c 2f 6c 69  ationships).</li
26c0: 3e 0d 0a 3c 6c 69 3e 74 68 65 20 3c 62 3e 72 6f  >..<li>the <b>ro
26d0: 61 64 73 3c 2f 62 3e 20 53 70 61 74 69 61 6c 20  ads</b> Spatial 
26e0: 54 61 62 6c 65 20 63 6f 6e 74 61 69 6e 73 20 61  Table contains a
26f0: 62 6f 75 74 20 3c 62 3e 33 38 30 2c 30 30 30 3c  bout <b>380,000<
2700: 2f 62 3e 20 4c 69 6e 6b 73 2c 20 61 6e 64 20 68  /b> Links, and h
2710: 61 73 20 74 68 65 20 66 6f 6c 6c 6f 77 69 6e 67  as the following
2720: 20 63 6f 6c 75 6d 6e 73 3a 0d 0a 3c 75 6c 3e 0d   columns:..<ul>.
2730: 0a 3c 6c 69 3e 3c 62 3e 69 64 3c 2f 62 3e 3a 20  .<li><b>id</b>: 
2740: 75 6e 69 71 75 65 20 69 64 65 6e 74 69 66 69 65  unique identifie
2750: 72 20 6f 66 20 65 61 63 68 20 4c 69 6e 6b 20 28  r of each Link (
2760: 3c 62 3e 50 52 49 4d 41 52 59 20 4b 45 59 3c 2f  <b>PRIMARY KEY</
2770: 62 3e 29 2e 3c 2f 6c 69 3e 0d 0a 3c 6c 69 3e 3c  b>).</li>..<li><
2780: 62 3e 6e 6f 64 65 5f 66 72 6f 6d 3c 2f 62 3e 20  b>node_from</b> 
2790: 61 6e 64 20 3c 62 3e 6e 6f 64 65 5f 74 6f 3c 2f  and <b>node_to</
27a0: 62 3e 3a 20 4e 6f 64 65 20 69 64 65 6e 74 69 66  b>: Node identif
27b0: 69 65 72 73 2e 0d 0a 54 68 65 20 6f 72 69 67 69  iers...The origi
27c0: 6e 61 6c 20 49 74 65 72 2e 4e 65 74 20 64 61 74  nal Iter.Net dat
27d0: 61 73 65 74 20 61 64 6f 70 74 73 20 76 65 72 79  aset adopts very
27e0: 20 6c 6f 6e 67 20 61 6e 20 63 6f 6d 70 6c 65 78   long an complex
27f0: 20 61 6c 70 68 61 6e 75 6d 65 72 69 63 20 4e 6f   alphanumeric No
2800: 64 65 20 63 6f 64 65 73 3b 20 74 68 65 20 69 6e  de codes; the in
2810: 74 65 67 65 72 20 4e 6f 64 65 20 49 44 73 20 77  teger Node IDs w
2820: 65 72 65 20 6f 62 74 61 69 6e 65 64 20 62 79 20  ere obtained by 
2830: 63 61 6c 6c 69 6e 67 20 74 68 65 20 3c 62 3e 43  calling the <b>C
2840: 72 65 61 74 65 52 6f 75 74 69 6e 67 4e 6f 64 65  reateRoutingNode
2850: 73 28 29 3c 2f 62 3e 20 53 51 4c 20 66 75 6e 63  s()</b> SQL func
2860: 74 69 6f 6e 20 64 69 73 63 75 73 73 65 64 20 69  tion discussed i
2870: 6e 20 61 20 66 6f 6c 6c 6f 77 69 6e 67 20 73 65  n a following se
2880: 63 74 69 6f 6e 2e 3c 2f 6c 69 3e 0d 0a 3c 6c 69  ction.</li>..<li
2890: 3e 3c 62 3e 69 64 5f 74 6f 70 6f 6e 79 6d 3c 2f  ><b>id_toponym</
28a0: 62 3e 3a 20 72 65 6c 61 74 69 6f 6e 61 6c 20 72  b>: relational r
28b0: 65 66 65 72 65 6e 63 65 20 74 6f 20 74 68 65 20  eference to the 
28c0: 63 6f 72 72 65 73 70 6f 6e 64 69 6e 67 20 72 6f  corresponding ro
28d0: 61 64 20 6e 61 6d 65 20 63 6f 6e 74 61 69 6e 65  ad name containe
28e0: 64 20 69 6e 74 6f 20 74 68 65 20 3c 62 3e 74 6f  d into the <b>to
28f0: 70 6f 6e 79 6d 73 3c 2f 62 3e 20 54 61 62 6c 65  ponyms</b> Table
2900: 20 28 3c 62 3e 46 4f 52 45 49 47 4e 20 4b 45 59   (<b>FOREIGN KEY
2910: 3c 2f 62 3e 29 2e 3c 2f 6c 69 3e 0d 0a 3c 6c 69  </b>).</li>..<li
2920: 3e 3c 62 3e 73 70 65 65 64 5f 6b 6d 68 3c 2f 62  ><b>speed_kmh</b
2930: 3e 3a 20 74 68 65 20 65 73 74 69 6d 61 74 65 64  >: the estimated
2940: 20 61 76 65 72 61 67 65 20 73 70 65 65 64 20 73   average speed s
2950: 75 70 70 6f 72 74 65 64 20 62 79 20 74 68 65 20  upported by the 
2960: 4c 69 6e 6b 2c 20 65 78 70 72 65 73 73 65 64 20  Link, expressed 
2970: 69 6e 20 3c 62 3e 6b 6d 2f 68 3c 2f 62 3e 2e 3c  in <b>km/h</b>.<
2980: 62 72 3e 0d 0a 3c 75 3e 4e 6f 74 65 3c 2f 75 3e  br>..<u>Note</u>
2990: 3a 20 3c 62 3e 6e 65 67 61 74 69 76 65 3c 2f 62  : <b>negative</b
29a0: 3e 20 73 70 65 65 64 73 20 69 6e 74 65 6e 64 20  > speeds intend 
29b0: 61 20 66 6f 72 62 69 64 64 65 6e 20 4c 69 6e 6b  a forbidden Link
29c0: 2e 3c 2f 6c 69 3e 0d 0a 3c 6c 69 3e 3c 62 3e 6f  .</li>..<li><b>o
29d0: 6e 65 77 61 79 5f 66 72 6f 6d 74 6f 3c 2f 62 3e  neway_fromto</b>
29e0: 20 61 6e 64 20 3c 62 3e 6f 6e 65 77 61 79 5f 74   and <b>oneway_t
29f0: 6f 66 72 6f 6d 3c 2f 62 3e 3a 20 62 6f 6f 6c 65  ofrom</b>: boole
2a00: 61 6e 20 66 6c 61 67 73 20 69 6e 74 65 6e 64 65  an flags intende
2a10: 64 20 74 6f 20 73 74 61 74 65 20 69 66 20 61 20  d to state if a 
2a20: 4c 69 6e 6b 20 63 61 6e 20 62 65 20 74 72 61 76  Link can be trav
2a30: 65 72 73 65 64 20 69 6e 20 62 6f 74 68 20 64 69  ersed in both di
2a40: 72 65 63 74 69 6f 6e 73 20 6f 72 20 6a 75 73 74  rections or just
2a50: 20 69 6e 20 61 20 73 69 6e 67 6c 65 20 64 69 72   in a single dir
2a60: 65 63 74 69 6f 6e 20 28 3c 62 3e 6f 6e 65 2d 77  ection (<b>one-w
2a70: 61 79 3c 2f 62 3e 29 2e 3c 62 72 3e 0d 0a 3c 75  ay</b>).<br>..<u
2a80: 3e 4e 6f 74 65 3c 2f 75 3e 3a 20 61 6c 6c 20 4c  >Note</u>: all L
2a90: 69 6e 6b 73 20 64 65 63 6c 61 72 69 6e 67 20 3c  inks declaring <
2aa0: 62 3e 6f 6e 65 77 61 79 5f 66 72 6f 6d 74 6f 3d  b>oneway_fromto=
2ab0: 30 3c 2f 62 3e 20 61 6e 64 20 3c 62 3e 6f 6e 65  0</b> and <b>one
2ac0: 77 61 79 5f 74 6f 66 72 6f 6d 3d 30 3c 2f 62 3e  way_tofrom=0</b>
2ad0: 20 61 72 65 20 69 6e 74 65 6e 64 65 64 20 74 6f   are intended to
2ae0: 20 62 65 20 61 6c 77 61 79 73 20 66 6f 72 62 69   be always forbi
2af0: 64 64 65 6e 2e 3c 2f 6c 69 3e 0d 0a 3c 6c 69 3e  dden.</li>..<li>
2b00: 3c 62 3e 63 6f 73 74 3c 2f 62 3e 3a 20 74 68 65  <b>cost</b>: the
2b10: 20 3c 62 3e 74 69 6d 65 3c 2f 62 3e 20 65 78 70   <b>time</b> exp
2b20: 72 65 73 73 65 64 20 69 6e 20 3c 62 3e 73 65 63  ressed in <b>sec
2b30: 6f 6e 64 73 3c 2f 62 3e 20 72 65 71 75 69 72 65  onds</b> require
2b40: 64 20 74 6f 20 74 72 61 76 65 72 73 65 20 65 61  d to traverse ea
2b50: 63 68 20 4c 69 6e 6b 2e 3c 62 72 3e 0d 0a 3c 75  ch Link.<br>..<u
2b60: 3e 4e 6f 74 65 20 23 31 3c 2f 75 3e 20 61 6c 6c  >Note #1</u> all
2b70: 20 63 6f 73 74 73 20 77 65 72 65 20 63 61 6c 63   costs were calc
2b80: 75 6c 61 74 65 64 20 61 63 63 6f 72 64 69 6e 67  ulated according
2b90: 6c 79 20 74 6f 20 74 68 65 20 66 6f 6c 6c 6f 77  ly to the follow
2ba0: 69 6e 67 20 66 6f 72 6d 75 6c 61 3a 20 3c 62 3e  ing formula: <b>
2bb0: 63 6f 73 74 20 3d 20 28 28 53 54 5f 4c 65 6e 67  cost = ((ST_Leng
2bc0: 74 68 28 67 65 6f 6d 29 20 2f 20 31 30 30 30 2e  th(geom) / 1000.
2bd0: 30 29 20 2f 20 73 70 65 65 64 5f 6b 6d 68 29 20  0) / speed_kmh) 
2be0: 2a 20 33 36 30 30 2e 30 3c 2f 62 3e 3c 62 72 3e  * 3600.0</b><br>
2bf0: 0d 0a 3c 75 3e 4e 6f 74 65 20 23 32 3c 2f 75 3e  ..<u>Note #2</u>
2c00: 20 61 6c 6c 20 3c 62 3e 38 36 2c 34 30 30 2e 30   all <b>86,400.0
2c10: 3c 2f 62 3e 20 63 6f 73 74 20 76 61 6c 75 65 73  </b> cost values
2c20: 20 28 65 71 75 69 76 61 6c 65 6e 74 20 74 6f 20   (equivalent to 
2c30: 31 20 64 61 79 29 20 61 70 70 72 6f 78 69 6d 61  1 day) approxima
2c40: 74 65 20 61 6e 20 3c 62 3e 69 6e 66 69 6e 69 74  te an <b>infinit
2c50: 69 76 65 20 63 6f 73 74 3c 2f 62 3e 20 74 68 75  ive cost</b> thu
2c60: 73 20 69 6e 74 65 6e 64 69 6e 67 20 61 20 3c 62  s intending a <b
2c70: 3e 66 6f 72 62 69 64 64 65 6e 3c 2f 62 3e 20 4c  >forbidden</b> L
2c80: 69 6e 6b 2e 3c 2f 6c 69 3e 0d 0a 3c 6c 69 3e 3c  ink.</li>..<li><
2c90: 62 3e 67 65 6f 6d 3c 2f 62 3e 3a 20 61 20 3c 62  b>geom</b>: a <b
2ca0: 3e 33 44 20 4c 69 6e 65 73 74 72 69 6e 67 3c 2f  >3D Linestring</
2cb0: 62 3e 20 72 65 70 72 65 73 65 6e 74 69 6e 67 20  b> representing 
2cc0: 74 68 65 20 47 65 6f 6d 65 74 72 79 20 6f 66 20  the Geometry of 
2cd0: 65 61 63 68 20 4c 69 6e 6b 2e 3c 62 72 3e 0d 0a  each Link.<br>..
2ce0: 3c 75 3e 4e 6f 74 65 3c 2f 75 3e 3a 20 74 68 65  <u>Note</u>: the
2cf0: 20 6f 72 69 67 69 6e 61 6c 20 3c 62 3e 49 74 65   original <b>Ite
2d00: 72 2e 4e 65 74 3c 2f 62 3e 20 64 61 74 61 73 65  r.Net</b> datase
2d10: 74 20 69 73 20 6a 75 73 74 20 3c 62 3e 32 44 3c  t is just <b>2D<
2d20: 2f 62 3e 3b 20 65 6c 65 76 61 74 69 6f 6e 73 20  /b>; elevations 
2d30: 28 3c 62 3e 5a 3c 2f 62 3e 20 63 6f 6f 72 64 69  (<b>Z</b> coordi
2d40: 6e 61 74 65 73 29 20 77 65 72 65 20 69 6e 74 65  nates) were inte
2d50: 72 70 6f 6c 61 74 65 64 20 62 79 20 64 72 61 70  rpolated by drap
2d60: 69 6e 67 20 74 68 65 20 64 61 74 61 73 65 74 20  ing the dataset 
2d70: 6f 76 65 72 20 61 6e 20 3c 61 20 68 72 65 66 3d  over an <a href=
2d80: 22 68 74 74 70 3a 2f 2f 77 77 77 35 30 32 2e 72  "http://www502.r
2d90: 65 67 69 6f 6e 65 2e 74 6f 73 63 61 6e 61 2e 69  egione.toscana.i
2da0: 74 2f 67 65 6f 73 63 6f 70 69 6f 2f 64 6f 77 6e  t/geoscopio/down
2db0: 6c 6f 61 64 2f 61 6c 74 69 6d 65 74 72 69 61 2f  load/altimetria/
2dc0: 64 61 5f 63 74 72 31 30 6b 2f 67 62 2f 44 54 4d  da_ctr10k/gb/DTM
2dd0: 5f 4f 72 6f 67 72 61 66 69 63 6f 2e 37 7a 22 3e  _Orografico.7z">
2de0: 6f 72 6f 67 72 61 70 68 69 63 20 44 45 4d 20 28  orographic DEM (
2df0: 31 30 6d 20 58 20 31 30 6d 20 63 65 6c 6c 73 29  10m X 10m cells)
2e00: 3c 2f 61 3e 3c 2f 6c 69 3e 0d 0a 3c 2f 75 6c 3e  </a></li>..</ul>
2e10: 3c 2f 6c 69 3e 0d 0a 3c 6c 69 3e 74 68 65 20 3c  </li>..<li>the <
2e20: 62 3e 72 6f 61 64 73 5f 76 77 3c 2f 62 3e 20 53  b>roads_vw</b> S
2e30: 70 61 74 69 61 6c 20 56 69 65 77 20 69 73 20 6a  patial View is j
2e40: 75 73 74 20 69 6e 74 65 6e 64 65 64 20 74 6f 20  ust intended to 
2e50: 66 75 6c 6c 79 20 72 65 73 6f 6c 76 65 20 61 6c  fully resolve al
2e60: 6c 20 72 65 6c 61 74 69 6f 6e 61 6c 20 72 65 66  l relational ref
2e70: 65 72 65 6e 63 65 73 20 62 65 74 77 65 65 6e 20  erences between 
2e80: 3c 62 3e 72 6f 61 64 73 3c 2f 62 3e 2c 20 3c 62  <b>roads</b>, <b
2e90: 3e 74 6f 70 6f 6e 79 6d 73 3c 2f 62 3e 20 61 6e  >toponyms</b> an
2ea0: 64 20 3c 62 3e 6d 75 6e 69 63 69 70 61 6c 69 74  d <b>municipalit
2eb0: 69 65 73 3c 2f 62 3e 2c 20 74 68 75 73 20 61 6c  ies</b>, thus al
2ec0: 6c 6f 77 69 6e 67 20 66 6f 72 20 65 61 73 69 65  lowing for easie
2ed0: 72 20 53 51 4c 20 71 75 65 72 69 65 73 2e 3c 2f  r SQL queries.</
2ee0: 6c 69 3e 0d 0a 3c 6c 69 3e 74 68 65 20 3c 62 3e  li>..<li>the <b>
2ef0: 68 6f 75 73 65 5f 6e 72 3c 2f 62 3e 20 53 70 61  house_nr</b> Spa
2f00: 74 69 61 6c 20 54 61 62 6c 65 20 63 6f 6e 74 61  tial Table conta
2f10: 69 6e 73 20 61 62 6f 75 74 20 3c 62 3e 31 2c 34  ins about <b>1,4
2f20: 38 30 2c 30 30 30 3c 2f 62 3e 20 48 6f 75 73 65  80,000</b> House
2f30: 20 4e 75 6d 62 65 72 73 2c 20 61 6e 64 20 68 61   Numbers, and ha
2f40: 73 20 74 68 65 20 66 6f 6c 6c 6f 77 69 6e 67 20  s the following 
2f50: 63 6f 6c 75 6d 6e 73 3a 0d 0a 3c 75 6c 3e 0d 0a  columns:..<ul>..
2f60: 3c 6c 69 3e 3c 62 3e 69 64 3c 2f 62 3e 3a 20 75  <li><b>id</b>: u
2f70: 6e 69 71 75 65 20 69 64 65 6e 74 69 66 69 65 72  nique identifier
2f80: 20 6f 66 20 65 61 63 68 20 48 6f 75 73 65 20 4e   of each House N
2f90: 75 6d 62 65 72 20 28 3c 62 3e 50 52 49 4d 41 52  umber (<b>PRIMAR
2fa0: 59 20 4b 45 59 3c 2f 62 3e 29 2e 3c 2f 6c 69 3e  Y KEY</b>).</li>
2fb0: 0d 0a 3c 6c 69 3e 3c 62 3e 69 64 5f 72 6f 61 64  ..<li><b>id_road
2fc0: 3c 2f 62 3e 3a 20 72 65 6c 61 74 69 6f 6e 61 6c  </b>: relational
2fd0: 20 72 65 66 65 72 65 6e 63 65 20 74 6f 20 74 68   reference to th
2fe0: 65 20 63 6f 72 72 65 73 70 6f 6e 64 69 6e 67 20  e corresponding 
2ff0: 4c 69 6e 6b 20 63 6f 6e 74 61 69 6e 65 64 20 69  Link contained i
3000: 6e 74 6f 20 74 68 65 20 3c 62 3e 72 6f 61 64 73  nto the <b>roads
3010: 3c 2f 62 3e 20 54 61 62 6c 65 20 28 3c 62 3e 46  </b> Table (<b>F
3020: 4f 52 45 49 47 4e 20 4b 45 59 3c 2f 62 3e 29 2e  OREIGN KEY</b>).
3030: 3c 2f 6c 69 3e 0d 0a 3c 6c 69 3e 3c 62 3e 6c 61  </li>..<li><b>la
3040: 62 65 6c 3c 2f 62 3e 3a 20 74 68 65 20 74 65 78  bel</b>: the tex
3050: 74 75 61 6c 20 6c 61 62 65 6c 20 66 75 6c 6c 79  tual label fully
3060: 20 71 75 61 6c 69 66 79 69 6e 67 20 65 61 63 68   qualifying each
3070: 20 48 6f 75 73 65 20 4e 75 6d 62 65 72 2e 3c 2f   House Number.</
3080: 6c 69 3e 0d 0a 3c 6c 69 3e 3c 62 3e 67 65 6f 6d  li>..<li><b>geom
3090: 3c 2f 62 3e 3a 20 61 20 3c 62 3e 33 44 20 50 6f  </b>: a <b>3D Po
30a0: 69 6e 74 3c 2f 62 3e 20 72 65 70 72 65 73 65 6e  int</b> represen
30b0: 74 69 6e 67 20 74 68 65 20 47 65 6f 6d 65 74 72  ting the Geometr
30c0: 79 20 6f 66 20 65 61 63 68 20 48 6f 75 73 65 20  y of each House 
30d0: 4e 75 6d 62 65 72 2e 3c 62 72 3e 0d 0a 3c 75 3e  Number.<br>..<u>
30e0: 4e 6f 74 65 20 23 31 3c 2f 75 3e 3a 20 61 6c 73  Note #1</u>: als
30f0: 6f 20 69 6e 20 74 68 69 73 20 63 61 73 65 20 61  o in this case a
3100: 6c 6c 20 65 6c 65 76 61 74 69 6f 6e 73 20 28 3c  ll elevations (<
3110: 62 3e 5a 3c 2f 62 3e 20 63 6f 6f 72 64 69 6e 61  b>Z</b> coordina
3120: 74 65 73 29 20 77 65 72 65 20 69 6e 74 65 72 70  tes) were interp
3130: 6f 6c 61 74 65 64 20 62 79 20 64 72 61 70 69 6e  olated by drapin
3140: 67 20 74 68 65 20 64 61 74 61 73 65 74 20 6f 76  g the dataset ov
3150: 65 72 20 74 68 65 20 73 61 6d 65 20 44 45 4d 20  er the same DEM 
3160: 61 73 20 61 62 6f 76 65 2e 3c 62 72 3e 0d 0a 3c  as above.<br>..<
3170: 75 3e 4e 6f 74 65 20 23 32 3c 2f 75 3e 3a 20 73  u>Note #2</u>: s
3180: 74 72 69 63 74 6c 79 20 73 70 65 63 6b 69 6e 67  trictly specking
3190: 20 74 68 65 20 48 6f 75 73 65 20 4e 75 6d 62 65   the House Numbe
31a0: 72 73 20 61 72 65 20 6e 6f 74 20 70 61 72 74 20  rs are not part 
31b0: 6f 66 20 74 68 65 20 52 6f 61 64 20 4e 65 74 77  of the Road Netw
31c0: 6f 72 6b 3b 20 74 68 65 79 20 61 72 65 20 69 6e  ork; they are in
31d0: 63 6c 75 64 65 20 69 6e 74 6f 20 74 68 65 20 73  clude into the s
31e0: 61 6d 70 6c 65 2f 74 65 73 74 20 64 61 74 61 62  ample/test datab
31f0: 61 73 65 20 6a 75 73 74 20 62 65 63 61 75 73 65  ase just because
3200: 20 74 68 65 79 27 6c 6c 20 62 65 20 75 73 65 66   they'll be usef
3210: 75 6c 20 69 6e 20 73 6f 6d 65 20 6f 66 20 74 68  ul in some of th
3220: 65 20 65 78 61 6d 70 6c 65 73 20 65 78 70 6c 61  e examples expla
3230: 69 6e 65 64 20 69 6e 20 62 65 6c 6f 77 20 70 61  ined in below pa
3240: 72 61 67 72 61 70 68 73 2e 3c 2f 6c 69 3e 0d 0a  ragraphs.</li>..
3250: 3c 2f 75 6c 3e 3c 2f 6c 69 3e 0d 0a 3c 6c 69 3e  </ul></li>..<li>
3260: 74 68 65 20 3c 62 3e 68 6f 75 73 65 5f 6e 72 5f  the <b>house_nr_
3270: 76 77 3c 2f 62 3e 20 53 70 61 74 69 61 6c 20 56  vw</b> Spatial V
3280: 69 65 77 20 69 73 20 6a 75 73 74 20 69 6e 74 65  iew is just inte
3290: 6e 64 65 64 20 74 6f 20 66 75 6c 6c 79 20 72 65  nded to fully re
32a0: 73 6f 6c 76 65 20 61 6c 6c 20 72 65 6c 61 74 69  solve all relati
32b0: 6f 6e 61 6c 20 72 65 66 65 72 65 6e 63 65 73 20  onal references 
32c0: 62 65 74 77 65 65 6e 20 3c 62 3e 68 6f 75 73 65  between <b>house
32d0: 5f 6e 72 3c 2f 62 3e 2c 20 3c 62 3e 72 6f 61 64  _nr</b>, <b>road
32e0: 73 3c 2f 62 3e 2c 20 3c 62 3e 74 6f 70 6f 6e 79  s</b>, <b>topony
32f0: 6d 73 3c 2f 62 3e 20 61 6e 64 20 3c 62 3e 6d 75  ms</b> and <b>mu
3300: 6e 69 63 69 70 61 6c 69 74 69 65 73 3c 2f 62 3e  nicipalities</b>
3310: 2c 20 74 68 75 73 20 61 6c 6c 6f 77 69 6e 67 20  , thus allowing 
3320: 66 6f 72 20 65 61 73 69 65 72 20 53 51 4c 20 71  for easier SQL q
3330: 75 65 72 69 65 73 2e 3c 2f 6c 69 3e 0d 0a 3c 2f  ueries.</li>..</
3340: 75 6c 3e 0d 0a 3c 62 72 3e 0d 0a 20 3c 68 72 3e  ul>..<br>.. <hr>
3350: 0d 0a 3c 68 31 3e 3c 61 20 6e 61 6d 65 3d 22 63  ..<h1><a name="c
3360: 72 65 61 74 65 22 3e 33 20 2d 20 43 72 65 61 74  reate">3 - Creat
3370: 69 6e 67 20 56 69 72 74 75 61 6c 52 6f 75 74 69  ing VirtualRouti
3380: 6e 67 20 54 61 62 6c 65 73 3c 2f 61 3e 3c 2f 68  ng Tables</a></h
3390: 31 3e 0d 0a 41 6c 6c 20 56 69 72 74 75 61 6c 52  1>..All VirtualR
33a0: 6f 75 74 69 6e 67 20 71 75 65 72 69 65 73 20 61  outing queries a
33b0: 72 65 20 62 61 73 65 64 20 6f 6e 20 73 6f 6d 65  re based on some
33c0: 20 3c 62 3e 56 69 72 74 75 61 6c 52 6f 75 74 69   <b>VirtualRouti
33d0: 6e 67 20 54 61 62 6c 65 3c 2f 62 3e 2c 20 61 6e  ng Table</b>, an
33e0: 64 20 69 6e 20 74 75 72 6e 20 61 6e 79 20 56 69  d in turn any Vi
33f0: 72 74 75 61 6c 52 6f 75 74 69 6e 67 20 54 61 62  rtualRouting Tab
3400: 6c 65 20 69 73 20 62 61 73 65 64 20 6f 6e 20 73  le is based on s
3410: 6f 6d 65 20 61 70 70 72 6f 70 72 69 61 74 65 20  ome appropriate 
3420: 3c 62 3e 42 69 6e 61 72 79 20 44 61 74 61 20 54  <b>Binary Data T
3430: 61 62 6c 65 3c 2f 62 3e 20 73 75 70 70 6f 72 74  able</b> support
3440: 69 6e 67 20 61 6e 20 65 66 66 69 63 69 65 6e 74  ing an efficient
3450: 20 72 65 70 72 65 73 65 6e 74 61 74 69 6f 6e 20   representation 
3460: 6f 66 20 74 68 65 20 75 6e 64 65 72 6c 79 69 6e  of the underlyin
3470: 67 20 4e 65 74 77 6f 72 6b 2e 3c 62 72 3e 0d 0a  g Network.<br>..
3480: 53 6f 20 77 65 27 6c 6c 20 73 74 61 72 74 20 66  So we'll start f
3490: 69 72 73 74 20 62 79 20 63 72 65 61 74 69 6e 67  irst by creating
34a0: 20 73 75 63 68 20 74 61 62 6c 65 73 2e 3c 62 72   such tables.<br
34b0: 3e 3c 62 72 3e 0d 0a 54 68 65 20 6f 6c 64 20 61  ><br>..The old a
34c0: 6e 64 20 6e 6f 77 20 73 75 70 65 72 73 65 64 65  nd now supersede
34d0: 64 20 3c 62 3e 56 69 72 74 75 61 6c 4e 65 74 77  d <b>VirtualNetw
34e0: 6f 72 6b 3c 2f 62 3e 20 72 65 71 75 69 72 65 64  ork</b> required
34f0: 20 75 73 69 6e 67 20 61 20 73 65 70 61 72 61 74   using a separat
3500: 65 20 43 4c 49 20 74 6f 6f 6c 20 28 3c 62 3e 73  e CLI tool (<b>s
3510: 70 61 74 69 61 6c 69 74 65 5f 6e 65 74 77 6f 72  patialite_networ
3520: 6b 3c 2f 62 3e 29 20 69 6e 20 6f 72 64 65 72 20  k</b>) in order 
3530: 74 6f 20 70 72 6f 70 65 72 6c 79 20 69 6e 69 74  to properly init
3540: 69 61 6c 69 7a 65 20 61 20 56 69 72 74 75 61 6c  ialize a Virtual
3550: 4e 65 74 77 6f 72 6b 20 54 61 62 6c 65 20 61 6e  Network Table an
3560: 64 20 69 74 73 20 63 6f 6d 70 61 6e 69 6f 6e 20  d its companion 
3570: 42 69 6e 61 72 79 20 44 61 74 61 20 54 61 62 6c  Binary Data Tabl
3580: 65 3b 0d 0a 61 6c 74 65 72 6e 61 74 69 76 65 6c  e;..alternativel
3590: 79 20 3c 62 3e 73 70 61 74 69 61 6c 69 74 65 5f  y <b>spatialite_
35a0: 67 75 69 3c 2f 62 3e 20 73 75 70 70 6f 72 74 65  gui</b> supporte
35b0: 64 20 61 20 3c 62 3e 47 55 49 20 77 69 7a 61 72  d a <b>GUI wizar
35c0: 64 3c 2f 62 3e 20 66 6f 72 20 74 68 65 20 73 61  d</b> for the sa
35d0: 6d 65 20 74 61 73 6b 2e 20 53 69 6e 63 65 20 76  me task. Since v
35e0: 65 72 73 69 6f 6e 20 3c 62 3e 35 2e 30 2e 30 3c  ersion <b>5.0.0<
35f0: 2f 62 3e 20 6e 6f 77 20 53 70 61 74 69 61 4c 69  /b> now SpatiaLi
3600: 74 65 20 64 69 72 65 63 74 6c 79 20 73 75 70 70  te directly supp
3610: 6f 72 74 73 20 61 20 73 70 65 63 69 66 69 63 20  orts a specific 
3620: 3c 62 3e 43 72 65 61 74 65 52 6f 75 74 69 6e 67  <b>CreateRouting
3630: 28 29 3c 2f 62 3e 20 53 51 4c 20 66 75 6e 63 74  ()</b> SQL funct
3640: 69 6f 6e 2e 0d 0a 3c 76 65 72 62 61 74 69 6d 3e  ion...<verbatim>
3650: 0d 0a 53 45 4c 45 43 54 20 43 72 65 61 74 65 52  ..SELECT CreateR
3660: 6f 75 74 69 6e 67 28 27 62 79 66 6f 6f 74 5f 64  outing('byfoot_d
3670: 61 74 61 27 2c 20 27 62 79 66 6f 6f 74 27 2c 20  ata', 'byfoot', 
3680: 27 72 6f 61 64 73 5f 76 77 27 2c 20 27 6e 6f 64  'roads_vw', 'nod
3690: 65 5f 66 72 6f 6d 27 2c 20 27 6e 6f 64 65 74 6f  e_from', 'nodeto
36a0: 27 2c 20 27 67 65 6f 6d 27 2c 20 4e 55 4c 4c 29  ', 'geom', NULL)
36b0: 3b 0d 0a 0d 0a 53 45 4c 45 43 54 20 43 72 65 61  ;....SELECT Crea
36c0: 74 65 52 6f 75 74 69 6e 67 5f 47 65 74 4c 61 73  teRouting_GetLas
36d0: 74 45 72 72 6f 72 28 29 3b 0d 0a 2d 2d 2d 2d 2d  tError();..-----
36e0: 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d  ----------------
36f0: 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 0d  ---------------.
3700: 0a 54 6f 4e 6f 64 65 20 43 6f 6c 75 6d 6e 20 22  .ToNode Column "
3710: 6e 6f 64 65 74 6f 22 20 69 73 20 6e 6f 74 20 64  nodeto" is not d
3720: 65 66 69 6e 65 64 20 69 6e 20 74 68 65 20 49 6e  efined in the In
3730: 70 75 74 20 54 61 62 6c 65 0d 0a 3c 2f 76 65 72  put Table..</ver
3740: 62 61 74 69 6d 3e 0d 0a 3c 75 3e 4e 6f 74 65 3c  batim>..<u>Note<
3750: 2f 75 3e 3a 20 74 68 69 73 20 66 69 72 73 74 20  /u>: this first 
3760: 71 75 65 72 79 20 28 62 61 73 65 64 20 6f 6e 20  query (based on 
3770: 74 68 65 20 3c 69 3e 72 65 64 75 63 65 64 20 66  the <i>reduced f
3780: 6f 72 6d 3c 2f 69 3e 20 6f 66 20 3c 62 3e 43 72  orm</i> of <b>Cr
3790: 65 61 74 65 52 6f 75 74 69 6e 67 3c 2f 62 3e 29  eateRouting</b>)
37a0: 20 63 6f 6e 74 61 69 6e 73 20 61 6e 20 69 6e 74   contains an int
37b0: 65 6e 64 65 64 20 65 72 72 6f 72 20 63 61 75 73  ended error caus
37c0: 69 6e 67 20 61 20 66 61 69 6c 75 72 65 20 61 6e  ing a failure an
37d0: 64 20 74 68 75 73 20 72 61 69 73 69 6e 67 20 61  d thus raising a
37e0: 6e 20 65 78 63 65 70 74 69 6f 6e 2e 3c 62 72 3e  n exception.<br>
37f0: 0d 0a 43 72 65 61 74 65 52 6f 75 74 69 6e 67 28  ..CreateRouting(
3800: 29 20 63 61 6e 20 66 61 69 6c 20 66 6f 72 20 6d  ) can fail for m
3810: 75 6c 74 69 70 6c 65 20 72 65 61 73 6f 6e 73 2c  ultiple reasons,
3820: 20 61 6e 64 20 62 79 20 63 61 6c 6c 69 6e 67 20   and by calling 
3830: 3c 62 3e 43 72 65 61 74 65 52 6f 75 74 69 6e 67  <b>CreateRouting
3840: 5f 47 65 74 4c 61 73 74 45 72 72 6f 72 28 29 3c  _GetLastError()<
3850: 2f 62 3e 20 79 6f 75 20 63 61 6e 20 65 61 73 69  /b> you can easi
3860: 6c 79 20 69 64 65 6e 74 69 66 79 20 74 68 65 20  ly identify the 
3870: 65 78 61 63 74 20 72 65 61 73 6f 6e 20 77 68 79  exact reason why
3880: 20 74 68 65 20 6d 6f 73 74 20 72 65 63 65 6e 74   the most recent
3890: 20 63 61 6c 6c 20 74 6f 20 43 72 65 61 74 65 52   call to CreateR
38a0: 6f 75 74 69 6e 67 28 29 20 66 61 69 6c 65 64 2e  outing() failed.
38b0: 3c 62 72 3e 0d 0a 3c 76 65 72 62 61 74 69 6d 3e  <br>..<verbatim>
38c0: 0d 0a 53 45 4c 45 43 54 20 43 72 65 61 74 65 52  ..SELECT CreateR
38d0: 6f 75 74 69 6e 67 28 27 62 79 66 6f 6f 74 5f 64  outing('byfoot_d
38e0: 61 74 61 27 2c 20 27 62 79 66 6f 6f 74 27 2c 20  ata', 'byfoot', 
38f0: 27 72 6f 61 64 73 5f 76 77 27 2c 20 27 6e 6f 64  'roads_vw', 'nod
3900: 65 5f 66 72 6f 6d 27 2c 20 27 6e 6f 64 65 5f 74  e_from', 'node_t
3910: 6f 27 2c 20 27 67 65 6f 6d 27 2c 20 4e 55 4c 4c  o', 'geom', NULL
3920: 2c 20 27 74 6f 70 6f 6e 79 6d 27 2c 20 31 2c 20  , 'toponym', 1, 
3930: 31 29 3b 0d 0a 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d  1);..-----------
3940: 2d 2d 0d 0a 31 0d 0a 0d 0a 53 45 4c 45 43 54 20  --..1....SELECT 
3950: 43 72 65 61 74 65 52 6f 75 74 69 6e 67 5f 47 65  CreateRouting_Ge
3960: 74 4c 61 73 74 45 72 72 6f 72 28 29 3b 0d 0a 2d  tLastError();..-
3970: 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d  ----------------
3980: 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d  ----------------
3990: 2d 2d 2d 0d 0a 4e 55 4c 4c 0d 0a 3c 2f 76 65 72  ---..NULL..</ver
39a0: 62 61 74 69 6d 3e 0d 0a 54 68 69 73 20 73 65 63  batim>..This sec
39b0: 6f 6e 64 20 61 74 74 65 6d 70 74 20 69 73 20 66  ond attempt is f
39c0: 69 6e 61 6c 6c 79 20 73 75 63 63 65 73 73 66 75  inally successfu
39d0: 6c 2c 20 61 6e 64 20 6e 6f 77 20 43 72 65 61 74  l, and now Creat
39e0: 65 52 6f 75 74 69 6e 67 28 29 20 72 65 74 75 72  eRouting() retur
39f0: 6e 73 20 3c 62 3e 31 3c 2f 62 3e 20 28 3c 69 3e  ns <b>1</b> (<i>
3a00: 61 6b 61 3c 2f 69 3e 20 3c 62 3e 54 52 55 45 3c  aka</i> <b>TRUE<
3a10: 2f 62 3e 29 2c 20 61 6e 64 20 61 73 20 79 6f 75  /b>), and as you
3a20: 20 63 61 6e 20 65 61 73 69 6c 79 20 63 68 65 63   can easily chec
3a30: 6b 20 6e 6f 77 20 74 68 65 20 44 61 74 61 62 61  k now the Databa
3a40: 73 65 20 63 6f 6e 74 61 69 6e 73 20 74 77 6f 20  se contains two 
3a50: 6e 65 77 20 54 61 62 6c 65 73 3a 20 3c 62 3e 62  new Tables: <b>b
3a60: 79 66 6f 6f 74 3c 2f 62 3e 20 61 6e 64 20 3c 62  yfoot</b> and <b
3a70: 3e 62 79 66 6f 6f 74 5f 64 61 74 61 3c 2f 62 3e  >byfoot_data</b>
3a80: 2e 3c 62 72 3e 0d 0a 3c 75 3e 4e 6f 74 65 3c 2f  .<br>..<u>Note</
3a90: 75 3e 3a 20 61 66 74 65 72 20 61 20 73 75 63 63  u>: after a succ
3aa0: 65 73 73 66 75 6c 20 63 61 6c 6c 20 74 6f 20 43  essful call to C
3ab0: 72 65 61 74 65 52 6f 75 74 69 6e 67 28 29 20 3c  reateRouting() <
3ac0: 62 3e 43 72 65 61 74 65 52 6f 75 74 69 6e 67 5f  b>CreateRouting_
3ad0: 47 65 74 4c 61 73 74 45 72 72 6f 72 28 29 3c 2f  GetLastError()</
3ae0: 62 3e 20 77 69 6c 6c 20 61 6c 77 61 79 73 20 72  b> will always r
3af0: 65 74 75 72 6e 20 3c 62 3e 4e 55 4c 4c 3c 2f 62  eturn <b>NULL</b
3b00: 3e 2e 3c 62 72 3e 3c 62 72 3e 0d 0a 59 6f 75 27  >.<br><br>..You'
3b10: 76 65 20 6a 75 73 74 20 75 73 65 64 20 6f 6e 65  ve just used one
3b20: 20 6f 66 20 74 68 65 20 3c 69 3e 70 61 72 74 69   of the <i>parti
3b30: 61 6c 6c 79 20 72 65 64 75 63 65 64 20 66 6f 72  ally reduced for
3b40: 6d 3c 2f 69 3e 20 6f 66 20 43 72 65 61 74 65 52  m</i> of CreateR
3b50: 6f 75 74 69 6e 67 28 29 3b 20 6c 65 74 27 73 20  outing(); let's 
3b60: 73 65 65 20 69 6e 20 6d 6f 72 65 20 64 65 70 74  see in more dept
3b70: 68 20 61 6c 6c 20 74 68 65 20 61 72 67 75 6d 65  h all the argume
3b80: 6e 74 73 20 61 6e 64 20 74 68 65 69 72 20 6d 65  nts and their me
3b90: 61 6e 69 6e 67 3a 0d 0a 3c 6f 6c 3e 0d 0a 3c 6c  aning:..<ol>..<l
3ba0: 69 3e 3c 69 3e 62 79 66 6f 6f 74 5f 64 61 74 61  i><i>byfoot_data
3bb0: 3c 2f 69 3e 3a 20 74 68 65 20 6e 61 6d 65 20 6f  </i>: the name o
3bc0: 66 20 74 68 65 20 4e 65 74 77 6f 72 6b 20 42 69  f the Network Bi
3bd0: 6e 61 72 79 20 44 61 74 61 20 54 61 62 6c 65 20  nary Data Table 
3be0: 74 6f 20 62 65 20 63 72 65 61 74 65 64 2e 3c 2f  to be created.</
3bf0: 6c 69 3e 0d 0a 3c 6c 69 3e 3c 69 3e 62 79 66 6f  li>..<li><i>byfo
3c00: 6f 74 3c 2f 69 3e 3a 20 74 68 65 20 6e 61 6d 65  ot</i>: the name
3c10: 20 6f 66 20 74 68 65 20 56 69 72 74 75 61 6c 52   of the VirtualR
3c20: 6f 75 74 69 6e 67 20 54 61 62 6c 65 20 74 6f 20  outing Table to 
3c30: 62 65 20 63 72 65 61 74 65 64 2e 3c 2f 6c 69 3e  be created.</li>
3c40: 0d 0a 3c 6c 69 3e 3c 69 3e 72 6f 61 64 73 5f 76  ..<li><i>roads_v
3c50: 77 3c 2f 69 3e 3a 20 74 68 65 20 6e 61 6d 65 20  w</i>: the name 
3c60: 6f 66 20 74 68 65 20 3c 62 3e 53 70 61 74 69 61  of the <b>Spatia
3c70: 6c 20 54 61 62 6c 65 3c 2f 62 3e 20 6f 72 20 3c  l Table</b> or <
3c80: 62 3e 53 70 61 74 69 61 6c 20 56 69 65 77 3c 2f  b>Spatial View</
3c90: 62 3e 20 72 65 70 72 65 73 65 6e 74 69 6e 67 20  b> representing 
3ca0: 74 68 65 20 75 6e 64 65 72 6c 79 69 6e 67 20 4e  the underlying N
3cb0: 65 74 77 6f 72 6b 2e 3c 62 72 3e 0d 0a 3c 75 3e  etwork.<br>..<u>
3cc0: 4e 6f 74 65 3c 2f 75 3e 3a 20 69 6e 20 74 68 69  Note</u>: in thi
3cd0: 73 20 63 61 73 65 20 77 65 20 61 63 74 75 61 6c  s case we actual
3ce0: 6c 79 20 75 73 65 64 20 61 20 53 70 61 74 69 61  ly used a Spatia
3cf0: 6c 20 56 69 65 77 2e 3c 2f 6c 69 3e 0d 0a 3c 6c  l View.</li>..<l
3d00: 69 3e 3c 69 3e 6e 6f 64 65 5f 66 72 6f 6d 3c 2f  i><i>node_from</
3d10: 69 3e 3a 20 6e 61 6d 65 20 6f 66 20 74 68 65 20  i>: name of the 
3d20: 63 6f 6c 75 6d 6e 20 28 69 6e 20 74 68 65 20 61  column (in the a
3d30: 62 6f 76 65 20 54 61 62 6c 65 20 6f 72 20 56 69  bove Table or Vi
3d40: 65 77 29 20 65 78 70 65 63 74 65 64 20 74 6f 20  ew) expected to 
3d50: 63 6f 6e 74 61 69 6e 20 3c 62 3e 6e 6f 64 65 2d  contain <b>node-
3d60: 66 72 6f 6d 3c 2f 62 3e 20 76 61 6c 75 65 73 2e  from</b> values.
3d70: 3c 2f 6c 69 3e 0d 0a 3c 6c 69 3e 3c 69 3e 6e 6f  </li>..<li><i>no
3d80: 64 65 5f 74 6f 3c 2f 69 3e 3a 20 6e 61 6d 65 20  de_to</i>: name 
3d90: 6f 66 20 74 68 65 20 63 6f 6c 75 6d 6e 20 28 69  of the column (i
3da0: 6e 20 74 68 65 20 61 62 6f 76 65 20 54 61 62 6c  n the above Tabl
3db0: 65 20 6f 72 20 56 69 65 77 29 20 65 78 70 65 63  e or View) expec
3dc0: 74 65 64 20 74 6f 20 63 6f 6e 74 61 69 6e 20 3c  ted to contain <
3dd0: 62 3e 6e 6f 64 65 2d 74 6f 3c 2f 62 3e 20 76 61  b>node-to</b> va
3de0: 6c 75 65 73 2e 3c 2f 6c 69 3e 0d 0a 3c 6c 69 3e  lues.</li>..<li>
3df0: 3c 69 3e 67 65 6f 6d 3c 2f 69 3e 3a 20 6e 61 6d  <i>geom</i>: nam
3e00: 65 20 6f 66 20 74 68 65 20 63 6f 6c 75 6d 6e 20  e of the column 
3e10: 28 69 6e 20 74 68 65 20 61 62 6f 76 65 20 54 61  (in the above Ta
3e20: 62 6c 65 20 6f 72 20 56 69 65 77 29 20 65 78 70  ble or View) exp
3e30: 65 63 74 65 64 20 74 6f 20 63 6f 6e 74 61 69 6e  ected to contain
3e40: 20 3c 62 3e 4c 69 6e 65 73 74 72 69 6e 67 73 3c   <b>Linestrings<
3e50: 2f 62 3e 2e 3c 62 72 3e 0d 0a 57 65 20 63 6f 75  /b>.<br>..We cou
3e60: 6c 64 20 68 61 76 65 20 6c 65 67 69 74 69 6d 61  ld have legitima
3e70: 74 65 6c 79 20 70 61 73 73 65 64 20 61 20 3c 62  tely passed a <b
3e80: 3e 4e 55 4c 4c 3c 2f 62 3e 20 76 61 6c 75 65 20  >NULL</b> value 
3e90: 66 6f 72 20 74 68 69 73 20 61 72 67 75 6d 65 6e  for this argumen
3ea0: 74 20 69 6e 20 74 68 65 20 63 61 73 65 20 6f 66  t in the case of
3eb0: 20 61 20 3c 62 3e 4c 6f 67 69 63 61 6c 20 4e 65   a <b>Logical Ne
3ec0: 74 77 6f 72 6b 3c 2f 62 3e 2e 3c 2f 6c 69 3e 0d  twork</b>.</li>.
3ed0: 0a 3c 6c 69 3e 3c 69 3e 4e 55 4c 4c 3c 2f 69 3e  .<li><i>NULL</i>
3ee0: 3a 20 6e 61 6d 65 20 6f 66 20 74 68 65 20 63 6f  : name of the co
3ef0: 6c 75 6d 6e 20 28 69 6e 20 74 68 65 20 61 62 6f  lumn (in the abo
3f00: 76 65 20 54 61 62 6c 65 20 6f 72 20 56 69 65 77  ve Table or View
3f10: 29 20 65 78 70 65 63 74 65 64 20 74 6f 20 63 6f  ) expected to co
3f20: 6e 74 61 69 6e 20 3c 62 3e 63 6f 73 74 3c 2f 62  ntain <b>cost</b
3f30: 3e 20 76 61 6c 75 65 73 2e 3c 62 72 3e 0d 0a 49  > values.<br>..I
3f40: 6e 20 74 68 69 73 20 63 61 73 65 20 77 65 20 68  n this case we h
3f50: 61 76 65 20 70 61 73 73 65 64 20 61 20 3c 62 3e  ave passed a <b>
3f60: 4e 55 4c 4c 3c 2f 62 3e 20 76 61 6c 75 65 2c 20  NULL</b> value, 
3f70: 61 6e 64 20 63 6f 6e 73 65 71 75 65 6e 74 6c 79  and consequently
3f80: 20 74 68 65 20 3c 62 3e 63 6f 73 74 3c 2f 62 3e   the <b>cost</b>
3f90: 20 6f 66 20 65 61 63 68 20 4c 69 6e 6b 20 77 69   of each Link wi
3fa0: 6c 6c 20 62 65 20 61 73 73 75 6d 65 64 20 74 6f  ll be assumed to
3fb0: 20 62 65 20 72 65 70 72 65 73 65 6e 74 65 64 20   be represented 
3fc0: 62 79 20 74 68 65 20 3c 62 3e 67 65 6f 6d 65 74  by the <b>geomet
3fd0: 72 69 63 20 6c 65 6e 67 74 68 3c 2f 62 3e 20 6f  ric length</b> o
3fe0: 66 20 74 68 65 20 63 6f 72 72 65 73 70 6f 6e 64  f the correspond
3ff0: 69 6e 67 20 4c 69 6e 65 73 74 72 69 6e 67 2e 3c  ing Linestring.<
4000: 62 72 3e 0d 0a 3c 75 3e 4e 6f 74 65 20 23 31 3c  br>..<u>Note #1<
4010: 2f 75 3e 3a 20 69 6e 20 74 68 65 20 63 61 73 65  /u>: in the case
4020: 20 6f 66 20 4e 65 74 77 6f 72 6b 73 20 62 61 73   of Networks bas
4030: 65 64 20 6f 6e 20 3c 62 3e 6c 6f 6e 67 69 74 75  ed on <b>longitu
4040: 64 65 73 3c 2f 62 3e 20 61 6e 64 20 3c 62 3e 6c  des</b> and <b>l
4050: 61 74 69 74 75 64 65 73 3c 2f 62 3e 20 28 3c 69  atitudes</b> (<i
4060: 3e 61 6b 61 3c 2f 69 3e 20 3c 62 3e 67 65 6f 67  >aka</i> <b>geog
4070: 72 61 70 68 69 63 3c 2f 62 3e 20 52 65 66 65 72  raphic</b> Refer
4080: 65 6e 63 65 20 53 79 73 74 65 6d 73 29 20 74 68  ence Systems) th
4090: 65 20 67 65 6f 6d 65 74 72 79 20 6c 65 6e 67 74  e geometry lengt
40a0: 68 20 6f 66 20 61 6c 6c 20 4c 69 6e 65 73 74 72  h of all Linestr
40b0: 69 6e 67 73 20 77 69 6c 6c 20 62 65 20 70 72 65  ings will be pre
40c0: 63 69 73 65 6c 79 20 3c 62 3e 6d 65 61 73 75 72  cisely <b>measur
40d0: 65 64 20 6f 6e 20 74 68 65 20 65 6c 6c 69 70 73  ed on the ellips
40e0: 6f 69 64 3c 2f 62 3e 20 62 79 20 61 70 70 6c 79  oid</b> by apply
40f0: 69 6e 67 20 74 68 65 20 6d 6f 73 74 20 61 63 63  ing the most acc
4100: 75 72 61 74 65 20 3c 62 3e 67 65 6f 64 65 73 69  urate <b>geodesi
4110: 63 20 66 6f 72 6d 75 6c 61 65 3c 2f 62 3e 20 61  c formulae</b> a
4120: 6e 64 20 77 69 6c 6c 20 62 65 20 63 6f 6e 73 65  nd will be conse
4130: 71 75 65 6e 74 6c 79 20 65 78 70 72 65 73 73 65  quently expresse
4140: 64 20 69 6e 20 3c 62 3e 6d 65 74 65 72 73 3c 2f  d in <b>meters</
4150: 62 3e 2e 20 49 6e 20 61 6e 79 20 6f 74 68 65 72  b>. In any other
4160: 20 63 61 73 65 20 28 3c 62 3e 70 72 6f 6a 65 63   case (<b>projec
4170: 74 65 64 3c 2f 62 3e 20 52 65 66 65 72 65 6e 63  ted</b> Referenc
4180: 65 20 53 79 73 74 65 6d 73 29 20 6c 65 6e 67 74  e Systems) lengt
4190: 68 73 20 77 69 6c 6c 20 62 65 20 65 78 70 72 65  hs will be expre
41a0: 73 73 65 64 20 69 6e 20 74 68 65 20 3c 62 3e 6d  ssed in the <b>m
41b0: 65 61 73 75 72 65 20 75 6e 69 74 3c 2f 62 3e 20  easure unit</b> 
41c0: 64 65 66 69 6e 65 64 20 62 79 20 74 68 65 20 52  defined by the R
41d0: 65 66 65 72 65 6e 63 65 20 53 79 73 74 65 6d 20  eference System 
41e0: 28 65 2e 67 2e 20 3c 62 3e 6d 65 74 65 72 73 3c  (e.g. <b>meters<
41f0: 2f 62 3e 20 66 6f 72 20 3c 62 3e 55 54 4d 3c 2f  /b> for <b>UTM</
4200: 62 3e 20 70 72 6f 6a 65 63 74 69 6f 6e 73 20 61  b> projections a
4210: 6e 64 20 3c 62 3e 66 65 65 74 3c 2f 62 3e 20 66  nd <b>feet</b> f
4220: 6f 72 20 3c 62 3e 4e 41 44 2d 66 74 3c 2f 62 3e  or <b>NAD-ft</b>
4230: 20 70 72 6f 6a 65 63 74 69 6f 6e 73 29 2e 3c 62   projections).<b
4240: 72 3e 0d 0a 3c 75 3e 4e 6f 74 65 20 23 32 3c 2f  r>..<u>Note #2</
4250: 75 3e 3a 20 74 68 65 20 3c 62 3e 67 65 6f 6d 2d  u>: the <b>geom-
4260: 63 6f 6c 75 6d 6e 3c 2f 62 3e 20 61 6e 64 20 3c  column</b> and <
4270: 62 3e 63 6f 73 74 2d 63 6f 6c 75 6d 6e 3c 2f 62  b>cost-column</b
4280: 3e 20 61 72 67 75 6d 65 6e 74 73 20 61 72 65 20  > arguments are 
4290: 6e 65 76 65 72 20 61 6c 6c 6f 77 65 64 20 74 6f  never allowed to
42a0: 20 62 65 20 3c 62 3e 4e 55 4c 4c 3c 2f 62 3e 20   be <b>NULL</b> 
42b0: 61 74 20 74 68 65 20 73 61 6d 65 20 74 69 6d 65  at the same time
42c0: 2e 3c 2f 6c 69 3e 0d 0a 3c 6c 69 3e 3c 69 3e 74  .</li>..<li><i>t
42d0: 6f 70 6f 6e 79 6d 3c 2f 69 3e 3a 20 6e 61 6d 65  oponym</i>: name
42e0: 20 6f 66 20 74 68 65 20 63 6f 6c 75 6d 6e 20 28   of the column (
42f0: 69 6e 20 74 68 65 20 61 62 6f 76 65 20 54 61 62  in the above Tab
4300: 6c 65 20 6f 72 20 56 69 65 77 29 20 65 78 70 65  le or View) expe
4310: 63 74 65 64 20 74 6f 20 63 6f 6e 74 61 69 6e 20  cted to contain 
4320: 3c 62 3e 72 6f 61 64 2d 6e 61 6d 65 3c 2f 62 3e  <b>road-name</b>
4330: 20 76 61 6c 75 65 73 2e 3c 62 72 3e 0d 0a 49 74   values.<br>..It
4340: 20 63 6f 75 6c 64 20 62 65 20 6c 65 67 69 74 69   could be legiti
4350: 6d 61 74 65 6c 79 20 73 65 74 20 74 6f 20 3c 62  mately set to <b
4360: 3e 4e 55 4c 4c 3c 2f 62 3e 20 69 66 20 61 6c 6c  >NULL</b> if all
4370: 20 4c 69 6e 6b 73 20 61 72 65 20 61 6e 6f 6e 79   Links are anony
4380: 6d 6f 75 73 2e 3c 2f 6c 69 3e 0d 0a 3c 6c 69 3e  mous.</li>..<li>
4390: 3c 69 3e 31 3c 2f 69 3e 3a 20 61 20 62 6f 6f 6c  <i>1</i>: a bool
43a0: 65 61 6e 20 66 6c 61 67 20 69 6e 74 65 6e 64 65  ean flag intende
43b0: 64 20 74 6f 20 73 70 65 63 69 66 79 20 69 66 20  d to specify if 
43c0: 74 68 65 20 4e 65 74 77 6f 72 6b 20 6d 75 73 74  the Network must
43d0: 20 73 75 70 70 6f 72 74 20 74 68 65 20 3c 62 3e   support the <b>
43e0: 41 2a 20 61 6c 67 6f 72 69 74 68 6d 3c 2f 62 3e  A* algorithm</b>
43f0: 20 6f 72 20 6e 6f 74 20 28 73 65 74 20 74 6f 20   or not (set to 
4400: 3c 62 3e 54 52 55 45 3c 2f 62 3e 20 62 79 20 64  <b>TRUE</b> by d
4410: 65 66 61 75 6c 74 29 2e 3c 2f 6c 69 3e 0d 0a 3c  efault).</li>..<
4420: 6c 69 3e 3c 69 3e 31 3c 2f 69 3e 3a 20 61 20 62  li><i>1</i>: a b
4430: 6f 6f 6c 65 61 6e 20 66 6c 61 67 20 69 6e 74 65  oolean flag inte
4440: 6e 64 65 64 20 74 6f 20 73 70 65 63 69 66 79 20  nded to specify 
4450: 69 66 20 61 6c 6c 20 4e 65 74 77 6f 72 6b 27 73  if all Network's
4460: 20 4c 69 6e 6b 73 20 61 72 65 20 61 73 73 75 6d   Links are assum
4470: 65 64 20 74 6f 20 62 65 20 3c 62 3e 62 69 64 69  ed to be <b>bidi
4480: 72 65 63 74 69 6f 6e 61 6c 3c 2f 62 3e 20 6f 72  rectional</b> or
4490: 20 6e 6f 74 20 28 61 73 73 75 6d 65 64 20 74 6f   not (assumed to
44a0: 20 62 65 20 3c 62 3e 54 52 55 45 3c 2f 62 3e 20   be <b>TRUE</b> 
44b0: 62 79 20 64 65 66 61 75 6c 74 29 2e 3c 2f 6c 69  by default).</li
44c0: 3e 20 0d 0a 3c 2f 6f 6c 3e 0d 0a 3c 74 61 62 6c  > ..</ol>..<tabl
44d0: 65 20 62 67 63 6f 6c 6f 72 3d 22 23 63 30 66 66  e bgcolor="#c0ff
44e0: 63 30 22 20 63 65 6c 6c 73 70 61 63 69 6e 67 3d  c0" cellspacing=
44f0: 22 31 30 22 20 63 65 6c 6c 70 61 64 64 69 6e 67  "10" cellpadding
4500: 3d 22 36 22 3e 3c 74 72 3e 3c 74 64 3e 0d 0a 3c  ="6"><tr><td>..<
4510: 68 33 3e 54 65 63 68 6e 69 63 61 6c 20 6e 6f 74  h3>Technical not
4520: 65 3c 2f 68 33 3e 0d 0a 54 68 65 20 69 6e 74 65  e</h3>..The inte
4530: 72 6e 61 6c 20 65 6e 63 6f 64 69 6e 67 20 61 64  rnal encoding ad
4540: 6f 70 74 65 64 20 62 79 20 74 68 65 20 3c 62 3e  opted by the <b>
4550: 42 69 6e 61 72 79 20 44 61 74 61 20 54 61 62 6c  Binary Data Tabl
4560: 65 3c 2f 62 3e 20 69 73 20 75 6e 63 68 61 6e 67  e</b> is unchang
4570: 65 64 20 61 6e 64 20 69 73 20 74 68 65 20 73 61  ed and is the sa
4580: 6d 65 20 66 6f 72 20 62 6f 74 68 20 3c 62 3e 56  me for both <b>V
4590: 69 72 74 75 61 6c 4e 65 74 77 6f 6b 3c 2f 62 3e  irtualNetwok</b>
45a0: 20 61 6e 64 20 3c 62 3e 56 69 72 74 75 61 6c 52   and <b>VirtualR
45b0: 6f 75 74 69 6e 67 3c 2f 62 3e 2e 3c 62 72 3e 0d  outing</b>.<br>.
45c0: 0a 59 6f 75 20 63 61 6e 20 73 61 66 65 6c 79 20  .You can safely 
45d0: 62 61 73 65 20 61 20 3c 62 3e 56 69 72 74 75 61  base a <b>Virtua
45e0: 6c 52 6f 75 74 69 6e 67 20 54 61 62 6c 65 3c 2f  lRouting Table</
45f0: 62 3e 20 6f 6e 20 61 6e 79 20 65 78 69 73 74 69  b> on any existi
4600: 6e 67 20 42 69 6e 61 72 79 20 44 61 74 61 0d 0a  ng Binary Data..
4610: 54 61 62 6c 65 20 63 72 65 61 74 65 64 20 62 79  Table created by
4620: 20 74 68 65 20 3c 62 3e 73 70 61 74 69 61 6c 69   the <b>spatiali
4630: 74 65 2d 6e 65 74 77 6f 72 6b 3c 2f 62 3e 20 43  te-network</b> C
4640: 4c 49 20 74 6f 6f 6c 2c 20 65 78 61 63 74 6c 79  LI tool, exactly
4650: 20 61 73 20 79 6f 75 20 63 61 6e 20 62 61 73 65   as you can base
4660: 20 61 20 3c 62 3e 56 69 72 74 75 61 6c 4e 65 74   a <b>VirtualNet
4670: 77 6f 72 6b 20 54 61 62 6c 65 3c 2f 62 3e 20 6f  work Table</b> o
4680: 6e 20 61 6e 79 20 42 69 6e 61 72 79 20 44 61 74  n any Binary Dat
4690: 61 20 54 61 62 6c 65 20 63 72 65 61 74 65 64 20  a Table created 
46a0: 62 79 20 74 68 65 20 3c 62 3e 43 72 65 61 74 65  by the <b>Create
46b0: 52 6f 75 74 69 6e 67 28 29 3c 2f 62 3e 20 53 51  Routing()</b> SQ
46c0: 4c 20 66 75 6e 63 74 69 6f 6e 2e 0d 0a 3c 76 65  L function...<ve
46d0: 72 62 61 74 69 6d 3e 0d 0a 43 52 45 41 54 45 20  rbatim>..CREATE 
46e0: 56 49 52 54 55 41 4c 20 54 41 42 4c 45 20 74 65  VIRTUAL TABLE te
46f0: 73 74 5f 6e 65 74 77 6f 72 6b 20 55 53 49 4e 47  st_network USING
4700: 20 56 69 72 74 75 61 6c 4e 65 74 77 6f 72 6b 28   VirtualNetwork(
4710: 27 73 6f 6d 65 5f 64 61 74 61 5f 74 61 62 6c 65  'some_data_table
4720: 27 29 3b 0d 0a 0d 0a 43 52 45 41 54 45 20 56 49  ');....CREATE VI
4730: 52 54 55 41 4c 20 54 41 42 4c 45 20 74 65 73 74  RTUAL TABLE test
4740: 5f 72 6f 75 74 69 6e 67 20 55 53 49 4e 47 20 56  _routing USING V
4750: 69 72 74 75 61 6c 52 6f 75 74 69 6e 67 28 27 73  irtualRouting('s
4760: 6f 6d 65 5f 64 61 74 61 5f 74 61 62 6c 65 27 29  ome_data_table')
4770: 3b 0d 0a 3c 2f 76 65 72 62 61 74 69 6d 3e 0d 0a  ;..</verbatim>..
4780: 49 6e 20 6f 72 64 65 72 20 74 6f 20 6d 61 6e 75  In order to manu
4790: 61 6c 6c 79 20 63 72 65 61 74 65 20 79 6f 75 72  ally create your
47a0: 20 56 69 72 74 75 61 6c 20 54 61 62 6c 65 73 20   Virtual Tables 
47b0: 79 6f 75 20 6a 75 73 74 20 68 61 76 65 20 74 6f  you just have to
47c0: 20 65 78 65 63 75 74 65 20 61 6e 20 61 70 70 72   execute an appr
47d0: 6f 70 72 69 61 74 65 20 3c 62 3e 43 52 45 41 54  opriate <b>CREAT
47e0: 45 20 56 49 52 54 55 41 4c 20 54 41 42 4c 45 20  E VIRTUAL TABLE 
47f0: 2e 2e 2e 20 55 53 49 4e 47 20 56 69 72 74 75 61  ... USING Virtua
4800: 6c 2e 2e 2e 20 28 2e 2e 2e 29 3c 2f 62 3e 20 73  l... (...)</b> s
4810: 74 61 74 65 6d 65 6e 74 2e 0d 0a 3c 68 34 3e 57  tatement...<h4>W
4820: 61 72 6e 69 6e 67 3c 2f 68 34 3e 0d 0a 49 6e 20  arning</h4>..In 
4830: 74 68 65 20 63 61 73 65 20 6f 66 20 3c 62 3e 53  the case of <b>S
4840: 70 61 74 69 61 6c 20 4e 65 74 77 6f 72 6b 73 3c  patial Networks<
4850: 2f 62 3e 20 62 61 73 65 64 20 6f 6e 20 61 6e 79  /b> based on any
4860: 20 3c 62 3e 67 65 6f 67 72 61 70 68 69 63 3c 2f   <b>geographic</
4870: 62 3e 20 52 65 66 65 72 65 6e 63 65 20 53 79 73  b> Reference Sys
4880: 74 65 6d 20 28 75 73 69 6e 67 20 3c 62 3e 6c 6f  tem (using <b>lo
4890: 6e 67 69 74 75 64 65 73 3c 2f 62 3e 20 61 6e 64  ngitudes</b> and
48a0: 20 3c 62 3e 6c 61 74 69 74 75 64 65 73 3c 2f 62   <b>latitudes</b
48b0: 3e 29 20 74 68 65 72 65 20 69 73 20 61 6e 20 69  >) there is an i
48c0: 6d 70 6f 72 74 61 6e 74 20 64 69 66 66 65 72 65  mportant differe
48d0: 6e 63 65 20 62 65 74 77 65 65 6e 20 42 69 6e 61  nce between Bina
48e0: 72 79 20 44 61 74 61 20 54 61 62 6c 65 73 20 63  ry Data Tables c
48f0: 72 65 61 74 65 64 20 62 79 20 74 68 65 20 3c 62  reated by the <b
4900: 3e 73 70 61 74 69 61 6c 69 74 65 5f 6e 65 74 77  >spatialite_netw
4910: 6f 72 6b 3c 2f 62 3e 20 47 55 49 20 74 6f 6f 6c  ork</b> GUI tool
4920: 20 61 6e 64 20 20 42 69 6e 61 72 79 20 44 61 74   and  Binary Dat
4930: 61 20 54 61 62 6c 65 73 20 63 72 65 61 74 65 64  a Tables created
4940: 20 62 79 20 74 68 65 20 3c 62 3e 43 72 65 61 74   by the <b>Creat
4950: 65 52 6f 75 74 69 6e 67 28 29 3c 2f 62 3e 20 53  eRouting()</b> S
4960: 51 4c 20 66 75 6e 63 74 69 6f 6e 20 77 68 65 6e  QL function when
4970: 20 3c 62 3e 63 6f 73 74 73 3c 2f 62 3e 20 61 72   <b>costs</b> ar
4980: 65 20 69 6d 70 6c 69 63 69 74 6c 79 20 62 61 73  e implicitly bas
4990: 65 64 20 6f 6e 20 74 68 65 20 67 65 6f 6d 65 74  ed on the geomet
49a0: 72 69 63 20 6c 65 6e 67 74 68 20 6f 66 20 74 68  ric length of th
49b0: 65 20 4c 69 6e 6b 27 73 20 4c 69 6e 65 73 74 72  e Link's Linestr
49c0: 69 6e 67 3a 0d 0a 3c 75 6c 3e 0d 0a 3c 6c 69 3e  ing:..<ul>..<li>
49d0: 74 68 65 20 3c 62 3e 73 70 61 74 69 61 6c 69 74  the <b>spatialit
49e0: 65 5f 6e 65 74 77 6f 72 6b 3c 2f 62 3e 20 43 4c  e_network</b> CL
49f0: 49 20 74 6f 6f 6c 20 28 61 6e 64 20 74 68 65 20  I tool (and the 
4a00: 3c 62 3e 47 55 49 20 77 69 7a 61 72 64 3c 2f 62  <b>GUI wizard</b
4a10: 3e 20 69 6d 70 6c 65 6d 65 6e 74 65 64 20 62 79  > implemented by
4a20: 20 70 72 65 76 69 6f 75 73 20 76 65 72 73 69 6f   previous versio
4a30: 6e 73 20 6f 66 20 3c 62 3e 73 70 61 74 69 61 6c  ns of <b>spatial
4a40: 69 74 65 5f 67 75 69 3c 2f 62 3e 29 20 63 6f 6d  ite_gui</b>) com
4a50: 70 75 74 65 20 74 68 65 20 4c 69 6e 65 73 74 72  pute the Linestr
4a60: 69 6e 67 27 73 20 6c 65 6e 67 74 68 20 61 73 20  ing's length as 
4a70: 61 6e 20 3c 62 3e 61 6e 67 75 6c 61 72 20 64 69  an <b>angular di
4a80: 73 74 61 6e 63 65 3c 2f 62 3e 20 65 78 70 72 65  stance</b> expre
4a90: 73 73 65 64 20 69 6e 20 3c 62 3e 64 65 67 72 65  ssed in <b>degre
4aa0: 65 73 3c 2f 62 3e 2e 3c 2f 6c 69 3e 0d 0a 3c 6c  es</b>.</li>..<l
4ab0: 69 3e 74 68 65 20 3c 62 3e 43 72 65 61 74 65 52  i>the <b>CreateR
4ac0: 6f 75 74 69 6e 67 28 29 3c 2f 62 3e 20 53 51 4c  outing()</b> SQL
4ad0: 20 66 75 6e 63 74 69 6f 6e 20 63 6f 6d 70 75 74   function comput
4ae0: 65 73 20 74 68 65 20 4c 69 6e 65 73 74 72 69 6e  es the Linestrin
4af0: 67 27 73 20 6c 65 6e 67 74 68 20 61 73 20 61 20  g's length as a 
4b00: 3c 62 3e 6c 69 6e 65 61 72 20 64 69 73 74 61 6e  <b>linear distan
4b10: 63 65 3c 2f 62 3e 20 65 78 70 72 65 73 73 65 64  ce</b> expressed
4b20: 20 69 6e 20 3c 62 3e 6d 65 74 72 65 73 3c 2f 62   in <b>metres</b
4b30: 3e 20 62 79 20 61 70 70 6c 79 69 6e 67 20 74 68  > by applying th
4b40: 65 20 6d 6f 73 74 20 61 63 63 75 72 61 74 65 20  e most accurate 
4b50: 3c 62 3e 67 65 6f 64 65 73 69 63 20 66 6f 72 6d  <b>geodesic form
4b60: 75 6c 61 65 3c 2f 62 3e 20 6f 6e 20 74 68 65 20  ulae</b> on the 
4b70: 65 6c 6c 69 70 73 6f 69 64 2e 3c 2f 6c 69 3e 0d  ellipsoid.</li>.
4b80: 0a 3c 2f 75 6c 3e 0d 0a 3c 2f 74 64 3e 3c 2f 74  .</ul>..</td></t
4b90: 72 3e 3c 2f 74 61 62 6c 65 3e 3c 62 72 3e 3c 62  r></table><br><b
4ba0: 72 3e 0d 0a 3c 76 65 72 62 61 74 69 6d 3e 0d 0a  r>..<verbatim>..
4bb0: 53 45 4c 45 43 54 20 43 72 65 61 74 65 52 6f 75  SELECT CreateRou
4bc0: 74 69 6e 67 28 27 62 79 63 61 72 5f 64 61 74 61  ting('bycar_data
4bd0: 27 2c 20 27 62 79 63 61 72 27 2c 20 27 72 6f 61  ', 'bycar', 'roa
4be0: 64 73 5f 76 77 27 2c 20 27 6e 6f 64 65 5f 66 72  ds_vw', 'node_fr
4bf0: 6f 6d 27 2c 20 27 6e 6f 64 65 5f 74 6f 27 2c 20  om', 'node_to', 
4c00: 27 67 65 6f 6d 27 2c 20 27 63 6f 73 74 27 2c 20  'geom', 'cost', 
4c10: 27 74 6f 70 6f 6e 79 6d 27 2c 20 31 2c 20 31 2c  'toponym', 1, 1,
4c20: 20 27 6f 6e 65 77 61 79 5f 66 72 6f 6d 74 6f 27   'oneway_fromto'
4c30: 2c 20 27 6f 6e 65 77 61 79 5f 74 6f 66 72 6f 6d  , 'oneway_tofrom
4c40: 27 2c 20 30 29 3b 0d 0a 2d 2d 2d 2d 2d 2d 2d 2d  ', 0);..--------
4c50: 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 0d 0a 31 0d  ------------..1.
4c60: 0a 3c 2f 76 65 72 62 61 74 69 6d 3e 0d 0a 41 66  .</verbatim>..Af
4c70: 74 65 72 20 63 61 6c 6c 69 6e 67 20 79 65 74 20  ter calling yet 
4c80: 61 6e 6f 74 68 65 72 20 74 69 6d 65 20 3c 62 3e  another time <b>
4c90: 43 72 65 61 74 65 52 6f 75 74 69 6e 67 28 29 3c  CreateRouting()<
4ca0: 2f 62 3e 20 6e 6f 77 20 74 68 65 20 44 61 74 61  /b> now the Data
4cb0: 62 61 73 65 20 63 6f 6e 74 61 69 6e 73 20 74 77  base contains tw
4cc0: 6f 20 66 75 72 74 68 65 72 20 54 61 62 6c 65 73  o further Tables
4cd0: 3a 20 3c 62 3e 62 79 63 61 72 3c 2f 62 3e 20 61  : <b>bycar</b> a
4ce0: 6e 64 20 3c 62 3e 62 79 63 61 72 5f 64 61 74 61  nd <b>bycar_data
4cf0: 3c 2f 62 3e 2e 3c 62 72 3e 0d 0a 54 68 69 73 20  </b>.<br>..This 
4d00: 74 69 6d 65 20 79 6f 75 27 76 65 20 75 73 65 64  time you've used
4d10: 20 74 68 65 20 3c 69 3e 63 6f 6d 70 6c 65 74 65   the <i>complete
4d20: 20 66 6f 72 6d 3c 2f 69 3e 20 6f 66 20 43 72 65   form</i> of Cre
4d30: 61 74 65 52 6f 75 74 69 6e 67 28 29 3b 20 6c 65  ateRouting(); le
4d40: 74 27 73 20 73 65 65 20 69 6e 20 6d 6f 72 65 20  t's see in more 
4d50: 64 65 70 74 68 20 61 6c 6c 20 74 68 65 20 61 72  depth all the ar
4d60: 67 75 6d 65 6e 74 73 20 61 6e 64 20 74 68 65 69  guments and thei
4d70: 72 20 6d 65 61 6e 69 6e 67 3a 0d 0a 3c 6f 6c 3e  r meaning:..<ol>
4d80: 0d 0a 3c 6c 69 3e 3c 69 3e 62 79 63 61 72 5f 64  ..<li><i>bycar_d
4d90: 61 74 61 3c 2f 69 3e 3a 20 73 61 6d 65 20 61 73  ata</i>: same as
4da0: 20 61 62 6f 76 65 2e 3c 2f 6c 69 3e 0d 0a 3c 6c   above.</li>..<l
4db0: 69 3e 3c 69 3e 62 79 63 61 72 3c 2f 69 3e 3a 20  i><i>bycar</i>: 
4dc0: 73 61 6d 65 20 61 73 20 61 62 6f 76 65 2e 3c 2f  same as above.</
4dd0: 6c 69 3e 0d 0a 3c 6c 69 3e 3c 69 3e 72 6f 61 64  li>..<li><i>road
4de0: 73 5f 76 77 3c 2f 69 3e 3a 20 73 61 6d 65 20 61  s_vw</i>: same a
4df0: 73 20 61 62 6f 76 65 2e 3c 2f 6c 69 3e 0d 0a 3c  s above.</li>..<
4e00: 6c 69 3e 3c 69 3e 6e 6f 64 65 5f 66 72 6f 6d 3c  li><i>node_from<
4e10: 2f 69 3e 3a 20 73 61 6d 65 20 61 73 20 61 62 6f  /i>: same as abo
4e20: 76 65 2e 3c 2f 6c 69 3e 0d 0a 3c 6c 69 3e 3c 69  ve.</li>..<li><i
4e30: 3e 6e 6f 64 65 5f 74 6f 3c 2f 69 3e 3a 20 73 61  >node_to</i>: sa
4e40: 6d 65 20 61 73 20 61 62 6f 76 65 2e 3c 2f 6c 69  me as above.</li
4e50: 3e 0d 0a 3c 6c 69 3e 3c 69 3e 67 65 6f 6d 3c 2f  >..<li><i>geom</
4e60: 69 3e 3a 20 73 61 6d 65 20 61 73 20 61 62 6f 76  i>: same as abov
4e70: 65 2e 3c 2f 6c 69 3e 0d 0a 3c 6c 69 3e 3c 69 3e  e.</li>..<li><i>
4e80: 63 6f 73 74 3c 2f 69 3e 3a 20 73 61 6d 65 20 61  cost</i>: same a
4e90: 73 20 61 62 6f 76 65 2e 0d 0a 49 6e 20 74 68 69  s above...In thi
4ea0: 73 20 63 61 73 65 20 77 65 20 68 61 76 65 20 72  s case we have r
4eb0: 65 66 65 72 65 6e 63 65 64 20 61 20 63 6f 6c 75  eferenced a colu
4ec0: 6d 6e 20 70 72 65 6c 6f 61 64 65 64 20 77 69 74  mn preloaded wit
4ed0: 68 20 76 61 6c 75 65 73 20 63 6f 72 72 65 73 70  h values corresp
4ee0: 6f 6e 64 69 6e 67 20 74 6f 20 74 68 65 20 3c 62  onding to the <b
4ef0: 3e 74 69 6d 65 3c 2f 62 3e 20 6d 65 61 73 75 72  >time</b> measur
4f00: 65 64 20 69 6e 20 3c 62 3e 73 65 63 6f 6e 64 73  ed in <b>seconds
4f10: 3c 2f 62 3e 20 72 65 71 75 69 72 65 64 20 74 6f  </b> required to
4f20: 20 74 72 61 76 65 72 73 65 20 65 61 63 68 20 4c   traverse each L
4f30: 69 6e 6b 2e 3c 2f 6c 69 3e 20 0d 0a 3c 6c 69 3e  ink.</li> ..<li>
4f40: 3c 69 3e 74 6f 70 6f 6e 79 6d 3c 2f 69 3e 3a 20  <i>toponym</i>: 
4f50: 73 61 6d 65 20 61 73 20 61 62 6f 76 65 2e 3c 2f  same as above.</
4f60: 6c 69 3e 0d 0a 3c 6c 69 3e 3c 69 3e 31 3c 2f 69  li>..<li><i>1</i
4f70: 3e 3a 20 73 61 6d 65 20 61 73 20 61 62 6f 76 65  >: same as above
4f80: 20 28 3c 69 3e 41 2a 20 65 6e 61 62 6c 65 64 3c   (<i>A* enabled<
4f90: 2f 69 3e 29 2e 3c 2f 6c 69 3e 0d 0a 3c 6c 69 3e  /i>).</li>..<li>
4fa0: 3c 69 3e 31 3c 2f 69 3e 3a 20 73 61 6d 65 20 61  <i>1</i>: same a
4fb0: 73 20 61 62 6f 76 65 20 28 3c 69 3e 62 69 64 69  s above (<i>bidi
4fc0: 72 65 63 74 69 6f 6e 61 6c 20 4c 69 6e 6b 73 3c  rectional Links<
4fd0: 2f 69 3e 29 2e 3c 2f 6c 69 3e 0d 0a 3c 6c 69 3e  /i>).</li>..<li>
4fe0: 3c 69 3e 6f 6e 65 77 61 79 5f 66 72 6f 6d 74 6f  <i>oneway_fromto
4ff0: 3c 2f 69 3e 3a 20 6e 61 6d 65 20 6f 66 20 74 68  </i>: name of th
5000: 65 20 63 6f 6c 75 6d 6e 20 28 69 6e 20 74 68 65  e column (in the
5010: 20 61 62 6f 76 65 20 54 61 62 6c 65 20 6f 72 20   above Table or 
5020: 56 69 65 77 29 20 65 78 70 65 63 74 65 64 20 74  View) expected t
5030: 6f 20 63 6f 6e 74 61 69 6e 20 62 6f 6f 6c 65 61  o contain boolea
5040: 6e 20 66 6c 61 67 73 20 73 70 65 63 69 66 79 69  n flags specifyi
5050: 6e 67 20 69 66 20 65 61 63 68 20 4c 69 6e 6b 20  ng if each Link 
5060: 63 61 6e 20 62 65 20 74 72 61 76 65 72 73 65 64  can be traversed
5070: 20 69 6e 20 74 68 65 20 3c 62 3e 66 72 6f 6d 2d   in the <b>from-
5080: 74 6f 3c 2f 62 3e 20 64 69 72 65 63 74 69 6f 6e  to</b> direction
5090: 20 6f 72 20 6e 6f 74 2e 3c 2f 6c 69 3e 0d 0a 3c   or not.</li>..<
50a0: 6c 69 3e 3c 69 3e 6f 6e 65 77 61 79 5f 74 6f 66  li><i>oneway_tof
50b0: 72 6f 6d 3c 2f 69 3e 3a 20 6e 61 6d 65 20 6f 66  rom</i>: name of
50c0: 20 74 68 65 20 63 6f 6c 75 6d 6e 20 28 69 6e 20   the column (in 
50d0: 74 68 65 20 61 62 6f 76 65 20 54 61 62 6c 65 20  the above Table 
50e0: 6f 72 20 56 69 65 77 29 20 65 78 70 65 63 74 65  or View) expecte
50f0: 64 20 74 6f 20 63 6f 6e 74 61 69 6e 20 62 6f 6f  d to contain boo
5100: 6c 65 61 6e 20 66 6c 61 67 73 20 73 70 65 63 69  lean flags speci
5110: 66 79 69 6e 67 20 69 66 20 65 61 63 68 20 4c 69  fying if each Li
5120: 6e 6b 20 63 61 6e 20 62 65 20 74 72 61 76 65 72  nk can be traver
5130: 73 65 64 20 69 6e 20 74 68 65 20 3c 62 3e 74 6f  sed in the <b>to
5140: 2d 66 72 6f 6d 3c 2f 62 3e 20 64 69 72 65 63 74  -from</b> direct
5150: 69 6f 6e 20 6f 72 20 6e 6f 74 2e 3c 62 72 3e 0d  ion or not.<br>.
5160: 0a 3c 75 3e 4e 6f 74 65 20 23 31 3c 2f 75 3e 3a  .<u>Note #1</u>:
5170: 20 62 6f 74 68 20 3c 62 3e 66 72 6f 6d 2d 74 6f   both <b>from-to
5180: 3c 2f 62 3e 20 61 6e 64 20 3c 62 3e 74 6f 2d 66  </b> and <b>to-f
5190: 72 6f 6d 3c 2f 62 3e 20 63 6f 6c 75 6d 6e 20 6e  rom</b> column n
51a0: 61 6d 65 73 20 63 61 6e 20 62 65 20 6c 65 67 69  ames can be legi
51b0: 74 69 6d 61 74 65 6c 79 20 73 65 74 20 61 73 20  timately set as 
51c0: 3c 62 3e 4e 55 4c 4c 3c 2f 62 3e 20 69 66 20 6e  <b>NULL</b> if n
51d0: 6f 20 3c 62 3e 6f 6e 65 2d 77 61 79 3c 2f 62 3e  o <b>one-way</b>
51e0: 20 72 65 73 74 72 69 63 74 69 6f 6e 73 20 61 70   restrictions ap
51f0: 70 6c 79 20 74 6f 20 74 68 65 20 63 75 72 72 65  ply to the curre
5200: 6e 74 20 4e 65 74 77 6f 72 6b 2e 3c 62 72 3e 0d  nt Network.<br>.
5210: 0a 3c 75 3e 4e 6f 74 65 20 23 32 3c 2f 75 3e 3a  .<u>Note #2</u>:
5220: 20 4e 65 74 77 6f 72 6b 73 20 6f 66 20 74 68 65   Networks of the
5230: 20 3c 62 3e 75 6e 69 64 69 72 65 63 74 69 6f 6e   <b>unidirection
5240: 61 6c 3c 2f 62 3e 20 74 79 70 65 20 61 72 65 20  al</b> type are 
5250: 6e 65 76 65 72 20 65 6e 61 62 6c 65 64 20 74 6f  never enabled to
5260: 20 72 65 66 65 72 65 6e 63 65 20 3c 62 3e 6f 6e   reference <b>on
5270: 65 2d 77 61 79 3c 2f 62 3e 20 63 6f 6c 75 6d 6e  e-way</b> column
5280: 73 20 28 74 68 65 79 20 73 68 6f 75 6c 64 20 61  s (they should a
5290: 6c 77 61 79 73 20 62 65 20 73 65 74 20 74 6f 20  lways be set to 
52a0: 3c 62 3e 4e 55 4c 4c 3c 2f 62 3e 29 2e 3c 2f 6c  <b>NULL</b>).</l
52b0: 69 3e 0d 0a 3c 6c 69 3e 3c 69 3e 30 3c 2f 69 3e  i>..<li><i>0</i>
52c0: 3a 20 61 20 62 6f 6f 6c 65 61 6e 20 66 6c 61 67  : a boolean flag
52d0: 20 69 6e 74 65 6e 64 69 6e 67 20 61 6e 20 3c 62   intending an <b
52e0: 3e 6f 76 65 72 77 72 69 74 65 20 61 75 74 68 6f  >overwrite autho
52f0: 72 69 7a 61 74 69 6f 6e 3c 2f 62 3e 2e 0d 0a 3c  rization</b>...<
5300: 75 6c 3e 0d 0a 3c 6c 69 3e 49 66 20 73 65 74 20  ul>..<li>If set 
5310: 74 6f 20 3c 62 3e 46 41 4c 53 45 3c 2f 62 3e 20  to <b>FALSE</b> 
5320: 61 6e 20 65 78 63 65 70 74 69 6f 6e 20 77 69 6c  an exception wil
5330: 6c 20 62 65 20 72 61 69 73 65 64 20 69 66 20 74  l be raised if t
5340: 68 65 20 3c 62 3e 42 69 6e 61 72 79 20 44 61 74  he <b>Binary Dat
5350: 61 20 54 61 62 6c 65 3c 2f 62 3e 20 61 6e 64 2f  a Table</b> and/
5360: 6f 72 20 74 68 65 20 3c 62 3e 56 69 72 74 75 61  or the <b>Virtua
5370: 6c 52 6f 75 74 69 6e 67 20 54 61 62 6c 65 3c 2f  lRouting Table</
5380: 62 3e 20 64 6f 20 61 6c 72 65 61 64 79 20 65 78  b> do already ex
5390: 69 73 74 2e 3c 2f 6c 69 3e 0d 0a 3c 6c 69 3e 49  ist.</li>..<li>I
53a0: 66 20 73 65 74 20 74 6f 20 3c 62 3e 54 52 55 45  f set to <b>TRUE
53b0: 3c 2f 62 3e 20 65 76 65 6e 74 75 61 6c 6c 79 20  </b> eventually 
53c0: 65 78 69 73 74 69 6e 67 20 54 61 62 6c 65 73 20  existing Tables 
53d0: 77 69 6c 6c 20 62 65 20 70 72 65 76 65 6e 74 69  will be preventi
53e0: 76 65 6c 79 20 64 72 6f 70 70 65 64 20 69 6d 6d  vely dropped imm
53f0: 65 64 69 61 74 65 6c 79 20 62 65 66 6f 72 65 20  ediately before 
5400: 73 74 61 72 74 69 6e 67 20 74 68 65 20 65 78 65  starting the exe
5410: 63 75 74 69 6f 6e 20 6f 66 20 3c 62 3e 43 72 65  cution of <b>Cre
5420: 61 74 65 52 6f 75 74 69 6e 67 28 29 3c 2f 62 3e  ateRouting()</b>
5430: 2e 3c 2f 6c 69 3e 0d 0a 3c 2f 75 6c 3e 3c 2f 6c  .</li>..</ul></l
5440: 69 3e 0d 0a 3c 2f 6f 6c 3e 0d 0a 3c 62 72 3e 0d  i>..</ol>..<br>.
5450: 0a 3c 74 61 62 6c 65 20 62 67 63 6f 6c 6f 72 3d  .<table bgcolor=
5460: 22 23 66 66 66 66 63 30 22 20 63 65 6c 6c 73 70  "#ffffc0" cellsp
5470: 61 63 69 6e 67 3d 22 31 30 22 20 63 65 6c 6c 70  acing="10" cellp
5480: 61 64 64 69 6e 67 3d 22 36 22 3e 3c 74 72 3e 3c  adding="6"><tr><
5490: 74 64 3e 0d 0a 3c 68 33 3e 48 69 67 68 6c 69 67  td>..<h3>Highlig
54a0: 68 74 3a 20 77 68 65 72 65 20 79 6f 75 20 61 72  ht: where you ar
54b0: 65 3c 2f 68 33 3e 0d 0a 59 6f 75 27 76 65 20 6a  e</h3>..You've j
54c0: 75 73 74 20 63 72 65 61 74 65 64 20 74 77 6f 20  ust created two 
54d0: 56 69 72 74 75 61 6c 52 6f 75 74 69 6e 67 20 54  VirtualRouting T
54e0: 61 62 6c 65 73 20 62 61 73 65 64 20 6f 6e 20 64  ables based on d
54f0: 69 66 66 65 72 65 6e 74 20 73 65 74 74 69 6e 67  ifferent setting
5500: 73 3b 20 62 6f 74 68 20 74 68 65 6d 20 61 72 65  s; both them are
5510: 20 70 65 72 66 65 63 74 6c 79 20 76 61 6c 69 64   perfectly valid
5520: 20 61 6e 64 20 72 65 61 73 6f 6e 61 62 6c 65 2c   and reasonable,
5530: 20 62 75 74 20 74 68 65 79 20 61 72 65 20 69 6e   but they are in
5540: 74 65 6e 64 65 64 20 66 6f 72 20 64 69 66 66 65  tended for diffe
5550: 72 65 6e 74 20 70 75 72 70 6f 73 65 73 3a 0d 0a  rent purposes:..
5560: 3c 75 6c 3e 0d 0a 3c 6c 69 3e 3c 62 3e 62 79 66  <ul>..<li><b>byf
5570: 6f 6f 74 3c 2f 62 3e 20 69 73 20 73 70 65 63 69  oot</b> is speci
5580: 66 69 63 61 6c 6c 79 20 69 6e 74 65 6e 64 65 64  fically intended
5590: 20 66 6f 72 20 3c 62 3e 70 65 64 65 73 74 72 69   for <b>pedestri
55a0: 61 6e 73 3c 2f 62 3e 3a 0d 0a 3c 75 6c 3e 0d 0a  ans</b>:..<ul>..
55b0: 3c 6c 69 3e 61 6c 6c 20 4c 69 6e 6b 73 20 61 72  <li>all Links ar
55c0: 65 20 61 6c 77 61 79 73 20 61 73 73 75 6d 65 64  e always assumed
55d0: 20 74 6f 20 62 65 20 61 63 63 65 73 73 69 62 6c   to be accessibl
55e0: 65 20 69 6e 20 3c 62 3e 62 6f 74 68 20 64 69 72  e in <b>both dir
55f0: 65 63 74 69 6f 6e 73 3c 2f 62 3e 3b 20 74 68 65  ections</b>; the
5600: 72 65 20 61 72 65 20 6e 6f 20 3c 62 3e 6f 6e 65  re are no <b>one
5610: 2d 77 61 79 73 3c 2f 62 3e 20 61 6e 64 20 6e 6f  -ways</b> and no
5620: 20 3c 62 3e 66 6f 72 62 69 64 64 65 6e 3c 2f 62   <b>forbidden</b
5630: 3e 20 4c 69 6e 6b 73 2e 3c 2f 6c 69 3e 0d 0a 3c  > Links.</li>..<
5640: 6c 69 3e 74 68 65 20 3c 62 3e 63 6f 73 74 3c 2f  li>the <b>cost</
5650: 62 3e 20 6f 66 20 65 61 63 68 20 4c 69 6e 6b 20  b> of each Link 
5660: 69 73 20 64 69 72 65 63 74 6c 79 20 72 65 70 72  is directly repr
5670: 65 73 65 6e 74 65 64 20 62 79 20 69 74 73 20 67  esented by its g
5680: 65 6f 6d 65 74 72 69 63 20 3c 62 3e 6c 65 6e 67  eometric <b>leng
5690: 74 68 3c 2f 62 3e 2c 20 77 68 69 63 68 20 69 73  th</b>, which is
56a0: 20 63 6f 6e 73 69 73 74 65 6e 74 20 77 69 74 68   consistent with
56b0: 20 74 68 65 20 61 73 73 75 6d 70 74 69 6f 6e 20   the assumption 
56c0: 6f 66 20 61 6e 20 61 6c 6d 6f 73 74 20 63 6f 6e  of an almost con
56d0: 73 74 61 6e 74 20 73 70 65 65 64 20 73 75 62 73  stant speed subs
56e0: 74 61 6e 74 69 61 6c 6c 79 20 69 6d 6d 75 6e 65  tantially immune
56f0: 20 66 72 6f 6d 20 61 64 76 65 72 73 65 20 72 6f   from adverse ro
5700: 61 64 20 63 6f 6e 64 69 74 69 6f 6e 73 20 61 6e  ad conditions an
5710: 64 20 74 72 61 66 66 69 63 20 63 6f 6e 67 65 73  d traffic conges
5720: 74 69 6f 6e 2e 3c 2f 6c 69 3e 0d 0a 3c 2f 75 6c  tion.</li>..</ul
5730: 3e 3c 2f 6c 69 3e 0d 0a 3c 6c 69 3e 3c 62 3e 62  ></li>..<li><b>b
5740: 79 63 61 72 3c 2f 62 3e 20 69 73 20 73 70 65 63  ycar</b> is spec
5750: 69 66 69 63 61 6c 6c 79 20 69 6e 74 65 6e 64 65  ifically intende
5760: 64 20 66 6f 72 20 3c 62 3e 6d 6f 74 6f 72 20 76  d for <b>motor v
5770: 65 68 69 63 6c 65 73 3c 2f 62 3e 3a 0d 0a 3c 75  ehicles</b>:..<u
5780: 6c 3e 0d 0a 3c 6c 69 3e 6d 61 6e 79 20 4c 69 6e  l>..<li>many Lin
5790: 6b 73 20 61 72 65 20 65 78 70 65 63 74 65 64 20  ks are expected 
57a0: 74 6f 20 62 65 20 61 63 63 65 73 73 69 62 6c 65  to be accessible
57b0: 20 69 6e 20 3c 62 3e 62 6f 74 68 20 64 69 72 65   in <b>both dire
57c0: 63 74 69 6f 6e 73 3c 2f 62 3e 20 62 75 74 20 6f  ctions</b> but o
57d0: 74 68 65 72 73 20 63 6f 75 6c 64 20 65 61 73 69  thers could easi
57e0: 6c 79 20 62 65 20 73 75 62 6a 65 63 74 20 74 6f  ly be subject to
57f0: 20 3c 62 3e 6f 6e 65 2d 77 61 79 3c 2f 62 3e 20   <b>one-way</b> 
5800: 72 65 73 74 72 69 63 74 69 6f 6e 73 20 6f 72 20  restrictions or 
5810: 65 76 65 6e 20 62 65 20 63 6f 6d 70 6c 65 74 65  even be complete
5820: 6c 79 20 3c 62 3e 66 6f 72 62 69 64 64 65 6e 3c  ly <b>forbidden<
5830: 2f 62 3e 2e 3c 2f 6c 69 3e 0d 0a 3c 6c 69 3e 74  /b>.</li>..<li>t
5840: 68 65 20 63 6f 73 74 20 6f 66 20 65 61 63 68 20  he cost of each 
5850: 4c 69 6e 6b 20 69 73 20 65 78 70 72 65 73 73 65  Link is expresse
5860: 64 20 61 73 20 61 6e 20 65 73 74 69 6d 61 74 65  d as an estimate
5870: 64 20 3c 62 3e 74 72 61 76 65 6c 20 74 69 6d 65  d <b>travel time
5880: 3c 2f 62 3e 2c 20 62 65 63 61 75 73 65 20 74 68  </b>, because th
5890: 65 20 65 78 70 65 63 74 65 64 20 73 70 65 65 64  e expected speed
58a0: 73 20 63 61 6e 20 67 72 65 61 74 6c 79 20 76 61  s can greatly va
58b0: 72 79 20 61 63 63 6f 72 64 69 6e 67 6c 79 20 74  ry accordingly t
58c0: 6f 20 73 70 65 63 69 66 69 63 20 72 6f 61 64 20  o specific road 
58d0: 63 6f 6e 64 69 74 69 6f 6e 73 2c 20 74 72 61 66  conditions, traf
58e0: 66 69 63 20 63 6f 6e 67 65 73 74 69 6f 6e 20 61  fic congestion a
58f0: 6e 64 20 6c 65 67 61 6c 20 72 65 67 75 6c 61 74  nd legal regulat
5900: 69 6f 6e 73 2e 3c 2f 6c 69 3e 0d 0a 3c 2f 75 6c  ions.</li>..</ul
5910: 3e 3c 2f 6c 69 3e 0d 0a 3c 2f 75 6c 3e 0d 0a 3c  ></li>..</ul>..<
5920: 62 72 3e 0d 0a 3c 75 3e 43 6f 6e 63 6c 75 73 69  br>..<u>Conclusi
5930: 6f 6e 3c 2f 75 3e 3a 20 61 20 73 69 6e 67 6c 65  on</u>: a single
5940: 20 56 69 72 74 75 61 6c 52 6f 75 74 69 6e 67 20   VirtualRouting 
5950: 54 61 62 6c 65 20 63 61 6e 27 74 20 62 65 20 61  Table can't be a
5960: 62 6c 65 20 74 6f 20 61 64 65 71 75 61 74 65 6c  ble to adequatel
5970: 79 20 73 75 70 70 6f 72 74 20 73 75 70 70 6f 72  y support suppor
5980: 74 20 74 68 65 20 73 70 65 63 69 66 69 63 20 72  t the specific r
5990: 65 71 75 69 72 65 6d 65 6e 74 73 20 61 6e 64 20  equirements and 
59a0: 65 78 70 65 63 74 61 74 69 6f 6e 73 20 6f 66 20  expectations of 
59b0: 64 69 66 66 65 72 65 6e 74 20 75 73 65 72 73 2e  different users.
59c0: 3c 62 72 3e 0d 0a 44 65 66 69 6e 69 6e 67 20 6d  <br>..Defining m
59d0: 6f 72 65 20 52 6f 75 74 69 6e 67 20 54 61 62 6c  ore Routing Tabl
59e0: 65 73 20 77 69 74 68 20 64 69 66 66 65 72 65 6e  es with differen
59f0: 74 20 73 65 74 74 69 6e 67 73 20 66 6f 72 20 74  t settings for t
5a00: 68 65 20 73 61 6d 65 20 4e 65 74 77 6f 72 6b 20  he same Network 
5a10: 75 73 75 61 6c 6c 79 20 69 73 20 61 20 67 6f 6f  usually is a goo
5a20: 64 20 64 65 73 69 67 6e 20 63 68 6f 69 63 65 20  d design choice 
5a30: 6c 65 61 64 69 6e 67 20 74 6f 20 6d 6f 72 65 20  leading to more 
5a40: 72 65 61 6c 69 73 74 69 63 20 72 65 73 75 6c 74  realistic result
5a50: 73 2e 3c 62 72 3e 0d 0a 3c 2f 74 64 3e 3c 2f 74  s.<br>..</td></t
5a60: 72 3e 0d 0a 3c 2f 74 61 62 6c 65 3e 0d 0a 3c 62  r>..</table>..<b
5a70: 72 3e 3c 62 72 3e 0d 0a 3c 68 33 3e 55 74 69 6c  r><br>..<h3>Util
5a80: 69 74 79 20 66 75 6e 63 74 69 6f 6e 20 66 6f 72  ity function for
5a90: 20 61 75 74 6f 6d 61 74 69 63 61 6c 6c 79 20 73   automatically s
5aa0: 65 74 74 69 6e 67 20 4e 6f 64 65 46 72 6f 6d 20  etting NodeFrom 
5ab0: 61 6e 64 20 4e 6f 64 65 54 6f 20 49 44 73 3c 2f  and NodeTo IDs</
5ac0: 68 33 3e 0d 0a 53 6f 6d 65 74 69 6d 65 73 20 69  h3>..Sometimes i
5ad0: 74 20 63 6f 75 6c 64 20 65 76 65 6e 74 75 61 6c  t could eventual
5ae0: 6c 79 20 68 61 70 70 65 6e 20 74 6f 20 65 6e 63  ly happen to enc
5af0: 6f 75 6e 74 65 72 20 73 6f 6d 65 20 3c 62 3e 53  ounter some <b>S
5b00: 70 61 74 69 61 6c 20 4e 65 74 77 6f 72 6b 3c 2f  patial Network</
5b10: 62 3e 20 72 65 70 72 65 73 65 6e 74 61 74 69 6f  b> representatio
5b20: 6e 20 62 65 69 6e 67 20 66 75 6c 6c 79 20 74 6f  n being fully to
5b30: 70 6f 6c 6f 67 69 63 61 6c 6c 79 20 63 6f 6e 73  pologically cons
5b40: 69 73 74 65 6e 74 20 62 75 74 20 63 6f 6d 70 6c  istent but compl
5b50: 65 74 65 6c 79 20 6c 61 63 6b 69 6e 67 20 61 6e  etely lacking an
5b60: 79 20 64 65 66 69 6e 69 74 69 6f 6e 20 61 62 6f  y definition abo
5b70: 75 74 20 3c 62 3e 4e 6f 64 65 46 72 6f 6d 3c 2f  ut <b>NodeFrom</
5b80: 62 3e 20 61 6e 64 20 3c 62 3e 4e 6f 64 65 54 6f  b> and <b>NodeTo
5b90: 3c 2f 62 3e 20 69 64 65 6e 74 69 66 69 65 72 73  </b> identifiers
5ba0: 2e 3c 62 72 3e 0d 0a 49 6e 20 74 68 69 73 20 73  .<br>..In this s
5bb0: 70 65 63 69 66 69 63 20 63 61 73 65 20 79 6f 75  pecific case you
5bc0: 20 63 61 6e 20 73 75 63 63 65 73 73 66 75 6c 6c   can successfull
5bd0: 79 20 72 65 63 6f 76 65 72 20 61 20 70 65 72 66  y recover a perf
5be0: 65 63 74 6c 79 20 76 61 6c 69 64 20 4e 65 74 77  ectly valid Netw
5bf0: 6f 72 6b 20 62 79 20 63 61 6c 6c 69 6e 67 20 74  ork by calling t
5c00: 68 65 20 3c 62 3e 43 72 65 61 74 65 52 6f 75 74  he <b>CreateRout
5c10: 69 6e 67 4e 6f 64 65 73 28 29 3c 2f 62 3e 20 53  ingNodes()</b> S
5c20: 51 4c 20 66 75 6e 63 74 69 6f 6e 2e 0d 0a 3c 76  QL function...<v
5c30: 65 72 62 61 74 69 6d 3e 0d 0a 53 45 4c 45 43 54  erbatim>..SELECT
5c40: 20 43 72 65 61 74 65 52 6f 75 74 69 6e 67 4e 6f   CreateRoutingNo
5c50: 64 65 73 28 4e 55 4c 4c 2c 20 27 74 61 62 6c 65  des(NULL, 'table
5c60: 5f 6e 61 6d 65 27 2c 20 27 67 65 6f 6d 27 2c 20  _name', 'geom', 
5c70: 27 6e 6f 64 65 5f 66 72 6f 6d 27 2c 20 27 6e 6f  'node_from', 'no
5c80: 64 65 5f 74 6f 27 29 3b 0d 0a 5f 5f 5f 5f 5f 5f  de_to');..______
5c90: 5f 5f 5f 5f 5f 5f 5f 5f 5f 5f 5f 5f 5f 5f 5f 5f  ________________
5ca0: 5f 5f 5f 0d 0a 31 0d 0a 3c 2f 76 65 72 62 61 74  ___..1..</verbat
5cb0: 69 6d 3e 0d 0a 4c 65 74 27 73 20 65 78 61 6d 69  im>..Let's exami
5cc0: 6e 65 20 61 6c 6c 20 61 72 67 75 6d 65 6e 74 73  ne all arguments
5cd0: 20 61 6e 64 20 74 68 65 69 72 20 6d 65 61 6e 69   and their meani
5ce0: 6e 67 3a 0d 0a 3c 6f 6c 3e 0d 0a 3c 6c 69 3e 3c  ng:..<ol>..<li><
5cf0: 69 3e 4e 55 4c 4c 3c 2f 69 3e 3a 20 6e 61 6d 65  i>NULL</i>: name
5d00: 20 6f 66 20 74 68 65 20 3c 62 3e 41 74 74 61 63   of the <b>Attac
5d10: 68 65 64 2d 44 42 3c 2f 62 3e 20 63 6f 6e 74 61  hed-DB</b> conta
5d20: 69 6e 69 6e 67 20 74 68 65 20 53 70 61 74 69 61  ining the Spatia
5d30: 6c 20 54 61 62 6c 65 2e 3c 62 72 3e 0d 0a 49 74  l Table.<br>..It
5d40: 20 63 61 6e 20 62 65 20 6c 65 67 69 74 69 6d 61   can be legitima
5d50: 74 65 6c 79 20 73 65 74 20 74 6f 20 3c 62 3e 4e  tely set to <b>N
5d60: 55 4c 4c 3c 2f 62 3e 2c 20 61 6e 64 20 69 6e 20  ULL</b>, and in 
5d70: 74 68 69 73 20 63 61 73 65 20 74 68 65 20 3c 62  this case the <b
5d80: 3e 4d 41 49 4e 3c 2f 62 3e 20 44 42 20 69 73 20  >MAIN</b> DB is 
5d90: 61 73 73 75 6d 65 64 2e 3c 2f 6c 69 3e 0d 0a 3c  assumed.</li>..<
5da0: 6c 69 3e 3c 69 3e 74 61 62 6c 65 5f 6e 61 6d 65  li><i>table_name
5db0: 3c 2f 69 3e 3a 20 6e 61 6d 65 20 6f 66 20 74 68  </i>: name of th
5dc0: 65 20 53 70 61 74 69 61 6c 20 54 61 62 6c 65 2e  e Spatial Table.
5dd0: 3c 2f 6c 69 3e 0d 0a 3c 6c 69 3e 3c 69 3e 67 65  </li>..<li><i>ge
5de0: 6f 6d 3c 2f 6c 69 3e 3a 20 6e 61 6d 65 20 6f 66  om</li>: name of
5df0: 20 74 68 65 20 63 6f 6c 75 6d 6e 20 28 28 69 6e   the column ((in
5e00: 20 74 68 65 20 61 62 6f 76 65 20 54 61 62 6c 65   the above Table
5e10: 29 20 63 6f 6e 74 61 69 6e 69 6e 67 20 3c 62 3e  ) containing <b>
5e20: 4c 69 6e 65 73 74 72 69 6e 67 73 3c 2f 62 3e 2e  Linestrings</b>.
5e30: 3c 2f 6c 69 3e 0d 0a 3c 6c 69 3e 3c 69 3e 6e 6f  </li>..<li><i>no
5e40: 64 65 5f 66 72 6f 6d 3c 2f 69 3e 3a 20 6e 61 6d  de_from</i>: nam
5e50: 65 20 6f 66 20 74 68 65 20 63 6f 6c 75 6d 6e 20  e of the column 
5e60: 74 6f 20 62 65 20 61 64 64 65 64 20 74 6f 20 74  to be added to t
5e70: 68 65 20 61 62 6f 76 65 20 54 61 62 6c 65 20 61  he above Table a
5e80: 6e 64 20 70 6f 70 75 6c 61 74 65 64 20 77 69 74  nd populated wit
5e90: 68 20 61 70 70 72 6f 70 72 69 61 74 65 20 3c 62  h appropriate <b
5ea0: 3e 4e 6f 64 65 46 72 6f 6d 3c 2f 62 3e 20 49 44  >NodeFrom</b> ID
5eb0: 73 2e 3c 2f 6c 69 3e 0d 0a 3c 6c 69 3e 3c 69 3e  s.</li>..<li><i>
5ec0: 6e 6f 64 65 5f 74 6f 3c 2f 69 3e 3a 20 6e 61 6d  node_to</i>: nam
5ed0: 65 20 6f 66 20 74 68 65 20 63 6f 6c 75 6d 6e 20  e of the column 
5ee0: 74 6f 20 62 65 20 61 64 64 65 64 20 74 6f 20 74  to be added to t
5ef0: 68 65 20 61 62 6f 76 65 20 54 61 62 6c 65 20 61  he above Table a
5f00: 6e 64 20 70 6f 70 75 6c 61 74 65 64 20 77 69 74  nd populated wit
5f10: 68 20 61 70 70 72 6f 70 72 69 61 74 65 20 3c 62  h appropriate <b
5f20: 3e 4e 6f 64 65 54 6f 3c 2f 62 3e 20 49 44 73 2e  >NodeTo</b> IDs.
5f30: 3c 62 72 3e 0d 0a 3c 75 3e 4e 6f 74 65 3c 2f 75  <br>..<u>Note</u
5f40: 3e 3a 20 62 6f 74 68 20 3c 62 3e 4e 6f 64 65 46  >: both <b>NodeF
5f50: 72 6f 6d 3c 2f 62 3e 20 61 6e 64 20 3c 62 3e 4e  rom</b> and <b>N
5f60: 6f 64 65 54 6f 3c 2f 62 3e 20 63 6f 6c 75 6d 6e  odeTo</b> column
5f70: 73 20 73 68 6f 75 6c 64 20 6e 6f 74 20 62 65 20  s should not be 
5f80: 61 6c 72 65 61 64 79 20 64 65 66 69 6e 65 64 20  already defined 
5f90: 69 6e 20 74 68 65 20 61 62 6f 76 65 20 54 61 62  in the above Tab
5fa0: 6c 65 2e 3c 2f 6c 69 3e 0d 0a 3c 2f 6f 6c 3e 0d  le.</li>..</ol>.
5fb0: 0a 3c 62 3e 43 72 65 61 74 65 52 6f 75 74 69 6e  .<b>CreateRoutin
5fc0: 67 4e 6f 64 65 73 28 29 3c 2f 62 3e 20 77 69 6c  gNodes()</b> wil
5fd0: 6c 20 72 65 74 75 72 6e 20 3c 62 3e 31 3c 2f 62  l return <b>1</b
5fe0: 3e 20 28 3c 69 3e 61 6b 61 3c 2f 69 3e 20 3c 62  > (<i>aka</i> <b
5ff0: 3e 54 52 55 45 3c 2f 62 3e 29 20 6f 6e 20 73 75  >TRUE</b>) on su
6000: 63 63 65 73 73 3b 20 61 6e 20 65 78 63 65 70 74  ccess; an except
6010: 69 6f 6e 20 77 69 6c 6c 20 62 65 20 72 61 69 73  ion will be rais
6020: 65 64 20 6f 6e 20 66 61 69 6c 75 72 65 2e 3c 62  ed on failure.<b
6030: 72 3e 0d 0a 3c 75 3e 4e 6f 74 65 3c 2f 75 3e 3a  r>..<u>Note</u>:
6040: 20 79 6f 75 20 63 61 6e 20 63 61 6c 6c 20 3c 62   you can call <b
6050: 3e 43 72 65 61 74 65 52 6f 75 74 69 6e 67 5f 47  >CreateRouting_G
6060: 65 74 4c 61 73 74 45 72 72 6f 72 28 29 3c 2f 62  etLastError()</b
6070: 3e 20 73 6f 20 74 6f 20 70 72 65 63 69 73 65 6c  > so to precisel
6080: 79 20 69 64 65 6e 74 69 66 79 20 74 68 65 20 63  y identify the c
6090: 61 75 73 65 20 61 63 63 6f 75 6e 74 69 6e 67 20  ause accounting 
60a0: 66 6f 72 20 66 61 69 6c 75 72 65 2e 3c 62 72 3e  for failure.<br>
60b0: 3c 62 72 3e 3c 62 72 3e 0d 0a 3c 74 61 62 6c 65  <br><br>..<table
60c0: 20 62 67 63 6f 6c 6f 72 3d 22 23 63 30 66 66 63   bgcolor="#c0ffc
60d0: 30 22 20 63 65 6c 6c 73 70 61 63 69 6e 67 3d 22  0" cellspacing="
60e0: 31 30 22 20 63 65 6c 6c 70 61 64 64 69 6e 67 3d  10" cellpadding=
60f0: 22 36 22 3e 3c 74 72 3e 3c 74 64 3e 0d 0a 3c 68  "6"><tr><td>..<h
6100: 33 3e 48 61 6e 64 6c 69 6e 67 20 64 79 6e 61 6d  3>Handling dynam
6110: 69 63 20 4e 65 74 77 6f 72 6b 73 3c 2f 68 33 3e  ic Networks</h3>
6120: 0d 0a 53 6f 6d 65 74 69 6d 65 73 20 69 74 20 68  ..Sometimes it h
6130: 61 70 70 65 6e 73 20 74 68 61 74 20 61 20 4e 65  appens that a Ne
6140: 74 77 6f 72 6b 20 63 6f 75 6c 64 20 62 65 20 73  twork could be s
6150: 75 62 6a 65 63 74 20 74 6f 20 72 61 74 68 65 72  ubject to rather
6160: 20 66 72 65 71 75 65 6e 74 20 63 68 61 6e 67 65   frequent change
6170: 73 3a 20 73 6f 6d 65 20 6e 65 77 20 4c 69 6e 6b  s: some new Link
6180: 73 20 72 65 71 75 69 72 65 20 74 6f 20 62 65 20  s require to be 
6190: 61 64 64 65 64 2c 20 6f 62 73 6f 6c 65 74 65 20  added, obsolete 
61a0: 4c 69 6e 6b 73 20 72 65 71 75 69 72 65 20 74 6f  Links require to
61b0: 20 62 65 20 72 65 6d 6f 76 65 64 2c 20 6f 74 68   be removed, oth
61c0: 65 72 20 4c 69 6e 6b 73 20 6d 61 79 20 61 73 73  er Links may ass
61d0: 75 6d 65 20 61 20 64 69 66 66 65 72 65 6e 74 20  ume a different 
61e0: 43 6f 73 74 2c 20 6f 6e 65 2d 77 61 79 73 20 63  Cost, one-ways c
61f0: 6f 75 6c 64 20 62 65 20 72 65 76 65 72 73 65 64  ould be reversed
6200: 2c 20 74 68 65 20 64 69 73 63 69 70 6c 69 6e 65  , the discipline
6210: 20 6f 66 20 70 65 64 65 73 74 72 69 61 6e 20 61   of pedestrian a
6220: 72 65 61 73 20 63 6f 75 6c 64 20 62 65 20 6d 6f  reas could be mo
6230: 64 69 66 69 65 64 20 61 6e 64 20 73 6f 20 6f 6e  dified and so on
6240: 2e 3c 62 72 3e 0d 0a 41 20 56 69 72 74 75 61 6c  .<br>..A Virtual
6250: 52 6f 75 74 69 6e 67 20 54 61 62 6c 65 20 69 73  Routing Table is
6260: 20 61 6c 77 61 79 73 20 62 61 73 65 64 20 6f 6e   always based on
6270: 20 61 20 63 6f 6d 70 61 6e 69 6f 6e 20 42 69 6e   a companion Bin
6280: 61 72 79 20 44 61 74 61 20 54 61 62 6c 65 2c 20  ary Data Table, 
6290: 74 68 61 74 20 69 73 20 69 6e 74 72 69 6e 73 69  that is intrinsi
62a0: 63 61 6c 6c 79 20 3c 62 3e 73 74 61 74 69 63 3c  cally <b>static<
62b0: 2f 62 3e 2c 20 61 6e 64 20 63 6f 6e 73 65 71 75  /b>, and consequ
62c0: 65 6e 74 6c 79 20 79 6f 75 20 61 72 65 20 72 65  ently you are re
62d0: 71 75 69 72 65 64 20 74 6f 20 72 65 2d 63 72 65  quired to re-cre
62e0: 61 74 65 20 62 6f 74 68 20 74 68 65 6d 20 66 72  ate both them fr
62f0: 6f 6d 20 74 69 6d 65 20 74 6f 20 74 69 6d 65 20  om time to time 
6300: 69 6e 20 6f 72 64 65 72 20 74 6f 20 73 75 70 70  in order to supp
6310: 6f 72 74 20 61 6c 6c 20 72 65 63 65 6e 74 20 63  ort all recent c
6320: 68 61 6e 67 65 73 20 61 66 66 65 63 74 69 6e 67  hanges affecting
6330: 20 74 68 65 20 75 6e 64 65 72 6c 61 79 69 6e 67   the underlaying
6340: 20 4e 65 74 77 6f 72 6b 2e 3c 62 72 3e 0d 0a 54   Network.<br>..T
6350: 68 65 20 6f 70 74 69 6d 61 6c 20 66 72 65 71 75  he optimal frequ
6360: 65 6e 63 79 20 66 6f 72 20 63 79 63 6c 69 63 61  ency for cyclica
6370: 6c 6c 79 20 72 65 66 72 65 73 68 69 6e 67 20 74  lly refreshing t
6380: 68 65 20 52 6f 75 74 69 6e 67 20 54 61 62 6c 65  he Routing Table
6390: 73 20 73 74 72 69 63 74 6c 79 20 64 65 70 65 6e  s strictly depen
63a0: 64 73 20 6f 6e 20 73 70 65 63 69 66 69 63 20 72  ds on specific r
63b0: 65 71 75 69 72 65 6d 65 6e 74 73 2c 20 62 75 74  equirements, but
63c0: 20 74 68 65 20 74 77 6f 20 6f 76 65 72 61 6c 6c   the two overall
63d0: 20 61 70 70 72 6f 61 63 68 65 73 20 61 72 65 20   approaches are 
63e0: 63 6f 6d 6d 6f 6e 6c 79 20 61 64 6f 70 74 65 64  commonly adopted
63f0: 3a 0d 0a 3c 6f 6c 3e 0d 0a 3c 6c 69 3e 3c 62 3e  :..<ol>..<li><b>
6400: 6c 6f 77 20 66 72 65 71 75 65 6e 63 79 20 72 65  low frequency re
6410: 66 72 65 73 68 3c 2f 62 3e 3a 20 62 65 73 74 20  fresh</b>: best 
6420: 66 69 74 20 66 6f 72 20 73 6c 6f 77 6c 79 20 65  fit for slowly e
6430: 76 6f 6c 76 69 6e 67 20 4e 65 74 77 6f 72 6b 73  volving Networks
6440: 2e 3c 62 72 3e 0d 0a 49 6e 20 74 68 69 73 20 63  .<br>..In this c
6450: 61 73 65 20 72 65 2d 63 72 65 61 74 69 6e 67 20  ase re-creating 
6460: 74 68 65 20 4e 65 74 77 6f 72 6b 20 54 61 62 6c  the Network Tabl
6470: 65 73 20 6f 6e 63 65 20 61 20 6d 6f 6e 74 68 20  es once a month 
6480: 2f 20 77 65 65 6b 20 2f 20 64 61 79 20 63 6f 75  / week / day cou
6490: 6c 64 20 62 65 20 72 65 61 73 6f 6e 61 62 6c 79  ld be reasonably
64a0: 20 65 6e 6f 75 67 68 2e 0d 0a 52 65 63 72 65 61   enough...Recrea
64b0: 74 69 6e 67 20 74 68 65 20 54 61 62 6c 65 73 20  ting the Tables 
64c0: 66 72 6f 6d 20 73 63 72 61 74 63 68 20 75 73 75  from scratch usu
64d0: 61 6c 6c 79 20 72 65 71 75 69 72 65 73 20 73 65  ally requires se
64e0: 76 65 72 61 6c 20 73 65 63 6f 6e 64 73 20 28 6f  veral seconds (o
64f0: 72 20 65 76 65 6e 20 6c 65 73 73 2c 20 64 65 70  r even less, dep
6500: 65 6e 64 69 6e 67 20 6f 6e 20 74 68 65 20 6e 75  ending on the nu
6510: 6d 62 65 72 20 6f 66 20 4c 69 6e 6b 73 29 2e 3c  mber of Links).<
6520: 62 72 3e 0d 0a 54 68 65 20 72 65 66 72 65 73 68  br>..The refresh
6530: 20 61 63 74 69 76 69 74 69 65 73 20 63 6f 75 6c   activities coul
6540: 64 20 62 65 20 6f 70 70 6f 72 74 75 6e 65 6c 79  d be opportunely
6550: 20 70 6c 61 6e 6e 65 64 20 61 74 20 6c 6f 77 20   planned at low 
6560: 74 72 61 66 66 69 63 20 68 6f 75 72 73 20 28 65  traffic hours (e
6570: 2e 67 2e 20 64 75 72 69 6e 67 20 74 68 65 20 6e  .g. during the n
6580: 69 67 68 74 29 2c 20 61 6e 64 20 3c 62 3e 43 72  ight), and <b>Cr
6590: 65 61 74 65 52 6f 75 74 69 6e 67 28 29 3c 2f 62  eateRouting()</b
65a0: 3e 20 63 6f 75 6c 64 20 62 65 20 75 73 65 66 75  > could be usefu
65b0: 6c 6c 79 20 63 61 6c 6c 65 64 20 62 79 20 65 6e  lly called by en
65c0: 61 62 6c 69 6e 67 20 74 68 65 20 3c 62 3e 6f 76  abling the <b>ov
65d0: 65 72 77 72 69 74 65 3c 2f 62 3e 20 6f 70 74 69  erwrite</b> opti
65e0: 6f 6e 2e 3c 2f 6c 69 3e 0d 0a 3c 6c 69 3e 3c 62  on.</li>..<li><b
65f0: 3e 6d 65 64 69 75 6d 2d 68 69 67 68 20 66 72 65  >medium-high fre
6600: 71 75 65 6e 63 79 20 72 65 66 72 65 73 68 3c 2f  quency refresh</
6610: 62 3e 3a 20 62 65 73 74 20 66 69 74 20 66 6f 72  b>: best fit for
6620: 20 71 75 69 63 6b 6c 79 20 65 76 6f 6c 76 69 6e   quickly evolvin
6630: 67 20 4e 65 74 77 6f 72 6b 73 2e 3c 62 72 3e 0d  g Networks.<br>.
6640: 0a 52 65 2d 63 72 65 61 74 69 6e 67 20 74 68 65  .Re-creating the
6650: 20 4e 65 74 77 6f 72 6b 20 54 61 62 6c 65 73 20   Network Tables 
6660: 6f 6e 63 65 20 70 65 72 20 68 6f 75 72 20 28 6f  once per hour (o
6670: 72 20 65 76 65 6e 20 6d 6f 72 65 20 66 72 65 71  r even more freq
6680: 75 65 6e 74 6c 79 29 20 63 6f 75 6c 64 20 62 65  uently) could be
6690: 20 73 74 72 69 63 74 6c 79 20 72 65 71 75 69 72   strictly requir
66a0: 65 64 2c 20 61 6e 64 20 66 72 65 71 75 65 6e 74  ed, and frequent
66b0: 20 3c 62 3e 6f 75 74 20 6f 66 20 73 65 72 76 69   <b>out of servi
66c0: 63 65 3c 2f 62 3e 20 70 65 72 69 6f 64 73 20 77  ce</b> periods w
66d0: 68 69 6c 65 20 77 61 69 74 69 6e 67 20 66 6f 72  hile waiting for
66e0: 20 74 68 65 20 72 65 66 72 65 73 68 20 70 72 6f   the refresh pro
66f0: 63 65 73 73 20 74 6f 20 63 6f 6d 70 6c 65 74 65  cess to complete
6700: 20 63 6f 75 6c 64 20 65 61 73 69 6c 79 20 62 65   could easily be
6710: 20 75 6e 61 63 63 65 70 74 61 62 6c 65 2e 3c 62   unacceptable.<b
6720: 72 3e 0d 0a 49 6e 20 74 68 69 73 20 63 61 73 65  r>..In this case
6730: 20 79 6f 75 20 63 6f 75 6c 64 20 75 73 65 66 75   you could usefu
6740: 6c 6c 79 20 61 64 6f 70 74 20 61 20 3c 62 3e 6d  lly adopt a <b>m
6750: 75 6c 74 69 2d 74 68 72 65 61 64 65 64 20 73 74  ulti-threaded st
6760: 72 61 74 65 67 79 3c 2f 62 3e 3a 0d 0a 3c 75 6c  rategy</b>:..<ul
6770: 3e 0d 0a 3c 6c 69 3e 3c 62 3e 74 68 72 65 61 64  >..<li><b>thread
6780: 20 23 31 3c 2f 62 3e 20 28 3c 69 3e 74 68 65 20   #1</b> (<i>the 
6790: 72 65 61 64 65 72 3c 2f 69 3e 29 3a 20 74 68 69  reader</i>): thi
67a0: 73 20 66 69 72 73 74 20 74 68 72 65 61 64 20 69  s first thread i
67b0: 73 20 69 6e 74 65 6e 64 65 64 20 74 6f 20 73 65  s intended to se
67c0: 72 76 69 63 65 20 61 6e 79 20 69 6e 63 6f 6d 69  rvice any incomi
67d0: 6e 67 20 52 6f 75 74 69 6e 67 20 72 65 71 75 65  ng Routing reque
67e0: 73 74 2e 20 49 74 20 77 69 6c 6c 20 62 65 20 61  st. It will be a
67f0: 6c 77 61 79 73 20 61 63 74 69 76 65 2c 20 61 6e  lways active, an
6800: 64 20 77 69 6c 6c 20 74 61 72 67 65 74 20 61 20  d will target a 
6810: 77 65 6c 6c 20 6b 6e 6f 77 6e 20 56 69 72 74 75  well known Virtu
6820: 61 6c 52 6f 75 74 69 6e 67 20 54 61 62 6c 65 20  alRouting Table 
6830: 28 65 2e 67 2e 20 3c 62 3e 6d 79 5f 72 6f 75 74  (e.g. <b>my_rout
6840: 69 6e 67 3c 2f 62 3e 20 62 61 73 65 64 20 6f 6e  ing</b> based on
6850: 20 3c 62 3e 6d 79 5f 72 6f 75 74 69 6e 67 5f 64   <b>my_routing_d
6860: 61 74 61 3c 2f 62 3e 29 2e 3c 2f 6c 69 3e 0d 0a  ata</b>).</li>..
6870: 3c 6c 69 3e 3c 62 3e 74 68 72 65 61 64 20 23 32  <li><b>thread #2
6880: 3c 2f 62 3e 20 28 3c 69 3e 74 68 65 20 77 72 69  </b> (<i>the wri
6890: 74 65 72 3c 2f 69 3e 29 3a 20 74 68 69 73 20 73  ter</i>): this s
68a0: 65 63 6f 6e 64 20 74 68 72 65 61 64 20 69 73 20  econd thread is 
68b0: 6a 75 73 74 20 69 6e 74 65 6e 64 65 64 20 74 6f  just intended to
68c0: 20 72 65 2d 63 72 65 61 74 65 20 62 6f 74 68 20   re-create both 
68d0: 4e 65 74 77 6f 72 6b 20 54 61 62 6c 65 73 20 61  Network Tables a
68e0: 74 20 70 72 65 64 65 66 69 6e 65 64 20 69 6e 74  t predefined int
68f0: 65 72 76 61 6c 73 2c 20 61 6e 64 20 69 74 20 77  ervals, and it w
6900: 69 6c 6c 20 73 6c 65 65 70 20 62 65 74 77 65 65  ill sleep betwee
6910: 6e 20 61 6e 20 69 6e 74 65 72 76 61 6c 20 61 6e  n an interval an
6920: 64 20 74 68 65 20 6f 74 68 65 72 2e 3c 62 72 3e  d the other.<br>
6930: 0d 0a 57 68 65 6e 20 74 68 69 73 20 74 68 72 65  ..When this thre
6940: 61 64 20 61 77 61 6b 65 6e 73 20 77 69 6c 6c 20  ad awakens will 
6950: 72 65 2d 63 72 65 61 74 65 20 62 6f 74 68 20 4e  re-create both N
6960: 65 74 77 6f 72 6b 20 54 61 62 6c 65 73 20 62 79  etwork Tables by
6970: 20 75 73 69 6e 67 20 64 69 66 66 65 72 65 6e 74   using different
6980: 20 6e 61 6d 65 73 2c 20 61 6e 64 20 77 69 6c 6c   names, and will
6990: 20 6f 76 65 72 77 72 69 74 65 20 74 68 65 20 73   overwrite the s
69a0: 74 61 6e 64 61 72 64 20 6f 6e 65 73 20 6a 75 73  tandard ones jus
69b0: 74 20 61 74 20 74 68 65 20 76 65 72 79 20 65 6e  t at the very en
69c0: 64 20 6f 66 20 74 68 65 20 70 72 6f 63 65 73 73  d of the process
69d0: 20 28 61 63 74 69 76 61 74 69 6e 67 20 61 20 73   (activating a s
69e0: 65 6d 61 70 68 6f 72 65 20 64 75 72 69 6e 67 20  emaphore during 
69f0: 74 68 69 73 20 73 68 6f 72 74 2d 74 69 6d 65 64  this short-timed
6a00: 20 6c 61 73 74 20 73 74 65 70 20 69 73 20 68 69   last step is hi
6a10: 67 68 6c 79 20 72 65 63 6f 6d 6d 65 6e 64 65 64  ghly recommended
6a20: 29 2e 3c 62 72 3e 0d 0a 53 6f 6d 65 74 68 69 6e  ).<br>..Somethin
6a30: 67 20 6c 69 6b 65 20 74 68 69 73 20 70 73 65 75  g like this pseu
6a40: 64 6f 2d 63 6f 64 65 20 65 78 65 6d 70 6c 69 66  do-code exemplif
6a50: 69 65 73 3a 0d 0a 3c 76 65 72 62 61 74 69 6d 3e  ies:..<verbatim>
6a60: 0d 0a 53 45 4c 45 43 54 20 43 72 65 61 74 65 52  ..SELECT CreateR
6a70: 6f 75 74 69 6e 67 28 27 6e 65 77 5f 6d 79 5f 72  outing('new_my_r
6a80: 6f 75 74 69 6e 67 5f 64 61 74 61 27 2c 20 27 6e  outing_data', 'n
6a90: 65 77 5f 6d 79 5f 72 6f 75 74 69 6e 67 27 2c 20  ew_my_routing', 
6aa0: 2e 2e 2e 29 3b 0d 0a 0d 0a 2d 2d 3e 20 73 74 61  ...);....--> sta
6ab0: 72 74 20 74 68 65 20 73 65 6d 61 70 68 6f 72 65  rt the semaphore
6ac0: 20 73 6f 20 74 6f 20 6c 6f 63 6b 20 74 68 65 20   so to lock the 
6ad0: 6f 74 68 65 72 20 74 68 72 65 61 64 0d 0a 0d 0a  other thread....
6ae0: 42 45 47 49 4e 3b 0d 0a 44 52 4f 50 20 54 41 42  BEGIN;..DROP TAB
6af0: 4c 45 20 6d 79 5f 72 6f 75 74 69 6e 67 3b 0d 0a  LE my_routing;..
6b00: 44 52 4f 50 20 54 41 42 4c 45 20 6d 79 5f 72 6f  DROP TABLE my_ro
6b10: 75 74 69 6e 67 5f 64 61 74 61 3b 0d 0a 53 45 4c  uting_data;..SEL
6b20: 45 43 54 20 43 6c 6f 6e 65 54 61 62 6c 65 28 27  ECT CloneTable('
6b30: 4d 41 49 4e 27 2c 20 27 6e 65 77 5f 6d 79 5f 72  MAIN', 'new_my_r
6b40: 6f 75 74 69 6e 67 5f 64 61 74 61 27 2c 20 27 6d  outing_data', 'm
6b50: 79 5f 72 6f 75 74 69 6e 67 5f 64 61 74 61 27 2c  y_routing_data',
6b60: 20 30 29 3b 0d 0a 43 52 45 41 54 45 20 56 49 52   0);..CREATE VIR
6b70: 54 55 41 4c 20 54 41 42 4c 45 20 6d 79 5f 72 6f  TUAL TABLE my_ro
6b80: 75 74 69 6e 67 20 55 53 49 4e 47 20 56 69 72 74  uting USING Virt
6b90: 75 61 6c 52 6f 75 74 69 6e 67 28 27 6d 79 5f 72  ualRouting('my_r
6ba0: 6f 75 74 69 6e 67 5f 64 61 74 61 27 29 3b 0d 0a  outing_data');..
6bb0: 44 52 4f 50 20 54 41 42 4c 45 20 6e 65 77 5f 6d  DROP TABLE new_m
6bc0: 79 5f 72 6f 75 74 69 6e 67 3b 0d 0a 44 52 4f 50  y_routing;..DROP
6bd0: 20 54 41 42 4c 45 20 6e 65 77 5f 6d 79 5f 72 6f   TABLE new_my_ro
6be0: 75 74 69 6e 67 5f 64 61 74 61 3b 0d 0a 43 4f 4d  uting_data;..COM
6bf0: 4d 49 54 3b 0d 0a 0d 0a 2d 2d 3e 20 72 65 6d 6f  MIT;....--> remo
6c00: 76 65 20 74 68 65 20 73 65 6d 61 70 68 6f 72 65  ve the semaphore
6c10: 0d 0a 3c 2f 76 65 72 62 61 74 69 6d 3e 0d 0a 3c  ..</verbatim>..<
6c20: 75 3e 4e 6f 74 65 3c 2f 75 3e 3a 20 73 74 72 69  u>Note</u>: stri
6c30: 63 74 6c 79 20 72 65 73 70 65 63 74 69 6e 67 20  ctly respecting 
6c40: 74 68 65 20 61 62 6f 76 65 20 73 65 71 75 65 6e  the above sequen
6c50: 63 65 20 6f 66 20 53 51 4c 20 6f 70 65 72 61 74  ce of SQL operat
6c60: 69 6f 6e 73 20 69 73 20 61 62 73 6f 6c 75 74 65  ions is absolute
6c70: 6c 79 20 72 65 71 75 69 72 65 64 2e 3c 2f 6c 69  ly required.</li
6c80: 3e 20 0d 0a 3c 2f 75 6c 3e 3c 2f 6c 69 3e 0d 0a  > ..</ul></li>..
6c90: 3c 2f 6f 6c 3e 0d 0a 3c 2f 74 64 3e 3c 2f 74 72  </ol>..</td></tr
6ca0: 3e 0d 0a 3c 2f 74 61 62 6c 65 3e 0d 0a 3c 62 72  >..</table>..<br
6cb0: 3e 0d 0a 3c 74 61 62 6c 65 20 62 67 63 6f 6c 6f  >..<table bgcolo
6cc0: 72 3d 22 23 66 66 62 30 36 30 22 20 63 65 6c 6c  r="#ffb060" cell
6cd0: 73 70 61 63 69 6e 67 3d 22 31 30 22 20 63 65 6c  spacing="10" cel
6ce0: 6c 70 61 64 64 69 6e 67 3d 22 36 22 3e 3c 74 72  lpadding="6"><tr
6cf0: 3e 3c 74 64 3e 0d 0a 3c 68 33 3e 57 61 72 6e 69  ><td>..<h3>Warni
6d00: 6e 67 3a 20 68 6f 77 20 74 6f 20 63 6f 72 72 65  ng: how to corre
6d10: 63 74 6c 79 20 64 72 6f 70 20 4e 65 74 77 6f 72  ctly drop Networ
6d20: 6b 20 54 61 62 6c 65 73 3c 2f 68 33 3e 0d 0a 57  k Tables</h3>..W
6d30: 68 65 6e 20 64 72 6f 70 70 69 6e 67 20 61 20 56  hen dropping a V
6d40: 69 72 74 75 61 6c 52 6f 75 74 69 6e 67 20 54 61  irtualRouting Ta
6d50: 62 6c 65 20 61 6e 64 20 69 74 73 20 63 6f 6d 70  ble and its comp
6d60: 61 6e 69 6f 6e 20 42 69 6e 61 72 79 20 44 61 74  anion Binary Dat
6d70: 61 20 54 61 62 6c 65 20 66 6f 6c 6c 6f 77 69 6e  a Table followin
6d80: 67 20 74 68 65 20 63 6f 72 72 65 63 74 20 73 65  g the correct se
6d90: 71 75 65 6e 63 65 20 6f 66 20 53 51 4c 20 63 6f  quence of SQL co
6da0: 6d 6d 61 6e 64 73 20 69 73 20 70 61 72 61 6d 6f  mmands is paramo
6db0: 75 6e 74 2e 3c 62 72 3e 0d 0a 46 61 69 6c 69 6e  unt.<br>..Failin
6dc0: 67 20 74 6f 20 73 74 72 69 63 74 6c 79 20 72 65  g to strictly re
6dd0: 73 70 65 63 74 20 74 68 65 20 65 78 70 65 63 74  spect the expect
6de0: 65 64 20 73 65 71 75 65 6e 63 65 20 77 69 6c 6c  ed sequence will
6df0: 20 73 75 72 65 6c 79 20 63 61 75 73 65 20 79 6f   surely cause yo
6e00: 75 20 73 65 76 65 72 61 6c 20 74 72 6f 75 62 6c  u several troubl
6e10: 65 73 20 61 6e 64 20 73 65 76 65 72 65 20 68 65  es and severe he
6e20: 61 64 61 63 68 65 73 2c 20 61 6e 64 20 77 69 6c  adaches, and wil
6e30: 6c 20 70 6f 73 73 69 62 6c 79 20 6c 65 61 64 20  l possibly lead 
6e40: 74 6f 20 61 6e 20 69 72 72 65 6d 65 64 69 61 62  to an irremediab
6e50: 6c 79 20 63 6f 72 72 75 70 74 65 64 20 64 61 74  ly corrupted dat
6e60: 61 62 61 73 65 2e 0d 0a 3c 6f 6c 3e 0d 0a 3c 6c  abase...<ol>..<l
6e70: 69 3e 79 6f 75 20 61 72 65 20 61 6c 77 61 79 73  i>you are always
6e80: 20 65 78 70 65 63 74 65 64 20 74 6f 20 44 52 4f   expected to DRO
6e90: 50 20 66 69 72 73 74 20 74 68 65 20 56 69 72 74  P first the Virt
6ea0: 75 61 6c 52 6f 75 74 69 6e 67 20 54 61 62 6c 65  ualRouting Table
6eb0: 2e 3c 2f 6c 69 3e 0d 0a 3c 6c 69 3e 79 6f 75 20  .</li>..<li>you 
6ec0: 63 61 6e 20 73 61 66 65 6c 79 20 44 52 4f 50 20  can safely DROP 
6ed0: 74 68 65 20 63 6f 6d 70 61 6e 69 6f 6e 20 42 69  the companion Bi
6ee0: 6e 61 72 79 20 44 61 74 61 20 54 61 62 6c 65 20  nary Data Table 
6ef0: 6f 6e 6c 79 20 6f 6e 63 65 20 69 74 27 73 20 6e  only once it's n
6f00: 6f 20 6c 6f 6e 67 65 72 20 72 65 66 65 72 65 6e  o longer referen
6f10: 63 65 64 20 62 79 20 74 68 65 20 56 69 72 74 75  ced by the Virtu
6f20: 61 6c 52 6f 75 74 69 6e 67 20 54 61 62 6c 65 2e  alRouting Table.
6f30: 3c 2f 6c 69 3e 0d 0a 3c 6c 69 3e 62 79 20 66 6f  </li>..<li>by fo
6f40: 6c 6c 6f 77 69 6e 67 20 74 68 65 20 72 65 76 65  llowing the reve
6f50: 72 73 65 20 73 65 71 75 65 6e 63 65 20 79 6f 75  rse sequence you
6f60: 27 6c 6c 20 64 69 72 65 63 74 6c 79 20 63 72 65  'll directly cre
6f70: 61 74 65 20 61 6e 20 3c 62 3e 6f 72 70 68 61 6e  ate an <b>orphan
6f80: 3c 2f 62 3e 20 56 69 72 74 75 61 6c 52 6f 75 74  </b> VirtualRout
6f90: 69 6e 67 20 54 61 62 6c 65 20 74 68 61 74 20 63  ing Table that c
6fa0: 61 6e 6e 6f 74 20 62 65 20 61 63 63 65 73 73 65  annot be accesse
6fb0: 64 20 61 6e 79 20 6c 6f 6e 67 65 72 2c 20 61 6e  d any longer, an
6fc0: 64 20 74 68 61 74 20 77 69 6c 6c 20 63 6f 6e 73  d that will cons
6fd0: 65 71 75 65 6e 74 6c 79 20 72 65 66 75 73 65 20  equently refuse 
6fe0: 74 6f 20 62 65 20 64 72 6f 70 70 65 64 2e 3c 62  to be dropped.<b
6ff0: 72 3e 0d 0a 42 65 20 77 61 72 6e 65 64 20 21 21  r>..Be warned !!
7000: 3c 2f 6c 69 3e 0d 0a 3c 2f 6f 6c 3e 0d 0a 3c 2f  </li>..</ol>..</
7010: 74 64 3e 3c 2f 74 72 3e 0d 0a 3c 2f 74 61 62 6c  td></tr>..</tabl
7020: 65 3e 0d 0a 3c 62 72 3e 3c 62 72 3e 0d 0a 3c 68  e>..<br><br>..<h
7030: 72 3e 3c 62 72 3e 0d 0a 3c 68 31 3e 3c 61 20 6e  r><br>..<h1><a n
7040: 61 6d 65 3d 22 66 72 6f 6d 5f 74 6f 22 3e 34 20  ame="from_to">4 
7050: 2d 20 53 6f 6c 76 69 6e 67 20 63 6c 61 73 73 69  - Solving classi
7060: 63 20 53 68 6f 72 74 65 73 74 20 50 61 74 68 20  c Shortest Path 
7070: 70 72 6f 62 6c 65 6d 73 3c 2f 61 3e 3c 2f 68 31  problems</a></h1
7080: 3e 0d 0a 54 68 65 20 6d 6f 73 74 20 63 6c 61 73  >..The most clas
7090: 73 69 63 20 53 68 6f 72 74 65 73 74 20 50 61 74  sic Shortest Pat
70a0: 68 20 70 72 6f 62 6c 65 6d 20 72 65 71 75 69 72  h problem requir
70b0: 65 73 20 74 6f 20 69 64 65 6e 74 69 66 79 20 74  es to identify t
70c0: 68 65 20 6f 70 74 69 6d 61 6c 20 63 6f 6e 6e 65  he optimal conne
70d0: 63 74 69 6f 6e 20 62 65 74 77 65 65 6e 20 61 6e  ction between an
70e0: 20 3c 62 3e 4f 72 69 67 69 6e 20 4e 6f 64 65 3c   <b>Origin Node<
70f0: 2f 62 3e 20 61 6e 64 20 61 20 3c 62 3e 44 65 73  /b> and a <b>Des
7100: 74 69 6e 61 74 69 6f 6e 20 4e 6f 64 65 3c 2f 62  tination Node</b
7110: 3e 2e 3c 62 72 3e 0d 0a 57 65 20 63 61 6e 20 65  >.<br>..We can e
7120: 61 73 69 6c 79 20 74 72 61 6e 73 6c 61 74 65 20  asily translate 
7130: 73 75 63 68 20 61 20 70 72 6f 62 6c 65 6d 20 69  such a problem i
7140: 6e 74 6f 20 61 20 73 69 6d 70 6c 65 20 53 51 4c  nto a simple SQL
7150: 20 71 75 65 72 79 20 74 61 72 67 65 74 69 6e 67   query targeting
7160: 20 73 6f 6d 65 20 56 69 72 74 75 61 6c 52 6f 75   some VirtualRou
7170: 74 69 6e 67 20 54 61 62 6c 65 2e 0d 0a 3c 76 65  ting Table...<ve
7180: 72 62 61 74 69 6d 3e 0d 0a 53 45 4c 45 43 54 20  rbatim>..SELECT 
7190: 2a 20 0d 0a 46 52 4f 4d 20 62 79 66 6f 6f 74 0d  * ..FROM byfoot.
71a0: 0a 57 48 45 52 45 20 4e 6f 64 65 46 72 6f 6d 20  .WHERE NodeFrom 
71b0: 3d 20 31 37 38 37 33 31 20 41 4e 44 20 4e 6f 64  = 178731 AND Nod
71c0: 65 54 6f 20 3d 20 31 38 33 32 38 36 3b 0d 0a 3c  eTo = 183286;..<
71d0: 2f 76 65 72 62 61 74 69 6d 3e 0d 0a 3c 74 61 62  /verbatim>..<tab
71e0: 6c 65 20 62 6f 72 64 65 72 3d 22 31 22 20 62 67  le border="1" bg
71f0: 63 6f 6c 6f 72 3d 22 23 66 66 66 66 63 66 22 20  color="#ffffcf" 
7200: 63 65 6c 6c 73 70 61 63 69 6e 67 3d 22 34 22 20  cellspacing="4" 
7210: 63 65 6c 6c 70 61 64 64 69 6e 67 3d 22 36 22 3e  cellpadding="6">
7220: 0d 0a 3c 74 72 3e 3c 74 68 20 62 67 63 6f 6c 6f  ..<tr><th bgcolo
7230: 72 3d 22 23 64 30 64 30 61 30 22 3e 41 6c 67 6f  r="#d0d0a0">Algo
7240: 72 69 74 68 6d 3c 2f 74 68 3e 3c 74 68 20 62 67  rithm</th><th bg
7250: 63 6f 6c 6f 72 3d 22 23 64 30 64 30 61 30 22 3e  color="#d0d0a0">
7260: 52 65 71 75 65 73 74 3c 2f 74 68 3e 3c 74 68 20  Request</th><th 
7270: 62 67 63 6f 6c 6f 72 3d 22 23 64 30 64 30 61 30  bgcolor="#d0d0a0
7280: 22 3e 4f 70 74 69 6f 6e 73 3c 2f 74 68 3e 3c 74  ">Options</th><t
7290: 68 20 62 67 63 6f 6c 6f 72 3d 22 23 64 30 64 30  h bgcolor="#d0d0
72a0: 61 30 22 3e 44 65 6c 69 6d 69 74 65 72 3c 2f 74  a0">Delimiter</t
72b0: 68 3e 3c 74 68 20 62 67 63 6f 6c 6f 72 3d 22 23  h><th bgcolor="#
72c0: 64 30 64 30 61 30 22 3e 52 6f 75 74 65 49 64 3c  d0d0a0">RouteId<
72d0: 2f 74 68 3e 3c 74 68 20 62 67 63 6f 6c 6f 72 3d  /th><th bgcolor=
72e0: 22 23 64 30 64 30 61 30 22 3e 52 6f 75 74 65 52  "#d0d0a0">RouteR
72f0: 6f 77 3c 2f 74 68 3e 3c 74 68 20 62 67 63 6f 6c  ow</th><th bgcol
7300: 6f 72 3d 22 23 64 30 64 30 61 30 22 3e 52 6f 6c  or="#d0d0a0">Rol
7310: 65 3c 2f 74 68 3e 3c 74 68 20 62 67 63 6f 6c 6f  e</th><th bgcolo
7320: 72 3d 22 23 64 30 64 30 61 30 22 3e 4c 69 6e 6b  r="#d0d0a0">Link
7330: 52 6f 77 69 64 3c 2f 74 68 3e 3c 74 68 20 62 67  Rowid</th><th bg
7340: 63 6f 6c 6f 72 3d 22 23 64 30 64 30 61 30 22 3e  color="#d0d0a0">
7350: 4e 6f 64 65 46 72 6f 6d 3c 2f 74 68 3e 3c 74 68  NodeFrom</th><th
7360: 20 62 67 63 6f 6c 6f 72 3d 22 23 64 30 64 30 61   bgcolor="#d0d0a
7370: 30 22 3e 4e 6f 64 65 54 6f 3c 2f 74 68 3e 3c 74  0">NodeTo</th><t
7380: 68 20 62 67 63 6f 6c 6f 72 3d 22 23 64 30 64 30  h bgcolor="#d0d0
7390: 61 30 22 3e 50 6f 69 6e 74 46 72 6f 6d 3c 2f 74  a0">PointFrom</t
73a0: 68 3e 3c 74 68 20 62 67 63 6f 6c 6f 72 3d 22 23  h><th bgcolor="#
73b0: 64 30 64 30 61 30 22 3e 50 6f 69 6e 74 54 6f 3c  d0d0a0">PointTo<
73c0: 2f 74 68 3e 3c 74 68 20 62 67 63 6f 6c 6f 72 3d  /th><th bgcolor=
73d0: 22 23 64 30 64 30 61 30 22 3e 54 6f 6c 65 72 61  "#d0d0a0">Tolera
73e0: 6e 63 65 3c 2f 74 68 3e 3c 74 68 20 62 67 63 6f  nce</th><th bgco
73f0: 6c 6f 72 3d 22 23 64 30 64 30 61 30 22 3e 43 6f  lor="#d0d0a0">Co
7400: 73 74 3c 2f 74 68 3e 3c 74 68 20 62 67 63 6f 6c  st</th><th bgcol
7410: 6f 72 3d 22 23 64 30 64 30 61 30 22 3e 47 65 6f  or="#d0d0a0">Geo
7420: 6d 65 74 72 79 3c 2f 74 68 3e 3c 74 68 20 62 67  metry</th><th bg
7430: 63 6f 6c 6f 72 3d 22 23 64 30 64 30 61 30 22 3e  color="#d0d0a0">
7440: 4e 61 6d 65 3c 2f 74 68 3e 3c 2f 74 72 3e 0d 0a  Name</th></tr>..
7450: 3c 74 72 3e 0d 0a 3c 74 64 3e 44 69 6a 6b 73 74  <tr>..<td>Dijkst
7460: 72 61 3c 2f 74 64 3e 3c 74 64 3e 53 68 6f 72 74  ra</td><td>Short
7470: 65 73 74 20 50 61 74 68 3c 2f 74 64 3e 3c 74 64  est Path</td><td
7480: 3e 46 75 6c 6c 3c 2f 74 64 3e 3c 74 64 3e 2c 20  >Full</td><td>, 
7490: 26 23 39 31 3b 64 65 63 3d 34 34 2c 20 68 65 78  &#91;dec=44, hex
74a0: 3d 32 63 26 23 39 33 3b 3c 2f 74 64 3e 3c 74 64  =2c&#93;</td><td
74b0: 20 61 6c 69 67 6e 3d 22 72 69 67 68 74 22 3e 30   align="right">0
74c0: 3c 2f 74 64 3e 3c 74 64 20 61 6c 69 67 6e 3d 22  </td><td align="
74d0: 72 69 67 68 74 22 3e 30 3c 2f 74 64 3e 3c 74 64  right">0</td><td
74e0: 3e 52 6f 75 74 65 3c 2f 74 64 3e 3c 74 64 3e 4e  >Route</td><td>N
74f0: 55 4c 4c 3c 2f 74 64 3e 3c 74 64 20 61 6c 69 67  ULL</td><td alig
7500: 6e 3d 22 72 69 67 68 74 22 3e 31 37 38 37 33 31  n="right">178731
7510: 3c 2f 74 64 3e 3c 74 64 20 61 6c 69 67 6e 3d 22  </td><td align="
7520: 72 69 67 68 74 22 3e 31 38 33 32 38 36 3c 2f 74  right">183286</t
7530: 64 3e 3c 74 64 3e 4e 55 4c 4c 3c 2f 74 64 3e 3c  d><td>NULL</td><
7540: 74 64 3e 4e 55 4c 4c 3c 2f 74 64 3e 3c 74 64 3e  td>NULL</td><td>
7550: 4e 55 4c 4c 3c 2f 74 64 3e 3c 74 64 20 61 6c 69  NULL</td><td ali
7560: 67 6e 3d 22 72 69 67 68 74 22 3e 33 30 30 2e 39  gn="right">300.9
7570: 31 32 32 30 38 3c 2f 74 64 3e 3c 74 64 3e 42 4c  12208</td><td>BL
7580: 4f 42 20 73 7a 3d 32 37 32 20 47 45 4f 4d 45 54  OB sz=272 GEOMET
7590: 52 59 3c 2f 74 64 3e 3c 74 64 3e 4e 55 4c 4c 3c  RY</td><td>NULL<
75a0: 2f 74 64 3e 0d 0a 3c 2f 74 72 3e 0d 0a 3c 74 72  /td>..</tr>..<tr
75b0: 3e 0d 0a 3c 74 64 3e 4e 55 4c 4c 3c 2f 74 64 3e  >..<td>NULL</td>
75c0: 3c 74 64 3e 4e 55 4c 4c 3c 2f 74 64 3e 3c 74 64  <td>NULL</td><td
75d0: 3e 4e 55 4c 4c 3c 2f 74 64 3e 3c 74 64 3e 4e 55  >NULL</td><td>NU
75e0: 4c 4c 3c 2f 74 64 3e 3c 74 64 20 61 6c 69 67 6e  LL</td><td align
75f0: 3d 22 72 69 67 68 74 22 3e 30 3c 2f 74 64 3e 3c  ="right">0</td><
7600: 74 64 20 61 6c 69 67 6e 3d 22 72 69 67 68 74 22  td align="right"
7610: 3e 31 3c 2f 74 64 3e 3c 74 64 3e 4c 69 6e 6b 3c  >1</td><td>Link<
7620: 2f 74 64 3e 3c 74 64 20 61 6c 69 67 6e 3d 22 72  /td><td align="r
7630: 69 67 68 74 22 3e 32 32 34 30 31 34 3c 2f 74 64  ight">224014</td
7640: 3e 3c 74 64 20 61 6c 69 67 6e 3d 22 72 69 67 68  ><td align="righ
7650: 74 22 3e 31 37 38 37 33 31 3c 2f 74 64 3e 3c 74  t">178731</td><t
7660: 64 20 61 6c 69 67 6e 3d 22 72 69 67 68 74 22 3e  d align="right">
7670: 31 38 32 38 38 35 3c 2f 74 64 3e 3c 74 64 3e 4e  182885</td><td>N
7680: 55 4c 4c 3c 2f 74 64 3e 3c 74 64 3e 4e 55 4c 4c  ULL</td><td>NULL
7690: 3c 2f 74 64 3e 3c 74 64 3e 4e 55 4c 4c 3c 2f 74  </td><td>NULL</t
76a0: 64 3e 3c 74 64 20 61 6c 69 67 6e 3d 22 72 69 67  d><td align="rig
76b0: 68 74 22 3e 39 34 2e 38 31 32 34 32 34 3c 2f 74  ht">94.812424</t
76c0: 64 3e 3c 74 64 3e 4e 55 4c 4c 3c 2f 74 64 3e 3c  d><td>NULL</td><
76d0: 74 64 3e 56 49 41 20 50 49 45 54 52 4f 20 41 52  td>VIA PIETRO AR
76e0: 45 54 49 4e 4f 3c 2f 74 64 3e 0d 0a 3c 2f 74 72  ETINO</td>..</tr
76f0: 3e 0d 0a 3c 74 72 3e 0d 0a 3c 74 64 3e 4e 55 4c  >..<tr>..<td>NUL
7700: 4c 3c 2f 74 64 3e 3c 74 64 3e 4e 55 4c 4c 3c 2f  L</td><td>NULL</
7710: 74 64 3e 3c 74 64 3e 4e 55 4c 4c 3c 2f 74 64 3e  td><td>NULL</td>
7720: 3c 74 64 3e 4e 55 4c 4c 3c 2f 74 64 3e 3c 74 64  <td>NULL</td><td
7730: 20 61 6c 69 67 6e 3d 22 72 69 67 68 74 22 3e 30   align="right">0
7740: 3c 2f 74 64 3e 3c 74 64 20 61 6c 69 67 6e 3d 22  </td><td align="
7750: 72 69 67 68 74 22 3e 32 3c 2f 74 64 3e 3c 74 64  right">2</td><td
7760: 3e 4c 69 6e 6b 3c 2f 74 64 3e 3c 74 64 20 61 6c  >Link</td><td al
7770: 69 67 6e 3d 22 72 69 67 68 74 22 3e 32 32 34 34  ign="right">2244
7780: 34 36 3c 2f 74 64 3e 3c 74 64 20 61 6c 69 67 6e  46</td><td align
7790: 3d 22 72 69 67 68 74 22 3e 31 38 32 38 38 35 3c  ="right">182885<
77a0: 2f 74 64 3e 3c 74 64 20 61 6c 69 67 6e 3d 22 72  /td><td align="r
77b0: 69 67 68 74 22 3e 31 37 38 38 38 30 3c 2f 74 64  ight">178880</td
77c0: 3e 3c 74 64 3e 4e 55 4c 4c 3c 2f 74 64 3e 3c 74  ><td>NULL</td><t
77d0: 64 3e 4e 55 4c 4c 3c 2f 74 64 3e 3c 74 64 3e 4e  d>NULL</td><td>N
77e0: 55 4c 4c 3c 2f 74 64 3e 3c 74 64 20 61 6c 69 67  ULL</td><td alig
77f0: 6e 3d 22 72 69 67 68 74 22 3e 36 39 2e 37 32 37  n="right">69.727
7800: 37 32 36 3c 2f 74 64 3e 3c 74 64 3e 4e 55 4c 4c  726</td><td>NULL
7810: 3c 2f 74 64 3e 3c 74 64 3e 56 49 41 20 4d 41 52  </td><td>VIA MAR
7820: 47 41 52 49 54 4f 4e 45 3c 2f 74 64 3e 0d 0a 3c  GARITONE</td>..<
7830: 2f 74 72 3e 0d 0a 3c 74 72 3e 0d 0a 3c 74 64 3e  /tr>..<tr>..<td>
7840: 4e 55 4c 4c 3c 2f 74 64 3e 3c 74 64 3e 4e 55 4c  NULL</td><td>NUL
7850: 4c 3c 2f 74 64 3e 3c 74 64 3e 4e 55 4c 4c 3c 2f  L</td><td>NULL</
7860: 74 64 3e 3c 74 64 3e 4e 55 4c 4c 3c 2f 74 64 3e  td><td>NULL</td>
7870: 3c 74 64 20 61 6c 69 67 6e 3d 22 72 69 67 68 74  <td align="right
7880: 22 3e 30 3c 2f 74 64 3e 3c 74 64 20 61 6c 69 67  ">0</td><td alig
7890: 6e 3d 22 72 69 67 68 74 22 3e 33 3c 2f 74 64 3e  n="right">3</td>
78a0: 3c 74 64 3e 4c 69 6e 6b 3c 2f 74 64 3e 3c 74 64  <td>Link</td><td
78b0: 20 61 6c 69 67 6e 3d 22 72 69 67 68 74 22 3e 32   align="right">2
78c0: 32 34 34 31 34 3c 2f 74 64 3e 3c 74 64 20 61 6c  24414</td><td al
78d0: 69 67 6e 3d 22 72 69 67 68 74 22 3e 31 37 38 38  ign="right">1788
78e0: 38 30 3c 2f 74 64 3e 3c 74 64 20 61 6c 69 67 6e  80</td><td align
78f0: 3d 22 72 69 67 68 74 22 3e 31 38 33 32 38 36 3c  ="right">183286<
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 4e 55 4c 4c 3c 2f 74 64 3e 3c 74  ><td>NULL</td><t
7920: 64 3e 4e 55 4c 4c 3c 2f 74 64 3e 3c 74 64 20 61  d>NULL</td><td a
7930: 6c 69 67 6e 3d 22 72 69 67 68 74 22 3e 31 33 36  lign="right">136
7940: 2e 33 37 32 30 35 37 3c 2f 74 64 3e 3c 74 64 3e  .372057</td><td>
7950: 4e 55 4c 4c 3c 2f 74 64 3e 3c 74 64 3e 56 49 41  NULL</td><td>VIA
7960: 20 4d 41 52 47 41 52 49 54 4f 4e 45 3c 2f 74 64   MARGARITONE</td
7970: 3e 0d 0a 3c 2f 74 72 3e 0d 0a 3c 2f 74 61 62 6c  >..</tr>..</tabl
7980: 65 3e 0d 0a 3c 62 72 3e 0d 0a 4c 65 74 27 73 20  e>..<br>..Let's 
7990: 71 75 69 63 6b 6c 79 20 65 78 61 6d 69 6e 65 20  quickly examine 
79a0: 74 68 65 20 72 65 73 75 6c 74 73 65 74 20 72 65  the resultset re
79b0: 74 75 72 6e 65 64 20 62 79 20 74 68 65 20 61 62  turned by the ab
79c0: 6f 76 65 20 52 6f 75 74 69 6e 67 20 71 75 65 72  ove Routing quer
79d0: 79 3a 0d 0a 3c 75 6c 3e 0d 0a 3c 6c 69 3e 74 68  y:..<ul>..<li>th
79e0: 65 20 3c 62 3e 66 69 72 73 74 20 72 6f 77 3c 2f  e <b>first row</
79f0: 62 3e 20 28 3c 69 3e 61 6b 61 3c 2f 69 3e 20 68  b> (<i>aka</i> h
7a00: 65 61 64 65 72 20 72 6f 77 29 20 68 61 73 20 61  eader row) has a
7a10: 20 73 70 65 63 69 61 6c 20 69 6e 74 65 72 70 72   special interpr
7a20: 65 74 61 74 69 6f 6e 2c 20 61 6e 64 20 69 73 20  etation, and is 
7a30: 69 6e 74 65 6e 64 65 64 20 74 6f 20 73 75 6d 6d  intended to summ
7a40: 61 72 69 7a 65 20 74 68 65 20 74 72 61 76 65 6c  arize the travel
7a50: 20 73 6f 6c 75 74 69 6f 6e 20 61 73 20 61 20 77   solution as a w
7a60: 68 6f 6c 65 2e 3c 2f 6c 69 3e 0d 0a 3c 6c 69 3e  hole.</li>..<li>
7a70: 61 6c 6c 20 74 68 65 20 3c 62 3e 66 6f 6c 6c 6f  all the <b>follo
7a80: 77 69 6e 67 20 72 6f 77 73 3c 2f 62 3e 20 72 65  wing rows</b> re
7a90: 70 72 65 73 65 6e 74 20 61 20 73 69 6e 67 6c 65  present a single
7aa0: 20 4c 69 6e 6b 20 72 65 71 75 69 72 65 64 20 74   Link required t
7ab0: 6f 20 62 75 69 6c 64 20 74 68 65 20 73 6f 6c 75  o build the solu
7ac0: 74 69 6f 6e 20 28 6f 70 74 69 6d 61 20 70 61 74  tion (optima pat
7ad0: 68 29 3b 20 4c 69 6e 6b 73 20 61 72 65 20 6f 72  h); Links are or
7ae0: 64 65 72 65 64 20 61 63 63 6f 72 64 69 6e 67 6c  dered accordingl
7af0: 79 20 74 6f 20 74 68 65 20 74 72 61 76 65 6c 20  y to the travel 
7b00: 64 69 72 65 63 74 69 6f 6e 20 63 6f 6e 6e 65 63  direction connec
7b10: 74 69 6e 67 20 74 68 65 20 4f 72 69 67 69 6e 20  ting the Origin 
7b20: 61 6e 64 20 74 68 65 20 44 65 73 74 69 6e 61 74  and the Destinat
7b30: 69 6f 6e 2e 3c 2f 6c 69 3e 0d 0a 3c 6c 69 3e 63  ion.</li>..<li>c
7b40: 6f 6c 75 6d 6e 73 20 3c 62 3e 41 6c 67 6f 72 69  olumns <b>Algori
7b50: 74 68 6d 3c 2f 62 3e 2c 20 3c 62 3e 52 65 71 75  thm</b>, <b>Requ
7b60: 65 73 74 3c 2f 62 3e 2c 20 3c 62 3e 4f 70 74 69  est</b>, <b>Opti
7b70: 6f 6e 73 3c 2f 62 3e 2c 20 3c 62 3e 44 65 6c 69  ons</b>, <b>Deli
7b80: 6d 69 74 65 72 3c 2f 62 3e 2c 20 3c 62 3e 50 6f  miter</b>, <b>Po
7b90: 69 6e 74 46 72 6f 6d 3c 2f 62 3e 2c 20 3c 62 3e  intFrom</b>, <b>
7ba0: 50 6f 69 6e 74 54 6f 3c 2f 62 3e 2c 20 3c 62 3e  PointTo</b>, <b>
7bb0: 54 6f 6c 65 72 61 6e 63 65 3c 2f 62 3e 20 61 6e  Tolerance</b> an
7bc0: 64 20 3c 62 3e 47 65 6f 6d 65 74 72 79 3c 2f 62  d <b>Geometry</b
7bd0: 3e 20 61 72 65 20 61 6c 77 61 79 73 20 73 65 74  > are always set
7be0: 20 74 6f 20 3c 62 3e 4e 55 4c 4c 3c 2f 62 3e 20   to <b>NULL</b> 
7bf0: 65 78 63 65 70 74 20 74 68 61 74 20 69 6e 20 74  except that in t
7c00: 68 65 20 66 69 72 73 74 20 72 6f 77 20 6f 66 20  he first row of 
7c10: 74 68 65 20 72 65 73 75 6c 74 73 65 74 3a 0d 0a  the resultset:..
7c20: 3c 75 6c 3e 0d 0a 3c 6c 69 3e 63 6f 6c 75 6d 6e  <ul>..<li>column
7c30: 20 3c 62 3e 41 6c 67 6f 72 69 74 68 6d 3c 2f 62   <b>Algorithm</b
7c40: 3e 20 61 63 63 6f 75 6e 74 73 20 66 6f 72 20 74  > accounts for t
7c50: 68 65 20 52 6f 75 74 69 6e 67 20 41 6c 67 6f 72  he Routing Algor
7c60: 69 74 68 6d 20 75 73 65 64 20 62 79 20 74 68 65  ithm used by the
7c70: 20 63 75 72 72 65 6e 74 20 71 75 65 72 79 20 28   current query (
7c80: 3c 69 3e 44 69 6a 6b 73 74 72 61 27 73 3c 2f 69  <i>Dijkstra's</i
7c90: 3e 20 6f 72 20 3c 69 3e 41 2a 3c 2f 69 3e 29 2e  > or <i>A*</i>).
7ca0: 3c 2f 6c 69 3e 0d 0a 3c 6c 69 3e 63 6f 6c 75 6d  </li>..<li>colum
7cb0: 6e 20 3c 62 3e 52 65 71 75 65 73 74 3c 2f 62 3e  n <b>Request</b>
7cc0: 20 73 70 65 63 69 66 69 65 73 20 74 68 65 20 65   specifies the e
7cd0: 78 61 63 74 20 6e 61 74 75 72 65 20 6f 66 20 74  xact nature of t
7ce0: 68 65 20 63 75 72 72 65 6e 74 20 71 75 65 72 79  he current query
7cf0: 20 28 69 6e 20 74 68 69 73 20 73 70 65 63 69 66   (in this specif
7d00: 69 63 20 63 61 73 65 20 3c 69 3e 53 68 6f 72 74  ic case <i>Short
7d10: 65 73 74 20 50 61 74 68 3c 2f 69 3e 29 2e 3c 2f  est Path</i>).</
7d20: 6c 69 3e 0d 0a 3c 6c 69 3e 77 65 27 6c 6c 20 69  li>..<li>we'll i
7d30: 67 6e 6f 72 65 20 66 6f 72 20 6e 6f 77 20 63 6f  gnore for now co
7d40: 6c 75 6d 6e 73 20 3c 62 3e 4f 70 74 69 6f 6e 73  lumns <b>Options
7d50: 3c 2f 62 3e 2c 20 3c 62 3e 44 65 6c 69 6d 69 74  </b>, <b>Delimit
7d60: 65 72 3c 2f 62 3e 2c 20 3c 62 3e 50 6f 69 6e 74  er</b>, <b>Point
7d70: 46 72 6f 6d 3c 2f 62 3e 2c 20 3c 62 3e 50 6f 69  From</b>, <b>Poi
7d80: 6e 74 54 6f 3c 2f 62 3e 20 61 6e 64 20 3c 62 3e  ntTo</b> and <b>
7d90: 54 6f 6c 65 72 61 6e 63 65 3c 2f 62 3e 3a 20 74  Tolerance</b>: t
7da0: 68 65 69 72 20 72 65 73 70 65 63 74 69 76 65 20  heir respective 
7db0: 6d 65 61 6e 69 6e 67 73 20 77 69 6c 6c 20 62 65  meanings will be
7dc0: 20 65 78 70 6c 61 69 6e 65 64 20 69 6e 20 66 6f   explained in fo
7dd0: 6c 6c 6f 77 69 6e 67 20 70 61 72 61 67 72 61 70  llowing paragrap
7de0: 68 73 2e 3c 2f 6c 69 3e 0d 0a 3c 6c 69 3e 63 6f  hs.</li>..<li>co
7df0: 6c 75 6d 6e 20 3c 62 3e 47 65 6f 6d 65 74 72 79  lumn <b>Geometry
7e00: 3c 2f 62 3e 20 63 6f 6e 74 61 69 6e 73 20 61 20  </b> contains a 
7e10: 3c 62 3e 4c 49 4e 45 53 54 52 49 4e 47 3c 2f 62  <b>LINESTRING</b
7e20: 3e 20 72 65 70 72 65 73 65 6e 74 61 74 69 6f 6e  > representation
7e30: 20 6f 66 20 74 68 65 20 77 68 6f 6c 65 20 74 72   of the whole tr
7e40: 61 76 65 6c 20 73 6f 6c 75 74 69 6f 6e 2e 3c 62  avel solution.<b
7e50: 72 3e 0d 0a 3c 75 3e 4e 6f 74 65 3c 2f 75 3e 3a  r>..<u>Note</u>:
7e60: 20 6f 6e 20 3c 62 3e 4c 6f 67 69 63 61 6c 20 4e   on <b>Logical N
7e70: 65 74 77 6f 72 6b 73 3c 2f 62 3e 20 28 6e 6f 74  etworks</b> (not
7e80: 20 73 75 70 70 6f 72 74 69 6e 67 20 47 65 6f 6d   supporting Geom
7e90: 65 74 72 69 65 73 29 20 3c 62 3e 47 65 6f 6d 65  etries) <b>Geome
7ea0: 74 72 79 3c 2f 62 3e 20 77 69 6c 6c 20 61 6c 77  try</b> will alw
7eb0: 61 79 73 20 62 65 20 3c 62 3e 4e 55 4c 4c 3c 2f  ays be <b>NULL</
7ec0: 62 3e 2e 3c 2f 6c 69 3e 0d 0a 3c 2f 75 6c 3e 3c  b>.</li>..</ul><
7ed0: 2f 6c 69 3e 0d 0a 3c 6c 69 3e 77 65 27 6c 6c 20  /li>..<li>we'll 
7ee0: 69 67 6e 6f 72 65 20 66 6f 72 20 6e 6f 77 20 63  ignore for now c
7ef0: 6f 6c 75 6d 6e 20 3c 62 3e 52 6f 75 74 65 49 64  olumn <b>RouteId
7f00: 3c 2f 62 3e 3b 20 69 74 73 20 6d 65 61 6e 69 6e  </b>; its meanin
7f10: 67 20 77 69 6c 6c 20 62 65 20 65 78 70 6c 61 69  g will be explai
7f20: 6e 65 64 20 69 6e 20 66 6f 6c 6c 6f 77 69 6e 67  ned in following
7f30: 20 70 61 72 61 67 72 61 70 68 73 2e 3c 2f 6c 69   paragraphs.</li
7f40: 3e 0d 0a 3c 6c 69 3e 63 6f 6c 75 6d 6e 20 3c 62  >..<li>column <b
7f50: 3e 52 6f 75 74 65 52 6f 77 3c 2f 62 3e 20 73 69  >RouteRow</b> si
7f60: 6d 70 6c 79 20 69 73 20 74 68 65 20 70 72 6f 67  mply is the prog
7f70: 72 65 73 73 69 76 65 20 6e 75 6d 62 65 72 20 6f  ressive number o
7f80: 66 20 74 68 65 20 72 6f 77 20 69 6e 20 74 68 65  f the row in the
7f90: 20 74 72 61 76 65 6c 20 73 6f 6c 75 74 69 6f 6e   travel solution
7fa0: 20 28 61 6c 77 61 79 73 20 3c 62 3e 30 3c 2f 62   (always <b>0</b
7fb0: 3e 20 69 6e 20 74 68 65 20 68 65 61 64 65 72 20  > in the header 
7fc0: 72 6f 77 29 2e 3c 2f 6c 69 3e 0d 0a 3c 6c 69 3e  row).</li>..<li>
7fd0: 63 6f 6c 75 6d 6e 20 3c 62 3e 52 6f 6c 65 3c 2f  column <b>Role</
7fe0: 62 3e 20 63 61 6e 20 62 65 20 3c 69 3e 52 6f 75  b> can be <i>Rou
7ff0: 74 65 3c 2f 69 3e 20 28 68 65 61 64 65 72 20 72  te</i> (header r
8000: 6f 77 29 20 6f 72 20 3c 69 3e 4c 69 6e 6b 3c 2f  ow) or <i>Link</
8010: 69 3e 20 28 61 6c 6c 20 66 6f 6c 6c 6f 77 69 6e  i> (all followin
8020: 67 20 72 6f 77 73 29 2e 3c 2f 6c 69 3e 0d 0a 3c  g rows).</li>..<
8030: 6c 69 3e 63 6f 6c 75 6d 6e 20 3c 62 3e 4c 69 6e  li>column <b>Lin
8040: 6b 52 6f 77 69 64 3c 2f 62 3e 20 72 65 66 65 72  kRowid</b> refer
8050: 65 6e 63 65 73 20 74 68 65 20 3c 62 3e 52 4f 57  ences the <b>ROW
8060: 49 44 3c 2f 62 3e 20 6f 66 20 74 68 65 20 63 6f  ID</b> of the co
8070: 72 72 65 73 70 6f 6e 64 69 6e 67 20 4c 69 6e 6b  rresponding Link
8080: 20 28 61 6c 77 61 79 73 20 73 65 74 20 74 6f 20   (always set to 
8090: 3c 62 3e 4e 55 4c 4c 3c 2f 62 3e 20 69 6e 20 74  <b>NULL</b> in t
80a0: 68 65 20 68 65 61 64 65 72 20 72 6f 77 29 2e 3c  he header row).<
80b0: 2f 6c 69 3e 0d 0a 3c 6c 69 3e 63 6f 6c 75 6d 6e  /li>..<li>column
80c0: 20 3c 62 3e 4e 6f 64 65 46 72 6f 6d 3c 2f 62 3e   <b>NodeFrom</b>
80d0: 20 61 6e 64 20 3c 62 3e 4e 6f 64 65 54 6f 3c 2f   and <b>NodeTo</
80e0: 62 3e 20 68 61 76 65 20 74 68 65 20 66 6f 6c 6c  b> have the foll
80f0: 6f 77 69 6e 67 20 69 6e 74 65 72 70 72 65 74 61  owing interpreta
8100: 74 69 6f 6e 3a 0d 0a 3c 75 6c 3e 0d 0a 3c 6c 69  tion:..<ul>..<li
8110: 3e 69 6e 20 74 68 65 20 68 65 61 64 65 72 20 72  >in the header r
8120: 6f 77 20 74 68 65 79 20 63 6f 72 72 65 73 70 6f  ow they correspo
8130: 6e 64 20 74 6f 20 68 65 20 3c 62 3e 4f 72 69 67  nd to he <b>Orig
8140: 69 6e 3c 2f 62 3e 20 61 6e 64 20 3c 62 3e 44 65  in</b> and <b>De
8150: 73 74 69 6e 61 74 69 6f 6e 3c 2f 62 3e 20 4e 6f  stination</b> No
8160: 64 65 73 2e 3c 2f 6c 69 3e 0d 0a 3c 6c 69 3e 69  des.</li>..<li>i
8170: 6e 20 61 6c 6c 20 74 68 65 20 66 6f 6c 6c 6f 77  n all the follow
8180: 69 6e 67 20 72 6f 77 73 20 74 68 65 79 20 61 72  ing rows they ar
8190: 65 20 69 6e 74 65 6e 64 65 64 20 74 6f 20 73 70  e intended to sp
81a0: 65 63 69 66 79 20 74 68 65 20 64 69 72 65 63 74  ecify the direct
81b0: 69 6f 6e 20 6f 66 20 74 68 65 20 63 75 72 72 65  ion of the curre
81c0: 6e 74 20 4c 69 6e 6b 2e 3c 2f 6c 69 3e 0d 0a 3c  nt Link.</li>..<
81d0: 2f 75 6c 3e 3c 2f 6c 69 3e 0d 0a 3c 6c 69 3e 63  /ul></li>..<li>c
81e0: 6f 6c 75 6d 6e 20 3c 62 3e 43 6f 73 74 3c 2f 62  olumn <b>Cost</b
81f0: 3e 20 68 61 73 20 74 68 65 20 66 6f 6c 6c 6f 77  > has the follow
8200: 69 6e 67 20 69 6e 74 65 72 70 72 65 74 61 74 69  ing interpretati
8210: 6f 6e 3a 0d 0a 3c 75 6c 3e 0d 0a 3c 6c 69 3e 69  on:..<ul>..<li>i
8220: 6e 20 74 68 65 20 68 65 61 64 65 72 20 74 6f 77  n the header tow
8230: 20 69 74 20 63 6f 72 72 65 73 70 6f 6e 64 73 20   it corresponds 
8240: 74 6f 20 74 68 65 20 3c 62 3e 74 6f 74 61 6c 20  to the <b>total 
8250: 63 6f 73 74 3c 2f 62 3e 20 6f 66 20 74 68 65 20  cost</b> of the 
8260: 74 72 61 76 65 6c 2e 3c 2f 6c 69 3e 0d 0a 3c 6c  travel.</li>..<l
8270: 69 3e 69 6e 20 61 6c 6c 20 74 68 65 20 66 6f 6c  i>in all the fol
8280: 6c 6f 77 69 6e 67 20 72 6f 77 73 20 69 74 20 72  lowing rows it r
8290: 65 70 72 65 73 65 6e 74 73 20 74 68 65 20 73 70  epresents the sp
82a0: 65 63 69 66 69 63 20 63 6f 73 74 20 6f 66 20 74  ecific cost of t
82b0: 68 65 20 63 75 72 72 65 6e 74 20 4c 69 6e 6b 2e  he current Link.
82c0: 3c 2f 6c 69 3e 0d 0a 3c 2f 75 6c 3e 3c 2f 6c 69  </li>..</ul></li
82d0: 3e 0d 0a 3c 6c 69 3e 63 6f 6c 75 6d 6e 20 3c 62  >..<li>column <b
82e0: 3e 4e 61 6d 65 3c 2f 62 3e 20 63 6f 6e 74 61 69  >Name</b> contai
82f0: 6e 73 20 74 68 65 20 64 65 73 63 72 69 70 74 69  ns the descripti
8300: 6f 6e 20 6f 66 20 74 68 65 20 63 75 72 72 65 6e  on of the curren
8310: 74 20 4c 69 6e 6b 20 28 75 73 75 61 6c 6c 79 20  t Link (usually 
8320: 61 20 72 6f 61 64 20 6e 61 6d 65 29 2c 20 61 6e  a road name), an
8330: 64 20 69 73 20 61 6c 77 61 79 73 20 3c 62 3e 4e  d is always <b>N
8340: 55 4c 4c 3c 2f 62 3e 20 69 6e 20 74 68 65 20 68  ULL</b> in the h
8350: 65 61 64 65 72 20 72 6f 77 2e 3c 62 72 3e 0d 0a  eader row.<br>..
8360: 3c 75 3e 4e 6f 74 65 3c 2f 75 3e 20 69 74 20 63  <u>Note</u> it c
8370: 6f 75 6c 64 20 62 65 20 61 6c 77 61 79 73 20 62  ould be always b
8380: 65 20 3c 62 3e 4e 55 4c 4c 3c 2f 62 3e 20 69 66  e <b>NULL</b> if
8390: 20 74 68 65 20 56 69 72 74 75 61 6c 52 6f 75 74   the VirtualRout
83a0: 69 6e 67 20 54 61 62 6c 65 20 64 6f 65 73 20 6e  ing Table does n
83b0: 6f 74 20 73 75 70 70 6f 72 74 73 20 6e 61 6d 65  ot supports name
83c0: 73 2e 3c 2f 6c 69 3e 0d 0a 3c 2f 75 6c 3e 3c 2f  s.</li>..</ul></
83d0: 6c 69 3e 0d 0a 3c 2f 75 6c 3e 0d 0a 3c 62 72 3e  li>..</ul>..<br>
83e0: 3c 62 72 3e 0d 0a 54 65 73 74 69 6e 67 20 74 68  <br>..Testing th
83f0: 65 20 72 65 74 75 72 6e 20 63 6f 6e 6e 65 63 74  e return connect
8400: 69 6f 6e 20 6a 75 73 74 20 72 65 71 75 69 72 65  ion just require
8410: 73 20 73 77 61 70 70 69 6e 67 20 74 68 65 20 4f  s swapping the O
8420: 72 69 67 69 6e 20 61 6e 64 20 74 68 65 20 44 65  rigin and the De
8430: 73 74 69 6e 61 74 69 6f 6e 3b 20 69 6e 20 74 68  stination; in th
8440: 69 73 20 65 78 61 6d 70 6c 65 20 79 6f 75 27 6c  is example you'l
8450: 6c 20 6a 75 73 74 20 72 65 71 75 65 73 74 20 74  l just request t
8460: 68 65 20 6d 65 61 6e 69 6e 67 66 75 6c 20 63 6f  he meaningful co
8470: 6c 75 6d 6e 73 3a 0d 0a 3c 76 65 72 62 61 74 69  lumns:..<verbati
8480: 6d 3e 0d 0a 53 45 4c 45 43 54 20 52 6f 75 74 65  m>..SELECT Route
8490: 52 6f 77 2c 20 52 6f 6c 65 2c 20 4c 69 6e 6b 52  Row, Role, LinkR
84a0: 6f 77 69 64 2c 20 4e 6f 64 65 46 72 6f 6d 2c 20  owid, NodeFrom, 
84b0: 4e 6f 64 65 54 6f 2c 20 43 6f 73 74 2c 20 47 65  NodeTo, Cost, Ge
84c0: 6f 6d 65 74 72 79 2c 20 4e 61 6d 65 0d 0a 46 52  ometry, Name..FR
84d0: 4f 4d 20 62 79 66 6f 6f 74 0d 0a 57 48 45 52 45  OM byfoot..WHERE
84e0: 20 4e 6f 64 65 54 6f 20 3d 20 31 37 38 37 33 31   NodeTo = 178731
84f0: 20 41 4e 44 20 4e 6f 64 65 46 72 6f 6d 20 3d 20   AND NodeFrom = 
8500: 31 38 33 32 38 36 3b 0d 0a 3c 2f 76 65 72 62 61  183286;..</verba
8510: 74 69 6d 3e 0d 0a 3c 74 61 62 6c 65 20 62 6f 72  tim>..<table bor
8520: 64 65 72 3d 22 31 22 20 62 67 63 6f 6c 6f 72 3d  der="1" bgcolor=
8530: 22 23 66 66 66 66 63 66 22 20 63 65 6c 6c 73 70  "#ffffcf" cellsp
8540: 61 63 69 6e 67 3d 22 34 22 20 63 65 6c 6c 70 61  acing="4" cellpa
8550: 64 64 69 6e 67 3d 22 36 22 3e 0d 0a 3c 74 72 3e  dding="6">..<tr>
8560: 3c 74 68 20 62 67 63 6f 6c 6f 72 3d 22 23 64 30  <th bgcolor="#d0
8570: 64 30 61 30 22 3e 52 6f 75 74 65 52 6f 77 3c 2f  d0a0">RouteRow</
8580: 74 68 3e 3c 74 68 20 62 67 63 6f 6c 6f 72 3d 22  th><th bgcolor="
8590: 23 64 30 64 30 61 30 22 3e 52 6f 6c 65 3c 2f 74  #d0d0a0">Role</t
85a0: 68 3e 3c 74 68 20 62 67 63 6f 6c 6f 72 3d 22 23  h><th bgcolor="#
85b0: 64 30 64 30 61 30 22 3e 4c 69 6e 6b 52 6f 77 69  d0d0a0">LinkRowi
85c0: 64 3c 2f 74 68 3e 3c 74 68 20 62 67 63 6f 6c 6f  d</th><th bgcolo
85d0: 72 3d 22 23 64 30 64 30 61 30 22 3e 4e 6f 64 65  r="#d0d0a0">Node
85e0: 46 72 6f 6d 3c 2f 74 68 3e 3c 74 68 20 62 67 63  From</th><th bgc
85f0: 6f 6c 6f 72 3d 22 23 64 30 64 30 61 30 22 3e 4e  olor="#d0d0a0">N
8600: 6f 64 65 54 6f 3c 2f 74 68 3e 3c 74 68 20 62 67  odeTo</th><th bg
8610: 63 6f 6c 6f 72 3d 22 23 64 30 64 30 61 30 22 3e  color="#d0d0a0">
8620: 43 6f 73 74 3c 2f 74 68 3e 3c 74 68 20 62 67 63  Cost</th><th bgc
8630: 6f 6c 6f 72 3d 22 23 64 30 64 30 61 30 22 3e 47  olor="#d0d0a0">G
8640: 65 6f 6d 65 74 72 79 3c 2f 74 68 3e 3c 74 68 20  eometry</th><th 
8650: 62 67 63 6f 6c 6f 72 3d 22 23 64 30 64 30 61 30  bgcolor="#d0d0a0
8660: 22 3e 4e 61 6d 65 3c 2f 74 68 3e 3c 2f 74 72 3e  ">Name</th></tr>
8670: 0d 0a 3c 74 72 3e 0d 0a 3c 74 64 20 61 6c 69 67  ..<tr>..<td alig
8680: 6e 3d 22 72 69 67 68 74 22 3e 30 3c 2f 74 64 3e  n="right">0</td>
8690: 3c 74 64 3e 52 6f 75 74 65 3c 2f 74 64 3e 3c 74  <td>Route</td><t
86a0: 64 3e 4e 55 4c 4c 3c 2f 74 64 3e 3c 74 64 20 61  d>NULL</td><td a
86b0: 6c 69 67 6e 3d 22 72 69 67 68 74 22 3e 31 38 33  lign="right">183
86c0: 32 38 36 3c 2f 74 64 3e 3c 74 64 20 61 6c 69 67  286</td><td alig
86d0: 6e 3d 22 72 69 67 68 74 22 3e 31 37 38 37 33 31  n="right">178731
86e0: 3c 2f 74 64 3e 3c 74 64 20 61 6c 69 67 6e 3d 22  </td><td align="
86f0: 72 69 67 68 74 22 3e 33 30 30 2e 39 31 32 32 30  right">300.91220
8700: 38 3c 2f 74 64 3e 3c 74 64 3e 42 4c 4f 42 20 73  8</td><td>BLOB s
8710: 7a 3d 32 37 32 20 47 45 4f 4d 45 54 52 59 3c 2f  z=272 GEOMETRY</
8720: 74 64 3e 3c 74 64 3e 4e 55 4c 4c 3c 2f 74 64 3e  td><td>NULL</td>
8730: 0d 0a 3c 2f 74 72 3e 0d 0a 3c 74 72 3e 0d 0a 3c  ..</tr>..<tr>..<
8740: 74 64 20 61 6c 69 67 6e 3d 22 72 69 67 68 74 22  td align="right"
8750: 3e 31 3c 2f 74 64 3e 3c 74 64 3e 4c 69 6e 6b 3c  >1</td><td>Link<
8760: 2f 74 64 3e 3c 74 64 20 61 6c 69 67 6e 3d 22 72  /td><td align="r
8770: 69 67 68 74 22 3e 32 32 34 34 31 34 3c 2f 74 64  ight">224414</td
8780: 3e 3c 74 64 20 61 6c 69 67 6e 3d 22 72 69 67 68  ><td align="righ
8790: 74 22 3e 31 38 33 32 38 36 3c 2f 74 64 3e 3c 74  t">183286</td><t
87a0: 64 20 61 6c 69 67 6e 3d 22 72 69 67 68 74 22 3e  d align="right">
87b0: 31 37 38 38 38 30 3c 2f 74 64 3e 3c 74 64 20 61  178880</td><td a
87c0: 6c 69 67 6e 3d 22 72 69 67 68 74 22 3e 31 33 36  lign="right">136
87d0: 2e 33 37 32 30 35 37 3c 2f 74 64 3e 3c 74 64 3e  .372057</td><td>
87e0: 4e 55 4c 4c 3c 2f 74 64 3e 3c 74 64 3e 56 49 41  NULL</td><td>VIA
87f0: 20 4d 41 52 47 41 52 49 54 4f 4e 45 3c 2f 74 64   MARGARITONE</td
8800: 3e 0d 0a 3c 2f 74 72 3e 0d 0a 3c 74 64 20 61 6c  >..</tr>..<td al
8810: 69 67 6e 3d 22 72 69 67 68 74 22 3e 32 3c 2f 74  ign="right">2</t
8820: 64 3e 3c 74 64 3e 4c 69 6e 6b 3c 2f 74 64 3e 3c  d><td>Link</td><
8830: 74 64 20 61 6c 69 67 6e 3d 22 72 69 67 68 74 22  td align="right"
8840: 3e 32 32 34 34 34 36 3c 2f 74 64 3e 3c 74 64 20  >224446</td><td 
8850: 61 6c 69 67 6e 3d 22 72 69 67 68 74 22 3e 31 37  align="right">17
8860: 38 38 38 30 3c 2f 74 64 3e 3c 74 64 20 61 6c 69  8880</td><td ali
8870: 67 6e 3d 22 72 69 67 68 74 22 3e 31 38 32 38 38  gn="right">18288
8880: 35 3c 2f 74 64 3e 3c 74 64 20 61 6c 69 67 6e 3d  5</td><td align=
8890: 22 72 69 67 68 74 22 3e 36 39 2e 37 32 37 37 32  "right">69.72772
88a0: 36 3c 2f 74 64 3e 3c 74 64 3e 4e 55 4c 4c 3c 2f  6</td><td>NULL</
88b0: 74 64 3e 3c 74 64 3e 56 49 41 20 4d 41 52 47 41  td><td>VIA MARGA
88c0: 52 49 54 4f 4e 45 3c 2f 74 64 3e 0d 0a 3c 2f 74  RITONE</td>..</t
88d0: 72 3e 0d 0a 3c 74 72 3e 0d 0a 3c 74 64 20 61 6c  r>..<tr>..<td al
88e0: 69 67 6e 3d 22 72 69 67 68 74 22 3e 33 3c 2f 74  ign="right">3</t
88f0: 64 3e 3c 74 64 3e 4c 69 6e 6b 3c 2f 74 64 3e 3c  d><td>Link</td><
8900: 74 64 20 61 6c 69 67 6e 3d 22 72 69 67 68 74 22  td align="right"
8910: 3e 32 32 34 30 31 34 3c 2f 74 64 3e 3c 74 64 20  >224014</td><td 
8920: 61 6c 69 67 6e 3d 22 72 69 67 68 74 22 3e 31 38  align="right">18
8930: 32 38 38 35 3c 2f 74 64 3e 3c 74 64 20 61 6c 69  2885</td><td ali
8940: 67 6e 3d 22 72 69 67 68 74 22 3e 31 37 38 37 33  gn="right">17873
8950: 31 3c 2f 74 64 3e 3c 74 64 20 61 6c 69 67 6e 3d  1</td><td align=
8960: 22 72 69 67 68 74 22 3e 39 34 2e 38 31 32 34 32  "right">94.81242
8970: 34 3c 2f 74 64 3e 3c 74 64 3e 4e 55 4c 4c 3c 2f  4</td><td>NULL</
8980: 74 64 3e 3c 74 64 3e 56 49 41 20 50 49 45 54 52  td><td>VIA PIETR
8990: 4f 20 41 52 45 54 49 4e 4f 3c 2f 74 64 3e 0d 0a  O ARETINO</td>..
89a0: 3c 2f 74 72 3e 0d 0a 3c 2f 74 61 62 6c 65 3e 0d  </tr>..</table>.
89b0: 0a 3c 62 72 3e 0d 0a 49 66 20 79 6f 75 20 72 65  .<br>..If you re
89c0: 6d 65 6d 62 65 72 2c 20 74 68 65 20 3c 62 3e 62  member, the <b>b
89d0: 79 66 6f 6f 74 3c 2f 62 3e 20 56 69 72 74 75 61  yfoot</b> Virtua
89e0: 6c 52 6f 75 74 69 6e 67 20 54 61 62 6c 65 20 68  lRouting Table h
89f0: 61 73 20 6e 6f 20 3c 62 3e 6f 6e 65 2d 77 61 79  as no <b>one-way
8a00: 73 3c 2f 62 3e 2c 20 61 6e 64 20 63 6f 6e 73 65  s</b>, and conse
8a10: 71 75 65 6e 74 6c 79 20 74 68 65 20 72 65 74 75  quently the retu
8a20: 72 6e 20 70 61 74 68 20 65 78 61 63 74 6c 79 20  rn path exactly 
8a30: 63 6f 72 72 65 73 70 6f 6e 64 73 20 74 6f 20 74  corresponds to t
8a40: 68 65 20 66 69 72 73 74 20 6f 6e 65 2c 20 65 78  he first one, ex
8a50: 63 65 70 74 20 69 6e 20 74 68 61 74 20 61 6c 6c  cept in that all
8a60: 20 64 69 72 65 63 74 69 6f 6e 73 20 61 72 65 20   directions are 
8a70: 6e 6f 77 20 72 65 76 65 72 73 65 64 2e 0d 0a 3c  now reversed...<
8a80: 62 72 3e 3c 62 72 3e 3c 62 72 3e 0d 0a 4e 6f 77  br><br><br>..Now
8a90: 20 79 6f 75 27 6c 6c 20 67 6f 20 74 6f 20 74 65   you'll go to te
8aa0: 73 74 20 74 68 65 20 73 61 6d 65 20 63 6f 6e 6e  st the same conn
8ab0: 65 63 74 69 6f 6e 73 2c 20 62 75 74 20 74 68 69  ections, but thi
8ac0: 73 20 74 69 6d 65 20 79 6f 75 27 6c 6c 20 74 61  s time you'll ta
8ad0: 72 67 65 74 20 74 68 65 20 3c 62 3e 62 79 63 61  rget the <b>byca
8ae0: 72 3c 2f 62 3e 20 56 69 72 74 75 61 6c 52 6f 75  r</b> VirtualRou
8af0: 74 69 6e 67 20 54 61 62 6c 65 20 74 68 61 74 20  ting Table that 
8b00: 66 75 6c 6c 79 20 73 75 70 70 6f 72 74 73 20 3c  fully supports <
8b10: 62 3e 6f 6e 65 2d 77 61 79 73 3c 2f 62 3e 3a 0d  b>one-ways</b>:.
8b20: 0a 3c 76 65 72 62 61 74 69 6d 3e 0d 0a 53 45 4c  .<verbatim>..SEL
8b30: 45 43 54 20 52 6f 75 74 65 52 6f 77 2c 20 52 6f  ECT RouteRow, Ro
8b40: 6c 65 2c 20 4c 69 6e 6b 52 6f 77 69 64 2c 20 4e  le, LinkRowid, N
8b50: 6f 64 65 46 72 6f 6d 2c 20 4e 6f 64 65 54 6f 2c  odeFrom, NodeTo,
8b60: 20 43 6f 73 74 2c 20 47 65 6f 6d 65 74 72 79 2c   Cost, Geometry,
8b70: 20 4e 61 6d 65 0d 0a 46 52 4f 4d 20 62 79 63 61   Name..FROM byca
8b80: 72 0d 0a 57 48 45 52 45 20 4e 6f 64 65 46 72 6f  r..WHERE NodeFro
8b90: 6d 20 3d 20 31 37 38 37 33 31 20 41 4e 44 20 4e  m = 178731 AND N
8ba0: 6f 64 65 54 6f 20 3d 20 31 38 33 32 38 36 3b 0d  odeTo = 183286;.
8bb0: 0a 3c 2f 76 65 72 62 61 74 69 6d 3e 0d 0a 3c 74  .</verbatim>..<t
8bc0: 61 62 6c 65 20 62 6f 72 64 65 72 3d 22 31 22 20  able border="1" 
8bd0: 62 67 63 6f 6c 6f 72 3d 22 23 66 66 66 66 63 66  bgcolor="#ffffcf
8be0: 22 20 63 65 6c 6c 73 70 61 63 69 6e 67 3d 22 34  " cellspacing="4
8bf0: 22 20 63 65 6c 6c 70 61 64 64 69 6e 67 3d 22 36  " cellpadding="6
8c00: 22 3e 0d 0a 3c 74 72 3e 3c 74 68 20 62 67 63 6f  ">..<tr><th bgco
8c10: 6c 6f 72 3d 22 23 64 30 64 30 61 30 22 3e 52 6f  lor="#d0d0a0">Ro
8c20: 75 74 65 52 6f 77 3c 2f 74 68 3e 3c 74 68 20 62  uteRow</th><th b
8c30: 67 63 6f 6c 6f 72 3d 22 23 64 30 64 30 61 30 22  gcolor="#d0d0a0"
8c40: 3e 52 6f 6c 65 3c 2f 74 68 3e 3c 74 68 20 62 67  >Role</th><th bg
8c50: 63 6f 6c 6f 72 3d 22 23 64 30 64 30 61 30 22 3e  color="#d0d0a0">
8c60: 4c 69 6e 6b 52 6f 77 69 64 3c 2f 74 68 3e 3c 74  LinkRowid</th><t
8c70: 68 20 62 67 63 6f 6c 6f 72 3d 22 23 64 30 64 30  h bgcolor="#d0d0
8c80: 61 30 22 3e 4e 6f 64 65 46 72 6f 6d 3c 2f 74 68  a0">NodeFrom</th
8c90: 3e 3c 74 68 20 62 67 63 6f 6c 6f 72 3d 22 23 64  ><th bgcolor="#d
8ca0: 30 64 30 61 30 22 3e 4e 6f 64 65 54 6f 3c 2f 74  0d0a0">NodeTo</t
8cb0: 68 3e 3c 74 68 20 62 67 63 6f 6c 6f 72 3d 22 23  h><th bgcolor="#
8cc0: 64 30 64 30 61 30 22 3e 43 6f 73 74 3c 2f 74 68  d0d0a0">Cost</th
8cd0: 3e 3c 74 68 20 62 67 63 6f 6c 6f 72 3d 22 23 64  ><th bgcolor="#d
8ce0: 30 64 30 61 30 22 3e 47 65 6f 6d 65 74 72 79 3c  0d0a0">Geometry<
8cf0: 2f 74 68 3e 3c 74 68 20 62 67 63 6f 6c 6f 72 3d  /th><th bgcolor=
8d00: 22 23 64 30 64 30 61 30 22 3e 4e 61 6d 65 3c 2f  "#d0d0a0">Name</
8d10: 74 68 3e 3c 2f 74 72 3e 0d 0a 3c 74 72 3e 0d 0a  th></tr>..<tr>..
8d20: 3c 74 64 20 61 6c 69 67 6e 3d 22 72 69 67 68 74  <td align="right
8d30: 22 3e 30 3c 2f 74 64 3e 3c 74 64 3e 52 6f 75 74  ">0</td><td>Rout
8d40: 65 3c 2f 74 64 3e 3c 74 64 3e 4e 55 4c 4c 3c 2f  e</td><td>NULL</
8d50: 74 64 3e 3c 74 64 20 61 6c 69 67 6e 3d 22 72 69  td><td align="ri
8d60: 67 68 74 22 3e 31 37 38 37 33 31 3c 2f 74 64 3e  ght">178731</td>
8d70: 3c 74 64 20 61 6c 69 67 6e 3d 22 72 69 67 68 74  <td align="right
8d80: 22 3e 31 38 33 32 38 36 3c 2f 74 64 3e 3c 74 64  ">183286</td><td
8d90: 20 61 6c 69 67 6e 3d 22 72 69 67 68 74 22 3e 31   align="right">1
8da0: 30 31 2e 38 31 35 35 35 32 3c 2f 74 64 3e 3c 74  01.815552</td><t
8db0: 64 3e 42 4c 4f 42 20 73 7a 3d 32 30 33 32 20 47  d>BLOB sz=2032 G
8dc0: 45 4f 4d 45 54 52 59 3c 2f 74 64 3e 3c 74 64 3e  EOMETRY</td><td>
8dd0: 4e 55 4c 4c 3c 2f 74 64 3e 0d 0a 3c 2f 74 72 3e  NULL</td>..</tr>
8de0: 0d 0a 3c 74 72 3e 0d 0a 3c 74 64 20 61 6c 69 67  ..<tr>..<td alig
8df0: 6e 3d 22 72 69 67 68 74 22 3e 31 3c 2f 74 64 3e  n="right">1</td>
8e00: 3c 74 64 3e 4c 69 6e 6b 3c 2f 74 64 3e 3c 74 64  <td>Link</td><td
8e10: 20 61 6c 69 67 6e 3d 22 72 69 67 68 74 22 3e 32   align="right">2
8e20: 32 34 30 31 34 3c 2f 74 64 3e 3c 74 64 20 61 6c  24014</td><td al
8e30: 69 67 6e 3d 22 72 69 67 68 74 22 3e 31 37 38 37  ign="right">1787
8e40: 33 31 3c 2f 74 64 3e 3c 74 64 20 61 6c 69 67 6e  31</td><td align
8e50: 3d 22 72 69 67 68 74 22 3e 31 38 32 38 38 35 3c  ="right">182885<
8e60: 2f 74 64 3e 3c 74 64 20 61 6c 69 67 6e 3d 22 72  /td><td align="r
8e70: 69 67 68 74 22 3e 31 33 2e 31 32 37 38 37 34 3c  ight">13.127874<
8e80: 2f 74 64 3e 3c 74 64 3e 4e 55 4c 4c 3c 2f 74 64  /td><td>NULL</td
8e90: 3e 3c 74 64 3e 56 49 41 20 50 49 45 54 52 4f 20  ><td>VIA PIETRO 
8ea0: 41 52 45 54 49 4e 4f 3c 2f 74 64 3e 0d 0a 3c 2f  ARETINO</td>..</
8eb0: 74 72 3e 0d 0a 3c 74 72 3e 0d 0a 3c 74 64 20 61  tr>..<tr>..<td a
8ec0: 6c 69 67 6e 3d 22 72 69 67 68 74 22 3e 32 3c 2f  lign="right">2</
8ed0: 74 64 3e 3c 74 64 3e 4c 69 6e 6b 3c 2f 74 64 3e  td><td>Link</td>
8ee0: 3c 74 64 20 61 6c 69 67 6e 3d 22 72 69 67 68 74  <td align="right
8ef0: 22 3e 32 32 34 34 34 36 3c 2f 74 64 3e 3c 74 64  ">224446</td><td
8f00: 20 61 6c 69 67 6e 3d 22 72 69 67 68 74 22 3e 31   align="right">1
8f10: 38 32 38 38 35 3c 2f 74 64 3e 3c 74 64 20 61 6c  82885</td><td al
8f20: 69 67 6e 3d 22 72 69 67 68 74 22 3e 31 37 38 38  ign="right">1788
8f30: 38 30 3c 2f 74 64 3e 3c 74 64 20 61 6c 69 67 6e  80</td><td align
8f40: 3d 22 72 69 67 68 74 22 3e 39 2e 36 35 34 36 30  ="right">9.65460
8f50: 38 3c 2f 74 64 3e 3c 74 64 3e 4e 55 4c 4c 3c 2f  8</td><td>NULL</
8f60: 74 64 3e 3c 74 64 3e 56 49 41 20 4d 41 52 47 41  td><td>VIA MARGA
8f70: 52 49 54 4f 4e 45 3c 2f 74 64 3e 0d 0a 3c 2f 74  RITONE</td>..</t
8f80: 72 3e 0d 0a 3c 74 72 3e 0d 0a 3c 74 64 20 61 6c  r>..<tr>..<td al
8f90: 69 67 6e 3d 22 72 69 67 68 74 22 3e 33 3c 2f 74  ign="right">3</t
8fa0: 64 3e 3c 74 64 3e 4c 69 6e 6b 3c 2f 74 64 3e 3c  d><td>Link</td><
8fb0: 74 64 20 61 6c 69 67 6e 3d 22 72 69 67 68 74 22  td align="right"
8fc0: 3e 32 31 39 31 37 31 3c 2f 74 64 3e 3c 74 64 20  >219171</td><td 
8fd0: 61 6c 69 67 6e 3d 22 72 69 67 68 74 22 3e 31 37  align="right">17
8fe0: 38 38 38 30 3c 2f 74 64 3e 3c 74 64 20 61 6c 69  8880</td><td ali
8ff0: 67 6e 3d 22 72 69 67 68 74 22 3e 31 37 38 37 33  gn="right">17873
9000: 32 3c 2f 74 64 3e 3c 74 64 20 61 6c 69 67 6e 3d  2</td><td align=
9010: 22 72 69 67 68 74 22 3e 37 2e 38 30 39 39 35 32  "right">7.809952
9020: 3c 2f 74 64 3e 3c 74 64 3e 4e 55 4c 4c 3c 2f 74  </td><td>NULL</t
9030: 64 3e 3c 74 64 3e 56 49 41 20 46 52 41 4e 43 45  d><td>VIA FRANCE
9040: 53 43 4f 20 43 52 49 53 50 49 3c 2f 74 64 3e 0d  SCO CRISPI</td>.
9050: 0a 3c 2f 74 72 3e 0d 0a 3c 74 72 3e 0d 0a 3c 74  .</tr>..<tr>..<t
9060: 64 20 61 6c 69 67 6e 3d 22 72 69 67 68 74 22 3e  d align="right">
9070: 34 3c 2f 74 64 3e 3c 74 64 3e 4c 69 6e 6b 3c 2f  4</td><td>Link</
9080: 74 64 3e 3c 74 64 20 61 6c 69 67 6e 3d 22 72 69  td><td align="ri
9090: 67 68 74 22 3e 32 31 39 30 35 38 3c 2f 74 64 3e  ght">219058</td>
90a0: 3c 74 64 20 61 6c 69 67 6e 3d 22 72 69 67 68 74  <td align="right
90b0: 22 3e 31 37 38 37 33 32 3c 2f 74 64 3e 3c 74 64  ">178732</td><td
90c0: 20 61 6c 69 67 6e 3d 22 72 69 67 68 74 22 3e 31   align="right">1
90d0: 37 38 37 35 34 3c 2f 74 64 3e 3c 74 64 20 61 6c  78754</td><td al
90e0: 69 67 6e 3d 22 72 69 67 68 74 22 3e 31 32 2e 34  ign="right">12.4
90f0: 34 35 36 32 36 3c 2f 74 64 3e 3c 74 64 3e 4e 55  45626</td><td>NU
9100: 4c 4c 3c 2f 74 64 3e 3c 74 64 3e 56 49 41 20 46  LL</td><td>VIA F
9110: 52 41 4e 43 45 53 43 4f 20 43 52 49 53 50 49 3c  RANCESCO CRISPI<
9120: 2f 74 64 3e 0d 0a 3c 2f 74 72 3e 0d 0a 3c 74 72  /td>..</tr>..<tr
9130: 3e 0d 0a 3c 74 64 20 61 6c 69 67 6e 3d 22 72 69  >..<td align="ri
9140: 67 68 74 22 3e 35 3c 2f 74 64 3e 3c 74 64 3e 4c  ght">5</td><td>L
9150: 69 6e 6b 3c 2f 74 64 3e 3c 74 64 20 61 6c 69 67  ink</td><td alig
9160: 6e 3d 22 72 69 67 68 74 22 3e 32 32 35 38 38 38  n="right">225888
9170: 3c 2f 74 64 3e 3c 74 64 20 61 6c 69 67 6e 3d 22  </td><td align="
9180: 72 69 67 68 74 22 3e 31 37 38 37 35 34 3c 2f 74  right">178754</t
9190: 64 3e 3c 74 64 20 61 6c 69 67 6e 3d 22 72 69 67  d><td align="rig
91a0: 68 74 22 3e 31 38 33 34 36 31 3c 2f 74 64 3e 3c  ht">183461</td><
91b0: 74 64 20 61 6c 69 67 6e 3d 22 72 69 67 68 74 22  td align="right"
91c0: 3e 31 2e 35 39 39 38 36 35 3c 2f 74 64 3e 3c 74  >1.599865</td><t
91d0: 64 3e 4e 55 4c 4c 3c 2f 74 64 3e 3c 74 64 3e 56  d>NULL</td><td>V
91e0: 49 41 20 46 52 41 4e 43 45 53 43 4f 20 43 52 49  IA FRANCESCO CRI
91f0: 53 50 49 3c 2f 74 64 3e 0d 0a 3c 2f 74 72 3e 0d  SPI</td>..</tr>.
9200: 0a 3c 74 72 3e 0d 0a 3c 74 64 20 61 6c 69 67 6e  .<tr>..<td align
9210: 3d 22 72 69 67 68 74 22 3e 36 3c 2f 74 64 3e 3c  ="right">6</td><
9220: 74 64 3e 4c 69 6e 6b 3c 2f 74 64 3e 3c 74 64 20  td>Link</td><td 
9230: 61 6c 69 67 6e 3d 22 72 69 67 68 74 22 3e 32 32  align="right">22
9240: 35 38 38 37 3c 2f 74 64 3e 3c 74 64 20 61 6c 69  5887</td><td ali
9250: 67 6e 3d 22 72 69 67 68 74 22 3e 31 38 33 34 36  gn="right">18346
9260: 31 3c 2f 74 64 3e 3c 74 64 20 61 6c 69 67 6e 3d  1</td><td align=
9270: 22 72 69 67 68 74 22 3e 31 38 32 38 30 30 3c 2f  "right">182800</
9280: 74 64 3e 3c 74 64 20 61 6c 69 67 6e 3d 22 72 69  td><td align="ri
9290: 67 68 74 22 3e 33 2e 33 30 30 35 39 30 3c 2f 74  ght">3.300590</t
92a0: 64 3e 3c 74 64 3e 4e 55 4c 4c 3c 2f 74 64 3e 3c  d><td>NULL</td><
92b0: 74 64 3e 56 49 41 20 46 52 41 4e 43 45 53 43 4f  td>VIA FRANCESCO
92c0: 20 43 52 49 53 50 49 3c 2f 74 64 3e 0d 0a 3c 2f   CRISPI</td>..</
92d0: 74 72 3e 0d 0a 3c 74 72 3e 0d 0a 3c 74 64 20 61  tr>..<tr>..<td a
92e0: 6c 69 67 6e 3d 22 72 69 67 68 74 22 3e 37 3c 2f  lign="right">7</
92f0: 74 64 3e 3c 74 64 3e 4c 69 6e 6b 3c 2f 74 64 3e  td><td>Link</td>
9300: 3c 74 64 20 61 6c 69 67 6e 3d 22 72 69 67 68 74  <td align="right
9310: 22 3e 32 32 33 39 33 35 3c 2f 74 64 3e 3c 74 64  ">223935</td><td
9320: 20 61 6c 69 67 6e 3d 22 72 69 67 68 74 22 3e 31   align="right">1
9330: 38 32 38 30 30 3c 2f 74 64 3e 3c 74 64 20 61 6c  82800</td><td al
9340: 69 67 6e 3d 22 72 69 67 68 74 22 3e 31 38 32 37  ign="right">1827
9350: 39 39 3c 2f 74 64 3e 3c 74 64 20 61 6c 69 67 6e  99</td><td align
9360: 3d 22 72 69 67 68 74 22 3e 36 2e 36 38 38 37 38  ="right">6.68878
9370: 36 3c 2f 74 64 3e 3c 74 64 3e 4e 55 4c 4c 3c 2f  6</td><td>NULL</
9380: 74 64 3e 3c 74 64 3e 56 49 41 4c 45 20 4c 55 43  td><td>VIALE LUC
9390: 41 20 53 49 47 4e 4f 52 45 4c 4c 49 3c 2f 74 64  A SIGNORELLI</td
93a0: 3e 0d 0a 3c 2f 74 72 3e 0d 0a 3c 74 72 3e 0d 0a  >..</tr>..<tr>..
93b0: 3c 74 64 20 61 6c 69 67 6e 3d 22 72 69 67 68 74  <td align="right
93c0: 22 3e 38 3c 2f 74 64 3e 3c 74 64 3e 4c 69 6e 6b  ">8</td><td>Link
93d0: 3c 2f 74 64 3e 3c 74 64 20 61 6c 69 67 6e 3d 22  </td><td align="
93e0: 72 69 67 68 74 22 3e 32 32 36 30 33 38 3c 2f 74  right">226038</t
93f0: 64 3e 3c 74 64 20 61 6c 69 67 6e 3d 22 72 69 67  d><td align="rig
9400: 68 74 22 3e 31 38 32 37 39 39 3c 2f 74 64 3e 3c  ht">182799</td><
9410: 74 64 20 61 6c 69 67 6e 3d 22 72 69 67 68 74 22  td align="right"
9420: 3e 31 38 33 34 35 36 3c 2f 74 64 3e 3c 74 64 20  >183456</td><td 
9430: 61 6c 69 67 6e 3d 22 72 69 67 68 74 22 3e 31 2e  align="right">1.
9440: 32 39 34 30 31 37 3c 2f 74 64 3e 3c 74 64 3e 4e  294017</td><td>N
9450: 55 4c 4c 3c 2f 74 64 3e 3c 74 64 3e 56 49 41 4c  ULL</td><td>VIAL
9460: 45 20 4c 55 43 41 20 53 49 47 4e 4f 52 45 4c 4c  E LUCA SIGNORELL
9470: 49 3c 2f 74 64 3e 0d 0a 3c 2f 74 72 3e 0d 0a 3c  I</td>..</tr>..<
9480: 74 72 3e 0d 0a 3c 74 64 20 61 6c 69 67 6e 3d 22  tr>..<td align="
9490: 72 69 67 68 74 22 3e 39 3c 2f 74 64 3e 3c 74 64  right">9</td><td
94a0: 3e 4c 69 6e 6b 3c 2f 74 64 3e 3c 74 64 20 61 6c  >Link</td><td al
94b0: 69 67 6e 3d 22 72 69 67 68 74 22 3e 32 32 35 38  ign="right">2258
94c0: 33 32 3c 2f 74 64 3e 3c 74 64 20 61 6c 69 67 6e  32</td><td align
94d0: 3d 22 72 69 67 68 74 22 3e 31 38 33 34 35 36 3c  ="right">183456<
94e0: 2f 74 64 3e 3c 74 64 20 61 6c 69 67 6e 3d 22 72  /td><td align="r
94f0: 69 67 68 74 22 3e 31 38 33 34 34 34 3c 2f 74 64  ight">183444</td
9500: 3e 3c 74 64 20 61 6c 69 67 6e 3d 22 72 69 67 68  ><td align="righ
9510: 74 22 3e 32 2e 33 38 35 34 38 36 3c 2f 74 64 3e  t">2.385486</td>
9520: 3c 74 64 3e 4e 55 4c 4c 3c 2f 74 64 3e 3c 74 64  <td>NULL</td><td
9530: 3e 56 49 41 4c 45 20 4c 55 43 41 20 53 49 47 4e  >VIALE LUCA SIGN
9540: 4f 52 45 4c 4c 49 3c 2f 74 64 3e 0d 0a 3c 2f 74  ORELLI</td>..</t
9550: 72 3e 0d 0a 3c 74 72 3e 0d 0a 3c 74 64 20 61 6c  r>..<tr>..<td al
9560: 69 67 6e 3d 22 72 69 67 68 74 22 3e 31 30 3c 2f  ign="right">10</
9570: 74 64 3e 3c 74 64 3e 4c 69 6e 6b 3c 2f 74 64 3e  td><td>Link</td>
9580: 3c 74 64 20 61 6c 69 67 6e 3d 22 72 69 67 68 74  <td align="right
9590: 22 3e 32 32 35 38 33 31 3c 2f 74 64 3e 3c 74 64  ">225831</td><td
95a0: 20 61 6c 69 67 6e 3d 22 72 69 67 68 74 22 3e 31   align="right">1
95b0: 38 33 34 34 34 3c 2f 74 64 3e 3c 74 64 20 61 6c  83444</td><td al
95c0: 69 67 6e 3d 22 72 69 67 68 74 22 3e 31 38 33 35  ign="right">1835
95d0: 35 34 3c 2f 74 64 3e 3c 74 64 20 61 6c 69 67 6e  54</td><td align
95e0: 3d 22 72 69 67 68 74 22 3e 33 2e 31 36 30 36 36  ="right">3.16066
95f0: 32 3c 2f 74 64 3e 3c 74 64 3e 4e 55 4c 4c 3c 2f  2</td><td>NULL</
9600: 74 64 3e 3c 74 64 3e 56 49 41 4c 45 20 4c 55 43  td><td>VIALE LUC
9610: 41 20 53 49 47 4e 4f 52 45 4c 4c 49 3c 2f 74 64  A SIGNORELLI</td
9620: 3e 0d 0a 3c 2f 74 72 3e 0d 0a 3c 74 72 3e 0d 0a  >..</tr>..<tr>..
9630: 3c 74 64 20 61 6c 69 67 6e 3d 22 72 69 67 68 74  <td align="right
9640: 22 3e 31 31 3c 2f 74 64 3e 3c 74 64 3e 4c 69 6e  ">11</td><td>Lin
9650: 6b 3c 2f 74 64 3e 3c 74 64 20 61 6c 69 67 6e 3d  k</td><td align=
9660: 22 72 69 67 68 74 22 3e 32 32 35 37 36 35 3c 2f  "right">225765</
9670: 74 64 3e 3c 74 64 20 61 6c 69 67 6e 3d 22 72 69  td><td align="ri
9680: 67 68 74 22 3e 31 38 33 35 35 34 3c 2f 74 64 3e  ght">183554</td>
9690: 3c 74 64 20 61 6c 69 67 6e 3d 22 72 69 67 68 74  <td align="right
96a0: 22 3e 31 38 33 39 35 34 3c 2f 74 64 3e 3c 74 64  ">183954</td><td
96b0: 20 61 6c 69 67 6e 3d 22 72 69 67 68 74 22 3e 37   align="right">7
96c0: 2e 34 36 39 39 31 37 3c 2f 74 64 3e 3c 74 64 3e  .469917</td><td>
96d0: 4e 55 4c 4c 3c 2f 74 64 3e 3c 74 64 3e 56 49 41  NULL</td><td>VIA
96e0: 4c 45 20 4c 55 43 41 20 53 49 47 4e 4f 52 45 4c  LE LUCA SIGNOREL
96f0: 4c 49 3c 2f 74 64 3e 0d 0a 3c 2f 74 72 3e 0d 0a  LI</td>..</tr>..
9700: 3c 74 72 3e 0d 0a 3c 74 64 20 61 6c 69 67 6e 3d  <tr>..<td align=
9710: 22 72 69 67 68 74 22 3e 31 32 3c 2f 74 64 3e 3c  "right">12</td><
9720: 74 64 3e 4c 69 6e 6b 3c 2f 74 64 3e 3c 74 64 20  td>Link</td><td 
9730: 61 6c 69 67 6e 3d 22 72 69 67 68 74 22 3e 32 32  align="right">22
9740: 35 37 36 36 3c 2f 74 64 3e 3c 74 64 20 61 6c 69  5766</td><td ali
9750: 67 6e 3d 22 72 69 67 68 74 22 3e 31 38 33 39 35  gn="right">18395
9760: 34 3c 2f 74 64 3e 3c 74 64 20 61 6c 69 67 6e 3d  4</td><td align=
9770: 22 72 69 67 68 74 22 3e 31 38 33 39 30 35 3c 2f  "right">183905</
9780: 74 64 3e 3c 74 64 20 61 6c 69 67 6e 3d 22 72 69  td><td align="ri
9790: 67 68 74 22 3e 33 2e 32 33 36 33 38 39 3c 2f 74  ght">3.236389</t
97a0: 64 3e 3c 74 64 3e 4e 55 4c 4c 3c 2f 74 64 3e 3c  d><td>NULL</td><
97b0: 74 64 3e 56 49 41 4c 45 20 4c 55 43 41 20 53 49  td>VIALE LUCA SI
97c0: 47 4e 4f 52 45 4c 4c 49 3c 2f 74 64 3e 0d 0a 3c  GNORELLI</td>..<
97d0: 2f 74 72 3e 0d 0a 3c 74 72 3e 0d 0a 3c 74 64 20  /tr>..<tr>..<td 
97e0: 61 6c 69 67 6e 3d 22 72 69 67 68 74 22 3e 31 33  align="right">13
97f0: 3c 2f 74 64 3e 3c 74 64 3e 4c 69 6e 6b 3c 2f 74  </td><td>Link</t
9800: 64 3e 3c 74 64 20 61 6c 69 67 6e 3d 22 72 69 67  d><td align="rig
9810: 68 74 22 3e 32 32 35 39 37 39 3c 2f 74 64 3e 3c  ht">225979</td><
9820: 74 64 20 61 6c 69 67 6e 3d 22 72 69 67 68 74 22  td align="right"
9830: 3e 31 38 33 39 30 35 3c 2f 74 64 3e 3c 74 64 20  >183905</td><td 
9840: 61 6c 69 67 6e 3d 22 72 69 67 68 74 22 3e 31 38  align="right">18
9850: 33 36 32 36 3c 2f 74 64 3e 3c 74 64 20 61 6c 69  3626</td><td ali
9860: 67 6e 3d 22 72 69 67 68 74 22 3e 31 33 2e 39 38  gn="right">13.98
9870: 33 36 32 39 3c 2f 74 64 3e 3c 74 64 3e 4e 55 4c  3629</td><td>NUL
9880: 4c 3c 2f 74 64 3e 3c 74 64 3e 53 54 52 41 44 41  L</td><td>STRADA
9890: 20 53 45 4e 5a 41 20 4e 4f 4d 45 3c 2f 74 64 3e   SENZA NOME</td>
98a0: 0d 0a 3c 2f 74 72 3e 0d 0a 3c 74 72 3e 0d 0a 3c  ..</tr>..<tr>..<
98b0: 74 64 20 61 6c 69 67 6e 3d 22 72 69 67 68 74 22  td align="right"
98c0: 3e 31 34 3c 2f 74 64 3e 3c 74 64 3e 4c 69 6e 6b  >14</td><td>Link
98d0: 3c 2f 74 64 3e 3c 74 64 20 61 6c 69 67 6e 3d 22  </td><td align="
98e0: 72 69 67 68 74 22 3e 32 32 34 39 30 35 3c 2f 74  right">224905</t
98f0: 64 3e 3c 74 64 20 61 6c 69 67 6e 3d 22 72 69 67  d><td align="rig
9900: 68 74 22 3e 31 38 33 36 32 36 3c 2f 74 64 3e 3c  ht">183626</td><
9910: 74 64 20 61 6c 69 67 6e 3d 22 72 69 67 68 74 22  td align="right"
9920: 3e 31 38 33 31 32 38 3c 2f 74 64 3e 3c 74 64 20  >183128</td><td 
9930: 61 6c 69 67 6e 3d 22 72 69 67 68 74 22 3e 35 2e  align="right">5.
9940: 36 32 37 33 35 38 3c 2f 74 64 3e 3c 74 64 3e 4e  627358</td><td>N
9950: 55 4c 4c 3c 2f 74 64 3e 3c 74 64 3e 53 54 52 41  ULL</td><td>STRA
9960: 44 41 20 53 45 4e 5a 41 20 4e 4f 4d 45 3c 2f 74  DA SENZA NOME</t
9970: 64 3e 0d 0a 3c 2f 74 72 3e 0d 0a 3c 74 72 3e 0d  d>..</tr>..<tr>.
9980: 0a 3c 74 64 20 61 6c 69 67 6e 3d 22 72 69 67 68  .<td align="righ
9990: 74 22 3e 31 35 3c 2f 74 64 3e 3c 74 64 3e 4c 69  t">15</td><td>Li
99a0: 6e 6b 3c 2f 74 64 3e 3c 74 64 20 61 6c 69 67 6e  nk</td><td align
99b0: 3d 22 72 69 67 68 74 22 3e 32 32 34 38 39 37 3c  ="right">224897<
99c0: 2f 74 64 3e 3c 74 64 20 61 6c 69 67 6e 3d 22 72  /td><td align="r
99d0: 69 67 68 74 22 3e 31 38 33 31 32 38 3c 2f 74 64  ight">183128</td
99e0: 3e 3c 74 64 20 61 6c 69 67 6e 3d 22 72 69 67 68  ><td align="righ
99f0: 74 22 3e 31 38 33 32 38 36 3c 2f 74 64 3e 3c 74  t">183286</td><t
9a00: 64 20 61 6c 69 67 6e 3d 22 72 69 67 68 74 22 3e  d align="right">
9a10: 31 30 2e 30 33 30 37 39 32 3c 2f 74 64 3e 3c 74  10.030792</td><t
9a20: 64 3e 4e 55 4c 4c 3c 2f 74 64 3e 3c 74 64 3e 56  d>NULL</td><td>V
9a30: 49 41 20 4d 41 52 47 41 52 49 54 4f 4e 45 3c 2f  IA MARGARITONE</
9a40: 74 64 3e 0d 0a 3c 2f 74 72 3e 0d 0a 3c 2f 74 61  td>..</tr>..</ta
9a50: 62 6c 65 3e 0d 0a 3c 76 65 72 62 61 74 69 6d 3e  ble>..<verbatim>
9a60: 0d 0a 53 45 4c 45 43 54 20 52 6f 75 74 65 52 6f  ..SELECT RouteRo
9a70: 77 2c 20 52 6f 6c 65 2c 20 4c 69 6e 6b 52 6f 77  w, Role, LinkRow
9a80: 69 64 2c 20 4e 6f 64 65 46 72 6f 6d 2c 20 4e 6f  id, NodeFrom, No
9a90: 64 65 54 6f 2c 20 43 6f 73 74 2c 20 47 65 6f 6d  deTo, Cost, Geom
9aa0: 65 74 72 79 2c 20 4e 61 6d 65 0d 0a 46 52 4f 4d  etry, Name..FROM
9ab0: 20 62 79 63 61 72 0d 0a 57 48 45 52 45 20 4e 6f   bycar..WHERE No
9ac0: 64 65 54 6f 20 3d 20 31 37 38 37 33 31 20 41 4e  deTo = 178731 AN
9ad0: 44 20 4e 6f 64 65 46 72 6f 6d 20 3d 20 31 38 33  D NodeFrom = 183
9ae0: 32 38 36 3b 0d 0a 3c 2f 76 65 72 62 61 74 69 6d  286;..</verbatim
9af0: 3e 0d 0a 3c 74 61 62 6c 65 20 62 6f 72 64 65 72  >..<table border
9b00: 3d 22 31 22 20 62 67 63 6f 6c 6f 72 3d 22 23 66  ="1" bgcolor="#f
9b10: 66 66 66 63 66 22 20 63 65 6c 6c 73 70 61 63 69  fffcf" cellspaci
9b20: 6e 67 3d 22 34 22 20 63 65 6c 6c 70 61 64 64 69  ng="4" cellpaddi
9b30: 6e 67 3d 22 36 22 3e 0d 0a 3c 74 72 3e 3c 74 68  ng="6">..<tr><th
9b40: 20 62 67 63 6f 6c 6f 72 3d 22 23 64 30 64 30 61   bgcolor="#d0d0a
9b50: 30 22 3e 52 6f 75 74 65 52 6f 77 3c 2f 74 68 3e  0">RouteRow</th>
9b60: 3c 74 68 20 62 67 63 6f 6c 6f 72 3d 22 23 64 30  <th bgcolor="#d0
9b70: 64 30 61 30 22 3e 52 6f 6c 65 3c 2f 74 68 3e 3c  d0a0">Role</th><
9b80: 74 68 20 62 67 63 6f 6c 6f 72 3d 22 23 64 30 64  th bgcolor="#d0d
9b90: 30 61 30 22 3e 4c 69 6e 6b 52 6f 77 69 64 3c 2f  0a0">LinkRowid</
9ba0: 74 68 3e 3c 74 68 20 62 67 63 6f 6c 6f 72 3d 22  th><th bgcolor="
9bb0: 23 64 30 64 30 61 30 22 3e 4e 6f 64 65 46 72 6f  #d0d0a0">NodeFro
9bc0: 6d 3c 2f 74 68 3e 3c 74 68 20 62 67 63 6f 6c 6f  m</th><th bgcolo
9bd0: 72 3d 22 23 64 30 64 30 61 30 22 3e 4e 6f 64 65  r="#d0d0a0">Node
9be0: 54 6f 3c 2f 74 68 3e 3c 74 68 20 62 67 63 6f 6c  To</th><th bgcol
9bf0: 6f 72 3d 22 23 64 30 64 30 61 30 22 3e 43 6f 73  or="#d0d0a0">Cos
9c00: 74 3c 2f 74 68 3e 3c 74 68 20 62 67 63 6f 6c 6f  t</th><th bgcolo
9c10: 72 3d 22 23 64 30 64 30 61 30 22 3e 47 65 6f 6d  r="#d0d0a0">Geom
9c20: 65 74 72 79 3c 2f 74 68 3e 3c 74 68 20 62 67 63  etry</th><th bgc
9c30: 6f 6c 6f 72 3d 22 23 64 30 64 30 61 30 22 3e 4e  olor="#d0d0a0">N
9c40: 61 6d 65 3c 2f 74 68 3e 3c 2f 74 72 3e 0d 0a 3c  ame</th></tr>..<
9c50: 74 72 3e 0d 0a 3c 74 64 20 61 6c 69 67 6e 3d 22  tr>..<td align="
9c60: 72 69 67 68 74 22 3e 30 3c 2f 74 64 3e 3c 74 64  right">0</td><td
9c70: 3e 52 6f 75 74 65 3c 2f 74 64 3e 3c 74 64 3e 4e  >Route</td><td>N
9c80: 55 4c 4c 3c 2f 74 64 3e 3c 74 64 20 61 6c 69 67  ULL</td><td alig
9c90: 6e 3d 22 72 69 67 68 74 22 3e 31 38 33 32 38 36  n="right">183286
9ca0: 3c 2f 74 64 3e 3c 74 64 20 61 6c 69 67 6e 3d 22  </td><td align="
9cb0: 72 69 67 68 74 22 3e 31 37 38 37 33 31 3c 2f 74  right">178731</t
9cc0: 64 3e 3c 74 64 20 61 6c 69 67 6e 3d 22 72 69 67  d><td align="rig
9cd0: 68 74 22 3e 31 30 33 2e 33 30 35 32 35 39 3c 2f  ht">103.305259</
9ce0: 74 64 3e 3c 74 64 3e 42 4c 4f 42 20 73 7a 3d 39  td><td>BLOB sz=9
9cf0: 34 34 20 47 45 4f 4d 45 54 52 59 3c 2f 74 64 3e  44 GEOMETRY</td>
9d00: 3c 74 64 3e 4e 55 4c 4c 3c 2f 74 64 3e 0d 0a 3c  <td>NULL</td>..<
9d10: 2f 74 72 3e 0d 0a 3c 74 72 3e 0d 0a 3c 74 64 20  /tr>..<tr>..<td 
9d20: 61 6c 69 67 6e 3d 22 72 69 67 68 74 22 3e 31 3c  align="right">1<
9d30: 2f 74 64 3e 3c 74 64 3e 4c 69 6e 6b 3c 2f 74 64  /td><td>Link</td
9d40: 3e 3c 74 64 20 61 6c 69 67 6e 3d 22 72 69 67 68  ><td align="righ
9d50: 74 22 3e 32 32 34 34 31 34 3c 2f 74 64 3e 3c 74  t">224414</td><t
9d60: 64 20 61 6c 69 67 6e 3d 22 72 69 67 68 74 22 3e  d align="right">
9d70: 31 38 33 32 38 36 3c 2f 74 64 3e 3c 74 64 20 61  183286</td><td a
9d80: 6c 69 67 6e 3d 22 72 69 67 68 74 22 3e 31 37 38  lign="right">178
9d90: 38 38 30 3c 2f 74 64 3e 3c 74 64 20 61 6c 69 67  880</td><td alig
9da0: 6e 3d 22 72 69 67 68 74 22 3e 31 38 2e 38 38 32  n="right">18.882
9db0: 32 38 35 3c 2f 74 64 3e 3c 74 64 3e 4e 55 4c 4c  285</td><td>NULL
9dc0: 3c 2f 74 64 3e 3c 74 64 3e 56 49 41 20 4d 41 52  </td><td>VIA MAR
9dd0: 47 41 52 49 54 4f 4e 45 3c 2f 74 64 3e 0d 0a 3c  GARITONE</td>..<
9de0: 2f 74 72 3e 0d 0a 3c 74 72 3e 0d 0a 3c 74 64 20  /tr>..<tr>..<td 
9df0: 61 6c 69 67 6e 3d 22 72 69 67 68 74 22 3e 32 3c  align="right">2<
9e00: 2f 74 64 3e 3c 74 64 3e 4c 69 6e 6b 3c 2f 74 64  /td><td>Link</td
9e10: 3e 3c 74 64 20 61 6c 69 67 6e 3d 22 72 69 67 68  ><td align="righ
9e20: 74 22 3e 32 31 39 31 37 31 3c 2f 74 64 3e 3c 74  t">219171</td><t
9e30: 64 20 61 6c 69 67 6e 3d 22 72 69 67 68 74 22 3e  d align="right">
9e40: 31 37 38 38 38 30 3c 2f 74 64 3e 3c 74 64 20 61  178880</td><td a
9e50: 6c 69 67 6e 3d 22 72 69 67 68 74 22 3e 31 37 38  lign="right">178
9e60: 37 33 32 3c 2f 74 64 3e 3c 74 64 20 61 6c 69 67  732</td><td alig
9e70: 6e 3d 22 72 69 67 68 74 22 3e 37 2e 38 30 39 39  n="right">7.8099
9e80: 35 32 3c 2f 74 64 3e 3c 74 64 3e 4e 55 4c 4c 3c  52</td><td>NULL<
9e90: 2f 74 64 3e 3c 74 64 3e 56 49 41 20 46 52 41 4e  /td><td>VIA FRAN
9ea0: 43 45 53 43 4f 20 43 52 49 53 50 49 3c 2f 74 64  CESCO CRISPI</td
9eb0: 3e 0d 0a 3c 2f 74 72 3e 0d 0a 3c 74 72 3e 0d 0a  >..</tr>..<tr>..
9ec0: 3c 74 64 20 61 6c 69 67 6e 3d 22 72 69 67 68 74  <td align="right
9ed0: 22 3e 33 3c 2f 74 64 3e 3c 74 64 3e 4c 69 6e 6b  ">3</td><td>Link
9ee0: 3c 2f 74 64 3e 3c 74 64 20 61 6c 69 67 6e 3d 22  </td><td align="
9ef0: 72 69 67 68 74 22 3e 32 31 39 30 35 38 3c 2f 74  right">219058</t
9f00: 64 3e 3c 74 64 20 61 6c 69 67 6e 3d 22 72 69 67  d><td align="rig
9f10: 68 74 22 3e 31 37 38 37 33 32 3c 2f 74 64 3e 3c  ht">178732</td><
9f20: 74 64 20 61 6c 69 67 6e 3d 22 72 69 67 68 74 22  td align="right"
9f30: 3e 31 37 38 37 35 34 3c 2f 74 64 3e 3c 74 64 20  >178754</td><td 
9f40: 61 6c 69 67 6e 3d 22 72 69 67 68 74 22 3e 31 32  align="right">12
9f50: 2e 34 34 35 36 32 36 3c 2f 74 64 3e 3c 74 64 3e  .445626</td><td>
9f60: 4e 55 4c 4c 3c 2f 74 64 3e 3c 74 64 3e 56 49 41  NULL</td><td>VIA
9f70: 20 46 52 41 4e 43 45 53 43 4f 20 43 52 49 53 50   FRANCESCO CRISP
9f80: 49 3c 2f 74 64 3e 0d 0a 3c 2f 74 72 3e 0d 0a 3c  I</td>..</tr>..<
9f90: 74 72 3e 0d 0a 3c 74 64 20 61 6c 69 67 6e 3d 22  tr>..<td align="
9fa0: 72 69 67 68 74 22 3e 34 3c 2f 74 64 3e 3c 74 64  right">4</td><td
9fb0: 3e 4c 69 6e 6b 3c 2f 74 64 3e 3c 74 64 20 61 6c  >Link</td><td al
9fc0: 69 67 6e 3d 22 72 69 67 68 74 22 3e 32 32 34 35  ign="right">2245
9fd0: 33 38 3c 2f 74 64 3e 3c 74 64 20 61 6c 69 67 6e  38</td><td align
9fe0: 3d 22 72 69 67 68 74 22 3e 31 37 38 37 35 34 3c  ="right">178754<
9ff0: 2f 74 64 3e 3c 74 64 20 61 6c 69 67 6e 3d 22 72  /td><td align="r
a000: 69 67 68 74 22 3e 31 38 31 39 37 32 3c 2f 74 64  ight">181972</td
a010: 3e 3c 74 64 20 61 6c 69 67 6e 3d 22 72 69 67 68  ><td align="righ
a020: 74 22 3e 37 2e 30 34 37 37 38 34 3c 2f 74 64 3e  t">7.047784</td>
a030: 3c 74 64 3e 4e 55 4c 4c 3c 2f 74 64 3e 3c 74 64  <td>NULL</td><td
a040: 3e 56 49 41 20 41 4e 54 4f 4e 49 4f 20 47 55 41  >VIA ANTONIO GUA
a050: 44 41 47 4e 4f 4c 49 3c 2f 74 64 3e 0d 0a 3c 2f  DAGNOLI</td>..</
a060: 74 72 3e 0d 0a 3c 74 72 3e 0d 0a 3c 74 64 20 61  tr>..<tr>..<td a
a070: 6c 69 67 6e 3d 22 72 69 67 68 74 22 3e 35 3c 2f  lign="right">5</
a080: 74 64 3e 3c 74 64 3e 4c 69 6e 6b 3c 2f 74 64 3e  td><td>Link</td>
a090: 3c 74 64 20 61 6c 69 67 6e 3d 22 72 69 67 68 74  <td align="right
a0a0: 22 3e 32 32 32 35 37 35 3c 2f 74 64 3e 3c 74 64  ">222575</td><td
a0b0: 20 61 6c 69 67 6e 3d 22 72 69 67 68 74 22 3e 31   align="right">1
a0c0: 38 31 39 37 32 3c 2f 74 64 3e 3c 74 64 20 61 6c  81972</td><td al
a0d0: 69 67 6e 3d 22 72 69 67 68 74 22 3e 31 38 31 39  ign="right">1819
a0e0: 37 31 3c 2f 74 64 3e 3c 74 64 20 61 6c 69 67 6e  71</td><td align
a0f0: 3d 22 72 69 67 68 74 22 3e 31 2e 38 35 32 32 38  ="right">1.85228
a100: 33 3c 2f 74 64 3e 3c 74 64 3e 4e 55 4c 4c 3c 2f  3</td><td>NULL</
a110: 74 64 3e 3c 74 64 3e 56 49 41 20 41 4e 54 4f 4e  td><td>VIA ANTON
a120: 49 4f 20 47 55 41 44 41 47 4e 4f 4c 49 3c 2f 74  IO GUADAGNOLI</t
a130: 64 3e 0d 0a 3c 2f 74 72 3e 0d 0a 3c 74 64 20 61  d>..</tr>..<td a
a140: 6c 69 67 6e 3d 22 72 69 67 68 74 22 3e 36 3c 2f  lign="right">6</
a150: 74 64 3e 3c 74 64 3e 4c 69 6e 6b 3c 2f 74 64 3e  td><td>Link</td>
a160: 3c 74 64 20 61 6c 69 67 6e 3d 22 72 69 67 68 74  <td align="right
a170: 22 3e 32 32 34 39 36 37 3c 2f 74 64 3e 3c 74 64  ">224967</td><td
a180: 20 61 6c 69 67 6e 3d 22 72 69 67 68 74 22 3e 31   align="right">1
a190: 38 31 39 37 31 3c 2f 74 64 3e 3c 74 64 20 61 6c  81971</td><td al
a1a0: 69 67 6e 3d 22 72 69 67 68 74 22 3e 31 38 32 38  ign="right">1828
a1b0: 39 31 3c 2f 74 64 3e 3c 74 64 20 61 6c 69 67 6e  91</td><td align
a1c0: 3d 22 72 69 67 68 74 22 3e 31 34 2e 32 37 33 31  ="right">14.2731
a1d0: 38 35 3c 2f 74 64 3e 3c 74 64 3e 4e 55 4c 4c 3c  85</td><td>NULL<
a1e0: 2f 74 64 3e 3c 74 64 3e 56 49 41 20 41 4e 54 4f  /td><td>VIA ANTO
a1f0: 4e 49 4f 20 47 55 41 44 41 47 4e 4f 4c 49 3c 2f  NIO GUADAGNOLI</
a200: 74 64 3e 0d 0a 3c 2f 74 72 3e 0d 0a 3c 74 72 3e  td>..</tr>..<tr>
a210: 0d 0a 3c 74 64 20 61 6c 69 67 6e 3d 22 72 69 67  ..<td align="rig
a220: 68 74 22 3e 37 3c 2f 74 64 3e 3c 74 64 3e 4c 69  ht">7</td><td>Li
a230: 6e 6b 3c 2f 74 64 3e 3c 74 64 20 61 6c 69 67 6e  nk</td><td align
a240: 3d 22 72 69 67 68 74 22 3e 32 32 34 31 36 38 3c  ="right">224168<
a250: 2f 74 64 3e 3c 74 64 20 61 6c 69 67 6e 3d 22 72  /td><td align="r
a260: 69 67 68 74 22 3e 31 38 32 38 39 31 3c 2f 74 64  ight">182891</td
a270: 3e 3c 74 64 20 61 6c 69 67 6e 3d 22 72 69 67 68  ><td align="righ
a280: 74 22 3e 31 38 33 30 35 37 3c 2f 74 64 3e 3c 74  t">183057</td><t
a290: 64 20 61 6c 69 67 6e 3d 22 72 69 67 68 74 22 3e  d align="right">
a2a0: 36 2e 36 34 33 33 30 39 3c 2f 74 64 3e 3c 74 64  6.643309</td><td
a2b0: 3e 4e 55 4c 4c 3c 2f 74 64 3e 3c 74 64 3e 56 49  >NULL</td><td>VI
a2c0: 41 20 4d 41 43 41 4c 4c 45 27 3c 2f 74 64 3e 0d  A MACALLE'</td>.
a2d0: 0a 3c 2f 74 72 3e 0d 0a 3c 74 72 3e 0d 0a 3c 74  .</tr>..<tr>..<t
a2e0: 64 20 61 6c 69 67 6e 3d 22 72 69 67 68 74 22 3e  d align="right">
a2f0: 38 3c 2f 74 64 3e 3c 74 64 3e 4c 69 6e 6b 3c 2f  8</td><td>Link</
a300: 74 64 3e 3c 74 64 20 61 6c 69 67 6e 3d 22 72 69  td><td align="ri
a310: 67 68 74 22 3e 32 32 34 31 36 37 3c 2f 74 64 3e  ght">224167</td>
a320: 3c 74 64 20 61 6c 69 67 6e 3d 22 72 69 67 68 74  <td align="right
a330: 22 3e 31 38 33 30 35 37 3c 2f 74 64 3e 3c 74 64  ">183057</td><td
a340: 20 61 6c 69 67 6e 3d 22 72 69 67 68 74 22 3e 31   align="right">1
a350: 38 33 30 35 36 3c 2f 74 64 3e 3c 74 64 20 61 6c  83056</td><td al
a360: 69 67 6e 3d 22 72 69 67 68 74 22 3e 33 2e 31 35  ign="right">3.15
a370: 31 32 37 32 3c 2f 74 64 3e 3c 74 64 3e 4e 55 4c  1272</td><td>NUL
a380: 4c 3c 2f 74 64 3e 3c 74 64 3e 56 49 41 20 4d 41  L</td><td>VIA MA
a390: 43 41 4c 4c 45 27 3c 2f 74 64 3e 0d 0a 3c 2f 74  CALLE'</td>..</t
a3a0: 72 3e 0d 0a 3c 74 72 3e 0d 0a 3c 74 64 20 61 6c  r>..<tr>..<td al
a3b0: 69 67 6e 3d 22 72 69 67 68 74 22 3e 39 3c 2f 74  ign="right">9</t
a3c0: 64 3e 3c 74 64 3e 4c 69 6e 6b 3c 2f 74 64 3e 3c  d><td>Link</td><
a3d0: 74 64 20 61 6c 69 67 6e 3d 22 72 69 67 68 74 22  td align="right"
a3e0: 3e 32 32 34 31 37 34 3c 2f 74 64 3e 3c 74 64 20  >224174</td><td 
a3f0: 61 6c 69 67 6e 3d 22 72 69 67 68 74 22 3e 31 38  align="right">18
a400: 33 30 35 36 3c 2f 74 64 3e 3c 74 64 20 61 6c 69  3056</td><td ali
a410: 67 6e 3d 22 72 69 67 68 74 22 3e 31 38 32 39 34  gn="right">18294
a420: 31 3c 2f 74 64 3e 3c 74 64 20 61 6c 69 67 6e 3d  1</td><td align=
a430: 22 72 69 67 68 74 22 3e 37 2e 39 36 36 38 37 30  "right">7.966870
a440: 3c 2f 74 64 3e 3c 74 64 3e 4e 55 4c 4c 3c 2f 74  </td><td>NULL</t
a450: 64 3e 3c 74 64 3e 56 49 41 20 52 4f 44 49 3c 2f  d><td>VIA RODI</
a460: 74 64 3e 0d 0a 3c 2f 74 72 3e 0d 0a 3c 74 72 3e  td>..</tr>..<tr>
a470: 0d 0a 3c 74 64 20 61 6c 69 67 6e 3d 22 72 69 67  ..<td align="rig
a480: 68 74 22 3e 31 30 3c 2f 74 64 3e 3c 74 64 3e 4c  ht">10</td><td>L
a490: 69 6e 6b 3c 2f 74 64 3e 3c 74 64 20 61 6c 69 67  ink</td><td alig
a4a0: 6e 3d 22 72 69 67 68 74 22 3e 32 32 34 30 35 39  n="right">224059
a4b0: 3c 2f 74 64 3e 3c 74 64 20 61 6c 69 67 6e 3d 22  </td><td align="
a4c0: 72 69 67 68 74 22 3e 31 38 32 39 34 31 3c 2f 74  right">182941</t
a4d0: 64 3e 3c 74 64 20 61 6c 69 67 6e 3d 22 72 69 67  d><td align="rig
a4e0: 68 74 22 3e 31 38 32 30 30 31 3c 2f 74 64 3e 3c  ht">182001</td><
a4f0: 74 64 20 61 6c 69 67 6e 3d 22 72 69 67 68 74 22  td align="right"
a500: 3e 36 2e 33 39 33 37 34 37 3c 2f 74 64 3e 3c 74  >6.393747</td><t
a510: 64 3e 4e 55 4c 4c 3c 2f 74 64 3e 3c 74 64 3e 56  d>NULL</td><td>V
a520: 49 41 20 52 4f 44 49 3c 2f 74 64 3e 0d 0a 3c 2f  IA RODI</td>..</
a530: 74 72 3e 0d 0a 3c 74 72 3e 0d 0a 3c 74 64 20 61  tr>..<tr>..<td a
a540: 6c 69 67 6e 3d 22 72 69 67 68 74 22 3e 31 31 3c  lign="right">11<
a550: 2f 74 64 3e 3c 74 64 3e 4c 69 6e 6b 3c 2f 74 64  /td><td>Link</td
a560: 3e 3c 74 64 20 61 6c 69 67 6e 3d 22 72 69 67 68  ><td align="righ
a570: 74 22 3e 32 32 32 36 33 37 3c 2f 74 64 3e 3c 74  t">222637</td><t
a580: 64 20 61 6c 69 67 6e 3d 22 72 69 67 68 74 22 3e  d align="right">
a590: 31 38 32 30 30 31 3c 2f 74 64 3e 3c 74 64 20 61  182001</td><td a
a5a0: 6c 69 67 6e 3d 22 72 69 67 68 74 22 3e 31 38 32  lign="right">182
a5b0: 30 30 30 3c 2f 74 64 3e 3c 74 64 20 61 6c 69 67  000</td><td alig
a5c0: 6e 3d 22 72 69 67 68 74 22 3e 32 2e 34 37 35 35  n="right">2.4755
a5d0: 33 38 3c 2f 74 64 3e 3c 74 64 3e 4e 55 4c 4c 3c  38</td><td>NULL<
a5e0: 2f 74 64 3e 3c 74 64 3e 56 49 41 20 50 49 45 54  /td><td>VIA PIET
a5f0: 52 4f 20 41 52 45 54 49 4e 4f 3c 2f 74 64 3e 0d  RO ARETINO</td>.
a600: 0a 3c 2f 74 72 3e 0d 0a 3c 74 72 3e 0d 0a 3c 74  .</tr>..<tr>..<t
a610: 64 20 61 6c 69 67 6e 3d 22 72 69 67 68 74 22 3e  d align="right">
a620: 31 32 3c 2f 74 64 3e 3c 74 64 3e 4c 69 6e 6b 3c  12</td><td>Link<
a630: 2f 74 64 3e 3c 74 64 20 61 6c 69 67 6e 3d 22 72  /td><td align="r
a640: 69 67 68 74 22 3e 32 32 32 36 33 36 3c 2f 74 64  ight">222636</td
a650: 3e 3c 74 64 20 61 6c 69 67 6e 3d 22 72 69 67 68  ><td align="righ
a660: 74 22 3e 31 38 32 30 30 30 3c 2f 74 64 3e 3c 74  t">182000</td><t
a670: 64 20 61 6c 69 67 6e 3d 22 72 69 67 68 74 22 3e  d align="right">
a680: 31 37 38 37 33 31 3c 2f 74 64 3e 3c 74 64 20 61  178731</td><td a
a690: 6c 69 67 6e 3d 22 72 69 67 68 74 22 3e 31 34 2e  lign="right">14.
a6a0: 33 36 33 34 30 38 3c 2f 74 64 3e 3c 74 64 3e 4e  363408</td><td>N
a6b0: 55 4c 4c 3c 2f 74 64 3e 3c 74 64 3e 56 49 41 20  ULL</td><td>VIA 
a6c0: 50 49 45 54 52 4f 20 41 52 45 54 49 4e 4f 3c 2f  PIETRO ARETINO</
a6d0: 74 64 3e 0d 0a 3c 2f 74 72 3e 0d 0a 3c 2f 74 61  td>..</tr>..</ta
a6e0: 62 6c 65 3e 0d 0a 3c 62 72 3e 0d 0a 41 73 20 79  ble>..<br>..As y
a6f0: 6f 75 20 63 61 6e 20 65 61 73 69 6c 79 20 6e 6f  ou can easily no
a700: 74 69 63 65 2c 20 74 68 65 20 6f 70 74 69 6d 61  tice, the optima
a710: 6c 20 70 61 74 68 73 20 72 65 74 75 72 6e 65 64  l paths returned
a720: 20 62 79 20 74 68 65 20 3c 62 3e 62 79 63 61 72   by the <b>bycar
a730: 3c 2f 62 3e 20 56 69 72 74 75 61 6c 52 6f 75 74  </b> VirtualRout
a740: 69 6e 67 20 54 61 62 6c 65 20 74 68 65 20 70 61  ing Table the pa
a750: 74 68 73 20 69 6e 20 6f 70 70 6f 73 69 74 65 20  ths in opposite 
a760: 64 69 72 65 63 74 69 6f 6e 73 20 73 74 72 6f 6e  directions stron
a770: 67 6c 79 20 64 69 66 66 65 72 20 62 65 74 77 65  gly differ betwe
a780: 65 6e 20 74 68 65 6d 2c 20 61 6e 64 20 62 6f 74  en them, and bot
a790: 68 20 61 72 65 20 63 6f 6d 70 6c 65 74 65 6c 79  h are completely
a7a0: 20 64 69 66 66 65 72 65 6e 74 20 66 72 6f 6d 20   different from 
a7b0: 74 68 65 20 70 61 74 68 20 72 65 74 75 72 6e 65  the path returne
a7c0: 64 20 62 79 20 71 75 65 72 79 69 6e 67 20 3c 62  d by querying <b
a7d0: 3e 62 79 66 6f 6f 74 3c 2f 62 3e 2e 3c 62 72 3e  >byfoot</b>.<br>
a7e0: 0d 0a 41 20 71 75 69 63 6b 20 67 6c 61 6e 63 65  ..A quick glance
a7f0: 20 61 74 20 74 68 65 20 62 65 6c 6f 77 20 6d 61   at the below ma
a800: 70 20 77 69 6c 6c 20 73 75 72 65 6c 79 20 68 65  p will surely he
a810: 6c 70 20 74 6f 20 75 6e 64 65 72 73 74 61 6e 64  lp to understand
a820: 20 62 65 74 74 65 72 20 77 68 61 74 27 73 20 72   better what's r
a830: 65 61 6c 6c 79 20 68 61 70 70 65 6e 69 6e 67 2e  eally happening.
a840: 3c 62 72 3e 0d 0a 54 68 69 73 20 69 73 20 61 20  <br>..This is a 
a850: 63 65 6e 74 72 61 6c 20 61 72 65 61 20 6f 66 20  central area of 
a860: 74 68 65 20 74 6f 77 6e 20 6f 66 20 41 72 65 7a  the town of Arez
a870: 7a 6f 20 61 72 6f 75 6e 64 20 74 68 65 20 61 72  zo around the ar
a880: 63 68 61 65 6f 6c 6f 67 69 63 61 6c 20 72 75 69  chaeological rui
a890: 6e 73 20 6f 66 20 74 68 65 20 52 6f 6d 61 6e 20  ns of the Roman 
a8a0: 41 6d 70 68 69 74 68 65 61 74 65 72 3b 20 63 69  Amphitheater; ci
a8b0: 72 63 75 6c 61 74 69 6e 67 20 62 79 20 63 61 72  rculating by car
a8c0: 20 69 73 20 64 69 73 63 6f 75 72 61 67 65 64 20   is discouraged 
a8d0: 61 6e 64 20 69 73 20 73 75 62 6a 65 63 74 20 74  and is subject t
a8e0: 6f 20 6d 61 6e 79 20 6f 6e 65 2d 77 61 79 20 72  o many one-way r
a8f0: 65 73 74 72 69 63 74 69 6f 6e 73 2e 20 4e 6f 74  estrictions. Not
a900: 20 73 75 72 70 72 69 73 69 6e 67 6c 79 2c 20 6d   surprisingly, m
a910: 6f 76 69 6e 67 20 62 79 20 66 6f 6f 74 20 69 73  oving by foot is
a920: 20 74 68 65 20 66 61 73 74 65 72 20 6f 70 74 69   the faster opti
a930: 6f 6e 2e 0d 0a 3c 62 72 3e 3c 62 72 3e 0d 0a 3c  on...<br><br>..<
a940: 69 6d 67 20 73 72 63 3d 22 68 74 74 70 73 3a 2f  img src="https:/
a950: 2f 77 77 77 2e 67 61 69 61 2d 67 69 73 2e 69 74  /www.gaia-gis.it
a960: 2f 67 61 69 61 2d 73 69 6e 73 2f 72 6f 75 74 69  /gaia-sins/routi
a970: 6e 67 2d 66 69 67 73 2f 72 6f 75 74 69 6e 67 31  ng-figs/routing1
a980: 2e 6a 70 67 22 20 61 6c 74 3d 22 66 69 67 31 22  .jpg" alt="fig1"
a990: 3e 0d 0a 3c 75 6c 3e 0d 0a 3c 6c 69 3e 79 65 6c  >..<ul>..<li>yel
a9a0: 6c 6f 77 20 70 61 74 68 3a 20 70 65 64 65 73 74  low path: pedest
a9b0: 72 69 61 6e 73 3c 2f 6c 69 3e 0d 0a 3c 6c 69 3e  rians</li>..<li>
a9c0: 67 72 65 65 6e 20 70 61 74 68 3a 20 63 61 72 2c  green path: car,
a9d0: 20 64 69 72 65 63 74 20 64 69 72 65 63 74 69 6f   direct directio
a9e0: 6e 3c 2f 6c 69 3e 0d 0a 3c 6c 69 3e 72 65 64 20  n</li>..<li>red 
a9f0: 70 61 74 68 3a 20 63 61 72 2c 20 72 65 74 75 72  path: car, retur
aa00: 6e 20 64 69 72 65 63 74 69 6f 6e 3c 2f 6c 69 3e  n direction</li>
aa10: 0d 0a 3c 2f 75 6c 3e 0d 0a 3c 62 72 3e 0d 0a 3c  ..</ul>..<br>..<
aa20: 74 61 62 6c 65 20 62 67 63 6f 6c 6f 72 3d 22 23  table bgcolor="#
aa30: 63 30 66 66 63 30 22 20 63 65 6c 6c 73 70 61 63  c0ffc0" cellspac
aa40: 69 6e 67 3d 22 31 30 22 20 63 65 6c 6c 70 61 64  ing="10" cellpad
aa50: 64 69 6e 67 3d 22 36 22 3e 3c 74 72 3e 3c 74 64  ding="6"><tr><td
aa60: 3e 0d 0a 3c 68 33 3e 4c 69 6e 65 73 74 72 69 6e  >..<h3>Linestrin
aa70: 67 73 20 72 65 74 75 72 6e 65 64 20 62 79 20 56  gs returned by V
aa80: 69 72 74 75 61 6c 52 6f 75 74 69 6e 67 3c 2f 68  irtualRouting</h
aa90: 33 3e 0d 0a 41 6c 6c 20 4c 49 4e 45 53 54 52 49  3>..All LINESTRI
aaa0: 4e 47 20 47 65 6f 6d 65 74 72 69 65 73 20 63 72  NG Geometries cr
aab0: 65 61 74 65 64 20 62 79 20 61 6e 79 20 56 69 72  eated by any Vir
aac0: 74 75 61 6c 52 6f 75 74 69 6e 67 20 77 69 6c 6c  tualRouting will
aad0: 20 61 6c 77 61 79 73 20 63 6f 6e 74 61 69 6e 20   always contain 
aae0: 3c 62 3e 4d 20 76 61 6c 75 65 73 3c 2f 62 3e 3a  <b>M values</b>:
aaf0: 0d 0a 3c 75 6c 3e 0d 0a 3c 6c 69 3e 69 66 20 74  ..<ul>..<li>if t
ab00: 68 65 20 75 6e 64 65 72 6c 61 79 69 6e 67 20 4e  he underlaying N
ab10: 65 74 77 6f 72 6b 27 73 20 47 65 6f 6d 65 74 72  etwork's Geometr
ab20: 69 65 73 20 61 72 65 20 3c 62 3e 58 59 3c 2f 62  ies are <b>XY</b
ab30: 3e 20 74 68 65 6e 20 3c 62 3e 58 59 4d 3c 2f 62  > then <b>XYM</b
ab40: 3e 20 4c 69 6e 65 73 74 72 69 6e 67 73 20 77 69  > Linestrings wi
ab50: 6c 6c 20 62 65 20 72 65 74 75 72 6e 65 64 2e 3c  ll be returned.<
ab60: 2f 6c 69 3e 0d 0a 3c 6c 69 3e 69 66 20 74 68 65  /li>..<li>if the
ab70: 20 75 6e 64 65 72 6c 61 79 69 6e 67 20 4e 65 74   underlaying Net
ab80: 77 6f 72 6b 27 73 20 47 65 6f 6d 65 74 72 69 65  work's Geometrie
ab90: 73 20 61 72 65 20 3c 62 3e 58 59 5a 3c 2f 62 3e  s are <b>XYZ</b>
aba0: 20 74 68 65 6e 20 3c 62 3e 58 59 5a 4d 3c 2f 62   then <b>XYZM</b
abb0: 3e 20 4c 69 6e 65 73 74 72 69 6e 67 73 20 77 69  > Linestrings wi
abc0: 6c 6c 20 62 65 20 72 65 74 75 72 6e 65 64 2e 3c  ll be returned.<
abd0: 2f 6c 69 3e 0d 0a 3c 6c 69 3e 69 66 20 74 68 65  /li>..<li>if the
abe0: 20 75 6e 64 65 72 6c 61 79 69 6e 67 20 4e 65 74   underlaying Net
abf0: 77 6f 72 6b 27 73 20 47 65 6f 6d 65 74 72 69 65  work's Geometrie
ac00: 73 20 61 72 65 20 3c 62 3e 58 59 4d 3c 2f 62 3e  s are <b>XYM</b>
ac10: 20 6f 72 20 3c 62 3e 58 59 5a 4d 3c 2f 62 3e 20   or <b>XYZM</b> 
ac20: 74 68 65 6e 20 20 4c 69 6e 65 73 74 72 69 6e 67  then  Linestring
ac30: 73 20 72 65 74 75 72 6e 65 64 20 69 6e 74 6f 20  s returned into 
ac40: 74 68 65 20 72 65 73 75 6c 74 73 65 74 20 77 69  the resultset wi
ac50: 6c 6c 20 6d 61 69 6e 74 61 69 6e 20 74 68 65 20  ll maintain the 
ac60: 73 61 6d 65 20 64 69 6d 65 6e 73 69 6f 6e 73 20  same dimensions 
ac70: 61 73 20 69 6e 20 74 68 65 20 75 6e 64 65 72 6c  as in the underl
ac80: 61 79 69 6e 67 20 4e 65 74 77 6f 72 6b 2e 3c 2f  aying Network.</
ac90: 6c 69 3e 0d 0a 3c 6c 69 3e 69 6e 20 61 6e 79 20  li>..<li>in any 
aca0: 63 61 73 65 20 74 68 65 20 3c 62 3e 4d 3c 2f 62  case the <b>M</b
acb0: 3e 20 76 61 6c 75 65 73 20 77 69 6c 6c 20 62 65  > values will be
acc0: 20 61 70 70 72 6f 70 72 69 61 74 65 6c 79 20 73   appropriately s
acd0: 65 74 20 73 6f 20 74 6f 20 72 65 70 72 65 73 65  et so to represe
ace0: 6e 74 20 74 68 65 20 3c 75 3e 70 61 72 74 69 61  nt the <u>partia
acf0: 6c 20 63 6f 73 74 3c 2f 75 3e 20 63 6f 72 72 65  l cost</u> corre
ad00: 73 70 6f 6e 64 69 6e 67 20 74 6f 20 65 61 63 68  sponding to each
ad10: 20 76 65 72 74 65 78 2e 0d 0a 28 69 66 20 74 68   vertex...(if th
ad20: 65 20 69 6e 70 75 74 20 4c 69 6e 65 73 74 72 69  e input Linestri
ad30: 6e 67 73 20 61 6c 72 65 61 64 79 20 63 6f 6e 74  ngs already cont
ad40: 61 69 6e 73 20 4d 2d 76 61 6c 75 65 73 20 74 68  ains M-values th
ad50: 65 79 27 6c 6c 20 62 65 20 6f 76 65 72 77 72 69  ey'll be overwri
ad60: 74 74 65 6e 29 2e 3c 2f 6c 69 3e 0d 0a 3c 2f 75  tten).</li>..</u
ad70: 6c 3e 0d 0a 3c 62 72 3e 0d 0a 49 6e 20 6f 74 68  l>..<br>..In oth
ad80: 65 72 20 77 6f 72 64 73 2c 20 61 6c 6c 20 4c 69  er words, all Li
ad90: 6e 65 73 74 72 69 6e 67 73 20 72 65 74 75 72 6e  nestrings return
ada0: 65 64 20 62 79 20 56 69 72 74 75 61 6c 52 6f 75  ed by VirtualRou
adb0: 74 69 6e 67 20 63 61 6e 20 65 66 66 65 63 74 69  ting can effecti
adc0: 76 65 6c 79 20 73 75 70 70 6f 72 74 20 3c 62 3e  vely support <b>
add0: 4c 52 3c 2f 62 3e 20 28 3c 69 3e 4c 69 6e 65 61  LR</b> (<i>Linea
ade0: 72 20 52 65 66 65 72 65 6e 63 69 6e 67 3c 2f 69  r Referencing</i
adf0: 3e 29 20 53 51 4c 20 66 75 6e 63 74 69 6f 6e 73  >) SQL functions
ae00: 2c 20 61 73 20 69 6e 20 74 68 65 20 66 6f 6c 6c  , as in the foll
ae10: 6f 77 69 6e 67 20 65 78 61 6d 70 6c 65 73 3a 0d  owing examples:.
ae20: 0a 3c 76 65 72 62 61 74 69 6d 3e 0d 0a 53 45 4c  .<verbatim>..SEL
ae30: 45 43 54 20 53 54 5f 4c 6f 63 61 74 65 5f 42 65  ECT ST_Locate_Be
ae40: 74 77 65 65 6e 5f 4d 65 61 73 75 72 65 73 28 3c  tween_Measures(<
ae50: 67 65 6f 6d 65 74 72 79 3e 2c 20 33 30 2e 30 2c  geometry>, 30.0,
ae60: 20 34 35 2e 30 29 3b 0d 0a 0d 0a 53 45 4c 45 43   45.0);....SELEC
ae70: 54 20 53 54 5f 4c 6f 63 61 74 65 5f 42 65 74 77  T ST_Locate_Betw
ae80: 65 65 6e 5f 4d 65 61 73 75 72 65 73 28 3c 67 65  een_Measures(<ge
ae90: 6f 6d 65 74 72 79 3e 2c 20 38 30 2e 30 2c 20 39  ometry>, 80.0, 9
aea0: 35 2e 30 29 3b 0d 0a 3c 2f 76 65 72 62 61 74 69  5.0);..</verbati
aeb0: 6d 3e 0d 0a 54 68 65 20 73 69 64 65 20 6d 61 70  m>..The side map
aec0: 20 67 72 61 70 68 69 63 61 6c 6c 79 20 73 68 6f   graphically sho
aed0: 77 73 20 74 68 65 20 65 73 74 69 6d 61 74 65 64  ws the estimated
aee0: 20 70 6f 73 69 74 69 6f 6e 73 20 72 65 73 70 65   positions respe
aef0: 63 74 69 76 65 6c 79 20 3c 62 3e 33 30 3c 2f 62  ctively <b>30</b
af00: 3e 2d 3c 62 3e 34 35 3c 2f 62 3e 20 73 65 63 6f  >-<b>45</b> seco
af10: 6e 64 73 20 61 66 74 65 72 20 73 74 61 72 74 69  nds after starti
af20: 6e 67 20 28 79 65 6c 6c 6f 77 20 64 6f 74 74 65  ng (yellow dotte
af30: 64 20 6c 69 6e 65 29 20 61 6e 64 20 3c 62 3e 38  d line) and <b>8
af40: 30 3c 2f 62 3e 2d 3c 62 3e 39 35 3c 2f 62 3e 20  0</b>-<b>95</b> 
af50: 73 65 63 6f 6e 64 73 20 61 66 74 65 72 20 73 74  seconds after st
af60: 61 72 74 69 6e 67 20 28 67 72 65 65 6e 20 64 6f  arting (green do
af70: 74 74 65 64 20 6c 69 6e 65 29 2e 3c 62 72 3e 0d  tted line).<br>.
af80: 0a 28 61 73 73 75 6d 69 6e 67 20 74 68 65 20 73  .(assuming the s
af90: 61 6d 65 20 70 61 74 68 20 72 65 74 75 72 6e 65  ame path returne
afa0: 64 20 62 79 20 74 68 65 20 6c 61 74 65 73 74 20  d by the latest 
afb0: 3c 62 3e 62 79 63 61 72 3c 2f 62 3e 20 71 75 65  <b>bycar</b> que
afc0: 72 79 29 2e 0d 0a 3c 2f 74 64 3e 0d 0a 3c 74 64  ry)...</td>..<td
afd0: 3e 3c 69 6d 67 20 73 72 63 3d 22 68 74 74 70 73  ><img src="https
afe0: 3a 2f 2f 77 77 77 2e 67 61 69 61 2d 67 69 73 2e  ://www.gaia-gis.
aff0: 69 74 2f 67 61 69 61 2d 73 69 6e 73 2f 72 6f 75  it/gaia-sins/rou
b000: 74 69 6e 67 2d 66 69 67 73 2f 72 6f 75 74 69 6e  ting-figs/routin
b010: 67 32 2e 6a 70 67 22 20 61 6c 74 3d 22 66 69 67  g2.jpg" alt="fig
b020: 32 22 3e 3c 2f 74 64 3e 0d 0a 3c 2f 74 72 3e 0d  2"></td>..</tr>.
b030: 0a 3c 2f 74 61 62 6c 65 3e 0d 0a 3c 62 72 3e 0d  .</table>..<br>.
b040: 0a 3c 68 32 3e 50 6c 61 79 69 6e 67 20 77 69 74  .<h2>Playing wit
b050: 68 20 56 69 72 74 75 61 6c 52 6f 75 74 69 6e 67  h VirtualRouting
b060: 20 63 6f 6e 66 69 67 75 72 61 62 6c 65 20 6f 70   configurable op
b070: 74 69 6f 6e 73 3c 2f 68 32 3e 0d 0a 53 65 76 65  tions</h2>..Seve
b080: 72 61 6c 20 61 73 70 65 63 74 73 20 6f 66 20 56  ral aspects of V
b090: 69 72 74 75 61 6c 52 6f 75 74 69 6e 67 20 63 61  irtualRouting ca
b0a0: 6e 20 62 65 20 66 72 65 65 6c 79 20 63 75 73 74  n be freely cust
b0b0: 6f 6d 69 7a 65 64 2e 0d 0a 3c 76 65 72 62 61 74  omized...<verbat
b0c0: 69 6d 3e 0d 0a 55 50 44 41 54 45 20 62 79 66 6f  im>..UPDATE byfo
b0d0: 6f 74 20 53 45 54 20 41 6c 67 6f 72 69 74 68 6d  ot SET Algorithm
b0e0: 20 3d 20 27 41 2a 27 3b 0d 0a 0d 0a 53 45 4c 45   = 'A*';....SELE
b0f0: 43 54 20 41 6c 67 6f 72 69 74 68 6d 2c 20 4f 70  CT Algorithm, Op
b100: 74 69 6f 6e 73 2c 20 52 6f 75 74 65 52 6f 77 2c  tions, RouteRow,
b110: 20 52 6f 6c 65 2c 20 4c 69 6e 6b 52 6f 77 69 64   Role, LinkRowid
b120: 2c 20 4e 6f 64 65 46 72 6f 6d 2c 20 4e 6f 64 65  , NodeFrom, Node
b130: 54 6f 2c 20 43 6f 73 74 2c 20 47 65 6f 6d 65 74  To, Cost, Geomet
b140: 72 79 2c 20 4e 61 6d 65 0d 0a 46 52 4f 4d 20 62  ry, Name..FROM b
b150: 79 66 6f 6f 74 0d 0a 57 48 45 52 45 20 4e 6f 64  yfoot..WHERE Nod
b160: 65 46 72 6f 6d 20 3d 20 31 37 38 37 33 31 20 41  eFrom = 178731 A
b170: 4e 44 20 4e 6f 64 65 54 6f 20 3d 20 31 38 33 32  ND NodeTo = 1832
b180: 38 36 3b 0d 0a 3c 2f 76 65 72 62 61 74 69 6d 3e  86;..</verbatim>
b190: 0d 0a 49 66 20 79 6f 75 20 72 65 6d 65 6d 62 65  ..If you remembe
b1a0: 72 20 69 6e 20 61 6c 6c 20 74 68 65 20 70 72 65  r in all the pre
b1b0: 76 69 6f 75 73 20 65 78 61 6d 70 6c 65 73 20 74  vious examples t
b1c0: 68 65 20 3c 62 3e 44 69 6a 6b 73 74 72 61 27 73  he <b>Dijkstra's
b1d0: 3c 2f 62 3e 20 61 6c 67 6f 72 69 74 68 6d 20 77  </b> algorithm w
b1e0: 61 73 20 75 73 65 64 3b 20 6e 6f 77 20 28 61 66  as used; now (af
b1f0: 74 65 72 20 65 78 65 63 75 74 69 6e 67 20 74 68  ter executing th
b200: 65 20 61 62 6f 76 65 20 3c 62 3e 55 50 44 41 54  e above <b>UPDAT
b210: 45 3c 2f 62 3e 29 20 61 6c 6c 20 53 68 6f 72 74  E</b>) all Short
b220: 65 73 74 20 50 61 74 68 20 71 75 65 72 69 65 73  est Path queries
b230: 20 77 69 6c 6c 20 62 65 20 62 61 73 65 64 20 6f   will be based o
b240: 6e 20 74 68 65 20 61 6c 74 65 72 6e 61 74 69 76  n the alternativ
b250: 65 20 3c 62 3e 41 2a 3c 2f 62 3e 20 61 6c 67 6f  e <b>A*</b> algo
b260: 72 69 74 68 6d 2e 3c 62 72 3e 0d 0a 49 66 20 79  rithm.<br>..If y
b270: 6f 75 20 77 69 73 68 20 74 6f 20 73 65 6c 65 63  ou wish to selec
b280: 74 20 61 67 61 69 6e 20 74 68 65 20 44 69 6a 6b  t again the Dijk
b290: 73 74 61 27 73 20 61 6c 67 6f 72 69 74 68 6d 20  sta's algorithm 
b2a0: 79 6f 75 20 6a 75 73 74 20 68 61 76 65 20 74 6f  you just have to
b2b0: 20 65 78 65 63 75 74 65 3c 62 72 3e 20 3c 62 3e   execute<br> <b>
b2c0: 55 50 44 41 54 45 20 62 79 66 6f 6f 74 20 53 45  UPDATE byfoot SE
b2d0: 54 20 41 6c 67 6f 72 69 74 68 6d 20 3d 20 27 44  T Algorithm = 'D
b2e0: 49 4a 4b 53 54 52 41 27 3b 3c 2f 62 3e 2e 3c 62  IJKSTRA';</b>.<b
b2f0: 72 3e 3c 62 72 3e 0d 0a 54 68 65 20 66 6f 6c 6c  r><br>..The foll
b300: 6f 77 69 6e 67 20 74 61 62 6c 65 20 73 68 6f 77  owing table show
b310: 73 20 74 68 65 20 72 65 73 75 6c 74 73 65 74 20  s the resultset 
b320: 72 65 74 75 72 6e 65 64 20 62 79 20 74 68 65 20  returned by the 
b330: 70 72 65 76 69 6f 75 73 20 53 68 6f 72 74 65 73  previous Shortes
b340: 74 20 50 61 74 68 20 71 75 65 72 79 3b 20 70 6c  t Path query; pl
b350: 65 61 73 65 20 6e 6f 74 69 63 65 20 74 68 65 20  ease notice the 
b360: 76 61 6c 75 65 20 69 6e 20 74 68 65 20 3c 62 3e  value in the <b>
b370: 41 6c 67 6f 72 69 74 68 6d 3c 2f 62 3e 20 63 6f  Algorithm</b> co
b380: 6c 75 6d 6e 2e 0d 0a 3c 62 72 3e 3c 62 72 3e 0d  lumn...<br><br>.
b390: 0a 3c 74 61 62 6c 65 20 62 6f 72 64 65 72 3d 22  .<table border="
b3a0: 31 22 20 62 67 63 6f 6c 6f 72 3d 22 23 66 66 66  1" bgcolor="#fff
b3b0: 66 63 66 22 20 63 65 6c 6c 73 70 61 63 69 6e 67  fcf" cellspacing
b3c0: 3d 22 34 22 20 63 65 6c 6c 70 61 64 64 69 6e 67  ="4" cellpadding
b3d0: 3d 22 36 22 3e 0d 0a 3c 74 72 3e 3c 74 68 20 62  ="6">..<tr><th b
b3e0: 67 63 6f 6c 6f 72 3d 22 23 64 30 64 30 61 30 22  gcolor="#d0d0a0"
b3f0: 3e 41 6c 67 6f 72 69 74 68 6d 3c 2f 74 68 3e 3c  >Algorithm</th><
b400: 74 68 20 62 67 63 6f 6c 6f 72 3d 22 23 64 30 64  th bgcolor="#d0d
b410: 30 61 30 22 3e 4f 70 74 69 6f 6e 73 3c 2f 74 68  0a0">Options</th
b420: 3e 3c 74 68 20 62 67 63 6f 6c 6f 72 3d 22 23 64  ><th bgcolor="#d
b430: 30 64 30 61 30 22 3e 52 6f 75 74 65 52 6f 77 3c  0d0a0">RouteRow<
b440: 2f 74 68 3e 3c 74 68 20 62 67 63 6f 6c 6f 72 3d  /th><th bgcolor=
b450: 22 23 64 30 64 30 61 30 22 3e 52 6f 6c 65 3c 2f  "#d0d0a0">Role</
b460: 74 68 3e 3c 74 68 20 62 67 63 6f 6c 6f 72 3d 22  th><th bgcolor="
b470: 23 64 30 64 30 61 30 22 3e 4c 69 6e 6b 52 6f 77  #d0d0a0">LinkRow
b480: 69 64 3c 2f 74 68 3e 3c 74 68 20 62 67 63 6f 6c  id</th><th bgcol
b490: 6f 72 3d 22 23 64 30 64 30 61 30 22 3e 4e 6f 64  or="#d0d0a0">Nod
b4a0: 65 46 72 6f 6d 3c 2f 74 68 3e 3c 74 68 20 62 67  eFrom</th><th bg
b4b0: 63 6f 6c 6f 72 3d 22 23 64 30 64 30 61 30 22 3e  color="#d0d0a0">
b4c0: 4e 6f 64 65 54 6f 3c 2f 74 68 3e 3c 74 68 20 62  NodeTo</th><th b
b4d0: 67 63 6f 6c 6f 72 3d 22 23 64 30 64 30 61 30 22  gcolor="#d0d0a0"
b4e0: 3e 43 6f 73 74 3c 2f 74 68 3e 3c 74 68 20 62 67  >Cost</th><th bg
b4f0: 63 6f 6c 6f 72 3d 22 23 64 30 64 30 61 30 22 3e  color="#d0d0a0">
b500: 47 65 6f 6d 65 74 72 79 3c 2f 74 68 3e 3c 74 68  Geometry</th><th
b510: 20 62 67 63 6f 6c 6f 72 3d 22 23 64 30 64 30 61   bgcolor="#d0d0a
b520: 30 22 3e 4e 61 6d 65 3c 2f 74 68 3e 3c 2f 74 72  0">Name</th></tr
b530: 3e 0d 0a 3c 74 72 3e 3c 74 64 3e 41 2a 3c 2f 74  >..<tr><td>A*</t
b540: 64 3e 3c 74 64 3e 46 75 6c 6c 3c 2f 74 64 3e 3c  d><td>Full</td><
b550: 74 64 20 61 6c 69 67 6e 3d 22 72 69 67 68 74 22  td align="right"
b560: 3e 30 3c 2f 74 64 3e 3c 74 64 3e 52 6f 75 74 65  >0</td><td>Route
b570: 3c 2f 74 64 3e 3c 74 64 3e 4e 55 4c 4c 3c 2f 74  </td><td>NULL</t
b580: 64 3e 3c 74 64 20 61 6c 69 67 6e 3d 22 72 69 67  d><td align="rig
b590: 68 74 22 3e 31 37 38 37 33 31 3c 2f 74 64 3e 3c  ht">178731</td><
b5a0: 74 64 20 61 6c 69 67 6e 3d 22 72 69 67 68 74 22  td align="right"
b5b0: 3e 31 38 33 32 38 36 3c 2f 74 64 3e 3c 74 64 20  >183286</td><td 
b5c0: 61 6c 69 67 6e 3d 22 72 69 67 68 74 22 3e 33 30  align="right">30
b5d0: 30 2e 39 31 32 32 30 38 3c 2f 74 64 3e 3c 74 64  0.912208</td><td
b5e0: 3e 42 4c 4f 42 20 73 7a 3d 32 37 32 20 47 45 4f  >BLOB sz=272 GEO
b5f0: 4d 45 54 52 59 3c 2f 74 64 3e 3c 74 64 3e 4e 55  METRY</td><td>NU
b600: 4c 4c 3c 2f 74 64 3e 0d 0a 3c 2f 74 72 3e 0d 0a  LL</td>..</tr>..
b610: 3c 74 72 3e 0d 0a 3c 74 64 3e 4e 55 4c 4c 3c 2f  <tr>..<td>NULL</
b620: 74 64 3e 3c 74 64 3e 4e 55 4c 4c 3c 2f 74 64 3e  td><td>NULL</td>
b630: 3c 74 64 20 61 6c 69 67 6e 3d 22 72 69 67 68 74  <td align="right
b640: 22 3e 31 3c 2f 74 64 3e 3c 74 64 3e 4c 69 6e 6b  ">1</td><td>Link
b650: 3c 2f 74 64 3e 3c 74 64 20 61 6c 69 67 6e 3d 22  </td><td align="
b660: 72 69 67 68 74 22 3e 32 32 34 30 31 34 3c 2f 74  right">224014</t
b670: 64 3e 3c 74 64 20 61 6c 69 67 6e 3d 22 72 69 67  d><td align="rig
b680: 68 74 22 3e 31 37 38 37 33 31 3c 2f 74 64 3e 3c  ht">178731</td><
b690: 74 64 20 61 6c 69 67 6e 3d 22 72 69 67 68 74 22  td align="right"
b6a0: 3e 31 38 32 38 38 35 3c 2f 74 64 3e 3c 74 64 20  >182885</td><td 
b6b0: 61 6c 69 67 6e 3d 22 72 69 67 68 74 22 3e 39 34  align="right">94
b6c0: 2e 38 31 32 34 32 34 3c 2f 74 64 3e 3c 74 64 3e  .812424</td><td>
b6d0: 4e 55 4c 4c 3c 2f 74 64 3e 3c 74 64 3e 56 49 41  NULL</td><td>VIA
b6e0: 20 50 49 45 54 52 4f 20 41 52 45 54 49 4e 4f 3c   PIETRO ARETINO<
b6f0: 2f 74 64 3e 0d 0a 3c 2f 74 72 3e 0d 0a 3c 74 72  /td>..</tr>..<tr
b700: 3e 0d 0a 3c 74 64 3e 4e 55 4c 4c 3c 2f 74 64 3e  >..<td>NULL</td>
b710: 3c 74 64 3e 4e 55 4c 4c 3c 2f 74 64 3e 3c 74 64  <td>NULL</td><td
b720: 20 61 6c 69 67 6e 3d 22 72 69 67 68 74 22 3e 32   align="right">2
b730: 3c 2f 74 64 3e 3c 74 64 3e 4c 69 6e 6b 3c 2f 74  </td><td>Link</t
b740: 64 3e 3c 74 64 20 61 6c 69 67 6e 3d 22 72 69 67  d><td align="rig
b750: 68 74 22 3e 32 32 34 34 34 36 3c 2f 74 64 3e 3c  ht">224446</td><
b760: 74 64 20 61 6c 69 67 6e 3d 22 72 69 67 68 74 22  td align="right"
b770: 3e 31 38 32 38 38 35 3c 2f 74 64 3e 3c 74 64 20  >182885</td><td 
b780: 61 6c 69 67 6e 3d 22 72 69 67 68 74 22 3e 31 37  align="right">17
b790: 38 38 38 30 3c 2f 74 64 3e 3c 74 64 20 61 6c 69  8880</td><td ali
b7a0: 67 6e 3d 22 72 69 67 68 74 22 3e 36 39 2e 37 32  gn="right">69.72
b7b0: 37 37 32 36 3c 2f 74 64 3e 3c 74 64 3e 4e 55 4c  7726</td><td>NUL
b7c0: 4c 3c 2f 74 64 3e 3c 74 64 3e 56 49 41 20 4d 41  L</td><td>VIA MA
b7d0: 52 47 41 52 49 54 4f 4e 45 3c 2f 74 64 3e 0d 0a  RGARITONE</td>..
b7e0: 3c 2f 74 72 3e 0d 0a 3c 74 72 3e 0d 0a 3c 74 64  </tr>..<tr>..<td
b7f0: 3e 4e 55 4c 4c 3c 2f 74 64 3e 3c 74 64 3e 4e 55  >NULL</td><td>NU
b800: 4c 4c 3c 2f 74 64 3e 3c 74 64 20 61 6c 69 67 6e  LL</td><td align
b810: 3d 22 72 69 67 68 74 22 3e 33 3c 2f 74 64 3e 3c  ="right">3</td><
b820: 74 64 3e 4c 69 6e 6b 3c 2f 74 64 3e 3c 74 64 20  td>Link</td><td 
b830: 61 6c 69 67 6e 3d 22 72 69 67 68 74 22 3e 32 32  align="right">22
b840: 34 34 31 34 3c 2f 74 64 3e 3c 74 64 20 61 6c 69  4414</td><td ali
b850: 67 6e 3d 22 72 69 67 68 74 22 3e 31 37 38 38 38  gn="right">17888
b860: 30 3c 2f 74 64 3e 3c 74 64 20 61 6c 69 67 6e 3d  0</td><td align=
b870: 22 72 69 67 68 74 22 3e 31 38 33 32 38 36 3c 2f  "right">183286</
b880: 74 64 3e 3c 74 64 20 61 6c 69 67 6e 3d 22 72 69  td><td align="ri
b890: 67 68 74 22 3e 31 33 36 2e 33 37 32 30 35 37 3c  ght">136.372057<
b8a0: 2f 74 64 3e 3c 74 64 3e 4e 55 4c 4c 3c 2f 74 64  /td><td>NULL</td
b8b0: 3e 3c 74 64 3e 56 49 41 20 4d 41 52 47 41 52 49  ><td>VIA MARGARI
b8c0: 54 4f 4e 45 3c 2f 74 64 3e 0d 0a 3c 2f 74 72 3e  TONE</td>..</tr>
b8d0: 0d 0a 3c 2f 74 61 62 6c 65 3e 0d 0a 3c 62 72 3e  ..</table>..<br>
b8e0: 3c 62 72 3e 3c 62 72 3e 0d 0a 59 6f 75 20 63 61  <br><br>..You ca
b8f0: 6e 20 65 76 65 6e 74 75 61 6c 6c 79 20 63 6f 6e  n eventually con
b900: 66 69 67 75 72 65 20 74 68 65 20 72 65 73 75 6c  figure the resul
b910: 74 73 65 74 20 72 65 74 75 72 6e 65 64 20 74 68  tset returned th
b920: 65 20 56 69 72 74 75 61 6c 52 6f 75 74 69 6e 67  e VirtualRouting
b930: 20 71 75 65 72 69 65 73 2e 0d 0a 3c 76 65 72 62   queries...<verb
b940: 61 74 69 6d 3e 0d 0a 55 50 44 41 54 45 20 62 79  atim>..UPDATE by
b950: 66 6f 6f 74 20 53 45 54 20 4f 70 74 69 6f 6e 73  foot SET Options
b960: 20 3d 20 27 4e 4f 20 4c 49 4e 4b 53 27 3b 0d 0a   = 'NO LINKS';..
b970: 0d 0a 53 45 4c 45 43 54 20 41 6c 67 6f 72 69 74  ..SELECT Algorit
b980: 68 6d 2c 20 4f 70 74 69 6f 6e 73 2c 20 52 6f 75  hm, Options, Rou
b990: 74 65 52 6f 77 2c 20 52 6f 6c 65 2c 20 4c 69 6e  teRow, Role, Lin
b9a0: 6b 52 6f 77 69 64 2c 20 4e 6f 64 65 46 72 6f 6d  kRowid, NodeFrom
b9b0: 2c 20 4e 6f 64 65 54 6f 2c 20 43 6f 73 74 2c 20  , NodeTo, Cost, 
b9c0: 47 65 6f 6d 65 74 72 79 2c 20 4e 61 6d 65 0d 0a  Geometry, Name..
b9d0: 46 52 4f 4d 20 62 79 66 6f 6f 74 0d 0a 57 48 45  FROM byfoot..WHE
b9e0: 52 45 20 4e 6f 64 65 46 72 6f 6d 20 3d 20 31 37  RE NodeFrom = 17
b9f0: 38 37 33 31 20 41 4e 44 20 4e 6f 64 65 54 6f 20  8731 AND NodeTo 
ba00: 3d 20 31 38 33 32 38 36 3b 0d 0a 3c 2f 76 65 72  = 183286;..</ver
ba10: 62 61 74 69 6d 3e 0d 0a 41 66 74 65 72 20 73 65  batim>..After se
ba20: 74 74 69 6e 67 20 3c 62 3e 4f 70 74 69 6f 6e 73  tting <b>Options
ba30: 3d 27 4e 4f 20 4c 49 4e 4b 53 27 3c 2f 62 3e 20  ='NO LINKS'</b> 
ba40: 74 68 65 20 72 65 73 75 6c 74 73 65 74 20 77 69  the resultset wi
ba50: 6c 6c 20 73 69 6d 70 6c 79 20 63 6f 6e 74 61 69  ll simply contai
ba60: 6e 20 74 68 65 20 68 65 61 64 65 72 20 72 6f 77  n the header row
ba70: 2c 20 61 6e 64 20 61 6c 6c 20 74 68 65 20 66 6f  , and all the fo
ba80: 6c 6c 6f 77 69 6e 67 20 72 6f 77 73 20 77 69 6c  llowing rows wil
ba90: 6c 20 62 65 20 73 75 70 70 72 65 73 73 65 64 2e  l be suppressed.
baa0: 3c 62 72 3e 0d 0a 3c 75 3e 4e 6f 74 65 3c 2f 75  <br>..<u>Note</u
bab0: 3e 3a 20 70 72 6f 64 75 63 69 6e 67 20 61 20 72  >: producing a r
bac0: 65 64 75 63 65 64 20 72 65 73 75 6c 74 73 65 74  educed resultset
bad0: 20 69 73 20 65 78 70 65 63 74 65 64 20 74 6f 20   is expected to 
bae0: 62 65 20 73 6f 6d 65 77 61 79 20 66 61 73 74 65  be someway faste
baf0: 72 2e 3c 62 72 3e 0d 0a 54 68 65 20 66 6f 6c 6c  r.<br>..The foll
bb00: 6f 77 69 6e 67 20 74 61 62 6c 65 20 73 68 6f 77  owing table show
bb10: 73 20 74 68 65 20 72 65 73 75 6c 74 73 65 74 20  s the resultset 
bb20: 72 65 74 75 72 6e 65 64 20 62 79 20 74 68 65 20  returned by the 
bb30: 70 72 65 76 69 6f 75 73 20 53 68 6f 72 74 65 73  previous Shortes
bb40: 74 20 50 61 74 68 20 71 75 65 72 79 3b 20 70 6c  t Path query; pl
bb50: 65 61 73 65 20 6e 6f 74 69 63 65 20 74 68 65 20  ease notice the 
bb60: 76 61 6c 75 65 20 69 6e 20 74 68 65 20 3c 62 3e  value in the <b>
bb70: 4f 70 74 69 6f 6e 73 3c 2f 62 3e 20 63 6f 6c 75  Options</b> colu
bb80: 6d 6e 2e 0d 0a 3c 62 72 3e 3c 62 72 3e 0d 0a 3c  mn...<br><br>..<
bb90: 74 61 62 6c 65 20 62 6f 72 64 65 72 3d 22 31 22  table border="1"
bba0: 20 62 67 63 6f 6c 6f 72 3d 22 23 66 66 66 66 63   bgcolor="#ffffc
bbb0: 66 22 20 63 65 6c 6c 73 70 61 63 69 6e 67 3d 22  f" cellspacing="
bbc0: 34 22 20 63 65 6c 6c 70 61 64 64 69 6e 67 3d 22  4" cellpadding="
bbd0: 36 22 3e 0d 0a 3c 74 72 3e 3c 74 68 20 62 67 63  6">..<tr><th bgc
bbe0: 6f 6c 6f 72 3d 22 23 64 30 64 30 61 30 22 3e 41  olor="#d0d0a0">A
bbf0: 6c 67 6f 72 69 74 68 6d 3c 2f 74 68 3e 3c 74 68  lgorithm</th><th
bc00: 20 62 67 63 6f 6c 6f 72 3d 22 23 64 30 64 30 61   bgcolor="#d0d0a
bc10: 30 22 3e 4f 70 74 69 6f 6e 73 3c 2f 74 68 3e 3c  0">Options</th><
bc20: 74 68 20 62 67 63 6f 6c 6f 72 3d 22 23 64 30 64  th bgcolor="#d0d
bc30: 30 61 30 22 3e 52 6f 75 74 65 52 6f 77 3c 2f 74  0a0">RouteRow</t
bc40: 68 3e 3c 74 68 20 62 67 63 6f 6c 6f 72 3d 22 23  h><th bgcolor="#
bc50: 64 30 64 30 61 30 22 3e 52 6f 6c 65 3c 2f 74 68  d0d0a0">Role</th
bc60: 3e 3c 74 68 20 62 67 63 6f 6c 6f 72 3d 22 23 64  ><th bgcolor="#d
bc70: 30 64 30 61 30 22 3e 4c 69 6e 6b 52 6f 77 69 64  0d0a0">LinkRowid
bc80: 3c 2f 74 68 3e 3c 74 68 20 62 67 63 6f 6c 6f 72  </th><th bgcolor
bc90: 3d 22 23 64 30 64 30 61 30 22 3e 4e 6f 64 65 46  ="#d0d0a0">NodeF
bca0: 72 6f 6d 3c 2f 74 68 3e 3c 74 68 20 62 67 63 6f  rom</th><th bgco
bcb0: 6c 6f 72 3d 22 23 64 30 64 30 61 30 22 3e 4e 6f  lor="#d0d0a0">No
bcc0: 64 65 54 6f 3c 2f 74 68 3e 3c 74 68 20 62 67 63  deTo</th><th bgc
bcd0: 6f 6c 6f 72 3d 22 23 64 30 64 30 61 30 22 3e 43  olor="#d0d0a0">C
bce0: 6f 73 74 3c 2f 74 68 3e 3c 74 68 20 62 67 63 6f  ost</th><th bgco
bcf0: 6c 6f 72 3d 22 23 64 30 64 30 61 30 22 3e 47 65  lor="#d0d0a0">Ge
bd00: 6f 6d 65 74 72 79 3c 2f 74 68 3e 3c 74 68 20 62  ometry</th><th b
bd10: 67 63 6f 6c 6f 72 3d 22 23 64 30 64 30 61 30 22  gcolor="#d0d0a0"
bd20: 3e 4e 61 6d 65 3c 2f 74 68 3e 3c 2f 74 72 3e 0d  >Name</th></tr>.
bd30: 0a 3c 74 72 3e 0d 0a 3c 74 64 3e 41 2a 3c 2f 74  .<tr>..<td>A*</t
bd40: 64 3e 3c 74 64 3e 4e 6f 20 4c 69 6e 6b 73 3c 2f  d><td>No Links</
bd50: 74 64 3e 3c 74 64 20 61 6c 69 67 6e 3d 22 72 69  td><td align="ri
bd60: 67 68 74 22 3e 30 3c 2f 74 64 3e 3c 74 64 3e 52  ght">0</td><td>R
bd70: 6f 75 74 65 3c 2f 74 64 3e 3c 74 64 3e 4e 55 4c  oute</td><td>NUL
bd80: 4c 3c 2f 74 64 3e 3c 74 64 20 61 6c 69 67 6e 3d  L</td><td align=
bd90: 22 72 69 67 68 74 22 3e 31 37 38 37 33 31 3c 2f  "right">178731</
bda0: 74 64 3e 3c 74 64 20 61 6c 69 67 6e 3d 22 72 69  td><td align="ri
bdb0: 67 68 74 22 3e 31 38 33 32 38 36 3c 2f 74 64 3e  ght">183286</td>
bdc0: 3c 74 64 20 61 6c 69 67 6e 3d 22 72 69 67 68 74  <td align="right
bdd0: 22 3e 33 30 30 2e 39 31 32 32 30 38 3c 2f 74 64  ">300.912208</td
bde0: 3e 3c 74 64 3e 42 4c 4f 42 20 73 7a 3d 32 37 32  ><td>BLOB sz=272
bdf0: 20 47 45 4f 4d 45 54 52 59 3c 2f 74 64 3e 3c 74   GEOMETRY</td><t
be00: 64 3e 4e 55 4c 4c 3c 2f 74 64 3e 0d 0a 3c 2f 74  d>NULL</td>..</t
be10: 72 3e 0d 0a 3c 2f 74 61 62 6c 65 3e 0d 0a 3c 62  r>..</table>..<b
be20: 72 3e 3c 62 72 3e 3c 62 72 3e 0d 0a 3c 76 65 72  r><br><br>..<ver
be30: 62 61 74 69 6d 3e 0d 0a 55 50 44 41 54 45 20 62  batim>..UPDATE b
be40: 79 66 6f 6f 74 20 53 45 54 20 4f 70 74 69 6f 6e  yfoot SET Option
be50: 73 20 3d 20 27 4e 4f 20 47 45 4f 4d 45 54 52 49  s = 'NO GEOMETRI
be60: 45 53 27 3b 0d 0a 0d 0a 53 45 4c 45 43 54 20 41  ES';....SELECT A
be70: 6c 67 6f 72 69 74 68 6d 2c 20 4f 70 74 69 6f 6e  lgorithm, Option
be80: 73 2c 20 52 6f 75 74 65 52 6f 77 2c 20 52 6f 6c  s, RouteRow, Rol
be90: 65 2c 20 4c 69 6e 6b 52 6f 77 69 64 2c 20 4e 6f  e, LinkRowid, No
bea0: 64 65 46 72 6f 6d 2c 20 4e 6f 64 65 54 6f 2c 20  deFrom, NodeTo, 
beb0: 43 6f 73 74 2c 20 47 65 6f 6d 65 74 72 79 2c 20  Cost, Geometry, 
bec0: 4e 61 6d 65 0d 0a 46 52 4f 4d 20 62 79 66 6f 6f  Name..FROM byfoo
bed0: 74 0d 0a 57 48 45 52 45 20 4e 6f 64 65 46 72 6f  t..WHERE NodeFro
bee0: 6d 20 3d 20 31 37 38 37 33 31 20 41 4e 44 20 4e  m = 178731 AND N
bef0: 6f 64 65 54 6f 20 3d 20 31 38 33 32 38 36 3b 0d  odeTo = 183286;.
bf00: 0a 3c 2f 76 65 72 62 61 74 69 6d 3e 41 66 74 65  .</verbatim>Afte
bf10: 72 20 73 65 74 74 69 6e 67 20 3c 62 3e 4f 70 74  r setting <b>Opt
bf20: 69 6f 6e 73 3d 27 4e 4f 20 47 45 4f 4d 45 54 52  ions='NO GEOMETR
bf30: 49 45 53 27 3c 2f 62 3e 20 74 68 65 20 72 65 73  IES'</b> the res
bf40: 75 6c 74 73 65 74 20 77 69 6c 6c 20 63 6f 6e 74  ultset will cont
bf50: 61 69 6e 20 61 6c 6c 20 72 6f 77 73 2c 20 62 75  ain all rows, bu
bf60: 74 20 61 6c 6c 20 47 65 6f 6d 65 74 72 69 65 73  t all Geometries
bf70: 20 77 69 6c 6c 20 62 65 20 73 75 70 70 72 65 73   will be suppres
bf80: 73 65 64 2e 3c 62 72 3e 0d 0a 3c 75 3e 4e 6f 74  sed.<br>..<u>Not
bf90: 65 3c 2f 75 3e 3a 20 74 68 69 73 20 74 6f 6f 20  e</u>: this too 
bfa0: 69 73 20 65 78 70 65 63 74 65 64 20 74 6f 20 62  is expected to b
bfb0: 65 20 73 6f 6d 65 77 61 79 20 66 61 73 74 65 72  e someway faster
bfc0: 2e 3c 62 72 3e 0d 0a 54 68 65 20 66 6f 6c 6c 6f  .<br>..The follo
bfd0: 77 69 6e 67 20 74 61 62 6c 65 20 73 68 6f 77 73  wing table shows
bfe0: 20 74 68 65 20 72 65 73 75 6c 74 73 65 74 20 72   the resultset r
bff0: 65 74 75 72 6e 65 64 20 62 79 20 74 68 65 20 70  eturned by the p
c000: 72 65 76 69 6f 75 73 20 53 68 6f 72 74 65 73 74  revious Shortest
c010: 20 50 61 74 68 20 71 75 65 72 79 3b 20 70 6c 65   Path query; ple
c020: 61 73 65 20 6e 6f 74 69 63 65 20 74 68 65 20 76  ase notice the v
c030: 61 6c 75 65 20 69 6e 20 74 68 65 20 3c 62 3e 4f  alue in the <b>O
c040: 70 74 69 6f 6e 73 3c 2f 62 3e 20 63 6f 6c 75 6d  ptions</b> colum
c050: 6e 2e 0d 0a 3c 62 72 3e 3c 62 72 3e 0d 0a 3c 74  n...<br><br>..<t
c060: 61 62 6c 65 20 62 6f 72 64 65 72 3d 22 31 22 20  able border="1" 
c070: 62 67 63 6f 6c 6f 72 3d 22 23 66 66 66 66 63 66  bgcolor="#ffffcf
c080: 22 20 63 65 6c 6c 73 70 61 63 69 6e 67 3d 22 34  " cellspacing="4
c090: 22 20 63 65 6c 6c 70 61 64 64 69 6e 67 3d 22 36  " cellpadding="6
c0a0: 22 3e 0d 0a 3c 74 72 3e 3c 74 68 20 62 67 63 6f  ">..<tr><th bgco
c0b0: 6c 6f 72 3d 22 23 64 30 64 30 61 30 22 3e 41 6c  lor="#d0d0a0">Al
c0c0: 67 6f 72 69 74 68 6d 3c 2f 74 68 3e 3c 74 68 20  gorithm</th><th 
c0d0: 62 67 63 6f 6c 6f 72 3d 22 23 64 30 64 30 61 30  bgcolor="#d0d0a0
c0e0: 22 3e 4f 70 74 69 6f 6e 73 3c 2f 74 68 3e 3c 74  ">Options</th><t
c0f0: 68 20 62 67 63 6f 6c 6f 72 3d 22 23 64 30 64 30  h bgcolor="#d0d0
c100: 61 30 22 3e 52 6f 75 74 65 52 6f 77 3c 2f 74 68  a0">RouteRow</th
c110: 3e 3c 74 68 20 62 67 63 6f 6c 6f 72 3d 22 23 64  ><th bgcolor="#d
c120: 30 64 30 61 30 22 3e 52 6f 6c 65 3c 2f 74 68 3e  0d0a0">Role</th>
c130: 3c 74 68 20 62 67 63 6f 6c 6f 72 3d 22 23 64 30  <th bgcolor="#d0
c140: 64 30 61 30 22 3e 4c 69 6e 6b 52 6f 77 69 64 3c  d0a0">LinkRowid<
c150: 2f 74 68 3e 3c 74 68 20 62 67 63 6f 6c 6f 72 3d  /th><th bgcolor=
c160: 22 23 64 30 64 30 61 30 22 3e 4e 6f 64 65 46 72  "#d0d0a0">NodeFr
c170: 6f 6d 3c 2f 74 68 3e 3c 74 68 20 62 67 63 6f 6c  om</th><th bgcol
c180: 6f 72 3d 22 23 64 30 64 30 61 30 22 3e 4e 6f 64  or="#d0d0a0">Nod
c190: 65 54 6f 3c 2f 74 68 3e 3c 74 68 20 62 67 63 6f  eTo</th><th bgco
c1a0: 6c 6f 72 3d 22 23 64 30 64 30 61 30 22 3e 43 6f  lor="#d0d0a0">Co
c1b0: 73 74 3c 2f 74 68 3e 3c 74 68 20 62 67 63 6f 6c  st</th><th bgcol
c1c0: 6f 72 3d 22 23 64 30 64 30 61 30 22 3e 47 65 6f  or="#d0d0a0">Geo
c1d0: 6d 65 74 72 79 3c 2f 74 68 3e 3c 74 68 20 62 67  metry</th><th bg
c1e0: 63 6f 6c 6f 72 3d 22 23 64 30 64 30 61 30 22 3e  color="#d0d0a0">
c1f0: 4e 61 6d 65 3c 2f 74 68 3e 3c 2f 74 72 3e 0d 0a  Name</th></tr>..
c200: 3c 74 72 3e 3c 74 64 3e 41 2a 3c 2f 74 64 3e 3c  <tr><td>A*</td><
c210: 74 64 3e 4e 6f 20 47 65 6f 6d 65 74 72 69 65 73  td>No Geometries
c220: 3c 2f 74 64 3e 3c 74 64 20 61 6c 69 67 6e 3d 22  </td><td align="
c230: 72 69 67 68 74 22 3e 30 3c 2f 74 64 3e 3c 74 64  right">0</td><td
c240: 3e 52 6f 75 74 65 3c 2f 74 64 3e 3c 74 64 3e 4e  >Route</td><td>N
c250: 55 4c 4c 3c 2f 74 64 3e 3c 74 64 20 61 6c 69 67  ULL</td><td alig
c260: 6e 3d 22 72 69 67 68 74 22 3e 31 37 38 37 33 31  n="right">178731
c270: 3c 2f 74 64 3e 3c 74 64 20 61 6c 69 67 6e 3d 22  </td><td align="
c280: 72 69 67 68 74 22 3e 31 38 33 32 38 36 3c 2f 74  right">183286</t
c290: 64 3e 3c 74 64 20 61 6c 69 67 6e 3d 22 72 69 67  d><td align="rig
c2a0: 68 74 22 3e 33 30 30 2e 39 31 32 32 30 38 3c 2f  ht">300.912208</
c2b0: 74 64 3e 3c 74 64 3e 4e 55 4c 4c 3c 2f 74 64 3e  td><td>NULL</td>
c2c0: 3c 74 64 3e 4e 55 4c 4c 3c 2f 74 64 3e 0d 0a 3c  <td>NULL</td>..<
c2d0: 2f 74 72 3e 0d 0a 3c 74 72 3e 0d 0a 3c 74 64 3e  /tr>..<tr>..<td>
c2e0: 4e 55 4c 4c 3c 2f 74 64 3e 3c 74 64 3e 4e 55 4c  NULL</td><td>NUL
c2f0: 4c 3c 2f 74 64 3e 3c 74 64 20 61 6c 69 67 6e 3d  L</td><td align=
c300: 22 72 69 67 68 74 22 3e 31 3c 2f 74 64 3e 3c 74  "right">1</td><t
c310: 64 3e 4c 69 6e 6b 3c 2f 74 64 3e 3c 74 64 20 61  d>Link</td><td a
c320: 6c 69 67 6e 3d 22 72 69 67 68 74 22 3e 32 32 34  lign="right">224
c330: 30 31 34 3c 2f 74 64 3e 3c 74 64 20 61 6c 69 67  014</td><td alig
c340: 6e 3d 22 72 69 67 68 74 22 3e 31 37 38 37 33 31  n="right">178731
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 38 32 38 38 35 3c 2f 74  right">182885</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 39 34 2e 38 31 32 34 32 34 3c 2f 74  ht">94.812424</t
c390: 64 3e 3c 74 64 3e 4e 55 4c 4c 3c 2f 74 64 3e 3c  d><td>NULL</td><
c3a0: 74 64 3e 56 49 41 20 50 49 45 54 52 4f 20 41 52  td>VIA PIETRO AR
c3b0: 45 54 49 4e 4f 3c 2f 74 64 3e 0d 0a 3c 2f 74 72  ETINO</td>..</tr
c3c0: 3e 0d 0a 3c 74 72 3e 0d 0a 3c 74 64 3e 4e 55 4c  >..<tr>..<td>NUL
c3d0: 4c 3c 2f 74 64 3e 3c 74 64 3e 4e 55 4c 4c 3c 2f  L</td><td>NULL</
c3e0: 74 64 3e 3c 74 64 20 61 6c 69 67 6e 3d 22 72 69  td><td align="ri
c3f0: 67 68 74 22 3e 32 3c 2f 74 64 3e 3c 74 64 3e 4c  ght">2</td><td>L
c400: 69 6e 6b 3c 2f 74 64 3e 3c 74 64 20 61 6c 69 67  ink</td><td alig
c410: 6e 3d 22 72 69 67 68 74 22 3e 32 32 34 34 34 36  n="right">224446
c420: 3c 2f 74 64 3e 3c 74 64 20 61 6c 69 67 6e 3d 22  </td><td align="
c430: 72 69 67 68 74 22 3e 31 38 32 38 38 35 3c 2f 74  right">182885</t
c440: 64 3e 3c 74 64 20 61 6c 69 67 6e 3d 22 72 69 67  d><td align="rig
c450: 68 74 22 3e 31 37 38 38 38 30 3c 2f 74 64 3e 3c  ht">178880</td><
c460: 74 64 20 61 6c 69 67 6e 3d 22 72 69 67 68 74 22  td align="right"
c470: 3e 36 39 2e 37 32 37 37 32 36 3c 2f 74 64 3e 3c  >69.727726</td><
c480: 74 64 3e 4e 55 4c 4c 3c 2f 74 64 3e 3c 74 64 3e  td>NULL</td><td>
c490: 56 49 41 20 4d 41 52 47 41 52 49 54 4f 4e 45 3c  VIA MARGARITONE<
c4a0: 2f 74 64 3e 0d 0a 3c 2f 74 72 3e 0d 0a 3c 74 72  /td>..</tr>..<tr
c4b0: 3e 0d 0a 3c 74 64 3e 4e 55 4c 4c 3c 2f 74 64 3e  >..<td>NULL</td>
c4c0: 3c 74 64 3e 4e 55 4c 4c 3c 2f 74 64 3e 3c 74 64  <td>NULL</td><td
c4d0: 20 61 6c 69 67 6e 3d 22 72 69 67 68 74 22 3e 33   align="right">3
c4e0: 3c 2f 74 64 3e 3c 74 64 3e 4c 69 6e 6b 3c 2f 74  </td><td>Link</t
c4f0: 64 3e 3c 74 64 20 61 6c 69 67 6e 3d 22 72 69 67  d><td align="rig
c500: 68 74 22 3e 32 32 34 34 31 34 3c 2f 74 64 3e 3c  ht">224414</td><
c510: 74 64 20 61 6c 69 67 6e 3d 22 72 69 67 68 74 22  td align="right"
c520: 3e 31 37 38 38 38 30 3c 2f 74 64 3e 3c 74 64 20  >178880</td><td 
c530: 61 6c 69 67 6e 3d 22 72 69 67 68 74 22 3e 31 38  align="right">18
c540: 33 32 38 36 3c 2f 74 64 3e 3c 74 64 20 61 6c 69  3286</td><td ali
c550: 67 6e 3d 22 72 69 67 68 74 22 3e 31 33 36 2e 33  gn="right">136.3
c560: 37 32 30 35 37 3c 2f 74 64 3e 3c 74 64 3e 4e 55  72057</td><td>NU
c570: 4c 4c 3c 2f 74 64 3e 3c 74 64 3e 56 49 41 20 4d  LL</td><td>VIA M
c580: 41 52 47 41 52 49 54 4f 4e 45 3c 2f 74 64 3e 0d  ARGARITONE</td>.
c590: 0a 3c 2f 74 72 3e 0d 0a 3c 2f 74 61 62 6c 65 3e  .</tr>..</table>
c5a0: 0d 0a 3c 62 72 3e 3c 62 72 3e 3c 62 72 3e 0d 0a  ..<br><br><br>..
c5b0: 3c 76 65 72 62 61 74 69 6d 3e 0d 0a 55 50 44 41  <verbatim>..UPDA
c5c0: 54 45 20 62 79 66 6f 6f 74 20 53 45 54 20 4f 70  TE byfoot SET Op
c5d0: 74 69 6f 6e 73 20 3d 20 27 53 49 4d 50 4c 45 27  tions = 'SIMPLE'
c5e0: 3b 0d 0a 0d 0a 53 45 4c 45 43 54 20 41 6c 67 6f  ;....SELECT Algo
c5f0: 72 69 74 68 6d 2c 20 4f 70 74 69 6f 6e 73 2c 20  rithm, Options, 
c600: 52 6f 75 74 65 52 6f 77 2c 20 52 6f 6c 65 2c 20  RouteRow, Role, 
c610: 4c 69 6e 6b 52 6f 77 69 64 2c 20 4e 6f 64 65 46  LinkRowid, NodeF
c620: 72 6f 6d 2c 20 4e 6f 64 65 54 6f 2c 20 43 6f 73  rom, NodeTo, Cos
c630: 74 2c 20 47 65 6f 6d 65 74 72 79 2c 20 4e 61 6d  t, Geometry, Nam
c640: 65 0d 0a 46 52 4f 4d 20 62 79 66 6f 6f 74 0d 0a  e..FROM byfoot..
c650: 57 48 45 52 45 20 4e 6f 64 65 46 72 6f 6d 20 3d  WHERE NodeFrom =
c660: 20 31 37 38 37 33 31 20 41 4e 44 20 4e 6f 64 65   178731 AND Node
c670: 54 6f 20 3d 20 31 38 33 32 38 36 3b 0d 0a 3c 2f  To = 183286;..</
c680: 76 65 72 62 61 74 69 6d 3e 53 65 74 74 69 6e 67  verbatim>Setting
c690: 20 3c 62 3e 4f 70 74 69 6f 6e 73 3d 27 53 49 4d   <b>Options='SIM
c6a0: 50 4c 45 27 3c 2f 62 3e 20 68 61 73 20 74 68 65  PLE'</b> has the
c6b0: 20 73 61 6d 65 20 65 66 66 65 63 74 20 74 68 61   same effect tha
c6c0: 6e 20 73 65 74 74 69 6e 67 20 62 6f 74 68 20 3c  n setting both <
c6d0: 62 3e 4e 4f 20 4c 49 4e 4b 53 3c 2f 62 3e 20 61  b>NO LINKS</b> a
c6e0: 6e 64 20 3c 62 3e 4e 4f 20 47 45 4f 4d 45 54 52  nd <b>NO GEOMETR
c6f0: 49 45 53 3c 2f 62 3e 20 61 74 20 74 68 65 20 73  IES</b> at the s
c700: 61 6d 65 20 74 69 6d 65 2e 3c 62 72 3e 0d 0a 3c  ame time.<br>..<
c710: 75 3e 4e 6f 74 65 3c 2f 75 3e 3a 20 74 68 69 73  u>Note</u>: this
c720: 20 69 73 20 65 78 70 65 63 74 65 64 20 74 6f 20   is expected to 
c730: 62 65 20 74 68 65 20 66 61 73 74 65 73 74 20 73  be the fastest s
c740: 65 74 74 69 6e 67 2e 3c 62 72 3e 0d 0a 54 68 65  etting.<br>..The
c750: 20 66 6f 6c 6c 6f 77 69 6e 67 20 74 61 62 6c 65   following table
c760: 20 73 68 6f 77 73 20 74 68 65 20 72 65 73 75 6c   shows the resul
c770: 74 73 65 74 20 72 65 74 75 72 6e 65 64 20 62 79  tset returned by
c780: 20 74 68 65 20 70 72 65 76 69 6f 75 73 20 53 68   the previous Sh
c790: 6f 72 74 65 73 74 20 50 61 74 68 20 71 75 65 72  ortest Path quer
c7a0: 79 3b 20 70 6c 65 61 73 65 20 6e 6f 74 69 63 65  y; please notice
c7b0: 20 74 68 65 20 76 61 6c 75 65 20 69 6e 20 74 68   the value in th
c7c0: 65 20 3c 62 3e 4f 70 74 69 6f 6e 73 3c 2f 62 3e  e <b>Options</b>
c7d0: 20 63 6f 6c 75 6d 6e 2e 0d 0a 3c 62 72 3e 3c 62   column...<br><b
c7e0: 72 3e 0d 0a 3c 74 61 62 6c 65 20 62 6f 72 64 65  r>..<table borde
c7f0: 72 3d 22 31 22 20 62 67 63 6f 6c 6f 72 3d 22 23  r="1" bgcolor="#
c800: 66 66 66 66 63 66 22 20 63 65 6c 6c 73 70 61 63  ffffcf" cellspac
c810: 69 6e 67 3d 22 34 22 20 63 65 6c 6c 70 61 64 64  ing="4" cellpadd
c820: 69 6e 67 3d 22 36 22 3e 0d 0a 3c 74 72 3e 3c 74  ing="6">..<tr><t
c830: 68 20 62 67 63 6f 6c 6f 72 3d 22 23 64 30 64 30  h bgcolor="#d0d0
c840: 61 30 22 3e 41 6c 67 6f 72 69 74 68 6d 3c 2f 74  a0">Algorithm</t
c850: 68 3e 3c 74 68 20 62 67 63 6f 6c 6f 72 3d 22 23  h><th bgcolor="#
c860: 64 30 64 30 61 30 22 3e 4f 70 74 69 6f 6e 73 3c  d0d0a0">Options<
c870: 2f 74 68 3e 3c 74 68 20 62 67 63 6f 6c 6f 72 3d  /th><th bgcolor=
c880: 22 23 64 30 64 30 61 30 22 3e 52 6f 75 74 65 52  "#d0d0a0">RouteR
c890: 6f 77 3c 2f 74 68 3e 3c 74 68 20 62 67 63 6f 6c  ow</th><th bgcol
c8a0: 6f 72 3d 22 23 64 30 64 30 61 30 22 3e 52 6f 6c  or="#d0d0a0">Rol
c8b0: 65 3c 2f 74 68 3e 3c 74 68 20 62 67 63 6f 6c 6f  e</th><th bgcolo
c8c0: 72 3d 22 23 64 30 64 30 61 30 22 3e 4c 69 6e 6b  r="#d0d0a0">Link
c8d0: 52 6f 77 69 64 3c 2f 74 68 3e 3c 74 68 20 62 67  Rowid</th><th bg
c8e0: 63 6f 6c 6f 72 3d 22 23 64 30 64 30 61 30 22 3e  color="#d0d0a0">
c8f0: 4e 6f 64 65 46 72 6f 6d 3c 2f 74 68 3e 3c 74 68  NodeFrom</th><th
c900: 20 62 67 63 6f 6c 6f 72 3d 22 23 64 30 64 30 61   bgcolor="#d0d0a
c910: 30 22 3e 4e 6f 64 65 54 6f 3c 2f 74 68 3e 3c 74  0">NodeTo</th><t
c920: 68 20 62 67 63 6f 6c 6f 72 3d 22 23 64 30 64 30  h bgcolor="#d0d0
c930: 61 30 22 3e 43 6f 73 74 3c 2f 74 68 3e 3c 74 68  a0">Cost</th><th
c940: 20 62 67 63 6f 6c 6f 72 3d 22 23 64 30 64 30 61   bgcolor="#d0d0a
c950: 30 22 3e 47 65 6f 6d 65 74 72 79 3c 2f 74 68 3e  0">Geometry</th>
c960: 3c 74 68 20 62 67 63 6f 6c 6f 72 3d 22 23 64 30  <th bgcolor="#d0
c970: 64 30 61 30 22 3e 4e 61 6d 65 3c 2f 74 68 3e 3c  d0a0">Name</th><
c980: 2f 74 72 3e 0d 0a 3c 74 72 3e 0d 0a 3c 74 64 3e  /tr>..<tr>..<td>
c990: 41 2a 3c 2f 74 64 3e 3c 74 64 3e 53 69 6d 70 6c  A*</td><td>Simpl
c9a0: 65 3c 2f 74 64 3e 3c 74 64 20 61 6c 69 67 6e 3d  e</td><td align=
c9b0: 22 72 69 67 68 74 22 3e 30 3c 2f 74 64 3e 3c 74  "right">0</td><t
c9c0: 64 3e 52 6f 75 74 65 3c 2f 74 64 3e 3c 74 64 3e  d>Route</td><td>
c9d0: 4e 55 4c 4c 3c 2f 74 64 3e 3c 74 64 20 61 6c 69  NULL</td><td ali
c9e0: 67 6e 3d 22 72 69 67 68 74 22 3e 31 37 38 37 33  gn="right">17873
c9f0: 31 3c 2f 74 64 3e 3c 74 64 20 61 6c 69 67 6e 3d  1</td><td align=
ca00: 22 72 69 67 68 74 22 3e 31 38 33 32 38 36 3c 2f  "right">183286</
ca10: 74 64 3e 3c 74 64 20 61 6c 69 67 6e 3d 22 72 69  td><td align="ri
ca20: 67 68 74 22 3e 33 30 30 2e 39 31 32 32 30 38 3c  ght">300.912208<
ca30: 2f 74 64 3e 3c 74 64 3e 4e 55 4c 4c 3c 2f 74 64  /td><td>NULL</td
ca40: 3e 3c 74 64 3e 4e 55 4c 4c 3c 2f 74 64 3e 0d 0a  ><td>NULL</td>..
ca50: 3c 2f 74 72 3e 0d 0a 3c 2f 74 61 62 6c 65 3e 0d  </tr>..</table>.
ca60: 0a 3c 62 72 3e 0d 0a 46 69 6e 61 6c 6c 79 2c 20  .<br>..Finally, 
ca70: 69 66 20 79 6f 75 20 77 69 73 68 20 74 6f 20 73  if you wish to s
ca80: 65 6c 65 63 74 20 61 67 61 69 6e 20 74 68 65 20  elect again the 
ca90: 69 6e 69 74 69 61 6c 20 73 74 61 6e 64 61 72 64  initial standard
caa0: 20 73 65 74 74 69 6e 67 20 79 6f 75 20 6a 75 73   setting you jus
cab0: 74 20 68 61 76 65 20 74 6f 20 65 78 65 63 75 74  t have to execut
cac0: 65 3c 62 72 3e 20 3c 62 3e 55 50 44 41 54 45 20  e<br> <b>UPDATE 
cad0: 62 79 66 6f 6f 74 20 53 45 54 20 4f 70 74 69 6f  byfoot SET Optio
cae0: 6e 73 20 3d 20 27 46 55 4c 4c 27 3b 3c 2f 62 3e  ns = 'FULL';</b>
caf0: 2e 3c 62 72 3e 3c 62 72 3e 0d 0a 0d 0a 3c 68 72  .<br><br>....<hr
cb00: 3e 3c 62 72 3e 0d 0a 3c 61 20 68 72 65 66 3d 22  ><br>..<a href="
cb10: 68 74 74 70 73 3a 2f 2f 77 77 77 2e 67 61 69 61  https://www.gaia
cb20: 2d 67 69 73 2e 69 74 2f 66 6f 73 73 69 6c 2f 6c  -gis.it/fossil/l
cb30: 69 62 73 70 61 74 69 61 6c 69 74 65 2f 77 69 6b  ibspatialite/wik
cb40: 69 3f 6e 61 6d 65 3d 34 2e 33 2e 30 2d 64 6f 63  i?name=4.3.0-doc
cb50: 22 3e 62 61 63 6b 3c 2f 61 3e 0a 5a 20 64 35 36  ">back</a>.Z d56
cb60: 62 39 35 36 37 37 32 64 33 61 66 66 65 38 37 31  b956772d3affe871
cb70: 34 32 32 66 34 33 39 36 64 37 64 31 38 0a        422f4396d7d18.