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.