Hex Artifact Content
Not logged in

Artifact 4a9ead06f0152e00705bc1e7f4490fdd66812b14:

Wiki page [VirtualOGR] by sandro 2012-11-03 16:22:31.
0000: 44 20 32 30 31 32 2d 31 31 2d 30 33 54 31 36 3a  D 2012-11-03T16:
0010: 32 32 3a 33 31 2e 36 39 37 0a 4c 20 56 69 72 74  22:31.697.L Virt
0020: 75 61 6c 4f 47 52 0a 55 20 73 61 6e 64 72 6f 0a  ualOGR.U sandro.
0030: 57 20 36 39 34 35 0a 3c 68 32 3e 56 69 72 74 75  W 6945.<h2>Virtu
0040: 61 6c 4f 47 52 3c 2f 68 32 3e 0d 0a 42 61 63 6b  alOGR</h2>..Back
0050: 20 74 6f 20 3c 61 20 68 72 65 66 3d 22 68 74 74   to <a href="htt
0060: 70 73 3a 2f 2f 77 77 77 2e 67 61 69 61 2d 67 69  ps://www.gaia-gi
0070: 73 2e 69 74 2f 66 6f 73 73 69 6c 2f 6c 69 62 73  s.it/fossil/libs
0080: 70 61 74 69 61 6c 69 74 65 2f 77 69 6b 69 3f 6e  patialite/wiki?n
0090: 61 6d 65 3d 73 77 69 74 63 68 69 6e 67 2d 74 6f  ame=switching-to
00a0: 2d 34 2e 30 23 76 69 72 74 75 61 6c 6f 67 72 22  -4.0#virtualogr"
00b0: 3e 6d 61 69 6e 20 70 61 67 65 3c 2f 61 3e 0d 0a  >main page</a>..
00c0: 3c 68 33 3e 57 68 61 74 20 69 73 20 56 69 72 74  <h3>What is Virt
00d0: 75 61 6c 4f 47 52 20 3f 3c 2f 68 33 3e 0d 0a 4a  ualOGR ?</h3>..J
00e0: 75 73 74 20 61 20 76 65 72 79 20 71 75 69 63 6b  ust a very quick
00f0: 20 72 65 63 61 6c 6c 20 6f 66 20 73 6f 6d 65 20   recall of some 
0100: 62 61 73 69 63 20 6e 6f 74 69 6f 6e 73 20 61 62  basic notions ab
0110: 6f 75 74 20 74 68 65 20 75 6e 64 65 72 6c 79 69  out the underlyi
0120: 6e 67 20 61 72 63 68 69 74 65 63 74 75 72 65 2e  ng architecture.
0130: 3c 62 72 3e 0d 0a 53 51 4c 69 74 65 20 68 61 73  <br>..SQLite has
0140: 20 74 68 65 20 63 61 70 61 62 69 6c 69 74 79 20   the capability 
0150: 74 6f 20 64 79 6e 61 6d 69 63 61 6c 6c 79 20 6c  to dynamically l
0160: 6f 61 64 20 61 6e 20 65 78 74 65 72 6e 61 6c 20  oad an external 
0170: 6c 69 62 72 61 72 79 20 28 69 2e 65 2e 20 61 20  library (i.e. a 
0180: 3c 69 3e 44 4c 4c 3c 2f 69 3e 20 6f 6e 20 57 69  <i>DLL</i> on Wi
0190: 6e 64 6f 77 73 2c 20 61 20 3c 69 3e 73 68 61 72  ndows, a <i>shar
01a0: 65 64 20 6c 69 62 72 61 72 79 3c 2f 69 3e 20 6f  ed library</i> o
01b0: 6e 20 4c 69 6e 75 78 2c 20 61 6e 64 20 73 6f 20  n Linux, and so 
01c0: 6f 6e 29 3b 20 20 6f 62 76 69 6f 75 73 6c 79 20  on);  obviously 
01d0: 53 70 61 74 69 61 4c 69 74 65 20 61 73 20 77 65  SpatiaLite as we
01e0: 6c 6c 20 69 6e 68 65 72 69 74 73 20 73 75 63 68  ll inherits such
01f0: 20 63 61 70 61 62 69 6c 69 74 79 20 66 72 6f 6d   capability from
0200: 20 53 51 4c 69 74 65 2e 0d 0a 46 6f 72 6d 61 6c   SQLite...Formal
0210: 6c 79 20 73 70 65 61 6b 69 6e 67 2c 20 53 70 61  ly speaking, Spa
0220: 74 69 61 4c 69 74 65 20 69 74 73 65 6c 66 20 73  tiaLite itself s
0230: 69 6d 70 6c 79 20 73 69 6d 70 6c 79 20 69 73 20  imply simply is 
0240: 61 6e 20 65 78 74 65 6e 73 69 6f 6e 20 6c 69 62  an extension lib
0250: 72 61 72 79 20 65 78 74 65 6e 64 69 6e 67 20 74  rary extending t
0260: 68 65 20 62 61 73 69 63 20 63 61 70 61 62 69 6c  he basic capabil
0270: 69 74 69 65 73 20 6f 66 20 53 51 4c 69 74 65 2e  ities of SQLite.
0280: 3c 62 72 3e 3c 62 72 3e 0d 0a 41 6e 20 65 78 74  <br><br>..An ext
0290: 65 6e 73 69 6f 6e 20 6c 69 62 72 61 72 79 20 63  ension library c
02a0: 6f 75 6c 64 20 61 64 64 20 6d 6f 72 65 20 66 65  ould add more fe
02b0: 61 74 75 72 65 73 20 74 6f 20 53 51 4c 69 74 65  atures to SQLite
02c0: 20 69 6e 20 74 77 6f 20 64 69 66 66 65 72 65 6e   in two differen
02d0: 74 20 77 61 79 73 3a 3c 75 6c 3e 0d 0a 3c 6c 69  t ways:<ul>..<li
02e0: 3e 69 6d 70 6c 65 6d 65 6e 74 69 6e 67 20 73 6f  >implementing so
02f0: 6d 65 20 66 75 72 74 68 65 72 20 3c 62 3e 53 51  me further <b>SQ
0300: 4c 20 66 75 6e 63 74 69 6f 6e 3c 2f 62 3e 2c 20  L function</b>, 
0310: 6e 6f 74 20 69 6e 69 74 69 61 6c 6c 79 20 73 75  not initially su
0320: 70 70 6f 72 74 65 64 20 62 79 20 74 68 65 20 62  pported by the b
0330: 61 73 69 63 20 63 6f 72 65 20 61 6c 6f 6e 65 2e  asic core alone.
0340: 3c 2f 6c 69 3e 0d 0a 3c 6c 69 3e 69 6d 70 6c 65  </li>..<li>imple
0350: 6d 65 6e 74 69 6e 67 20 61 20 3c 62 3e 56 69 72  menting a <b>Vir
0360: 74 75 61 6c 20 54 61 62 6c 65 20 64 72 69 76 65  tual Table drive
0370: 72 3c 2f 62 3e 2c 20 74 68 75 73 20 61 6c 6c 6f  r</b>, thus allo
0380: 77 69 6e 67 20 74 68 65 20 53 51 4c 20 65 6e 67  wing the SQL eng
0390: 69 6e 65 20 74 6f 20 64 69 72 65 63 74 6c 79 20  ine to directly 
03a0: 61 63 63 65 73 73 20 61 6e 20 65 78 74 65 72 6e  access an extern
03b0: 61 6c 20 64 61 74 61 73 6f 75 72 63 65 20 28 69  al datasource (i
03c0: 2e 65 2e 20 64 61 74 61 20 70 6c 61 63 65 64 20  .e. data placed 
03d0: 73 6f 6d 65 77 68 65 72 65 20 65 6c 73 65 20 6f  somewhere else o
03e0: 75 74 73 69 64 65 20 74 68 65 20 44 42 20 69 74  utside the DB it
03f0: 73 65 6c 66 29 2e 3c 2f 6c 69 3e 0d 0a 3c 2f 75  self).</li>..</u
0400: 6c 3e 20 3c 62 72 3e 0d 0a 3c 62 3e 47 44 41 4c  l> <br>..<b>GDAL
0410: 3c 2f 62 3e 20 28 3c 61 20 68 72 65 66 3d 22 68  </b> (<a href="h
0420: 74 74 70 3a 2f 2f 77 77 77 2e 67 64 61 6c 2e 6f  ttp://www.gdal.o
0430: 72 67 2f 22 3e 47 65 6f 73 70 61 74 69 61 6c 20  rg/">Geospatial 
0440: 44 61 74 61 20 41 62 73 74 72 61 63 74 69 6f 6e  Data Abstraction
0450: 20 4c 69 62 72 61 72 79 3c 2f 61 3e 29 20 69 73   Library</a>) is
0460: 20 61 20 77 65 6c 6c 20 6b 6e 6f 77 6e 20 6f 70   a well known op
0470: 65 6e 20 73 6f 75 72 63 65 20 6c 69 62 72 61 72  en source librar
0480: 79 20 73 75 70 70 6f 72 74 69 6e 67 20 6c 6f 74  y supporting lot
0490: 73 20 6f 66 20 64 69 66 66 65 72 65 6e 74 20 64  s of different d
04a0: 61 74 61 73 6f 75 72 63 65 73 2e 0d 0a 54 68 65  atasources...The
04b0: 20 3c 62 3e 4f 47 52 3c 2f 62 3e 20 3c 61 20 68   <b>OGR</b> <a h
04c0: 72 65 66 3d 22 68 74 74 70 3a 2f 2f 77 77 77 2e  ref="http://www.
04d0: 67 64 61 6c 2e 6f 72 67 2f 6f 67 72 2f 22 3e 53  gdal.org/ogr/">S
04e0: 69 6d 70 6c 65 20 46 65 61 74 75 72 65 20 4c 69  imple Feature Li
04f0: 62 72 61 72 79 20 3c 2f 61 3e 20 69 73 20 64 69  brary </a> is di
0500: 72 65 63 74 6c 79 20 69 6e 63 6c 75 64 65 64 20  rectly included 
0510: 77 69 74 68 69 6e 20 47 44 41 4c 2c 20 61 6e 64  within GDAL, and
0520: 20 69 73 20 73 70 65 63 69 66 69 63 61 6c 6c 79   is specifically
0530: 20 66 6f 63 75 73 65 64 20 6f 6e 20 73 75 70 70   focused on supp
0540: 6f 72 74 69 6e 67 20 64 61 74 61 73 6f 75 72 63  orting datasourc
0550: 65 73 20 6f 66 20 74 68 65 20 3c 62 3e 56 65 63  es of the <b>Vec
0560: 74 6f 72 3c 2f 62 3e 20 74 79 70 65 2e 3c 62 72  tor</b> type.<br
0570: 3e 3c 62 72 3e 0d 0a 54 68 65 20 6e 65 78 74 2d  ><br>..The next-
0580: 74 6f 2d 63 6f 6d 65 20 3c 62 3e 47 44 41 4c 20  to-come <b>GDAL 
0590: 32 2e 30 3c 2f 62 3e 20 28 63 75 72 72 65 6e 74  2.0</b> (current
05a0: 6c 79 20 61 76 61 69 6c 61 62 6c 65 20 66 72 6f  ly available fro
05b0: 6d 20 74 68 65 20 3c 69 3e 74 72 75 6e 6b 3c 2f  m the <i>trunk</
05c0: 69 3e 20 72 65 70 6f 73 69 74 6f 72 79 29 20 77  i> repository) w
05d0: 69 6c 6c 20 73 75 70 70 6f 72 74 20 3c 62 3e 56  ill support <b>V
05e0: 69 72 74 75 61 6c 4f 47 52 3c 2f 62 3e 20 28 74  irtualOGR</b> (t
05f0: 68 61 6e 6b 73 20 74 6f 20 45 76 65 6e 20 52 6f  hanks to Even Ro
0600: 75 61 75 6c 74 20 68 69 67 68 6c 79 20 61 70 70  uault highly app
0610: 72 65 63 69 61 74 65 64 20 64 65 76 65 6c 6f 70  reciated develop
0620: 6d 65 6e 74 20 77 6f 72 6b 29 2e 3c 62 72 3e 0d  ment work).<br>.
0630: 0a 54 68 69 73 20 70 72 61 63 74 69 63 61 6c 6c  .This practicall
0640: 79 20 6d 65 61 6e 73 20 74 68 61 74 20 74 68 65  y means that the
0650: 20 77 68 6f 6c 65 20 4f 47 52 20 6c 69 62 72 61   whole OGR libra
0660: 72 79 20 77 69 6c 6c 20 61 75 74 6f 6d 61 74 69  ry will automati
0670: 63 61 6c 6c 79 20 62 65 63 6f 6d 65 20 61 20 6c  cally become a l
0680: 6f 61 64 61 62 6c 65 20 65 78 74 65 6e 73 69 6f  oadable extensio
0690: 6e 20 74 6f 20 53 51 4c 69 74 65 3b 20 61 6e 64  n to SQLite; and
06a0: 20 61 6e 79 20 64 61 74 61 73 6f 75 72 63 65 20   any datasource 
06b0: 73 75 70 70 6f 72 74 65 64 20 62 79 20 4f 47 52  supported by OGR
06c0: 20 77 69 6c 6c 20 62 65 20 64 69 72 65 63 74 6c   will be directl
06d0: 79 20 61 63 63 65 73 73 69 62 6c 65 20 62 79 20  y accessible by 
06e0: 53 51 4c 20 6f 6e 20 53 51 4c 69 74 65 2f 53 70  SQL on SQLite/Sp
06f0: 61 74 69 61 4c 69 74 65 20 61 73 20 69 66 20 69  atiaLite as if i
0700: 74 20 77 61 73 20 61 6e 20 6f 72 64 69 6e 61 72  t was an ordinar
0710: 79 20 74 61 62 6c 65 20 77 69 74 68 69 6e 20 74  y table within t
0720: 68 65 20 44 42 2e 0d 0a 3c 68 33 3e 57 68 79 20  he DB...<h3>Why 
0730: 69 73 20 56 69 72 74 75 61 6c 4f 47 52 20 65 78  is VirtualOGR ex
0740: 70 65 63 74 65 64 20 74 6f 20 62 65 20 75 73 65  pected to be use
0750: 66 75 6c 20 3f 3c 2f 68 33 3e 0d 0a 41 62 6f 75  ful ?</h3>..Abou
0760: 74 20 73 65 76 65 6e 74 79 20 64 69 66 66 65 72  t seventy differ
0770: 65 6e 74 20 64 61 74 61 20 66 6f 72 6d 61 74 73  ent data formats
0780: 20 61 72 65 20 63 75 72 72 65 6e 74 6c 79 20 73   are currently s
0790: 75 70 70 6f 72 74 65 64 20 62 79 20 4f 47 52 2e  upported by OGR.
07a0: 0d 0a 49 66 20 79 6f 75 20 61 72 65 20 69 6e 74  ..If you are int
07b0: 65 72 65 73 74 65 64 20 74 6f 20 6c 65 61 72 6e  erested to learn
07c0: 20 6d 6f 72 65 2c 20 79 6f 75 20 63 61 6e 20 75   more, you can u
07d0: 73 65 66 75 6c 6c 79 20 63 6f 6e 73 75 6c 74 20  sefully consult 
07e0: 74 68 65 20 3c 61 20 68 72 65 66 3d 22 68 74 74  the <a href="htt
07f0: 70 3a 2f 2f 77 77 77 2e 67 64 61 6c 2e 6f 72 67  p://www.gdal.org
0800: 2f 6f 67 72 2f 6f 67 72 5f 66 6f 72 6d 61 74 73  /ogr/ogr_formats
0810: 2e 68 74 6d 6c 22 3e 63 6f 6d 70 6c 65 74 65 20  .html">complete 
0820: 6c 69 73 74 3c 2f 61 3e 2e 3c 62 72 3e 0d 0a 56  list</a>.<br>..V
0830: 65 72 79 20 73 68 6f 72 74 6c 79 20 73 61 69 64  ery shortly said
0840: 3a 20 4f 47 52 20 68 61 73 20 74 68 65 20 63 61  : OGR has the ca
0850: 70 61 62 69 6c 69 74 79 20 74 6f 20 61 63 63 65  pability to acce
0860: 73 73 20 6c 6f 74 73 20 6f 66 20 77 69 64 65 73  ss lots of wides
0870: 70 72 65 61 64 20 64 61 74 61 20 66 6f 72 6d 61  pread data forma
0880: 74 73 3a 20 45 53 52 49 20 53 68 61 70 65 66 69  ts: ESRI Shapefi
0890: 6c 65 73 2c 20 47 4d 4c 2c 20 44 57 47 2c 20 44  les, GML, DWG, D
08a0: 58 46 20 2e 2e 2e 3c 62 72 3e 0d 0a 41 6e 64 20  XF ...<br>..And 
08b0: 4f 47 52 20 63 61 6e 20 61 63 63 65 73 73 20 74  OGR can access t
08c0: 68 65 20 6d 6f 73 74 20 70 6f 70 75 6c 61 72 20  he most popular 
08d0: 53 70 61 74 69 61 6c 20 44 4d 42 53 65 73 20 61  Spatial DMBSes a
08e0: 73 20 77 65 6c 6c 3a 20 50 6f 73 74 67 72 65 53  s well: PostgreS
08f0: 51 4c 2c 20 4f 72 61 63 6c 65 2c 20 53 51 4c 20  QL, Oracle, SQL 
0900: 53 65 72 76 65 72 2c 20 4d 79 53 51 4c 20 2e 2e  Server, MySQL ..
0910: 2e 3c 62 72 3e 3c 62 72 3e 0d 0a 53 6f 20 74 68  .<br><br>..So th
0920: 65 20 56 69 72 74 75 61 6c 4f 47 52 20 6d 65 63  e VirtualOGR mec
0930: 68 61 6e 69 73 6d 20 6f 66 66 65 72 73 20 61 6e  hanism offers an
0940: 20 65 61 73 79 20 61 6e 64 20 70 61 69 6e 6c 65   easy and painle
0950: 73 73 20 77 61 79 20 65 6e 61 62 6c 69 6e 67 20  ss way enabling 
0960: 53 51 4c 69 74 65 2f 53 70 61 74 69 61 4c 69 74  SQLite/SpatiaLit
0970: 65 20 74 6f 20 64 69 72 65 63 74 6c 79 20 61 63  e to directly ac
0980: 63 65 73 73 20 6c 6f 74 73 20 6f 66 20 64 69 66  cess lots of dif
0990: 66 65 72 65 6e 74 20 64 61 74 61 73 6f 75 72 63  ferent datasourc
09a0: 65 73 0d 0a 28 70 72 61 63 74 69 63 61 6c 6c 79  es..(practically
09b0: 20 61 6e 79 20 70 6f 73 73 69 62 6c 65 20 64 61   any possible da
09c0: 74 61 20 66 6f 72 6d 61 74 20 6f 72 20 73 74 6f  ta format or sto
09d0: 72 61 67 65 20 73 79 73 74 65 6d 20 79 6f 75 20  rage system you 
09e0: 63 61 6e 20 75 73 75 61 6c 6c 79 20 65 6e 63 6f  can usually enco
09f0: 75 6e 74 65 72 20 69 6e 20 74 68 65 20 47 65 6f  unter in the Geo
0a00: 53 70 61 74 69 61 6c 20 69 6e 64 75 73 74 72 79  Spatial industry
0a10: 29 2e 3c 62 72 3e 0d 0a 41 6e 64 20 74 68 69 73  ).<br>..And this
0a20: 20 6f 6e 65 20 73 75 72 65 6c 79 20 69 73 20 61   one surely is a
0a30: 20 72 65 61 6c 6c 79 20 67 6f 6f 64 20 6e 65 77   really good new
0a40: 20 66 6f 72 20 6d 61 6e 79 20 75 73 65 72 73 2c   for many users,
0a50: 20 62 65 63 61 75 73 65 20 74 68 69 73 20 77 61   because this wa
0a60: 79 20 74 72 61 6e 73 66 65 72 72 69 6e 67 20 64  y transferring d
0a70: 61 74 61 20 28 69 6e 20 62 6f 74 68 20 64 69 72  ata (in both dir
0a80: 65 63 74 69 6f 6e 73 29 20 62 65 74 77 65 65 6e  ections) between
0a90: 20 53 70 61 74 69 61 4c 69 74 65 20 61 6e 64 20   SpatiaLite and 
0aa0: 61 6e 6f 74 68 65 72 20 44 42 4d 53 20 77 69 6c  another DBMS wil
0ab0: 6c 20 62 65 63 6f 6d 65 20 61 6e 20 65 61 73 79  l become an easy
0ac0: 20 61 6e 64 20 71 75 69 74 65 20 74 72 69 76 69   and quite trivi
0ad0: 61 6c 20 3c 69 3e 6f 72 64 69 6e 61 72 79 20 61  al <i>ordinary a
0ae0: 64 6d 69 6e 69 73 74 72 61 74 69 6f 6e 3c 2f 69  dministration</i
0af0: 3e 20 61 66 66 61 69 72 2e 0d 0a 3c 68 33 3e 50  > affair...<h3>P
0b00: 72 65 70 61 72 69 6e 67 20 74 68 65 20 74 65 73  reparing the tes
0b10: 74 20 65 6e 76 69 72 6f 6e 6d 65 6e 74 3c 2f 68  t environment</h
0b20: 33 3e 0d 0a 42 61 64 20 6e 65 77 3a 20 69 6e 20  3>..Bad new: in 
0b30: 6f 72 64 65 72 20 74 6f 20 70 65 72 66 6f 72 6d  order to perform
0b40: 20 73 6f 6d 65 20 74 65 73 74 20 79 6f 75 20 61   some test you a
0b50: 72 65 20 73 75 72 65 6c 79 20 72 65 71 75 69 72  re surely requir
0b60: 65 64 20 74 6f 20 62 75 69 6c 64 20 28 62 79 20  ed to build (by 
0b70: 79 6f 75 72 73 65 6c 66 29 20 62 6f 74 68 20 53  yourself) both S
0b80: 70 61 74 69 61 4c 69 74 65 20 61 6e 64 20 47 44  patiaLite and GD
0b90: 41 4c 20 73 74 61 72 74 69 6e 67 20 66 72 6f 6d  AL starting from
0ba0: 20 74 68 65 20 63 75 72 72 65 6e 74 20 3c 69 3e   the current <i>
0bb0: 64 65 76 65 6c 6f 70 6d 65 6e 74 3c 2f 69 3e 20  development</i> 
0bc0: 28 61 6b 61 20 3c 69 3e 74 72 75 6e 6b 3c 2f 69  (aka <i>trunk</i
0bd0: 3e 29 20 73 6f 75 72 63 65 73 20 61 76 61 69 6c  >) sources avail
0be0: 61 62 6c 65 20 66 72 6f 6d 20 74 68 65 20 63 6f  able from the co
0bf0: 72 72 65 73 70 6f 6e 64 69 6e 67 20 63 6f 64 65  rresponding code
0c00: 20 72 65 70 6f 73 69 74 6f 72 69 65 73 2e 0d 0a   repositories...
0c10: 41 6e 79 77 61 79 20 74 68 65 20 73 69 74 75 61  Anyway the situa
0c20: 74 69 6f 6e 20 77 69 6c 6c 20 62 65 63 6f 6d 65  tion will become
0c30: 20 6d 75 63 68 20 6d 6f 72 65 20 73 69 6d 70 6c   much more simpl
0c40: 65 20 64 75 72 69 6e 67 20 32 30 31 33 2c 20 77  e during 2013, w
0c50: 68 65 6e 20 62 6f 74 68 20 73 6f 66 74 77 61 72  hen both softwar
0c60: 65 73 20 77 69 6c 6c 20 62 65 63 6f 6d 65 20 77  es will become w
0c70: 69 64 65 6c 79 20 61 76 61 69 6c 61 62 6c 65 20  idely available 
0c80: 61 73 20 70 72 65 2d 62 75 69 6c 74 20 70 61 63  as pre-built pac
0c90: 6b 61 67 65 73 20 69 6e 20 6d 61 69 6e 73 74 72  kages in mainstr
0ca0: 65 61 6d 20 64 69 73 74 72 69 62 75 74 69 6f 6e  eam distribution
0cb0: 73 2e 3c 62 72 3e 3c 62 72 3e 0d 0a 49 27 76 65  s.<br><br>..I've
0cc0: 20 70 65 72 73 6f 6e 61 6c 6c 79 20 75 73 65 64   personally used
0cd0: 20 74 68 65 20 66 6f 6c 6c 6f 77 69 6e 67 20 74   the following t
0ce0: 65 73 74 20 65 6e 76 69 72 6f 6e 6d 65 6e 74 3a  est environment:
0cf0: 3c 75 6c 3e 0d 0a 3c 6c 69 3e 44 65 62 69 61 6e  <ul>..<li>Debian
0d00: 20 53 71 75 65 65 7a 65 20 33 32 20 62 69 74 3c   Squeeze 32 bit<
0d10: 2f 6c 69 3e 0d 0a 3c 6c 69 3e 47 44 41 4c 20 32  /li>..<li>GDAL 2
0d20: 2e 30 64 65 76 3c 2f 6c 69 3e 0d 0a 3c 6c 69 3e  .0dev</li>..<li>
0d30: 6c 69 62 73 70 61 74 69 61 6c 69 74 65 20 34 2e  libspatialite 4.
0d40: 30 2e 30 2d 52 43 32 3c 2f 6c 69 3e 0d 0a 3c 6c  0.0-RC2</li>..<l
0d50: 69 3e 73 70 61 74 69 61 6c 69 74 65 5f 67 75 69  i>spatialite_gui
0d60: 20 31 2e 36 2e 30 3c 2f 6c 69 3e 0d 0a 3c 2f 75   1.6.0</li>..</u
0d70: 6c 3e 3c 62 72 3e 0d 0a 3c 75 3e 50 6c 65 61 73  l><br>..<u>Pleas
0d80: 65 20 6e 6f 74 65 3c 2f 75 3e 3a 20 6f 6e 20 6d  e note</u>: on m
0d90: 79 20 6f 77 6e 20 44 65 62 69 61 6e 20 73 79 73  y own Debian sys
0da0: 74 65 6d 20 49 20 69 6e 73 74 61 6c 6c 65 64 20  tem I installed 
0db0: 61 6c 6c 20 63 75 73 74 6f 6d 2d 62 75 69 6c 74  all custom-built
0dc0: 20 6c 69 62 72 61 72 69 65 73 20 28 3c 69 3e 6c   libraries (<i>l
0dd0: 69 62 73 70 61 74 69 61 6c 69 74 65 3c 2f 69 3e  ibspatialite</i>
0de0: 20 61 6e 64 20 3c 69 3e 6c 69 62 67 64 61 6c 3c   and <i>libgdal<
0df0: 2f 69 3e 29 20 6f 6e 20 74 68 65 20 64 65 66 61  /i>) on the defa
0e00: 75 6c 74 20 74 61 72 67 65 74 20 3c 62 3e 2f 75  ult target <b>/u
0e10: 73 72 2f 6c 6f 63 61 6c 2f 6c 69 62 3c 2f 62 3e  sr/local/lib</b>
0e20: 3c 62 72 3e 0d 0a 53 6f 20 49 20 68 61 64 20 74  <br>..So I had t
0e30: 68 65 6e 20 74 6f 20 65 78 70 6c 69 63 69 74 6c  hen to explicitl
0e40: 79 20 64 65 63 6c 61 72 65 20 74 68 65 20 66 6f  y declare the fo
0e50: 6c 6c 6f 77 69 6e 67 20 76 61 72 69 61 62 6c 65  llowing variable
0e60: 20 69 6e 20 6f 72 64 65 72 20 74 6f 20 69 6e 63   in order to inc
0e70: 6c 75 64 65 20 74 68 69 73 20 64 69 72 65 63 74  lude this direct
0e80: 6f 72 79 20 69 6e 74 6f 20 74 68 65 20 73 65 61  ory into the sea
0e90: 72 63 68 20 70 61 74 68 20 28 3c 69 3e 74 68 69  rch path (<i>thi
0ea0: 73 20 73 74 65 70 20 73 68 6f 75 6c 64 20 6e 6f  s step should no
0eb0: 74 20 62 65 20 73 74 72 69 63 74 6c 79 20 72 65  t be strictly re
0ec0: 71 75 69 72 65 64 20 75 73 69 6e 67 20 61 20 64  quired using a d
0ed0: 69 66 66 65 72 65 6e 74 20 4c 69 6e 75 78 20 64  ifferent Linux d
0ee0: 69 73 74 72 6f 2c 20 65 2e 67 2e 20 46 65 64 6f  istro, e.g. Fedo
0ef0: 72 61 3c 2f 69 3e 29 3a 3c 62 72 3e 3c 62 72 3e  ra</i>):<br><br>
0f00: 0d 0a 3c 62 3e 65 78 70 6f 72 74 20 22 4c 44 5f  ..<b>export "LD_
0f10: 4c 49 42 52 41 52 59 5f 50 41 54 48 3d 2f 75 73  LIBRARY_PATH=/us
0f20: 72 2f 6c 6f 63 61 6c 2f 6c 69 62 22 3c 2f 62 3e  r/local/lib"</b>
0f30: 3c 62 72 3e 3c 62 72 3e 0d 0a 3c 68 33 3e 56 65  <br><br>..<h3>Ve
0f40: 72 79 20 71 75 69 63 6b 20 56 69 72 74 75 61 6c  ry quick Virtual
0f50: 4f 47 52 20 68 6f 77 2d 74 6f 20 28 73 68 6f 77  OGR how-to (show
0f60: 69 6e 67 20 61 20 70 72 61 63 74 69 63 61 6c 20  ing a practical 
0f70: 65 78 61 6d 70 6c 65 29 3c 2f 68 33 3e 0d 0a 3c  example)</h3>..<
0f80: 74 61 62 6c 65 20 63 65 6c 6c 73 70 61 63 69 6e  table cellspacin
0f90: 67 3d 22 36 22 20 63 65 6c 6c 70 61 64 64 69 6e  g="6" cellpaddin
0fa0: 67 3d 22 36 22 3e 0d 0a 3c 74 72 3e 3c 74 64 3e  g="6">..<tr><td>
0fb0: 3c 62 3e 53 74 65 70 20 23 31 3c 2f 62 3e 3c 62  <b>Step #1</b><b
0fc0: 72 3e 77 65 27 6c 6c 20 73 74 61 72 74 20 6c 6f  r>we'll start lo
0fd0: 61 64 69 6e 67 20 3c 69 3e 6c 69 62 67 64 61 6c  ading <i>libgdal
0fe0: 3c 2f 69 3e 20 61 73 20 61 20 64 79 6e 61 6d 69  </i> as a dynami
0ff0: 63 61 6c 20 65 78 74 65 6e 73 69 6f 6e 20 74 6f  cal extension to
1000: 20 53 51 4c 69 74 65 3b 20 69 66 20 77 65 20 77   SQLite; if we w
1010: 65 72 65 20 6f 6e 20 57 69 6e 64 6f 77 73 20 77  ere on Windows w
1020: 65 20 6f 62 76 69 6f 75 73 6c 79 20 68 61 64 20  e obviously had 
1030: 74 6f 20 6c 6f 61 64 20 61 20 66 69 6c 65 20 6e  to load a file n
1040: 61 6d 65 64 20 3c 69 3e 6c 69 62 67 64 61 6c 2e  amed <i>libgdal.
1050: 64 6c 6c 3c 2f 69 3e 20 28 3c 69 3e 6f 72 20 73  dll</i> (<i>or s
1060: 6f 6d 65 74 68 69 6e 67 20 6c 69 6b 65 3b 20 69  omething like; i
1070: 74 20 75 73 75 61 6c 6c 79 20 64 65 70 65 6e 64  t usually depend
1080: 73 20 6f 6e 20 20 70 61 63 6b 61 67 65 72 73 20  s on  packagers 
1090: 63 68 6f 69 63 65 73 3c 2f 69 3e 29 3c 2f 74 64  choices</i>)</td
10a0: 3e 0d 0a 3c 74 64 3e 3c 69 6d 67 20 62 6f 72 64  >..<td><img bord
10b0: 65 72 3d 22 31 22 20 73 72 63 3d 22 68 74 74 70  er="1" src="http
10c0: 3a 2f 2f 77 77 77 2e 67 61 69 61 2d 67 69 73 2e  ://www.gaia-gis.
10d0: 69 74 2f 67 61 69 61 2d 73 69 6e 73 2f 76 69 72  it/gaia-sins/vir
10e0: 74 75 61 6c 6f 67 72 2f 6f 67 72 2d 31 2e 70 6e  tualogr/ogr-1.pn
10f0: 67 22 20 61 6c 74 3d 22 6c 6f 61 64 5f 65 78 74  g" alt="load_ext
1100: 65 6e 73 69 6f 6e 22 3e 3c 2f 74 64 3e 3c 2f 74  ension"></td></t
1110: 72 3e 0d 0a 3c 74 72 3e 3c 74 64 3e 3c 62 3e 53  r>..<tr><td><b>S
1120: 74 65 70 20 23 32 3c 2f 62 3e 3c 62 72 3e 6e 6f  tep #2</b><br>no
1130: 77 20 77 65 27 6c 6c 20 74 72 79 20 74 6f 20 63  w we'll try to c
1140: 6f 6e 6e 65 63 74 20 61 20 50 6f 73 74 47 49 53  onnect a PostGIS
1150: 20 74 61 62 6c 65 20 3c 62 3e 6c 30 39 3c 2f 62   table <b>l09</b
1160: 3e 2c 20 6c 6f 63 61 74 65 64 20 69 6e 20 74 68  >, located in th
1170: 65 20 73 63 68 65 6d 61 20 3c 62 3e 6d 65 72 61  e schema <b>mera
1180: 6e 6f 3c 2f 62 3e 20 6f 66 20 74 68 65 20 64 61  no</b> of the da
1190: 74 61 62 61 73 65 73 20 3c 62 3e 67 69 73 3c 2f  tabases <b>gis</
11a0: 62 3e 3c 62 72 3e 3c 62 72 3e 3c 75 6c 3e 0d 0a  b><br><br><ul>..
11b0: 3c 6c 69 3e 74 68 65 20 66 69 72 73 74 20 61 72  <li>the first ar
11c0: 67 75 6d 65 6e 74 20 3c 62 3e 50 47 3a 64 62 6e  gument <b>PG:dbn
11d0: 61 6d 65 3d 67 69 73 3c 2f 62 3e 20 73 65 6c 65  ame=gis</b> sele
11e0: 63 74 73 20 61 20 63 6f 6e 6e 65 63 74 69 6f 6e  cts a connection
11f0: 20 74 6f 20 50 6f 73 74 67 72 65 53 51 4c 3c 2f   to PostgreSQL</
1200: 6c 69 3e 0d 0a 3c 6c 69 3e 74 68 65 20 73 65 63  li>..<li>the sec
1210: 6f 6e 64 20 61 72 67 75 6d 65 6e 74 20 3c 62 3e  ond argument <b>
1220: 30 3c 2f 62 3e 20 73 69 6d 70 6c 79 20 69 6e 74  0</b> simply int
1230: 65 6e 64 73 20 3c 69 3e 72 65 61 64 2d 6f 6e 6c  ends <i>read-onl
1240: 79 3c 2f 69 3e 20 6d 6f 64 65 3c 2f 6c 69 3e 0d  y</i> mode</li>.
1250: 0a 3c 6c 69 3e 74 68 65 20 74 68 69 72 64 20 61  .<li>the third a
1260: 72 67 75 6d 65 6e 74 20 3c 62 3e 6d 65 72 61 6e  rgument <b>meran
1270: 6f 2e 6c 30 39 3c 2f 62 3e 20 73 70 65 63 69 66  o.l09</b> specif
1280: 69 65 73 20 74 68 65 20 73 63 68 65 6d 61 20 61  ies the schema a
1290: 6e 64 20 74 61 62 6c 65 20 6e 61 6d 65 73 3c 2f  nd table names</
12a0: 6c 69 3e 0d 0a 3c 2f 75 6c 3e 3c 2f 74 64 3e 0d  li>..</ul></td>.
12b0: 0a 3c 74 64 3e 3c 69 6d 67 20 62 6f 72 64 65 72  .<td><img border
12c0: 3d 22 31 22 20 73 72 63 3d 22 68 74 74 70 3a 2f  ="1" src="http:/
12d0: 2f 77 77 77 2e 67 61 69 61 2d 67 69 73 2e 69 74  /www.gaia-gis.it
12e0: 2f 67 61 69 61 2d 73 69 6e 73 2f 76 69 72 74 75  /gaia-sins/virtu
12f0: 61 6c 6f 67 72 2f 6f 67 72 2d 32 2e 70 6e 67 22  alogr/ogr-2.png"
1300: 20 61 6c 74 3d 22 63 72 65 61 74 65 5f 76 69 72   alt="create_vir
1310: 74 75 61 6c 5f 74 61 62 6c 65 22 3e 3c 2f 74 64  tual_table"></td
1320: 3e 3c 2f 74 72 3e 0d 0a 3c 74 72 3e 3c 74 64 3e  ></tr>..<tr><td>
1330: 3c 62 3e 53 74 65 70 20 23 33 3c 2f 62 3e 3c 62  <b>Step #3</b><b
1340: 72 3e 6a 75 73 74 20 61 20 73 69 6d 70 6c 65 20  r>just a simple 
1350: 74 65 73 74 20 71 75 65 72 79 20 74 6f 20 63 68  test query to ch
1360: 65 63 6b 20 69 66 20 61 6e 79 74 68 69 6e 67 20  eck if anything 
1370: 77 6f 72 6b 73 20 61 73 20 65 78 70 65 63 74 65  works as expecte
1380: 64 3c 2f 74 64 3e 0d 0a 3c 74 64 3e 3c 69 6d 67  d</td>..<td><img
1390: 20 62 6f 72 64 65 72 3d 22 31 22 20 73 72 63 3d   border="1" src=
13a0: 22 68 74 74 70 3a 2f 2f 77 77 77 2e 67 61 69 61  "http://www.gaia
13b0: 2d 67 69 73 2e 69 74 2f 67 61 69 61 2d 73 69 6e  -gis.it/gaia-sin
13c0: 73 2f 76 69 72 74 75 61 6c 6f 67 72 2f 6f 67 72  s/virtualogr/ogr
13d0: 2d 33 2e 70 6e 67 22 20 61 6c 74 3d 22 74 65 73  -3.png" alt="tes
13e0: 74 5f 71 75 65 72 79 22 3e 3c 2f 74 64 3e 3c 2f  t_query"></td></
13f0: 74 72 3e 0d 0a 3c 74 72 3e 3c 74 64 3e 3c 62 3e  tr>..<tr><td><b>
1400: 53 74 65 70 20 23 34 3c 2f 62 3e 3c 62 72 3e 77  Step #4</b><br>w
1410: 65 27 6c 6c 20 6e 6f 77 20 63 68 65 63 6b 20 74  e'll now check t
1420: 68 65 20 47 65 6f 6d 65 74 72 79 2d 54 79 70 65  he Geometry-Type
1430: 20 61 6e 64 20 53 52 49 44 20 6f 66 20 67 65 6f   and SRID of geo
1440: 6d 65 74 72 69 65 73 20 63 6f 6e 74 61 69 6e 65  metries containe
1450: 64 20 69 6e 74 6f 20 74 68 65 20 50 6f 73 74 47  d into the PostG
1460: 49 53 20 74 61 62 6c 65 2e 3c 62 72 3e 3c 62 72  IS table.<br><br
1470: 3e 0d 0a 46 6f 72 20 73 6f 6d 65 20 6f 64 64 20  >..For some odd 
1480: 72 65 61 73 6f 6e 20 74 68 65 20 53 52 49 44 20  reason the SRID 
1490: 69 73 20 72 65 70 6f 72 74 65 64 20 61 73 20 3c  is reported as <
14a0: 62 3e 2d 31 3c 2f 62 3e 20 28 3c 69 3e 75 6e 64  b>-1</b> (<i>und
14b0: 65 66 69 6e 65 64 3c 2f 69 3e 29 3b 20 61 6e 79  efined</i>); any
14c0: 77 61 79 20 61 20 64 69 72 65 63 74 20 71 75 65  way a direct que
14d0: 72 79 20 6f 6e 20 50 6f 73 74 47 49 53 20 72 65  ry on PostGIS re
14e0: 70 6f 72 74 73 20 3c 62 3e 53 52 49 44 3d 32 35  ports <b>SRID=25
14f0: 38 33 32 3c 2f 62 3e 3c 62 72 3e 28 3c 69 3e 43  832</b><br>(<i>C
1500: 6f 75 6c 64 20 62 65 20 49 27 76 65 20 20 6d 69  ould be I've  mi
1510: 73 73 65 64 20 74 6f 20 73 65 74 20 73 6f 6d 65  ssed to set some
1520: 20 6d 61 67 69 63 20 61 72 67 75 6d 65 6e 74 20   magic argument 
1530: 69 6e 74 6f 20 74 68 65 20 63 6f 6e 6e 65 63 74  into the connect
1540: 69 6f 6e 20 73 74 72 69 6e 67 20 3f 3c 2f 69 3e  ion string ?</i>
1550: 29 3c 2f 74 64 3e 0d 0a 3c 74 64 3e 3c 69 6d 67  )</td>..<td><img
1560: 20 62 6f 72 64 65 72 3d 22 31 22 20 73 72 63 3d   border="1" src=
1570: 22 68 74 74 70 3a 2f 2f 77 77 77 2e 67 61 69 61  "http://www.gaia
1580: 2d 67 69 73 2e 69 74 2f 67 61 69 61 2d 73 69 6e  -gis.it/gaia-sin
1590: 73 2f 76 69 72 74 75 61 6c 6f 67 72 2f 6f 67 72  s/virtualogr/ogr
15a0: 2d 34 2e 70 6e 67 22 20 61 6c 74 3d 22 63 68 65  -4.png" alt="che
15b0: 63 6b 5f 74 79 70 65 5f 73 72 69 64 22 3e 3c 2f  ck_type_srid"></
15c0: 74 64 3e 3c 2f 74 72 3e 0d 0a 3c 74 72 3e 3c 74  td></tr>..<tr><t
15d0: 64 3e 3c 62 3e 53 74 65 70 20 23 35 3c 2f 62 3e  d><b>Step #5</b>
15e0: 3c 62 72 3e 6e 6f 77 20 77 65 27 6c 6c 20 63 72  <br>now we'll cr
15f0: 65 61 74 65 20 61 20 3c 69 3e 67 65 6e 75 69 6e  eate a <i>genuin
1600: 65 3c 2f 69 3e 20 53 70 61 74 69 61 4c 69 74 65  e</i> SpatiaLite
1610: 20 6f 77 6e 20 74 61 62 6c 65 3c 2f 74 64 3e 0d   own table</td>.
1620: 0a 3c 74 64 3e 3c 69 6d 67 20 62 6f 72 64 65 72  .<td><img border
1630: 3d 22 31 22 20 73 72 63 3d 22 68 74 74 70 3a 2f  ="1" src="http:/
1640: 2f 77 77 77 2e 67 61 69 61 2d 67 69 73 2e 69 74  /www.gaia-gis.it
1650: 2f 67 61 69 61 2d 73 69 6e 73 2f 76 69 72 74 75  /gaia-sins/virtu
1660: 61 6c 6f 67 72 2f 6f 67 72 2d 35 2e 70 6e 67 22  alogr/ogr-5.png"
1670: 20 61 6c 74 3d 22 63 72 65 61 74 65 5f 74 61 62   alt="create_tab
1680: 6c 65 22 3e 3c 2f 74 64 3e 3c 2f 74 72 3e 0d 0a  le"></td></tr>..
1690: 3c 74 72 3e 3c 74 64 3e 3c 62 3e 53 74 65 70 20  <tr><td><b>Step 
16a0: 23 36 3c 2f 62 3e 3c 62 72 3e 77 65 27 6c 6c 20  #6</b><br>we'll 
16b0: 74 68 65 6e 20 61 64 64 20 61 20 47 65 6f 6d 65  then add a Geome
16c0: 74 72 79 20 63 6f 6c 75 6d 6e 20 74 6f 20 74 68  try column to th
16d0: 65 20 70 72 65 76 69 6f 75 73 6c 79 20 63 72 65  e previously cre
16e0: 61 74 65 64 20 74 61 62 6c 65 3c 2f 74 64 3e 0d  ated table</td>.
16f0: 0a 3c 74 64 3e 3c 69 6d 67 20 62 6f 72 64 65 72  .<td><img border
1700: 3d 22 31 22 20 73 72 63 3d 22 68 74 74 70 3a 2f  ="1" src="http:/
1710: 2f 77 77 77 2e 67 61 69 61 2d 67 69 73 2e 69 74  /www.gaia-gis.it
1720: 2f 67 61 69 61 2d 73 69 6e 73 2f 76 69 72 74 75  /gaia-sins/virtu
1730: 61 6c 6f 67 72 2f 6f 67 72 2d 36 2e 70 6e 67 22  alogr/ogr-6.png"
1740: 20 61 6c 74 3d 22 61 64 64 5f 67 65 6f 6d 65 74   alt="add_geomet
1750: 79 5f 63 6f 6c 75 6d 6e 22 3e 3c 2f 74 64 3e 3c  y_column"></td><
1760: 2f 74 72 3e 0d 0a 3c 74 72 3e 3c 74 64 3e 3c 62  /tr>..<tr><td><b
1770: 3e 53 74 65 70 20 23 37 3c 2f 62 3e 3c 62 72 3e  >Step #7</b><br>
1780: 61 6e 64 20 66 69 6e 61 6c 6c 79 20 77 65 27 6c  and finally we'l
1790: 6c 20 63 72 65 61 74 65 20 61 20 53 70 61 74 69  l create a Spati
17a0: 61 6c 20 49 6e 64 65 78 20 6f 6e 20 74 68 69 73  al Index on this
17b0: 20 67 65 6f 6d 65 74 72 79 20 63 6f 6c 75 6d 6e   geometry column
17c0: 3c 2f 74 64 3e 0d 0a 3c 74 64 3e 3c 69 6d 67 20  </td>..<td><img 
17d0: 62 6f 72 64 65 72 3d 22 31 22 20 73 72 63 3d 22  border="1" src="
17e0: 68 74 74 70 3a 2f 2f 77 77 77 2e 67 61 69 61 2d  http://www.gaia-
17f0: 67 69 73 2e 69 74 2f 67 61 69 61 2d 73 69 6e 73  gis.it/gaia-sins
1800: 2f 76 69 72 74 75 61 6c 6f 67 72 2f 6f 67 72 2d  /virtualogr/ogr-
1810: 37 2e 70 6e 67 22 20 61 6c 74 3d 22 63 72 65 61  7.png" alt="crea
1820: 74 65 5f 73 70 61 74 69 61 6c 5f 69 6e 64 65 78  te_spatial_index
1830: 22 3e 3c 2f 74 64 3e 3c 2f 74 72 3e 0d 0a 3c 74  "></td></tr>..<t
1840: 72 3e 3c 74 64 3e 3c 62 3e 53 74 65 70 20 23 38  r><td><b>Step #8
1850: 3c 2f 62 3e 3c 62 72 3e 6e 6f 77 20 77 65 20 73  </b><br>now we s
1860: 69 6d 70 6c 79 20 68 61 76 65 20 74 6f 20 65 78  imply have to ex
1870: 65 63 75 74 65 20 61 20 76 65 72 79 20 74 72 69  ecute a very tri
1880: 76 69 61 6c 3c 62 72 3e 0d 0a 3c 62 3e 49 4e 53  vial<br>..<b>INS
1890: 45 52 54 20 49 4e 54 4f 20 2e 2e 2e 20 53 45 4c  ERT INTO ... SEL
18a0: 45 43 54 3c 2f 62 3e 3c 62 72 3e 0d 0a 53 51 4c  ECT</b><br>..SQL
18b0: 20 73 74 61 74 65 6d 65 6e 74 2c 20 61 6e 64 20   statement, and 
18c0: 74 68 65 20 77 68 6f 6c 65 20 74 61 62 6c 65 20  the whole table 
18d0: 77 69 6c 6c 20 62 65 20 64 69 72 65 63 74 6c 79  will be directly
18e0: 20 69 6d 70 6f 72 74 65 64 20 69 6e 74 6f 20 53   imported into S
18f0: 70 61 74 69 61 4c 69 74 65 20 66 72 6f 6d 20 50  patiaLite from P
1900: 6f 73 74 47 49 53 3c 2f 74 64 3e 0d 0a 3c 74 64  ostGIS</td>..<td
1910: 3e 3c 69 6d 67 20 62 6f 72 64 65 72 3d 22 31 22  ><img border="1"
1920: 20 73 72 63 3d 22 68 74 74 70 3a 2f 2f 77 77 77   src="http://www
1930: 2e 67 61 69 61 2d 67 69 73 2e 69 74 2f 67 61 69  .gaia-gis.it/gai
1940: 61 2d 73 69 6e 73 2f 76 69 72 74 75 61 6c 6f 67  a-sins/virtualog
1950: 72 2f 6f 67 72 2d 38 2e 70 6e 67 22 20 61 6c 74  r/ogr-8.png" alt
1960: 3d 22 70 6f 70 75 6c 61 74 69 6e 67 5f 74 61 62  ="populating_tab
1970: 6c 65 22 3e 3c 2f 74 64 3e 3c 2f 74 72 3e 0d 0a  le"></td></tr>..
1980: 3c 74 72 3e 3c 74 64 3e 3c 62 3e 53 74 65 70 20  <tr><td><b>Step 
1990: 23 39 3c 2f 62 3e 3c 62 72 3e 65 6e 64 20 6f 66  #9</b><br>end of
19a0: 20 74 68 65 20 73 74 6f 72 79 3a 20 6e 6f 77 20   the story: now 
19b0: 77 65 20 73 69 6d 70 6c 79 20 68 61 76 65 20 74  we simply have t
19c0: 6f 20 64 69 73 63 6f 6e 6e 65 63 74 20 74 68 65  o disconnect the
19d0: 20 50 6f 73 74 47 49 53 20 74 61 62 6c 65 20 61   PostGIS table a
19e0: 6e 64 20 77 65 27 76 65 20 63 6f 6d 70 6c 65 74  nd we've complet
19f0: 65 6c 79 20 66 69 6e 69 73 68 65 64 20 6f 75 72  ely finished our
1a00: 20 6a 6f 62 20 77 69 74 68 20 66 75 6c 6c 20 73   job with full s
1a10: 75 63 63 65 73 73 2e 0d 0a 3c 68 32 3e 52 65 61  uccess...<h2>Rea
1a20: 6c 6c 79 20 61 6d 61 7a 69 6e 67 3c 2f 68 32 3e  lly amazing</h2>
1a30: 0d 0a 61 73 20 73 69 6d 70 6c 65 20 61 73 20 64  ..as simple as d
1a40: 72 69 6e 6b 69 6e 67 20 61 20 67 6c 61 73 73 20  rinking a glass 
1a50: 6f 66 20 77 61 74 65 72 20 21 21 21 3c 2f 74 64  of water !!!</td
1a60: 3e 0d 0a 3c 74 64 3e 3c 69 6d 67 20 62 6f 72 64  >..<td><img bord
1a70: 65 72 3d 22 31 22 20 73 72 63 3d 22 68 74 74 70  er="1" src="http
1a80: 3a 2f 2f 77 77 77 2e 67 61 69 61 2d 67 69 73 2e  ://www.gaia-gis.
1a90: 69 74 2f 67 61 69 61 2d 73 69 6e 73 2f 76 69 72  it/gaia-sins/vir
1aa0: 74 75 61 6c 6f 67 72 2f 6f 67 72 2d 39 2e 70 6e  tualogr/ogr-9.pn
1ab0: 67 22 20 61 6c 74 3d 22 64 72 6f 70 5f 76 69 72  g" alt="drop_vir
1ac0: 74 75 61 6c 22 3e 3c 2f 74 64 3e 3c 2f 74 72 3e  tual"></td></tr>
1ad0: 0d 0a 3c 2f 74 61 62 6c 65 3e 0d 0a 3c 62 72 3e  ..</table>..<br>
1ae0: 3c 68 72 3e 0d 0a 42 61 63 6b 20 74 6f 20 3c 61  <hr>..Back to <a
1af0: 20 68 72 65 66 3d 22 68 74 74 70 73 3a 2f 2f 77   href="https://w
1b00: 77 77 2e 67 61 69 61 2d 67 69 73 2e 69 74 2f 66  ww.gaia-gis.it/f
1b10: 6f 73 73 69 6c 2f 6c 69 62 73 70 61 74 69 61 6c  ossil/libspatial
1b20: 69 74 65 2f 77 69 6b 69 3f 6e 61 6d 65 3d 73 77  ite/wiki?name=sw
1b30: 69 74 63 68 69 6e 67 2d 74 6f 2d 34 2e 30 23 76  itching-to-4.0#v
1b40: 69 72 74 75 61 6c 6f 67 72 22 3e 6d 61 69 6e 20  irtualogr">main 
1b50: 70 61 67 65 3c 2f 61 3e 0a 5a 20 62 63 32 63 65  page</a>.Z bc2ce
1b60: 64 37 39 62 61 65 61 35 36 30 37 32 37 65 36 37  d79baea560727e67
1b70: 62 65 39 33 34 30 34 36 62 61 30 0a              be934046ba0.