Hex Artifact Content
Not logged in

Artifact bfd67870269a2ce3f09374a52a45819cf1fa22db:

Wiki page [PROJ.6] by sandro 2019-05-01 06:48:47.
0000: 44 20 32 30 31 39 2d 30 35 2d 30 31 54 30 36 3a  D 2019-05-01T06:
0010: 34 38 3a 34 37 2e 34 31 35 0a 4c 20 50 52 4f 4a  48:47.415.L PROJ
0020: 2e 36 0a 50 20 63 65 34 65 33 33 65 34 30 30 62  .6.P ce4e33e400b
0030: 31 37 38 32 61 61 38 37 30 34 32 63 62 39 34 63  1782aa87042cb94c
0040: 38 32 37 61 38 35 65 63 37 33 36 34 36 0a 55 20  827a85ec73646.U 
0050: 73 61 6e 64 72 6f 0a 57 20 33 33 32 32 33 0a 3c  sandro.W 33223.<
0060: 61 20 68 72 65 66 3d 22 68 74 74 70 73 3a 2f 2f  a href="https://
0070: 77 77 77 2e 67 61 69 61 2d 67 69 73 2e 69 74 2f  www.gaia-gis.it/
0080: 66 6f 73 73 69 6c 2f 6c 69 62 73 70 61 74 69 61  fossil/libspatia
0090: 6c 69 74 65 2f 77 69 6b 69 3f 6e 61 6d 65 3d 34  lite/wiki?name=4
00a0: 2e 33 2e 30 2d 64 6f 63 22 3e 62 61 63 6b 3c 2f  .3.0-doc">back</
00b0: 61 3e 3c 68 72 3e 3c 62 72 3e 0d 0a 3c 68 31 3e  a><hr><br>..<h1>
00c0: 49 6e 74 72 6f 64 75 63 74 69 6f 6e 3c 2f 68 31  Introduction</h1
00d0: 3e 0d 0a 3c 62 3e 50 52 4f 4a 3c 2f 62 3e 20 69  >..<b>PROJ</b> i
00e0: 73 20 61 20 77 65 6c 6c 2d 6b 6e 6f 77 6e 20 6c  s a well-known l
00f0: 69 62 72 61 72 79 20 66 6f 72 20 70 65 72 66 6f  ibrary for perfo
0100: 72 6d 69 6e 67 20 63 6f 6e 76 65 72 73 69 6f 6e  rming conversion
0110: 73 20 62 65 74 77 65 65 6e 20 63 61 72 74 6f 67  s between cartog
0120: 72 61 70 68 69 63 20 70 72 6f 6a 65 63 74 69 6f  raphic projectio
0130: 6e 73 2e 3c 62 72 3e 0d 0a 49 74 27 73 20 75 6e  ns.<br>..It's un
0140: 69 76 65 72 73 61 6c 6c 79 20 73 75 70 70 6f 72  iversally suppor
0150: 74 65 64 20 62 79 20 61 6c 6d 6f 73 74 20 61 6c  ted by almost al
0160: 6c 20 6f 70 65 6e 20 73 6f 75 72 63 65 20 47 49  l open source GI
0170: 53 2d 6f 72 69 65 6e 74 65 64 20 61 70 70 6c 69  S-oriented appli
0180: 63 61 74 69 6f 6e 73 20 61 6e 64 20 70 61 63 6b  cations and pack
0190: 61 67 65 73 2c 20 73 6f 20 74 68 65 72 65 20 69  ages, so there i
01a0: 73 20 6e 6f 20 6e 65 65 64 20 74 6f 20 77 61 73  s no need to was
01b0: 74 65 20 74 69 6d 65 20 69 6e 20 66 75 74 68 65  te time in futhe
01c0: 72 20 70 72 65 73 65 6e 74 61 74 69 6f 6e 73 2e  r presentations.
01d0: 3c 62 72 3e 0d 0a 57 65 20 6a 75 73 74 20 6e 65  <br>..We just ne
01e0: 65 64 20 61 20 62 69 74 20 6f 66 20 68 69 73 74  ed a bit of hist
01f0: 6f 72 79 20 74 6f 20 66 75 6c 6c 79 20 75 6e 64  ory to fully und
0200: 65 72 73 74 61 6e 64 20 74 68 65 20 63 75 72 72  erstand the curr
0210: 65 6e 74 20 73 74 61 74 65 20 6f 66 20 74 68 65  ent state of the
0220: 20 61 72 74 20 6f 66 20 74 68 69 73 20 6c 69 62   art of this lib
0230: 72 61 72 79 3a 3c 62 72 3e 0d 0a 3c 68 33 3e 50  rary:<br>..<h3>P
0240: 61 73 74 20 48 69 73 74 6f 72 79 3c 2f 68 33 3e  ast History</h3>
0250: 0d 0a 3c 62 3e 3c 75 3e 54 69 6d 65 6c 69 6e 65  ..<b><u>Timeline
0260: 3c 2f 75 3e 3c 2f 62 3e 3a 0d 0a 3c 75 6c 3e 0d  </u></b>:..<ul>.
0270: 0a 3c 6c 69 3e 56 65 72 79 20 66 65 77 20 75 73  .<li>Very few us
0280: 65 72 73 20 61 6e 64 20 64 65 76 65 6c 6f 70 65  ers and develope
0290: 72 73 20 64 6f 20 72 65 61 6c 6c 79 20 72 65 61  rs do really rea
02a0: 6c 69 7a 65 20 68 6f 77 20 61 6e 63 69 65 6e 74  lize how ancient
02b0: 20 69 73 20 50 52 4f 4a 2c 20 61 6e 64 20 68 6f   is PROJ, and ho
02c0: 77 20 66 61 72 20 69 6e 20 74 69 6d 65 20 69 74  w far in time it
02d0: 20 73 74 61 72 74 65 64 20 6d 6f 76 69 6e 67 20   started moving 
02e0: 69 74 73 20 66 69 72 73 74 20 73 74 65 70 73 2e  its first steps.
02f0: 3c 2f 6c 69 3e 0d 0a 3c 6c 69 3e 69 6e 20 3c 62  </li>..<li>in <b
0300: 3e 31 39 38 30 3c 2f 62 3e 20 28 61 62 6f 75 74  >1980</b> (about
0310: 20 34 30 20 79 65 61 72 73 20 61 67 6f 29 20 47   40 years ago) G
0320: 65 72 61 6c 64 20 45 76 65 6e 64 65 6e 20 73 74  erald Evenden st
0330: 61 72 74 65 64 20 77 6f 72 6b 69 6e 67 20 6f 6e  arted working on
0340: 20 74 68 65 20 76 65 72 79 20 66 69 72 73 74 20   the very first 
0350: 50 52 4f 4a 20 76 65 72 73 69 6f 6e 2c 20 61 6e  PROJ version, an
0360: 64 20 61 74 20 74 68 65 20 74 69 6d 65 20 69 74  d at the time it
0370: 20 77 61 73 20 61 20 52 61 74 66 6f 72 20 70 72   was a Ratfor pr
0380: 6f 67 72 61 6d 2e 3c 2f 6c 69 3e 0d 0a 3c 6c 69  ogram.</li>..<li
0390: 3e 69 6e 20 3c 62 3e 31 39 38 35 3c 2f 62 3e 20  >in <b>1985</b> 
03a0: 74 68 65 20 63 6f 64 65 20 77 61 73 20 63 6f 6d  the code was com
03b0: 70 6c 65 74 65 6c 79 20 72 65 77 72 69 74 74 65  pletely rewritte
03c0: 6e 20 69 6e 20 43 20 74 6f 20 72 75 6e 20 6f 6e  n in C to run on
03d0: 20 55 4e 49 58 20 73 79 73 74 65 6d 73 2c 20 61   UNIX systems, a
03e0: 6e 64 20 69 74 20 77 61 73 20 6e 61 6d 65 64 20  nd it was named 
03f0: 3c 62 3e 50 52 4f 4a 2e 32 3c 2f 62 3e 2e 3c 2f  <b>PROJ.2</b>.</
0400: 6c 69 3e 0d 0a 3c 6c 69 3e 69 6e 20 3c 62 3e 31  li>..<li>in <b>1
0410: 39 39 30 3c 2f 62 3e 20 77 61 73 20 72 65 6c 65  990</b> was rele
0420: 61 73 65 64 20 61 6e 20 75 70 64 61 74 65 64 20  ased an updated 
0430: 76 65 72 73 69 6f 6e 20 6e 61 6d 65 64 20 3c 62  version named <b
0440: 3e 50 52 4f 4a 2e 33 3c 2f 6c 69 3e 0d 0a 3c 6c  >PROJ.3</li>..<l
0450: 69 3e 69 6e 20 3c 62 3e 31 39 39 34 3c 2f 62 3e  i>in <b>1994</b>
0460: 20 61 20 6d 6f 72 65 20 61 64 76 61 6e 63 65 64   a more advanced
0470: 20 76 65 72 73 69 6f 6e 20 77 61 73 20 72 65 6c   version was rel
0480: 65 61 73 65 64 2c 20 61 6e 64 20 69 74 20 77 61  eased, and it wa
0490: 73 20 6f 62 76 69 6f 75 73 6c 79 20 6e 61 6d 65  s obviously name
04a0: 64 20 3c 62 3e 50 52 4f 4a 2e 34 3c 2f 62 3e 3c  d <b>PROJ.4</b><
04b0: 2f 6c 69 3e 0d 0a 3c 6c 69 3e 69 6e 20 3c 62 3e  /li>..<li>in <b>
04c0: 31 39 39 35 3c 2f 62 3e 20 45 76 65 6e 64 65 6e  1995</b> Evenden
04d0: 20 73 74 6f 70 70 65 64 20 61 6e 79 20 66 75 72   stopped any fur
04e0: 74 68 65 72 20 64 65 76 65 6c 6f 70 6d 65 6e 74  ther development
04f0: 20 61 63 74 69 76 69 74 79 20 61 6e 64 20 74 68   activity and th
0500: 65 20 70 72 6f 6a 65 63 74 20 62 65 63 6f 6d 65  e project become
0510: 20 69 6e 61 63 74 69 76 65 20 66 6f 72 20 73 65   inactive for se
0520: 76 65 72 61 6c 20 79 65 61 72 73 2e 3c 2f 6c 69  veral years.</li
0530: 3e 0d 0a 3c 6c 69 3e 69 6e 20 3c 62 3e 32 30 30  >..<li>in <b>200
0540: 30 3c 2f 62 3e 20 46 72 61 6e 6b 20 57 61 72 6d  0</b> Frank Warm
0550: 65 72 64 61 6d 20 62 61 63 61 6d 65 20 74 68 65  erdam bacame the
0560: 20 6e 65 77 20 6d 61 69 6e 74 61 69 6e 65 72 20   new maintainer 
0570: 61 6e 64 20 72 65 6c 65 61 73 65 64 20 76 65 72  and released ver
0580: 73 69 6f 6e 20 3c 62 3e 34 2e 34 3c 2f 62 3e 3c  sion <b>4.4</b><
0590: 2f 6c 69 3e 0d 0a 3c 6c 69 3e 41 66 74 65 72 20  /li>..<li>After 
05a0: 74 68 69 73 20 72 65 62 6f 72 6e 20 74 68 65 20  this reborn the 
05b0: 72 65 76 69 74 61 6c 69 7a 65 64 20 70 72 6f 6a  revitalized proj
05c0: 65 63 74 20 63 6f 6e 74 69 6e 75 65 64 20 74 6f  ect continued to
05d0: 20 62 65 20 72 65 67 75 6c 61 72 6c 79 20 6d 61   be regularly ma
05e0: 69 6e 74 61 69 6e 65 64 2c 20 62 75 74 20 6e 6f  intained, but no
05f0: 20 66 75 72 74 68 65 72 20 72 65 6c 65 76 61 6e   further relevan
0600: 74 20 69 6d 70 72 6f 76 65 6d 65 6e 74 73 20 77  t improvements w
0610: 65 72 65 20 69 6e 74 72 6f 64 75 63 65 64 2e 3c  ere introduced.<
0620: 62 72 3e 0d 0a 50 52 4f 4a 2e 34 20 6a 75 73 74  br>..PROJ.4 just
0630: 20 63 6f 6e 74 69 6e 75 65 64 20 69 74 73 20 76   continued its v
0640: 65 72 79 20 70 6c 61 63 69 64 20 65 76 6f 6c 75  ery placid evolu
0650: 74 69 6f 6e 20 69 6e 20 61 20 73 75 62 73 74 61  tion in a substa
0660: 6e 74 69 61 6c 6c 79 20 63 6f 6e 73 65 72 76 61  ntially conserva
0670: 74 69 76 65 20 77 61 79 2e 3c 2f 6c 69 3e 0d 0a  tive way.</li>..
0680: 3c 2f 75 6c 3e 3c 62 72 3e 0d 0a 3c 62 3e 3c 75  </ul><br>..<b><u
0690: 3e 53 68 6f 72 74 20 63 6f 6e 63 6c 75 73 69 6f  >Short conclusio
06a0: 6e 3c 2f 75 3e 3c 2f 62 3e 3a 20 74 68 65 20 66  n</u></b>: the f
06b0: 6f 75 72 74 68 20 76 65 72 73 69 6f 6e 20 6f 66  ourth version of
06c0: 20 50 52 4f 4a 20 28 61 6b 61 20 3c 62 3e 50 52   PROJ (aka <b>PR
06d0: 4f 4a 2e 34 3c 2f 62 3e 29 20 6c 61 73 74 65 64  OJ.4</b>) lasted
06e0: 20 66 6f 72 20 61 62 6f 75 74 20 74 77 6f 20 64   for about two d
06f0: 65 63 61 64 65 73 2c 20 61 20 76 65 72 79 20 75  ecades, a very u
0700: 6e 63 6f 6d 6d 6f 6e 20 73 69 74 75 61 74 69 6f  ncommon situatio
0710: 6e 2e 3c 62 72 3e 0d 0a 41 6e 64 20 63 6f 6e 73  n.<br>..And cons
0720: 65 71 75 65 6e 74 6c 79 20 61 20 66 75 6c 6c 20  equently a full 
0730: 67 65 6e 65 72 61 74 69 6f 6e 20 6f 66 20 64 65  generation of de
0740: 76 65 6c 6f 70 65 72 73 20 61 6e 64 20 75 73 65  velopers and use
0750: 72 73 20 62 65 63 61 6d 65 20 73 69 6e 63 65 72  rs became sincer
0760: 65 6c 79 20 63 6f 6e 76 69 6e 63 65 64 20 74 68  ely convinced th
0770: 61 74 20 50 52 4f 4a 2e 34 20 77 61 73 20 74 68  at PROJ.4 was th
0780: 65 20 72 65 61 6c 20 6e 61 6d 65 20 6f 66 20 74  e real name of t
0790: 68 65 20 6c 69 62 72 61 72 79 2e 0d 0a 3c 68 33  he library...<h3
07a0: 3e 54 68 65 20 72 65 76 6f 6c 75 74 69 6f 6e 20  >The revolution 
07b0: 63 6f 6d 65 73 3c 2f 68 33 3e 0d 0a 3c 62 3e 3c  comes</h3>..<b><
07c0: 75 3e 54 69 6d 65 6c 69 6e 65 3c 2f 75 3e 3c 2f  u>Timeline</u></
07d0: 62 3e 3a 0d 0a 3c 75 6c 3e 0d 0a 3c 6c 69 3e 69  b>:..<ul>..<li>i
07e0: 6e 20 3c 62 3e 32 30 31 38 3c 2f 62 3e 20 45 76  n <b>2018</b> Ev
07f0: 65 6e 20 52 6f 75 61 75 6c 74 2c 20 4b 72 69 73  en Rouault, Kris
0800: 74 69 61 6e 20 45 76 65 72 73 20 61 6e 64 20 6f  tian Evers and o
0810: 74 68 65 72 73 20 73 74 61 72 74 20 64 65 76 65  thers start deve
0820: 6c 6f 70 69 6e 67 20 61 20 72 65 76 6f 6c 75 74  loping a revolut
0830: 69 6f 6e 69 7a 65 64 20 50 52 4f 4a 20 73 75 70  ionized PROJ sup
0840: 70 6f 72 74 69 6e 67 20 6d 61 6e 79 20 72 65 6c  porting many rel
0850: 65 76 61 6e 74 20 69 6e 6e 6f 76 61 74 69 6f 6e  evant innovation
0860: 73 2e 3c 62 72 3e 0d 0a 3c 62 3e 50 52 4f 4a 2e  s.<br>..<b>PROJ.
0870: 35 3c 2f 62 3e 20 69 73 20 69 6e 74 65 6e 64 65  5</b> is intende
0880: 64 20 74 6f 20 62 65 20 74 68 65 20 66 69 72 73  d to be the firs
0890: 74 20 70 72 65 6c 69 6d 69 6e 61 72 79 20 73 74  t preliminary st
08a0: 65 70 20 6f 66 20 61 20 6d 6f 72 65 20 63 6f 6d  ep of a more com
08b0: 70 6c 65 78 20 65 76 6f 6c 75 74 69 6f 6e 20 73  plex evolution s
08c0: 63 68 65 6d 61 2e 3c 2f 6c 69 3e 0d 0a 3c 6c 69  chema.</li>..<li
08d0: 3e 6f 6e 20 3c 62 3e 4d 61 72 63 68 20 32 30 31  >on <b>March 201
08e0: 39 3c 2f 62 3e 20 61 20 6d 6f 72 65 20 6d 61 74  9</b> a more mat
08f0: 75 72 65 20 76 65 72 73 69 6f 6e 20 69 73 20 72  ure version is r
0900: 65 6c 65 61 73 65 64 2c 20 61 6e 64 20 69 74 27  eleased, and it'
0910: 73 20 3c 62 3e 50 52 4f 4a 2e 36 3c 2f 62 3e 3c  s <b>PROJ.6</b><
0920: 2f 6c 69 3e 0d 0a 3c 6c 69 3e 4e 65 78 74 20 79  /li>..<li>Next y
0930: 65 61 72 20 28 32 30 32 30 29 20 3c 62 3e 50 52  ear (2020) <b>PR
0940: 4f 4a 2e 37 3c 2f 62 3e 20 69 73 20 65 78 70 65  OJ.7</b> is expe
0950: 63 74 65 64 20 74 6f 20 62 65 20 72 65 6c 65 61  cted to be relea
0960: 73 65 64 2c 20 61 6e 64 20 69 74 20 77 69 6c 6c  sed, and it will
0970: 20 66 75 6c 6c 79 20 63 6f 6d 70 6c 65 74 65 20   fully complete 
0980: 74 68 65 20 74 72 61 6e 73 69 74 69 6f 6e 20 62  the transition b
0990: 65 74 77 65 65 6e 20 74 68 65 20 6f 6c 64 20 61  etween the old a
09a0: 6e 64 20 6e 65 77 20 61 72 63 68 69 74 65 63 74  nd new architect
09b0: 75 72 65 73 2e 3c 2f 6c 69 3e 0d 0a 3c 2f 75 6c  ures.</li>..</ul
09c0: 3e 0d 0a 3c 62 72 3e 0d 0a 3c 62 3e 3c 75 3e 4e  >..<br>..<b><u>N
09d0: 6f 74 65 3c 2f 75 3e 3c 2f 62 3e 3a 20 74 68 65  ote</u></b>: the
09e0: 20 77 68 6f 6c 65 20 74 72 61 6e 73 69 74 69 6f   whole transitio
09f0: 6e 20 69 6d 70 6c 69 65 73 20 6d 61 6e 79 20 72  n implies many r
0a00: 65 6c 65 76 61 6e 74 20 63 68 61 6e 67 65 73 2c  elevant changes,
0a10: 20 73 6f 20 74 68 61 74 20 61 20 64 65 65 70 6c   so that a deepl
0a20: 79 20 72 65 76 69 73 65 64 20 41 50 49 20 77 69  y revised API wi
0a30: 6c 6c 20 62 65 20 72 65 71 75 69 72 65 64 2e 0d  ll be required..
0a40: 0a 49 6e 20 6f 74 68 65 72 20 77 6f 72 64 73 2c  .In other words,
0a50: 20 74 68 65 20 6f 6c 64 20 3c 62 3e 50 52 4f 4a   the old <b>PROJ
0a60: 2e 34 3c 2f 62 3e 20 61 6e 64 20 74 68 65 20 6e  .4</b> and the n
0a70: 65 77 20 3c 62 3e 50 52 4f 4a 2e 37 3c 2f 62 3e  ew <b>PROJ.7</b>
0a80: 20 77 69 6c 6c 20 73 75 70 70 6f 72 74 20 74 77   will support tw
0a90: 6f 20 64 69 66 66 65 72 65 6e 74 20 41 50 49 73  o different APIs
0aa0: 2c 20 74 68 75 73 20 61 62 72 75 70 74 6c 79 20  , thus abruptly 
0ab0: 62 72 65 61 6b 69 6e 67 20 63 72 6f 73 73 2d 76  breaking cross-v
0ac0: 65 72 73 69 6f 6e 20 63 6f 6d 70 61 74 69 62 69  ersion compatibi
0ad0: 6c 69 74 79 2e 3c 62 72 3e 0d 0a 54 68 69 73 20  lity.<br>..This 
0ae0: 69 73 20 61 6e 20 75 6d 70 6c 65 61 73 61 6e 74  is an umpleasant
0af0: 20 6e 65 77 2c 20 62 65 63 61 75 73 65 20 69 74   new, because it
0b00: 20 70 72 61 63 74 69 63 61 6c 6c 79 20 6d 65 61   practically mea
0b10: 6e 73 20 74 68 61 74 20 61 6c 6c 20 73 6f 66 74  ns that all soft
0b20: 77 61 72 65 20 6d 6f 64 75 6c 65 73 20 64 65 70  ware modules dep
0b30: 65 6e 64 69 6e 67 20 6f 6e 20 50 52 4f 4a 20 28  ending on PROJ (
0b40: 74 68 69 73 20 69 6e 63 6c 75 64 69 6e 67 20 53  this including S
0b50: 70 61 74 69 61 4c 69 74 65 29 20 77 69 6c 6c 20  patiaLite) will 
0b60: 72 65 71 75 69 72 65 20 61 20 6e 6f 74 20 61 74  require a not at
0b70: 20 61 6c 6c 20 74 72 69 76 69 61 6c 20 72 65 77   all trivial rew
0b80: 72 69 74 65 20 69 6e 20 6f 72 64 65 72 20 74 6f  rite in order to
0b90: 20 66 75 6c 66 69 6c 6c 20 74 68 65 20 6e 65 77   fulfill the new
0ba0: 20 41 50 49 20 72 65 71 75 69 72 65 6d 65 6e 74   API requirement
0bb0: 73 2e 3c 62 72 3e 0d 0a 42 75 74 20 77 68 65 6e  s.<br>..But when
0bc0: 20 79 6f 75 20 63 6f 6e 73 69 64 65 72 20 74 68   you consider th
0bd0: 61 74 27 73 20 74 68 65 20 66 69 72 73 74 20 74  at's the first t
0be0: 69 6d 65 20 69 6e 20 69 74 73 20 76 65 72 79 20  ime in its very 
0bf0: 6c 6f 6e 67 20 6c 69 66 65 20 74 68 61 74 20 50  long life that P
0c00: 52 4f 4a 20 72 65 71 75 69 72 65 73 20 61 6e 20  ROJ requires an 
0c10: 65 78 74 72 61 20 65 66 66 6f 72 74 20 69 6e 20  extra effort in 
0c20: 6f 72 64 65 72 20 74 6f 20 69 6e 74 72 6f 64 75  order to introdu
0c30: 63 65 20 73 6f 20 6d 61 6e 79 20 75 73 65 66 75  ce so many usefu
0c40: 6c 20 69 6e 6e 6f 76 61 74 69 6f 6e 73 2c 20 74  l innovations, t
0c50: 68 69 73 20 75 6e 65 78 70 65 63 74 65 64 20 41  his unexpected A
0c60: 50 49 20 62 72 65 61 6b 61 67 65 20 6c 6f 6f 6b  PI breakage look
0c70: 73 20 66 75 6c 6c 79 20 6a 75 73 74 69 66 69 65  s fully justifie
0c80: 64 20 61 6e 64 20 61 62 73 6f 6c 75 74 65 6c 79  d and absolutely
0c90: 20 72 65 61 73 6f 6e 61 62 6c 65 2e 3c 62 72 3e   reasonable.<br>
0ca0: 3c 62 72 3e 0d 0a 3c 62 3e 3c 75 3e 4d 6f 72 65  <br>..<b><u>More
0cb0: 20 64 65 74 61 69 6c 73 20 61 62 6f 75 74 20 74   details about t
0cc0: 68 65 20 41 50 49 20 62 72 65 61 6b 61 67 65 3c  he API breakage<
0cd0: 2f 75 3e 3c 2f 62 3e 3a 0d 0a 3c 75 6c 3e 0d 0a  /u></b>:..<ul>..
0ce0: 3c 6c 69 3e 3c 62 3e 50 52 4f 4a 2e 35 3c 2f 62  <li><b>PROJ.5</b
0cf0: 3e 20 73 74 61 72 74 65 64 20 69 6e 74 72 6f 64  > started introd
0d00: 75 63 69 6e 67 20 74 68 65 20 6e 65 77 20 41 50  ucing the new AP
0d10: 49 2c 20 62 75 74 20 77 61 73 20 73 74 69 6c 6c  I, but was still
0d20: 20 61 62 6c 65 20 74 6f 20 73 75 70 70 6f 72 74   able to support
0d30: 20 74 68 65 20 6f 6c 64 20 74 72 61 64 69 74 69   the old traditi
0d40: 6f 6e 61 6c 20 41 50 49 20 77 69 74 68 6f 75 74  onal API without
0d50: 20 61 6e 79 20 63 6f 6d 70 6c 61 69 6e 74 2e 3c   any complaint.<
0d60: 2f 6c 69 3e 0d 0a 3c 6c 69 3e 3c 62 3e 50 52 4f  /li>..<li><b>PRO
0d70: 4a 2e 36 3c 2f 62 3e 20 68 61 76 65 20 64 65 70  J.6</b> have dep
0d80: 72 65 63 65 74 65 64 20 74 68 65 20 6f 6c 64 20  receted the old 
0d90: 74 72 61 64 69 74 69 6f 6e 61 6c 20 41 50 49 2e  traditional API.
0da0: 3c 62 72 3e 0d 0a 49 74 20 73 74 69 6c 6c 20 63  <br>..It still c
0db0: 6f 6e 74 69 6e 75 65 73 20 74 6f 20 62 65 20 72  ontinues to be r
0dc0: 65 6c 75 63 74 61 6e 63 74 6c 79 20 73 75 70 70  eluctanctly supp
0dd0: 6f 72 74 65 64 2c 20 62 75 74 20 74 68 65 20 6c  orted, but the l
0de0: 69 62 72 61 72 79 20 72 65 71 75 69 72 65 73 20  ibrary requires 
0df0: 74 6f 20 62 65 20 63 6f 6d 70 69 6c 65 64 20 62  to be compiled b
0e00: 79 20 65 78 70 6c 69 63 69 74 6c 79 20 64 65 66  y explicitly def
0e10: 69 6e 69 6e 67 20 61 20 3c 62 3e 2d 44 41 43 43  ining a <b>-DACC
0e20: 45 50 54 5f 55 53 45 5f 4f 46 5f 44 45 50 52 45  EPT_USE_OF_DEPRE
0e30: 43 41 54 45 44 5f 50 52 4f 4a 5f 41 50 49 5f 48  CATED_PROJ_API_H
0e40: 3d 31 3c 2f 62 3e 20 64 69 72 65 63 74 69 76 65  =1</b> directive
0e50: 20 69 6e 20 6f 72 64 65 72 20 74 6f 20 65 66 66   in order to eff
0e60: 65 63 74 69 76 65 6c 79 20 65 6e 61 62 6c 65 20  ectively enable 
0e70: 74 68 69 73 20 6f 70 74 69 6f 6e 2e 3c 2f 6c 69  this option.</li
0e80: 3e 0d 0a 3c 6c 69 3e 61 6e 64 20 66 69 6e 61 6c  >..<li>and final
0e90: 6c 79 20 74 68 65 20 6e 65 78 74 2d 74 6f 2d 63  ly the next-to-c
0ea0: 6f 6d 65 20 3c 62 3e 50 52 4f 4a 2e 37 3c 2f 62  ome <b>PROJ.7</b
0eb0: 3e 20 77 69 6c 6c 20 63 6f 6d 70 6c 65 74 65 6c  > will completel
0ec0: 79 20 67 65 74 20 72 69 64 20 6f 66 20 74 68 65  y get rid of the
0ed0: 20 6f 6c 64 20 41 50 49 2e 3c 2f 6c 69 3e 0d 0a   old API.</li>..
0ee0: 3c 2f 75 6c 3e 0d 0a 3c 62 72 3e 0d 0a 3c 68 72  </ul>..<br>..<hr
0ef0: 3e 0d 0a 3c 68 31 3e 57 68 61 74 27 73 20 6e 65  >..<h1>What's ne
0f00: 77 20 69 6e 20 50 52 4f 4a 2e 36 3c 2f 68 31 3e  w in PROJ.6</h1>
0f10: 0d 0a 3c 68 33 3e 46 75 6c 6c 79 20 73 75 70 70  ..<h3>Fully supp
0f20: 6f 72 74 69 6e 67 20 49 53 4f 2d 31 39 31 31 31  orting ISO-19111
0f30: 3a 32 30 31 39 20 57 4b 54 3c 2f 68 33 3e 0d 0a  :2019 WKT</h3>..
0f40: 4f 6c 64 20 76 65 72 73 69 6f 6e 73 20 6f 66 20  Old versions of 
0f50: 50 52 4f 4a 20 28 69 6e 63 6c 75 64 69 6e 67 20  PROJ (including 
0f60: 3c 62 3e 50 52 4f 4a 2e 34 3c 2f 62 3e 29 20 72  <b>PROJ.4</b>) r
0f70: 65 71 75 69 72 65 64 20 74 6f 20 64 65 66 69 6e  equired to defin
0f80: 65 20 65 61 63 68 20 3c 62 3e 43 52 53 3c 2f 62  e each <b>CRS</b
0f90: 3e 20 28 3c 69 3e 43 6f 6f 72 64 69 6e 61 74 65  > (<i>Coordinate
0fa0: 20 52 65 66 65 72 65 6e 63 65 20 53 79 73 74 65   Reference Syste
0fb0: 6d 3c 2f 69 3e 29 20 62 79 20 61 20 63 6f 72 72  m</i>) by a corr
0fc0: 65 73 70 6f 6e 64 69 6e 67 20 3c 62 3e 70 72 6f  esponding <b>pro
0fd0: 6a 2d 73 74 72 69 6e 67 3c 2f 62 3e 2e 0d 0a 54  j-string</b>...T
0fe0: 68 65 20 66 6f 6c 6c 6f 77 69 6e 67 20 74 61 62  he following tab
0ff0: 6c 65 20 65 78 65 6d 70 6c 69 66 69 65 73 20 74  le exemplifies t
1000: 68 65 20 63 61 73 65 20 6f 66 20 66 65 77 20 43  he case of few C
1010: 52 53 65 73 3a 3c 62 72 3e 3c 62 72 3e 0d 0a 3c  RSes:<br><br>..<
1020: 74 61 62 6c 65 20 63 65 6c 6c 73 70 61 63 69 6e  table cellspacin
1030: 67 3d 22 38 22 20 63 65 6c 6c 70 61 64 64 69 6e  g="8" cellpaddin
1040: 67 3d 22 38 22 20 62 67 63 6f 6c 6f 72 3d 22 23  g="8" bgcolor="#
1050: 65 38 66 66 65 38 22 20 62 6f 72 64 65 72 3d 22  e8ffe8" border="
1060: 31 22 3e 0d 0a 3c 74 72 3e 3c 74 68 20 62 67 63  1">..<tr><th bgc
1070: 6f 6c 6f 72 3d 22 23 66 66 62 30 33 65 22 3e 53  olor="#ffb03e">S
1080: 52 49 44 3c 2f 74 68 3e 3c 74 68 20 62 67 63 6f  RID</th><th bgco
1090: 6c 6f 72 3d 22 23 66 66 62 30 33 65 22 3e 43 52  lor="#ffb03e">CR
10a0: 53 20 4e 61 6d 65 3c 2f 74 68 3e 3c 74 68 20 62  S Name</th><th b
10b0: 67 63 6f 6c 6f 72 3d 22 23 66 66 62 30 33 65 22  gcolor="#ffb03e"
10c0: 3e 70 72 6f 6a 2d 73 74 72 69 6e 67 3c 2f 74 68  >proj-string</th
10d0: 3e 3c 2f 74 72 3e 0d 0a 3c 74 72 3e 3c 74 64 20  ></tr>..<tr><td 
10e0: 61 6c 69 67 6e 3d 22 72 69 67 68 74 22 3e 33 30  align="right">30
10f0: 30 33 3c 2f 74 64 3e 3c 74 64 3e 4d 6f 6e 74 65  03</td><td>Monte
1100: 20 4d 61 72 69 6f 20 2f 20 49 74 61 6c 79 20 7a   Mario / Italy z
1110: 6f 6e 65 20 31 3c 2f 74 64 3e 0d 0a 3c 74 64 3e  one 1</td>..<td>
1120: 2b 70 72 6f 6a 3d 74 6d 65 72 63 20 2b 6c 61 74  +proj=tmerc +lat
1130: 5f 30 3d 30 20 2b 6c 6f 6e 5f 30 3d 39 20 2b 6b  _0=0 +lon_0=9 +k
1140: 3d 30 2e 39 39 39 36 20 2b 78 5f 30 3d 31 35 30  =0.9996 +x_0=150
1150: 30 30 30 30 20 2b 79 5f 30 3d 30 20 2b 65 6c 6c  0000 +y_0=0 +ell
1160: 70 73 3d 69 6e 74 6c 20 2b 74 6f 77 67 73 38 34  ps=intl +towgs84
1170: 3d 2d 31 30 34 2e 31 2c 2d 34 39 2e 31 2c 2d 39  =-104.1,-49.1,-9
1180: 2e 39 2c 30 2e 39 37 31 2c 2d 32 2e 39 31 37 2c  .9,0.971,-2.917,
1190: 30 2e 37 31 34 2c 2d 31 31 2e 36 38 20 2b 75 6e  0.714,-11.68 +un
11a0: 69 74 73 3d 6d 20 2b 6e 6f 5f 64 65 66 73 3c 2f  its=m +no_defs</
11b0: 74 64 3e 3c 2f 74 72 3e 0d 0a 3c 74 72 3e 3c 74  td></tr>..<tr><t
11c0: 64 20 61 6c 69 67 6e 3d 22 72 69 67 68 74 22 3e  d align="right">
11d0: 34 33 32 36 3c 2f 74 64 3e 3c 74 64 3e 57 47 53  4326</td><td>WGS
11e0: 20 38 34 3c 2f 74 64 3e 0d 0a 3c 74 64 3e 2b 70   84</td>..<td>+p
11f0: 72 6f 6a 3d 6c 6f 6e 67 6c 61 74 20 2b 64 61 74  roj=longlat +dat
1200: 75 6d 3d 57 47 53 38 34 20 2b 6e 6f 5f 64 65 66  um=WGS84 +no_def
1210: 73 3c 2f 74 64 3e 3c 2f 74 72 3e 0d 0a 3c 74 72  s</td></tr>..<tr
1220: 3e 3c 74 64 20 61 6c 69 67 6e 3d 22 72 69 67 68  ><td align="righ
1230: 74 22 3e 33 32 36 33 32 3c 2f 74 64 3e 3c 74 64  t">32632</td><td
1240: 3e 57 47 53 20 38 34 20 2f 20 55 54 4d 20 7a 6f  >WGS 84 / UTM zo
1250: 6e 65 20 33 32 4e 3c 2f 74 64 3e 0d 0a 3c 74 64  ne 32N</td>..<td
1260: 3e 2b 70 72 6f 6a 3d 75 74 6d 20 2b 7a 6f 6e 65  >+proj=utm +zone
1270: 3d 33 32 20 2b 64 61 74 75 6d 3d 57 47 53 38 34  =32 +datum=WGS84
1280: 20 2b 75 6e 69 74 73 3d 6d 20 2b 6e 6f 5f 64 65   +units=m +no_de
1290: 66 73 3c 2f 74 64 3e 0d 0a 3c 2f 74 61 62 6c 65  fs</td>..</table
12a0: 3e 0d 0a 3c 62 72 3e 0d 0a 4e 65 77 20 76 65 72  >..<br>..New ver
12b0: 73 69 6f 6e 73 20 6f 66 20 50 52 4f 4a 20 28 73  sions of PROJ (s
12c0: 74 61 72 74 69 6e 67 20 73 69 6e 63 65 20 3c 62  tarting since <b
12d0: 3e 50 52 4f 4a 2e 36 3c 2f 62 3e 29 20 73 74 69  >PROJ.6</b>) sti
12e0: 6c 6c 20 63 6f 6e 74 69 6e 75 65 20 74 6f 20 73  ll continue to s
12f0: 75 70 70 6f 72 74 20 74 68 65 20 6f 6c 64 20 3c  upport the old <
1300: 62 3e 70 72 6f 6a 2d 73 74 72 69 6e 67 73 3c 2f  b>proj-strings</
1310: 62 3e 2c 20 62 75 74 20 74 68 65 20 70 72 65 66  b>, but the pref
1320: 65 72 72 65 64 20 6e 6f 74 61 74 69 6f 6e 20 66  erred notation f
1330: 6f 72 20 64 65 66 69 6e 69 6e 67 20 61 6e 79 20  or defining any 
1340: 43 52 53 20 69 73 20 6e 6f 77 20 63 6f 6e 66 6f  CRS is now confo
1350: 72 6d 61 6e 74 20 74 6f 20 74 68 65 20 3c 62 3e  rmant to the <b>
1360: 49 53 4f 2d 31 39 31 31 31 3a 32 30 31 39 3c 2f  ISO-19111:2019</
1370: 62 3e 20 69 6e 74 65 72 6e 61 74 69 6f 6e 61 6c  b> international
1380: 20 73 74 61 6e 64 61 72 64 3c 62 72 3e 0d 0a 28   standard<br>..(
1390: 3c 69 3e 4f 47 43 20 41 62 73 74 72 61 63 74 20  <i>OGC Abstract 
13a0: 53 70 65 63 69 66 69 63 61 74 69 6f 6e 20 54 6f  Specification To
13b0: 70 69 63 20 32 3a 20 e2 80 9c 52 65 66 65 72 65  pic 2: ...Refere
13c0: 6e 63 69 6e 67 20 42 79 20 43 6f 6f 72 64 69 6e  ncing By Coordin
13d0: 61 74 65 73 e2 80 9d 3c 2f 69 3e 29 2e 3c 62 72  ates...</i>).<br
13e0: 3e 0d 0a 54 68 65 20 66 6f 6c 6c 6f 77 69 6e 67  >..The following
13f0: 20 74 61 62 6c 65 20 65 78 65 6d 70 6c 69 66 69   table exemplifi
1400: 65 73 20 74 68 65 20 73 61 6d 65 20 43 52 53 65  es the same CRSe
1410: 73 20 61 73 20 61 62 6f 76 65 20 69 6e 20 74 68  s as above in th
1420: 65 20 49 53 4f 20 57 4b 54 20 6e 6f 74 61 74 69  e ISO WKT notati
1430: 6f 6e 3a 0d 0a 3c 62 72 3e 3c 62 72 3e 0d 0a 3c  on:..<br><br>..<
1440: 74 61 62 6c 65 20 63 65 6c 6c 73 70 61 63 69 6e  table cellspacin
1450: 67 3d 22 38 22 20 63 65 6c 6c 70 61 64 64 69 6e  g="8" cellpaddin
1460: 67 3d 22 38 22 20 62 67 63 6f 6c 6f 72 3d 22 23  g="8" bgcolor="#
1470: 65 38 66 66 65 38 22 20 62 6f 72 64 65 72 3d 22  e8ffe8" border="
1480: 31 22 3e 0d 0a 3c 74 72 3e 3c 74 68 20 62 67 63  1">..<tr><th bgc
1490: 6f 6c 6f 72 3d 22 23 66 66 62 30 33 65 22 3e 53  olor="#ffb03e">S
14a0: 52 49 44 3c 2f 74 68 3e 3c 74 64 3e 33 30 30 33  RID</th><td>3003
14b0: 3c 2f 74 64 3e 3c 74 64 3e 34 33 32 36 3c 2f 74  </td><td>4326</t
14c0: 64 3e 3c 74 64 3e 33 32 36 33 32 3c 2f 74 64 3e  d><td>32632</td>
14d0: 3c 2f 74 72 3e 0d 0a 3c 74 72 3e 3c 74 68 20 62  </tr>..<tr><th b
14e0: 67 63 6f 6c 6f 72 3d 22 23 66 66 62 30 33 65 22  gcolor="#ffb03e"
14f0: 3e 43 52 53 20 4e 61 6d 65 3c 2f 74 68 3e 3c 74  >CRS Name</th><t
1500: 64 3e 4d 6f 6e 74 65 20 4d 61 72 69 6f 20 2f 20  d>Monte Mario / 
1510: 49 74 61 6c 79 20 7a 6f 6e 65 20 31 3c 2f 74 64  Italy zone 1</td
1520: 3e 3c 2f 74 64 3e 3c 74 64 3e 57 47 53 20 38 34  ></td><td>WGS 84
1530: 3c 2f 74 64 3e 3c 74 64 3e 57 47 53 20 38 34 20  </td><td>WGS 84 
1540: 2f 20 55 54 4d 20 7a 6f 6e 65 20 33 32 4e 3c 2f  / UTM zone 32N</
1550: 74 64 3e 3c 2f 74 72 3e 0d 0a 3c 74 72 3e 3c 74  td></tr>..<tr><t
1560: 68 20 62 67 63 6f 6c 6f 72 3d 22 23 66 66 62 30  h bgcolor="#ffb0
1570: 33 65 22 3e 49 53 4f 2d 32 30 31 38 20 57 4b 54  3e">ISO-2018 WKT
1580: 3c 2f 74 68 3e 0d 0a 3c 74 64 20 76 61 6c 69 67  </th>..<td valig
1590: 6e 3d 22 74 6f 70 22 3e 3c 76 65 72 62 61 74 69  n="top"><verbati
15a0: 6d 3e 0d 0a 50 52 4f 4a 43 52 53 5b 22 4d 6f 6e  m>..PROJCRS["Mon
15b0: 74 65 20 4d 61 72 69 6f 20 2f 20 49 74 61 6c 79  te Mario / Italy
15c0: 20 7a 6f 6e 65 20 31 22 2c 0d 0a 20 20 20 20 42   zone 1",..    B
15d0: 41 53 45 47 45 4f 44 43 52 53 5b 22 4d 6f 6e 74  ASEGEODCRS["Mont
15e0: 65 20 4d 61 72 69 6f 22 2c 0d 0a 20 20 20 20 20  e Mario",..     
15f0: 20 20 20 44 41 54 55 4d 5b 22 4d 6f 6e 74 65 20     DATUM["Monte 
1600: 4d 61 72 69 6f 22 2c 3c 62 72 3e 0d 0a 20 20 20  Mario",<br>..   
1610: 20 20 20 20 20 20 20 20 20 45 4c 4c 49 50 53 4f           ELLIPSO
1620: 49 44 5b 22 49 6e 74 65 72 6e 61 74 69 6f 6e 61  ID["Internationa
1630: 6c 20 31 39 32 34 22 2c 36 33 37 38 33 38 38 2c  l 1924",6378388,
1640: 32 39 37 2c 0d 0a 20 20 20 20 20 20 20 20 20 20  297,..          
1650: 20 20 20 20 20 20 4c 45 4e 47 54 48 55 4e 49 54        LENGTHUNIT
1660: 5b 22 6d 65 74 72 65 22 2c 31 5d 5d 5d 2c 0d 0a  ["metre",1]]],..
1670: 20 20 20 20 20 20 20 20 50 52 49 4d 45 4d 5b 22          PRIMEM["
1680: 47 72 65 65 6e 77 69 63 68 22 2c 30 2c 0d 0a 20  Greenwich",0,.. 
1690: 20 20 20 20 20 20 20 20 20 20 20 41 4e 47 4c 45             ANGLE
16a0: 55 4e 49 54 5b 22 64 65 67 72 65 65 22 2c 30 2e  UNIT["degree",0.
16b0: 30 31 37 34 35 33 32 39 32 35 31 39 39 34 33 33  0174532925199433
16c0: 5d 5d 5d 2c 0d 0a 20 20 20 20 43 4f 4e 56 45 52  ]]],..    CONVER
16d0: 53 49 4f 4e 5b 22 49 74 61 6c 79 20 7a 6f 6e 65  SION["Italy zone
16e0: 20 31 22 2c 0d 0a 20 20 20 20 20 20 20 20 4d 45   1",..        ME
16f0: 54 48 4f 44 5b 22 54 72 61 6e 73 76 65 72 73 65  THOD["Transverse
1700: 20 4d 65 72 63 61 74 6f 72 22 2c 0d 0a 20 20 20   Mercator",..   
1710: 20 20 20 20 20 20 20 20 20 49 44 5b 22 45 50 53           ID["EPS
1720: 47 22 2c 39 38 30 37 5d 5d 2c 0d 0a 20 20 20 20  G",9807]],..    
1730: 20 20 20 20 50 41 52 41 4d 45 54 45 52 5b 22 4c      PARAMETER["L
1740: 61 74 69 74 75 64 65 20 6f 66 20 6e 61 74 75 72  atitude of natur
1750: 61 6c 20 6f 72 69 67 69 6e 22 2c 30 2c 0d 0a 20  al origin",0,.. 
1760: 20 20 20 20 20 20 20 20 20 20 20 41 4e 47 4c 45             ANGLE
1770: 55 4e 49 54 5b 22 64 65 67 72 65 65 22 2c 30 2e  UNIT["degree",0.
1780: 30 31 37 34 35 33 32 39 32 35 31 39 39 34 33 33  0174532925199433
1790: 5d 2c 0d 0a 20 20 20 20 20 20 20 20 20 20 20 20  ],..            
17a0: 49 44 5b 22 45 50 53 47 22 2c 38 38 30 31 5d 5d  ID["EPSG",8801]]
17b0: 2c 0d 0a 20 20 20 20 20 20 20 20 50 41 52 41 4d  ,..        PARAM
17c0: 45 54 45 52 5b 22 4c 6f 6e 67 69 74 75 64 65 20  ETER["Longitude 
17d0: 6f 66 20 6e 61 74 75 72 61 6c 20 6f 72 69 67 69  of natural origi
17e0: 6e 22 2c 39 2c 0d 0a 20 20 20 20 20 20 20 20 20  n",9,..         
17f0: 20 20 20 41 4e 47 4c 45 55 4e 49 54 5b 22 64 65     ANGLEUNIT["de
1800: 67 72 65 65 22 2c 30 2e 30 31 37 34 35 33 32 39  gree",0.01745329
1810: 32 35 31 39 39 34 33 33 5d 2c 0d 0a 20 20 20 20  25199433],..    
1820: 20 20 20 20 20 20 20 20 49 44 5b 22 45 50 53 47          ID["EPSG
1830: 22 2c 38 38 30 32 5d 5d 2c 0d 0a 20 20 20 20 20  ",8802]],..     
1840: 20 20 20 50 41 52 41 4d 45 54 45 52 5b 22 53 63     PARAMETER["Sc
1850: 61 6c 65 20 66 61 63 74 6f 72 20 61 74 20 6e 61  ale factor at na
1860: 74 75 72 61 6c 20 6f 72 69 67 69 6e 22 2c 30 2e  tural origin",0.
1870: 39 39 39 36 2c 0d 0a 20 20 20 20 20 20 20 20 20  9996,..         
1880: 20 20 20 53 43 41 4c 45 55 4e 49 54 5b 22 75 6e     SCALEUNIT["un
1890: 69 74 79 22 2c 31 5d 2c 0d 0a 20 20 20 20 20 20  ity",1],..      
18a0: 20 20 20 20 20 20 49 44 5b 22 45 50 53 47 22 2c        ID["EPSG",
18b0: 38 38 30 35 5d 5d 2c 0d 0a 20 20 20 20 20 20 20  8805]],..       
18c0: 20 50 41 52 41 4d 45 54 45 52 5b 22 46 61 6c 73   PARAMETER["Fals
18d0: 65 20 65 61 73 74 69 6e 67 22 2c 31 35 30 30 30  e easting",15000
18e0: 30 30 2c 0d 0a 20 20 20 20 20 20 20 20 20 20 20  00,..           
18f0: 20 4c 45 4e 47 54 48 55 4e 49 54 5b 22 6d 65 74   LENGTHUNIT["met
1900: 72 65 22 2c 31 5d 2c 0d 0a 20 20 20 20 20 20 20  re",1],..       
1910: 20 20 20 20 20 49 44 5b 22 45 50 53 47 22 2c 38       ID["EPSG",8
1920: 38 30 36 5d 5d 2c 0d 0a 20 20 20 20 20 20 20 20  806]],..        
1930: 50 41 52 41 4d 45 54 45 52 5b 22 46 61 6c 73 65  PARAMETER["False
1940: 20 6e 6f 72 74 68 69 6e 67 22 2c 30 2c 0d 0a 20   northing",0,.. 
1950: 20 20 20 20 20 20 20 20 20 20 20 4c 45 4e 47 54             LENGT
1960: 48 55 4e 49 54 5b 22 6d 65 74 72 65 22 2c 31 5d  HUNIT["metre",1]
1970: 2c 0d 0a 20 20 20 20 20 20 20 20 20 20 20 20 49  ,..            I
1980: 44 5b 22 45 50 53 47 22 2c 38 38 30 37 5d 5d 5d  D["EPSG",8807]]]
1990: 2c 0d 0a 20 20 20 20 43 53 5b 43 61 72 74 65 73  ,..    CS[Cartes
19a0: 69 61 6e 2c 32 5d 2c 0d 0a 20 20 20 20 20 20 20  ian,2],..       
19b0: 20 41 58 49 53 5b 22 65 61 73 74 69 6e 67 20 28   AXIS["easting (
19c0: 58 29 22 2c 65 61 73 74 2c 0d 0a 20 20 20 20 20  X)",east,..     
19d0: 20 20 20 20 20 20 20 4f 52 44 45 52 5b 31 5d 2c         ORDER[1],
19e0: 0d 0a 20 20 20 20 20 20 20 20 20 20 20 20 4c 45  ..            LE
19f0: 4e 47 54 48 55 4e 49 54 5b 22 6d 65 74 72 65 22  NGTHUNIT["metre"
1a00: 2c 31 5d 5d 2c 0d 0a 20 20 20 20 20 20 20 20 41  ,1]],..        A
1a10: 58 49 53 5b 22 6e 6f 72 74 68 69 6e 67 20 28 59  XIS["northing (Y
1a20: 29 22 2c 6e 6f 72 74 68 2c 0d 0a 20 20 20 20 20  )",north,..     
1a30: 20 20 20 20 20 20 20 4f 52 44 45 52 5b 32 5d 2c         ORDER[2],
1a40: 3c 62 72 3e 0d 0a 20 20 20 20 20 20 20 20 20 20  <br>..          
1a50: 20 20 4c 45 4e 47 54 48 55 4e 49 54 5b 22 6d 65    LENGTHUNIT["me
1a60: 74 72 65 22 2c 31 5d 5d 2c 0d 0a 20 20 20 20 41  tre",1]],..    A
1a70: 52 45 41 5b 22 49 74 61 6c 79 20 2d 20 77 65 73  REA["Italy - wes
1a80: 74 20 6f 66 20 31 32 c2 b0 45 22 5d 2c 0d 0a 20  t of 12..E"],.. 
1a90: 20 20 20 42 42 4f 58 5b 33 36 2e 35 33 2c 35 2e     BBOX[36.53,5.
1aa0: 39 34 2c 34 37 2e 30 34 2c 31 32 5d 2c 0d 0a 20  94,47.04,12],.. 
1ab0: 20 20 20 49 44 5b 22 45 50 53 47 22 2c 33 30 30     ID["EPSG",300
1ac0: 33 5d 5d 0d 0a 3c 2f 76 65 72 62 61 74 69 6d 3e  3]]..</verbatim>
1ad0: 3c 2f 74 64 3e 0d 0a 3c 74 64 20 76 61 6c 69 67  </td>..<td valig
1ae0: 6e 3d 22 74 6f 70 22 3e 3c 76 65 72 62 61 74 69  n="top"><verbati
1af0: 6d 3e 0d 0a 47 45 4f 44 43 52 53 5b 22 57 47 53  m>..GEODCRS["WGS
1b00: 20 38 34 22 2c 0d 0a 20 20 20 20 44 41 54 55 4d   84",..    DATUM
1b10: 5b 22 57 6f 72 6c 64 20 47 65 6f 64 65 74 69 63  ["World Geodetic
1b20: 20 53 79 73 74 65 6d 20 31 39 38 34 22 2c 0d 0a   System 1984",..
1b30: 20 20 20 20 20 20 20 20 45 4c 4c 49 50 53 4f 49          ELLIPSOI
1b40: 44 5b 22 57 47 53 20 38 34 22 2c 36 33 37 38 31  D["WGS 84",63781
1b50: 33 37 2c 32 39 38 2e 32 35 37 32 32 33 35 36 33  37,298.257223563
1b60: 2c 0d 0a 20 20 20 20 20 20 20 20 20 20 20 20 4c  ,..            L
1b70: 45 4e 47 54 48 55 4e 49 54 5b 22 6d 65 74 72 65  ENGTHUNIT["metre
1b80: 22 2c 31 5d 5d 5d 2c 0d 0a 20 20 20 20 50 52 49  ",1]]],..    PRI
1b90: 4d 45 4d 5b 22 47 72 65 65 6e 77 69 63 68 22 2c  MEM["Greenwich",
1ba0: 30 2c 0d 0a 20 20 20 20 20 20 20 20 41 4e 47 4c  0,..        ANGL
1bb0: 45 55 4e 49 54 5b 22 64 65 67 72 65 65 22 2c 30  EUNIT["degree",0
1bc0: 2e 30 31 37 34 35 33 32 39 32 35 31 39 39 34 33  .017453292519943
1bd0: 33 5d 5d 2c 0d 0a 20 20 20 20 43 53 5b 65 6c 6c  3]],..    CS[ell
1be0: 69 70 73 6f 69 64 61 6c 2c 32 5d 2c 0d 0a 20 20  ipsoidal,2],..  
1bf0: 20 20 20 20 20 20 41 58 49 53 5b 22 67 65 6f 64        AXIS["geod
1c00: 65 74 69 63 20 6c 61 74 69 74 75 64 65 20 28 4c  etic latitude (L
1c10: 61 74 29 22 2c 6e 6f 72 74 68 2c 0d 0a 20 20 20  at)",north,..   
1c20: 20 20 20 20 20 20 20 20 20 4f 52 44 45 52 5b 31           ORDER[1
1c30: 5d 2c 0d 0a 20 20 20 20 20 20 20 20 20 20 20 20  ],..            
1c40: 41 4e 47 4c 45 55 4e 49 54 5b 22 64 65 67 72 65  ANGLEUNIT["degre
1c50: 65 22 2c 30 2e 30 31 37 34 35 33 32 39 32 35 31  e",0.01745329251
1c60: 39 39 34 33 33 5d 5d 2c 0d 0a 20 20 20 20 20 20  99433]],..      
1c70: 20 20 41 58 49 53 5b 22 67 65 6f 64 65 74 69 63    AXIS["geodetic
1c80: 20 6c 6f 6e 67 69 74 75 64 65 20 28 4c 6f 6e 29   longitude (Lon)
1c90: 22 2c 65 61 73 74 2c 0d 0a 20 20 20 20 20 20 20  ",east,..       
1ca0: 20 20 20 20 20 4f 52 44 45 52 5b 32 5d 2c 0d 0a       ORDER[2],..
1cb0: 20 20 20 20 20 20 20 20 20 20 20 20 41 4e 47 4c              ANGL
1cc0: 45 55 4e 49 54 5b 22 64 65 67 72 65 65 22 2c 30  EUNIT["degree",0
1cd0: 2e 30 31 37 34 35 33 32 39 32 35 31 39 39 34 33  .017453292519943
1ce0: 33 5d 5d 2c 0d 0a 20 20 20 20 41 52 45 41 5b 22  3]],..    AREA["
1cf0: 57 6f 72 6c 64 22 5d 2c 0d 0a 20 20 20 20 42 42  World"],..    BB
1d00: 4f 58 5b 2d 39 30 2c 2d 31 38 30 2c 39 30 2c 31  OX[-90,-180,90,1
1d10: 38 30 5d 2c 0d 0a 20 20 20 20 49 44 5b 22 45 50  80],..    ID["EP
1d20: 53 47 22 2c 34 33 32 36 5d 5d 0d 0a 3c 2f 76 65  SG",4326]]..</ve
1d30: 72 62 61 74 69 6d 3e 3c 2f 74 64 3e 0d 0a 3c 74  rbatim></td>..<t
1d40: 64 20 76 61 6c 69 67 6e 3d 22 74 6f 70 22 3e 3c  d valign="top"><
1d50: 76 65 72 62 61 74 69 6d 3e 0d 0a 50 52 4f 4a 43  verbatim>..PROJC
1d60: 52 53 5b 22 57 47 53 20 38 34 20 2f 20 55 54 4d  RS["WGS 84 / UTM
1d70: 20 7a 6f 6e 65 20 33 32 4e 22 2c 0d 0a 20 20 20   zone 32N",..   
1d80: 20 42 41 53 45 47 45 4f 44 43 52 53 5b 22 57 47   BASEGEODCRS["WG
1d90: 53 20 38 34 22 2c 0d 0a 20 20 20 20 20 20 20 20  S 84",..        
1da0: 44 41 54 55 4d 5b 22 57 6f 72 6c 64 20 47 65 6f  DATUM["World Geo
1db0: 64 65 74 69 63 20 53 79 73 74 65 6d 20 31 39 38  detic System 198
1dc0: 34 22 2c 0d 0a 20 20 20 20 20 20 20 20 20 20 20  4",..           
1dd0: 20 45 4c 4c 49 50 53 4f 49 44 5b 22 57 47 53 20   ELLIPSOID["WGS 
1de0: 38 34 22 2c 36 33 37 38 31 33 37 2c 32 39 38 2e  84",6378137,298.
1df0: 32 35 37 32 32 33 35 36 33 2c 0d 0a 20 20 20 20  257223563,..    
1e00: 20 20 20 20 20 20 20 20 20 20 20 20 4c 45 4e 47              LENG
1e10: 54 48 55 4e 49 54 5b 22 6d 65 74 72 65 22 2c 31  THUNIT["metre",1
1e20: 5d 5d 5d 2c 0d 0a 20 20 20 20 20 20 20 20 50 52  ]]],..        PR
1e30: 49 4d 45 4d 5b 22 47 72 65 65 6e 77 69 63 68 22  IMEM["Greenwich"
1e40: 2c 30 2c 0d 0a 20 20 20 20 20 20 20 20 20 20 20  ,0,..           
1e50: 20 41 4e 47 4c 45 55 4e 49 54 5b 22 64 65 67 72   ANGLEUNIT["degr
1e60: 65 65 22 2c 30 2e 30 31 37 34 35 33 32 39 32 35  ee",0.0174532925
1e70: 31 39 39 34 33 33 5d 5d 5d 2c 0d 0a 20 20 20 20  199433]]],..    
1e80: 43 4f 4e 56 45 52 53 49 4f 4e 5b 22 55 54 4d 20  CONVERSION["UTM 
1e90: 7a 6f 6e 65 20 33 32 4e 22 2c 0d 0a 20 20 20 20  zone 32N",..    
1ea0: 20 20 20 20 4d 45 54 48 4f 44 5b 22 54 72 61 6e      METHOD["Tran
1eb0: 73 76 65 72 73 65 20 4d 65 72 63 61 74 6f 72 22  sverse Mercator"
1ec0: 2c 0d 0a 20 20 20 20 20 20 20 20 20 20 20 20 49  ,..            I
1ed0: 44 5b 22 45 50 53 47 22 2c 39 38 30 37 5d 5d 2c  D["EPSG",9807]],
1ee0: 0d 0a 20 20 20 20 20 20 20 20 50 41 52 41 4d 45  ..        PARAME
1ef0: 54 45 52 5b 22 4c 61 74 69 74 75 64 65 20 6f 66  TER["Latitude of
1f00: 20 6e 61 74 75 72 61 6c 20 6f 72 69 67 69 6e 22   natural origin"
1f10: 2c 30 2c 0d 0a 20 20 20 20 20 20 20 20 20 20 20  ,0,..           
1f20: 20 41 4e 47 4c 45 55 4e 49 54 5b 22 64 65 67 72   ANGLEUNIT["degr
1f30: 65 65 22 2c 30 2e 30 31 37 34 35 33 32 39 32 35  ee",0.0174532925
1f40: 31 39 39 34 33 33 5d 2c 0d 0a 20 20 20 20 20 20  199433],..      
1f50: 20 20 20 20 20 20 49 44 5b 22 45 50 53 47 22 2c        ID["EPSG",
1f60: 38 38 30 31 5d 5d 2c 0d 0a 20 20 20 20 20 20 20  8801]],..       
1f70: 20 50 41 52 41 4d 45 54 45 52 5b 22 4c 6f 6e 67   PARAMETER["Long
1f80: 69 74 75 64 65 20 6f 66 20 6e 61 74 75 72 61 6c  itude of natural
1f90: 20 6f 72 69 67 69 6e 22 2c 39 2c 0d 0a 20 20 20   origin",9,..   
1fa0: 20 20 20 20 20 20 20 20 20 41 4e 47 4c 45 55 4e           ANGLEUN
1fb0: 49 54 5b 22 64 65 67 72 65 65 22 2c 30 2e 30 31  IT["degree",0.01
1fc0: 37 34 35 33 32 39 32 35 31 39 39 34 33 33 5d 2c  74532925199433],
1fd0: 0d 0a 20 20 20 20 20 20 20 20 20 20 20 20 49 44  ..            ID
1fe0: 5b 22 45 50 53 47 22 2c 38 38 30 32 5d 5d 2c 0d  ["EPSG",8802]],.
1ff0: 0a 20 20 20 20 20 20 20 20 50 41 52 41 4d 45 54  .        PARAMET
2000: 45 52 5b 22 53 63 61 6c 65 20 66 61 63 74 6f 72  ER["Scale factor
2010: 20 61 74 20 6e 61 74 75 72 61 6c 20 6f 72 69 67   at natural orig
2020: 69 6e 22 2c 30 2e 39 39 39 36 2c 0d 0a 20 20 20  in",0.9996,..   
2030: 20 20 20 20 20 20 20 20 20 53 43 41 4c 45 55 4e           SCALEUN
2040: 49 54 5b 22 75 6e 69 74 79 22 2c 31 5d 2c 0d 0a  IT["unity",1],..
2050: 20 20 20 20 20 20 20 20 20 20 20 20 49 44 5b 22              ID["
2060: 45 50 53 47 22 2c 38 38 30 35 5d 5d 2c 0d 0a 20  EPSG",8805]],.. 
2070: 20 20 20 20 20 20 20 50 41 52 41 4d 45 54 45 52         PARAMETER
2080: 5b 22 46 61 6c 73 65 20 65 61 73 74 69 6e 67 22  ["False easting"
2090: 2c 35 30 30 30 30 30 2c 0d 0a 20 20 20 20 20 20  ,500000,..      
20a0: 20 20 20 20 20 20 4c 45 4e 47 54 48 55 4e 49 54        LENGTHUNIT
20b0: 5b 22 6d 65 74 72 65 22 2c 31 5d 2c 0d 0a 20 20  ["metre",1],..  
20c0: 20 20 20 20 20 20 20 20 20 20 49 44 5b 22 45 50            ID["EP
20d0: 53 47 22 2c 38 38 30 36 5d 5d 2c 0d 0a 20 20 20  SG",8806]],..   
20e0: 20 20 20 20 20 50 41 52 41 4d 45 54 45 52 5b 22       PARAMETER["
20f0: 46 61 6c 73 65 20 6e 6f 72 74 68 69 6e 67 22 2c  False northing",
2100: 30 2c 0d 0a 20 20 20 20 20 20 20 20 20 20 20 20  0,..            
2110: 4c 45 4e 47 54 48 55 4e 49 54 5b 22 6d 65 74 72  LENGTHUNIT["metr
2120: 65 22 2c 31 5d 2c 0d 0a 20 20 20 20 20 20 20 20  e",1],..        
2130: 20 20 20 20 49 44 5b 22 45 50 53 47 22 2c 38 38      ID["EPSG",88
2140: 30 37 5d 5d 5d 2c 0d 0a 20 20 20 20 43 53 5b 43  07]]],..    CS[C
2150: 61 72 74 65 73 69 61 6e 2c 32 5d 2c 0d 0a 20 20  artesian,2],..  
2160: 20 20 20 20 20 20 41 58 49 53 5b 22 28 45 29 22        AXIS["(E)"
2170: 2c 65 61 73 74 2c 0d 0a 20 20 20 20 20 20 20 20  ,east,..        
2180: 20 20 20 20 4f 52 44 45 52 5b 31 5d 2c 0d 0a 20      ORDER[1],.. 
2190: 20 20 20 20 20 20 20 20 20 20 20 4c 45 4e 47 54             LENGT
21a0: 48 55 4e 49 54 5b 22 6d 65 74 72 65 22 2c 31 5d  HUNIT["metre",1]
21b0: 5d 2c 0d 0a 20 20 20 20 20 20 20 20 41 58 49 53  ],..        AXIS
21c0: 5b 22 28 4e 29 22 2c 6e 6f 72 74 68 2c 0d 0a 20  ["(N)",north,.. 
21d0: 20 20 20 20 20 20 20 20 20 20 20 4f 52 44 45 52             ORDER
21e0: 5b 32 5d 2c 0d 0a 20 20 20 20 20 20 20 20 20 20  [2],..          
21f0: 20 20 4c 45 4e 47 54 48 55 4e 49 54 5b 22 6d 65    LENGTHUNIT["me
2200: 74 72 65 22 2c 31 5d 5d 2c 0d 0a 20 20 20 20 41  tre",1]],..    A
2210: 52 45 41 5b 22 57 6f 72 6c 64 20 2d 20 4e 20 68  REA["World - N h
2220: 65 6d 69 73 70 68 65 72 65 20 2d 20 36 c2 b0 45  emisphere - 6..E
2230: 20 74 6f 20 31 32 c2 b0 45 20 2d 20 62 79 20 63   to 12..E - by c
2240: 6f 75 6e 74 72 79 22 5d 2c 0d 0a 20 20 20 20 42  ountry"],..    B
2250: 42 4f 58 5b 30 2c 36 2c 38 34 2c 31 32 5d 2c 0d  BOX[0,6,84,12],.
2260: 0a 20 20 20 20 49 44 5b 22 45 50 53 47 22 2c 33  .    ID["EPSG",3
2270: 32 36 33 32 5d 5d 0d 0a 3c 2f 76 65 72 62 61 74  2632]]..</verbat
2280: 69 6d 3e 3c 2f 74 64 3e 0d 0a 3c 2f 74 72 3e 0d  im></td>..</tr>.
2290: 0a 3c 2f 74 61 62 6c 65 3e 0d 0a 3c 62 72 3e 0d  .</table>..<br>.
22a0: 0a 41 73 20 79 6f 75 20 63 61 6e 20 65 61 73 69  .As you can easi
22b0: 6c 79 20 6e 6f 74 69 63 65 2c 20 74 68 65 20 74  ly notice, the t
22c0: 77 6f 20 6e 6f 74 61 74 69 6f 6e 73 20 61 72 65  wo notations are
22d0: 20 70 72 6f 66 6f 75 6e 64 6c 79 20 64 69 66 66   profoundly diff
22e0: 65 72 65 6e 74 2e 0d 0a 54 68 65 20 6f 6c 64 20  erent...The old 
22f0: 3c 62 3e 70 72 6f 6a 2d 73 74 72 69 6e 67 3c 2f  <b>proj-string</
2300: 62 3e 20 6e 6f 74 61 74 69 6f 6e 20 69 73 20 65  b> notation is e
2310: 78 74 72 65 6d 65 6c 79 20 63 6f 6e 63 69 73 65  xtremely concise
2320: 20 61 6e 64 20 72 6f 75 67 68 2c 20 77 68 69 6c   and rough, whil
2330: 73 74 20 74 68 65 20 6e 65 77 20 3c 62 3e 49 53  st the new <b>IS
2340: 4f 2d 57 4b 54 3c 2f 62 3e 20 69 73 20 76 65 72  O-WKT</b> is ver
2350: 62 6f 73 65 20 62 75 74 20 65 78 68 61 75 73 74  bose but exhaust
2360: 69 76 65 2c 20 64 65 74 61 69 6c 65 64 20 61 6e  ive, detailed an
2370: 64 20 70 72 65 63 69 73 65 2e 3c 62 72 3e 0d 0a  d precise.<br>..
2380: 54 68 65 72 65 20 69 73 20 6e 6f 20 70 6f 73 73  There is no poss
2390: 69 62 6c 65 20 6d 61 74 63 68 3a 20 49 53 4f 2d  ible match: ISO-
23a0: 57 4b 54 20 69 73 20 63 6c 65 61 72 6c 79 20 73  WKT is clearly s
23b0: 75 70 65 72 69 6f 72 20 61 6e 64 20 6d 6f 72 65  uperior and more
23c0: 20 73 6f 70 68 69 73 74 69 63 61 74 65 64 20 75   sophisticated u
23d0: 6e 64 65 72 20 61 6e 79 20 70 6f 73 73 69 62 6c  nder any possibl
23e0: 65 20 61 73 70 65 63 74 2e 3c 62 72 3e 0d 0a 4e  e aspect.<br>..N
23f0: 6f 74 20 61 74 20 61 6c 6c 20 73 75 72 70 72 69  ot at all surpri
2400: 73 69 6e 67 6c 79 2c 20 63 6f 6f 72 64 69 6e 61  singly, coordina
2410: 74 65 20 74 72 61 6e 73 66 6f 72 6d 61 74 69 6f  te transformatio
2420: 6e 73 20 62 61 73 65 64 20 6f 6e 20 49 53 4f 2d  ns based on ISO-
2430: 57 4b 54 20 64 65 66 69 6e 69 74 69 6f 6e 73 20  WKT definitions 
2440: 28 69 6e 73 74 65 61 64 20 6f 66 20 70 72 6f 6a  (instead of proj
2450: 2d 73 74 72 69 6e 67 73 29 20 61 72 65 20 75 73  -strings) are us
2460: 75 61 6c 6c 79 20 65 78 70 65 63 74 65 64 20 74  ually expected t
2470: 6f 20 62 65 20 6d 6f 72 65 20 61 63 63 75 72 61  o be more accura
2480: 74 65 2e 3c 62 72 3e 3c 62 72 3e 0d 0a 41 6e 64  te.<br><br>..And
2490: 20 74 68 61 74 27 73 20 6e 6f 74 20 61 6c 6c 3b   that's not all;
24a0: 20 74 68 65 20 6f 6c 64 20 3c 62 3e 70 72 6f 6a   the old <b>proj
24b0: 2d 73 74 72 69 6e 67 73 3c 2f 62 3e 20 77 65 72  -strings</b> wer
24c0: 65 6e 27 74 20 66 6f 72 6d 61 6c 6c 79 20 64 65  en't formally de
24d0: 66 69 6e 65 64 20 62 79 20 61 6e 79 20 73 74 61  fined by any sta
24e0: 6e 64 61 72 64 2c 20 61 6e 64 20 6f 6e 6c 79 20  ndard, and only 
24f0: 50 52 4f 4a 2c 20 47 44 41 4c 20 61 6e 64 20 66  PROJ, GDAL and f
2500: 65 77 20 6f 74 68 65 72 20 46 4c 4f 53 53 20 2f  ew other FLOSS /
2510: 20 47 46 4f 53 53 20 69 6d 70 6c 65 6d 65 6e 74   GFOSS implement
2520: 61 74 69 6f 6e 73 20 63 61 6e 20 75 6e 64 65 72  ations can under
2530: 73 74 61 6e 64 20 74 68 65 6d 2e 3c 62 72 3e 0d  stand them.<br>.
2540: 0a 41 74 20 74 68 65 20 6f 70 70 6f 73 69 74 65  .At the opposite
2550: 2c 20 74 68 65 20 6e 65 77 20 3c 62 3e 49 53 4f  , the new <b>ISO
2560: 2d 57 4b 54 3c 2f 62 3e 20 69 73 20 66 6f 72 6d  -WKT</b> is form
2570: 61 6c 6c 79 20 64 65 66 69 6e 65 64 20 62 79 20  ally defined by 
2580: 61 6e 20 69 6e 74 65 72 6e 61 74 69 6f 6e 61 6c  an international
2590: 20 73 74 61 6e 64 61 72 64 2c 20 61 6e 64 20 6d   standard, and m
25a0: 61 6e 79 20 66 72 65 65 20 61 6e 64 20 70 72 6f  any free and pro
25b0: 70 72 69 65 74 61 72 79 20 69 6d 70 6c 65 6d 65  prietary impleme
25c0: 6e 74 61 74 69 6f 6e 73 20 63 61 6e 20 75 6e 64  ntations can und
25d0: 65 72 73 74 61 6e 64 20 69 74 2e 3c 62 72 3e 3c  erstand it.<br><
25e0: 62 72 3e 0d 0a 3c 74 61 62 6c 65 20 63 65 6c 6c  br>..<table cell
25f0: 73 70 61 63 69 6e 67 3d 22 38 22 20 63 65 6c 6c  spacing="8" cell
2600: 70 61 64 64 69 6e 67 3d 22 31 36 22 20 62 67 63  padding="16" bgc
2610: 6f 6c 6f 72 3d 22 23 66 66 66 66 65 39 22 3e 0d  olor="#ffffe9">.
2620: 0a 3c 74 72 3e 3c 74 64 3e 0d 0a 3c 62 3e 3c 75  .<tr><td>..<b><u
2630: 3e 49 6d 70 6f 72 74 61 6e 74 20 6e 6f 74 69 63  >Important notic
2640: 65 3c 2f 75 3e 3c 2f 62 3e 3a 20 74 68 65 72 65  e</u></b>: there
2650: 20 61 72 65 20 73 65 76 65 72 61 6c 20 64 69 61   are several dia
2660: 6c 65 63 74 73 20 69 6e 20 74 68 65 20 57 4b 54  lects in the WKT
2670: 20 6e 6f 74 61 74 69 6f 6e 20 64 65 73 63 72 69   notation descri
2680: 62 69 6e 67 20 43 52 53 65 73 2e 3c 62 72 3e 0d  bing CRSes.<br>.
2690: 0a 41 6c 6c 20 74 68 65 6d 20 73 68 61 72 65 20  .All them share 
26a0: 74 68 65 20 73 61 6d 65 20 63 6f 6d 6d 6f 6e 20  the same common 
26b0: 63 6f 72 65 20 61 6e 64 20 6d 61 69 6e 6c 79 20  core and mainly 
26c0: 64 69 66 66 65 72 20 69 6e 20 66 65 77 20 6d 69  differ in few mi
26d0: 6e 6f 72 20 64 65 74 61 69 6c 73 2e 3c 62 72 3e  nor details.<br>
26e0: 0d 0a 50 52 4f 4a 2e 36 20 63 61 6e 20 75 6e 64  ..PROJ.6 can und
26f0: 65 72 73 74 61 6e 64 20 74 68 65 20 66 6f 6c 6c  erstand the foll
2700: 6f 77 69 6e 67 20 64 69 61 6c 65 63 74 73 3a 0d  owing dialects:.
2710: 0a 3c 6f 6c 3e 0d 0a 3c 6c 69 3e 3c 62 3e 45 53  .<ol>..<li><b>ES
2720: 52 49 20 57 4b 54 3c 2f 62 3e 3a 20 61 20 64 69  RI WKT</b>: a di
2730: 61 6c 65 63 74 20 77 69 64 65 6c 79 20 61 64 6f  alect widely ado
2740: 70 74 65 64 20 62 79 20 45 53 52 49 20 70 72 6f  pted by ESRI pro
2750: 70 72 69 65 74 61 72 79 20 73 6f 66 74 77 61 72  prietary softwar
2760: 65 2e 3c 2f 6c 69 3e 0d 0a 3c 6c 69 3e 3c 62 3e  e.</li>..<li><b>
2770: 47 44 41 4c 20 57 4b 54 31 3c 2f 62 3e 3a 20 61  GDAL WKT1</b>: a
2780: 20 64 69 61 6c 65 63 74 20 68 69 73 74 6f 72 69   dialect histori
2790: 63 61 6c 6c 79 20 73 75 70 70 6f 72 74 65 64 20  cally supported 
27a0: 62 79 20 74 68 65 20 6f 70 65 6e 20 73 6f 75 72  by the open sour
27b0: 63 65 20 47 44 41 4c 20 6c 69 62 72 61 72 79 2e  ce GDAL library.
27c0: 3c 2f 6c 69 3e 0d 0a 3c 6c 69 3e 3c 62 3e 57 4b  </li>..<li><b>WK
27d0: 54 32 3a 32 30 31 35 3c 2f 62 3e 3a 20 61 73 20  T2:2015</b>: as 
27e0: 64 65 66 69 6e 65 64 20 62 79 20 3c 62 3e 49 53  defined by <b>IS
27f0: 4f 20 31 39 31 36 32 3a 32 30 31 35 3c 2f 62 3e  O 19162:2015</b>
2800: 20 73 74 61 6e 64 61 72 64 20 73 70 65 63 69 66   standard specif
2810: 69 63 61 74 69 6f 6e 73 2e 3c 2f 6c 69 3e 0d 0a  ications.</li>..
2820: 3c 6c 69 3e 3c 62 3e 57 4b 54 32 3a 32 30 31 38  <li><b>WKT2:2018
2830: 3c 2f 62 3e 3a 20 61 73 20 64 65 66 69 6e 65 64  </b>: as defined
2840: 20 62 79 20 3c 62 3e 49 53 4f 20 31 39 31 36 32   by <b>ISO 19162
2850: 3a 32 30 31 38 3c 2f 62 3e 20 73 74 61 6e 64 61  :2018</b> standa
2860: 72 64 20 73 70 65 63 69 66 69 63 61 74 69 6f 6e  rd specification
2870: 73 2e 3c 2f 6c 69 3e 0d 0a 3c 2f 6f 6c 3e 0d 0a  s.</li>..</ol>..
2880: 3c 2f 74 64 3e 3c 2f 74 72 3e 0d 0a 3c 2f 74 61  </td></tr>..</ta
2890: 62 6c 65 3e 3c 62 72 3e 0d 0a 3c 68 33 3e 54 72  ble><br>..<h3>Tr
28a0: 61 6e 73 66 6f 72 6d 61 74 69 6f 6e 20 70 69 70  ansformation pip
28b0: 65 6c 69 6e 65 73 3c 2f 68 33 3e 0d 0a 54 68 65  elines</h3>..The
28c0: 72 65 20 69 73 20 61 20 73 65 63 6f 6e 64 20 61  re is a second a
28d0: 73 74 6f 6e 69 73 68 69 6e 67 20 69 6d 70 72 6f  stonishing impro
28e0: 76 65 6d 65 6e 74 20 73 75 70 70 6f 72 74 65 64  vement supported
28f0: 20 62 79 20 50 52 4f 4a 2e 36 2c 20 74 68 61 74   by PROJ.6, that
2900: 20 61 72 65 20 3c 62 3e 3c 69 3e 74 72 61 6e 73   are <b><i>trans
2910: 66 6f 72 6d 61 74 69 6f 6e 20 70 69 70 65 6c 69  formation pipeli
2920: 6e 65 73 3c 2f 69 3e 3c 2f 62 3e 2e 3c 62 72 3e  nes</i></b>.<br>
2930: 0d 0a 57 68 65 6e 20 75 73 69 6e 67 20 61 20 3c  ..When using a <
2940: 62 3e 3c 69 3e 70 69 70 65 6c 69 6e 65 3c 2f 69  b><i>pipeline</i
2950: 3e 3c 2f 62 3e 20 79 6f 75 20 63 61 6e 20 66 72  ></b> you can fr
2960: 65 65 6c 79 20 64 65 66 69 6e 65 20 61 6e 79 20  eely define any 
2970: 63 6f 6d 70 6c 65 78 20 67 65 6f 64 65 74 69 63  complex geodetic
2980: 20 74 72 61 6e 73 66 6f 72 6d 61 74 69 6f 6e 20   transformation 
2990: 62 79 20 63 68 61 69 6e 69 6e 67 20 74 6f 67 65  by chaining toge
29a0: 74 68 65 72 20 6d 61 6e 79 20 65 6c 65 6d 65 6e  ther many elemen
29b0: 74 61 72 79 20 73 74 65 70 73 20 73 75 63 68 20  tary steps such 
29c0: 61 73 20 63 6f 6e 76 65 72 73 69 6f 6e 2c 20 74  as conversion, t
29d0: 72 61 6e 73 66 6f 72 6d 61 74 69 6f 6e 2c 20 70  ransformation, p
29e0: 72 6f 6a 65 63 74 69 6f 6e 2c 20 61 78 69 73 20  rojection, axis 
29f0: 73 77 61 70 20 61 6e 64 20 73 6f 20 6f 6e 2e 3c  swap and so on.<
2a00: 62 72 3e 0d 0a 41 20 70 69 70 65 6c 69 6e 65 20  br>..A pipeline 
2a10: 69 73 20 63 6f 6e 63 65 70 74 75 61 6c 6c 79 20  is conceptually 
2a20: 73 69 6d 69 6c 61 72 20 74 6f 20 61 20 55 4e 49  similar to a UNI
2a30: 58 20 73 68 65 6c 6c 20 73 63 72 69 70 74 2c 20  X shell script, 
2a40: 77 69 74 68 20 61 20 64 61 74 61 66 6c 6f 77 20  with a dataflow 
2a50: 72 65 67 75 6c 61 72 6c 79 20 70 72 6f 63 65 64  regularly proced
2a60: 69 6e 67 20 66 6f 72 77 61 72 64 20 66 72 6f 6d  ing forward from
2a70: 20 73 74 65 70 20 74 6f 20 73 74 65 70 20 75 6e   step to step un
2a80: 74 69 6c 20 70 72 6f 64 75 63 69 6e 67 20 74 68  til producing th
2a90: 65 20 66 69 6e 61 6c 20 72 65 73 75 6c 74 2e 3c  e final result.<
2aa0: 62 72 3e 0d 0a 54 68 65 20 66 6f 6c 6c 6f 77 69  br>..The followi
2ab0: 6e 67 20 69 73 20 61 20 70 72 61 63 74 69 61 6c  ng is a practial
2ac0: 20 65 78 61 6d 70 6c 65 20 6f 66 20 61 20 70 69   example of a pi
2ad0: 70 65 6c 69 6e 65 20 63 6f 72 72 65 73 70 6f 6e  peline correspon
2ae0: 64 69 6e 67 20 74 6f 20 61 20 74 72 61 6e 73 66  ding to a transf
2af0: 6f 72 6d 61 74 69 6f 6e 20 66 72 6f 6d 20 3c 62  ormation from <b
2b00: 3e 45 50 53 47 3a 34 33 32 36 3c 2f 62 3e 20 3c  >EPSG:4326</b> <
2b10: 69 3e 57 47 53 20 38 34 3c 2f 69 3e 20 74 6f 20  i>WGS 84</i> to 
2b20: 3c 62 3e 45 50 53 47 3a 33 32 36 33 32 3c 2f 62  <b>EPSG:32632</b
2b30: 3e 20 3c 69 3e 57 47 53 20 38 34 20 2f 20 55 54  > <i>WGS 84 / UT
2b40: 4d 20 7a 6f 6e 65 20 33 32 4e 3c 2f 69 3e 3a 0d  M zone 32N</i>:.
2b50: 0a 3c 76 65 72 62 61 74 69 6d 3e 0d 0a 2b 70 72  .<verbatim>..+pr
2b60: 6f 6a 3d 70 69 70 65 6c 69 6e 65 20 0d 0a 2b 73  oj=pipeline ..+s
2b70: 74 65 70 20 2b 70 72 6f 6a 3d 61 78 69 73 73 77  tep +proj=axissw
2b80: 61 70 20 2b 6f 72 64 65 72 3d 32 2c 31 20 0d 0a  ap +order=2,1 ..
2b90: 2b 73 74 65 70 20 2b 70 72 6f 6a 3d 75 6e 69 74  +step +proj=unit
2ba0: 63 6f 6e 76 65 72 74 20 2b 78 79 5f 69 6e 3d 64  convert +xy_in=d
2bb0: 65 67 20 2b 78 79 5f 6f 75 74 3d 72 61 64 20 0d  eg +xy_out=rad .
2bc0: 0a 2b 73 74 65 70 20 2b 70 72 6f 6a 3d 75 74 6d  .+step +proj=utm
2bd0: 20 2b 7a 6f 6e 65 3d 33 32 20 2b 65 6c 6c 70 73   +zone=32 +ellps
2be0: 3d 57 47 53 38 34 0d 0a 3c 2f 76 65 72 62 61 74  =WGS84..</verbat
2bf0: 69 6d 3e 0d 0a 3c 74 61 62 6c 65 20 63 65 6c 6c  im>..<table cell
2c00: 73 70 61 63 69 6e 67 3d 22 38 22 20 63 65 6c 6c  spacing="8" cell
2c10: 70 61 64 64 69 6e 67 3d 22 31 36 22 20 62 67 63  padding="16" bgc
2c20: 6f 6c 6f 72 3d 22 23 66 66 66 66 64 30 22 3e 0d  olor="#ffffd0">.
2c30: 0a 3c 74 72 3e 3c 74 64 3e 0d 0a 3c 62 3e 3c 75  .<tr><td>..<b><u
2c40: 3e 55 73 65 66 75 6c 20 68 69 6e 74 3c 2f 75 3e  >Useful hint</u>
2c50: 3c 2f 62 3e 3a 20 50 52 4f 4a 2e 36 20 73 75 70  </b>: PROJ.6 sup
2c60: 70 6f 72 74 73 20 61 20 6e 65 77 20 43 4c 49 20  ports a new CLI 
2c70: 74 6f 6f 6c 20 28 3c 62 3e 70 72 6f 6a 69 6e 66  tool (<b>projinf
2c80: 6f 3c 2f 62 3e 29 20 66 6f 72 20 69 6e 73 70 65  o</b>) for inspe
2c90: 63 74 69 6e 67 20 69 6e 20 66 75 6c 6c 20 64 65  cting in full de
2ca0: 74 61 69 6c 20 74 68 65 20 69 6e 74 65 72 6e 61  tail the interna
2cb0: 6c 20 64 65 66 69 6e 69 74 69 6f 6e 73 20 6f 66  l definitions of
2cc0: 20 43 52 53 65 73 2c 20 54 72 61 6e 73 66 6f 72   CRSes, Transfor
2cd0: 6d 61 74 69 6f 6e 73 20 65 74 63 2e 3c 62 72 3e  mations etc.<br>
2ce0: 0d 0a 54 68 65 20 61 62 6f 76 65 20 70 69 70 65  ..The above pipe
2cf0: 6c 69 6e 65 20 69 73 20 73 69 6d 70 6c 79 20 74  line is simply t
2d00: 68 65 20 6f 75 74 70 75 74 20 6f 66 20 74 68 65  he output of the
2d10: 20 66 6f 6c 6c 6f 77 69 6e 67 20 63 6f 6d 6d 61   following comma
2d20: 6e 64 3a 0d 0a 3c 76 65 72 62 61 74 69 6d 3e 0d  nd:..<verbatim>.
2d30: 0a 70 72 6f 6a 69 6e 66 6f 20 2d 73 20 45 50 53  .projinfo -s EPS
2d40: 47 3a 34 33 32 36 20 2d 74 20 45 50 53 47 3a 33  G:4326 -t EPSG:3
2d50: 32 36 33 32 20 2d 6f 20 70 72 6f 6a 0d 0a 3c 2f  2632 -o proj..</
2d60: 76 65 72 62 61 74 69 6d 3e 0d 0a 3c 62 3e 70 72  verbatim>..<b>pr
2d70: 6f 6a 69 6e 66 6f 3c 2f 62 3e 20 69 73 20 61 20  ojinfo</b> is a 
2d80: 76 65 72 79 20 70 72 65 63 69 6f 75 73 20 72 65  very precious re
2d90: 73 6f 75 72 63 65 3b 20 64 6f 6e 27 74 20 65 73  source; don't es
2da0: 69 74 61 74 65 20 74 6f 20 66 72 65 71 75 65 6e  itate to frequen
2db0: 74 6c 79 20 75 73 65 20 69 74 20 69 6e 20 6f 72  tly use it in or
2dc0: 64 65 72 20 74 6f 20 64 69 73 63 6f 76 65 72 20  der to discover 
2dd0: 77 68 61 74 27 73 20 72 65 61 6c 6c 79 20 68 61  what's really ha
2de0: 70 70 65 6e 69 6e 67 20 62 65 68 69 6e 64 20 74  ppening behind t
2df0: 68 65 20 73 63 65 6e 65 73 2e 3c 62 72 3e 0d 0a  he scenes.<br>..
2e00: 49 74 27 73 20 74 68 65 20 62 65 73 74 20 61 6e  It's the best an
2e10: 64 20 65 61 73 69 65 73 74 20 77 61 79 20 66 6f  d easiest way fo
2e20: 72 20 66 75 6c 6c 79 20 75 6e 64 65 72 73 74 61  r fully understa
2e30: 6e 74 69 6e 67 20 68 6f 77 20 50 52 4f 4a 2e 36  nting how PROJ.6
2e40: 20 64 6f 20 72 65 61 6c 6c 79 20 77 6f 72 6b 73   do really works
2e50: 2e 0d 0a 3c 2f 74 64 3e 3c 2f 74 72 3e 0d 0a 3c  ...</td></tr>..<
2e60: 2f 74 61 62 6c 65 3e 0d 0a 3c 68 33 3e 54 68 65  /table>..<h3>The
2e70: 20 70 72 69 76 61 74 65 20 53 51 4c 69 74 65 20   private SQLite 
2e80: 64 61 74 61 62 61 73 65 20 73 75 70 70 6f 72 74  database support
2e90: 69 6e 67 20 50 52 4f 4a 2e 36 3c 2f 68 33 3e 0d  ing PROJ.6</h3>.
2ea0: 0a 53 74 61 72 74 69 6e 67 20 73 69 6e 63 65 20  .Starting since 
2eb0: 3c 62 3e 50 52 4f 4a 2e 36 3c 2f 62 3e 20 74 68  <b>PROJ.6</b> th
2ec0: 65 20 50 52 4f 4a 20 6c 69 62 72 61 72 79 20 72  e PROJ library r
2ed0: 65 71 75 69 72 65 73 20 61 6e 20 65 78 74 65 72  equires an exter
2ee0: 6e 61 6c 20 53 51 4c 69 74 65 20 64 61 74 61 62  nal SQLite datab
2ef0: 61 73 65 20 63 6f 6e 74 61 69 6e 69 6e 67 20 61  ase containing a
2f00: 6c 6c 20 64 65 66 69 6e 69 74 69 6f 6e 73 20 61  ll definitions a
2f10: 62 6f 75 74 20 73 75 70 70 6f 72 74 65 64 20 43  bout supported C
2f20: 52 53 65 73 2c 20 45 6c 6c 69 70 73 6f 69 64 73  RSes, Ellipsoids
2f30: 2c 20 50 72 69 6d 65 20 4d 65 72 69 64 69 61 6e  , Prime Meridian
2f40: 73 2c 20 55 6e 69 74 73 20 6f 66 20 4d 65 61 73  s, Units of Meas
2f50: 75 72 65 2c 20 54 72 61 6e 73 66 6f 72 6d 61 74  ure, Transformat
2f60: 69 6f 6e 73 20 61 6e 64 20 61 6c 69 6b 65 2e 3c  ions and alike.<
2f70: 62 72 3e 0d 0a 4d 61 6e 79 20 6f 66 20 74 68 65  br>..Many of the
2f80: 20 6e 65 77 20 61 64 76 61 6e 63 65 64 20 50 52   new advanced PR
2f90: 4f 4a 27 73 20 41 50 49 20 77 69 6c 6c 20 66 61  OJ's API will fa
2fa0: 69 6c 20 69 66 20 73 75 63 68 20 64 61 74 61 62  il if such datab
2fb0: 61 73 65 20 69 73 20 6e 6f 74 20 61 76 61 69 6c  ase is not avail
2fc0: 61 62 6c 65 20 61 74 20 72 75 6e 20 74 69 6d 65  able at run time
2fd0: 2e 0d 0a 3c 62 72 3e 3c 62 72 3e 0d 0a 3c 74 61  ...<br><br>..<ta
2fe0: 62 6c 65 20 63 65 6c 6c 73 70 61 63 69 6e 67 3d  ble cellspacing=
2ff0: 22 38 22 20 63 65 6c 6c 70 61 64 64 69 6e 67 3d  "8" cellpadding=
3000: 22 38 22 20 62 67 63 6f 6c 6f 72 3d 22 23 66 66  "8" bgcolor="#ff
3010: 66 66 65 39 22 3e 0d 0a 3c 74 72 3e 3c 74 68 3e  ffe9">..<tr><th>
3020: 0d 0a 49 6e 20 6f 72 64 65 72 20 74 6f 20 6c 65  ..In order to le
3030: 61 72 6e 20 6d 6f 72 65 20 61 62 6f 75 74 20 74  arn more about t
3040: 68 65 20 6d 61 6e 79 20 69 6e 74 65 72 65 73 74  he many interest
3050: 69 6e 67 20 63 6f 6f 6c 20 6e 65 77 20 66 65 61  ing cool new fea
3060: 74 75 72 65 73 20 73 75 70 70 6f 72 74 65 64 20  tures supported 
3070: 62 79 20 50 52 4f 4a 2e 36 20 70 6c 65 61 73 65  by PROJ.6 please
3080: 20 63 6f 6e 73 75 6c 74 20 74 68 65 20 3c 61 20   consult the <a 
3090: 68 72 65 66 3d 22 68 74 74 70 73 3a 2f 2f 70 72  href="https://pr
30a0: 6f 6a 34 2e 6f 72 67 2f 22 3e 6f 72 69 67 69 6e  oj4.org/">origin
30b0: 61 6c 20 64 6f 63 75 6d 65 6e 74 61 74 69 6f 6e  al documentation
30c0: 3c 2f 61 3e 0d 0a 3c 2f 74 68 3e 3c 2f 74 72 3e  </a>..</th></tr>
30d0: 0d 0a 3c 2f 74 61 62 6c 65 3e 3c 62 72 3e 0d 0a  ..</table><br>..
30e0: 3c 68 72 3e 0d 0a 3c 68 31 3e 53 70 61 74 69 61  <hr>..<h1>Spatia
30f0: 4c 69 74 65 2d 35 2e 30 2e 30 20 73 75 70 70 6f  Lite-5.0.0 suppo
3100: 72 74 69 6e 67 20 50 52 4f 4a 2e 36 3c 2f 68 31  rting PROJ.6</h1
3110: 3e 0d 0a 3c 68 33 3e 45 78 69 73 74 69 6e 67 20  >..<h3>Existing 
3120: 53 51 4c 20 66 75 6e 63 74 69 6f 6e 73 20 61 66  SQL functions af
3130: 66 65 63 74 65 64 20 62 79 20 50 52 4f 4a 2e 36  fected by PROJ.6
3140: 3c 2f 68 33 3e 0d 0a 3c 74 61 62 6c 65 20 63 65  </h3>..<table ce
3150: 6c 6c 73 70 61 63 69 6e 67 3d 22 38 22 20 63 65  llspacing="8" ce
3160: 6c 6c 70 61 64 64 69 6e 67 3d 22 38 22 20 62 67  llpadding="8" bg
3170: 63 6f 6c 6f 72 3d 22 23 65 38 66 66 65 38 22 20  color="#e8ffe8" 
3180: 62 6f 72 64 65 72 3d 22 31 22 3e 0d 0a 3c 74 72  border="1">..<tr
3190: 3e 3c 74 68 20 62 67 63 6f 6c 6f 72 3d 22 23 66  ><th bgcolor="#f
31a0: 66 62 30 33 65 22 3e 53 51 4c 20 46 75 6e 63 74  fb03e">SQL Funct
31b0: 69 6f 6e 3c 2f 74 68 3e 3c 74 68 20 62 67 63 6f  ion</th><th bgco
31c0: 6c 6f 72 3d 22 23 66 66 62 30 33 65 22 3e 45 78  lor="#ffb03e">Ex
31d0: 74 65 6e 64 65 64 20 73 69 67 6e 61 74 75 72 65  tended signature
31e0: 3c 2f 74 68 3e 3c 74 68 20 62 67 63 6f 6c 6f 72  </th><th bgcolor
31f0: 3d 22 23 66 66 62 30 33 65 22 3e 42 65 68 61 76  ="#ffb03e">Behav
3200: 69 6f 72 20 75 6e 64 65 72 20 50 52 4f 4a 2e 36  ior under PROJ.6
3210: 3c 2f 74 68 3e 3c 2f 74 72 3e 0d 0a 3c 74 72 3e  </th></tr>..<tr>
3220: 3c 74 64 3e 3c 62 3e 53 54 5f 54 72 61 6e 73 66  <td><b>ST_Transf
3230: 6f 72 6d 28 29 3c 2f 62 3e 3c 2f 74 64 3e 0d 0a  orm()</b></td>..
3240: 3c 74 64 3e 0d 0a 3c 62 3e 53 54 5f 54 72 61 6e  <td>..<b>ST_Tran
3250: 73 66 6f 72 6d 3c 2f 62 3e 20 28 20 67 65 6f 6d  sform</b> ( geom
3260: 20 3c 69 3e 47 65 6f 6d 65 74 72 79 3c 2f 69 3e   <i>Geometry</i>
3270: 20 2c 20 6e 65 77 53 72 69 64 20 3c 69 3e 49 6e   , newSrid <i>In
3280: 74 65 67 65 72 3c 2f 69 3e 20 2c 20 61 72 65 61  teger</i> , area
3290: 20 3c 69 3e 47 65 6f 6d 65 74 72 79 3c 2f 69 3e   <i>Geometry</i>
32a0: 20 29 20 3a 20 3c 69 3e 47 65 6f 6d 65 74 72 79   ) : <i>Geometry
32b0: 3c 2f 69 3e 3c 68 72 3e 0d 0a 3c 62 3e 53 54 5f  </i><hr>..<b>ST_
32c0: 54 72 61 6e 73 66 6f 72 6d 3c 2f 62 3e 20 28 20  Transform</b> ( 
32d0: 67 65 6f 6d 20 3c 69 3e 47 65 6f 6d 65 74 72 79  geom <i>Geometry
32e0: 3c 2f 69 3e 20 2c 20 6e 65 77 53 72 69 64 20 3c  </i> , newSrid <
32f0: 69 3e 49 6e 74 65 67 65 72 3c 2f 69 3e 20 2c 20  i>Integer</i> , 
3300: 61 72 65 61 20 3c 69 3e 47 65 6f 6d 65 74 72 79  area <i>Geometry
3310: 3c 2f 69 3e 20 2c 20 6d 65 74 68 6f 64 20 3c 69  </i> , method <i
3320: 3e 54 65 78 74 3c 2f 69 3e 20 29 20 3a 20 3c 69  >Text</i> ) : <i
3330: 3e 47 65 6f 6d 65 74 72 79 3c 2f 69 3e 3c 68 72  >Geometry</i><hr
3340: 3e 0d 0a 3c 62 3e 53 54 5f 54 72 61 6e 73 66 6f  >..<b>ST_Transfo
3350: 72 6d 3c 2f 62 3e 20 28 20 67 65 6f 6d 20 3c 69  rm</b> ( geom <i
3360: 3e 47 65 6f 6d 65 74 72 79 3c 2f 69 3e 20 2c 20  >Geometry</i> , 
3370: 6e 65 77 53 72 69 64 20 3c 69 3e 49 6e 74 65 67  newSrid <i>Integ
3380: 65 72 3c 2f 69 3e 20 2c 20 61 72 65 61 20 3c 69  er</i> , area <i
3390: 3e 47 65 6f 6d 65 74 72 79 3c 2f 69 3e 20 2c 20  >Geometry</i> , 
33a0: 6d 65 74 68 6f 64 20 3c 69 3e 54 65 78 74 3c 2f  method <i>Text</
33b0: 69 3e 20 2c 20 70 72 6f 6a 5f 73 74 72 69 6e 67  i> , proj_string
33c0: 20 3c 69 3e 54 65 78 74 3c 2f 69 3e 20 29 20 3a   <i>Text</i> ) :
33d0: 20 3c 69 3e 47 65 6f 6d 65 74 72 79 3c 2f 69 3e   <i>Geometry</i>
33e0: 0d 0a 3c 2f 74 64 3e 0d 0a 3c 74 64 3e 0d 0a 3c  ..</td>..<td>..<
33f0: 74 61 62 6c 65 20 63 65 6c 6c 73 70 61 63 69 6e  table cellspacin
3400: 67 3d 22 34 22 20 63 65 6c 6c 70 61 64 64 69 6e  g="4" cellpaddin
3410: 67 3d 22 34 22 20 62 67 63 6f 6c 6f 72 3d 22 23  g="4" bgcolor="#
3420: 66 66 66 66 64 30 22 3e 0d 0a 3c 74 72 3e 3c 74  ffffd0">..<tr><t
3430: 64 3e 0d 0a 3c 62 3e 3c 75 3e 3c 69 3e 4e 6f 74  d>..<b><u><i>Not
3440: 65 3c 2f 69 3e 3c 2f 75 3e 3c 2f 62 3e 3a 20 61  e</i></u></b>: a
3450: 6c 6c 20 74 68 65 73 65 20 3c 62 3e 3c 69 3e 65  ll these <b><i>e
3460: 78 74 65 6e 64 65 64 20 73 69 67 6e 61 74 75 72  xtended signatur
3470: 65 73 3c 2f 69 3e 3c 2f 62 3e 20 61 72 65 20 73  es</i></b> are s
3480: 75 70 70 6f 72 74 65 64 20 6f 6e 6c 79 20 77 68  upported only wh
3490: 65 6e 20 3c 62 3e 6c 69 62 73 70 61 74 69 61 6c  en <b>libspatial
34a0: 69 74 65 2d 35 2e 30 3c 2f 62 3e 20 68 61 73 20  ite-5.0</b> has 
34b0: 62 65 65 6e 20 62 75 69 6c 74 20 6f 6e 20 74 68  been built on th
34c0: 65 20 74 6f 70 20 6f 66 20 3c 62 3e 50 52 4f 4a  e top of <b>PROJ
34d0: 2e 36 3c 2f 62 3e 3c 62 72 3e 0d 0a 49 66 20 74  .6</b><br>..If t
34e0: 68 65 20 6c 69 62 72 61 72 79 20 68 61 73 20 62  he library has b
34f0: 65 65 6e 20 62 75 69 6c 74 20 69 6e 73 74 65 61  een built instea
3500: 64 20 6f 6e 20 65 61 72 6c 69 65 72 20 76 65 72  d on earlier ver
3510: 73 69 6f 6e 73 20 6f 66 20 50 52 4f 4a 20 61 6e  sions of PROJ an
3520: 79 20 61 74 74 65 6d 70 74 20 74 6f 20 63 61 6c  y attempt to cal
3530: 6c 20 74 68 65 73 65 20 65 78 74 65 6e 64 65 64  l these extended
3540: 20 73 69 67 6e 61 74 75 72 65 73 20 77 69 6c 6c   signatures will
3550: 20 6a 75 73 74 20 72 65 74 75 72 6e 20 61 20 3c   just return a <
3560: 62 3e 77 72 6f 6e 67 20 6e 75 6d 62 65 72 20 6f  b>wrong number o
3570: 66 20 61 72 67 75 6d 65 6e 74 73 20 74 6f 20 66  f arguments to f
3580: 75 6e 63 74 69 6f 6e 20 53 54 5f 54 72 61 6e 73  unction ST_Trans
3590: 66 6f 72 6d 28 29 3c 2f 62 3e 20 65 72 72 6f 72  form()</b> error
35a0: 2e 0d 0a 3c 2f 74 64 3e 3c 74 72 3e 0d 0a 3c 2f  ...</td><tr>..</
35b0: 74 61 62 6c 65 3e 3c 62 72 3e 0d 0a 3c 74 61 62  table><br>..<tab
35c0: 6c 65 20 63 65 6c 6c 73 70 61 63 69 6e 67 3d 22  le cellspacing="
35d0: 34 22 20 63 65 6c 6c 70 61 64 64 69 6e 67 3d 22  4" cellpadding="
35e0: 34 22 20 62 67 63 6f 6c 6f 72 3d 22 23 66 66 64  4" bgcolor="#ffd
35f0: 66 64 30 22 3e 0d 0a 3c 74 72 3e 3c 74 64 3e 0d  fd0">..<tr><td>.
3600: 0a 41 6e 79 20 69 6e 76 61 6c 69 64 20 61 72 67  .Any invalid arg
3610: 75 6d 65 6e 74 20 70 61 73 73 65 64 20 74 6f 20  ument passed to 
3620: 3c 62 3e 53 54 5f 54 72 61 6e 73 66 6f 72 6d 28  <b>ST_Transform(
3630: 29 3c 2f 62 3e 20 28 3c 62 3e 3c 69 3e 65 78 74  )</b> (<b><i>ext
3640: 65 6e 64 65 64 20 73 69 67 6e 61 74 75 72 65 73  ended signatures
3650: 3c 2f 69 3e 3c 2f 62 3e 29 20 77 69 6c 6c 20 72  </i></b>) will r
3660: 61 69 73 65 20 61 6e 20 3c 62 3e 53 51 4c 20 45  aise an <b>SQL E
3670: 78 63 65 70 74 69 6f 6e 3c 2f 62 3e 2e 0d 0a 3c  xception</b>...<
3680: 2f 74 64 3e 3c 74 72 3e 0d 0a 3c 2f 74 61 62 6c  /td><tr>..</tabl
3690: 65 3e 3c 62 72 3e 0d 0a 3c 75 6c 3e 0d 0a 3c 6c  e><br>..<ul>..<l
36a0: 69 3e 74 68 65 20 6f 70 74 69 6f 6e 61 6c 20 61  i>the optional a
36b0: 72 67 75 6d 65 6e 74 20 3c 62 3e 61 72 65 61 3c  rgument <b>area<
36c0: 2f 62 3e 20 6d 61 79 20 62 65 20 3c 62 3e 4e 55  /b> may be <b>NU
36d0: 4c 4c 3c 2f 62 3e 20 28 3c 69 3e 64 65 66 61 75  LL</b> (<i>defau
36e0: 6c 74 20 73 65 74 74 69 6e 67 3c 2f 69 3e 29 2e  lt setting</i>).
36f0: 3c 62 72 3e 0d 0a 4f 74 68 65 72 77 69 73 65 20  <br>..Otherwise 
3700: 69 74 27 73 20 65 78 70 65 63 74 65 64 20 74 6f  it's expected to
3710: 20 63 6f 6e 74 61 69 6e 20 61 20 76 61 6c 69 64   contain a valid
3720: 20 47 65 6f 6d 65 74 72 79 20 69 6e 20 3c 62 3e   Geometry in <b>
3730: 53 52 49 44 3d 34 33 32 36 20 28 6c 6f 6e 67 2f  SRID=4326 (long/
3740: 6c 61 74 29 3c 2f 62 3e 2e 0d 0a 57 68 65 6e 20  lat)</b>...When 
3750: 61 6e 20 3c 62 3e 3c 69 3e 61 72 65 61 20 6f 66  an <b><i>area of
3760: 20 75 73 65 3c 2f 69 3e 3c 2f 62 3e 20 69 73 20   use</i></b> is 
3770: 65 78 70 6c 69 63 69 74 6c 79 20 73 75 70 70 6c  explicitly suppl
3780: 69 65 64 2c 20 74 68 65 6e 20 3c 62 3e 50 52 4f  ied, then <b>PRO
3790: 4a 2e 36 3c 2f 62 3e 20 6d 61 79 20 65 76 65 6e  J.6</b> may even
37a0: 74 75 61 6c 6c 79 20 75 73 65 20 74 68 65 20 63  tually use the c
37b0: 6f 72 72 65 73 70 6f 6e 64 69 6e 67 20 3c 62 3e  orresponding <b>
37c0: 42 42 4f 58 3c 2f 62 3e 20 66 6f 72 20 66 69 6e  BBOX</b> for fin
37d0: 65 6c 79 20 74 75 6e 69 6e 67 20 74 68 65 20 6d  ely tuning the m
37e0: 6f 72 65 20 61 63 63 75 72 61 74 65 20 74 72 61  ore accurate tra
37f0: 6e 73 66 6f 72 6d 61 74 69 6f 6e 2e 3c 2f 6c 69  nsformation.</li
3800: 3e 0d 0a 3c 6c 69 3e 74 68 65 20 6f 70 74 69 6f  >..<li>the optio
3810: 6e 61 6c 20 61 72 67 75 6d 65 6e 74 20 3c 62 3e  nal argument <b>
3820: 6d 65 74 68 6f 64 3c 2f 62 3e 20 69 73 20 65 78  method</b> is ex
3830: 70 65 63 74 65 64 20 74 6f 20 63 6f 6e 74 61 69  pected to contai
3840: 6e 20 6f 6e 65 20 74 68 65 20 66 6f 6c 6c 6f 77  n one the follow
3850: 69 6e 67 20 76 61 6c 75 65 73 20 28 3c 62 3e 70  ing values (<b>p
3860: 72 6f 6a 34 74 65 78 74 3c 2f 62 3e 20 77 69 6c  roj4text</b> wil
3870: 6c 20 62 65 20 61 6c 77 61 79 73 20 61 73 73 75  l be always assu
3880: 6d 65 64 20 61 73 20 74 68 65 20 3c 69 3e 64 65  med as the <i>de
3890: 66 61 75 6c 74 20 73 65 74 74 69 6e 67 3c 2f 69  fault setting</i
38a0: 3e 29 3a 3c 2f 6c 69 3e 0d 0a 3c 75 6c 3e 0d 0a  >):</li>..<ul>..
38b0: 3c 6c 69 3e 3c 62 3e 70 72 6f 6a 34 74 65 78 74  <li><b>proj4text
38c0: 3c 2f 62 3e 3a 20 62 6f 74 68 20 43 52 53 65 73  </b>: both CRSes
38d0: 20 28 6f 72 69 67 69 6e 20 61 6e 64 20 64 65 73   (origin and des
38e0: 74 69 6e 61 74 69 6f 6e 29 20 77 69 6c 6c 20 62  tination) will b
38f0: 65 20 64 65 66 69 6e 65 64 20 62 79 20 70 61 73  e defined by pas
3900: 73 69 6e 67 20 74 6f 20 50 52 4f 4a 2e 36 20 74  sing to PROJ.6 t
3910: 68 65 20 74 72 61 64 69 74 69 6f 6e 61 6c 73 20  he traditionals 
3920: 3c 62 3e 70 72 6f 6a 2d 73 74 72 69 6e 67 3c 2f  <b>proj-string</
3930: 62 3e 20 64 65 66 69 6e 69 74 69 6f 6e 73 20 66  b> definitions f
3940: 6f 72 20 74 68 65 20 63 6f 72 72 65 73 70 6f 6e  or the correspon
3950: 64 69 6e 67 20 53 52 49 44 73 20 72 65 74 72 69  ding SRIDs retri
3960: 65 76 65 64 20 66 72 6f 6d 20 63 6f 6c 75 6d 6e  eved from column
3970: 20 3c 62 3e 70 72 6f 6a 34 74 65 78 74 3c 2f 62   <b>proj4text</b
3980: 3e 20 69 6e 20 54 61 62 6c 65 20 3c 62 3e 73 70  > in Table <b>sp
3990: 61 74 69 61 6c 5f 72 65 66 5f 73 79 73 3c 2f 62  atial_ref_sys</b
39a0: 3e 3c 62 72 3e 0d 0a 54 68 69 73 20 65 78 61 63  ><br>..This exac
39b0: 74 6c 79 20 63 6f 72 72 65 73 70 6f 6e 64 73 20  tly corresponds 
39c0: 74 6f 20 74 68 65 20 77 65 6c 6c 20 65 78 74 61  to the well exta
39d0: 62 6c 69 73 68 65 64 20 74 72 61 64 69 74 69 6f  blished traditio
39e0: 6e 61 6c 20 62 65 68 61 76 69 6f 72 20 6f 66 20  nal behavior of 
39f0: 61 6c 6c 20 70 72 65 76 69 6f 75 73 20 76 65 72  all previous ver
3a00: 73 69 6f 6e 73 20 6f 66 20 3c 62 3e 6c 69 62 73  sions of <b>libs
3a10: 70 61 74 69 61 6c 69 74 65 3c 2f 62 3e 20 61 6e  patialite</b> an
3a20: 64 20 73 74 69 6c 6c 20 63 6f 6e 74 69 6e 75 65  d still continue
3a30: 73 20 74 6f 20 62 65 20 73 75 70 70 6f 72 74 65  s to be supporte
3a40: 64 20 6d 61 69 6e 6c 79 20 66 6f 72 20 68 69 73  d mainly for his
3a50: 74 6f 72 69 63 61 6c 20 63 6f 6d 70 61 74 69 62  torical compatib
3a60: 69 6c 69 74 79 2c 20 62 75 74 20 3c 62 3e 3c 75  ility, but <b><u
3a70: 3e 3c 69 3e 69 73 6e 27 74 20 61 6e 79 20 6c 6f  ><i>isn't any lo
3a80: 6e 67 65 72 20 74 68 65 20 62 65 73 74 20 77 61  nger the best wa
3a90: 79 20 66 6f 72 20 74 61 6b 69 6e 67 20 66 75 6c  y for taking ful
3aa0: 6c 20 70 72 6f 66 69 74 20 6f 66 20 74 68 65 20  l profit of the 
3ab0: 6d 6f 72 65 20 61 64 76 61 6e 63 65 64 20 63 61  more advanced ca
3ac0: 70 61 62 69 6c 69 74 69 65 73 20 6f 66 20 50 52  pabilities of PR
3ad0: 4f 4a 2e 36 3c 2f 69 3e 3c 2f 75 3e 3c 2f 62 3e  OJ.6</i></u></b>
3ae0: 3c 2f 6c 69 3e 0d 0a 3c 6c 69 3e 3c 62 3e 73 72  </li>..<li><b>sr
3af0: 74 65 78 74 3c 2f 62 3e 3a 20 62 6f 74 68 20 43  text</b>: both C
3b00: 52 53 65 73 20 28 6f 72 69 67 69 6e 20 61 6e 64  RSes (origin and
3b10: 20 64 65 73 74 69 6e 61 74 69 6f 6e 29 20 77 69   destination) wi
3b20: 6c 6c 20 62 65 20 64 65 66 69 6e 65 64 20 62 79  ll be defined by
3b30: 20 70 61 73 73 69 6e 67 20 74 6f 20 50 52 4f 4a   passing to PROJ
3b40: 2e 36 20 74 68 65 20 3c 62 3e 57 4b 54 3c 2f 62  .6 the <b>WKT</b
3b50: 3e 20 64 65 66 69 6e 69 74 69 6f 6e 73 20 66 6f  > definitions fo
3b60: 72 20 74 68 65 20 63 6f 72 72 65 73 70 6f 6e 64  r the correspond
3b70: 69 6e 67 20 53 52 49 44 73 20 72 65 74 72 69 65  ing SRIDs retrie
3b80: 76 65 64 20 66 72 6f 6d 20 63 6f 6c 75 6d 6e 20  ved from column 
3b90: 3c 62 3e 73 72 74 65 78 74 3c 2f 62 3e 20 69 6e  <b>srtext</b> in
3ba0: 20 54 61 62 6c 65 20 3c 62 3e 73 70 61 74 69 61   Table <b>spatia
3bb0: 6c 5f 72 65 66 5f 73 79 73 3c 2f 62 3e 3c 62 72  l_ref_sys</b><br
3bc0: 3e 0d 0a 3c 62 3e 3c 75 3e 3c 69 3e 4e 6f 74 65  >..<b><u><i>Note
3bd0: 3c 2f 69 3e 3c 2f 75 3e 3c 2f 62 3e 3a 20 74 68  </i></u></b>: th
3be0: 69 73 20 6d 65 74 68 6f 64 20 63 6f 75 6c 64 20  is method could 
3bf0: 65 66 66 65 63 74 69 76 65 6c 79 20 74 61 6b 65  effectively take
3c00: 20 66 75 6c 6c 20 70 72 6f 66 69 74 20 6f 66 20   full profit of 
3c10: 74 68 65 20 6d 6f 72 65 20 61 64 76 61 6e 63 65  the more advance
3c20: 64 20 63 61 70 61 62 69 6c 69 74 69 65 73 20 6f  d capabilities o
3c30: 66 20 50 52 4f 4a 2e 36 2c 20 62 75 74 20 6f 6e  f PROJ.6, but on
3c40: 6c 79 20 69 66 20 74 68 65 20 75 6e 64 65 72 6c  ly if the underl
3c50: 61 79 69 6e 67 20 73 70 61 74 69 61 6c 69 74 65  aying spatialite
3c60: 20 64 61 74 61 62 61 73 65 20 68 61 73 20 62 65   database has be
3c70: 65 6e 20 63 72 65 61 74 65 64 20 77 69 74 68 20  en created with 
3c80: 50 52 4f 4a 2e 36 20 73 75 70 70 6f 72 74 2e 3c  PROJ.6 support.<
3c90: 62 72 3e 0d 0a 42 75 74 20 69 74 20 63 6f 75 6c  br>..But it coul
3ca0: 64 20 65 61 73 69 6c 79 20 62 65 20 69 6e 61 64  d easily be inad
3cb0: 65 71 75 61 74 65 20 77 68 65 6e 20 74 68 65 20  equate when the 
3cc0: 75 6e 64 65 72 6c 61 79 69 6e 67 20 73 70 61 74  underlaying spat
3cd0: 69 61 6c 69 74 65 20 64 61 74 61 62 61 73 65 20  ialite database 
3ce0: 77 61 73 20 63 72 65 61 74 65 64 20 62 79 20 73  was created by s
3cf0: 6f 6d 65 20 65 61 72 6c 69 65 72 20 76 65 72 73  ome earlier vers
3d00: 69 6f 6e 20 6f 66 20 73 70 61 74 69 61 6c 69 74  ion of spatialit
3d10: 65 20 6c 61 63 6b 69 6e 67 20 50 52 4f 4a 2e 36  e lacking PROJ.6
3d20: 20 73 75 70 70 6f 72 74 2e 3c 2f 6c 69 3e 0d 0a   support.</li>..
3d30: 3c 6c 69 3e 3c 62 3e 61 75 74 68 5f 6e 61 6d 65  <li><b>auth_name
3d40: 3a 61 75 74 68 5f 73 72 69 64 3c 2f 62 3e 3a 20  :auth_srid</b>: 
3d50: 62 6f 74 68 20 43 52 53 65 73 20 28 6f 72 69 67  both CRSes (orig
3d60: 69 6e 20 61 6e 64 20 64 65 73 74 69 6e 61 74 69  in and destinati
3d70: 6f 6e 29 20 77 69 6c 6c 20 62 65 20 64 65 66 69  on) will be defi
3d80: 6e 65 64 20 62 79 20 69 67 6e 6f 72 69 6e 67 20  ned by ignoring 
3d90: 74 68 65 20 64 65 66 69 6e 69 74 69 6f 6e 73 20  the definitions 
3da0: 73 74 6f 72 65 64 20 69 6e 20 3c 62 3e 73 70 61  stored in <b>spa
3db0: 74 69 61 6c 5f 72 65 66 5f 73 79 73 3c 2f 62 3e  tial_ref_sys</b>
3dc0: 20 61 6e 64 20 6c 65 61 76 69 6e 67 20 50 52 4f   and leaving PRO
3dd0: 4a 2e 36 20 66 72 65 65 20 74 6f 20 72 65 74 72  J.6 free to retr
3de0: 69 65 76 65 20 74 68 65 69 72 20 63 6f 72 72 65  ieve their corre
3df0: 73 70 6f 6e 64 69 6e 67 20 64 65 66 69 6e 69 74  sponding definit
3e00: 69 6f 6e 73 20 66 72 6f 6d 20 69 74 73 20 6f 77  ions from its ow
3e10: 6e 20 70 72 69 76 61 74 65 20 53 51 4c 69 74 65  n private SQLite
3e20: 20 64 61 74 61 62 61 73 65 2e 3c 62 72 3e 0d 0a   database.<br>..
3e30: 3c 62 3e 3c 75 3e 3c 69 3e 4e 6f 74 65 3c 2f 69  <b><u><i>Note</i
3e40: 3e 3c 2f 75 3e 3c 2f 62 3e 3a 20 74 68 69 73 20  ></u></b>: this 
3e50: 6d 65 74 68 6f 64 20 77 69 6c 6c 20 61 6c 77 61  method will alwa
3e60: 79 73 20 74 61 6b 65 20 66 75 6c 6c 20 70 72 6f  ys take full pro
3e70: 66 69 74 20 6f 66 20 74 68 65 20 6d 6f 72 65 20  fit of the more 
3e80: 61 64 76 61 6e 63 65 64 20 63 61 70 61 62 69 6c  advanced capabil
3e90: 69 74 69 65 73 20 6f 66 20 50 52 4f 4a 2e 36 3c  ities of PROJ.6<
3ea0: 2f 6c 69 3e 0d 0a 3c 6c 69 3e 3c 62 3e 70 72 6f  /li>..<li><b>pro
3eb0: 6a 5f 73 74 72 69 6e 67 3c 2f 62 3e 3a 20 61 6e  j_string</b>: an
3ec0: 20 3c 62 3e 3c 75 3e 3c 69 3e 75 73 65 72 2d 64   <b><u><i>user-d
3ed0: 65 66 69 6e 65 64 20 70 72 6f 6a 2d 73 74 72 69  efined proj-stri
3ee0: 6e 67 3c 2f 69 3e 3c 2f 75 3e 3c 2f 62 3e 20 28  ng</i></u></b> (
3ef0: 6d 61 79 20 62 65 20 6f 6e 65 20 64 65 66 69 6e  may be one defin
3f00: 69 6e 69 6e 67 20 61 20 3c 62 3e 3c 75 3e 3c 69  ining a <b><u><i
3f10: 3e 74 72 61 6e 73 66 6f 72 6d 61 74 69 6f 6e 20  >transformation 
3f20: 70 69 70 65 6c 69 6e 65 3c 2f 69 3e 3c 2f 75 3e  pipeline</i></u>
3f30: 3c 2f 62 3e 29 20 77 69 6c 6c 20 62 65 20 70 61  </b>) will be pa
3f40: 73 73 65 64 20 74 6f 20 50 52 4f 4a 2e 36 3b 20  ssed to PROJ.6; 
3f50: 74 68 69 73 20 69 73 20 61 6e 20 61 64 76 61 6e  this is an advan
3f60: 63 65 64 20 6f 70 74 69 6f 6e 20 72 65 73 65 72  ced option reser
3f70: 76 65 64 20 74 6f 20 73 6b 69 6c 6c 65 64 20 70  ved to skilled p
3f80: 6f 77 65 72 20 75 73 65 72 73 2e 3c 2f 6c 69 3e  ower users.</li>
3f90: 0d 0a 3c 2f 75 6c 3e 3c 2f 6c 69 3e 0d 0a 3c 6c  ..</ul></li>..<l
3fa0: 69 3e 74 68 65 20 6f 70 74 69 6f 6e 61 6c 20 61  i>the optional a
3fb0: 72 67 75 6d 65 6e 74 20 3c 62 3e 70 72 6f 6a 5f  rgument <b>proj_
3fc0: 73 74 72 69 6e 67 3c 2f 62 3e 20 6d 61 79 20 62  string</b> may b
3fd0: 65 20 3c 62 3e 4e 55 4c 4c 3c 2f 62 3e 20 28 3c  e <b>NULL</b> (<
3fe0: 69 3e 64 65 66 61 75 6c 74 20 73 65 74 74 69 6e  i>default settin
3ff0: 67 3c 2f 69 3e 29 2e 3c 62 72 3e 0d 0a 4f 74 68  g</i>).<br>..Oth
4000: 65 72 77 69 73 65 20 69 74 27 73 20 65 78 70 65  erwise it's expe
4010: 63 74 65 64 20 74 6f 20 63 6f 6e 74 61 69 6e 20  cted to contain 
4020: 61 20 76 61 6c 69 64 20 3c 62 3e 50 52 4f 4a 2e  a valid <b>PROJ.
4030: 36 20 74 72 61 6e 73 66 6f 72 6d 61 74 69 6f 6e  6 transformation
4040: 20 73 74 72 69 6e 67 3c 2f 62 3e 2c 20 6d 61 79   string</b>, may
4050: 20 77 65 6c 6c 20 62 65 20 64 65 66 69 6e 69 6e   well be definin
4060: 67 20 61 6e 20 3c 62 3e 75 73 65 72 2d 64 65 66  g an <b>user-def
4070: 69 6e 65 64 20 74 72 61 6e 73 66 6f 72 6d 61 74  ined transformat
4080: 69 6f 6e 20 70 69 70 65 6c 69 6e 65 3c 2f 62 3e  ion pipeline</b>
4090: 2e 3c 62 72 3e 0d 0a 4d 65 61 6e 69 6e 67 66 75  .<br>..Meaningfu
40a0: 6c 20 6f 6e 6c 79 20 69 6e 20 74 68 65 20 63 61  l only in the ca
40b0: 73 65 20 6f 66 20 3c 62 3e 6d 65 74 68 6f 64 3d  se of <b>method=
40c0: 70 72 6f 6a 5f 73 74 72 69 6e 67 3c 2f 62 3e 3c  proj_string</b><
40d0: 2f 6c 69 3e 0d 0a 3c 2f 75 6c 3e 0d 0a 3c 2f 74  /li>..</ul>..</t
40e0: 64 3e 3c 2f 74 72 3e 0d 0a 3c 74 72 3e 3c 74 64  d></tr>..<tr><td
40f0: 3e 3c 62 3e 49 6e 69 74 53 70 61 74 69 61 6c 4d  ><b>InitSpatialM
4100: 65 74 61 44 61 74 61 28 29 3c 2f 62 3e 3c 68 72  etaData()</b><hr
4110: 3e 0d 0a 3c 62 3e 49 6e 69 74 53 70 61 74 69 61  >..<b>InitSpatia
4120: 6c 4d 65 74 61 44 61 74 61 46 75 6c 6c 28 29 3c  lMetaDataFull()<
4130: 2f 62 3e 3c 68 72 3e 0d 0a 3c 62 3e 49 6e 73 65  /b><hr>..<b>Inse
4140: 72 74 45 70 73 67 53 52 49 44 28 29 3c 2f 74 64  rtEpsgSRID()</td
4150: 3e 3c 74 64 20 61 6c 69 67 6e 3d 22 63 65 6e 74  ><td align="cent
4160: 65 72 22 3e 3c 62 3e 75 6e 63 68 61 6e 67 65 64  er"><b>unchanged
4170: 3c 2f 62 3e 3c 2f 74 64 3e 0d 0a 3c 74 64 3e 0d  </b></td>..<td>.
4180: 0a 41 6c 6c 20 74 68 65 73 65 20 53 51 4c 20 46  .All these SQL F
4190: 75 6e 63 74 69 6f 6e 73 20 64 6f 65 73 6e 27 74  unctions doesn't
41a0: 20 63 68 61 6e 67 65 20 74 68 65 69 72 20 73 69   change their si
41b0: 67 6e 61 74 75 72 65 73 2c 20 62 75 74 20 62 65  gnatures, but be
41c0: 68 61 76 65 20 69 6e 20 61 20 73 69 67 6e 69 66  have in a signif
41d0: 69 63 61 6e 74 6c 79 20 64 69 66 66 65 72 65 6e  icantly differen
41e0: 74 20 77 61 79 20 77 68 65 6e 20 3c 62 3e 50 52  t way when <b>PR
41f0: 4f 4a 2e 36 3c 2f 62 3e 20 73 75 70 70 6f 72 74  OJ.6</b> support
4200: 20 69 73 20 61 76 61 69 6c 61 62 6c 65 2e 0d 0a   is available...
4210: 3c 75 6c 3e 0d 0a 3c 6c 69 3e 74 72 61 64 69 74  <ul>..<li>tradit
4220: 69 6f 6e 61 6c 20 62 65 68 61 76 69 6f 72 20 6f  ional behavior o
4230: 6e 20 6f 6c 64 20 3c 62 3e 50 52 4f 4a 2e 34 3c  n old <b>PROJ.4<
4240: 2f 62 3e 3a 20 74 68 65 20 3c 62 3e 73 70 61 74  /b>: the <b>spat
4250: 69 61 6c 5f 72 65 66 5f 73 79 73 3c 2f 62 3e 20  ial_ref_sys</b> 
4260: 6d 65 74 61 64 61 74 61 20 54 61 62 6c 65 20 77  metadata Table w
4270: 69 6c 6c 20 62 65 20 70 6f 70 75 6c 61 74 65 64  ill be populated
4280: 20 62 79 20 75 73 69 6e 67 20 74 68 65 20 43 52   by using the CR
4290: 53 65 73 20 64 65 66 69 6e 69 74 69 6f 6e 73 20  Ses definitions 
42a0: 69 6e 74 65 72 6e 61 6c 6c 79 20 69 6e 6c 69 6e  internally inlin
42b0: 65 64 20 77 69 74 68 69 6e 20 74 68 65 20 63 6f  ed within the co
42c0: 64 65 20 6f 66 20 3c 62 3e 6c 69 62 73 70 61 74  de of <b>libspat
42d0: 69 61 6c 69 74 65 3c 2f 62 3e 2e 3c 2f 6c 69 3e  ialite</b>.</li>
42e0: 0d 0a 3c 6c 69 3e 6e 65 77 20 62 65 68 61 76 69  ..<li>new behavi
42f0: 6f 72 20 6f 6e 20 3c 62 3e 50 52 4f 4a 2e 36 3c  or on <b>PROJ.6<
4300: 2f 62 3e 3a 20 74 68 65 20 3c 62 3e 73 70 61 74  /b>: the <b>spat
4310: 69 61 6c 5f 72 65 66 5f 73 79 73 3c 2f 62 3e 20  ial_ref_sys</b> 
4320: 6d 65 74 61 64 61 74 61 20 54 61 62 6c 65 20 77  metadata Table w
4330: 69 6c 6c 20 62 65 20 70 6f 70 75 6c 61 74 65 64  ill be populated
4340: 20 62 79 20 69 6e 73 65 72 74 69 6e 67 20 74 68   by inserting th
4350: 65 20 43 52 53 65 73 20 64 65 66 69 6e 69 74 69  e CRSes definiti
4360: 6f 6e 73 20 65 78 74 72 61 63 74 65 64 20 66 72  ons extracted fr
4370: 6f 6d 20 74 68 65 20 53 51 4c 69 74 65 20 70 72  om the SQLite pr
4380: 69 76 61 74 65 20 64 61 74 61 62 61 73 65 20 63  ivate database c
4390: 75 72 72 65 6e 74 6c 79 20 63 6f 6e 6e 65 63 74  urrently connect
43a0: 65 64 20 74 6f 20 50 52 4f 4a 2e 36 3b 20 6d 6f  ed to PROJ.6; mo
43b0: 72 65 20 70 72 65 63 69 73 65 6c 79 2c 20 63 6f  re precisely, co
43c0: 6c 75 6d 6e 20 3c 62 3e 70 72 6f 6a 34 74 65 78  lumn <b>proj4tex
43d0: 74 3c 2f 62 3e 20 77 69 6c 6c 20 62 65 20 70 6f  t</b> will be po
43e0: 70 75 6c 61 74 65 64 20 62 79 20 69 6e 73 65 72  pulated by inser
43f0: 74 69 6e 67 20 74 68 65 20 6e 65 77 20 3c 62 3e  ting the new <b>
4400: 70 72 6f 6a 2d 73 74 72 69 6e 67 73 3c 2f 62 3e  proj-strings</b>
4410: 20 61 73 20 73 75 70 70 6f 72 74 65 64 20 62 79   as supported by
4420: 20 50 52 4f 4a 2e 36 2c 20 77 68 69 6c 73 74 20   PROJ.6, whilst 
4430: 63 6f 6c 75 6d 6e 20 3c 62 3e 73 72 74 65 78 74  column <b>srtext
4440: 3c 2f 62 3e 20 77 69 6c 6c 20 62 65 20 70 6f 70  </b> will be pop
4450: 75 6c 61 74 65 64 20 62 79 20 69 6e 73 65 72 74  ulated by insert
4460: 69 6e 67 20 74 68 65 20 3c 62 3e 49 53 4f 2d 32  ing the <b>ISO-2
4470: 30 31 38 20 57 4b 54 3c 2f 62 3e 20 64 65 66 69  018 WKT</b> defi
4480: 6e 69 74 69 6f 6e 73 20 61 73 20 73 75 70 70 6f  nitions as suppo
4490: 72 74 65 64 20 62 79 20 50 52 4f 4a 2e 36 3c 62  rted by PROJ.6<b
44a0: 72 3e 0d 0a 3c 75 3e 3c 62 3e 3c 69 3e 49 6d 70  r>..<u><b><i>Imp
44b0: 6f 72 74 61 6e 74 20 63 6f 6e 73 65 71 75 65 6e  ortant consequen
44c0: 63 65 3c 2f 69 3e 3c 2f 62 3e 3c 2f 75 3e 3a 20  ce</i></b></u>: 
44d0: 69 66 20 74 68 65 72 65 20 69 73 20 6e 6f 20 64  if there is no d
44e0: 61 74 61 62 61 73 65 20 63 75 72 72 65 6e 74 6c  atabase currentl
44f0: 79 20 63 6f 6e 6e 65 63 74 65 64 20 74 6f 20 50  y connected to P
4500: 52 4f 4a 2e 36 20 74 68 65 20 69 6e 69 74 69 61  ROJ.6 the initia
4510: 6c 69 7a 61 74 69 6f 6e 20 6f 66 20 3c 62 3e 73  lization of <b>s
4520: 70 61 74 69 61 6c 5f 72 65 66 5f 73 79 73 3c 2f  patial_ref_sys</
4530: 62 3e 20 77 69 6c 6c 20 66 61 69 6c 2e 3c 2f 6c  b> will fail.</l
4540: 69 3e 0d 0a 3c 2f 75 6c 3e 0d 0a 3c 2f 74 64 3e  i>..</ul>..</td>
4550: 3c 2f 74 72 3e 0d 0a 3c 2f 74 61 62 6c 65 3e 3c  </tr>..</table><
4560: 62 72 3e 0d 0a 46 65 77 20 70 72 61 63 74 69 63  br>..Few practic
4570: 61 6c 20 53 51 4c 20 65 78 61 6d 70 6c 65 73 3a  al SQL examples:
4580: 0d 0a 3c 76 65 72 62 61 74 69 6d 3e 0d 0a 53 45  ..<verbatim>..SE
4590: 4c 45 43 54 20 53 54 5f 41 73 54 65 78 74 20 28  LECT ST_AsText (
45a0: 20 53 54 5f 54 72 61 6e 73 66 6f 72 6d 28 20 4d   ST_Transform( M
45b0: 61 6b 65 50 6f 69 6e 74 28 20 31 31 2e 38 37 38  akePoint( 11.878
45c0: 30 35 36 20 2c 20 34 33 2e 34 36 33 30 35 36 2c  056 , 43.463056,
45d0: 20 34 33 32 36 20 29 2c 20 33 30 30 33 29 29 3b   4326 ), 3003));
45e0: 20 2d 2d 20 53 52 49 44 3d 33 30 30 33 20 2d 20   -- SRID=3003 - 
45f0: 64 65 66 61 75 6c 74 20 73 65 74 74 69 6e 67 73  default settings
4600: 3b 20 75 73 69 6e 67 20 70 72 6f 6a 2d 73 74 72  ; using proj-str
4610: 69 6e 67 73 20 66 72 6f 6d 20 73 70 61 74 69 61  ings from spatia
4620: 6c 5f 72 65 66 5f 73 79 73 2e 70 72 6f 6a 34 74  l_ref_sys.proj4t
4630: 65 78 74 0d 0a 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d  ext..-----------
4640: 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d  ----------------
4650: 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 0d 0a 50 4f 49 4e  ----------..POIN
4660: 54 28 31 37 33 32 38 33 32 2e 34 34 34 38 39 32  T(1732832.444892
4670: 20 34 38 31 36 33 35 30 2e 31 34 36 32 34 36 29   4816350.146246)
4680: 0d 0a 0d 0a 53 45 4c 45 43 54 20 53 54 5f 41 73  ....SELECT ST_As
4690: 54 65 78 74 20 28 20 53 54 5f 54 72 61 6e 73 66  Text ( ST_Transf
46a0: 6f 72 6d 28 20 4d 61 6b 65 50 6f 69 6e 74 28 20  orm( MakePoint( 
46b0: 31 31 2e 38 37 38 30 35 36 20 2c 20 34 33 2e 34  11.878056 , 43.4
46c0: 36 33 30 35 36 2c 20 34 33 32 36 20 29 2c 20 33  63056, 4326 ), 3
46d0: 30 30 33 2c 20 4e 55 4c 4c 2c 20 27 73 72 74 65  003, NULL, 'srte
46e0: 78 74 27 29 29 3b 20 2d 2d 20 53 52 49 44 3d 33  xt')); -- SRID=3
46f0: 30 30 33 20 2d 20 4e 55 4c 4c 20 61 72 65 61 20  003 - NULL area 
4700: 6f 66 20 75 73 65 2c 20 75 73 69 6e 67 20 49 53  of use, using IS
4710: 4f 2d 32 30 31 38 20 57 4b 54 20 64 65 66 69 6e  O-2018 WKT defin
4720: 69 74 69 6f 6e 73 20 66 72 6f 6d 20 73 70 61 74  itions from spat
4730: 69 61 6c 5f 72 65 66 5f 73 79 73 2e 73 72 74 65  ial_ref_sys.srte
4740: 78 74 0d 0a 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d  xt..------------
4750: 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d  ----------------
4760: 2d 2d 2d 2d 2d 2d 2d 2d 2d 0d 0a 50 4f 49 4e 54  ---------..POINT
4770: 28 31 37 33 32 38 35 32 2e 39 34 32 37 31 37 20  (1732852.942717 
4780: 34 38 31 36 32 37 37 2e 36 31 37 36 39 31 29 0d  4816277.617691).
4790: 0a 0d 0a 53 45 4c 45 43 54 20 53 54 5f 41 73 54  ...SELECT ST_AsT
47a0: 65 78 74 20 28 20 53 54 5f 54 72 61 6e 73 66 6f  ext ( ST_Transfo
47b0: 72 6d 28 20 4d 61 6b 65 50 6f 69 6e 74 28 20 31  rm( MakePoint( 1
47c0: 31 2e 38 37 38 30 35 36 20 2c 20 34 33 2e 34 36  1.878056 , 43.46
47d0: 33 30 35 36 2c 20 34 33 32 36 20 29 2c 20 33 30  3056, 4326 ), 30
47e0: 30 33 2c 20 4e 55 4c 4c 2c 20 27 61 75 74 68 5f  03, NULL, 'auth_
47f0: 6e 61 6d 65 3a 61 75 74 68 5f 73 72 69 64 27 29  name:auth_srid')
4800: 29 3b 20 2d 2d 20 53 52 49 44 3d 33 30 30 33 20  ); -- SRID=3003 
4810: 2d 20 4e 55 4c 4c 20 61 72 65 61 20 6f 66 20 75  - NULL area of u
4820: 73 65 2c 20 69 67 6e 6f 72 69 6e 67 20 73 70 61  se, ignoring spa
4830: 74 69 61 6c 69 74 65 5f 72 65 66 5f 73 79 73 20  tialite_ref_sys 
4840: 61 6e 64 20 75 73 69 6e 67 20 74 68 65 20 50 52  and using the PR
4850: 4f 4a 2e 36 20 6f 77 6e 20 70 72 69 76 61 74 65  OJ.6 own private
4860: 20 64 61 74 61 62 61 73 65 0d 0a 2d 2d 2d 2d 2d   database..-----
4870: 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d  ----------------
4880: 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d  ----------------
4890: 0d 0a 50 4f 49 4e 54 28 31 37 33 32 38 35 32 2e  ..POINT(1732852.
48a0: 39 34 32 37 31 37 20 34 38 31 36 32 37 37 2e 36  942717 4816277.6
48b0: 31 37 36 39 31 29 0d 0a 0d 0a 53 45 4c 45 43 54  17691)....SELECT
48c0: 20 53 54 5f 41 73 54 65 78 74 20 28 20 53 54 5f   ST_AsText ( ST_
48d0: 54 72 61 6e 73 66 6f 72 6d 28 20 4d 61 6b 65 50  Transform( MakeP
48e0: 6f 69 6e 74 28 20 31 31 2e 38 37 38 30 35 36 20  oint( 11.878056 
48f0: 2c 20 34 33 2e 34 36 33 30 35 36 2c 20 34 33 32  , 43.463056, 432
4900: 36 20 29 2c 20 33 32 36 33 32 29 29 3b 20 2d 2d  6 ), 32632)); --
4910: 20 53 52 49 44 3d 33 32 36 33 32 20 2d 20 64 65   SRID=32632 - de
4920: 66 61 75 6c 74 20 73 65 74 74 69 6e 67 73 3b 20  fault settings; 
4930: 75 73 69 6e 67 20 70 72 6f 6a 2d 73 74 72 69 6e  using proj-strin
4940: 67 73 20 66 72 6f 6d 20 73 70 61 74 69 61 6c 5f  gs from spatial_
4950: 72 65 66 5f 73 79 73 2e 70 72 6f 6a 34 74 65 78  ref_sys.proj4tex
4960: 74 0d 0a 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d  t..-------------
4970: 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d  ----------------
4980: 2d 2d 2d 2d 2d 2d 2d 2d 0d 0a 50 4f 49 4e 54 28  --------..POINT(
4990: 37 33 32 38 32 31 2e 37 31 38 34 37 35 20 34 38  732821.718475 48
49a0: 31 36 32 36 32 2e 36 33 31 32 34 35 29 0d 0a 0d  16262.631245)...
49b0: 0a 53 45 4c 45 43 54 20 53 54 5f 41 73 54 65 78  .SELECT ST_AsTex
49c0: 74 20 28 20 53 54 5f 54 72 61 6e 73 66 6f 72 6d  t ( ST_Transform
49d0: 28 20 4d 61 6b 65 50 6f 69 6e 74 28 20 31 31 2e  ( MakePoint( 11.
49e0: 38 37 38 30 35 36 20 2c 20 34 33 2e 34 36 33 30  878056 , 43.4630
49f0: 35 36 2c 20 34 33 32 36 20 29 2c 20 33 32 36 33  56, 4326 ), 3263
4a00: 32 2c 20 4e 55 4c 4c 2c 20 27 73 72 74 65 78 74  2, NULL, 'srtext
4a10: 27 29 29 3b 20 2d 2d 20 53 52 49 44 3d 33 32 36  ')); -- SRID=326
4a20: 33 32 20 2d 20 4e 55 4c 4c 20 61 72 65 61 20 6f  32 - NULL area o
4a30: 66 20 75 73 65 2c 20 75 73 69 6e 67 20 49 53 4f  f use, using ISO
4a40: 2d 32 30 31 38 20 57 4b 54 20 64 65 66 69 6e 69  -2018 WKT defini
4a50: 74 69 6f 6e 73 20 66 72 6f 6d 20 73 70 61 74 69  tions from spati
4a60: 61 6c 5f 72 65 66 5f 73 79 73 2e 73 72 74 65 78  al_ref_sys.srtex
4a70: 74 0d 0a 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d  t..-------------
4a80: 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d  ----------------
4a90: 2d 2d 2d 2d 2d 2d 2d 2d 0d 0a 50 4f 49 4e 54 28  --------..POINT(
4aa0: 37 33 32 38 32 31 2e 37 31 38 34 37 35 20 34 38  732821.718475 48
4ab0: 31 36 32 36 32 2e 36 33 31 32 34 35 29 0d 0a 0d  16262.631245)...
4ac0: 0a 53 45 4c 45 43 54 20 53 54 5f 41 73 54 65 78  .SELECT ST_AsTex
4ad0: 74 20 28 20 53 54 5f 54 72 61 6e 73 66 6f 72 6d  t ( ST_Transform
4ae0: 28 20 4d 61 6b 65 50 6f 69 6e 74 28 20 31 31 2e  ( MakePoint( 11.
4af0: 38 37 38 30 35 36 20 2c 20 34 33 2e 34 36 33 30  878056 , 43.4630
4b00: 35 36 2c 20 34 33 32 36 20 29 2c 20 33 32 36 33  56, 4326 ), 3263
4b10: 32 2c 20 4e 55 4c 4c 2c 20 27 61 75 74 68 5f 6e  2, NULL, 'auth_n
4b20: 61 6d 65 3a 61 75 74 68 5f 73 72 69 64 27 29 29  ame:auth_srid'))
4b30: 3b 20 2d 2d 20 53 52 49 44 3d 33 32 36 33 32 20  ; -- SRID=32632 
4b40: 2d 20 4e 55 4c 4c 20 61 72 65 61 20 6f 66 20 75  - NULL area of u
4b50: 73 65 2c 20 69 67 6e 6f 72 69 6e 67 20 73 70 61  se, ignoring spa
4b60: 74 69 61 6c 69 74 65 5f 72 65 66 5f 73 79 73 20  tialite_ref_sys 
4b70: 61 6e 64 20 75 73 69 6e 67 20 74 68 65 20 50 52  and using the PR
4b80: 4f 4a 2e 36 20 6f 77 6e 20 70 72 69 76 61 74 65  OJ.6 own private
4b90: 20 64 61 74 61 62 61 73 65 0d 0a 2d 2d 2d 2d 2d   database..-----
4ba0: 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d  ----------------
4bb0: 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d  ----------------
4bc0: 0d 0a 50 4f 49 4e 54 28 37 33 32 38 32 31 2e 37  ..POINT(732821.7
4bd0: 31 38 34 37 35 20 34 38 31 36 32 36 32 2e 36 33  18475 4816262.63
4be0: 31 32 34 35 29 0d 0a 3c 2f 76 65 72 62 61 74 69  1245)..</verbati
4bf0: 6d 3e 0d 0a 54 68 69 73 20 66 69 72 73 74 20 74  m>..This first t
4c00: 65 73 74 20 69 73 20 62 61 73 65 64 20 6f 6e 20  est is based on 
4c10: 61 20 6e 65 77 20 53 70 61 74 69 61 4c 69 74 65  a new SpatiaLite
4c20: 20 64 61 62 61 73 65 20 63 72 65 61 74 65 64 20   dabase created 
4c30: 77 69 74 68 20 66 75 6c 6c 20 50 52 4f 4a 2e 36  with full PROJ.6
4c40: 20 73 75 70 70 6f 72 74 2e 20 41 73 20 79 6f 75   support. As you
4c50: 20 63 61 6e 20 65 61 73 69 6c 79 20 6e 6f 74 69   can easily noti
4c60: 63 65 3a 0d 0a 3c 75 6c 3e 0d 0a 3c 6c 69 3e 74  ce:..<ul>..<li>t
4c70: 68 65 20 66 69 72 73 74 20 74 72 61 6e 73 66 6f  he first transfo
4c80: 72 6d 61 74 69 6f 6e 20 66 72 6f 6d 20 53 52 49  rmation from SRI
4c90: 44 3d 34 33 32 36 20 74 6f 20 53 52 49 44 3d 33  D=4326 to SRID=3
4ca0: 30 30 33 20 62 61 73 65 64 20 6f 6e 20 74 72 61  003 based on tra
4cb0: 64 69 74 69 6f 6e 61 6c 20 3c 62 3e 70 72 6f 6a  ditional <b>proj
4cc0: 2d 73 74 72 69 6e 67 73 3c 2f 62 3e 20 72 65 74  -strings</b> ret
4cd0: 72 69 65 76 65 64 20 66 72 6f 6d 20 3c 62 3e 73  rieved from <b>s
4ce0: 70 61 74 69 61 6c 5f 72 65 66 5f 73 79 73 2e 70  patial_ref_sys.p
4cf0: 72 6f 6a 34 74 65 78 74 3c 2f 62 3e 20 72 61 74  roj4text</b> rat
4d00: 68 65 72 20 73 75 72 70 72 69 73 69 6e 67 6c 79  her surprisingly
4d10: 20 73 69 67 6e 69 66 69 63 61 6e 74 6c 79 20 64   significantly d
4d20: 69 66 66 65 72 73 20 66 72 6f 6d 20 74 68 65 20  iffers from the 
4d30: 6f 74 68 65 72 20 74 77 6f 20 72 65 73 75 6c 74  other two result
4d40: 73 2e 3c 2f 6c 69 3e 0d 0a 3c 6c 69 3e 62 75 74  s.</li>..<li>but
4d50: 20 61 6c 6c 20 74 72 61 6e 73 66 6f 72 6d 61 74   all transformat
4d60: 69 6f 6e 73 20 66 72 6f 6d 20 53 52 49 44 3d 34  ions from SRID=4
4d70: 33 32 36 20 74 6f 20 53 52 49 44 3d 33 32 36 33  326 to SRID=3263
4d80: 32 20 72 65 74 75 72 6e 20 69 64 65 6e 74 69 63  2 return identic
4d90: 61 6c 20 72 65 73 75 6c 74 73 2e 3c 2f 6c 69 3e  al results.</li>
4da0: 0d 0a 3c 6c 69 3e 74 68 69 73 20 69 73 20 61 20  ..<li>this is a 
4db0: 64 69 72 65 63 74 20 63 6f 6e 66 69 72 6d 61 74  direct confirmat
4dc0: 69 6f 6e 20 74 68 61 74 20 73 74 69 6c 6c 20 63  ion that still c
4dd0: 6f 6e 74 69 6e 75 69 6e 67 20 74 6f 20 75 73 65  ontinuing to use
4de0: 20 74 68 65 20 74 72 61 64 69 74 69 6f 6e 61 6c   the traditional
4df0: 20 61 70 70 72 6f 61 63 68 20 6f 66 20 74 72 61   approach of tra
4e00: 6e 73 66 6f 72 6d 61 74 69 6f 6e 73 20 64 72 69  nsformations dri
4e10: 76 65 6e 20 62 79 20 70 72 6f 6a 2d 73 74 72 69  ven by proj-stri
4e20: 6e 67 73 20 3c 62 3e 3c 75 3e 3c 69 3e 64 65 66  ngs <b><u><i>def
4e30: 69 6e 69 74 65 6c 79 20 69 73 6e 27 74 20 74 68  initely isn't th
4e40: 65 20 6f 70 74 69 6d 61 6c 20 6d 65 74 68 6f 64  e optimal method
4e50: 20 66 6f 72 20 75 73 69 6e 67 20 50 52 4f 4a 2e   for using PROJ.
4e60: 36 3c 2f 69 3e 3c 2f 75 3e 3c 2f 62 3e 3c 2f 6c  6</i></u></b></l
4e70: 69 3e 0d 0a 3c 2f 75 6c 3e 3c 62 72 3e 0d 0a 3c  i>..</ul><br>..<
4e80: 76 65 72 62 61 74 69 6d 3e 0d 0a 53 45 4c 45 43  verbatim>..SELEC
4e90: 54 20 53 54 5f 41 73 54 65 78 74 20 28 20 53 54  T ST_AsText ( ST
4ea0: 5f 54 72 61 6e 73 66 6f 72 6d 28 20 4d 61 6b 65  _Transform( Make
4eb0: 50 6f 69 6e 74 28 20 31 31 2e 38 37 38 30 35 36  Point( 11.878056
4ec0: 20 2c 20 34 33 2e 34 36 33 30 35 36 2c 20 34 33   , 43.463056, 43
4ed0: 32 36 20 29 2c 20 33 30 30 33 29 29 3b 20 2d 2d  26 ), 3003)); --
4ee0: 20 53 52 49 44 3d 33 30 30 33 20 2d 20 64 65 66   SRID=3003 - def
4ef0: 61 75 6c 74 20 73 65 74 74 69 6e 67 73 3b 20 75  ault settings; u
4f00: 73 69 6e 67 20 70 72 6f 6a 2d 73 74 72 69 6e 67  sing proj-string
4f10: 73 20 66 72 6f 6d 20 73 70 61 74 69 61 6c 5f 72  s from spatial_r
4f20: 65 66 5f 73 79 73 2e 70 72 6f 6a 34 74 65 78 74  ef_sys.proj4text
4f30: 0d 0a 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d  ..--------------
4f40: 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d  ----------------
4f50: 2d 2d 2d 2d 2d 2d 2d 0d 0a 50 4f 49 4e 54 28 31  -------..POINT(1
4f60: 37 33 32 38 35 32 2e 39 34 32 37 31 37 20 34 38  732852.942717 48
4f70: 31 36 32 37 37 2e 36 31 37 36 39 31 29 0d 0a 0d  16277.617691)...
4f80: 0a 53 45 4c 45 43 54 20 53 54 5f 41 73 54 65 78  .SELECT ST_AsTex
4f90: 74 20 28 20 53 54 5f 54 72 61 6e 73 66 6f 72 6d  t ( ST_Transform
4fa0: 28 20 4d 61 6b 65 50 6f 69 6e 74 28 20 31 31 2e  ( MakePoint( 11.
4fb0: 38 37 38 30 35 36 20 2c 20 34 33 2e 34 36 33 30  878056 , 43.4630
4fc0: 35 36 2c 20 34 33 32 36 20 29 2c 20 33 30 30 33  56, 4326 ), 3003
4fd0: 2c 20 4e 55 4c 4c 2c 20 27 73 72 74 65 78 74 27  , NULL, 'srtext'
4fe0: 29 29 3b 20 2d 2d 20 53 52 49 44 3d 33 30 30 33  )); -- SRID=3003
4ff0: 20 2d 20 4e 55 4c 4c 20 61 72 65 61 20 6f 66 20   - NULL area of 
5000: 75 73 65 2c 20 75 73 69 6e 67 20 49 53 4f 2d 32  use, using ISO-2
5010: 30 31 38 20 57 4b 54 20 64 65 66 69 6e 69 74 69  018 WKT definiti
5020: 6f 6e 73 20 66 72 6f 6d 20 73 70 61 74 69 61 6c  ons from spatial
5030: 5f 72 65 66 5f 73 79 73 2e 73 72 74 65 78 74 0d  _ref_sys.srtext.
5040: 0a 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d  .---------------
5050: 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d  ----------------
5060: 2d 2d 2d 2d 2d 2d 0d 0a 50 4f 49 4e 54 28 31 37  ------..POINT(17
5070: 33 32 38 35 32 2e 39 34 32 37 31 37 20 34 38 31  32852.942717 481
5080: 36 32 37 37 2e 36 31 37 36 39 31 29 0d 0a 0d 0a  6277.617691)....
5090: 53 45 4c 45 43 54 20 53 54 5f 41 73 54 65 78 74  SELECT ST_AsText
50a0: 20 28 20 53 54 5f 54 72 61 6e 73 66 6f 72 6d 28   ( ST_Transform(
50b0: 20 4d 61 6b 65 50 6f 69 6e 74 28 20 31 31 2e 38   MakePoint( 11.8
50c0: 37 38 30 35 36 20 2c 20 34 33 2e 34 36 33 30 35  78056 , 43.46305
50d0: 36 2c 20 34 33 32 36 20 29 2c 20 33 30 30 33 2c  6, 4326 ), 3003,
50e0: 20 4e 55 4c 4c 2c 20 27 61 75 74 68 5f 6e 61 6d   NULL, 'auth_nam
50f0: 65 3a 61 75 74 68 5f 73 72 69 64 27 29 29 3b 20  e:auth_srid')); 
5100: 2d 2d 20 53 52 49 44 3d 33 30 30 33 20 2d 20 4e  -- SRID=3003 - N
5110: 55 4c 4c 20 61 72 65 61 20 6f 66 20 75 73 65 2c  ULL area of use,
5120: 20 69 67 6e 6f 72 69 6e 67 20 73 70 61 74 69 61   ignoring spatia
5130: 6c 69 74 65 5f 72 65 66 5f 73 79 73 20 61 6e 64  lite_ref_sys and
5140: 20 75 73 69 6e 67 20 74 68 65 20 50 52 4f 4a 2e   using the PROJ.
5150: 36 20 6f 77 6e 20 70 72 69 76 61 74 65 20 64 61  6 own private da
5160: 74 61 62 61 73 65 0d 0a 2d 2d 2d 2d 2d 2d 2d 2d  tabase..--------
5170: 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d  ----------------
5180: 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 0d 0a 50  -------------..P
5190: 4f 49 4e 54 28 31 37 33 32 38 35 32 2e 39 34 32  OINT(1732852.942
51a0: 37 31 37 20 34 38 31 36 32 37 37 2e 36 31 37 36  717 4816277.6176
51b0: 39 31 29 0d 0a 0d 0a 53 45 4c 45 43 54 20 53 54  91)....SELECT ST
51c0: 5f 41 73 54 65 78 74 20 28 20 53 54 5f 54 72 61  _AsText ( ST_Tra
51d0: 6e 73 66 6f 72 6d 28 20 4d 61 6b 65 50 6f 69 6e  nsform( MakePoin
51e0: 74 28 20 31 31 2e 38 37 38 30 35 36 20 2c 20 34  t( 11.878056 , 4
51f0: 33 2e 34 36 33 30 35 36 2c 20 34 33 32 36 20 29  3.463056, 4326 )
5200: 2c 20 33 32 36 33 32 29 29 3b 20 2d 2d 20 53 52  , 32632)); -- SR
5210: 49 44 3d 33 32 36 33 32 20 2d 20 64 65 66 61 75  ID=32632 - defau
5220: 6c 74 20 73 65 74 74 69 6e 67 73 3b 20 75 73 69  lt settings; usi
5230: 6e 67 20 70 72 6f 6a 2d 73 74 72 69 6e 67 73 20  ng proj-strings 
5240: 66 72 6f 6d 20 73 70 61 74 69 61 6c 5f 72 65 66  from spatial_ref
5250: 5f 73 79 73 2e 70 72 6f 6a 34 74 65 78 74 0d 0a  _sys.proj4text..
5260: 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d  ----------------
5270: 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d  ----------------
5280: 2d 2d 2d 2d 2d 0d 0a 50 4f 49 4e 54 28 37 33 32  -----..POINT(732
5290: 38 32 31 2e 37 31 38 34 37 35 20 34 38 31 36 32  821.718475 48162
52a0: 36 32 2e 36 33 31 32 34 35 29 0d 0a 0d 0a 53 45  62.631245)....SE
52b0: 4c 45 43 54 20 53 54 5f 41 73 54 65 78 74 20 28  LECT ST_AsText (
52c0: 20 53 54 5f 54 72 61 6e 73 66 6f 72 6d 28 20 4d   ST_Transform( M
52d0: 61 6b 65 50 6f 69 6e 74 28 20 31 31 2e 38 37 38  akePoint( 11.878
52e0: 30 35 36 20 2c 20 34 33 2e 34 36 33 30 35 36 2c  056 , 43.463056,
52f0: 20 34 33 32 36 20 29 2c 20 33 32 36 33 32 2c 20   4326 ), 32632, 
5300: 4e 55 4c 4c 2c 20 27 73 72 74 65 78 74 27 29 29  NULL, 'srtext'))
5310: 3b 20 2d 2d 20 53 52 49 44 3d 33 32 36 33 32 20  ; -- SRID=32632 
5320: 2d 20 4e 55 4c 4c 20 61 72 65 61 20 6f 66 20 75  - NULL area of u
5330: 73 65 2c 20 75 73 69 6e 67 20 49 53 4f 2d 32 30  se, using ISO-20
5340: 31 38 20 57 4b 54 20 64 65 66 69 6e 69 74 69 6f  18 WKT definitio
5350: 6e 73 20 66 72 6f 6d 20 73 70 61 74 69 61 6c 5f  ns from spatial_
5360: 72 65 66 5f 73 79 73 2e 73 72 74 65 78 74 0d 0a  ref_sys.srtext..
5370: 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d  ----------------
5380: 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d  ----------------
5390: 2d 2d 2d 2d 2d 0d 0a 50 4f 49 4e 54 28 37 33 32  -----..POINT(732
53a0: 38 32 31 2e 37 31 38 34 37 35 20 34 38 31 36 32  821.718475 48162
53b0: 36 32 2e 36 33 31 32 34 35 29 0d 0a 0d 0a 53 45  62.631245)....SE
53c0: 4c 45 43 54 20 53 54 5f 41 73 54 65 78 74 20 28  LECT ST_AsText (
53d0: 20 53 54 5f 54 72 61 6e 73 66 6f 72 6d 28 20 4d   ST_Transform( M
53e0: 61 6b 65 50 6f 69 6e 74 28 20 31 31 2e 38 37 38  akePoint( 11.878
53f0: 30 35 36 20 2c 20 34 33 2e 34 36 33 30 35 36 2c  056 , 43.463056,
5400: 20 34 33 32 36 20 29 2c 20 33 32 36 33 32 2c 20   4326 ), 32632, 
5410: 4e 55 4c 4c 2c 20 27 61 75 74 68 5f 6e 61 6d 65  NULL, 'auth_name
5420: 3a 61 75 74 68 5f 73 72 69 64 27 29 29 3b 20 2d  :auth_srid')); -
5430: 2d 20 53 52 49 44 3d 33 32 36 33 32 20 2d 20 4e  - SRID=32632 - N
5440: 55 4c 4c 20 61 72 65 61 20 6f 66 20 75 73 65 2c  ULL area of use,
5450: 20 69 67 6e 6f 72 69 6e 67 20 73 70 61 74 69 61   ignoring spatia
5460: 6c 69 74 65 5f 72 65 66 5f 73 79 73 20 61 6e 64  lite_ref_sys and
5470: 20 75 73 69 6e 67 20 74 68 65 20 50 52 4f 4a 2e   using the PROJ.
5480: 36 20 6f 77 6e 20 70 72 69 76 61 74 65 20 64 61  6 own private da
5490: 74 61 62 61 73 65 0d 0a 2d 2d 2d 2d 2d 2d 2d 2d  tabase..--------
54a0: 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d  ----------------
54b0: 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 0d 0a 50  -------------..P
54c0: 4f 49 4e 54 28 37 33 32 38 32 31 2e 37 31 38 34  OINT(732821.7184
54d0: 37 35 20 34 38 31 36 32 36 32 2e 36 33 31 32 34  75 4816262.63124
54e0: 35 29 0d 0a 3c 2f 76 65 72 62 61 74 69 6d 3e 0d  5)..</verbatim>.
54f0: 0a 54 68 69 73 20 73 65 63 6f 6e 64 20 74 65 73  .This second tes
5500: 74 20 69 73 20 62 61 73 65 64 20 69 6e 73 74 65  t is based inste
5510: 61 64 20 6f 6e 20 61 20 6c 65 67 61 63 79 20 53  ad on a legacy S
5520: 70 61 74 69 61 4c 69 74 65 20 64 61 74 61 62 61  patiaLite databa
5530: 73 65 20 63 72 65 61 74 65 64 20 62 79 20 73 6f  se created by so
5540: 6d 65 20 65 61 72 6c 69 65 72 20 76 65 72 73 69  me earlier versi
5550: 6f 6e 20 6c 61 63 6b 69 6e 67 20 50 52 4f 4a 2e  on lacking PROJ.
5560: 36 20 73 75 70 70 6f 72 74 2e 3c 62 72 3e 0d 0a  6 support.<br>..
5570: 49 6e 20 74 68 69 73 20 73 70 65 63 69 66 69 63  In this specific
5580: 20 63 61 73 65 20 74 68 65 72 65 20 69 73 20 6e   case there is n
5590: 6f 20 64 69 66 66 65 72 65 6e 63 65 20 69 6e 20  o difference in 
55a0: 74 68 65 20 72 65 73 75 6c 74 73 20 72 65 74 75  the results retu
55b0: 72 6e 65 64 20 62 79 20 64 69 66 66 65 72 65 6e  rned by differen
55c0: 74 20 6d 65 74 68 6f 64 73 2e 3c 62 72 3e 3c 62  t methods.<br><b
55d0: 72 3e 0d 0a 3c 62 3e 3c 75 3e 4d 69 73 74 65 72  r>..<b><u>Mister
55e0: 79 20 75 6e 76 65 69 6c 65 64 3c 2f 75 3e 3c 2f  y unveiled</u></
55f0: 62 3e 3a 20 6a 75 73 74 20 61 20 71 75 69 63 6b  b>: just a quick
5600: 20 67 6c 61 6e 63 65 20 74 6f 20 74 68 65 20 6f   glance to the o
5610: 6c 64 20 61 6e 64 20 6e 65 77 20 3c 62 3e 70 72  ld and new <b>pr
5620: 6f 6a 2d 73 74 72 69 6e 67 73 3c 2f 62 3e 3a 0d  oj-strings</b>:.
5630: 0a 3c 75 6c 3e 0d 0a 3c 6c 69 3e 53 52 49 44 3d  .<ul>..<li>SRID=
5640: 33 30 30 33 20 70 72 6f 6a 2d 73 74 72 69 6e 67  3003 proj-string
5650: 20 61 73 20 64 65 66 69 6e 65 64 20 62 79 20 6f   as defined by o
5660: 6c 64 20 50 52 4f 4a 2e 34 3a 0d 0a 3c 75 6c 3e  ld PROJ.4:..<ul>
5670: 0d 0a 3c 6c 69 3e 3c 62 3e 2b 70 72 6f 6a 3d 74  ..<li><b>+proj=t
5680: 6d 65 72 63 20 2b 6c 61 74 5f 30 3d 30 20 2b 6c  merc +lat_0=0 +l
5690: 6f 6e 5f 30 3d 39 20 2b 6b 3d 30 2e 39 39 39 36  on_0=9 +k=0.9996
56a0: 20 2b 78 5f 30 3d 31 35 30 30 30 30 30 20 2b 79   +x_0=1500000 +y
56b0: 5f 30 3d 30 20 2b 65 6c 6c 70 73 3d 69 6e 74 6c  _0=0 +ellps=intl
56c0: 20 2b 74 6f 77 67 73 38 34 3d 2d 31 30 34 2e 31   +towgs84=-104.1
56d0: 2c 2d 34 39 2e 31 2c 2d 39 2e 39 2c 30 2e 39 37  ,-49.1,-9.9,0.97
56e0: 31 2c 2d 32 2e 39 31 37 2c 30 2e 37 31 34 2c 2d  1,-2.917,0.714,-
56f0: 31 31 2e 36 38 20 2b 75 6e 69 74 73 3d 6d 20 2b  11.68 +units=m +
5700: 6e 6f 5f 64 65 66 73 3c 2f 62 3e 3c 2f 6c 69 3e  no_defs</b></li>
5710: 0d 0a 3c 2f 75 6c 3e 3c 2f 6c 69 3e 0d 0a 3c 6c  ..</ul></li>..<l
5720: 69 3e 53 52 49 44 3d 33 30 30 33 20 70 72 6f 6a  i>SRID=3003 proj
5730: 2d 73 74 72 69 6e 67 20 61 73 20 64 65 66 69 6e  -string as defin
5740: 65 64 20 62 79 20 6e 65 77 20 50 52 4f 4a 2e 36  ed by new PROJ.6
5750: 3a 0d 0a 3c 75 6c 3e 0d 0a 3c 6c 69 3e 3c 62 3e  :..<ul>..<li><b>
5760: 2b 70 72 6f 6a 3d 74 6d 65 72 63 20 2b 6c 61 74  +proj=tmerc +lat
5770: 5f 30 3d 30 20 2b 6c 6f 6e 5f 30 3d 39 20 2b 6b  _0=0 +lon_0=9 +k
5780: 3d 30 2e 39 39 39 36 20 2b 78 5f 30 3d 31 35 30  =0.9996 +x_0=150
5790: 30 30 30 30 20 2b 79 5f 30 3d 30 20 2b 65 6c 6c  0000 +y_0=0 +ell
57a0: 70 73 3d 69 6e 74 6c 20 2b 75 6e 69 74 73 3d 6d  ps=intl +units=m
57b0: 20 2b 6e 6f 5f 64 65 66 73 20 2b 74 79 70 65 3d   +no_defs +type=
57c0: 63 72 73 3c 2f 62 3e 3c 2f 6c 69 3e 0d 0a 3c 2f  crs</b></li>..</
57d0: 75 6c 3e 3c 2f 6c 69 3e 0d 0a 41 73 20 79 6f 75  ul></li>..As you
57e0: 20 63 61 6e 20 65 61 73 69 6c 79 20 6e 6f 74 69   can easily noti
57f0: 63 65 2c 20 74 68 65 72 65 20 69 73 20 6e 6f 20  ce, there is no 
5800: 3c 62 3e 2b 74 6f 77 67 73 38 34 3c 2f 62 3e 20  <b>+towgs84</b> 
5810: 74 65 72 6d 20 64 65 66 69 6e 65 64 20 69 6e 20  term defined in 
5820: 6e 65 77 20 50 52 4f 4a 2e 36 2c 20 61 6e 64 20  new PROJ.6, and 
5830: 74 68 69 73 20 66 75 6c 6c 79 20 65 78 70 6c 61  this fully expla
5840: 69 6e 73 20 61 6c 6c 2e 0d 0a 3c 2f 75 6c 3e 0d  ins all...</ul>.
5850: 0a 3c 68 33 3e 4e 65 77 20 61 75 78 69 6c 69 61  .<h3>New auxilia
5860: 72 79 20 53 51 4c 20 66 75 6e 63 74 69 6f 6e 73  ry SQL functions
5870: 20 73 70 65 63 69 66 69 63 61 6c 6c 79 20 73 75   specifically su
5880: 70 70 6f 72 74 69 6e 67 20 50 52 4f 4a 2e 36 3c  pporting PROJ.6<
5890: 2f 68 33 3e 0d 0a 3c 74 61 62 6c 65 20 63 65 6c  /h3>..<table cel
58a0: 6c 73 70 61 63 69 6e 67 3d 22 38 22 20 63 65 6c  lspacing="8" cel
58b0: 6c 70 61 64 64 69 6e 67 3d 22 38 22 20 62 67 63  lpadding="8" bgc
58c0: 6f 6c 6f 72 3d 22 23 65 38 66 66 65 38 22 20 62  olor="#e8ffe8" b
58d0: 6f 72 64 65 72 3d 22 31 22 3e 0d 0a 3c 74 72 3e  order="1">..<tr>
58e0: 3c 74 68 20 62 67 63 6f 6c 6f 72 3d 22 23 66 66  <th bgcolor="#ff
58f0: 62 30 33 65 22 3e 53 51 4c 20 46 75 6e 63 74 69  b03e">SQL Functi
5900: 6f 6e 3c 2f 74 68 3e 3c 74 68 20 62 67 63 6f 6c  on</th><th bgcol
5910: 6f 72 3d 22 23 66 66 62 30 33 65 22 3e 53 75 70  or="#ffb03e">Sup
5920: 70 6f 72 74 65 64 20 61 72 67 75 6d 65 6e 74 73  ported arguments
5930: 3c 2f 74 68 3e 3c 74 68 20 62 67 63 6f 6c 6f 72  </th><th bgcolor
5940: 3d 22 23 66 66 62 30 33 65 22 3e 44 65 73 63 72  ="#ffb03e">Descr
5950: 69 70 74 69 6f 6e 3c 2f 74 68 3e 3c 2f 74 72 3e  iption</th></tr>
5960: 0d 0a 3c 74 72 3e 3c 74 64 3e 3c 62 3e 48 61 73  ..<tr><td><b>Has
5970: 50 72 6f 6a 36 3c 2f 62 3e 28 20 3c 69 3e 76 6f  Proj6</b>( <i>vo
5980: 69 64 3c 2f 69 3e 20 29 20 3a 20 3c 69 3e 42 6f  id</i> ) : <i>Bo
5990: 6f 6c 65 61 6e 3c 2f 69 3e 3c 2f 74 64 3e 0d 0a  olean</i></td>..
59a0: 3c 74 64 3e 4e 6f 6e 65 3c 2f 74 64 3e 0d 0a 3c  <td>None</td>..<
59b0: 74 64 3e 57 69 6c 6c 20 72 65 74 75 72 6e 20 3c  td>Will return <
59c0: 62 3e 31 3c 2f 62 3e 20 28 3c 62 3e 54 52 55 45  b>1</b> (<b>TRUE
59d0: 3c 2f 62 3e 29 20 69 66 20 74 68 65 20 6c 69 62  </b>) if the lib
59e0: 72 61 72 79 20 68 61 73 20 62 65 65 6e 20 62 75  rary has been bu
59f0: 69 6c 74 20 6f 6e 20 3c 62 3e 50 52 4f 4a 2e 36  ilt on <b>PROJ.6
5a00: 3c 2f 62 3e 20 28 6f 72 20 61 6e 79 20 6c 61 74  </b> (or any lat
5a10: 65 72 20 76 65 72 73 69 6f 6e 29 2c 20 6f 74 68  er version), oth
5a20: 65 72 77 69 73 65 20 3c 62 3e 30 3c 2f 62 3e 20  erwise <b>0</b> 
5a30: 28 3c 62 3e 46 41 4c 53 45 3c 2f 62 3e 29 2e 3c  (<b>FALSE</b>).<
5a40: 2f 74 64 3e 3c 2f 74 72 3e 0d 0a 3c 74 72 3e 3c  /td></tr>..<tr><
5a50: 74 64 3e 3c 62 3e 50 52 4f 4a 5f 47 65 74 4c 61  td><b>PROJ_GetLa
5a60: 73 74 45 72 72 6f 72 4d 73 67 3c 2f 62 3e 28 20  stErrorMsg</b>( 
5a70: 3c 69 3e 76 6f 69 64 3c 2f 69 3e 20 29 20 3a 20  <i>void</i> ) : 
5a80: 3c 69 3e 53 74 72 69 6e 67 3c 2f 69 3e 3c 2f 74  <i>String</i></t
5a90: 64 3e 0d 0a 3c 74 64 3e 4e 6f 6e 65 3c 2f 74 64  d>..<td>None</td
5aa0: 3e 0d 0a 3c 74 64 3e 57 69 6c 6c 20 72 65 74 75  >..<td>Will retu
5ab0: 72 6e 20 74 68 65 20 6d 6f 73 74 20 72 65 63 65  rn the most rece
5ac0: 6e 74 20 65 72 72 6f 72 20 6d 65 73 73 61 67 65  nt error message
5ad0: 20 72 65 74 75 72 6e 65 64 20 62 79 20 50 52 4f   returned by PRO
5ae0: 4a 20 28 69 66 20 61 6e 79 29 2e 3c 62 72 3e 0d  J (if any).<br>.
5af0: 0a 3c 62 3e 4e 55 4c 4c 3c 2f 62 3e 20 77 69 6c  .<b>NULL</b> wil
5b00: 6c 20 62 65 20 72 65 74 75 72 6e 65 64 20 69 66  l be returned if
5b10: 20 74 68 65 72 65 20 69 73 20 6e 6f 20 63 75 72   there is no cur
5b20: 65 6e 74 6c 79 20 70 65 6e 64 69 6e 67 20 50 52  ently pending PR
5b30: 4f 4a 20 65 72 72 6f 72 2e 3c 2f 74 64 3e 3c 2f  OJ error.</td></
5b40: 74 72 3e 0d 0a 3c 74 72 3e 3c 74 64 3e 3c 62 3e  tr>..<tr><td><b>
5b50: 50 52 4f 4a 5f 47 65 74 44 61 74 61 62 61 73 65  PROJ_GetDatabase
5b60: 50 61 74 68 3c 2f 62 3e 28 20 3c 69 3e 76 6f 69  Path</b>( <i>voi
5b70: 64 3c 2f 69 3e 20 3a 20 3c 69 3e 53 74 72 69 6e  d</i> : <i>Strin
5b80: 67 3c 2f 69 3e 29 3c 2f 74 64 3e 0d 0a 3c 74 64  g</i>)</td>..<td
5b90: 3e 4e 6f 6e 65 3c 2f 74 64 3e 0d 0a 3c 74 64 3e  >None</td>..<td>
5ba0: 57 69 6c 6c 20 72 65 74 75 72 6e 20 74 68 65 20  Will return the 
5bb0: 63 75 72 72 65 6e 74 6c 79 20 73 65 74 20 70 61  currently set pa
5bc0: 74 68 6e 61 6d 65 20 6c 65 61 64 69 6e 67 20 74  thname leading t
5bd0: 6f 20 74 68 65 20 70 72 69 76 61 74 65 20 50 52  o the private PR
5be0: 4f 4a 27 73 20 53 51 4c 69 74 65 20 64 61 74 61  OJ's SQLite data
5bf0: 62 61 73 65 2e 3c 62 72 3e 0d 0a 3c 62 3e 4e 55  base.<br>..<b>NU
5c00: 4c 4c 3c 2f 62 3e 20 77 69 6c 6c 20 62 65 20 72  LL</b> will be r
5c10: 65 74 75 72 6e 65 64 20 69 66 20 74 68 65 72 65  eturned if there
5c20: 20 69 73 20 6e 6f 20 70 72 69 76 61 74 65 20 50   is no private P
5c30: 52 4f 4a 27 73 20 53 51 4c 69 74 65 20 64 61 74  ROJ's SQLite dat
5c40: 61 62 61 73 65 20 63 75 72 72 65 6e 74 6c 79 20  abase currently 
5c50: 63 6f 6e 6e 65 63 74 65 64 2e 3c 2f 74 64 3e 3c  connected.</td><
5c60: 2f 74 72 3e 0d 0a 3c 74 72 3e 3c 74 64 3e 3c 62  /tr>..<tr><td><b
5c70: 3e 50 52 4f 4a 5f 53 65 74 44 61 74 61 62 61 73  >PROJ_SetDatabas
5c80: 65 50 61 74 68 3c 2f 62 3e 20 28 20 6e 65 77 5f  ePath</b> ( new_
5c90: 70 61 74 68 20 3c 69 3e 53 74 72 69 6e 67 3c 2f  path <i>String</
5ca0: 69 3e 20 29 20 3a 20 3c 69 3e 53 74 72 69 6e 67  i> ) : <i>String
5cb0: 3c 2f 69 3e 3c 2f 74 64 3e 0d 0a 3c 74 64 3e 0d  </i></td>..<td>.
5cc0: 0a 3c 75 6c 3e 0d 0a 3c 6c 69 3e 3c 62 3e 6e 65  .<ul>..<li><b>ne
5cd0: 77 5f 70 61 74 68 3c 2f 62 3e 3a 20 61 20 72 65  w_path</b>: a re
5ce0: 6c 61 74 69 76 65 20 6f 72 20 61 62 73 6f 6c 75  lative or absolu
5cf0: 74 65 20 70 61 74 68 6e 61 6d 65 20 6c 65 61 64  te pathname lead
5d00: 69 6e 67 20 74 6f 20 61 20 76 61 6c 69 64 20 50  ing to a valid P
5d10: 52 4f 4a 27 73 20 53 51 4c 69 74 65 20 64 61 74  ROJ's SQLite dat
5d20: 61 62 61 73 65 2e 3c 2f 6c 69 3e 0d 0a 3c 2f 75  abase.</li>..</u
5d30: 6c 3e 3c 2f 74 64 3e 0d 0a 3c 74 64 3e 57 69 6c  l></td>..<td>Wil
5d40: 6c 20 63 68 61 6e 67 65 20 74 68 65 20 63 75 72  l change the cur
5d50: 72 65 6e 74 6c 79 20 73 65 74 20 70 61 74 68 6e  rently set pathn
5d60: 61 6d 65 20 6c 65 61 64 69 6e 67 20 74 6f 20 74  ame leading to t
5d70: 68 65 20 70 72 69 76 61 74 65 20 50 52 4f 4a 27  he private PROJ'
5d80: 73 20 53 51 4c 69 74 65 20 64 61 74 61 62 61 73  s SQLite databas
5d90: 65 2e 3c 62 72 3e 0d 0a 3c 62 3e 4e 55 4c 4c 3c  e.<br>..<b>NULL<
5da0: 2f 62 3e 20 77 69 6c 6c 20 62 65 20 72 65 74 75  /b> will be retu
5db0: 72 6e 65 64 20 69 66 20 74 68 65 20 70 61 73 73  rned if the pass
5dc0: 65 64 20 70 61 74 68 20 69 73 20 69 6e 76 61 6c  ed path is inval
5dd0: 69 64 2c 20 6f 74 68 65 72 77 69 73 65 20 74 68  id, otherwise th
5de0: 65 20 70 61 74 68 20 6f 66 20 74 68 65 20 63 75  e path of the cu
5df0: 72 72 65 6e 74 6c 79 20 73 65 74 20 70 72 69 76  rrently set priv
5e00: 61 74 65 20 50 52 4f 4a 27 73 20 53 51 4c 69 74  ate PROJ's SQLit
5e10: 65 20 64 61 74 61 62 61 73 65 20 77 69 6c 6c 20  e database will 
5e20: 62 65 20 72 65 74 75 72 6e 65 64 2e 3c 2f 74 64  be returned.</td
5e30: 3e 3c 2f 74 72 3e 0d 0a 3c 74 72 3e 3c 74 64 3e  ></tr>..<tr><td>
5e40: 3c 62 3e 50 52 4f 4a 5f 41 73 57 4b 54 3c 2f 62  <b>PROJ_AsWKT</b
5e50: 3e 20 28 20 61 75 74 68 5f 6e 61 6d 65 20 3c 69  > ( auth_name <i
5e60: 3e 53 74 72 69 6e 67 3c 2f 69 3e 20 2c 20 61 75  >String</i> , au
5e70: 74 68 5f 73 72 69 64 20 3c 69 3e 49 6e 74 65 67  th_srid <i>Integ
5e80: 65 72 3c 2f 69 3e 20 29 20 3a 20 3c 69 3e 53 74  er</i> ) : <i>St
5e90: 72 69 6e 67 3c 2f 69 3e 3c 68 72 3e 0d 0a 3c 62  ring</i><hr>..<b
5ea0: 3e 50 52 4f 4a 5f 41 73 57 4b 54 3c 2f 62 3e 20  >PROJ_AsWKT</b> 
5eb0: 28 20 61 75 74 68 5f 6e 61 6d 65 20 3c 69 3e 53  ( auth_name <i>S
5ec0: 74 72 69 6e 67 3c 2f 69 3e 20 2c 20 61 75 74 68  tring</i> , auth
5ed0: 5f 73 72 69 64 20 3c 69 3e 49 6e 74 65 67 65 72  _srid <i>Integer
5ee0: 3c 2f 69 3e 20 2c 20 77 6b 74 5f 73 74 79 6c 65  </i> , wkt_style
5ef0: 20 3c 69 3e 53 74 72 69 6e 67 3c 2f 69 3e 20 29   <i>String</i> )
5f00: 20 3a 20 3c 69 3e 53 74 72 69 6e 67 3c 2f 69 3e   : <i>String</i>
5f10: 3c 68 72 3e 0d 0a 3c 62 3e 50 52 4f 4a 5f 41 73  <hr>..<b>PROJ_As
5f20: 57 4b 54 3c 2f 62 3e 20 28 20 61 75 74 68 5f 6e  WKT</b> ( auth_n
5f30: 61 6d 65 20 3c 69 3e 53 74 72 69 6e 67 3c 2f 69  ame <i>String</i
5f40: 3e 20 2c 20 61 75 74 68 5f 73 72 69 64 20 3c 69  > , auth_srid <i
5f50: 3e 49 6e 74 65 67 65 72 3c 2f 69 3e 20 2c 20 77  >Integer</i> , w
5f60: 6b 74 5f 73 74 79 6c 65 20 3c 69 3e 53 74 72 69  kt_style <i>Stri
5f70: 6e 67 3c 2f 69 3e 20 2c 20 69 6e 64 65 6e 74 65  ng</i> , indente
5f80: 64 20 3c 69 3e 42 6f 6f 6c 65 61 6e 3c 2f 69 3e  d <i>Boolean</i>
5f90: 20 29 20 3a 20 3c 69 3e 53 74 72 69 6e 67 3c 2f   ) : <i>String</
5fa0: 69 3e 3c 68 72 3e 0d 0a 3c 62 3e 50 52 4f 4a 5f  i><hr>..<b>PROJ_
5fb0: 41 73 57 4b 54 3c 2f 62 3e 20 28 20 61 75 74 68  AsWKT</b> ( auth
5fc0: 5f 6e 61 6d 65 20 3c 69 3e 53 74 72 69 6e 67 3c  _name <i>String<
5fd0: 2f 69 3e 20 2c 20 61 75 74 68 5f 73 72 69 64 20  /i> , auth_srid 
5fe0: 3c 69 3e 49 6e 74 65 67 65 72 3c 2f 69 3e 20 2c  <i>Integer</i> ,
5ff0: 20 77 6b 74 5f 73 74 79 6c 65 20 3c 69 3e 53 74   wkt_style <i>St
6000: 72 69 6e 67 3c 2f 69 3e 20 2c 20 69 6e 64 65 6e  ring</i> , inden
6010: 74 65 64 20 3c 69 3e 42 6f 6f 6c 65 61 6e 3c 2f  ted <i>Boolean</
6020: 69 3e 20 2c 20 69 6e 64 65 6e 74 61 74 69 6f 6e  i> , indentation
6030: 20 3c 69 3e 49 6e 74 65 67 65 72 3c 2f 69 3e 20   <i>Integer</i> 
6040: 29 20 3a 20 3c 69 3e 53 74 72 69 6e 67 3c 2f 69  ) : <i>String</i
6050: 3e 3c 2f 74 64 3e 0d 0a 3c 74 64 3e 3c 75 6c 3e  ></td>..<td><ul>
6060: 0d 0a 3c 6c 69 3e 3c 62 3e 61 75 74 68 5f 6e 61  ..<li><b>auth_na
6070: 6d 65 3c 2f 62 3e 20 61 6e 64 20 3c 62 3e 61 75  me</b> and <b>au
6080: 74 68 5f 73 72 69 64 3c 2f 62 3e 20 69 64 65 6e  th_srid</b> iden
6090: 74 69 66 79 20 74 68 65 20 69 6e 74 65 6e 64 65  tify the intende
60a0: 64 20 43 52 53 2e 3c 62 72 3e 0d 0a 3c 62 3e 61  d CRS.<br>..<b>a
60b0: 75 74 68 5f 6e 61 6d 65 3c 2f 62 3e 20 63 61 6e  uth_name</b> can
60c0: 20 62 65 20 3c 62 3e 4e 55 4c 4c 3c 2f 62 3e 2c   be <b>NULL</b>,
60d0: 20 61 6e 64 20 69 6e 20 74 68 69 73 20 63 61 73   and in this cas
60e0: 65 20 3c 62 3e 45 50 53 47 3c 2f 62 3e 20 77 69  e <b>EPSG</b> wi
60f0: 6c 6c 20 62 65 20 61 73 73 75 6d 65 64 2e 3c 2f  ll be assumed.</
6100: 6c 69 3e 0d 0a 3c 6c 69 3e 74 68 65 20 6f 70 74  li>..<li>the opt
6110: 69 6f 6e 61 6c 20 61 72 67 75 6d 65 6e 74 20 3c  ional argument <
6120: 62 3e 73 74 79 6c 65 3c 2f 62 3e 20 64 65 74 65  b>style</b> dete
6130: 72 6d 69 6e 65 73 20 77 68 69 63 68 20 73 70 65  rmines which spe
6140: 63 69 66 69 63 20 57 4b 54 20 66 6f 72 6d 61 74  cific WKT format
6150: 20 73 68 6f 75 6c 64 20 62 65 20 61 64 6f 70 74   should be adopt
6160: 65 64 2c 20 61 6e 64 20 6d 75 73 74 20 62 65 20  ed, and must be 
6170: 6f 6e 65 20 62 65 74 77 65 65 6e 20 3c 62 3e 47  one between <b>G
6180: 44 41 4c 3c 2f 62 3e 2c 20 3c 62 3e 45 53 52 49  DAL</b>, <b>ESRI
6190: 3c 2f 62 3e 2c 20 3c 62 3e 49 53 4f 2d 32 30 31  </b>, <b>ISO-201
61a0: 35 3c 2f 62 3e 20 6f 72 20 3c 62 3e 49 53 4f 2d  5</b> or <b>ISO-
61b0: 32 30 31 38 3c 2f 62 3e 20 28 74 68 69 73 20 6c  2018</b> (this l
61c0: 61 74 74 65 72 20 62 65 69 6e 67 20 74 68 65 20  atter being the 
61d0: 64 65 66 61 75 6c 74 20 73 65 74 74 69 6e 67 29  default setting)
61e0: 2e 3c 2f 6c 69 3e 0d 0a 3c 6c 69 3e 74 68 65 20  .</li>..<li>the 
61f0: 6f 70 74 69 6f 6e 61 6c 20 61 72 67 75 6d 65 6e  optional argumen
6200: 74 20 3c 62 3e 69 6e 64 65 6e 74 65 64 3c 2f 62  t <b>indented</b
6210: 3e 20 69 66 20 73 65 74 20 74 6f 20 3c 62 3e 54  > if set to <b>T
6220: 52 55 45 3c 2f 62 3e 20 77 69 6c 6c 20 6e 69 63  RUE</b> will nic
6230: 65 6c 79 20 66 6f 72 6d 61 74 20 61 20 6d 75 6c  ely format a mul
6240: 74 69 6c 69 6e 65 20 57 4b 54 20 65 78 70 72 65  tiline WKT expre
6250: 73 73 69 6f 6e 2c 20 6f 74 68 65 72 77 69 73 65  ssion, otherwise
6260: 20 61 20 73 69 6e 67 6c 65 20 6d 6f 6e 6f 6c 69   a single monoli
6270: 74 68 69 63 20 6c 69 6e 65 20 6c 61 63 6b 69 6e  thic line lackin
6280: 67 20 61 6e 79 20 77 68 69 74 65 2d 73 70 61 63  g any white-spac
6290: 65 20 6f 72 20 6e 65 77 2d 6c 69 6e 65 20 77 69  e or new-line wi
62a0: 6c 6c 20 62 65 20 70 72 69 6e 74 65 64 20 28 74  ll be printed (t
62b0: 68 65 20 64 65 66 61 75 6c 74 20 69 73 20 3c 62  he default is <b
62c0: 3e 54 52 55 45 3c 2f 62 3e 29 2e 3c 2f 6c 69 3e  >TRUE</b>).</li>
62d0: 0d 0a 3c 6c 69 3e 74 68 65 20 6f 70 74 69 6f 6e  ..<li>the option
62e0: 61 6c 20 61 72 67 75 6d 65 6e 74 20 3c 62 3e 69  al argument <b>i
62f0: 6e 64 65 6e 74 61 74 69 6f 6e 3c 2f 62 3e 20 64  ndentation</b> d
6300: 65 74 65 72 6d 69 6e 65 73 20 68 6f 77 20 6d 61  etermines how ma
6310: 6e 79 20 77 68 69 74 65 2d 73 70 61 63 65 73 20  ny white-spaces 
6320: 61 72 65 20 74 6f 20 62 65 20 75 73 65 64 20 66  are to be used f
6330: 6f 72 20 69 6e 64 65 6e 74 69 6e 67 20 28 6f 6e  or indenting (on
6340: 6c 79 20 6d 65 61 6e 69 6e 67 66 75 6c 20 69 66  ly meaningful if
6350: 20 3c 62 3e 3c 69 3e 69 6e 64 65 6e 74 65 64 3d   <b><i>indented=
6360: 54 52 55 45 3c 2f 69 3e 3c 2f 62 3e 3b 20 74 68  TRUE</i></b>; th
6370: 65 20 64 65 66 61 75 6c 74 20 76 61 6c 75 65 73  e default values
6380: 20 69 73 20 3c 62 3e 34 3c 2f 62 3e 29 2e 3c 2f   is <b>4</b>).</
6390: 6c 69 3e 0d 0a 3c 2f 75 6c 3e 3c 2f 74 64 3e 0d  li>..</ul></td>.
63a0: 0a 3c 74 64 3e 57 69 6c 6c 20 72 65 74 75 72 6e  .<td>Will return
63b0: 20 74 68 65 20 57 4b 54 20 65 78 70 72 65 73 73   the WKT express
63c0: 69 6f 6e 20 63 6f 72 72 65 73 70 6f 6e 64 69 6e  ion correspondin
63d0: 67 20 74 6f 20 61 20 67 69 76 65 6e 20 43 52 53  g to a given CRS
63e0: 3b 20 74 68 65 20 64 65 66 69 6e 69 74 69 6f 6e  ; the definition
63f0: 73 20 77 69 6c 6c 20 62 65 20 74 61 6b 65 6e 20  s will be taken 
6400: 64 69 72 65 63 74 6c 79 20 66 72 6f 6d 20 74 68  directly from th
6410: 65 20 70 72 69 76 61 74 65 20 50 52 4f 4a 27 73  e private PROJ's
6420: 20 6f 77 6e 20 64 61 74 61 62 61 73 65 2e 3c 62   own database.<b
6430: 72 3e 0d 0a 3c 62 3e 4e 55 4c 4c 3c 2f 62 3e 20  r>..<b>NULL</b> 
6440: 77 69 6c 6c 20 62 65 20 72 65 74 75 72 6e 65 64  will be returned
6450: 20 6f 6e 20 66 61 69 6c 75 72 65 20 6f 72 20 6f   on failure or o
6460: 6e 20 69 6e 76 61 6c 69 64 20 61 72 67 75 6d 65  n invalid argume
6470: 6e 74 73 2e 3c 2f 74 64 3e 3c 2f 74 72 3e 0d 0a  nts.</td></tr>..
6480: 3c 74 72 3e 3c 74 64 3e 3c 62 3e 50 52 4f 4a 5f  <tr><td><b>PROJ_
6490: 47 75 65 73 73 53 72 69 64 46 72 6f 6d 57 4b 54  GuessSridFromWKT
64a0: 3c 2f 62 3e 20 28 20 77 6b 74 5f 65 78 70 72 20  </b> ( wkt_expr 
64b0: 3c 69 3e 53 74 72 69 6e 67 3c 2f 69 3e 20 29 20  <i>String</i> ) 
64c0: 3a 20 3c 69 3e 49 6e 74 65 67 65 72 3c 2f 69 3e  : <i>Integer</i>
64d0: 3c 2f 74 64 3e 0d 0a 3c 74 64 3e 3c 75 6c 3e 0d  </td>..<td><ul>.
64e0: 0a 3c 6c 69 3e 3c 62 3e 77 6b 74 5f 65 78 70 72  .<li><b>wkt_expr
64f0: 3c 2f 62 3e 3a 20 74 68 65 20 57 4b 54 20 65 78  </b>: the WKT ex
6500: 70 72 65 73 73 69 6f 6e 20 74 6f 20 62 65 20 65  pression to be e
6510: 76 61 6c 75 61 74 65 64 2e 3c 2f 6c 69 3e 0d 0a  valuated.</li>..
6520: 3c 2f 75 6c 3e 3c 2f 74 64 3e 0d 0a 3c 74 64 3e  </ul></td>..<td>
6530: 0d 0a 57 69 6c 6c 20 70 6f 73 73 69 62 6c 79 20  ..Will possibly 
6540: 72 65 74 75 72 6e 20 74 68 65 20 3c 62 3e 53 52  return the <b>SR
6550: 49 44 20 76 61 6c 75 65 3c 2f 62 3e 20 63 6f 72  ID value</b> cor
6560: 72 65 73 70 6f 6e 64 69 6e 67 20 74 6f 20 61 20  responding to a 
6570: 67 69 76 65 6e 20 57 4b 54 20 65 78 70 72 65 73  given WKT expres
6580: 73 69 6f 6e 20 64 65 66 69 6e 69 6e 67 20 61 20  sion defining a 
6590: 43 52 53 2e 3c 62 72 3e 0d 0a 3c 62 3e 2d 31 3c  CRS.<br>..<b>-1<
65a0: 2f 62 3e 20 77 69 6c 6c 20 62 65 20 72 65 74 75  /b> will be retu
65b0: 72 6e 65 64 20 69 66 20 6e 6f 20 43 52 53 20 73  rned if no CRS s
65c0: 75 70 70 6f 72 74 65 64 20 62 79 20 50 52 4f 4a  upported by PROJ
65d0: 2e 36 20 6d 61 74 63 68 65 73 20 74 68 65 20 57  .6 matches the W
65e0: 4b 54 20 65 78 70 72 65 73 73 69 6f 6e 2e 3c 62  KT expression.<b
65f0: 72 3e 0d 0a 3c 62 3e 4e 55 4c 4c 3c 2f 62 3e 20  r>..<b>NULL</b> 
6600: 77 69 6c 6c 20 62 65 20 72 65 74 75 72 6e 65 64  will be returned
6610: 20 6f 6e 20 69 6e 76 61 6c 69 64 20 61 72 67 75   on invalid argu
6620: 6d 65 6e 74 2e 0d 0a 3c 2f 74 64 3e 3c 2f 74 72  ment...</td></tr
6630: 3e 0d 0a 3c 74 72 3e 3c 74 64 3e 3c 62 3e 50 52  >..<tr><td><b>PR
6640: 4f 4a 5f 47 75 65 73 73 53 72 69 64 46 72 6f 6d  OJ_GuessSridFrom
6650: 53 48 50 3c 2f 62 3e 20 28 20 66 69 6c 65 6e 61  SHP</b> ( filena
6660: 6d 65 20 3c 69 3e 53 74 72 69 6e 67 3c 2f 69 3e  me <i>String</i>
6670: 20 29 20 3a 20 3c 69 3e 49 6e 74 65 67 65 72 3c   ) : <i>Integer<
6680: 2f 69 3e 3c 2f 74 64 3e 0d 0a 3c 74 64 3e 3c 75  /i></td>..<td><u
6690: 6c 3e 0d 0a 3c 6c 69 3e 3c 62 3e 66 69 6c 65 6e  l>..<li><b>filen
66a0: 61 6d 65 3c 2f 62 3e 3a 20 74 68 65 20 61 62 73  ame</b>: the abs
66b0: 6f 6c 75 74 65 20 6f 72 20 72 65 6c 61 74 69 76  olute or relativ
66c0: 65 20 70 61 74 68 20 6c 65 61 64 69 6e 67 20 74  e path leading t
66d0: 6f 20 73 6f 6d 65 20 53 68 61 70 65 66 69 6c 65  o some Shapefile
66e0: 2e 3c 62 72 3e 0d 0a 4e 6f 74 65 3a 20 65 78 61  .<br>..Note: exa
66f0: 63 74 6c 65 79 20 61 73 20 72 65 71 75 69 72 65  ctley as require
6700: 64 20 62 79 20 3c 62 3e 3c 69 3e 49 6d 70 6f 72  d by <b><i>Impor
6710: 74 53 48 50 3c 2f 69 3e 3c 2f 62 3e 28 29 20 3c  tSHP</i></b>() <
6720: 62 3e 3c 69 3e 66 69 6c 65 6e 61 6d 65 3c 2f 69  b><i>filename</i
6730: 3e 3c 2f 62 3e 20 6d 75 73 74 20 6f 6d 69 74 20  ></b> must omit 
6740: 61 6e 79 20 3c 62 3e 2e 73 68 70 3c 2f 62 3e 2c  any <b>.shp</b>,
6750: 20 3c 62 3e 2e 73 68 78 3c 2f 62 3e 2c 20 3c 62   <b>.shx</b>, <b
6760: 3e 2e 64 62 66 3c 2f 62 3e 20 6f 72 20 3c 62 3e  >.dbf</b> or <b>
6770: 2e 70 72 6a 3c 2f 62 3e 20 73 75 66 66 69 78 2e  .prj</b> suffix.
6780: 3c 2f 6c 69 3e 0d 0a 3c 2f 75 6c 3e 3c 2f 74 64  </li>..</ul></td
6790: 3e 0d 0a 3c 74 64 3e 0d 0a 57 69 6c 6c 20 70 6f  >..<td>..Will po
67a0: 73 73 69 62 6c 79 20 72 65 74 75 72 6e 20 74 68  ssibly return th
67b0: 65 20 3c 62 3e 53 52 49 44 20 76 61 6c 75 65 3c  e <b>SRID value<
67c0: 2f 62 3e 20 63 6f 72 72 65 73 70 6f 6e 64 69 6e  /b> correspondin
67d0: 67 20 74 6f 20 74 68 65 20 43 52 53 20 64 65 66  g to the CRS def
67e0: 69 6e 65 64 20 62 79 20 74 68 65 20 2e 50 52 4a  ined by the .PRJ
67f0: 20 6d 65 6d 62 65 72 20 6f 66 20 74 68 65 20 53   member of the S
6800: 68 61 70 65 66 69 6c 65 2e 3c 62 72 3e 0d 0a 3c  hapefile.<br>..<
6810: 62 3e 2d 31 3c 2f 62 3e 20 77 69 6c 6c 20 62 65  b>-1</b> will be
6820: 20 72 65 74 75 72 6e 65 64 20 69 66 20 6e 6f 20   returned if no 
6830: 43 52 53 20 73 75 70 70 6f 72 74 65 64 20 62 79  CRS supported by
6840: 20 50 52 4f 4a 2e 36 20 6d 61 74 63 68 65 73 20   PROJ.6 matches 
6850: 50 52 4a 20 6d 65 6d 62 65 72 20 6f 66 20 74 68  PRJ member of th
6860: 65 20 53 68 61 70 65 66 69 6c 65 2e 3c 62 72 3e  e Shapefile.<br>
6870: 0d 0a 3c 62 3e 4e 55 4c 4c 3c 2f 62 3e 20 77 69  ..<b>NULL</b> wi
6880: 6c 6c 20 62 65 20 72 65 74 75 72 6e 65 64 20 6f  ll be returned o
6890: 6e 20 69 6e 76 61 6c 69 64 20 61 72 67 75 6d 65  n invalid argume
68a0: 6e 74 2e 3c 68 72 3e 0d 0a 3c 75 3e 50 6c 65 61  nt.<hr>..<u>Plea
68b0: 73 65 20 6e 6f 74 65 20 77 65 6c 6c 3c 2f 75 3e  se note well</u>
68c0: 3a 20 74 68 69 73 20 53 51 4c 20 66 75 6e 63 74  : this SQL funct
68d0: 69 6f 6e 20 6f 70 65 6e 64 20 74 68 65 20 64 6f  ion opend the do
68e0: 6f 72 20 74 6f 20 6d 61 6e 79 20 70 6f 74 65 6e  or to many poten
68f0: 74 69 61 6c 20 73 65 63 75 72 69 74 79 20 69 73  tial security is
6900: 73 75 65 73 2c 20 61 6e 64 20 74 68 75 73 20 69  sues, and thus i
6910: 73 20 61 6c 77 61 79 73 20 3c 69 3e 64 69 73 61  s always <i>disa
6920: 62 6c 65 64 20 62 79 20 64 65 66 61 75 6c 74 3c  bled by default<
6930: 2f 69 3e 2e 3c 62 72 3e 0d 0a 45 78 70 6c 69 63  /i>.<br>..Explic
6940: 69 74 6c 79 20 73 65 74 74 69 6e 67 20 74 68 65  itly setting the
6950: 20 65 6e 76 69 72 6f 6e 6d 65 6e 74 20 76 61 72   environment var
6960: 69 61 62 6c 65 20 3c 62 3e 53 50 41 54 49 41 4c  iable <b>SPATIAL
6970: 49 54 45 5f 53 45 43 55 52 49 54 59 3d 72 65 6c  ITE_SECURITY=rel
6980: 61 78 65 64 3c 2f 62 3e 20 69 73 20 61 62 73 6f  axed</b> is abso
6990: 6c 75 74 65 6c 79 20 72 65 71 75 69 72 65 64 20  lutely required 
69a0: 69 6e 20 6f 72 64 65 72 20 74 6f 20 65 6e 61 62  in order to enab
69b0: 6c 65 20 74 68 69 73 20 66 75 6e 63 74 69 6f 6e  le this function
69c0: 2e 0d 0a 3c 2f 74 64 3e 3c 2f 74 72 3e 0d 0a 3c  ...</td></tr>..<
69d0: 2f 74 61 62 6c 65 3e 3c 62 72 3e 0d 0a 3c 74 61  /table><br>..<ta
69e0: 62 6c 65 20 63 65 6c 6c 73 70 61 63 69 6e 67 3d  ble cellspacing=
69f0: 22 38 22 20 63 65 6c 6c 70 61 64 64 69 6e 67 3d  "8" cellpadding=
6a00: 22 31 36 22 20 62 67 63 6f 6c 6f 72 3d 22 23 66  "16" bgcolor="#f
6a10: 66 66 66 65 39 22 3e 0d 0a 3c 74 72 3e 3c 74 64  fffe9">..<tr><td
6a20: 3e 0d 0a 3c 62 3e 3c 75 3e 4e 6f 74 65 3c 2f 75  >..<b><u>Note</u
6a30: 3e 3c 2f 62 3e 3a 20 61 6c 6c 20 74 68 65 20 61  ></b>: all the a
6a40: 62 6f 76 65 20 53 51 4c 20 46 75 6e 63 74 69 6f  bove SQL Functio
6a50: 6e 73 20 77 69 6c 6c 20 62 65 20 61 76 61 69 6c  ns will be avail
6a60: 61 62 6c 65 20 6f 6e 6c 79 20 77 68 65 6e 20 53  able only when S
6a70: 70 61 74 69 61 6c 69 74 65 2d 35 2e 30 2e 30 20  patialite-5.0.0 
6a80: 68 61 73 20 62 65 65 6e 20 62 75 69 6c 74 20 61  has been built a
6a90: 67 61 69 6e 73 74 20 3c 62 3e 50 52 4f 4a 2e 36  gainst <b>PROJ.6
6aa0: 3c 2f 62 3e 20 28 6f 72 20 61 6e 79 20 73 75 62  </b> (or any sub
6ab0: 73 65 71 75 65 6e 74 20 76 65 72 73 69 6f 6e 29  sequent version)
6ac0: 2e 3c 62 72 3e 0d 0a 49 66 20 53 70 61 74 69 61  .<br>..If Spatia
6ad0: 4c 69 74 65 2d 35 2e 30 2e 30 20 68 61 73 20 62  Lite-5.0.0 has b
6ae0: 65 65 6e 20 62 75 69 6c 74 20 69 6e 73 74 65 61  een built instea
6af0: 64 20 61 67 61 69 6e 73 74 20 61 6e 79 20 70 72  d against any pr
6b00: 65 76 69 6f 73 75 73 20 76 65 72 73 69 6f 6e 20  eviosus version 
6b10: 28 61 73 20 65 2e 67 2e 20 3c 62 3e 50 52 4f 4a  (as e.g. <b>PROJ
6b20: 2e 34 3c 2f 62 3e 29 20 61 6e 79 20 61 74 74 65  .4</b>) any atte
6b30: 6d 70 74 20 74 6f 20 63 61 6c 6c 20 6f 6e 65 20  mpt to call one 
6b40: 6f 66 20 74 68 65 73 65 20 53 51 4c 20 46 75 6e  of these SQL Fun
6b50: 63 74 69 6f 6e 73 20 77 69 6c 6c 20 73 69 6d 70  ctions will simp
6b60: 6c 79 20 72 65 74 75 72 6e 20 61 20 3c 62 3e 3c  ly return a <b><
6b70: 69 3e 3c 75 3e 6e 6f 20 73 75 63 68 20 66 75 6e  i><u>no such fun
6b80: 63 74 69 6f 6e 3c 2f 75 3e 3c 2f 69 3e 3c 2f 62  ction</u></i></b
6b90: 3e 20 53 51 4c 20 65 72 72 6f 72 2e 0d 0a 3c 2f  > SQL error...</
6ba0: 74 64 3e 3c 2f 74 72 3e 0d 0a 3c 2f 74 61 62 6c  td></tr>..</tabl
6bb0: 65 3e 3c 62 72 3e 0d 0a 3c 62 3e 50 72 61 63 74  e><br>..<b>Pract
6bc0: 69 63 61 6c 20 65 78 61 6d 70 6c 65 73 3a 3c 2f  ical examples:</
6bd0: 62 3e 0d 0a 3c 76 65 72 62 61 74 69 6d 3e 0d 0a  b>..<verbatim>..
6be0: 53 45 4c 45 43 54 20 50 52 4f 4a 5f 47 65 74 44  SELECT PROJ_GetD
6bf0: 61 74 61 62 61 73 65 50 61 74 68 28 29 3b 20 20  atabasePath();  
6c00: 2d 2d 20 72 65 74 72 69 65 76 69 6e 67 20 74 68  -- retrieving th
6c10: 65 20 63 75 72 72 65 6e 74 6c 79 20 73 65 74 20  e currently set 
6c20: 50 52 4f 4a 27 73 20 6f 77 6e 20 64 61 74 61 62  PROJ's own datab
6c30: 61 73 65 0d 0a 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d  ase..-----------
6c40: 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d  ----------------
6c50: 2d 2d 2d 0d 0a 2f 75 73 72 2f 6c 6f 63 61 6c 2f  ---../usr/local/
6c60: 73 68 61 72 65 2f 70 72 6f 6a 2f 70 72 6f 6a 2e  share/proj/proj.
6c70: 64 62 0d 0a 0d 0a 53 45 4c 45 43 54 20 50 52 4f  db....SELECT PRO
6c80: 4a 5f 53 65 74 44 61 74 61 62 61 73 65 50 61 74  J_SetDatabasePat
6c90: 68 28 27 2f 68 6f 6d 65 2f 73 61 6e 64 72 6f 2f  h('/home/sandro/
6ca0: 6e 6f 74 5f 65 78 69 73 74 69 6e 67 5f 70 72 6f  not_existing_pro
6cb0: 6a 2e 64 62 27 29 3b 20 2d 2d 20 6e 6f 6e 20 65  j.db'); -- non e
6cc0: 78 69 73 74 69 6e 67 20 64 61 74 61 62 61 73 65  xisting database
6cd0: 0d 0a 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d  ..--------------
6ce0: 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d  ----------------
6cf0: 0d 0a 4e 55 4c 4c 0d 0a 0d 0a 53 45 4c 45 43 54  ..NULL....SELECT
6d00: 20 50 52 4f 4a 5f 47 65 74 4c 61 73 74 45 72 72   PROJ_GetLastErr
6d10: 6f 72 4d 73 67 28 29 3b 20 2d 2d 20 72 65 74 72  orMsg(); -- retr
6d20: 69 65 76 69 6e 67 20 74 68 65 20 66 61 69 6c 75  ieving the failu
6d30: 72 65 20 63 61 75 73 65 0d 0a 2d 2d 2d 2d 2d 2d  re cause..------
6d40: 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d  ----------------
6d50: 2d 2d 2d 2d 2d 2d 2d 2d 0d 0a 70 72 6f 6a 5f 63  --------..proj_c
6d60: 6f 6e 74 65 78 74 5f 73 65 74 5f 64 61 74 61 62  ontext_set_datab
6d70: 61 73 65 5f 70 61 74 68 3a 20 4f 70 65 6e 20 6f  ase_path: Open o
6d80: 66 20 2f 68 6f 6d 65 2f 73 61 6e 64 72 6f 2f 6e  f /home/sandro/n
6d90: 6f 74 5f 65 78 69 73 74 69 6e 67 5f 70 72 6f 6a  ot_existing_proj
6da0: 2e 64 62 20 66 61 69 6c 65 64 0d 0a 0d 0a 53 45  .db failed....SE
6db0: 4c 45 43 54 20 50 52 4f 4a 5f 53 65 74 44 61 74  LECT PROJ_SetDat
6dc0: 61 62 61 73 65 50 61 74 68 28 27 2f 68 6f 6d 65  abasePath('/home
6dd0: 2f 73 61 6e 64 72 6f 2f 76 61 6c 69 64 5f 70 72  /sandro/valid_pr
6de0: 6f 6a 2e 64 62 27 29 3b 20 2d 2d 20 76 61 6c 69  oj.db'); -- vali
6df0: 64 20 64 61 74 61 62 61 73 65 0d 0a 2d 2d 2d 2d  d database..----
6e00: 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d  ----------------
6e10: 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 0d 0a 2f 68 6f 6d  ----------../hom
6e20: 65 2f 73 61 6e 64 72 6f 2f 76 61 6c 69 64 5f 70  e/sandro/valid_p
6e30: 72 6f 6a 2e 64 62 0d 0a 0d 0a 53 45 4c 45 43 54  roj.db....SELECT
6e40: 20 50 52 4f 4a 5f 41 73 57 4b 54 28 27 45 50 53   PROJ_AsWKT('EPS
6e50: 47 27 2c 20 34 33 32 36 29 3b 20 2d 2d 20 64 65  G', 4326); -- de
6e60: 66 61 75 6c 74 20 73 65 74 74 69 6e 67 73 3a 20  fault settings: 
6e70: 49 53 4f 2d 32 30 31 38 20 73 74 79 6c 65 2c 20  ISO-2018 style, 
6e80: 69 6e 64 65 6e 74 65 64 20 77 69 74 68 20 69 6e  indented with in
6e90: 64 65 6e 74 61 74 69 6f 6e 20 34 0d 0a 2d 2d 2d  dentation 4..---
6ea0: 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d  ----------------
6eb0: 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 0d 0a 47 45 4f  -----------..GEO
6ec0: 44 43 52 53 5b 22 57 47 53 20 38 34 22 2c 0d 0a  DCRS["WGS 84",..
6ed0: 20 20 20 20 44 41 54 55 4d 5b 22 57 6f 72 6c 64      DATUM["World
6ee0: 20 47 65 6f 64 65 74 69 63 20 53 79 73 74 65 6d   Geodetic System
6ef0: 20 31 39 38 34 22 2c 0d 0a 20 20 20 20 20 20 20   1984",..       
6f00: 20 45 4c 4c 49 50 53 4f 49 44 5b 22 57 47 53 20   ELLIPSOID["WGS 
6f10: 38 34 22 2c 36 33 37 38 31 33 37 2c 32 39 38 2e  84",6378137,298.
6f20: 32 35 37 32 32 33 35 36 33 2c 0d 0a 20 20 20 20  257223563,..    
6f30: 20 20 20 20 20 20 20 20 4c 45 4e 47 54 48 55 4e          LENGTHUN
6f40: 49 54 5b 22 6d 65 74 72 65 22 2c 31 5d 5d 5d 2c  IT["metre",1]]],
6f50: 0d 0a 20 20 20 20 50 52 49 4d 45 4d 5b 22 47 72  ..    PRIMEM["Gr
6f60: 65 65 6e 77 69 63 68 22 2c 30 2c 0d 0a 20 20 20  eenwich",0,..   
6f70: 20 20 20 20 20 41 4e 47 4c 45 55 4e 49 54 5b 22       ANGLEUNIT["
6f80: 64 65 67 72 65 65 22 2c 30 2e 30 31 37 34 35 33  degree",0.017453
6f90: 32 39 32 35 31 39 39 34 33 33 5d 5d 2c 0d 0a 20  2925199433]],.. 
6fa0: 20 20 20 43 53 5b 65 6c 6c 69 70 73 6f 69 64 61     CS[ellipsoida
6fb0: 6c 2c 32 5d 2c 0d 0a 20 20 20 20 20 20 20 20 41  l,2],..        A
6fc0: 58 49 53 5b 22 67 65 6f 64 65 74 69 63 20 6c 61  XIS["geodetic la
6fd0: 74 69 74 75 64 65 20 28 4c 61 74 29 22 2c 6e 6f  titude (Lat)",no
6fe0: 72 74 68 2c 0d 0a 20 20 20 20 20 20 20 20 20 20  rth,..          
6ff0: 20 20 4f 52 44 45 52 5b 31 5d 2c 0d 0a 20 20 20    ORDER[1],..   
7000: 20 20 20 20 20 20 20 20 20 41 4e 47 4c 45 55 4e           ANGLEUN
7010: 49 54 5b 22 64 65 67 72 65 65 22 2c 30 2e 30 31  IT["degree",0.01
7020: 37 34 35 33 32 39 32 35 31 39 39 34 33 33 5d 5d  74532925199433]]
7030: 2c 0d 0a 20 20 20 20 20 20 20 20 41 58 49 53 5b  ,..        AXIS[
7040: 22 67 65 6f 64 65 74 69 63 20 6c 6f 6e 67 69 74  "geodetic longit
7050: 75 64 65 20 28 4c 6f 6e 29 22 2c 65 61 73 74 2c  ude (Lon)",east,
7060: 0d 0a 20 20 20 20 20 20 20 20 20 20 20 20 4f 52  ..            OR
7070: 44 45 52 5b 32 5d 2c 0d 0a 20 20 20 20 20 20 20  DER[2],..       
7080: 20 20 20 20 20 41 4e 47 4c 45 55 4e 49 54 5b 22       ANGLEUNIT["
7090: 64 65 67 72 65 65 22 2c 30 2e 30 31 37 34 35 33  degree",0.017453
70a0: 32 39 32 35 31 39 39 34 33 33 5d 5d 2c 0d 0a 20  2925199433]],.. 
70b0: 20 20 20 41 52 45 41 5b 22 57 6f 72 6c 64 22 5d     AREA["World"]
70c0: 2c 0d 0a 20 20 20 20 42 42 4f 58 5b 2d 39 30 2c  ,..    BBOX[-90,
70d0: 2d 31 38 30 2c 39 30 2c 31 38 30 5d 2c 0d 0a 20  -180,90,180],.. 
70e0: 20 20 20 49 44 5b 22 45 50 53 47 22 2c 34 33 32     ID["EPSG",432
70f0: 36 5d 5d 0d 0a 0d 0a 53 45 4c 45 43 54 20 50 52  6]]....SELECT PR
7100: 4f 4a 5f 41 73 57 4b 54 28 27 45 50 53 47 27 2c  OJ_AsWKT('EPSG',
7110: 20 34 33 32 36 2c 20 27 45 53 52 49 27 2c 20 30   4326, 'ESRI', 0
7120: 2c 20 30 29 3b 20 2d 2d 20 45 53 52 49 20 73 74  , 0); -- ESRI st
7130: 79 6c 65 2c 20 6d 6f 6e 6f 6c 69 74 68 69 63 20  yle, monolithic 
7140: 6c 69 6e 65 0d 0a 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d  line..----------
7150: 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d  ----------------
7160: 2d 2d 2d 2d 0d 0a 47 45 4f 47 43 53 5b 22 47 43  ----..GEOGCS["GC
7170: 53 5f 57 47 53 5f 31 39 38 34 22 2c 44 41 54 55  S_WGS_1984",DATU
7180: 4d 5b 22 44 5f 57 47 53 5f 31 39 38 34 22 2c 53  M["D_WGS_1984",S
7190: 50 48 45 52 4f 49 44 5b 22 57 47 53 5f 31 39 38  PHEROID["WGS_198
71a0: 34 22 2c 36 33 37 38 31 33 37 2e 30 2c 32 39 38  4",6378137.0,298
71b0: 2e 32 35 37 32 32 33 35 36 33 5d 5d 2c 50 52 49  .257223563]],PRI
71c0: 4d 45 4d 5b 22 47 72 65 65 6e 77 69 63 68 22 2c  MEM["Greenwich",
71d0: 30 2e 30 5d 2c 55 4e 49 54 5b 22 44 65 67 72 65  0.0],UNIT["Degre
71e0: 65 22 2c 30 2e 30 31 37 34 35 33 32 39 32 35 31  e",0.01745329251
71f0: 39 39 34 33 33 5d 5d 0d 0a 0d 0a 53 45 4c 45 43  99433]]....SELEC
7200: 54 20 50 52 4f 4a 5f 47 75 65 73 73 53 72 69 64  T PROJ_GuessSrid
7210: 46 72 6f 6d 57 4b 54 28 27 47 45 4f 47 43 53 5b  FromWKT('GEOGCS[
7220: 22 47 43 53 5f 4d 6f 6e 74 65 5f 4d 61 72 69 6f  "GCS_Monte_Mario
7230: 5f 52 6f 6d 65 22 2c 44 41 54 55 4d 5b 22 44 5f  _Rome",DATUM["D_
7240: 4d 6f 6e 74 65 5f 4d 61 72 69 6f 22 2c 53 50 48  Monte_Mario",SPH
7250: 45 52 4f 49 44 5b 22 49 6e 74 65 72 6e 61 74 69  EROID["Internati
7260: 6f 6e 61 6c 5f 31 39 32 34 22 2c 36 33 37 38 33  onal_1924",63783
7270: 38 38 2e 30 2c 32 39 37 2e 30 5d 5d 2c 50 52 49  88.0,297.0]],PRI
7280: 4d 45 4d 5b 22 52 6f 6d 65 22 2c 31 32 2e 34 35  MEM["Rome",12.45
7290: 32 33 33 33 33 33 33 33 33 33 33 5d 2c 55 4e 49  23333333333],UNI
72a0: 54 5b 22 44 65 67 72 65 65 22 2c 30 2e 30 31 37  T["Degree",0.017
72b0: 34 35 33 32 39 32 35 31 39 39 34 33 33 5d 5d 27  4532925199433]]'
72c0: 29 3b 20 0d 0a 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d  ); ..-----------
72d0: 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d  ----------------
72e0: 2d 2d 2d 0d 0a 34 38 30 36 0d 0a 0d 0a 53 45 4c  ---..4806....SEL
72f0: 45 43 54 20 50 52 4f 4a 5f 47 75 65 73 73 53 72  ECT PROJ_GuessSr
7300: 69 64 46 72 6f 6d 53 48 50 28 27 2f 68 6f 6d 65  idFromSHP('/home
7310: 2f 73 61 6e 64 72 6f 2f 74 75 73 63 61 6e 79 5f  /sandro/tuscany_
7320: 73 68 70 2f 70 72 6f 76 32 30 31 31 27 29 3b 20  shp/prov2011'); 
7330: 2d 2d 20 72 65 6d 65 6d 62 65 72 3a 20 72 65 71  -- remember: req
7340: 75 69 72 65 73 20 74 6f 20 65 78 70 6c 69 63 69  uires to explici
7350: 74 6c 79 20 73 65 74 20 53 50 41 54 49 41 4c 49  tly set SPATIALI
7360: 54 45 5f 53 45 43 55 52 49 54 59 3d 72 65 6c 61  TE_SECURITY=rela
7370: 78 65 64 0d 0a 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d  xed..-----------
7380: 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d  ----------------
7390: 2d 2d 2d 0d 0a 33 30 30 33 0d 0a 3c 2f 76 65 72  ---..3003..</ver
73a0: 62 61 74 69 6d 3e 0d 0a 3c 62 72 3e 0d 0a 3c 68  batim>..<br>..<h
73b0: 72 3e 3c 62 72 3e 0d 0a 3c 74 61 62 6c 65 20 63  r><br>..<table c
73c0: 65 6c 6c 73 70 61 63 69 6e 67 3d 22 38 22 20 63  ellspacing="8" c
73d0: 65 6c 6c 70 61 64 64 69 6e 67 3d 22 38 22 20 62  ellpadding="8" b
73e0: 67 63 6f 6c 6f 72 3d 22 23 66 66 65 30 65 39 22  gcolor="#ffe0e9"
73f0: 20 77 69 64 74 68 3d 22 31 30 30 25 22 3e 0d 0a   width="100%">..
7400: 3c 74 72 3e 3c 74 68 3e 0d 0a 3c 68 31 3e 49 6d  <tr><th>..<h1>Im
7410: 70 6f 72 74 61 6e 74 20 6e 6f 74 69 63 65 20 66  portant notice f
7420: 6f 72 20 57 69 6e 64 6f 77 73 20 75 73 65 72 73  or Windows users
7430: 3c 2f 68 31 3e 0d 0a 3c 2f 74 68 3e 3c 2f 74 72  </h1>..</th></tr
7440: 3e 0d 0a 3c 74 72 3e 3c 74 64 3e 0d 0a 3c 62 3e  >..<tr><td>..<b>
7450: 50 52 4f 4a 2e 36 3c 2f 62 3e 20 63 72 69 74 69  PROJ.6</b> criti
7460: 63 61 6c 6c 79 20 64 65 70 65 6e 64 73 20 6f 6e  cally depends on
7470: 20 69 74 73 20 6f 77 6e 20 70 72 69 76 61 74 65   its own private
7480: 20 53 51 4c 69 74 65 20 64 61 74 61 62 61 73 65   SQLite database
7490: 20 28 3c 62 3e 70 72 6f 6a 2e 64 62 3c 2f 62 3e   (<b>proj.db</b>
74a0: 29 20 63 6f 6e 74 61 69 6e 69 6e 67 20 61 6c 6c  ) containing all
74b0: 20 72 65 6c 65 76 61 6e 74 20 64 65 66 69 6e 69   relevant defini
74c0: 74 69 6f 6e 73 20 61 62 6f 75 74 20 45 6c 6c 69  tions about Elli
74d0: 70 73 6f 69 64 73 2c 20 50 72 69 6d 65 20 4d 65  psoids, Prime Me
74e0: 72 69 64 69 61 6e 73 2c 20 43 52 53 65 73 2c 20  ridians, CRSes, 
74f0: 54 72 61 6e 73 66 6f 72 6d 61 74 69 6f 6e 73 20  Transformations 
7500: 61 6e 64 20 61 6c 69 6b 65 2e 3c 62 72 3e 0d 0a  and alike.<br>..
7510: 49 66 20 50 52 4f 4a 2e 36 20 69 73 20 75 6e 61  If PROJ.6 is una
7520: 62 6c 65 20 74 6f 20 63 6f 72 72 65 63 74 6c 79  ble to correctly
7530: 20 65 73 74 61 62 6c 69 73 68 20 61 20 63 6f 6e   establish a con
7540: 6e 65 63 74 69 6f 6e 20 74 6f 20 74 68 69 73 20  nection to this 
7550: 64 61 74 61 62 61 73 65 20 69 74 20 77 69 6c 6c  database it will
7560: 20 62 65 20 73 65 76 65 72 65 6c 79 20 6c 69 6d   be severely lim
7570: 69 74 65 64 20 61 6e 64 20 77 69 6c 6c 20 6e 6f  ited and will no
7580: 74 20 62 65 20 61 62 6c 65 20 74 6f 20 63 6f 72  t be able to cor
7590: 72 65 63 74 6c 79 20 62 65 68 61 76 65 20 61 73  rectly behave as
75a0: 20 65 78 70 65 63 74 65 64 2e 3c 62 72 3e 3c 62   expected.<br><b
75b0: 72 3e 0d 0a 3c 75 6c 3e 0d 0a 3c 6c 69 3e 3c 62  r>..<ul>..<li><b
75c0: 3e 3c 75 3e 3c 69 3e 53 68 6f 72 74 20 63 6f 6e  ><u><i>Short con
75d0: 63 6c 75 73 69 6f 6e 3c 2f 69 3e 3c 2f 75 3e 3c  clusion</i></u><
75e0: 2f 62 3e 3a 20 69 6e 73 74 61 6c 6c 69 6e 67 20  /b>: installing 
75f0: 74 68 65 20 73 6f 66 74 77 61 72 65 20 61 6c 6f  the software alo
7600: 6e 65 20 69 73 20 6e 6f 74 20 65 6e 6f 75 67 68  ne is not enough
7610: 2e 3c 62 72 3e 0d 0a 54 68 65 20 50 52 4f 4a 2e  .<br>..The PROJ.
7620: 36 20 70 72 69 76 61 74 65 20 64 61 74 61 62 61  6 private databa
7630: 73 65 20 3c 62 3e 70 72 6f 6a 2e 64 62 3c 2f 62  se <b>proj.db</b
7640: 3e 20 6d 75 73 74 20 62 65 20 70 72 6f 70 65 72  > must be proper
7650: 6c 79 20 69 6e 73 74 61 6c 6c 65 64 20 61 73 20  ly installed as 
7660: 77 65 6c 6c 2c 20 69 6e 20 6f 72 64 65 72 20 74  well, in order t
7670: 6f 20 65 6e 73 75 72 65 20 74 68 61 74 20 61 6e  o ensure that an
7680: 79 74 68 69 6e 67 20 72 75 6e 73 20 73 6d 6f 6f  ything runs smoo
7690: 74 68 6c 79 2e 3c 2f 6c 69 3e 0d 0a 3c 2f 75 6c  thly.</li>..</ul
76a0: 3e 3c 62 72 3e 0d 0a 54 68 69 73 20 69 73 6e 27  ><br>..This isn'
76b0: 74 20 75 73 75 61 6c 6c 79 20 61 20 62 69 67 20  t usually a big 
76c0: 69 73 73 75 65 20 6f 6e 20 4c 69 6e 75 78 20 61  issue on Linux a
76d0: 6e 64 20 55 6e 69 78 2d 6c 69 6b 65 20 70 6c 61  nd Unix-like pla
76e0: 74 66 6f 72 6d 73 2c 20 77 68 65 72 65 20 61 20  tforms, where a 
76f0: 72 61 74 69 6f 6e 61 6c 20 61 6e 64 20 76 65 72  rational and ver
7700: 79 20 63 6c 65 61 72 20 66 69 6c 65 73 79 73 74  y clear filesyst
7710: 65 6d 20 6c 61 79 6f 75 74 20 65 78 69 73 74 73  em layout exists
7720: 2e 3c 62 72 3e 0d 0a 4f 6e 20 74 68 65 73 65 20  .<br>..On these 
7730: 6f 70 65 72 61 74 69 6e 67 20 73 79 73 74 65 6d  operating system
7740: 73 20 74 68 65 20 70 61 63 6b 61 67 65 20 6d 61  s the package ma
7750: 6e 61 67 65 72 20 28 6f 72 20 3c 62 3e 6d 61 6b  nager (or <b>mak
7760: 65 20 69 6e 73 74 61 6c 6c 3c 2f 62 3e 29 20 77  e install</b>) w
7770: 69 6c 6c 20 61 75 74 6f 6d 61 74 69 63 61 6c 6c  ill automaticall
7780: 79 20 74 61 6b 65 20 63 61 72 65 20 74 6f 20 69  y take care to i
7790: 6e 73 74 61 6c 6c 20 3c 62 3e 70 72 6f 6a 2e 64  nstall <b>proj.d
77a0: 62 3c 2f 62 3e 20 6f 6e 20 74 68 65 20 6d 6f 73  b</b> on the mos
77b0: 74 20 61 70 70 72 6f 70 72 69 61 74 65 20 64 69  t appropriate di
77c0: 72 65 63 74 6f 72 79 20 28 75 73 75 61 6c 6c 79  rectory (usually
77d0: 20 61 73 20 3c 62 3e 2f 75 73 72 2f 73 68 61 72   as <b>/usr/shar
77e0: 65 2f 70 72 6f 6a 2f 70 72 6f 6a 2e 64 62 3c 2f  e/proj/proj.db</
77f0: 62 3e 20 6f 72 20 61 73 20 3c 62 3e 2f 75 73 72  b> or as <b>/usr
7800: 2f 6c 6f 63 61 6c 2f 73 68 61 72 65 2f 70 72 6f  /local/share/pro
7810: 6a 2f 70 72 6f 6a 2e 64 62 3c 2f 62 3e 29 20 61  j/proj.db</b>) a
7820: 6e 64 20 74 68 61 74 27 73 20 61 6c 6c 2e 3c 62  nd that's all.<b
7830: 72 3e 3c 62 72 3e 0d 0a 54 68 69 6e 67 73 20 61  r><br>..Things a
7840: 72 65 20 75 6e 68 61 70 70 69 6c 79 20 61 20 6c  re unhappily a l
7850: 69 74 74 6c 65 20 62 69 74 20 6d 6f 72 65 20 64  ittle bit more d
7860: 69 66 66 69 63 75 6c 74 73 20 6f 6e 20 57 69 6e  ifficults on Win
7870: 64 6f 77 73 20 70 6c 61 74 66 6f 72 6d 73 2e 0d  dows platforms..
7880: 0a 54 68 65 20 75 73 65 72 20 69 74 73 65 6c 66  .The user itself
7890: 20 69 73 20 72 65 73 70 6f 6e 73 69 62 6c 65 20   is responsible 
78a0: 66 6f 72 20 70 72 6f 70 65 72 6c 79 20 69 6e 73  for properly ins
78b0: 74 61 6c 6c 69 6e 67 20 3c 62 3e 70 72 6f 6a 2e  talling <b>proj.
78c0: 64 62 3c 2f 62 3e 0d 0a 53 6f 20 69 74 20 62 65  db</b>..So it be
78d0: 63 6f 6d 65 73 20 63 72 69 74 69 63 61 6c 20 75  comes critical u
78e0: 6e 64 65 72 73 74 61 6e 64 69 6e 67 20 74 68 65  nderstanding the
78f0: 20 62 61 73 69 63 20 72 75 6c 65 73 20 61 64 6f   basic rules ado
7900: 70 74 65 64 20 62 79 20 3c 62 3e 6c 69 62 73 70  pted by <b>libsp
7910: 61 74 69 61 6c 69 74 65 3c 2f 62 3e 20 69 6e 20  atialite</b> in 
7920: 6f 72 64 65 72 20 74 6f 20 70 72 6f 70 65 72 6c  order to properl
7930: 79 20 6c 6f 63 61 74 65 20 3c 62 3e 70 72 6f 6a  y locate <b>proj
7940: 2e 64 62 3c 2f 62 3e 20 6f 6e 20 57 69 6e 64 6f  .db</b> on Windo
7950: 77 73 2e 0d 0a 3c 2f 74 64 3e 3c 2f 74 72 3e 0d  ws...</td></tr>.
7960: 0a 3c 74 72 3e 3c 74 68 3e 0d 0a 3c 68 32 3e 57  .<tr><th>..<h2>W
7970: 68 65 72 65 20 70 72 6f 6a 2e 64 62 20 69 73 20  here proj.db is 
7980: 65 78 70 65 63 74 65 64 20 74 6f 20 62 65 20 66  expected to be f
7990: 6f 75 6e 64 20 6f 6e 20 57 69 6e 64 6f 77 73 3c  ound on Windows<
79a0: 2f 68 32 3e 0d 0a 3c 2f 74 64 3e 3c 2f 74 72 3e  /h2>..</td></tr>
79b0: 0d 0a 3c 74 72 3e 3c 74 64 3e 0d 0a 3c 6f 6c 3e  ..<tr><td>..<ol>
79c0: 0d 0a 3c 6c 69 3e 74 68 65 20 66 69 72 73 74 20  ..<li>the first 
79d0: 70 6c 61 63 65 20 77 68 65 72 65 20 3c 62 3e 70  place where <b>p
79e0: 72 6f 6a 2e 64 62 3c 2f 62 3e 20 77 69 6c 6c 20  roj.db</b> will 
79f0: 62 65 20 73 65 61 72 63 68 65 64 20 69 73 20 74  be searched is t
7a00: 68 65 20 73 61 6d 65 20 66 6f 6c 64 65 72 20 66  he same folder f
7a10: 6f 72 6d 20 77 68 65 72 65 20 74 68 65 20 3c 62  orm where the <b
7a20: 3e 45 58 45 3c 2f 62 3e 20 62 69 6e 61 72 79 20  >EXE</b> binary 
7a30: 77 61 73 20 69 6e 69 74 69 61 6c 6c 79 20 6c 6f  was initially lo
7a40: 61 64 65 64 2e 3c 62 72 3e 0d 0a 3c 69 3e 3c 75  aded.<br>..<i><u
7a50: 3e 45 78 61 6d 70 6c 65 3c 2f 69 3e 3c 2f 75 3e  >Example</i></u>
7a60: 3a 20 61 73 73 75 6d 69 6e 67 20 74 68 61 74 20  : assuming that 
7a70: 79 6f 75 20 61 72 65 20 63 75 72 72 65 6e 74 6c  you are currentl
7a80: 79 20 65 78 65 63 75 74 69 6e 67 20 3c 62 3e 43  y executing <b>C
7a90: 3a 5c 6d 79 70 72 6f 67 73 5c 73 70 61 74 69 61  :\myprogs\spatia
7aa0: 6c 69 74 65 5c 62 69 6e 5c 73 70 61 74 69 61 6c  lite\bin\spatial
7ab0: 69 74 65 2e 65 78 65 3c 2f 62 3e 0d 0a 3c 75 6c  ite.exe</b>..<ul
7ac0: 3e 0d 0a 3c 6c 69 3e 74 68 65 6e 20 61 6e 20 61  >..<li>then an a
7ad0: 74 74 65 6d 70 74 20 77 69 6c 6c 20 62 65 20 6d  ttempt will be m
7ae0: 61 64 65 20 74 6f 20 63 6f 6e 6e 65 63 74 20 3c  ade to connect <
7af0: 62 3e 43 3a 5c 6d 79 70 72 6f 67 73 5c 73 70 61  b>C:\myprogs\spa
7b00: 74 69 61 6c 69 74 65 5c 62 69 6e 5c 70 72 6f 6a  tialite\bin\proj
7b10: 2e 64 62 3c 2f 62 3e 3c 2f 6c 69 3e 0d 0a 3c 2f  .db</b></li>..</
7b20: 75 6c 3e 3c 2f 6c 69 3e 0d 0a 3c 6c 69 3e 61 20  ul></li>..<li>a 
7b30: 73 65 63 6f 6e 64 20 61 74 74 65 6d 70 74 20 77  second attempt w
7b40: 69 6c 6c 20 62 65 20 6d 61 64 65 20 6f 6e 20 62  ill be made on b
7b50: 65 68 61 6c 66 20 6f 66 20 74 68 65 20 3c 62 3e  ehalf of the <b>
7b60: 50 75 62 6c 69 63 3c 2f 62 3e 20 66 6f 6c 64 65  Public</b> folde
7b70: 72 2e 3c 62 72 3e 0d 0a 3c 69 3e 3c 75 3e 45 78  r.<br>..<i><u>Ex
7b80: 61 6d 70 6c 65 3c 2f 75 3e 3c 2f 69 3e 3a 20 61  ample</u></i>: a
7b90: 6e 20 61 74 74 65 6d 70 74 20 77 69 6c 6c 20 62  n attempt will b
7ba0: 65 20 6d 61 64 65 20 74 6f 20 63 6f 6e 6e 65 63  e made to connec
7bb0: 74 20 3c 62 3e 43 3a 5c 55 73 65 72 73 5c 50 75  t <b>C:\Users\Pu
7bc0: 62 6c 69 63 5c 73 70 61 74 69 61 6c 69 74 65 5c  blic\spatialite\
7bd0: 70 72 6f 6a 5c 70 72 6f 6a 2e 64 62 3c 2f 62 3e  proj\proj.db</b>
7be0: 3c 2f 6c 69 3e 0d 0a 3c 6c 69 3e 61 20 74 68 69  </li>..<li>a thi
7bf0: 72 64 20 28 61 6e 64 20 6c 61 73 74 29 20 61 74  rd (and last) at
7c00: 74 65 6d 70 74 20 77 69 6c 6c 20 62 65 20 6d 61  tempt will be ma
7c10: 64 65 20 6f 6e 20 62 65 68 61 6c 66 20 6f 66 20  de on behalf of 
7c20: 74 68 65 20 3c 62 3e 55 73 65 72 3c 2f 62 3e 20  the <b>User</b> 
7c30: 66 6f 6c 64 65 72 2e 3c 62 72 3e 0d 0a 3c 69 3e  folder.<br>..<i>
7c40: 3c 75 3e 45 78 61 6d 70 6c 65 3c 2f 69 3e 3c 2f  <u>Example</i></
7c50: 75 3e 3a 20 61 6e 20 61 74 74 65 6d 70 74 20 77  u>: an attempt w
7c60: 69 6c 6c 20 62 65 20 6d 61 64 65 20 74 6f 20 63  ill be made to c
7c70: 6f 6e 6e 65 63 74 20 3c 62 3e 43 3a 5c 55 73 65  onnect <b>C:\Use
7c80: 72 73 5c 73 61 6e 64 72 6f 5c 73 70 61 74 69 61  rs\sandro\spatia
7c90: 6c 69 74 65 5c 70 72 6f 6a 5c 70 72 6f 6a 2e 64  lite\proj\proj.d
7ca0: 62 3c 2f 62 3e 3c 2f 6c 69 3e 0d 0a 3c 2f 6f 6c  b</b></li>..</ol
7cb0: 3e 0d 0a 3c 68 33 3e 41 6e 20 75 73 65 66 75 6c  >..<h3>An useful
7cc0: 20 64 69 61 67 6e 6f 73 74 69 63 20 63 68 65 63   diagnostic chec
7cd0: 6b 3c 2f 68 33 3e 0d 0a 3c 76 65 72 62 61 74 69  k</h3>..<verbati
7ce0: 6d 3e 0d 0a 53 45 4c 45 43 54 20 50 52 4f 4a 5f  m>..SELECT PROJ_
7cf0: 47 65 74 44 61 74 61 62 61 73 65 50 61 74 68 28  GetDatabasePath(
7d00: 29 3b 0d 0a 3c 2f 76 65 72 62 61 74 69 6d 3e 0d  );..</verbatim>.
7d10: 0a 3c 75 6c 3e 0d 0a 3c 6c 69 3e 69 66 20 3c 62  .<ul>..<li>if <b
7d20: 3e 4e 55 4c 4c 3c 2f 62 3e 20 69 73 20 72 65 74  >NULL</b> is ret
7d30: 75 72 6e 65 64 2c 20 74 68 65 6e 20 50 52 4f 4a  urned, then PROJ
7d40: 2e 36 20 69 73 20 64 65 66 69 6e 69 74 65 6c 79  .6 is definitely
7d50: 20 75 6e 61 62 6c 65 20 74 6f 20 63 6f 6e 6e 65   unable to conne
7d60: 63 74 20 74 6f 20 69 74 73 20 6f 77 6e 20 70 72  ct to its own pr
7d70: 69 76 61 74 65 20 53 51 4c 69 74 65 20 64 61 74  ivate SQLite dat
7d80: 61 62 61 73 65 20 3c 62 3e 70 72 6f 6a 2e 64 62  abase <b>proj.db
7d90: 3c 2f 62 3e 3c 62 72 3e 0d 0a 59 6f 75 20 68 61  </b><br>..You ha
7da0: 76 65 20 74 6f 20 63 61 72 65 66 75 6c 6c 79 20  ve to carefully 
7db0: 76 65 72 69 66 69 79 20 74 68 61 74 20 69 74 27  verifiy that it'
7dc0: 73 20 72 65 61 6c 6c 79 20 69 6e 73 74 61 6c 6c  s really install
7dd0: 65 64 20 6f 6e 20 6f 6e 65 20 6f 66 20 74 68 65  ed on one of the
7de0: 20 65 78 70 65 63 74 65 64 20 73 74 61 6e 64 61   expected standa
7df0: 72 64 20 6c 6f 63 61 74 69 6f 6e 73 2e 3c 2f 6c  rd locations.</l
7e00: 69 3e 0d 0a 3c 6c 69 3e 6f 74 68 65 72 77 69 73  i>..<li>otherwis
7e10: 65 20 74 68 65 20 70 61 74 68 20 6c 65 61 64 69  e the path leadi
7e20: 6e 67 20 74 6f 20 74 68 65 20 63 75 72 72 65 6e  ng to the curren
7e30: 74 6c 79 20 63 6f 6e 6e 65 63 74 65 64 20 3c 62  tly connected <b
7e40: 3e 70 72 6f 6a 2e 64 62 3c 2f 62 3e 20 77 69 6c  >proj.db</b> wil
7e50: 6c 20 62 65 20 72 65 74 75 72 6e 65 64 2e 3c 2f  l be returned.</
7e60: 6c 69 3e 0d 0a 3c 2f 75 6c 3e 3c 62 72 3e 0d 0a  li>..</ul><br>..
7e70: 3c 2f 74 64 3e 3c 2f 74 72 3e 0d 0a 3c 2f 74 61  </td></tr>..</ta
7e80: 62 6c 65 3e 3c 62 72 3e 3c 62 72 3e 0d 0a 3c 74  ble><br><br>..<t
7e90: 61 62 6c 65 20 63 65 6c 6c 73 70 61 63 69 6e 67  able cellspacing
7ea0: 3d 22 38 22 20 63 65 6c 6c 70 61 64 64 69 6e 67  ="8" cellpadding
7eb0: 3d 22 38 22 20 62 67 63 6f 6c 6f 72 3d 22 23 63  ="8" bgcolor="#c
7ec0: 39 66 66 66 30 22 20 77 69 64 74 68 3d 22 31 30  9fff0" width="10
7ed0: 30 25 22 3e 0d 0a 3c 74 72 3e 3c 74 68 3e 0d 0a  0%">..<tr><th>..
7ee0: 3c 68 32 3e 55 73 69 6e 67 20 74 68 65 20 65 6e  <h2>Using the en
7ef0: 76 69 72 6f 6e 6d 65 6e 74 20 76 61 72 69 61 62  vironment variab
7f00: 6c 65 20 53 50 41 54 49 41 4c 49 54 45 5f 50 52  le SPATIALITE_PR
7f10: 4f 4a 5f 44 42 5f 50 41 54 48 3c 2f 68 32 3e 0d  OJ_DB_PATH</h2>.
7f20: 0a 3c 2f 74 68 3e 3c 2f 74 72 3e 0d 0a 3c 74 72  .</th></tr>..<tr
7f30: 3e 3c 74 64 3e 0d 0a 49 66 20 74 68 65 20 65 6e  ><td>..If the en
7f40: 76 69 72 6f 6e 6d 65 6e 74 20 76 61 72 69 61 62  vironment variab
7f50: 6c 65 20 3c 62 3e 53 50 41 54 49 41 4c 49 54 45  le <b>SPATIALITE
7f60: 5f 50 52 4f 4a 5f 44 42 5f 50 41 54 48 3c 2f 62  _PROJ_DB_PATH</b
7f70: 3e 20 69 73 20 73 65 74 2c 20 74 68 65 6e 20 3c  > is set, then <
7f80: 62 3e 6c 69 62 73 70 61 74 69 61 6c 69 74 65 3c  b>libspatialite<
7f90: 2f 62 3e 20 77 69 6c 6c 20 73 69 6d 70 6c 79 20  /b> will simply 
7fa0: 61 74 74 65 6d 70 74 20 74 6f 20 63 6f 6e 6e 65  attempt to conne
7fb0: 63 74 20 74 68 65 20 64 61 74 61 62 61 73 65 20  ct the database 
7fc0: 70 6f 69 6e 74 65 64 20 62 79 20 74 68 69 73 20  pointed by this 
7fd0: 76 61 72 69 61 62 6c 65 2e 3c 62 72 3e 0d 0a 53  variable.<br>..S
7fe0: 75 63 68 20 61 20 63 61 70 61 62 69 6c 69 74 79  uch a capability
7ff0: 20 69 73 20 73 75 70 70 6f 72 74 65 64 20 6e 6f   is supported no
8000: 74 20 6f 6e 6c 79 20 6f 6e 20 57 69 6e 64 6f 77  t only on Window
8010: 73 20 62 75 74 20 61 6c 73 6f 20 6f 6e 20 4c 69  s but also on Li
8020: 6e 75 78 20 28 61 6e 64 20 6f 6e 20 61 6e 79 20  nux (and on any 
8030: 6f 74 68 65 72 20 70 6c 61 74 66 6f 72 6d 29 2e  other platform).
8040: 3c 62 72 3e 3c 62 72 3e 0d 0a 3c 69 3e 3c 75 3e  <br><br>..<i><u>
8050: 4c 69 6e 75 78 20 65 78 61 6d 70 6c 65 3c 2f 75  Linux example</u
8060: 3e 3c 2f 69 3e 3a 0d 0a 3c 75 6c 3e 0d 0a 3c 6c  ></i>:..<ul>..<l
8070: 69 3e 3c 62 3e 65 78 70 6f 72 74 20 22 53 50 41  i><b>export "SPA
8080: 54 49 41 4c 49 54 45 5f 50 52 4f 4a 5f 44 42 5f  TIALITE_PROJ_DB_
8090: 50 41 54 48 3d 2f 68 6f 6d 65 2f 73 61 6e 64 72  PATH=/home/sandr
80a0: 6f 2f 61 75 78 2f 70 72 6f 6a 2e 64 62 22 3c 62  o/aux/proj.db"<b
80b0: 72 3e 0d 0a 65 63 68 6f 20 24 53 50 41 54 49 41  r>..echo $SPATIA
80c0: 4c 49 54 45 5f 50 52 4f 4a 5f 44 42 5f 50 41 54  LITE_PROJ_DB_PAT
80d0: 48 3c 62 72 3e 0d 0a 73 70 61 74 69 61 6c 69 74  H<br>..spatialit
80e0: 65 3c 62 3e 3c 2f 6c 69 3e 0d 0a 3c 2f 75 6c 3e  e<b></li>..</ul>
80f0: 3c 62 72 3e 3c 62 72 3e 0d 0a 3c 69 3e 3c 75 3e  <br><br>..<i><u>
8100: 57 69 6e 64 6f 77 73 20 65 78 61 6d 70 6c 65 3c  Windows example<
8110: 2f 75 3e 3c 2f 69 3e 3a 0d 0a 3c 75 6c 3e 0d 0a  /u></i>:..<ul>..
8120: 3c 6c 69 3e 3c 62 3e 53 45 54 20 53 50 41 54 49  <li><b>SET SPATI
8130: 41 4c 49 54 45 5f 50 52 4f 4a 5f 44 42 5f 50 41  ALITE_PROJ_DB_PA
8140: 54 48 3d 43 3a 5c 55 73 65 72 73 5c 73 61 6e 64  TH=C:\Users\sand
8150: 72 6f 5c 61 75 78 5c 70 72 6f 6a 2e 64 62 3c 62  ro\aux\proj.db<b
8160: 72 3e 0d 0a 65 63 68 6f 20 25 53 50 41 54 49 41  r>..echo %SPATIA
8170: 4c 49 54 45 5f 50 52 4f 4a 5f 44 42 5f 50 41 54  LITE_PROJ_DB_PAT
8180: 48 25 3c 62 72 3e 0d 0a 73 70 61 74 69 61 6c 69  H%<br>..spatiali
8190: 74 65 5f 67 75 69 3c 62 3e 3c 2f 6c 69 3e 0d 0a  te_gui<b></li>..
81a0: 3c 2f 75 6c 3e 3c 62 72 3e 3c 62 72 3e 0d 0a 3c  </ul><br><br>..<
81b0: 2f 74 68 3e 3c 2f 74 72 3e 0d 0a 3c 2f 74 61 62  /th></tr>..</tab
81c0: 6c 65 3e 3c 62 72 3e 0d 0a 3c 68 72 3e 3c 62 72  le><br>..<hr><br
81d0: 3e 0d 0a 3c 61 20 68 72 65 66 3d 22 68 74 74 70  >..<a href="http
81e0: 73 3a 2f 2f 77 77 77 2e 67 61 69 61 2d 67 69 73  s://www.gaia-gis
81f0: 2e 69 74 2f 66 6f 73 73 69 6c 2f 6c 69 62 73 70  .it/fossil/libsp
8200: 61 74 69 61 6c 69 74 65 2f 77 69 6b 69 3f 6e 61  atialite/wiki?na
8210: 6d 65 3d 34 2e 33 2e 30 2d 64 6f 63 22 3e 62 61  me=4.3.0-doc">ba
8220: 63 6b 3c 2f 61 3e 0a 5a 20 31 66 36 66 39 36 38  ck</a>.Z 1f6f968
8230: 65 66 31 64 33 31 66 36 63 63 65 37 37 30 64 66  ef1d31f6cce770df
8240: 32 30 66 36 39 32 64 35 61 0a                    20f692d5a.