Hex Artifact Content
Not logged in

Artifact 70a4fcd137bc5035b00de2519bd915b178090415:

Wiki page [PROJ.6] by sandro 2019-05-05 12:38:52.
0000: 44 20 32 30 31 39 2d 30 35 2d 30 35 54 31 32 3a  D 2019-05-05T12:
0010: 33 38 3a 35 32 2e 32 30 30 0a 4c 20 50 52 4f 4a  38:52.200.L PROJ
0020: 2e 36 0a 50 20 64 30 36 36 39 63 31 35 66 39 34  .6.P d0669c15f94
0030: 35 65 38 66 32 37 66 38 61 63 64 30 36 66 30 63  5e8f27f8acd06f0c
0040: 62 34 36 32 31 32 35 63 30 61 32 65 32 0a 55 20  b462125c0a2e2.U 
0050: 73 61 6e 64 72 6f 0a 57 20 33 36 36 37 38 0a 3c  sandro.W 36678.<
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 65 63 61 6d 65 20 74 68 65  erdam became 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 6d 6f 72 65 20 72 65 63 65 6e 74 20 49 53  e more recent IS
1430: 4f 20 57 4b 54 20 6e 6f 74 61 74 69 6f 6e 3a 0d  O WKT notation:.
1440: 0a 3c 62 72 3e 3c 62 72 3e 0d 0a 3c 74 61 62 6c  .<br><br>..<tabl
1450: 65 20 63 65 6c 6c 73 70 61 63 69 6e 67 3d 22 38  e cellspacing="8
1460: 22 20 63 65 6c 6c 70 61 64 64 69 6e 67 3d 22 38  " cellpadding="8
1470: 22 20 62 67 63 6f 6c 6f 72 3d 22 23 65 38 66 66  " bgcolor="#e8ff
1480: 65 38 22 20 62 6f 72 64 65 72 3d 22 31 22 3e 0d  e8" border="1">.
1490: 0a 3c 74 72 3e 3c 74 68 20 62 67 63 6f 6c 6f 72  .<tr><th bgcolor
14a0: 3d 22 23 66 66 62 30 33 65 22 3e 53 52 49 44 3c  ="#ffb03e">SRID<
14b0: 2f 74 68 3e 3c 74 64 3e 33 30 30 33 3c 2f 74 64  /th><td>3003</td
14c0: 3e 3c 74 64 3e 34 33 32 36 3c 2f 74 64 3e 3c 74  ><td>4326</td><t
14d0: 64 3e 33 32 36 33 32 3c 2f 74 64 3e 3c 2f 74 72  d>32632</td></tr
14e0: 3e 0d 0a 3c 74 72 3e 3c 74 68 20 62 67 63 6f 6c  >..<tr><th bgcol
14f0: 6f 72 3d 22 23 66 66 62 30 33 65 22 3e 43 52 53  or="#ffb03e">CRS
1500: 20 4e 61 6d 65 3c 2f 74 68 3e 3c 74 64 3e 4d 6f   Name</th><td>Mo
1510: 6e 74 65 20 4d 61 72 69 6f 20 2f 20 49 74 61 6c  nte Mario / Ital
1520: 79 20 7a 6f 6e 65 20 31 3c 2f 74 64 3e 3c 2f 74  y zone 1</td></t
1530: 64 3e 3c 74 64 3e 57 47 53 20 38 34 3c 2f 74 64  d><td>WGS 84</td
1540: 3e 3c 74 64 3e 57 47 53 20 38 34 20 2f 20 55 54  ><td>WGS 84 / UT
1550: 4d 20 7a 6f 6e 65 20 33 32 4e 3c 2f 74 64 3e 3c  M zone 32N</td><
1560: 2f 74 72 3e 0d 0a 3c 74 72 3e 3c 74 68 20 62 67  /tr>..<tr><th bg
1570: 63 6f 6c 6f 72 3d 22 23 66 66 62 30 33 65 22 3e  color="#ffb03e">
1580: 49 53 4f 2d 32 30 31 38 20 57 4b 54 3c 2f 74 68  ISO-2018 WKT</th
1590: 3e 0d 0a 3c 74 64 20 76 61 6c 69 67 6e 3d 22 74  >..<td valign="t
15a0: 6f 70 22 3e 3c 76 65 72 62 61 74 69 6d 3e 0d 0a  op"><verbatim>..
15b0: 50 52 4f 4a 43 52 53 5b 22 4d 6f 6e 74 65 20 4d  PROJCRS["Monte M
15c0: 61 72 69 6f 20 2f 20 49 74 61 6c 79 20 7a 6f 6e  ario / Italy zon
15d0: 65 20 31 22 2c 0d 0a 20 20 20 20 42 41 53 45 47  e 1",..    BASEG
15e0: 45 4f 44 43 52 53 5b 22 4d 6f 6e 74 65 20 4d 61  EODCRS["Monte Ma
15f0: 72 69 6f 22 2c 0d 0a 20 20 20 20 20 20 20 20 44  rio",..        D
1600: 41 54 55 4d 5b 22 4d 6f 6e 74 65 20 4d 61 72 69  ATUM["Monte Mari
1610: 6f 22 2c 3c 62 72 3e 0d 0a 20 20 20 20 20 20 20  o",<br>..       
1620: 20 20 20 20 20 45 4c 4c 49 50 53 4f 49 44 5b 22       ELLIPSOID["
1630: 49 6e 74 65 72 6e 61 74 69 6f 6e 61 6c 20 31 39  International 19
1640: 32 34 22 2c 36 33 37 38 33 38 38 2c 32 39 37 2c  24",6378388,297,
1650: 0d 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20  ..              
1660: 20 20 4c 45 4e 47 54 48 55 4e 49 54 5b 22 6d 65    LENGTHUNIT["me
1670: 74 72 65 22 2c 31 5d 5d 5d 2c 0d 0a 20 20 20 20  tre",1]]],..    
1680: 20 20 20 20 50 52 49 4d 45 4d 5b 22 47 72 65 65      PRIMEM["Gree
1690: 6e 77 69 63 68 22 2c 30 2c 0d 0a 20 20 20 20 20  nwich",0,..     
16a0: 20 20 20 20 20 20 20 41 4e 47 4c 45 55 4e 49 54         ANGLEUNIT
16b0: 5b 22 64 65 67 72 65 65 22 2c 30 2e 30 31 37 34  ["degree",0.0174
16c0: 35 33 32 39 32 35 31 39 39 34 33 33 5d 5d 5d 2c  532925199433]]],
16d0: 0d 0a 20 20 20 20 43 4f 4e 56 45 52 53 49 4f 4e  ..    CONVERSION
16e0: 5b 22 49 74 61 6c 79 20 7a 6f 6e 65 20 31 22 2c  ["Italy zone 1",
16f0: 0d 0a 20 20 20 20 20 20 20 20 4d 45 54 48 4f 44  ..        METHOD
1700: 5b 22 54 72 61 6e 73 76 65 72 73 65 20 4d 65 72  ["Transverse Mer
1710: 63 61 74 6f 72 22 2c 0d 0a 20 20 20 20 20 20 20  cator",..       
1720: 20 20 20 20 20 49 44 5b 22 45 50 53 47 22 2c 39       ID["EPSG",9
1730: 38 30 37 5d 5d 2c 0d 0a 20 20 20 20 20 20 20 20  807]],..        
1740: 50 41 52 41 4d 45 54 45 52 5b 22 4c 61 74 69 74  PARAMETER["Latit
1750: 75 64 65 20 6f 66 20 6e 61 74 75 72 61 6c 20 6f  ude of natural o
1760: 72 69 67 69 6e 22 2c 30 2c 0d 0a 20 20 20 20 20  rigin",0,..     
1770: 20 20 20 20 20 20 20 41 4e 47 4c 45 55 4e 49 54         ANGLEUNIT
1780: 5b 22 64 65 67 72 65 65 22 2c 30 2e 30 31 37 34  ["degree",0.0174
1790: 35 33 32 39 32 35 31 39 39 34 33 33 5d 2c 0d 0a  532925199433],..
17a0: 20 20 20 20 20 20 20 20 20 20 20 20 49 44 5b 22              ID["
17b0: 45 50 53 47 22 2c 38 38 30 31 5d 5d 2c 0d 0a 20  EPSG",8801]],.. 
17c0: 20 20 20 20 20 20 20 50 41 52 41 4d 45 54 45 52         PARAMETER
17d0: 5b 22 4c 6f 6e 67 69 74 75 64 65 20 6f 66 20 6e  ["Longitude of n
17e0: 61 74 75 72 61 6c 20 6f 72 69 67 69 6e 22 2c 39  atural origin",9
17f0: 2c 0d 0a 20 20 20 20 20 20 20 20 20 20 20 20 41  ,..            A
1800: 4e 47 4c 45 55 4e 49 54 5b 22 64 65 67 72 65 65  NGLEUNIT["degree
1810: 22 2c 30 2e 30 31 37 34 35 33 32 39 32 35 31 39  ",0.017453292519
1820: 39 34 33 33 5d 2c 0d 0a 20 20 20 20 20 20 20 20  9433],..        
1830: 20 20 20 20 49 44 5b 22 45 50 53 47 22 2c 38 38      ID["EPSG",88
1840: 30 32 5d 5d 2c 0d 0a 20 20 20 20 20 20 20 20 50  02]],..        P
1850: 41 52 41 4d 45 54 45 52 5b 22 53 63 61 6c 65 20  ARAMETER["Scale 
1860: 66 61 63 74 6f 72 20 61 74 20 6e 61 74 75 72 61  factor at natura
1870: 6c 20 6f 72 69 67 69 6e 22 2c 30 2e 39 39 39 36  l origin",0.9996
1880: 2c 0d 0a 20 20 20 20 20 20 20 20 20 20 20 20 53  ,..            S
1890: 43 41 4c 45 55 4e 49 54 5b 22 75 6e 69 74 79 22  CALEUNIT["unity"
18a0: 2c 31 5d 2c 0d 0a 20 20 20 20 20 20 20 20 20 20  ,1],..          
18b0: 20 20 49 44 5b 22 45 50 53 47 22 2c 38 38 30 35    ID["EPSG",8805
18c0: 5d 5d 2c 0d 0a 20 20 20 20 20 20 20 20 50 41 52  ]],..        PAR
18d0: 41 4d 45 54 45 52 5b 22 46 61 6c 73 65 20 65 61  AMETER["False ea
18e0: 73 74 69 6e 67 22 2c 31 35 30 30 30 30 30 2c 0d  sting",1500000,.
18f0: 0a 20 20 20 20 20 20 20 20 20 20 20 20 4c 45 4e  .            LEN
1900: 47 54 48 55 4e 49 54 5b 22 6d 65 74 72 65 22 2c  GTHUNIT["metre",
1910: 31 5d 2c 0d 0a 20 20 20 20 20 20 20 20 20 20 20  1],..           
1920: 20 49 44 5b 22 45 50 53 47 22 2c 38 38 30 36 5d   ID["EPSG",8806]
1930: 5d 2c 0d 0a 20 20 20 20 20 20 20 20 50 41 52 41  ],..        PARA
1940: 4d 45 54 45 52 5b 22 46 61 6c 73 65 20 6e 6f 72  METER["False nor
1950: 74 68 69 6e 67 22 2c 30 2c 0d 0a 20 20 20 20 20  thing",0,..     
1960: 20 20 20 20 20 20 20 4c 45 4e 47 54 48 55 4e 49         LENGTHUNI
1970: 54 5b 22 6d 65 74 72 65 22 2c 31 5d 2c 0d 0a 20  T["metre",1],.. 
1980: 20 20 20 20 20 20 20 20 20 20 20 49 44 5b 22 45             ID["E
1990: 50 53 47 22 2c 38 38 30 37 5d 5d 5d 2c 0d 0a 20  PSG",8807]]],.. 
19a0: 20 20 20 43 53 5b 43 61 72 74 65 73 69 61 6e 2c     CS[Cartesian,
19b0: 32 5d 2c 0d 0a 20 20 20 20 20 20 20 20 41 58 49  2],..        AXI
19c0: 53 5b 22 65 61 73 74 69 6e 67 20 28 58 29 22 2c  S["easting (X)",
19d0: 65 61 73 74 2c 0d 0a 20 20 20 20 20 20 20 20 20  east,..         
19e0: 20 20 20 4f 52 44 45 52 5b 31 5d 2c 0d 0a 20 20     ORDER[1],..  
19f0: 20 20 20 20 20 20 20 20 20 20 4c 45 4e 47 54 48            LENGTH
1a00: 55 4e 49 54 5b 22 6d 65 74 72 65 22 2c 31 5d 5d  UNIT["metre",1]]
1a10: 2c 0d 0a 20 20 20 20 20 20 20 20 41 58 49 53 5b  ,..        AXIS[
1a20: 22 6e 6f 72 74 68 69 6e 67 20 28 59 29 22 2c 6e  "northing (Y)",n
1a30: 6f 72 74 68 2c 0d 0a 20 20 20 20 20 20 20 20 20  orth,..         
1a40: 20 20 20 4f 52 44 45 52 5b 32 5d 2c 3c 62 72 3e     ORDER[2],<br>
1a50: 0d 0a 20 20 20 20 20 20 20 20 20 20 20 20 4c 45  ..            LE
1a60: 4e 47 54 48 55 4e 49 54 5b 22 6d 65 74 72 65 22  NGTHUNIT["metre"
1a70: 2c 31 5d 5d 2c 0d 0a 20 20 20 20 41 52 45 41 5b  ,1]],..    AREA[
1a80: 22 49 74 61 6c 79 20 2d 20 77 65 73 74 20 6f 66  "Italy - west of
1a90: 20 31 32 c2 b0 45 22 5d 2c 0d 0a 20 20 20 20 42   12..E"],..    B
1aa0: 42 4f 58 5b 33 36 2e 35 33 2c 35 2e 39 34 2c 34  BOX[36.53,5.94,4
1ab0: 37 2e 30 34 2c 31 32 5d 2c 0d 0a 20 20 20 20 49  7.04,12],..    I
1ac0: 44 5b 22 45 50 53 47 22 2c 33 30 30 33 5d 5d 0d  D["EPSG",3003]].
1ad0: 0a 3c 2f 76 65 72 62 61 74 69 6d 3e 3c 2f 74 64  .</verbatim></td
1ae0: 3e 0d 0a 3c 74 64 20 76 61 6c 69 67 6e 3d 22 74  >..<td valign="t
1af0: 6f 70 22 3e 3c 76 65 72 62 61 74 69 6d 3e 0d 0a  op"><verbatim>..
1b00: 47 45 4f 44 43 52 53 5b 22 57 47 53 20 38 34 22  GEODCRS["WGS 84"
1b10: 2c 0d 0a 20 20 20 20 44 41 54 55 4d 5b 22 57 6f  ,..    DATUM["Wo
1b20: 72 6c 64 20 47 65 6f 64 65 74 69 63 20 53 79 73  rld Geodetic Sys
1b30: 74 65 6d 20 31 39 38 34 22 2c 0d 0a 20 20 20 20  tem 1984",..    
1b40: 20 20 20 20 45 4c 4c 49 50 53 4f 49 44 5b 22 57      ELLIPSOID["W
1b50: 47 53 20 38 34 22 2c 36 33 37 38 31 33 37 2c 32  GS 84",6378137,2
1b60: 39 38 2e 32 35 37 32 32 33 35 36 33 2c 0d 0a 20  98.257223563,.. 
1b70: 20 20 20 20 20 20 20 20 20 20 20 4c 45 4e 47 54             LENGT
1b80: 48 55 4e 49 54 5b 22 6d 65 74 72 65 22 2c 31 5d  HUNIT["metre",1]
1b90: 5d 5d 2c 0d 0a 20 20 20 20 50 52 49 4d 45 4d 5b  ]],..    PRIMEM[
1ba0: 22 47 72 65 65 6e 77 69 63 68 22 2c 30 2c 0d 0a  "Greenwich",0,..
1bb0: 20 20 20 20 20 20 20 20 41 4e 47 4c 45 55 4e 49          ANGLEUNI
1bc0: 54 5b 22 64 65 67 72 65 65 22 2c 30 2e 30 31 37  T["degree",0.017
1bd0: 34 35 33 32 39 32 35 31 39 39 34 33 33 5d 5d 2c  4532925199433]],
1be0: 0d 0a 20 20 20 20 43 53 5b 65 6c 6c 69 70 73 6f  ..    CS[ellipso
1bf0: 69 64 61 6c 2c 32 5d 2c 0d 0a 20 20 20 20 20 20  idal,2],..      
1c00: 20 20 41 58 49 53 5b 22 67 65 6f 64 65 74 69 63    AXIS["geodetic
1c10: 20 6c 61 74 69 74 75 64 65 20 28 4c 61 74 29 22   latitude (Lat)"
1c20: 2c 6e 6f 72 74 68 2c 0d 0a 20 20 20 20 20 20 20  ,north,..       
1c30: 20 20 20 20 20 4f 52 44 45 52 5b 31 5d 2c 0d 0a       ORDER[1],..
1c40: 20 20 20 20 20 20 20 20 20 20 20 20 41 4e 47 4c              ANGL
1c50: 45 55 4e 49 54 5b 22 64 65 67 72 65 65 22 2c 30  EUNIT["degree",0
1c60: 2e 30 31 37 34 35 33 32 39 32 35 31 39 39 34 33  .017453292519943
1c70: 33 5d 5d 2c 0d 0a 20 20 20 20 20 20 20 20 41 58  3]],..        AX
1c80: 49 53 5b 22 67 65 6f 64 65 74 69 63 20 6c 6f 6e  IS["geodetic lon
1c90: 67 69 74 75 64 65 20 28 4c 6f 6e 29 22 2c 65 61  gitude (Lon)",ea
1ca0: 73 74 2c 0d 0a 20 20 20 20 20 20 20 20 20 20 20  st,..           
1cb0: 20 4f 52 44 45 52 5b 32 5d 2c 0d 0a 20 20 20 20   ORDER[2],..    
1cc0: 20 20 20 20 20 20 20 20 41 4e 47 4c 45 55 4e 49          ANGLEUNI
1cd0: 54 5b 22 64 65 67 72 65 65 22 2c 30 2e 30 31 37  T["degree",0.017
1ce0: 34 35 33 32 39 32 35 31 39 39 34 33 33 5d 5d 2c  4532925199433]],
1cf0: 0d 0a 20 20 20 20 41 52 45 41 5b 22 57 6f 72 6c  ..    AREA["Worl
1d00: 64 22 5d 2c 0d 0a 20 20 20 20 42 42 4f 58 5b 2d  d"],..    BBOX[-
1d10: 39 30 2c 2d 31 38 30 2c 39 30 2c 31 38 30 5d 2c  90,-180,90,180],
1d20: 0d 0a 20 20 20 20 49 44 5b 22 45 50 53 47 22 2c  ..    ID["EPSG",
1d30: 34 33 32 36 5d 5d 0d 0a 3c 2f 76 65 72 62 61 74  4326]]..</verbat
1d40: 69 6d 3e 3c 2f 74 64 3e 0d 0a 3c 74 64 20 76 61  im></td>..<td va
1d50: 6c 69 67 6e 3d 22 74 6f 70 22 3e 3c 76 65 72 62  lign="top"><verb
1d60: 61 74 69 6d 3e 0d 0a 50 52 4f 4a 43 52 53 5b 22  atim>..PROJCRS["
1d70: 57 47 53 20 38 34 20 2f 20 55 54 4d 20 7a 6f 6e  WGS 84 / UTM zon
1d80: 65 20 33 32 4e 22 2c 0d 0a 20 20 20 20 42 41 53  e 32N",..    BAS
1d90: 45 47 45 4f 44 43 52 53 5b 22 57 47 53 20 38 34  EGEODCRS["WGS 84
1da0: 22 2c 0d 0a 20 20 20 20 20 20 20 20 44 41 54 55  ",..        DATU
1db0: 4d 5b 22 57 6f 72 6c 64 20 47 65 6f 64 65 74 69  M["World Geodeti
1dc0: 63 20 53 79 73 74 65 6d 20 31 39 38 34 22 2c 0d  c System 1984",.
1dd0: 0a 20 20 20 20 20 20 20 20 20 20 20 20 45 4c 4c  .            ELL
1de0: 49 50 53 4f 49 44 5b 22 57 47 53 20 38 34 22 2c  IPSOID["WGS 84",
1df0: 36 33 37 38 31 33 37 2c 32 39 38 2e 32 35 37 32  6378137,298.2572
1e00: 32 33 35 36 33 2c 0d 0a 20 20 20 20 20 20 20 20  23563,..        
1e10: 20 20 20 20 20 20 20 20 4c 45 4e 47 54 48 55 4e          LENGTHUN
1e20: 49 54 5b 22 6d 65 74 72 65 22 2c 31 5d 5d 5d 2c  IT["metre",1]]],
1e30: 0d 0a 20 20 20 20 20 20 20 20 50 52 49 4d 45 4d  ..        PRIMEM
1e40: 5b 22 47 72 65 65 6e 77 69 63 68 22 2c 30 2c 0d  ["Greenwich",0,.
1e50: 0a 20 20 20 20 20 20 20 20 20 20 20 20 41 4e 47  .            ANG
1e60: 4c 45 55 4e 49 54 5b 22 64 65 67 72 65 65 22 2c  LEUNIT["degree",
1e70: 30 2e 30 31 37 34 35 33 32 39 32 35 31 39 39 34  0.01745329251994
1e80: 33 33 5d 5d 5d 2c 0d 0a 20 20 20 20 43 4f 4e 56  33]]],..    CONV
1e90: 45 52 53 49 4f 4e 5b 22 55 54 4d 20 7a 6f 6e 65  ERSION["UTM zone
1ea0: 20 33 32 4e 22 2c 0d 0a 20 20 20 20 20 20 20 20   32N",..        
1eb0: 4d 45 54 48 4f 44 5b 22 54 72 61 6e 73 76 65 72  METHOD["Transver
1ec0: 73 65 20 4d 65 72 63 61 74 6f 72 22 2c 0d 0a 20  se Mercator",.. 
1ed0: 20 20 20 20 20 20 20 20 20 20 20 49 44 5b 22 45             ID["E
1ee0: 50 53 47 22 2c 39 38 30 37 5d 5d 2c 0d 0a 20 20  PSG",9807]],..  
1ef0: 20 20 20 20 20 20 50 41 52 41 4d 45 54 45 52 5b        PARAMETER[
1f00: 22 4c 61 74 69 74 75 64 65 20 6f 66 20 6e 61 74  "Latitude of nat
1f10: 75 72 61 6c 20 6f 72 69 67 69 6e 22 2c 30 2c 0d  ural origin",0,.
1f20: 0a 20 20 20 20 20 20 20 20 20 20 20 20 41 4e 47  .            ANG
1f30: 4c 45 55 4e 49 54 5b 22 64 65 67 72 65 65 22 2c  LEUNIT["degree",
1f40: 30 2e 30 31 37 34 35 33 32 39 32 35 31 39 39 34  0.01745329251994
1f50: 33 33 5d 2c 0d 0a 20 20 20 20 20 20 20 20 20 20  33],..          
1f60: 20 20 49 44 5b 22 45 50 53 47 22 2c 38 38 30 31    ID["EPSG",8801
1f70: 5d 5d 2c 0d 0a 20 20 20 20 20 20 20 20 50 41 52  ]],..        PAR
1f80: 41 4d 45 54 45 52 5b 22 4c 6f 6e 67 69 74 75 64  AMETER["Longitud
1f90: 65 20 6f 66 20 6e 61 74 75 72 61 6c 20 6f 72 69  e of natural ori
1fa0: 67 69 6e 22 2c 39 2c 0d 0a 20 20 20 20 20 20 20  gin",9,..       
1fb0: 20 20 20 20 20 41 4e 47 4c 45 55 4e 49 54 5b 22       ANGLEUNIT["
1fc0: 64 65 67 72 65 65 22 2c 30 2e 30 31 37 34 35 33  degree",0.017453
1fd0: 32 39 32 35 31 39 39 34 33 33 5d 2c 0d 0a 20 20  2925199433],..  
1fe0: 20 20 20 20 20 20 20 20 20 20 49 44 5b 22 45 50            ID["EP
1ff0: 53 47 22 2c 38 38 30 32 5d 5d 2c 0d 0a 20 20 20  SG",8802]],..   
2000: 20 20 20 20 20 50 41 52 41 4d 45 54 45 52 5b 22       PARAMETER["
2010: 53 63 61 6c 65 20 66 61 63 74 6f 72 20 61 74 20  Scale factor at 
2020: 6e 61 74 75 72 61 6c 20 6f 72 69 67 69 6e 22 2c  natural origin",
2030: 30 2e 39 39 39 36 2c 0d 0a 20 20 20 20 20 20 20  0.9996,..       
2040: 20 20 20 20 20 53 43 41 4c 45 55 4e 49 54 5b 22       SCALEUNIT["
2050: 75 6e 69 74 79 22 2c 31 5d 2c 0d 0a 20 20 20 20  unity",1],..    
2060: 20 20 20 20 20 20 20 20 49 44 5b 22 45 50 53 47          ID["EPSG
2070: 22 2c 38 38 30 35 5d 5d 2c 0d 0a 20 20 20 20 20  ",8805]],..     
2080: 20 20 20 50 41 52 41 4d 45 54 45 52 5b 22 46 61     PARAMETER["Fa
2090: 6c 73 65 20 65 61 73 74 69 6e 67 22 2c 35 30 30  lse easting",500
20a0: 30 30 30 2c 0d 0a 20 20 20 20 20 20 20 20 20 20  000,..          
20b0: 20 20 4c 45 4e 47 54 48 55 4e 49 54 5b 22 6d 65    LENGTHUNIT["me
20c0: 74 72 65 22 2c 31 5d 2c 0d 0a 20 20 20 20 20 20  tre",1],..      
20d0: 20 20 20 20 20 20 49 44 5b 22 45 50 53 47 22 2c        ID["EPSG",
20e0: 38 38 30 36 5d 5d 2c 0d 0a 20 20 20 20 20 20 20  8806]],..       
20f0: 20 50 41 52 41 4d 45 54 45 52 5b 22 46 61 6c 73   PARAMETER["Fals
2100: 65 20 6e 6f 72 74 68 69 6e 67 22 2c 30 2c 0d 0a  e northing",0,..
2110: 20 20 20 20 20 20 20 20 20 20 20 20 4c 45 4e 47              LENG
2120: 54 48 55 4e 49 54 5b 22 6d 65 74 72 65 22 2c 31  THUNIT["metre",1
2130: 5d 2c 0d 0a 20 20 20 20 20 20 20 20 20 20 20 20  ],..            
2140: 49 44 5b 22 45 50 53 47 22 2c 38 38 30 37 5d 5d  ID["EPSG",8807]]
2150: 5d 2c 0d 0a 20 20 20 20 43 53 5b 43 61 72 74 65  ],..    CS[Carte
2160: 73 69 61 6e 2c 32 5d 2c 0d 0a 20 20 20 20 20 20  sian,2],..      
2170: 20 20 41 58 49 53 5b 22 28 45 29 22 2c 65 61 73    AXIS["(E)",eas
2180: 74 2c 0d 0a 20 20 20 20 20 20 20 20 20 20 20 20  t,..            
2190: 4f 52 44 45 52 5b 31 5d 2c 0d 0a 20 20 20 20 20  ORDER[1],..     
21a0: 20 20 20 20 20 20 20 4c 45 4e 47 54 48 55 4e 49         LENGTHUNI
21b0: 54 5b 22 6d 65 74 72 65 22 2c 31 5d 5d 2c 0d 0a  T["metre",1]],..
21c0: 20 20 20 20 20 20 20 20 41 58 49 53 5b 22 28 4e          AXIS["(N
21d0: 29 22 2c 6e 6f 72 74 68 2c 0d 0a 20 20 20 20 20  )",north,..     
21e0: 20 20 20 20 20 20 20 4f 52 44 45 52 5b 32 5d 2c         ORDER[2],
21f0: 0d 0a 20 20 20 20 20 20 20 20 20 20 20 20 4c 45  ..            LE
2200: 4e 47 54 48 55 4e 49 54 5b 22 6d 65 74 72 65 22  NGTHUNIT["metre"
2210: 2c 31 5d 5d 2c 0d 0a 20 20 20 20 41 52 45 41 5b  ,1]],..    AREA[
2220: 22 57 6f 72 6c 64 20 2d 20 4e 20 68 65 6d 69 73  "World - N hemis
2230: 70 68 65 72 65 20 2d 20 36 c2 b0 45 20 74 6f 20  phere - 6..E to 
2240: 31 32 c2 b0 45 20 2d 20 62 79 20 63 6f 75 6e 74  12..E - by count
2250: 72 79 22 5d 2c 0d 0a 20 20 20 20 42 42 4f 58 5b  ry"],..    BBOX[
2260: 30 2c 36 2c 38 34 2c 31 32 5d 2c 0d 0a 20 20 20  0,6,84,12],..   
2270: 20 49 44 5b 22 45 50 53 47 22 2c 33 32 36 33 32   ID["EPSG",32632
2280: 5d 5d 0d 0a 3c 2f 76 65 72 62 61 74 69 6d 3e 3c  ]]..</verbatim><
2290: 2f 74 64 3e 0d 0a 3c 2f 74 72 3e 0d 0a 3c 2f 74  /td>..</tr>..</t
22a0: 61 62 6c 65 3e 0d 0a 3c 62 72 3e 0d 0a 41 73 20  able>..<br>..As 
22b0: 79 6f 75 20 63 61 6e 20 65 61 73 69 6c 79 20 6e  you can easily n
22c0: 6f 74 69 63 65 2c 20 74 68 65 20 74 77 6f 20 6e  otice, the two n
22d0: 6f 74 61 74 69 6f 6e 73 20 61 72 65 20 70 72 6f  otations are pro
22e0: 66 6f 75 6e 64 6c 79 20 64 69 66 66 65 72 65 6e  foundly differen
22f0: 74 2e 0d 0a 54 68 65 20 6f 6c 64 20 3c 62 3e 70  t...The old <b>p
2300: 72 6f 6a 2d 73 74 72 69 6e 67 3c 2f 62 3e 20 6e  roj-string</b> n
2310: 6f 74 61 74 69 6f 6e 20 69 73 20 65 78 74 72 65  otation is extre
2320: 6d 65 6c 79 20 63 6f 6e 63 69 73 65 20 61 6e 64  mely concise and
2330: 20 72 6f 75 67 68 2c 20 77 68 69 6c 73 74 20 74   rough, whilst t
2340: 68 65 20 6e 65 77 20 3c 62 3e 49 53 4f 2d 57 4b  he new <b>ISO-WK
2350: 54 3c 2f 62 3e 20 69 73 20 76 65 72 62 6f 73 65  T</b> is verbose
2360: 20 62 75 74 20 65 78 68 61 75 73 74 69 76 65 2c   but exhaustive,
2370: 20 64 65 74 61 69 6c 65 64 20 61 6e 64 20 70 72   detailed and pr
2380: 65 63 69 73 65 2e 3c 62 72 3e 0d 0a 54 68 65 72  ecise.<br>..Ther
2390: 65 20 69 73 20 6e 6f 20 70 6f 73 73 69 62 6c 65  e is no possible
23a0: 20 6d 61 74 63 68 3a 20 49 53 4f 2d 57 4b 54 20   match: ISO-WKT 
23b0: 69 73 20 63 6c 65 61 72 6c 79 20 73 75 70 65 72  is clearly super
23c0: 69 6f 72 20 61 6e 64 20 6d 6f 72 65 20 73 6f 70  ior and more sop
23d0: 68 69 73 74 69 63 61 74 65 64 20 75 6e 64 65 72  histicated under
23e0: 20 61 6e 79 20 70 6f 73 73 69 62 6c 65 20 61 73   any possible as
23f0: 70 65 63 74 2e 3c 62 72 3e 0d 0a 4e 6f 74 20 61  pect.<br>..Not a
2400: 74 20 61 6c 6c 20 73 75 72 70 72 69 73 69 6e 67  t all surprising
2410: 6c 79 2c 20 63 6f 6f 72 64 69 6e 61 74 65 20 74  ly, coordinate t
2420: 72 61 6e 73 66 6f 72 6d 61 74 69 6f 6e 73 20 62  ransformations b
2430: 61 73 65 64 20 6f 6e 20 49 53 4f 2d 57 4b 54 20  ased on ISO-WKT 
2440: 64 65 66 69 6e 69 74 69 6f 6e 73 20 28 69 6e 73  definitions (ins
2450: 74 65 61 64 20 6f 66 20 70 72 6f 6a 2d 73 74 72  tead of proj-str
2460: 69 6e 67 73 29 20 61 72 65 20 75 73 75 61 6c 6c  ings) are usuall
2470: 79 20 65 78 70 65 63 74 65 64 20 74 6f 20 62 65  y expected to be
2480: 20 6d 6f 72 65 20 61 63 63 75 72 61 74 65 2e 3c   more accurate.<
2490: 62 72 3e 3c 62 72 3e 0d 0a 41 6e 64 20 74 68 61  br><br>..And tha
24a0: 74 27 73 20 6e 6f 74 20 61 6c 6c 3b 20 74 68 65  t's not all; the
24b0: 20 6f 6c 64 20 3c 62 3e 70 72 6f 6a 2d 73 74 72   old <b>proj-str
24c0: 69 6e 67 73 3c 2f 62 3e 20 77 65 72 65 6e 27 74  ings</b> weren't
24d0: 20 66 6f 72 6d 61 6c 6c 79 20 64 65 66 69 6e 65   formally define
24e0: 64 20 62 79 20 61 6e 79 20 73 74 61 6e 64 61 72  d by any standar
24f0: 64 2c 20 61 6e 64 20 6f 6e 6c 79 20 50 52 4f 4a  d, and only PROJ
2500: 2c 20 47 44 41 4c 20 61 6e 64 20 66 65 77 20 6f  , GDAL and few o
2510: 74 68 65 72 20 46 4c 4f 53 53 20 2f 20 47 46 4f  ther FLOSS / GFO
2520: 53 53 20 69 6d 70 6c 65 6d 65 6e 74 61 74 69 6f  SS implementatio
2530: 6e 73 20 63 61 6e 20 75 6e 64 65 72 73 74 61 6e  ns can understan
2540: 64 20 74 68 65 6d 2e 3c 62 72 3e 0d 0a 41 74 20  d them.<br>..At 
2550: 74 68 65 20 6f 70 70 6f 73 69 74 65 2c 20 74 68  the opposite, th
2560: 65 20 6e 65 77 20 3c 62 3e 49 53 4f 2d 57 4b 54  e new <b>ISO-WKT
2570: 3c 2f 62 3e 20 69 73 20 66 6f 72 6d 61 6c 6c 79  </b> is formally
2580: 20 64 65 66 69 6e 65 64 20 62 79 20 61 6e 20 69   defined by an i
2590: 6e 74 65 72 6e 61 74 69 6f 6e 61 6c 20 73 74 61  nternational sta
25a0: 6e 64 61 72 64 2c 20 61 6e 64 20 61 6c 6d 6f 73  ndard, and almos
25b0: 74 20 61 6c 6c 20 66 72 65 65 20 61 6e 64 20 70  t all free and p
25c0: 72 6f 70 72 69 65 74 61 72 79 20 69 6d 70 6c 65  roprietary imple
25d0: 6d 65 6e 74 61 74 69 6f 6e 73 20 61 72 65 20 65  mentations are e
25e0: 78 70 65 63 74 65 64 20 74 6f 20 73 75 70 70 6f  xpected to suppo
25f0: 72 74 20 69 74 2e 3c 62 72 3e 3c 62 72 3e 0d 0a  rt it.<br><br>..
2600: 3c 74 61 62 6c 65 20 63 65 6c 6c 73 70 61 63 69  <table cellspaci
2610: 6e 67 3d 22 38 22 20 63 65 6c 6c 70 61 64 64 69  ng="8" cellpaddi
2620: 6e 67 3d 22 31 36 22 20 62 67 63 6f 6c 6f 72 3d  ng="16" bgcolor=
2630: 22 23 66 66 66 66 65 39 22 3e 0d 0a 3c 74 72 3e  "#ffffe9">..<tr>
2640: 3c 74 64 3e 0d 0a 3c 62 3e 3c 75 3e 49 6d 70 6f  <td>..<b><u>Impo
2650: 72 74 61 6e 74 20 6e 6f 74 69 63 65 3c 2f 75 3e  rtant notice</u>
2660: 3c 2f 62 3e 3a 20 74 68 65 72 65 20 61 72 65 20  </b>: there are 
2670: 73 65 76 65 72 61 6c 20 64 69 61 6c 65 63 74 73  several dialects
2680: 20 69 6e 20 74 68 65 20 57 4b 54 20 6e 6f 74 61   in the WKT nota
2690: 74 69 6f 6e 20 64 65 73 63 72 69 62 69 6e 67 20  tion describing 
26a0: 43 52 53 65 73 2e 3c 62 72 3e 0d 0a 41 6c 6c 20  CRSes.<br>..All 
26b0: 74 68 65 6d 20 73 68 61 72 65 20 74 68 65 20 73  them share the s
26c0: 61 6d 65 20 63 6f 6d 6d 6f 6e 20 63 6f 72 65 20  ame common core 
26d0: 61 6e 64 20 6d 61 69 6e 6c 79 20 64 69 66 66 65  and mainly diffe
26e0: 72 20 69 6e 20 66 65 77 20 6d 69 6e 6f 72 20 64  r in few minor d
26f0: 65 74 61 69 6c 73 2e 3c 62 72 3e 0d 0a 50 52 4f  etails.<br>..PRO
2700: 4a 2e 36 20 63 61 6e 20 75 6e 64 65 72 73 74 61  J.6 can understa
2710: 6e 64 20 74 68 65 20 66 6f 6c 6c 6f 77 69 6e 67  nd the following
2720: 20 64 69 61 6c 65 63 74 73 3a 0d 0a 3c 6f 6c 3e   dialects:..<ol>
2730: 0d 0a 3c 6c 69 3e 3c 62 3e 45 53 52 49 20 57 4b  ..<li><b>ESRI WK
2740: 54 3c 2f 62 3e 3a 20 61 20 64 69 61 6c 65 63 74  T</b>: a dialect
2750: 20 77 69 64 65 6c 79 20 61 64 6f 70 74 65 64 20   widely adopted 
2760: 62 79 20 45 53 52 49 20 70 72 6f 70 72 69 65 74  by ESRI propriet
2770: 61 72 79 20 73 6f 66 74 77 61 72 65 2e 3c 2f 6c  ary software.</l
2780: 69 3e 0d 0a 3c 6c 69 3e 3c 62 3e 47 44 41 4c 20  i>..<li><b>GDAL 
2790: 57 4b 54 31 3c 2f 62 3e 3a 20 61 20 64 69 61 6c  WKT1</b>: a dial
27a0: 65 63 74 20 68 69 73 74 6f 72 69 63 61 6c 6c 79  ect historically
27b0: 20 73 75 70 70 6f 72 74 65 64 20 62 79 20 74 68   supported by th
27c0: 65 20 6f 70 65 6e 20 73 6f 75 72 63 65 20 47 44  e open source GD
27d0: 41 4c 20 6c 69 62 72 61 72 79 2e 3c 2f 6c 69 3e  AL library.</li>
27e0: 0d 0a 3c 6c 69 3e 3c 62 3e 57 4b 54 32 3a 32 30  ..<li><b>WKT2:20
27f0: 31 35 3c 2f 62 3e 3a 20 61 73 20 64 65 66 69 6e  15</b>: as defin
2800: 65 64 20 62 79 20 3c 62 3e 49 53 4f 20 31 39 31  ed by <b>ISO 191
2810: 36 32 3a 32 30 31 35 3c 2f 62 3e 20 73 74 61 6e  62:2015</b> stan
2820: 64 61 72 64 20 73 70 65 63 69 66 69 63 61 74 69  dard specificati
2830: 6f 6e 20 28 6e 6f 77 20 73 75 70 65 72 73 65 64  on (now supersed
2840: 65 64 29 2e 3c 2f 6c 69 3e 0d 0a 3c 6c 69 3e 3c  ed).</li>..<li><
2850: 62 3e 57 4b 54 32 3a 32 30 31 38 3c 2f 62 3e 3a  b>WKT2:2018</b>:
2860: 20 61 73 20 64 65 66 69 6e 65 64 20 62 79 20 74   as defined by t
2870: 68 65 20 6d 6f 72 65 20 72 65 63 65 6e 74 20 3c  he more recent <
2880: 62 3e 49 53 4f 20 31 39 31 36 32 3a 32 30 31 38  b>ISO 19162:2018
2890: 3c 2f 62 3e 20 73 74 61 6e 64 61 72 64 20 73 70  </b> standard sp
28a0: 65 63 69 66 69 63 61 74 69 6f 6e 20 2e 3c 2f 6c  ecification .</l
28b0: 69 3e 0d 0a 3c 2f 6f 6c 3e 0d 0a 3c 2f 74 64 3e  i>..</ol>..</td>
28c0: 3c 2f 74 72 3e 0d 0a 3c 2f 74 61 62 6c 65 3e 3c  </tr>..</table><
28d0: 62 72 3e 0d 0a 3c 68 33 3e 54 72 61 6e 73 66 6f  br>..<h3>Transfo
28e0: 72 6d 61 74 69 6f 6e 20 70 69 70 65 6c 69 6e 65  rmation pipeline
28f0: 73 3c 2f 68 33 3e 0d 0a 54 68 65 72 65 20 69 73  s</h3>..There is
2900: 20 61 20 73 65 63 6f 6e 64 20 61 73 74 6f 6e 69   a second astoni
2910: 73 68 69 6e 67 20 69 6d 70 72 6f 76 65 6d 65 6e  shing improvemen
2920: 74 20 73 75 70 70 6f 72 74 65 64 20 62 79 20 50  t supported by P
2930: 52 4f 4a 2e 36 2c 20 74 68 61 74 20 61 72 65 20  ROJ.6, that are 
2940: 3c 62 3e 3c 69 3e 74 72 61 6e 73 66 6f 72 6d 61  <b><i>transforma
2950: 74 69 6f 6e 20 70 69 70 65 6c 69 6e 65 73 3c 2f  tion pipelines</
2960: 69 3e 3c 2f 62 3e 2e 3c 62 72 3e 0d 0a 57 68 65  i></b>.<br>..Whe
2970: 6e 20 75 73 69 6e 67 20 61 20 3c 62 3e 3c 69 3e  n using a <b><i>
2980: 70 69 70 65 6c 69 6e 65 3c 2f 69 3e 3c 2f 62 3e  pipeline</i></b>
2990: 20 79 6f 75 20 63 61 6e 20 66 72 65 65 6c 79 20   you can freely 
29a0: 64 65 66 69 6e 65 20 61 6e 79 20 63 6f 6d 70 6c  define any compl
29b0: 65 78 20 67 65 6f 64 65 74 69 63 20 74 72 61 6e  ex geodetic tran
29c0: 73 66 6f 72 6d 61 74 69 6f 6e 20 62 79 20 63 68  sformation by ch
29d0: 61 69 6e 69 6e 67 20 74 6f 67 65 74 68 65 72 20  aining together 
29e0: 6d 61 6e 79 20 65 6c 65 6d 65 6e 74 61 72 79 20  many elementary 
29f0: 73 74 65 70 73 20 73 75 63 68 20 61 73 20 63 6f  steps such as co
2a00: 6e 76 65 72 73 69 6f 6e 2c 20 74 72 61 6e 73 66  nversion, transf
2a10: 6f 72 6d 61 74 69 6f 6e 2c 20 70 72 6f 6a 65 63  ormation, projec
2a20: 74 69 6f 6e 2c 20 61 78 69 73 20 73 77 61 70 20  tion, axis swap 
2a30: 61 6e 64 20 73 6f 20 6f 6e 2e 3c 62 72 3e 0d 0a  and so on.<br>..
2a40: 41 20 70 69 70 65 6c 69 6e 65 20 69 73 20 63 6f  A pipeline is co
2a50: 6e 63 65 70 74 75 61 6c 6c 79 20 73 69 6d 69 6c  nceptually simil
2a60: 61 72 20 74 6f 20 61 20 55 4e 49 58 20 73 68 65  ar to a UNIX she
2a70: 6c 6c 20 73 63 72 69 70 74 2c 20 77 69 74 68 20  ll script, with 
2a80: 61 20 64 61 74 61 66 6c 6f 77 20 72 65 67 75 6c  a dataflow regul
2a90: 61 72 6c 79 20 70 72 6f 63 65 64 69 6e 67 20 66  arly proceding f
2aa0: 6f 72 77 61 72 64 20 66 72 6f 6d 20 73 74 65 70  orward from step
2ab0: 20 74 6f 20 73 74 65 70 20 75 6e 74 69 6c 20 70   to step until p
2ac0: 72 6f 64 75 63 69 6e 67 20 74 68 65 20 66 69 6e  roducing the fin
2ad0: 61 6c 20 72 65 73 75 6c 74 2e 3c 62 72 3e 0d 0a  al result.<br>..
2ae0: 54 68 65 20 66 6f 6c 6c 6f 77 69 6e 67 20 69 73  The following is
2af0: 20 61 20 70 72 61 63 74 69 61 6c 20 65 78 61 6d   a practial exam
2b00: 70 6c 65 20 6f 66 20 61 20 70 69 70 65 6c 69 6e  ple of a pipelin
2b10: 65 20 63 6f 72 72 65 73 70 6f 6e 64 69 6e 67 20  e corresponding 
2b20: 74 6f 20 61 20 74 72 61 6e 73 66 6f 72 6d 61 74  to a transformat
2b30: 69 6f 6e 20 66 72 6f 6d 20 3c 62 3e 45 50 53 47  ion from <b>EPSG
2b40: 3a 34 33 32 36 3c 2f 62 3e 20 3c 69 3e 57 47 53  :4326</b> <i>WGS
2b50: 20 38 34 3c 2f 69 3e 20 74 6f 20 3c 62 3e 45 50   84</i> to <b>EP
2b60: 53 47 3a 33 32 36 33 32 3c 2f 62 3e 20 3c 69 3e  SG:32632</b> <i>
2b70: 57 47 53 20 38 34 20 2f 20 55 54 4d 20 7a 6f 6e  WGS 84 / UTM zon
2b80: 65 20 33 32 4e 3c 2f 69 3e 3a 0d 0a 3c 76 65 72  e 32N</i>:..<ver
2b90: 62 61 74 69 6d 3e 0d 0a 2b 70 72 6f 6a 3d 70 69  batim>..+proj=pi
2ba0: 70 65 6c 69 6e 65 20 0d 0a 2b 73 74 65 70 20 2b  peline ..+step +
2bb0: 70 72 6f 6a 3d 61 78 69 73 73 77 61 70 20 2b 6f  proj=axisswap +o
2bc0: 72 64 65 72 3d 32 2c 31 20 0d 0a 2b 73 74 65 70  rder=2,1 ..+step
2bd0: 20 2b 70 72 6f 6a 3d 75 6e 69 74 63 6f 6e 76 65   +proj=unitconve
2be0: 72 74 20 2b 78 79 5f 69 6e 3d 64 65 67 20 2b 78  rt +xy_in=deg +x
2bf0: 79 5f 6f 75 74 3d 72 61 64 20 0d 0a 2b 73 74 65  y_out=rad ..+ste
2c00: 70 20 2b 70 72 6f 6a 3d 75 74 6d 20 2b 7a 6f 6e  p +proj=utm +zon
2c10: 65 3d 33 32 20 2b 65 6c 6c 70 73 3d 57 47 53 38  e=32 +ellps=WGS8
2c20: 34 0d 0a 3c 2f 76 65 72 62 61 74 69 6d 3e 0d 0a  4..</verbatim>..
2c30: 3c 74 61 62 6c 65 20 63 65 6c 6c 73 70 61 63 69  <table cellspaci
2c40: 6e 67 3d 22 38 22 20 63 65 6c 6c 70 61 64 64 69  ng="8" cellpaddi
2c50: 6e 67 3d 22 31 36 22 20 62 67 63 6f 6c 6f 72 3d  ng="16" bgcolor=
2c60: 22 23 66 66 66 66 64 30 22 3e 0d 0a 3c 74 72 3e  "#ffffd0">..<tr>
2c70: 3c 74 64 3e 0d 0a 3c 62 3e 3c 75 3e 55 73 65 66  <td>..<b><u>Usef
2c80: 75 6c 20 68 69 6e 74 3c 2f 75 3e 3c 2f 62 3e 3a  ul hint</u></b>:
2c90: 20 50 52 4f 4a 2e 36 20 73 75 70 70 6f 72 74 73   PROJ.6 supports
2ca0: 20 61 20 6e 65 77 20 43 4c 49 20 74 6f 6f 6c 20   a new CLI tool 
2cb0: 28 3c 62 3e 70 72 6f 6a 69 6e 66 6f 3c 2f 62 3e  (<b>projinfo</b>
2cc0: 29 20 66 6f 72 20 69 6e 73 70 65 63 74 69 6e 67  ) for inspecting
2cd0: 20 69 6e 20 66 75 6c 6c 20 64 65 74 61 69 6c 20   in full detail 
2ce0: 74 68 65 20 69 6e 74 65 72 6e 61 6c 20 64 65 66  the internal def
2cf0: 69 6e 69 74 69 6f 6e 73 20 6f 66 20 43 52 53 65  initions of CRSe
2d00: 73 2c 20 54 72 61 6e 73 66 6f 72 6d 61 74 69 6f  s, Transformatio
2d10: 6e 73 20 65 74 63 2e 3c 62 72 3e 0d 0a 54 68 65  ns etc.<br>..The
2d20: 20 61 62 6f 76 65 20 70 69 70 65 6c 69 6e 65 20   above pipeline 
2d30: 69 73 20 73 69 6d 70 6c 79 20 74 68 65 20 6f 75  is simply the ou
2d40: 74 70 75 74 20 6f 66 20 74 68 65 20 66 6f 6c 6c  tput of the foll
2d50: 6f 77 69 6e 67 20 63 6f 6d 6d 61 6e 64 3a 0d 0a  owing command:..
2d60: 3c 76 65 72 62 61 74 69 6d 3e 0d 0a 70 72 6f 6a  <verbatim>..proj
2d70: 69 6e 66 6f 20 2d 73 20 45 50 53 47 3a 34 33 32  info -s EPSG:432
2d80: 36 20 2d 74 20 45 50 53 47 3a 33 32 36 33 32 20  6 -t EPSG:32632 
2d90: 2d 6f 20 70 72 6f 6a 0d 0a 3c 2f 76 65 72 62 61  -o proj..</verba
2da0: 74 69 6d 3e 0d 0a 3c 62 3e 70 72 6f 6a 69 6e 66  tim>..<b>projinf
2db0: 6f 3c 2f 62 3e 20 69 73 20 61 20 76 65 72 79 20  o</b> is a very 
2dc0: 70 72 65 63 69 6f 75 73 20 72 65 73 6f 75 72 63  precious resourc
2dd0: 65 3b 20 64 6f 6e 27 74 20 65 73 69 74 61 74 65  e; don't esitate
2de0: 20 74 6f 20 66 72 65 71 75 65 6e 74 6c 79 20 75   to frequently u
2df0: 73 65 20 69 74 20 69 6e 20 6f 72 64 65 72 20 74  se it in order t
2e00: 6f 20 64 69 73 63 6f 76 65 72 20 77 68 61 74 27  o discover what'
2e10: 73 20 72 65 61 6c 6c 79 20 68 61 70 70 65 6e 69  s really happeni
2e20: 6e 67 20 62 65 68 69 6e 64 20 74 68 65 20 73 63  ng behind the sc
2e30: 65 6e 65 73 2e 3c 62 72 3e 0d 0a 49 74 27 73 20  enes.<br>..It's 
2e40: 74 68 65 20 62 65 73 74 20 61 6e 64 20 65 61 73  the best and eas
2e50: 69 65 73 74 20 77 61 79 20 66 6f 72 20 66 75 6c  iest way for ful
2e60: 6c 79 20 75 6e 64 65 72 73 74 61 6e 74 69 6e 67  ly understanting
2e70: 20 68 6f 77 20 50 52 4f 4a 2e 36 20 64 6f 20 72   how PROJ.6 do r
2e80: 65 61 6c 6c 79 20 77 6f 72 6b 73 2e 0d 0a 3c 2f  eally works...</
2e90: 74 64 3e 3c 2f 74 72 3e 0d 0a 3c 2f 74 61 62 6c  td></tr>..</tabl
2ea0: 65 3e 3c 62 72 3e 0d 0a 3c 68 33 3e 54 68 65 20  e><br>..<h3>The 
2eb0: 70 72 69 76 61 74 65 20 53 51 4c 69 74 65 20 64  private SQLite d
2ec0: 61 74 61 62 61 73 65 20 73 75 70 70 6f 72 74 69  atabase supporti
2ed0: 6e 67 20 50 52 4f 4a 2e 36 3c 2f 68 33 3e 0d 0a  ng PROJ.6</h3>..
2ee0: 53 74 61 72 74 69 6e 67 20 73 69 6e 63 65 20 3c  Starting since <
2ef0: 62 3e 50 52 4f 4a 2e 36 3c 2f 62 3e 20 74 68 65  b>PROJ.6</b> the
2f00: 20 50 52 4f 4a 20 6c 69 62 72 61 72 79 20 72 65   PROJ library re
2f10: 71 75 69 72 65 73 20 61 6e 20 65 78 74 65 72 6e  quires an extern
2f20: 61 6c 20 53 51 4c 69 74 65 20 64 61 74 61 62 61  al SQLite databa
2f30: 73 65 20 63 6f 6e 74 61 69 6e 69 6e 67 20 61 6c  se containing al
2f40: 6c 20 64 65 66 69 6e 69 74 69 6f 6e 73 20 61 62  l definitions ab
2f50: 6f 75 74 20 73 75 70 70 6f 72 74 65 64 20 43 52  out supported CR
2f60: 53 65 73 2c 20 45 6c 6c 69 70 73 6f 69 64 73 2c  Ses, Ellipsoids,
2f70: 20 50 72 69 6d 65 20 4d 65 72 69 64 69 61 6e 73   Prime Meridians
2f80: 2c 20 55 6e 69 74 73 20 6f 66 20 4d 65 61 73 75  , Units of Measu
2f90: 72 65 2c 20 54 72 61 6e 73 66 6f 72 6d 61 74 69  re, Transformati
2fa0: 6f 6e 73 20 61 6e 64 20 61 6c 69 6b 65 2e 3c 62  ons and alike.<b
2fb0: 72 3e 0d 0a 4d 61 6e 79 20 6f 66 20 74 68 65 20  r>..Many of the 
2fc0: 6e 65 77 20 61 64 76 61 6e 63 65 64 20 50 52 4f  new advanced PRO
2fd0: 4a 27 73 20 41 50 49 20 77 69 6c 6c 20 66 61 69  J's API will fai
2fe0: 6c 20 69 66 20 73 75 63 68 20 64 61 74 61 62 61  l if such databa
2ff0: 73 65 20 69 73 20 6e 6f 74 20 61 76 61 69 6c 61  se is not availa
3000: 62 6c 65 20 61 74 20 72 75 6e 20 74 69 6d 65 2e  ble at run time.
3010: 0d 0a 3c 62 72 3e 3c 62 72 3e 0d 0a 3c 74 61 62  ..<br><br>..<tab
3020: 6c 65 20 63 65 6c 6c 73 70 61 63 69 6e 67 3d 22  le cellspacing="
3030: 38 22 20 63 65 6c 6c 70 61 64 64 69 6e 67 3d 22  8" cellpadding="
3040: 38 22 20 62 67 63 6f 6c 6f 72 3d 22 23 66 66 66  8" bgcolor="#fff
3050: 66 65 39 22 3e 0d 0a 3c 74 72 3e 3c 74 68 3e 0d  fe9">..<tr><th>.
3060: 0a 49 6e 20 6f 72 64 65 72 20 74 6f 20 6c 65 61  .In order to lea
3070: 72 6e 20 6d 6f 72 65 20 61 62 6f 75 74 20 74 68  rn more about th
3080: 65 20 6d 61 6e 79 20 69 6e 74 65 72 65 73 74 69  e many interesti
3090: 6e 67 20 63 6f 6f 6c 20 6e 65 77 20 66 65 61 74  ng cool new feat
30a0: 75 72 65 73 20 73 75 70 70 6f 72 74 65 64 20 62  ures supported b
30b0: 79 20 50 52 4f 4a 2e 36 20 70 6c 65 61 73 65 20  y PROJ.6 please 
30c0: 63 6f 6e 73 75 6c 74 20 74 68 65 20 3c 61 20 68  consult the <a h
30d0: 72 65 66 3d 22 68 74 74 70 73 3a 2f 2f 70 72 6f  ref="https://pro
30e0: 6a 34 2e 6f 72 67 2f 22 3e 6f 72 69 67 69 6e 61  j4.org/">origina
30f0: 6c 20 64 6f 63 75 6d 65 6e 74 61 74 69 6f 6e 3c  l documentation<
3100: 2f 61 3e 0d 0a 3c 2f 74 68 3e 3c 2f 74 72 3e 0d  /a>..</th></tr>.
3110: 0a 3c 2f 74 61 62 6c 65 3e 3c 62 72 3e 0d 0a 3c  .</table><br>..<
3120: 68 72 3e 0d 0a 3c 68 31 3e 53 70 61 74 69 61 4c  hr>..<h1>SpatiaL
3130: 69 74 65 2d 35 2e 30 2e 30 20 73 75 70 70 6f 72  ite-5.0.0 suppor
3140: 74 69 6e 67 20 50 52 4f 4a 2e 36 3c 2f 68 31 3e  ting PROJ.6</h1>
3150: 0d 0a 3c 68 33 3e 45 78 69 73 74 69 6e 67 20 53  ..<h3>Existing S
3160: 51 4c 20 66 75 6e 63 74 69 6f 6e 73 20 61 66 66  QL functions aff
3170: 65 63 74 65 64 20 62 79 20 50 52 4f 4a 2e 36 3c  ected by PROJ.6<
3180: 2f 68 33 3e 0d 0a 3c 74 61 62 6c 65 20 63 65 6c  /h3>..<table cel
3190: 6c 73 70 61 63 69 6e 67 3d 22 38 22 20 63 65 6c  lspacing="8" cel
31a0: 6c 70 61 64 64 69 6e 67 3d 22 38 22 20 62 67 63  lpadding="8" bgc
31b0: 6f 6c 6f 72 3d 22 23 65 38 66 66 65 38 22 20 62  olor="#e8ffe8" b
31c0: 6f 72 64 65 72 3d 22 31 22 3e 0d 0a 3c 74 72 3e  order="1">..<tr>
31d0: 3c 74 68 20 62 67 63 6f 6c 6f 72 3d 22 23 66 66  <th bgcolor="#ff
31e0: 62 30 33 65 22 3e 53 51 4c 20 46 75 6e 63 74 69  b03e">SQL Functi
31f0: 6f 6e 3c 2f 74 68 3e 3c 74 68 20 62 67 63 6f 6c  on</th><th bgcol
3200: 6f 72 3d 22 23 66 66 62 30 33 65 22 3e 45 78 74  or="#ffb03e">Ext
3210: 65 6e 64 65 64 20 73 69 67 6e 61 74 75 72 65 3c  ended signature<
3220: 2f 74 68 3e 3c 74 68 20 62 67 63 6f 6c 6f 72 3d  /th><th bgcolor=
3230: 22 23 66 66 62 30 33 65 22 3e 42 65 68 61 76 69  "#ffb03e">Behavi
3240: 6f 72 20 75 6e 64 65 72 20 50 52 4f 4a 2e 36 3c  or under PROJ.6<
3250: 2f 74 68 3e 3c 2f 74 72 3e 0d 0a 3c 74 72 3e 3c  /th></tr>..<tr><
3260: 74 64 3e 3c 62 3e 53 54 5f 54 72 61 6e 73 66 6f  td><b>ST_Transfo
3270: 72 6d 28 29 3c 2f 62 3e 3c 2f 74 64 3e 0d 0a 3c  rm()</b></td>..<
3280: 74 64 3e 0d 0a 3c 62 3e 53 54 5f 54 72 61 6e 73  td>..<b>ST_Trans
3290: 66 6f 72 6d 3c 2f 62 3e 20 28 20 67 65 6f 6d 20  form</b> ( geom 
32a0: 3c 69 3e 47 65 6f 6d 65 74 72 79 3c 2f 69 3e 20  <i>Geometry</i> 
32b0: 2c 20 6e 65 77 53 72 69 64 20 3c 69 3e 49 6e 74  , newSrid <i>Int
32c0: 65 67 65 72 3c 2f 69 3e 20 2c 20 61 72 65 61 20  eger</i> , area 
32d0: 3c 69 3e 47 65 6f 6d 65 74 72 79 3c 2f 69 3e 20  <i>Geometry</i> 
32e0: 29 20 3a 20 3c 69 3e 47 65 6f 6d 65 74 72 79 3c  ) : <i>Geometry<
32f0: 2f 69 3e 3c 68 72 3e 0d 0a 3c 62 3e 53 54 5f 54  /i><hr>..<b>ST_T
3300: 72 61 6e 73 66 6f 72 6d 3c 2f 62 3e 20 28 20 67  ransform</b> ( g
3310: 65 6f 6d 20 3c 69 3e 47 65 6f 6d 65 74 72 79 3c  eom <i>Geometry<
3320: 2f 69 3e 20 2c 20 6e 65 77 53 72 69 64 20 3c 69  /i> , newSrid <i
3330: 3e 49 6e 74 65 67 65 72 3c 2f 69 3e 20 2c 20 61  >Integer</i> , a
3340: 72 65 61 20 3c 69 3e 47 65 6f 6d 65 74 72 79 3c  rea <i>Geometry<
3350: 2f 69 3e 20 2c 20 6d 65 74 68 6f 64 20 3c 69 3e  /i> , method <i>
3360: 54 65 78 74 3c 2f 69 3e 20 29 20 3a 20 3c 69 3e  Text</i> ) : <i>
3370: 47 65 6f 6d 65 74 72 79 3c 2f 69 3e 3c 68 72 3e  Geometry</i><hr>
3380: 0d 0a 3c 62 3e 53 54 5f 54 72 61 6e 73 66 6f 72  ..<b>ST_Transfor
3390: 6d 3c 2f 62 3e 20 28 20 67 65 6f 6d 20 3c 69 3e  m</b> ( geom <i>
33a0: 47 65 6f 6d 65 74 72 79 3c 2f 69 3e 20 2c 20 6e  Geometry</i> , n
33b0: 65 77 53 72 69 64 20 3c 69 3e 49 6e 74 65 67 65  ewSrid <i>Intege
33c0: 72 3c 2f 69 3e 20 2c 20 61 72 65 61 20 3c 69 3e  r</i> , area <i>
33d0: 47 65 6f 6d 65 74 72 79 3c 2f 69 3e 20 2c 20 6d  Geometry</i> , m
33e0: 65 74 68 6f 64 20 3c 69 3e 54 65 78 74 3c 2f 69  ethod <i>Text</i
33f0: 3e 20 2c 20 70 72 6f 6a 5f 73 74 72 69 6e 67 20  > , proj_string 
3400: 3c 69 3e 54 65 78 74 3c 2f 69 3e 20 29 20 3a 20  <i>Text</i> ) : 
3410: 3c 69 3e 47 65 6f 6d 65 74 72 79 3c 2f 69 3e 0d  <i>Geometry</i>.
3420: 0a 3c 2f 74 64 3e 0d 0a 3c 74 64 3e 0d 0a 3c 74  .</td>..<td>..<t
3430: 61 62 6c 65 20 63 65 6c 6c 73 70 61 63 69 6e 67  able cellspacing
3440: 3d 22 34 22 20 63 65 6c 6c 70 61 64 64 69 6e 67  ="4" cellpadding
3450: 3d 22 34 22 20 62 67 63 6f 6c 6f 72 3d 22 23 66  ="4" bgcolor="#f
3460: 66 66 66 64 30 22 3e 0d 0a 3c 74 72 3e 3c 74 64  fffd0">..<tr><td
3470: 3e 0d 0a 3c 62 3e 3c 75 3e 3c 69 3e 4e 6f 74 65  >..<b><u><i>Note
3480: 3c 2f 69 3e 3c 2f 75 3e 3c 2f 62 3e 3a 20 61 6c  </i></u></b>: al
3490: 6c 20 74 68 65 73 65 20 3c 62 3e 3c 69 3e 65 78  l these <b><i>ex
34a0: 74 65 6e 64 65 64 20 73 69 67 6e 61 74 75 72 65  tended signature
34b0: 73 3c 2f 69 3e 3c 2f 62 3e 20 61 72 65 20 73 75  s</i></b> are su
34c0: 70 70 6f 72 74 65 64 20 6f 6e 6c 79 20 77 68 65  pported only whe
34d0: 6e 20 3c 62 3e 6c 69 62 73 70 61 74 69 61 6c 69  n <b>libspatiali
34e0: 74 65 2d 35 2e 30 3c 2f 62 3e 20 68 61 73 20 62  te-5.0</b> has b
34f0: 65 65 6e 20 62 75 69 6c 74 20 6f 6e 20 74 68 65  een built on the
3500: 20 74 6f 70 20 6f 66 20 3c 62 3e 50 52 4f 4a 2e   top of <b>PROJ.
3510: 36 3c 2f 62 3e 3c 62 72 3e 0d 0a 49 66 20 74 68  6</b><br>..If th
3520: 65 20 6c 69 62 72 61 72 79 20 68 61 73 20 62 65  e library has be
3530: 65 6e 20 62 75 69 6c 74 20 69 6e 73 74 65 61 64  en built instead
3540: 20 6f 6e 20 65 61 72 6c 69 65 72 20 76 65 72 73   on earlier vers
3550: 69 6f 6e 73 20 6f 66 20 50 52 4f 4a 20 61 6e 79  ions of PROJ any
3560: 20 61 74 74 65 6d 70 74 20 74 6f 20 63 61 6c 6c   attempt to call
3570: 20 74 68 65 73 65 20 65 78 74 65 6e 64 65 64 20   these extended 
3580: 73 69 67 6e 61 74 75 72 65 73 20 77 69 6c 6c 20  signatures will 
3590: 6a 75 73 74 20 72 65 74 75 72 6e 20 61 20 3c 62  just return a <b
35a0: 3e 3c 69 3e 77 72 6f 6e 67 20 6e 75 6d 62 65 72  ><i>wrong number
35b0: 20 6f 66 20 61 72 67 75 6d 65 6e 74 73 20 74 6f   of arguments to
35c0: 20 66 75 6e 63 74 69 6f 6e 20 53 54 5f 54 72 61   function ST_Tra
35d0: 6e 73 66 6f 72 6d 28 29 3c 2f 69 3e 3c 2f 62 3e  nsform()</i></b>
35e0: 20 65 72 72 6f 72 2e 0d 0a 3c 2f 74 64 3e 3c 74   error...</td><t
35f0: 72 3e 0d 0a 3c 2f 74 61 62 6c 65 3e 3c 62 72 3e  r>..</table><br>
3600: 0d 0a 3c 74 61 62 6c 65 20 63 65 6c 6c 73 70 61  ..<table cellspa
3610: 63 69 6e 67 3d 22 34 22 20 63 65 6c 6c 70 61 64  cing="4" cellpad
3620: 64 69 6e 67 3d 22 34 22 20 62 67 63 6f 6c 6f 72  ding="4" bgcolor
3630: 3d 22 23 66 66 64 66 64 30 22 3e 0d 0a 3c 74 72  ="#ffdfd0">..<tr
3640: 3e 3c 74 64 3e 0d 0a 41 6e 79 20 69 6e 76 61 6c  ><td>..Any inval
3650: 69 64 20 61 72 67 75 6d 65 6e 74 20 70 61 73 73  id argument pass
3660: 65 64 20 74 6f 20 3c 62 3e 53 54 5f 54 72 61 6e  ed to <b>ST_Tran
3670: 73 66 6f 72 6d 28 29 3c 2f 62 3e 20 28 3c 62 3e  sform()</b> (<b>
3680: 3c 69 3e 65 78 74 65 6e 64 65 64 20 73 69 67 6e  <i>extended sign
3690: 61 74 75 72 65 73 3c 2f 69 3e 3c 2f 62 3e 29 20  atures</i></b>) 
36a0: 77 69 6c 6c 20 72 61 69 73 65 20 61 6e 20 3c 62  will raise an <b
36b0: 3e 53 51 4c 20 45 78 63 65 70 74 69 6f 6e 3c 2f  >SQL Exception</
36c0: 62 3e 2e 0d 0a 3c 2f 74 64 3e 3c 74 72 3e 0d 0a  b>...</td><tr>..
36d0: 3c 2f 74 61 62 6c 65 3e 3c 62 72 3e 0d 0a 3c 75  </table><br>..<u
36e0: 6c 3e 0d 0a 3c 6c 69 3e 74 68 65 20 6f 70 74 69  l>..<li>the opti
36f0: 6f 6e 61 6c 20 61 72 67 75 6d 65 6e 74 20 3c 62  onal argument <b
3700: 3e 61 72 65 61 3c 2f 62 3e 20 6d 61 79 20 62 65  >area</b> may be
3710: 20 3c 62 3e 4e 55 4c 4c 3c 2f 62 3e 20 28 3c 69   <b>NULL</b> (<i
3720: 3e 64 65 66 61 75 6c 74 20 73 65 74 74 69 6e 67  >default setting
3730: 3c 2f 69 3e 29 2e 3c 62 72 3e 0d 0a 4f 74 68 65  </i>).<br>..Othe
3740: 72 77 69 73 65 20 69 74 27 73 20 65 78 70 65 63  rwise it's expec
3750: 74 65 64 20 74 6f 20 63 6f 6e 74 61 69 6e 20 61  ted to contain a
3760: 20 76 61 6c 69 64 20 47 65 6f 6d 65 74 72 79 20   valid Geometry 
3770: 69 6e 20 3c 62 3e 53 52 49 44 3d 34 33 32 36 20  in <b>SRID=4326 
3780: 28 6c 6f 6e 67 2f 6c 61 74 29 3c 2f 62 3e 2e 0d  (long/lat)</b>..
3790: 0a 57 68 65 6e 20 61 6e 20 3c 62 3e 3c 69 3e 61  .When an <b><i>a
37a0: 72 65 61 20 6f 66 20 75 73 65 3c 2f 69 3e 3c 2f  rea of use</i></
37b0: 62 3e 20 69 73 20 65 78 70 6c 69 63 69 74 6c 79  b> is explicitly
37c0: 20 73 75 70 70 6c 69 65 64 2c 20 74 68 65 6e 20   supplied, then 
37d0: 3c 62 3e 50 52 4f 4a 2e 36 3c 2f 62 3e 20 6d 61  <b>PROJ.6</b> ma
37e0: 79 20 65 76 65 6e 74 75 61 6c 6c 79 20 75 73 65  y eventually use
37f0: 20 74 68 65 20 63 6f 72 72 65 73 70 6f 6e 64 69   the correspondi
3800: 6e 67 20 3c 62 3e 42 42 4f 58 3c 2f 62 3e 20 66  ng <b>BBOX</b> f
3810: 6f 72 20 66 69 6e 65 6c 79 20 74 75 6e 69 6e 67  or finely tuning
3820: 20 74 68 65 20 6d 6f 72 65 20 61 63 63 75 72 61   the more accura
3830: 74 65 20 74 72 61 6e 73 66 6f 72 6d 61 74 69 6f  te transformatio
3840: 6e 2e 3c 2f 6c 69 3e 0d 0a 3c 6c 69 3e 74 68 65  n.</li>..<li>the
3850: 20 6f 70 74 69 6f 6e 61 6c 20 61 72 67 75 6d 65   optional argume
3860: 6e 74 20 3c 62 3e 6d 65 74 68 6f 64 3c 2f 62 3e  nt <b>method</b>
3870: 20 69 73 20 65 78 70 65 63 74 65 64 20 74 6f 20   is expected to 
3880: 63 6f 6e 74 61 69 6e 20 6f 6e 65 20 74 68 65 20  contain one the 
3890: 66 6f 6c 6c 6f 77 69 6e 67 20 76 61 6c 75 65 73  following values
38a0: 20 28 3c 62 3e 61 75 74 68 5f 6e 61 6d 65 3a 61   (<b>auth_name:a
38b0: 75 74 68 5f 73 74 72 69 64 3c 2f 62 3e 20 77 69  uth_strid</b> wi
38c0: 6c 6c 20 62 65 20 61 6c 77 61 79 73 20 61 73 73  ll be always ass
38d0: 75 6d 65 64 20 61 73 20 74 68 65 20 3c 69 3e 64  umed as the <i>d
38e0: 65 66 61 75 6c 74 20 73 65 74 74 69 6e 67 3c 2f  efault setting</
38f0: 69 3e 29 3a 3c 2f 6c 69 3e 0d 0a 3c 75 6c 3e 0d  i>):</li>..<ul>.
3900: 0a 3c 6c 69 3e 3c 62 3e 70 72 6f 6a 34 74 65 78  .<li><b>proj4tex
3910: 74 3c 2f 62 3e 3a 20 62 6f 74 68 20 43 52 53 65  t</b>: both CRSe
3920: 73 20 28 6f 72 69 67 69 6e 20 61 6e 64 20 64 65  s (origin and de
3930: 73 74 69 6e 61 74 69 6f 6e 29 20 77 69 6c 6c 20  stination) will 
3940: 62 65 20 64 65 66 69 6e 65 64 20 62 79 20 70 61  be defined by pa
3950: 73 73 69 6e 67 20 74 6f 20 50 52 4f 4a 2e 36 20  ssing to PROJ.6 
3960: 74 68 65 20 74 72 61 64 69 74 69 6f 6e 61 6c 73  the traditionals
3970: 20 3c 62 3e 70 72 6f 6a 2d 73 74 72 69 6e 67 3c   <b>proj-string<
3980: 2f 62 3e 20 64 65 66 69 6e 69 74 69 6f 6e 73 20  /b> definitions 
3990: 66 6f 72 20 74 68 65 20 63 6f 72 72 65 73 70 6f  for the correspo
39a0: 6e 64 69 6e 67 20 53 52 49 44 73 20 72 65 74 72  nding SRIDs retr
39b0: 69 65 76 65 64 20 66 72 6f 6d 20 63 6f 6c 75 6d  ieved from colum
39c0: 6e 20 3c 62 3e 70 72 6f 6a 34 74 65 78 74 3c 2f  n <b>proj4text</
39d0: 62 3e 20 69 6e 20 54 61 62 6c 65 20 3c 62 3e 73  b> in Table <b>s
39e0: 70 61 74 69 61 6c 5f 72 65 66 5f 73 79 73 3c 2f  patial_ref_sys</
39f0: 62 3e 3c 62 72 3e 0d 0a 54 68 69 73 20 65 78 61  b><br>..This exa
3a00: 63 74 6c 79 20 63 6f 72 72 65 73 70 6f 6e 64 73  ctly corresponds
3a10: 20 74 6f 20 74 68 65 20 77 65 6c 6c 20 65 78 74   to the well ext
3a20: 61 62 6c 69 73 68 65 64 20 74 72 61 64 69 74 69  ablished traditi
3a30: 6f 6e 61 6c 20 62 65 68 61 76 69 6f 72 20 6f 66  onal behavior of
3a40: 20 61 6c 6c 20 70 72 65 76 69 6f 75 73 20 76 65   all previous ve
3a50: 72 73 69 6f 6e 73 20 6f 66 20 3c 62 3e 6c 69 62  rsions of <b>lib
3a60: 73 70 61 74 69 61 6c 69 74 65 3c 2f 62 3e 20 61  spatialite</b> a
3a70: 6e 64 20 73 74 69 6c 6c 20 63 6f 6e 74 69 6e 75  nd still continu
3a80: 65 73 20 74 6f 20 62 65 20 73 75 70 70 6f 72 74  es to be support
3a90: 65 64 2c 20 62 75 74 20 3c 62 3e 3c 75 3e 3c 69  ed, but <b><u><i
3aa0: 3e 69 73 6e 27 74 20 61 6e 79 20 6c 6f 6e 67 65  >isn't any longe
3ab0: 72 20 74 68 65 20 62 65 73 74 20 77 61 79 20 66  r the best way f
3ac0: 6f 72 20 74 61 6b 69 6e 67 20 66 75 6c 6c 20 70  or taking full p
3ad0: 72 6f 66 69 74 20 6f 66 20 74 68 65 20 6d 6f 72  rofit of the mor
3ae0: 65 20 61 64 76 61 6e 63 65 64 20 63 61 70 61 62  e advanced capab
3af0: 69 6c 69 74 69 65 73 20 6f 66 20 50 52 4f 4a 2e  ilities of PROJ.
3b00: 36 3c 2f 69 3e 3c 2f 75 3e 3c 2f 62 3e 3c 2f 6c  6</i></u></b></l
3b10: 69 3e 0d 0a 3c 6c 69 3e 3c 62 3e 73 72 74 65 78  i>..<li><b>srtex
3b20: 74 3c 2f 62 3e 3a 20 62 6f 74 68 20 43 52 53 65  t</b>: both CRSe
3b30: 73 20 28 6f 72 69 67 69 6e 20 61 6e 64 20 64 65  s (origin and de
3b40: 73 74 69 6e 61 74 69 6f 6e 29 20 77 69 6c 6c 20  stination) will 
3b50: 62 65 20 64 65 66 69 6e 65 64 20 62 79 20 70 61  be defined by pa
3b60: 73 73 69 6e 67 20 74 6f 20 50 52 4f 4a 2e 36 20  ssing to PROJ.6 
3b70: 74 68 65 20 3c 62 3e 57 4b 54 3c 2f 62 3e 20 64  the <b>WKT</b> d
3b80: 65 66 69 6e 69 74 69 6f 6e 73 20 66 6f 72 20 74  efinitions for t
3b90: 68 65 20 63 6f 72 72 65 73 70 6f 6e 64 69 6e 67  he corresponding
3ba0: 20 53 52 49 44 73 20 72 65 74 72 69 65 76 65 64   SRIDs retrieved
3bb0: 20 66 72 6f 6d 20 63 6f 6c 75 6d 6e 20 3c 62 3e   from column <b>
3bc0: 73 72 74 65 78 74 3c 2f 62 3e 20 69 6e 20 54 61  srtext</b> in Ta
3bd0: 62 6c 65 20 3c 62 3e 73 70 61 74 69 61 6c 5f 72  ble <b>spatial_r
3be0: 65 66 5f 73 79 73 3c 2f 62 3e 3c 2f 6c 69 3e 0d  ef_sys</b></li>.
3bf0: 0a 3c 6c 69 3e 3c 62 3e 61 75 74 68 5f 6e 61 6d  .<li><b>auth_nam
3c00: 65 3a 61 75 74 68 5f 73 72 69 64 3c 2f 62 3e 3a  e:auth_srid</b>:
3c10: 20 62 6f 74 68 20 43 52 53 65 73 20 28 6f 72 69   both CRSes (ori
3c20: 67 69 6e 20 61 6e 64 20 64 65 73 74 69 6e 61 74  gin and destinat
3c30: 69 6f 6e 29 20 77 69 6c 6c 20 62 65 20 64 65 66  ion) will be def
3c40: 69 6e 65 64 20 62 79 20 69 67 6e 6f 72 69 6e 67  ined by ignoring
3c50: 20 74 68 65 20 64 65 66 69 6e 69 74 69 6f 6e 73   the definitions
3c60: 20 73 74 6f 72 65 64 20 69 6e 20 3c 62 3e 73 70   stored in <b>sp
3c70: 61 74 69 61 6c 5f 72 65 66 5f 73 79 73 3c 2f 62  atial_ref_sys</b
3c80: 3e 20 61 6e 64 20 6c 65 61 76 69 6e 67 20 50 52  > and leaving PR
3c90: 4f 4a 2e 36 20 66 72 65 65 20 74 6f 20 72 65 74  OJ.6 free to ret
3ca0: 72 69 65 76 65 20 74 68 65 69 72 20 63 6f 72 72  rieve their corr
3cb0: 65 73 70 6f 6e 64 69 6e 67 20 64 65 66 69 6e 69  esponding defini
3cc0: 74 69 6f 6e 73 20 66 72 6f 6d 20 69 74 73 20 6f  tions from its o
3cd0: 77 6e 20 70 72 69 76 61 74 65 20 53 51 4c 69 74  wn private SQLit
3ce0: 65 20 64 61 74 61 62 61 73 65 2e 3c 62 72 3e 0d  e database.<br>.
3cf0: 0a 3c 62 3e 3c 75 3e 3c 69 3e 4e 6f 74 65 3c 2f  .<b><u><i>Note</
3d00: 69 3e 3c 2f 75 3e 3c 2f 62 3e 3a 20 74 68 69 73  i></u></b>: this
3d10: 20 6d 65 74 68 6f 64 20 77 69 6c 6c 20 61 6c 77   method will alw
3d20: 61 79 73 20 74 61 6b 65 20 66 75 6c 6c 20 70 72  ays take full pr
3d30: 6f 66 69 74 20 6f 66 20 74 68 65 20 6d 6f 72 65  ofit of the more
3d40: 20 61 64 76 61 6e 63 65 64 20 63 61 70 61 62 69   advanced capabi
3d50: 6c 69 74 69 65 73 20 6f 66 20 50 52 4f 4a 2e 36  lities of PROJ.6
3d60: 2c 20 65 76 65 6e 20 77 68 65 6e 20 75 73 69 6e  , even when usin
3d70: 67 20 73 6f 6d 65 20 53 70 61 74 69 61 4c 69 74  g some SpatiaLit
3d80: 65 20 64 61 74 61 62 61 73 65 20 63 72 65 61 74  e database creat
3d90: 65 64 20 62 79 20 65 61 72 6c 69 65 72 20 76 65  ed by earlier ve
3da0: 72 73 69 6f 6e 73 20 6e 6f 74 20 79 65 74 20 73  rsions not yet s
3db0: 75 70 70 6f 72 74 69 6e 67 20 50 52 4f 4a 2e 36  upporting PROJ.6
3dc0: 3c 2f 6c 69 3e 0d 0a 3c 6c 69 3e 3c 62 3e 70 72  </li>..<li><b>pr
3dd0: 6f 6a 5f 73 74 72 69 6e 67 3c 2f 62 3e 3a 20 61  oj_string</b>: a
3de0: 6e 20 3c 62 3e 3c 69 3e 75 73 65 72 2d 64 65 66  n <b><i>user-def
3df0: 69 6e 65 64 20 70 72 6f 6a 2d 73 74 72 69 6e 67  ined proj-string
3e00: 3c 2f 69 3e 3c 2f 62 3e 20 28 6d 61 79 20 62 65  </i></b> (may be
3e10: 20 6f 6e 65 20 64 65 66 69 6e 69 6e 69 6e 67 20   one definining 
3e20: 61 20 3c 62 3e 3c 69 3e 74 72 61 6e 73 66 6f 72  a <b><i>transfor
3e30: 6d 61 74 69 6f 6e 20 70 69 70 65 6c 69 6e 65 3c  mation pipeline<
3e40: 2f 69 3e 3c 2f 62 3e 29 20 77 69 6c 6c 20 62 65  /i></b>) will be
3e50: 20 70 61 73 73 65 64 20 74 6f 20 50 52 4f 4a 2e   passed to PROJ.
3e60: 36 3b 20 74 68 69 73 20 69 73 20 61 6e 20 61 64  6; this is an ad
3e70: 76 61 6e 63 65 64 20 6f 70 74 69 6f 6e 20 72 65  vanced option re
3e80: 73 65 72 76 65 64 20 74 6f 20 73 6b 69 6c 6c 65  served to skille
3e90: 64 20 70 6f 77 65 72 20 75 73 65 72 73 2e 3c 2f  d power users.</
3ea0: 6c 69 3e 0d 0a 3c 2f 75 6c 3e 3c 2f 6c 69 3e 0d  li>..</ul></li>.
3eb0: 0a 3c 6c 69 3e 74 68 65 20 6f 70 74 69 6f 6e 61  .<li>the optiona
3ec0: 6c 20 61 72 67 75 6d 65 6e 74 20 3c 62 3e 70 72  l argument <b>pr
3ed0: 6f 6a 5f 73 74 72 69 6e 67 3c 2f 62 3e 20 6d 61  oj_string</b> ma
3ee0: 79 20 62 65 20 3c 62 3e 4e 55 4c 4c 3c 2f 62 3e  y be <b>NULL</b>
3ef0: 20 28 3c 69 3e 64 65 66 61 75 6c 74 20 73 65 74   (<i>default set
3f00: 74 69 6e 67 3c 2f 69 3e 29 2e 3c 62 72 3e 0d 0a  ting</i>).<br>..
3f10: 4f 74 68 65 72 77 69 73 65 20 69 74 27 73 20 65  Otherwise it's e
3f20: 78 70 65 63 74 65 64 20 74 6f 20 63 6f 6e 74 61  xpected to conta
3f30: 69 6e 20 61 20 76 61 6c 69 64 20 3c 62 3e 50 52  in a valid <b>PR
3f40: 4f 4a 2e 36 20 3c 69 3e 74 72 61 6e 73 66 6f 72  OJ.6 <i>transfor
3f50: 6d 61 74 69 6f 6e 20 73 74 72 69 6e 67 3c 2f 69  mation string</i
3f60: 3e 3c 2f 62 3e 2c 20 6d 61 79 20 77 65 6c 6c 20  ></b>, may well 
3f70: 62 65 20 63 6f 72 72 65 73 70 6f 6e 64 69 6e 67  be corresponding
3f80: 20 74 6f 20 61 6e 20 3c 62 3e 3c 69 3e 75 73 65   to an <b><i>use
3f90: 72 2d 64 65 66 69 6e 65 64 20 74 72 61 6e 73 66  r-defined transf
3fa0: 6f 72 6d 61 74 69 6f 6e 20 70 69 70 65 6c 69 6e  ormation pipelin
3fb0: 65 3c 2f 69 3e 3c 2f 62 3e 2e 0d 0a 4d 65 61 6e  e</i></b>...Mean
3fc0: 69 6e 67 66 75 6c 20 6f 6e 6c 79 20 69 6e 20 74  ingful only in t
3fd0: 68 65 20 63 61 73 65 20 6f 66 20 3c 62 3e 6d 65  he case of <b>me
3fe0: 74 68 6f 64 3d 70 72 6f 6a 5f 73 74 72 69 6e 67  thod=proj_string
3ff0: 3c 2f 62 3e 3c 2f 6c 69 3e 0d 0a 3c 2f 75 6c 3e  </b></li>..</ul>
4000: 0d 0a 3c 2f 74 64 3e 3c 2f 74 72 3e 0d 0a 3c 74  ..</td></tr>..<t
4010: 72 3e 3c 74 64 20 63 6f 6c 73 70 61 6e 3d 22 33  r><td colspan="3
4020: 22 3e 0d 0a 3c 68 33 3e 4e 6f 74 65 73 3c 2f 68  ">..<h3>Notes</h
4030: 33 3e 0d 0a 3c 75 6c 3e 0d 0a 3c 6c 69 3e 53 70  3>..<ul>..<li>Sp
4040: 61 74 69 61 4c 69 74 65 20 64 6f 65 73 20 6e 6f  atiaLite does no
4050: 74 20 63 6f 6e 73 74 72 61 69 6e 74 73 20 79 6f  t constraints yo
4060: 75 20 69 6e 20 61 6e 79 20 77 61 79 20 61 6e 64  u in any way and
4070: 20 66 75 6c 6c 79 20 72 65 73 70 65 63 74 73 20   fully respects 
4080: 75 73 65 72 73 20 66 72 65 65 64 6f 6d 20 63 61  users freedom ca
4090: 72 65 66 75 6c 6c 79 20 61 76 6f 69 64 69 6e 67  refully avoiding
40a0: 20 3c 69 3e 61 75 74 6f 2d 6d 61 67 69 63 61 6c   <i>auto-magical
40b0: 3c 2f 69 3e 20 61 73 73 75 6d 70 74 69 6f 6e 73  </i> assumptions
40c0: 2e 0d 0a 3c 75 6c 3e 0d 0a 3c 6c 69 3e 54 68 65  ...<ul>..<li>The
40d0: 20 6e 65 77 20 3c 62 3e 3c 69 3e 65 78 74 65 6e   new <b><i>exten
40e0: 64 65 64 20 73 69 67 6e 61 74 75 72 65 73 3c 2f  ded signatures</
40f0: 69 3e 3c 2f 62 3e 20 73 75 70 70 6f 72 74 65 64  i></b> supported
4100: 20 62 79 20 3c 62 3e 53 54 5f 54 72 61 6e 73 66   by <b>ST_Transf
4110: 6f 72 6d 3c 2f 62 3e 20 63 6c 6f 73 65 6c 79 20  orm</b> closely 
4120: 6d 69 6d 69 63 20 74 68 65 20 6d 6f 73 74 20 72  mimic the most r
4130: 65 63 65 6e 74 20 50 52 4f 4a 2e 36 20 41 50 49  ecent PROJ.6 API
4140: 2c 20 73 6f 20 79 6f 75 20 61 72 65 20 66 72 65  , so you are fre
4150: 65 20 74 6f 20 64 65 66 69 6e 65 20 79 6f 75 72  e to define your
4160: 20 63 6f 6f 72 64 69 6e 61 74 65 73 20 74 72 61   coordinates tra
4170: 6e 73 66 6f 72 6d 61 74 69 6f 6e 73 20 69 6e 20  nsformations in 
4180: 73 65 76 65 72 61 6c 20 64 69 66 66 65 72 65 6e  several differen
4190: 74 20 77 61 79 73 2e 3c 2f 6c 69 3e 20 0d 0a 3c  t ways.</li> ..<
41a0: 6c 69 3e 54 68 65 20 64 65 66 61 75 6c 74 20 62  li>The default b
41b0: 65 68 61 76 69 6f 72 20 6f 66 20 53 70 61 74 69  ehavior of Spati
41c0: 61 4c 69 74 65 20 77 68 65 6e 20 75 73 69 6e 67  aLite when using
41d0: 20 50 52 4f 4a 2e 36 20 69 73 20 74 6f 20 63 6f   PROJ.6 is to co
41e0: 6d 70 6c 65 74 65 6c 79 20 69 67 6e 6f 72 65 20  mpletely ignore 
41f0: 74 68 65 20 43 52 53 20 64 65 66 69 6e 69 74 69  the CRS definiti
4200: 6f 6e 73 20 73 74 6f 72 65 64 20 77 69 74 68 69  ons stored withi
4210: 6e 20 74 68 65 20 69 6e 74 65 72 6e 61 6c 20 74  n the internal t
4220: 61 62 6c 65 20 3c 62 3e 73 70 61 74 69 61 6c 5f  able <b>spatial_
4230: 72 65 66 5f 73 79 73 3c 2f 62 3e 3c 62 72 3e 0d  ref_sys</b><br>.
4240: 0a 41 6e 79 20 72 65 71 75 69 72 65 64 20 43 52  .Any required CR
4250: 53 20 64 65 66 69 6e 69 74 69 6f 6e 20 77 69 6c  S definition wil
4260: 6c 20 62 65 20 61 6c 77 61 79 73 20 72 65 74 72  l be always retr
4270: 69 65 76 65 64 20 66 6f 72 6d 20 74 68 65 20 70  ieved form the p
4280: 72 69 76 61 74 65 20 53 51 4c 69 74 65 20 64 61  rivate SQLite da
4290: 74 61 62 61 73 65 20 73 75 70 70 6f 72 74 69 6e  tabase supportin
42a0: 67 20 50 52 4f 4a 2e 36 20 28 3c 69 3e 6d 65 74  g PROJ.6 (<i>met
42b0: 68 6f 64 3c 2f 69 3e 3d 3c 62 3e 61 75 74 68 5f  hod</i>=<b>auth_
42c0: 6e 61 6d 65 3a 61 75 74 68 5f 73 72 69 64 3c 2f  name:auth_srid</
42d0: 62 3e 29 2e 3c 2f 6c 69 3e 0d 0a 3c 6c 69 3e 49  b>).</li>..<li>I
42e0: 66 20 79 6f 75 20 68 61 76 65 20 61 6e 79 20 67  f you have any g
42f0: 6f 6f 64 20 72 65 61 73 6f 6e 20 73 75 67 67 65  ood reason sugge
4300: 73 74 69 6e 67 20 74 6f 20 64 6f 20 73 75 63 68  sting to do such
4310: 20 61 20 74 68 69 6e 67 2c 20 79 6f 75 20 61 72   a thing, you ar
4320: 65 20 61 6e 79 77 61 79 20 66 72 65 65 20 74 6f  e anyway free to
4330: 20 75 73 65 20 74 68 65 20 70 72 6f 6a 2d 73 74   use the proj-st
4340: 72 69 6e 67 73 20 28 3c 69 3e 6d 65 74 68 6f 64  rings (<i>method
4350: 3c 2f 69 3e 3d 3c 62 3e 70 72 6f 6a 34 74 65 78  </i>=<b>proj4tex
4360: 74 3c 2f 62 3e 29 20 6f 72 20 74 68 65 20 57 4b  t</b>) or the WK
4370: 54 20 64 65 66 69 6e 69 74 69 6f 6e 73 20 28 3c  T definitions (<
4380: 69 3e 6d 65 74 68 6f 64 3c 2f 69 3e 3d 3c 62 3e  i>method</i>=<b>
4390: 73 72 74 65 78 3c 2f 62 3e 74 29 20 73 74 6f 72  srtex</b>t) stor
43a0: 65 64 20 69 6e 74 6f 20 74 68 65 20 69 6e 74 65  ed into the inte
43b0: 72 6e 61 6c 20 74 61 62 6c 65 20 3c 62 3e 73 70  rnal table <b>sp
43c0: 61 74 69 61 6c 5f 72 65 66 5f 73 79 73 20 74 61  atial_ref_sys ta
43d0: 62 6c 65 3c 2f 62 3e 2e 3c 62 72 3e 0d 0a 42 75  ble</b>.<br>..Bu
43e0: 74 20 74 68 69 73 20 69 73 20 75 6e 64 65 72 20  t this is under 
43f0: 79 6f 75 72 20 66 75 6c 6c 20 72 65 73 70 6f 6e  your full respon
4400: 73 69 62 69 6c 69 74 79 2c 20 61 6e 64 20 79 6f  sibility, and yo
4410: 75 20 6d 75 73 74 20 62 65 20 77 65 6c 6c 20 73  u must be well s
4420: 65 6c 66 2d 63 6f 6e 73 63 69 6f 75 73 20 6f 66  elf-conscious of
4430: 20 77 68 61 74 20 61 72 65 20 79 6f 75 20 64 6f   what are you do
4440: 69 6e 67 2e 3c 2f 6c 69 3e 0d 0a 3c 2f 75 6c 3e  ing.</li>..</ul>
4450: 3c 2f 6c 69 3e 0d 0a 3c 6c 69 3e 53 70 61 74 69  </li>..<li>Spati
4460: 61 4c 69 74 65 20 65 6e 63 6f 75 72 61 67 65 73  aLite encourages
4470: 20 61 6e 64 20 70 72 6f 6d 6f 74 65 73 20 74 68   and promotes th
4480: 65 20 6d 6f 73 74 20 63 72 65 61 74 69 76 65 20  e most creative 
4490: 75 73 65 73 20 6f 66 20 50 52 4f 4a 2e 36 2c 20  uses of PROJ.6, 
44a0: 74 68 69 73 20 69 6e 63 6c 75 64 69 6e 67 20 3c  this including <
44b0: 62 3e 74 72 61 6e 73 66 6f 72 6d 61 74 69 6f 6e  b>transformation
44c0: 20 70 69 70 65 6c 69 6e 65 73 3c 2f 62 3e 2e 3c   pipelines</b>.<
44d0: 62 72 3e 0d 0a 43 6f 72 72 65 63 74 6c 79 20 75  br>..Correctly u
44e0: 73 69 6e 67 20 3c 69 3e 6d 65 74 68 6f 64 3c 2f  sing <i>method</
44f0: 69 3e 3d 3c 62 3e 70 72 6f 6a 5f 73 74 72 69 6e  i>=<b>proj_strin
4500: 67 3c 2f 62 3e 20 66 6f 72 20 63 6f 6d 70 75 74  g</b> for comput
4510: 69 6e 67 20 63 75 73 74 6f 6d 20 74 72 61 6e 73  ing custom trans
4520: 66 6f 72 6d 61 74 69 6f 6e 73 20 69 73 6e 27 74  formations isn't
4530: 20 6e 65 63 65 73 73 61 72 69 6c 79 20 73 69 6d   necessarily sim
4540: 70 6c 65 20 61 6e 64 20 65 61 73 79 2c 20 62 75  ple and easy, bu
4550: 74 20 69 74 27 73 20 61 20 62 69 67 20 6f 70 70  t it's a big opp
4560: 6f 72 74 75 6e 69 74 79 20 66 6f 72 20 61 6c 6c  ortunity for all
4570: 20 73 6b 69 6c 6c 65 64 20 61 6e 64 20 74 61 6c   skilled and tal
4580: 65 6e 74 65 64 20 70 6f 77 65 72 20 75 73 65 72  ented power user
4590: 73 2e 3c 2f 6c 69 3e 0d 0a 3c 2f 75 6c 3e 3c 62  s.</li>..</ul><b
45a0: 72 3e 3c 62 72 3e 0d 0a 3c 2f 74 64 3e 3c 2f 74  r><br>..</td></t
45b0: 72 3e 0d 0a 3c 2f 74 61 62 6c 65 3e 3c 62 72 3e  r>..</table><br>
45c0: 0d 0a 46 65 77 20 70 72 61 63 74 69 63 61 6c 20  ..Few practical 
45d0: 53 51 4c 20 65 78 61 6d 70 6c 65 73 3a 0d 0a 3c  SQL examples:..<
45e0: 76 65 72 62 61 74 69 6d 3e 0d 0a 2d 2d 20 74 6f  verbatim>..-- to
45f0: 20 45 50 53 47 3a 33 30 30 33 20 2d 20 64 65 66   EPSG:3003 - def
4600: 61 75 6c 74 20 73 65 74 74 69 6e 67 73 3b 20 69  ault settings; i
4610: 67 6e 6f 72 69 6e 67 20 73 70 61 74 69 61 6c 69  gnoring spatiali
4620: 74 65 5f 72 65 66 5f 73 79 73 20 61 6e 64 20 75  te_ref_sys and u
4630: 73 69 6e 67 20 74 68 65 20 50 52 4f 4a 2e 36 20  sing the PROJ.6 
4640: 6f 77 6e 20 70 72 69 76 61 74 65 20 64 61 74 61  own private data
4650: 62 61 73 65 0d 0a 53 45 4c 45 43 54 20 41 73 45  base..SELECT AsE
4660: 57 4b 54 20 28 20 53 54 5f 54 72 61 6e 73 66 6f  WKT ( ST_Transfo
4670: 72 6d 28 20 4d 61 6b 65 50 6f 69 6e 74 28 20 31  rm( MakePoint( 1
4680: 31 2e 38 37 38 30 35 36 20 2c 20 34 33 2e 34 36  1.878056 , 43.46
4690: 33 30 35 36 20 2c 20 34 33 32 36 20 29 20 2c 20  3056 , 4326 ) , 
46a0: 33 30 30 33 20 29 29 3b 0d 0a 2d 2d 2d 2d 2d 2d  3003 ));..------
46b0: 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d  ----------------
46c0: 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 0d  ---------------.
46d0: 0a 53 52 49 44 3d 33 30 30 33 3b 50 4f 49 4e 54  .SRID=3003;POINT
46e0: 28 31 37 33 32 38 35 32 2e 39 34 32 37 31 36 37  (1732852.9427167
46f0: 36 39 20 34 38 31 36 32 37 37 2e 36 31 37 36 39  69 4816277.61769
4700: 30 36 37 34 29 0d 0a 0d 0a 2d 2d 20 74 6f 20 45  0674)....-- to E
4710: 50 53 47 3a 33 30 30 33 20 2d 20 4e 55 4c 4c 20  PSG:3003 - NULL 
4720: 61 72 65 61 20 6f 66 20 75 73 65 2c 20 75 73 69  area of use, usi
4730: 6e 67 20 57 4b 54 20 64 65 66 69 6e 69 74 69 6f  ng WKT definitio
4740: 6e 73 20 66 72 6f 6d 20 73 70 61 74 69 61 6c 5f  ns from spatial_
4750: 72 65 66 5f 73 79 73 2e 73 72 74 65 78 74 0d 0a  ref_sys.srtext..
4760: 53 45 4c 45 43 54 20 41 73 45 57 4b 54 20 28 20  SELECT AsEWKT ( 
4770: 53 54 5f 54 72 61 6e 73 66 6f 72 6d 28 20 4d 61  ST_Transform( Ma
4780: 6b 65 50 6f 69 6e 74 28 20 31 31 2e 38 37 38 30  kePoint( 11.8780
4790: 35 36 20 2c 20 34 33 2e 34 36 33 30 35 36 2c 20  56 , 43.463056, 
47a0: 34 33 32 36 20 29 20 2c 20 33 30 30 33 20 2c 20  4326 ) , 3003 , 
47b0: 4e 55 4c 4c 20 2c 20 27 73 72 74 65 78 74 27 20  NULL , 'srtext' 
47c0: 29 29 3b 0d 0a 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d  ));..-----------
47d0: 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d  ----------------
47e0: 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 0d 0a 53 52 49 44  ----------..SRID
47f0: 3d 33 30 30 33 3b 50 4f 49 4e 54 28 31 37 33 32  =3003;POINT(1732
4800: 38 35 32 2e 39 34 32 37 31 36 37 36 39 20 34 38  852.942716769 48
4810: 31 36 32 37 37 2e 36 31 37 36 39 30 36 37 34 29  16277.617690674)
4820: 0d 0a 0d 0a 2d 2d 20 74 6f 20 45 50 53 47 3a 33  ....-- to EPSG:3
4830: 30 30 33 20 2d 20 4e 55 4c 4c 20 61 72 65 61 20  003 - NULL area 
4840: 6f 66 20 75 73 65 2c 20 75 73 69 6e 67 20 70 72  of use, using pr
4850: 6f 6a 2d 73 74 72 69 6e 67 20 64 65 66 69 6e 69  oj-string defini
4860: 74 69 6f 6e 73 20 66 72 6f 6d 20 73 70 61 74 69  tions from spati
4870: 61 6c 5f 72 65 66 5f 73 79 73 2e 70 72 6f 6a 34  al_ref_sys.proj4
4880: 74 65 78 74 0d 0a 53 45 4c 45 43 54 20 41 73 45  text..SELECT AsE
4890: 57 4b 54 20 28 20 53 54 5f 54 72 61 6e 73 66 6f  WKT ( ST_Transfo
48a0: 72 6d 28 20 4d 61 6b 65 50 6f 69 6e 74 28 20 31  rm( MakePoint( 1
48b0: 31 2e 38 37 38 30 35 36 20 2c 20 34 33 2e 34 36  1.878056 , 43.46
48c0: 33 30 35 36 2c 20 34 33 32 36 20 29 20 2c 20 33  3056, 4326 ) , 3
48d0: 30 30 33 20 2c 20 4e 55 4c 4c 20 2c 20 27 70 72  003 , NULL , 'pr
48e0: 6f 6a 34 74 65 78 74 27 20 29 29 3b 0d 0a 2d 2d  oj4text' ));..--
48f0: 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d  ----------------
4900: 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d  ----------------
4910: 2d 2d 2d 0d 0a 53 52 49 44 3d 33 30 30 33 3b 50  ---..SRID=3003;P
4920: 4f 49 4e 54 28 31 37 33 32 38 35 32 2e 39 34 32  OINT(1732852.942
4930: 37 31 36 37 36 39 20 34 38 31 36 32 37 37 2e 36  716769 4816277.6
4940: 31 37 36 39 30 36 37 34 29 0d 0a 3c 2f 76 65 72  17690674)..</ver
4950: 62 61 74 69 6d 3e 0d 0a 54 68 69 73 20 66 69 72  batim>..This fir
4960: 73 74 20 74 65 73 74 20 69 73 20 62 61 73 65 64  st test is based
4970: 20 6f 6e 20 61 20 6e 65 77 20 53 70 61 74 69 61   on a new Spatia
4980: 4c 69 74 65 20 64 61 74 61 62 61 73 65 20 63 72  Lite database cr
4990: 65 61 74 65 64 20 77 69 74 68 20 66 75 6c 6c 20  eated with full 
49a0: 50 52 4f 4a 2e 36 20 73 75 70 70 6f 72 74 2e 20  PROJ.6 support. 
49b0: 54 68 65 72 65 20 69 73 6e 27 74 20 61 6e 79 74  There isn't anyt
49c0: 68 69 6e 67 20 77 6f 72 74 68 20 74 6f 20 62 65  hing worth to be
49d0: 20 6e 6f 74 65 64 2c 20 65 78 63 65 70 74 20 74   noted, except t
49e0: 68 61 74 20 61 6c 6c 20 6d 65 74 68 6f 64 73 20  hat all methods 
49f0: 72 65 74 75 72 6e 20 74 68 65 20 73 61 6d 65 20  return the same 
4a00: 72 65 73 75 6c 74 2e 3c 62 72 3e 3c 62 72 3e 0d  result.<br><br>.
4a10: 0a 3c 76 65 72 62 61 74 69 6d 3e 0d 0a 2d 2d 20  .<verbatim>..-- 
4a20: 74 6f 20 45 50 53 47 3a 33 30 30 33 20 2d 20 75  to EPSG:3003 - u
4a30: 73 69 6e 67 20 61 20 74 72 61 6e 73 66 6f 72 6d  sing a transform
4a40: 61 74 69 6f 6e 20 70 69 70 65 6c 69 6e 65 0d 0a  ation pipeline..
4a50: 53 45 4c 45 43 54 20 41 73 45 57 4b 54 20 28 20  SELECT AsEWKT ( 
4a60: 53 54 5f 54 72 61 6e 73 66 6f 72 6d 28 20 53 77  ST_Transform( Sw
4a70: 61 70 43 6f 6f 72 64 73 20 28 20 4d 61 6b 65 50  apCoords ( MakeP
4a80: 6f 69 6e 74 28 20 31 31 2e 38 37 38 30 35 36 20  oint( 11.878056 
4a90: 2c 20 34 33 2e 34 36 33 30 35 36 2c 20 34 33 32  , 43.463056, 432
4aa0: 36 20 29 20 29 20 2c 20 33 30 30 33 20 2c 20 4e  6 ) ) , 3003 , N
4ab0: 55 4c 4c 20 2c 20 27 70 72 6f 6a 5f 73 74 72 69  ULL , 'proj_stri
4ac0: 6e 67 27 20 2c 0d 0a 27 2b 70 72 6f 6a 3d 70 69  ng' ,..'+proj=pi
4ad0: 70 65 6c 69 6e 65 20 0d 0a 2b 73 74 65 70 20 2b  peline ..+step +
4ae0: 70 72 6f 6a 3d 61 78 69 73 73 77 61 70 20 2b 6f  proj=axisswap +o
4af0: 72 64 65 72 3d 32 2c 31 20 0d 0a 2b 73 74 65 70  rder=2,1 ..+step
4b00: 20 2b 70 72 6f 6a 3d 75 6e 69 74 63 6f 6e 76 65   +proj=unitconve
4b10: 72 74 20 2b 78 79 5f 69 6e 3d 64 65 67 20 2b 78  rt +xy_in=deg +x
4b20: 79 5f 6f 75 74 3d 72 61 64 20 0d 0a 2b 73 74 65  y_out=rad ..+ste
4b30: 70 20 2b 70 72 6f 6a 3d 70 75 73 68 20 2b 76 5f  p +proj=push +v_
4b40: 33 20 0d 0a 2b 73 74 65 70 20 2b 70 72 6f 6a 3d  3 ..+step +proj=
4b50: 63 61 72 74 20 2b 65 6c 6c 70 73 3d 57 47 53 38  cart +ellps=WGS8
4b60: 34 20 0d 0a 2b 73 74 65 70 20 2b 69 6e 76 20 2b  4 ..+step +inv +
4b70: 70 72 6f 6a 3d 68 65 6c 6d 65 72 74 20 2b 78 3d  proj=helmert +x=
4b80: 2d 31 30 34 2e 31 20 2b 79 3d 2d 34 39 2e 31 20  -104.1 +y=-49.1 
4b90: 2b 7a 3d 2d 39 2e 39 20 2b 72 78 3d 30 2e 39 37  +z=-9.9 +rx=0.97
4ba0: 31 20 2b 72 79 3d 2d 32 2e 39 31 37 20 2b 72 7a  1 +ry=-2.917 +rz
4bb0: 3d 30 2e 37 31 34 20 2b 73 3d 2d 31 31 2e 36 38  =0.714 +s=-11.68
4bc0: 20 2b 63 6f 6e 76 65 6e 74 69 6f 6e 3d 70 6f 73   +convention=pos
4bd0: 69 74 69 6f 6e 5f 76 65 63 74 6f 72 20 0d 0a 2b  ition_vector ..+
4be0: 73 74 65 70 20 2b 69 6e 76 20 2b 70 72 6f 6a 3d  step +inv +proj=
4bf0: 63 61 72 74 20 2b 65 6c 6c 70 73 3d 69 6e 74 6c  cart +ellps=intl
4c00: 20 0d 0a 2b 73 74 65 70 20 2b 70 72 6f 6a 3d 70   ..+step +proj=p
4c10: 6f 70 20 2b 76 5f 33 20 0d 0a 2b 73 74 65 70 20  op +v_3 ..+step 
4c20: 2b 70 72 6f 6a 3d 74 6d 65 72 63 20 2b 6c 61 74  +proj=tmerc +lat
4c30: 5f 30 3d 30 20 2b 6c 6f 6e 5f 30 3d 39 20 2b 6b  _0=0 +lon_0=9 +k
4c40: 3d 30 2e 39 39 39 36 20 2b 78 5f 30 3d 31 35 30  =0.9996 +x_0=150
4c50: 30 30 30 30 20 2b 79 5f 30 3d 30 20 2b 65 6c 6c  0000 +y_0=0 +ell
4c60: 70 73 3d 69 6e 74 6c 27 20 29 29 3b 0d 0a 2d 2d  ps=intl' ));..--
4c70: 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d  ----------------
4c80: 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d  ----------------
4c90: 2d 2d 2d 0d 0a 53 52 49 44 3d 33 30 30 33 3b 50  ---..SRID=3003;P
4ca0: 4f 49 4e 54 28 31 37 33 32 38 35 32 2e 39 34 32  OINT(1732852.942
4cb0: 37 31 36 37 36 39 20 34 38 31 36 32 37 37 2e 36  716769 4816277.6
4cc0: 31 37 36 39 30 36 37 34 29 0d 0a 0d 0a 2d 2d 20  17690674)....-- 
4cd0: 74 6f 20 45 50 53 47 3a 33 30 30 33 20 2d 20 75  to EPSG:3003 - u
4ce0: 73 69 6e 67 20 61 20 63 75 73 74 6f 6d 69 7a 65  sing a customize
4cf0: 64 20 74 72 61 6e 73 66 6f 72 6d 61 74 69 6f 6e  d transformation
4d00: 20 70 69 70 65 6c 69 6e 65 0d 0a 53 45 4c 45 43   pipeline..SELEC
4d10: 54 20 41 73 45 57 4b 54 20 28 20 53 54 5f 54 72  T AsEWKT ( ST_Tr
4d20: 61 6e 73 66 6f 72 6d 28 20 4d 61 6b 65 50 6f 69  ansform( MakePoi
4d30: 6e 74 28 20 31 31 2e 38 37 38 30 35 36 20 2c 20  nt( 11.878056 , 
4d40: 34 33 2e 34 36 33 30 35 36 2c 20 34 33 32 36 20  43.463056, 4326 
4d50: 29 20 2c 20 33 30 30 33 20 2c 20 4e 55 4c 4c 20  ) , 3003 , NULL 
4d60: 2c 20 27 70 72 6f 6a 5f 73 74 72 69 6e 67 27 20  , 'proj_string' 
4d70: 2c 0d 0a 27 2b 70 72 6f 6a 3d 70 69 70 65 6c 69  ,..'+proj=pipeli
4d80: 6e 65 20 20 0d 0a 2b 73 74 65 70 20 2b 70 72 6f  ne  ..+step +pro
4d90: 6a 3d 75 6e 69 74 63 6f 6e 76 65 72 74 20 2b 78  j=unitconvert +x
4da0: 79 5f 69 6e 3d 64 65 67 20 2b 78 79 5f 6f 75 74  y_in=deg +xy_out
4db0: 3d 72 61 64 20 0d 0a 2b 73 74 65 70 20 2b 70 72  =rad ..+step +pr
4dc0: 6f 6a 3d 70 75 73 68 20 2b 76 5f 33 20 0d 0a 2b  oj=push +v_3 ..+
4dd0: 73 74 65 70 20 2b 70 72 6f 6a 3d 63 61 72 74 20  step +proj=cart 
4de0: 2b 65 6c 6c 70 73 3d 57 47 53 38 34 20 0d 0a 2b  +ellps=WGS84 ..+
4df0: 73 74 65 70 20 2b 69 6e 76 20 2b 70 72 6f 6a 3d  step +inv +proj=
4e00: 68 65 6c 6d 65 72 74 20 2b 78 3d 2d 31 30 34 2e  helmert +x=-104.
4e10: 31 20 2b 79 3d 2d 34 39 2e 31 20 2b 7a 3d 2d 39  1 +y=-49.1 +z=-9
4e20: 2e 39 20 2b 72 78 3d 30 2e 39 37 31 20 2b 72 79  .9 +rx=0.971 +ry
4e30: 3d 2d 32 2e 39 31 37 20 2b 72 7a 3d 30 2e 37 31  =-2.917 +rz=0.71
4e40: 34 20 2b 73 3d 2d 31 31 2e 36 38 20 2b 63 6f 6e  4 +s=-11.68 +con
4e50: 76 65 6e 74 69 6f 6e 3d 70 6f 73 69 74 69 6f 6e  vention=position
4e60: 5f 76 65 63 74 6f 72 20 0d 0a 2b 73 74 65 70 20  _vector ..+step 
4e70: 2b 69 6e 76 20 2b 70 72 6f 6a 3d 63 61 72 74 20  +inv +proj=cart 
4e80: 2b 65 6c 6c 70 73 3d 69 6e 74 6c 20 0d 0a 2b 73  +ellps=intl ..+s
4e90: 74 65 70 20 2b 70 72 6f 6a 3d 70 6f 70 20 2b 76  tep +proj=pop +v
4ea0: 5f 33 20 0d 0a 2b 73 74 65 70 20 2b 70 72 6f 6a  _3 ..+step +proj
4eb0: 3d 74 6d 65 72 63 20 2b 6c 61 74 5f 30 3d 30 20  =tmerc +lat_0=0 
4ec0: 2b 6c 6f 6e 5f 30 3d 39 20 2b 6b 3d 30 2e 39 39  +lon_0=9 +k=0.99
4ed0: 39 36 20 2b 78 5f 30 3d 31 35 30 30 30 30 30 20  96 +x_0=1500000 
4ee0: 2b 79 5f 30 3d 30 20 2b 65 6c 6c 70 73 3d 69 6e  +y_0=0 +ellps=in
4ef0: 74 6c 27 20 29 29 3b 0d 0a 2d 2d 2d 2d 2d 2d 2d  tl' ));..-------
4f00: 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d  ----------------
4f10: 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 0d 0a  --------------..
4f20: 53 52 49 44 3d 33 30 30 33 3b 50 4f 49 4e 54 28  SRID=3003;POINT(
4f30: 31 37 33 32 38 35 32 2e 39 34 32 37 31 36 37 36  1732852.94271676
4f40: 39 20 34 38 31 36 32 37 37 2e 36 31 37 36 39 30  9 4816277.617690
4f50: 36 37 34 29 0d 0a 3c 2f 76 65 72 62 61 74 69 6d  674)..</verbatim
4f60: 3e 0d 0a 54 68 69 73 20 73 65 63 6f 6e 64 20 74  >..This second t
4f70: 65 73 74 20 69 73 20 62 61 73 65 64 20 6f 6e 20  est is based on 
4f80: 75 73 69 6e 67 20 3c 62 3e 3c 69 3e 74 72 61 6e  using <b><i>tran
4f90: 73 66 6f 72 6d 61 74 69 6f 6e 20 70 69 70 65 6c  sformation pipel
4fa0: 69 6e 65 73 3c 2f 69 3e 3c 2f 62 3e 3a 0d 0a 3c  ines</i></b>:..<
4fb0: 75 6c 3e 0d 0a 3c 6c 69 3e 74 68 65 20 66 69 72  ul>..<li>the fir
4fc0: 73 74 20 71 75 65 72 79 20 64 69 72 65 63 74 6c  st query directl
4fd0: 79 20 75 73 65 73 20 61 20 70 72 6f 6a 2d 73 74  y uses a proj-st
4fe0: 72 69 6e 67 20 72 65 70 72 65 73 65 6e 74 69 6e  ring representin
4ff0: 67 20 74 68 65 20 70 69 70 65 6c 69 6e 65 20 61  g the pipeline a
5000: 73 20 64 65 66 69 6e 65 64 20 62 79 20 65 78 65  s defined by exe
5010: 63 75 74 69 6e 67 3c 62 72 3e 0d 0a 3c 62 3e 70  cuting<br>..<b>p
5020: 72 6f 6a 69 6e 66 6f 20 20 2d 73 20 45 50 53 47  rojinfo  -s EPSG
5030: 3a 34 33 32 36 20 2d 74 20 45 50 53 47 3a 33 30  :4326 -t EPSG:30
5040: 30 33 20 2d 2d 61 72 65 61 20 20 22 49 74 61 6c  03 --area  "Ital
5050: 79 20 2d 20 6d 61 69 6e 6c 61 6e 64 22 20 2d 6f  y - mainland" -o
5060: 20 70 72 6f 6a 3c 2f 62 3e 3c 62 72 3e 0d 0a 28   proj</b><br>..(
5070: 77 65 27 6c 6c 20 73 65 65 20 74 68 69 73 20 74  we'll see this t
5080: 6f 70 69 63 20 69 6e 20 6d 6f 72 65 20 64 65 70  opic in more dep
5090: 74 68 20 6f 6e 20 74 68 65 20 6e 65 78 74 20 70  th on the next p
50a0: 61 72 61 67 72 61 70 68 29 2e 3c 2f 6c 69 3e 0d  aragraph).</li>.
50b0: 0a 3c 6c 69 3e 74 68 65 20 73 65 63 6f 6e 64 20  .<li>the second 
50c0: 71 75 65 72 79 20 69 73 20 6a 75 73 74 20 61 20  query is just a 
50d0: 73 6d 61 6c 6c 20 61 64 61 70 74 61 74 69 6f 6e  small adaptation
50e0: 20 6f 66 20 74 68 65 20 66 69 72 73 74 20 6f 6e   of the first on
50f0: 65 3a 0d 0a 3c 75 6c 3e 0d 0a 3c 6c 69 3e 41 73  e:..<ul>..<li>As
5100: 20 79 6f 75 20 63 61 6e 20 6e 6f 74 69 63 65 20   you can notice 
5110: 74 68 65 20 66 69 72 73 74 20 71 75 65 72 79 20  the first query 
5120: 72 65 71 75 69 72 65 73 20 63 61 6c 6c 69 6e 67  requires calling
5130: 20 3c 62 3e 53 77 61 70 43 6f 6f 64 69 6e 61 74   <b>SwapCoodinat
5140: 65 73 28 29 3c 2f 62 3e 20 62 65 63 61 75 73 65  es()</b> because
5150: 20 74 68 65 20 66 69 72 73 74 20 73 74 65 70 20   the first step 
5160: 6f 66 20 74 68 65 20 70 69 70 65 6c 69 6e 65 20  of the pipeline 
5170: 68 61 73 20 61 6e 20 3c 62 3e 61 78 69 73 73 77  has an <b>axissw
5180: 61 70 3c 2f 62 3e 20 64 69 72 65 63 74 69 76 65  ap</b> directive
5190: 2e 3c 2f 6c 69 3e 0d 0a 3c 6c 69 3e 54 68 65 20  .</li>..<li>The 
51a0: 73 65 63 6f 6e 64 20 71 75 65 72 79 20 6a 75 73  second query jus
51b0: 74 20 61 76 6f 69 64 73 20 74 6f 20 63 61 6c 6c  t avoids to call
51c0: 20 3c 62 3e 53 77 61 70 43 6f 6f 72 64 73 28 29   <b>SwapCoords()
51d0: 3c 2f 62 3e 20 61 6e 64 20 63 6f 6e 73 65 71 75  </b> and consequ
51e0: 65 6e 74 6c 79 20 74 68 65 20 74 72 61 73 66 6f  ently the trasfo
51f0: 72 6d 61 74 69 6f 6e 20 70 69 70 65 6c 69 6e 65  rmation pipeline
5200: 20 73 74 65 70 20 72 65 6d 6f 76 65 73 20 74 68   step removes th
5210: 69 73 20 66 69 72 73 74 20 73 74 65 70 20 73 6f  is first step so
5220: 20 74 6f 20 67 65 74 20 74 68 65 20 73 61 6d 65   to get the same
5230: 20 69 64 65 6e 74 69 63 61 6c 20 6f 76 65 72 61   identical overa
5240: 6c 6c 20 65 66 66 65 63 74 2e 3c 2f 6c 69 3e 0d  ll effect.</li>.
5250: 0a 3c 2f 75 6c 3e 3c 2f 6c 69 3e 0d 0a 3c 6c 69  .</ul></li>..<li
5260: 3e 3c 62 3e 3c 75 3e 4e 6f 74 65 3c 2f 75 3e 3c  ><b><u>Note</u><
5270: 2f 62 3e 3a 20 53 70 61 74 69 61 4c 69 74 65 20  /b>: SpatiaLite 
5280: 77 69 6c 6c 20 61 6c 77 61 79 73 20 64 6f 20 61  will always do a
5290: 20 62 65 73 74 20 65 66 66 6f 72 74 20 69 6e 20   best effort in 
52a0: 6f 72 64 65 72 20 74 6f 20 67 75 65 73 73 20 69  order to guess i
52b0: 66 20 73 77 61 70 70 69 6e 67 20 74 68 65 20 63  f swapping the c
52c0: 6f 6f 72 64 69 6e 61 74 65 73 20 62 65 66 6f 72  oordinates befor
52d0: 65 20 70 61 73 73 69 6e 67 20 74 68 65 6d 20 74  e passing them t
52e0: 6f 20 50 52 4f 4a 2e 36 20 69 73 20 72 65 71 75  o PROJ.6 is requ
52f0: 69 72 65 64 20 6f 72 20 6e 6f 74 2e 3c 62 72 3e  ired or not.<br>
5300: 0d 0a 42 75 74 20 69 6e 20 74 68 65 20 73 70 65  ..But in the spe
5310: 63 69 66 69 63 20 63 61 73 65 20 6f 66 20 61 20  cific case of a 
5320: 74 72 61 6e 73 66 6f 72 6d 61 74 69 6f 6e 20 70  transformation p
5330: 69 70 65 6c 69 6e 65 20 74 68 69 73 20 74 65 73  ipeline this tes
5340: 74 20 6d 61 79 20 65 61 73 69 6c 79 20 66 61 69  t may easily fai
5350: 6c 2c 20 74 68 75 73 20 72 65 71 75 69 72 69 6e  l, thus requirin
5360: 67 20 74 6f 20 65 78 70 6c 69 63 69 74 6c 79 20  g to explicitly 
5370: 63 61 6c 6c 20 3c 62 3e 53 77 61 70 43 6f 6f 72  call <b>SwapCoor
5380: 64 73 28 29 3c 2f 62 3e 3c 2f 6c 69 3e 0d 0a 3c  ds()</b></li>..<
5390: 2f 75 6c 3e 3c 62 72 3e 0d 0a 3c 74 61 62 6c 65  /ul><br>..<table
53a0: 20 63 65 6c 6c 73 70 61 63 69 6e 67 3d 22 38 22   cellspacing="8"
53b0: 20 63 65 6c 6c 70 61 64 64 69 6e 67 3d 22 31 36   cellpadding="16
53c0: 22 20 62 67 63 6f 6c 6f 72 3d 22 23 63 39 66 66  " bgcolor="#c9ff
53d0: 66 30 22 3e 0d 0a 3c 74 72 3e 3c 74 64 3e 0d 0a  f0">..<tr><td>..
53e0: 3c 68 33 3e 75 73 69 6e 67 20 70 72 6f 6a 69 6e  <h3>using projin
53f0: 66 6f 20 66 6f 72 20 64 65 74 65 63 74 69 6e 67  fo for detecting
5400: 20 74 72 61 6e 73 66 6f 72 6d 61 74 69 6f 6e 20   transformation 
5410: 70 69 70 65 6c 69 6e 65 73 20 61 6e 64 20 73 75  pipelines and su
5420: 70 70 6f 72 74 65 64 20 61 72 65 61 73 20 6f 66  pported areas of
5430: 20 75 73 65 3c 2f 68 33 3e 0d 0a 3c 76 65 72 62   use</h3>..<verb
5440: 61 74 69 6d 3e 0d 0a 70 72 6f 6a 69 6e 66 6f 20  atim>..projinfo 
5450: 2d 73 20 45 50 53 47 3a 34 33 32 36 20 2d 74 20  -s EPSG:4326 -t 
5460: 45 50 53 47 3a 33 30 30 33 20 2d 6f 20 70 72 6f  EPSG:3003 -o pro
5470: 6a 20 2d 2d 73 70 61 74 69 61 6c 2d 74 65 73 74  j --spatial-test
5480: 20 69 6e 74 65 72 73 65 63 74 0d 0a 43 61 6e 64   intersect..Cand
5490: 69 64 61 74 65 20 6f 70 65 72 61 74 69 6f 6e 73  idate operations
54a0: 20 66 6f 75 6e 64 3a 20 33 0d 0a 2d 2d 2d 2d 2d   found: 3..-----
54b0: 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d  ----------------
54c0: 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d  ----------------
54d0: 0d 0a 4f 70 65 72 61 74 69 6f 6e 20 6e c2 b0 31  ..Operation n..1
54e0: 3a 0d 0a 0d 0a 75 6e 6b 6e 6f 77 6e 20 69 64 2c  :....unknown id,
54f0: 20 49 6e 76 65 72 73 65 20 6f 66 20 4d 6f 6e 74   Inverse of Mont
5500: 65 20 4d 61 72 69 6f 20 74 6f 20 57 47 53 20 38  e Mario to WGS 8
5510: 34 20 28 34 29 20 2b 20 49 74 61 6c 79 20 7a 6f  4 (4) + Italy zo
5520: 6e 65 20 31 2c 20 34 20 6d 2c 20 49 74 61 6c 79  ne 1, 4 m, Italy
5530: 20 2d 20 6d 61 69 6e 6c 61 6e 64 0d 0a 0d 0a 50   - mainland....P
5540: 52 4f 4a 20 73 74 72 69 6e 67 3a 0d 0a 2b 70 72  ROJ string:..+pr
5550: 6f 6a 3d 70 69 70 65 6c 69 6e 65 20 0d 0a 2b 73  oj=pipeline ..+s
5560: 74 65 70 20 2b 70 72 6f 6a 3d 61 78 69 73 73 77  tep +proj=axissw
5570: 61 70 20 2b 6f 72 64 65 72 3d 32 2c 31 20 0d 0a  ap +order=2,1 ..
5580: 2b 73 74 65 70 20 2b 70 72 6f 6a 3d 75 6e 69 74  +step +proj=unit
5590: 63 6f 6e 76 65 72 74 20 2b 78 79 5f 69 6e 3d 64  convert +xy_in=d
55a0: 65 67 20 2b 78 79 5f 6f 75 74 3d 72 61 64 20 0d  eg +xy_out=rad .
55b0: 0a 2b 73 74 65 70 20 2b 70 72 6f 6a 3d 70 75 73  .+step +proj=pus
55c0: 68 20 2b 76 5f 33 20 0d 0a 2b 73 74 65 70 20 2b  h +v_3 ..+step +
55d0: 70 72 6f 6a 3d 63 61 72 74 20 2b 65 6c 6c 70 73  proj=cart +ellps
55e0: 3d 57 47 53 38 34 20 0d 0a 2b 73 74 65 70 20 2b  =WGS84 ..+step +
55f0: 69 6e 76 20 2b 70 72 6f 6a 3d 68 65 6c 6d 65 72  inv +proj=helmer
5600: 74 20 2b 78 3d 2d 31 30 34 2e 31 20 2b 79 3d 2d  t +x=-104.1 +y=-
5610: 34 39 2e 31 20 2b 7a 3d 2d 39 2e 39 20 2b 72 78  49.1 +z=-9.9 +rx
5620: 3d 30 2e 39 37 31 20 2b 72 79 3d 2d 32 2e 39 31  =0.971 +ry=-2.91
5630: 37 20 2b 72 7a 3d 30 2e 37 31 34 20 2b 73 3d 2d  7 +rz=0.714 +s=-
5640: 31 31 2e 36 38 20 2b 63 6f 6e 76 65 6e 74 69 6f  11.68 +conventio
5650: 6e 3d 70 6f 73 69 74 69 6f 6e 5f 76 65 63 74 6f  n=position_vecto
5660: 72 20 0d 0a 2b 73 74 65 70 20 2b 69 6e 76 20 2b  r ..+step +inv +
5670: 70 72 6f 6a 3d 63 61 72 74 20 2b 65 6c 6c 70 73  proj=cart +ellps
5680: 3d 69 6e 74 6c 20 0d 0a 2b 73 74 65 70 20 2b 70  =intl ..+step +p
5690: 72 6f 6a 3d 70 6f 70 20 2b 76 5f 33 20 0d 0a 2b  roj=pop +v_3 ..+
56a0: 73 74 65 70 20 2b 70 72 6f 6a 3d 74 6d 65 72 63  step +proj=tmerc
56b0: 20 2b 6c 61 74 5f 30 3d 30 20 2b 6c 6f 6e 5f 30   +lat_0=0 +lon_0
56c0: 3d 39 20 2b 6b 3d 30 2e 39 39 39 36 20 2b 78 5f  =9 +k=0.9996 +x_
56d0: 30 3d 31 35 30 30 30 30 30 20 2b 79 5f 30 3d 30  0=1500000 +y_0=0
56e0: 20 2b 65 6c 6c 70 73 3d 69 6e 74 6c 0d 0a 0d 0a   +ellps=intl....
56f0: 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d  ----------------
5700: 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d  ----------------
5710: 2d 2d 2d 2d 2d 0d 0a 4f 70 65 72 61 74 69 6f 6e  -----..Operation
5720: 20 6e c2 b0 32 3a 0d 0a 0d 0a 75 6e 6b 6e 6f 77   n..2:....unknow
5730: 6e 20 69 64 2c 20 49 6e 76 65 72 73 65 20 6f 66  n id, Inverse of
5740: 20 4d 6f 6e 74 65 20 4d 61 72 69 6f 20 74 6f 20   Monte Mario to 
5750: 57 47 53 20 38 34 20 28 32 29 20 2b 20 49 74 61  WGS 84 (2) + Ita
5760: 6c 79 20 7a 6f 6e 65 20 31 2c 20 34 20 6d 2c 20  ly zone 1, 4 m, 
5770: 49 74 61 6c 79 20 2d 20 53 61 72 64 69 6e 69 61  Italy - Sardinia
5780: 20 6f 6e 73 68 6f 72 65 0d 0a 0d 0a 50 52 4f 4a   onshore....PROJ
5790: 20 73 74 72 69 6e 67 3a 0d 0a 2b 70 72 6f 6a 3d   string:..+proj=
57a0: 70 69 70 65 6c 69 6e 65 20 0d 0a 2b 73 74 65 70  pipeline ..+step
57b0: 20 2b 70 72 6f 6a 3d 61 78 69 73 73 77 61 70 20   +proj=axisswap 
57c0: 2b 6f 72 64 65 72 3d 32 2c 31 20 0d 0a 2b 73 74  +order=2,1 ..+st
57d0: 65 70 20 2b 70 72 6f 6a 3d 75 6e 69 74 63 6f 6e  ep +proj=unitcon
57e0: 76 65 72 74 20 2b 78 79 5f 69 6e 3d 64 65 67 20  vert +xy_in=deg 
57f0: 2b 78 79 5f 6f 75 74 3d 72 61 64 20 0d 0a 2b 73  +xy_out=rad ..+s
5800: 74 65 70 20 2b 70 72 6f 6a 3d 70 75 73 68 20 2b  tep +proj=push +
5810: 76 5f 33 20 0d 0a 2b 73 74 65 70 20 2b 70 72 6f  v_3 ..+step +pro
5820: 6a 3d 63 61 72 74 20 2b 65 6c 6c 70 73 3d 57 47  j=cart +ellps=WG
5830: 53 38 34 20 0d 0a 2b 73 74 65 70 20 2b 69 6e 76  S84 ..+step +inv
5840: 20 2b 70 72 6f 6a 3d 68 65 6c 6d 65 72 74 20 2b   +proj=helmert +
5850: 78 3d 2d 31 36 38 2e 36 20 2b 79 3d 2d 33 34 20  x=-168.6 +y=-34 
5860: 2b 7a 3d 33 38 2e 36 20 2b 72 78 3d 2d 30 2e 33  +z=38.6 +rx=-0.3
5870: 37 34 20 2b 72 79 3d 2d 30 2e 36 37 39 20 2b 72  74 +ry=-0.679 +r
5880: 7a 3d 2d 31 2e 33 37 39 20 2b 73 3d 2d 39 2e 34  z=-1.379 +s=-9.4
5890: 38 20 2b 63 6f 6e 76 65 6e 74 69 6f 6e 3d 70 6f  8 +convention=po
58a0: 73 69 74 69 6f 6e 5f 76 65 63 74 6f 72 20 0d 0a  sition_vector ..
58b0: 2b 73 74 65 70 20 2b 69 6e 76 20 2b 70 72 6f 6a  +step +inv +proj
58c0: 3d 63 61 72 74 20 2b 65 6c 6c 70 73 3d 69 6e 74  =cart +ellps=int
58d0: 6c 20 0d 0a 2b 73 74 65 70 20 2b 70 72 6f 6a 3d  l ..+step +proj=
58e0: 70 6f 70 20 2b 76 5f 33 20 0d 0a 2b 73 74 65 70  pop +v_3 ..+step
58f0: 20 2b 70 72 6f 6a 3d 74 6d 65 72 63 20 2b 6c 61   +proj=tmerc +la
5900: 74 5f 30 3d 30 20 2b 6c 6f 6e 5f 30 3d 39 20 2b  t_0=0 +lon_0=9 +
5910: 6b 3d 30 2e 39 39 39 36 20 2b 78 5f 30 3d 31 35  k=0.9996 +x_0=15
5920: 30 30 30 30 30 20 2b 79 5f 30 3d 30 20 2b 65 6c  00000 +y_0=0 +el
5930: 6c 70 73 3d 69 6e 74 6c 0d 0a 0d 0a 2d 2d 2d 2d  lps=intl....----
5940: 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d  ----------------
5950: 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d  ----------------
5960: 2d 0d 0a 4f 70 65 72 61 74 69 6f 6e 20 6e c2 b0  -..Operation n..
5970: 33 3a 0d 0a 0d 0a 75 6e 6b 6e 6f 77 6e 20 69 64  3:....unknown id
5980: 2c 20 49 6e 76 65 72 73 65 20 6f 66 20 4d 6f 6e  , Inverse of Mon
5990: 74 65 20 4d 61 72 69 6f 20 74 6f 20 57 47 53 20  te Mario to WGS 
59a0: 38 34 20 28 31 31 29 20 2b 20 49 74 61 6c 79 20  84 (11) + Italy 
59b0: 7a 6f 6e 65 20 31 2c 20 31 30 20 6d 2c 20 49 74  zone 1, 10 m, It
59c0: 61 6c 79 20 2d 20 53 69 63 69 6c 79 20 53 74 72  aly - Sicily Str
59d0: 61 69 74 20 77 65 73 74 20 6f 66 20 31 33 c2 b0  ait west of 13..
59e0: 45 0d 0a 0d 0a 50 52 4f 4a 20 73 74 72 69 6e 67  E....PROJ string
59f0: 3a 0d 0a 2b 70 72 6f 6a 3d 70 69 70 65 6c 69 6e  :..+proj=pipelin
5a00: 65 20 0d 0a 2b 73 74 65 70 20 2b 70 72 6f 6a 3d  e ..+step +proj=
5a10: 61 78 69 73 73 77 61 70 20 2b 6f 72 64 65 72 3d  axisswap +order=
5a20: 32 2c 31 20 0d 0a 2b 73 74 65 70 20 2b 70 72 6f  2,1 ..+step +pro
5a30: 6a 3d 75 6e 69 74 63 6f 6e 76 65 72 74 20 2b 78  j=unitconvert +x
5a40: 79 5f 69 6e 3d 64 65 67 20 2b 78 79 5f 6f 75 74  y_in=deg +xy_out
5a50: 3d 72 61 64 20 0d 0a 2b 73 74 65 70 20 2b 70 72  =rad ..+step +pr
5a60: 6f 6a 3d 70 75 73 68 20 2b 76 5f 33 20 0d 0a 2b  oj=push +v_3 ..+
5a70: 73 74 65 70 20 2b 70 72 6f 6a 3d 63 61 72 74 20  step +proj=cart 
5a80: 2b 65 6c 6c 70 73 3d 57 47 53 38 34 20 0d 0a 2b  +ellps=WGS84 ..+
5a90: 73 74 65 70 20 2b 70 72 6f 6a 3d 68 65 6c 6d 65  step +proj=helme
5aa0: 72 74 20 2b 78 3d 32 33 30 2e 34 37 20 2b 79 3d  rt +x=230.47 +y=
5ab0: 35 36 2e 30 38 20 2b 7a 3d 2d 32 32 2e 34 33 20  56.08 +z=-22.43 
5ac0: 0d 0a 2b 73 74 65 70 20 2b 69 6e 76 20 2b 70 72  ..+step +inv +pr
5ad0: 6f 6a 3d 63 61 72 74 20 2b 65 6c 6c 70 73 3d 69  oj=cart +ellps=i
5ae0: 6e 74 6c 20 0d 0a 2b 73 74 65 70 20 2b 70 72 6f  ntl ..+step +pro
5af0: 6a 3d 70 6f 70 20 2b 76 5f 33 20 0d 0a 2b 73 74  j=pop +v_3 ..+st
5b00: 65 70 20 2b 70 72 6f 6a 3d 74 6d 65 72 63 20 2b  ep +proj=tmerc +
5b10: 6c 61 74 5f 30 3d 30 20 2b 6c 6f 6e 5f 30 3d 39  lat_0=0 +lon_0=9
5b20: 20 2b 6b 3d 30 2e 39 39 39 36 20 2b 78 5f 30 3d   +k=0.9996 +x_0=
5b30: 31 35 30 30 30 30 30 20 2b 79 5f 30 3d 30 20 2b  1500000 +y_0=0 +
5b40: 65 6c 6c 70 73 3d 69 6e 74 6c 0d 0a 3c 2f 76 65  ellps=intl..</ve
5b50: 72 62 61 74 69 6d 3e 0d 0a 3c 2f 74 64 3e 3c 2f  rbatim>..</td></
5b60: 74 72 3e 0d 0a 3c 2f 74 61 62 6c 65 3e 3c 62 72  tr>..</table><br
5b70: 3e 0d 0a 3c 76 65 72 62 61 74 69 6d 3e 0d 0a 2d  >..<verbatim>..-
5b80: 2d 20 74 6f 20 45 50 53 47 3a 33 30 30 33 20 2d  - to EPSG:3003 -
5b90: 20 64 65 66 61 75 6c 74 20 73 65 74 74 69 6e 67   default setting
5ba0: 73 2c 20 4e 55 4c 4c 20 61 72 65 61 20 6f 66 20  s, NULL area of 
5bb0: 75 73 65 2c 20 2d 20 69 67 6e 6f 72 69 6e 67 20  use, - ignoring 
5bc0: 73 70 61 74 69 61 6c 69 74 65 5f 72 65 66 5f 73  spatialite_ref_s
5bd0: 79 73 20 61 6e 64 20 75 73 69 6e 67 20 74 68 65  ys and using the
5be0: 20 50 52 4f 4a 2e 36 20 6f 77 6e 20 70 72 69 76   PROJ.6 own priv
5bf0: 61 74 65 20 64 61 74 61 62 61 73 65 0d 0a 53 45  ate database..SE
5c00: 4c 45 43 54 20 41 73 45 57 4b 54 20 28 20 53 54  LECT AsEWKT ( ST
5c10: 5f 54 72 61 6e 73 66 6f 72 6d 28 20 4d 61 6b 65  _Transform( Make
5c20: 50 6f 69 6e 74 28 20 39 2e 31 36 39 34 36 34 2c  Point( 9.169464,
5c30: 20 33 39 2e 34 37 38 32 37 35 2c 20 34 33 32 36   39.478275, 4326
5c40: 20 29 2c 20 33 30 30 33 20 29 29 3b 0d 0a 2d 2d   ), 3003 ));..--
5c50: 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d  ----------------
5c60: 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d  ----------------
5c70: 2d 2d 2d 0d 0a 53 52 49 44 3d 33 30 30 33 3b 50  ---..SRID=3003;P
5c80: 4f 49 4e 54 28 31 35 31 34 36 30 30 2e 31 33 34  OINT(1514600.134
5c90: 33 32 31 38 36 32 20 34 33 36 39 38 37 34 2e 34  321862 4369874.4
5ca0: 38 39 32 36 39 39 35 37 29 0d 0a 0d 0a 2d 2d 20  89269957)....-- 
5cb0: 74 6f 20 45 50 53 47 3a 33 30 30 33 20 2d 20 73  to EPSG:3003 - s
5cc0: 61 6d 65 20 61 73 20 61 62 6f 76 65 2c 20 62 75  ame as above, bu
5cd0: 74 20 65 78 70 6c 69 63 69 74 6c 79 20 64 65 66  t explicitly def
5ce0: 69 6e 69 6e 67 20 61 20 73 70 65 63 69 66 69 63  ining a specific
5cf0: 20 61 72 65 61 20 6f 66 20 75 73 65 0d 0a 53 45   area of use..SE
5d00: 4c 45 43 54 20 41 73 45 57 4b 54 20 28 20 53 54  LECT AsEWKT ( ST
5d10: 5f 54 72 61 6e 73 66 6f 72 6d 28 20 4d 61 6b 65  _Transform( Make
5d20: 50 6f 69 6e 74 28 20 39 2e 31 36 39 34 36 34 2c  Point( 9.169464,
5d30: 20 33 39 2e 34 37 38 32 37 35 2c 20 34 33 32 36   39.478275, 4326
5d40: 20 29 2c 20 33 30 30 33 20 2c 20 42 75 69 6c 64   ), 3003 , Build
5d50: 4d 42 52 28 39 2e 31 20 2c 20 33 39 2e 34 20 2c  MBR(9.1 , 39.4 ,
5d60: 20 39 2e 32 20 2c 20 33 39 2e 35 20 2c 20 34 33   9.2 , 39.5 , 43
5d70: 32 36 20 29 29 29 3b 0d 0a 2d 2d 2d 2d 2d 2d 2d  26 )));..-------
5d80: 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d  ----------------
5d90: 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 0d 0a  --------------..
5da0: 53 52 49 44 3d 33 30 30 33 3b 50 4f 49 4e 54 28  SRID=3003;POINT(
5db0: 31 35 31 34 36 30 35 2e 39 38 32 37 36 32 32 34  1514605.98276224
5dc0: 38 20 34 33 36 39 38 37 33 2e 30 30 34 32 32 36  8 4369873.004226
5dd0: 39 34 33 29 0d 0a 3c 2f 76 65 72 62 61 74 69 6d  943)..</verbatim
5de0: 3e 0d 0a 54 68 69 72 64 20 61 6e 64 20 6c 61 73  >..Third and las
5df0: 74 20 65 78 61 6d 70 6c 65 2e 20 49 6e 20 73 6f  t example. In so
5e00: 6d 65 20 63 61 73 65 73 20 65 78 70 6c 69 63 69  me cases explici
5e10: 74 6c 79 20 64 65 66 69 6e 69 6e 67 20 61 20 73  tly defining a s
5e20: 70 65 63 69 66 69 63 20 3c 62 3e 3c 69 3e 61 72  pecific <b><i>ar
5e30: 65 61 20 6f 66 20 75 73 65 3c 2f 69 3e 3c 2f 62  ea of use</i></b
5e40: 3e 20 6d 61 79 20 65 6e 61 62 6c 65 20 50 52 4f  > may enable PRO
5e50: 4a 2e 36 20 74 6f 20 73 65 6c 65 63 74 20 61 6e  J.6 to select an
5e60: 20 6f 70 74 69 6d 69 7a 65 64 20 74 72 61 6e 73   optimized trans
5e70: 66 6f 72 6d 61 74 69 6f 6e 20 6c 65 61 64 69 6e  formation leadin
5e80: 67 20 74 6f 20 6d 6f 72 65 20 70 72 65 63 69 73  g to more precis
5e90: 65 20 72 65 73 75 6c 74 73 2e 3c 62 72 3e 0d 0a  e results.<br>..
5ea0: 49 6e 20 74 68 69 73 20 65 78 61 6d 70 6c 65 20  In this example 
5eb0: 77 65 27 76 65 20 75 73 65 64 20 61 20 50 6f 69  we've used a Poi
5ec0: 6e 74 20 6c 6f 63 61 74 65 64 20 69 6e 20 53 61  nt located in Sa
5ed0: 72 64 69 6e 69 61 2c 20 61 6e 64 20 50 52 4f 4a  rdinia, and PROJ
5ee0: 2e 36 20 73 75 70 70 6f 72 74 73 20 73 65 76 65  .6 supports seve
5ef0: 72 61 6c 20 66 6c 61 76 6f 72 73 20 6f 66 20 3c  ral flavors of <
5f00: 62 3e 45 50 53 47 3a 33 30 30 33 3c 2f 62 3e 20  b>EPSG:3003</b> 
5f10: 64 65 70 65 6e 64 69 6e 67 20 6f 6e 20 74 68 65  depending on the
5f20: 20 73 70 65 63 69 66 69 63 20 61 72 65 61 20 6f   specific area o
5f30: 66 20 75 73 65 2e 3c 62 72 3e 0d 0a 3c 62 3e 49  f use.<br>..<b>I
5f40: 74 61 6c 79 20 2d 20 53 61 72 64 69 6e 69 61 20  taly - Sardinia 
5f50: 6f 6e 73 68 6f 72 65 3c 2f 62 3e 20 69 73 20 6f  onshore</b> is o
5f60: 6e 65 20 62 65 74 77 65 65 6e 20 74 68 65 6d 2c  ne between them,
5f70: 20 73 6f 20 61 66 74 65 72 20 73 70 65 63 69 66   so after specif
5f80: 79 69 6e 67 20 61 6e 20 65 78 70 6c 69 63 69 74  ying an explicit
5f90: 20 3c 62 3e 61 72 65 61 20 6f 66 20 75 73 65 3c   <b>area of use<
5fa0: 2f 62 3e 20 61 20 6d 6f 72 65 20 70 72 65 63 69  /b> a more preci
5fb0: 73 65 20 74 72 61 6e 73 66 6f 72 6d 61 74 69 6f  se transformatio
5fc0: 6e 20 70 69 70 65 6c 69 6e 65 20 77 61 73 20 73  n pipeline was s
5fd0: 65 6c 65 63 74 65 64 2e 3c 62 72 3e 3c 62 72 3e  elected.<br><br>
5fe0: 0d 0a 3c 74 61 62 6c 65 20 63 65 6c 6c 73 70 61  ..<table cellspa
5ff0: 63 69 6e 67 3d 22 38 22 20 63 65 6c 6c 70 61 64  cing="8" cellpad
6000: 64 69 6e 67 3d 22 31 36 22 20 62 67 63 6f 6c 6f  ding="16" bgcolo
6010: 72 3d 22 23 66 66 66 66 64 30 22 3e 0d 0a 3c 74  r="#ffffd0">..<t
6020: 72 3e 3c 74 64 3e 0d 0a 3c 62 3e 3c 75 3e 4c 65  r><td>..<b><u>Le
6030: 73 73 6f 6e 20 6c 65 61 72 6e 65 64 3c 2f 75 3e  sson learned</u>
6040: 3c 2f 62 3e 3a 0d 0a 3c 75 6c 3e 0d 0a 3c 6c 69  </b>:..<ul>..<li
6050: 3e 54 68 65 20 62 65 73 74 20 6d 6f 64 65 20 66  >The best mode f
6060: 6f 72 20 74 61 6b 69 6e 67 20 66 75 6c 6c 20 70  or taking full p
6070: 72 6f 66 69 74 20 66 72 6f 6d 20 50 52 4f 4a 2e  rofit from PROJ.
6080: 36 20 69 73 20 62 79 20 75 73 69 6e 67 20 3c 69  6 is by using <i
6090: 3e 6d 65 74 68 6f 64 3c 2f 69 3e 3d 3c 62 3e 61  >method</i>=<b>a
60a0: 75 74 68 5f 6e 61 6d 65 3a 61 75 74 68 5f 73 72  uth_name:auth_sr
60b0: 69 64 3c 2f 62 3e 20 28 74 68 61 74 20 69 73 20  id</b> (that is 
60c0: 74 68 65 20 3c 62 3e 3c 69 3e 64 65 66 61 75 6c  the <b><i>defaul
60d0: 74 20 73 65 74 74 69 6e 67 3c 2f 69 3e 3c 2f 62  t setting</i></b
60e0: 3e 29 2e 3c 62 72 3e 0d 0a 54 68 69 73 20 77 61  >).<br>..This wa
60f0: 79 20 79 6f 75 27 6c 6c 20 62 65 20 61 62 73 6f  y you'll be abso
6100: 6c 75 74 65 6c 79 20 73 75 72 65 20 74 68 61 74  lutely sure that
6110: 20 74 68 65 20 6d 6f 73 74 20 72 65 63 65 6e 74   the most recent
6120: 20 61 6e 64 20 66 75 6c 6c 79 20 64 65 74 61 69   and fully detai
6130: 6c 65 64 20 64 65 66 69 6e 69 74 69 6f 6e 73 20  led definitions 
6140: 77 69 6c 6c 20 62 65 20 61 6c 77 61 79 73 20 72  will be always r
6150: 65 74 72 69 65 76 65 64 20 66 72 6f 6d 20 74 68  etrieved from th
6160: 65 20 50 52 4f 4a 2e 36 20 6f 77 6e 20 64 61 74  e PROJ.6 own dat
6170: 61 62 61 73 65 20 63 6f 6d 70 6c 65 74 65 6c 79  abase completely
6180: 20 69 67 6e 6f 72 69 6e 67 20 61 6e 79 20 64 65   ignoring any de
6190: 66 69 6e 69 74 69 6f 6e 20 28 6d 61 79 20 62 65  finition (may be
61a0: 20 69 6e 63 6f 6d 70 6c 65 74 65 20 6f 72 20 6f   incomplete or o
61b0: 62 73 6f 6c 65 74 65 29 20 65 76 65 6e 74 75 61  bsolete) eventua
61c0: 6c 6c 79 20 73 74 6f 72 65 64 20 69 6e 74 6f 20  lly stored into 
61d0: 74 68 65 20 3c 62 3e 73 70 61 74 69 61 6c 5f 72  the <b>spatial_r
61e0: 65 66 5f 73 79 73 3c 2f 62 3e 20 74 61 62 6c 65  ef_sys</b> table
61f0: 2e 0d 0a 54 68 69 73 20 69 73 20 61 20 70 61 72  ...This is a par
6200: 74 69 63 75 6c 61 72 79 20 75 73 65 66 75 6c 20  ticulary useful 
6210: 6f 70 74 69 6f 6e 20 77 68 65 6e 20 70 72 6f 63  option when proc
6220: 65 73 73 69 6e 67 20 6f 6c 64 65 72 20 64 61 74  essing older dat
6230: 61 62 61 73 65 73 20 62 65 69 6e 67 20 63 72 65  abases being cre
6240: 61 74 65 64 20 62 79 20 65 61 72 6c 69 65 72 20  ated by earlier 
6250: 76 65 72 73 69 6f 6e 73 20 6f 66 20 53 70 61 74  versions of Spat
6260: 69 61 4c 69 74 65 20 6e 6f 74 20 79 65 74 20 73  iaLite not yet s
6270: 75 70 70 6f 72 74 69 6e 67 20 50 52 4f 4a 2e 36  upporting PROJ.6
6280: 3c 2f 6c 69 3e 0d 0a 3c 6c 69 3e 53 70 61 74 69  </li>..<li>Spati
6290: 61 4c 69 74 65 20 64 6f 65 73 20 6e 6f 74 20 63  aLite does not c
62a0: 6f 6e 73 74 72 61 69 6e 74 73 20 79 6f 75 20 69  onstraints you i
62b0: 6e 20 61 6e 79 20 77 61 79 20 61 6e 64 20 66 75  n any way and fu
62c0: 6c 6c 79 20 72 65 73 70 65 63 74 73 20 75 73 65  lly respects use
62d0: 72 73 20 66 72 65 65 64 6f 6d 20 63 61 72 65 66  rs freedom caref
62e0: 75 6c 6c 79 20 61 76 6f 69 64 69 6e 67 20 3c 69  ully avoiding <i
62f0: 3e 61 75 74 6f 2d 6d 61 67 69 63 61 6c 3c 2f 69  >auto-magical</i
6300: 3e 20 61 73 73 75 6d 70 74 69 6f 6e 73 2e 3c 62  > assumptions.<b
6310: 72 3e 0d 0a 49 66 20 79 6f 75 20 68 61 76 65 20  r>..If you have 
6320: 61 6e 79 20 67 6f 6f 64 20 72 65 61 73 6f 6e 20  any good reason 
6330: 73 75 67 67 65 73 74 69 6e 67 20 74 6f 20 64 6f  suggesting to do
6340: 20 73 75 63 68 20 61 20 74 68 69 6e 67 20 79 6f   such a thing yo
6350: 75 20 61 72 65 20 61 6e 79 77 61 79 20 66 72 65  u are anyway fre
6360: 65 20 74 6f 20 75 73 65 20 74 68 65 20 70 72 6f  e to use the pro
6370: 6a 2d 73 74 72 69 6e 67 73 20 28 3c 69 3e 6d 65  j-strings (<i>me
6380: 74 68 6f 64 3c 2f 69 3e 3d 3c 62 3e 70 72 6f 6a  thod</i>=<b>proj
6390: 34 74 65 78 74 3c 2f 62 3e 29 20 6f 72 20 74 68  4text</b>) or th
63a0: 65 20 57 4b 54 20 64 65 66 69 6e 69 74 69 6f 6e  e WKT definition
63b0: 73 20 28 3c 69 3e 6d 65 74 68 6f 64 3c 2f 69 3e  s (<i>method</i>
63c0: 3d 3c 62 3e 73 72 74 65 78 74 3c 2f 62 3e 29 20  =<b>srtext</b>) 
63d0: 73 74 6f 72 65 64 20 69 6e 74 6f 20 74 68 65 20  stored into the 
63e0: 3c 62 3e 73 70 61 74 69 61 6c 5f 72 65 66 5f 73  <b>spatial_ref_s
63f0: 79 73 3c 2f 62 3e 20 74 61 62 6c 65 2e 3c 62 72  ys</b> table.<br
6400: 3e 0d 0a 42 75 74 20 74 68 69 73 20 69 73 20 75  >..But this is u
6410: 6e 64 65 72 20 79 6f 75 72 20 66 75 6c 6c 20 72  nder your full r
6420: 65 73 70 6f 6e 73 69 62 69 6c 69 74 79 2c 20 61  esponsibility, a
6430: 6e 64 20 79 6f 75 20 6d 75 73 74 20 62 65 20 77  nd you must be w
6440: 65 6c 6c 20 73 75 72 65 20 6f 66 20 77 68 61 74  ell sure of what
6450: 20 61 72 65 20 79 6f 75 20 64 6f 69 6e 67 2e 3c   are you doing.<
6460: 2f 6c 69 3e 0d 0a 3c 6c 69 3e 53 70 61 74 69 61  /li>..<li>Spatia
6470: 4c 69 74 65 20 65 6e 63 6f 75 72 61 67 65 73 20  Lite encourages 
6480: 61 6e 64 20 70 72 6f 6d 6f 74 65 73 20 74 68 65  and promotes the
6490: 20 6d 6f 73 74 20 63 72 65 61 74 69 76 65 20 75   most creative u
64a0: 73 65 73 20 6f 66 20 50 52 4f 4a 2e 36 2c 20 74  ses of PROJ.6, t
64b0: 68 69 73 20 69 6e 63 6c 75 64 69 6e 67 20 3c 62  his including <b
64c0: 3e 3c 69 3e 74 72 61 6e 73 66 6f 72 6d 61 74 69  ><i>transformati
64d0: 6f 6e 20 70 69 70 65 6c 69 6e 65 73 3c 2f 69 3e  on pipelines</i>
64e0: 3c 2f 62 3e 2e 3c 62 72 3e 0d 0a 43 6f 72 72 65  </b>.<br>..Corre
64f0: 63 74 6c 79 20 75 73 69 6e 67 20 3c 69 3e 6d 65  ctly using <i>me
6500: 74 68 6f 64 3c 2f 69 3e 3d 3c 62 3e 70 72 6f 6a  thod</i>=<b>proj
6510: 5f 73 74 72 69 6e 67 3c 2f 62 3e 20 66 6f 72 20  _string</b> for 
6520: 63 6f 6d 70 75 74 69 6e 67 20 63 75 73 74 6f 6d  computing custom
6530: 20 74 72 61 6e 73 66 6f 72 6d 61 74 69 6f 6e 73   transformations
6540: 20 69 73 6e 27 74 20 6e 65 63 65 73 73 61 72 69   isn't necessari
6550: 6c 79 20 73 69 6d 70 6c 65 20 61 6e 64 20 65 61  ly simple and ea
6560: 73 79 2c 20 62 75 74 20 69 74 27 73 20 61 20 62  sy, but it's a b
6570: 69 67 20 6f 70 70 6f 72 74 75 6e 69 74 79 20 66  ig opportunity f
6580: 6f 72 20 61 6c 6c 20 73 6b 69 6c 6c 65 64 20 61  or all skilled a
6590: 6e 64 20 74 61 6c 65 6e 74 65 64 20 70 6f 77 65  nd talented powe
65a0: 72 20 75 73 65 72 73 2e 3c 2f 6c 69 3e 0d 0a 3c  r users.</li>..<
65b0: 2f 75 6c 3e 0d 0a 3c 2f 74 64 3e 3c 2f 74 72 3e  /ul>..</td></tr>
65c0: 0d 0a 3c 2f 74 61 62 6c 65 3e 3c 62 72 3e 0d 0a  ..</table><br>..
65d0: 3c 68 33 3e 4e 65 77 20 61 75 78 69 6c 69 61 72  <h3>New auxiliar
65e0: 79 20 53 51 4c 20 66 75 6e 63 74 69 6f 6e 73 20  y SQL functions 
65f0: 73 70 65 63 69 66 69 63 61 6c 6c 79 20 73 75 70  specifically sup
6600: 70 6f 72 74 69 6e 67 20 50 52 4f 4a 2e 36 3c 2f  porting PROJ.6</
6610: 68 33 3e 0d 0a 3c 74 61 62 6c 65 20 63 65 6c 6c  h3>..<table cell
6620: 73 70 61 63 69 6e 67 3d 22 38 22 20 63 65 6c 6c  spacing="8" cell
6630: 70 61 64 64 69 6e 67 3d 22 38 22 20 62 67 63 6f  padding="8" bgco
6640: 6c 6f 72 3d 22 23 65 38 66 66 65 38 22 20 62 6f  lor="#e8ffe8" bo
6650: 72 64 65 72 3d 22 31 22 3e 0d 0a 3c 74 72 3e 3c  rder="1">..<tr><
6660: 74 68 20 62 67 63 6f 6c 6f 72 3d 22 23 66 66 62  th bgcolor="#ffb
6670: 30 33 65 22 3e 53 51 4c 20 46 75 6e 63 74 69 6f  03e">SQL Functio
6680: 6e 3c 2f 74 68 3e 3c 74 68 20 62 67 63 6f 6c 6f  n</th><th bgcolo
6690: 72 3d 22 23 66 66 62 30 33 65 22 3e 53 75 70 70  r="#ffb03e">Supp
66a0: 6f 72 74 65 64 20 61 72 67 75 6d 65 6e 74 73 3c  orted arguments<
66b0: 2f 74 68 3e 3c 74 68 20 62 67 63 6f 6c 6f 72 3d  /th><th bgcolor=
66c0: 22 23 66 66 62 30 33 65 22 3e 44 65 73 63 72 69  "#ffb03e">Descri
66d0: 70 74 69 6f 6e 3c 2f 74 68 3e 3c 2f 74 72 3e 0d  ption</th></tr>.
66e0: 0a 3c 74 72 3e 3c 74 64 3e 3c 62 3e 48 61 73 50  .<tr><td><b>HasP
66f0: 72 6f 6a 36 3c 2f 62 3e 28 20 3c 69 3e 76 6f 69  roj6</b>( <i>voi
6700: 64 3c 2f 69 3e 20 29 20 3a 20 3c 69 3e 42 6f 6f  d</i> ) : <i>Boo
6710: 6c 65 61 6e 3c 2f 69 3e 3c 2f 74 64 3e 0d 0a 3c  lean</i></td>..<
6720: 74 64 3e 4e 6f 6e 65 3c 2f 74 64 3e 0d 0a 3c 74  td>None</td>..<t
6730: 64 3e 57 69 6c 6c 20 72 65 74 75 72 6e 20 3c 62  d>Will return <b
6740: 3e 31 3c 2f 62 3e 20 28 3c 62 3e 54 52 55 45 3c  >1</b> (<b>TRUE<
6750: 2f 62 3e 29 20 69 66 20 74 68 65 20 6c 69 62 72  /b>) if the libr
6760: 61 72 79 20 68 61 73 20 62 65 65 6e 20 62 75 69  ary has been bui
6770: 6c 74 20 6f 6e 20 3c 62 3e 50 52 4f 4a 2e 36 3c  lt on <b>PROJ.6<
6780: 2f 62 3e 20 28 6f 72 20 61 6e 79 20 6c 61 74 65  /b> (or any late
6790: 72 20 76 65 72 73 69 6f 6e 29 2c 20 6f 74 68 65  r version), othe
67a0: 72 77 69 73 65 20 3c 62 3e 30 3c 2f 62 3e 20 28  rwise <b>0</b> (
67b0: 3c 62 3e 46 41 4c 53 45 3c 2f 62 3e 29 2e 3c 2f  <b>FALSE</b>).</
67c0: 74 64 3e 3c 2f 74 72 3e 0d 0a 3c 74 72 3e 3c 74  td></tr>..<tr><t
67d0: 64 3e 3c 62 3e 50 52 4f 4a 5f 47 65 74 4c 61 73  d><b>PROJ_GetLas
67e0: 74 45 72 72 6f 72 4d 73 67 3c 2f 62 3e 28 20 3c  tErrorMsg</b>( <
67f0: 69 3e 76 6f 69 64 3c 2f 69 3e 20 29 20 3a 20 3c  i>void</i> ) : <
6800: 69 3e 53 74 72 69 6e 67 3c 2f 69 3e 3c 2f 74 64  i>String</i></td
6810: 3e 0d 0a 3c 74 64 3e 4e 6f 6e 65 3c 2f 74 64 3e  >..<td>None</td>
6820: 0d 0a 3c 74 64 3e 57 69 6c 6c 20 72 65 74 75 72  ..<td>Will retur
6830: 6e 20 74 68 65 20 6d 6f 73 74 20 72 65 63 65 6e  n the most recen
6840: 74 20 65 72 72 6f 72 20 6d 65 73 73 61 67 65 20  t error message 
6850: 72 65 74 75 72 6e 65 64 20 62 79 20 50 52 4f 4a  returned by PROJ
6860: 20 28 69 66 20 61 6e 79 29 2e 3c 62 72 3e 0d 0a   (if any).<br>..
6870: 3c 62 3e 4e 55 4c 4c 3c 2f 62 3e 20 77 69 6c 6c  <b>NULL</b> will
6880: 20 62 65 20 72 65 74 75 72 6e 65 64 20 69 66 20   be returned if 
6890: 74 68 65 72 65 20 69 73 20 6e 6f 20 63 75 72 65  there is no cure
68a0: 6e 74 6c 79 20 70 65 6e 64 69 6e 67 20 50 52 4f  ntly pending PRO
68b0: 4a 20 65 72 72 6f 72 2e 3c 2f 74 64 3e 3c 2f 74  J error.</td></t
68c0: 72 3e 0d 0a 3c 74 72 3e 3c 74 64 3e 3c 62 3e 50  r>..<tr><td><b>P
68d0: 52 4f 4a 5f 47 65 74 44 61 74 61 62 61 73 65 50  ROJ_GetDatabaseP
68e0: 61 74 68 3c 2f 62 3e 28 20 3c 69 3e 76 6f 69 64  ath</b>( <i>void
68f0: 3c 2f 69 3e 20 3a 20 3c 69 3e 53 74 72 69 6e 67  </i> : <i>String
6900: 3c 2f 69 3e 29 3c 2f 74 64 3e 0d 0a 3c 74 64 3e  </i>)</td>..<td>
6910: 4e 6f 6e 65 3c 2f 74 64 3e 0d 0a 3c 74 64 3e 57  None</td>..<td>W
6920: 69 6c 6c 20 72 65 74 75 72 6e 20 74 68 65 20 63  ill return the c
6930: 75 72 72 65 6e 74 6c 79 20 73 65 74 20 70 61 74  urrently set pat
6940: 68 6e 61 6d 65 20 6c 65 61 64 69 6e 67 20 74 6f  hname leading to
6950: 20 74 68 65 20 70 72 69 76 61 74 65 20 50 52 4f   the private PRO
6960: 4a 27 73 20 53 51 4c 69 74 65 20 64 61 74 61 62  J's SQLite datab
6970: 61 73 65 2e 3c 62 72 3e 0d 0a 3c 62 3e 4e 55 4c  ase.<br>..<b>NUL
6980: 4c 3c 2f 62 3e 20 77 69 6c 6c 20 62 65 20 72 65  L</b> will be re
6990: 74 75 72 6e 65 64 20 69 66 20 74 68 65 72 65 20  turned if there 
69a0: 69 73 20 6e 6f 20 70 72 69 76 61 74 65 20 50 52  is no private PR
69b0: 4f 4a 27 73 20 53 51 4c 69 74 65 20 64 61 74 61  OJ's SQLite data
69c0: 62 61 73 65 20 63 75 72 72 65 6e 74 6c 79 20 63  base currently c
69d0: 6f 6e 6e 65 63 74 65 64 2e 3c 2f 74 64 3e 3c 2f  onnected.</td></
69e0: 74 72 3e 0d 0a 3c 74 72 3e 3c 74 64 3e 3c 62 3e  tr>..<tr><td><b>
69f0: 50 52 4f 4a 5f 53 65 74 44 61 74 61 62 61 73 65  PROJ_SetDatabase
6a00: 50 61 74 68 3c 2f 62 3e 20 28 20 6e 65 77 5f 70  Path</b> ( new_p
6a10: 61 74 68 20 3c 69 3e 53 74 72 69 6e 67 3c 2f 69  ath <i>String</i
6a20: 3e 20 29 20 3a 20 3c 69 3e 53 74 72 69 6e 67 3c  > ) : <i>String<
6a30: 2f 69 3e 3c 2f 74 64 3e 0d 0a 3c 74 64 3e 0d 0a  /i></td>..<td>..
6a40: 3c 75 6c 3e 0d 0a 3c 6c 69 3e 3c 62 3e 6e 65 77  <ul>..<li><b>new
6a50: 5f 70 61 74 68 3c 2f 62 3e 3a 20 61 20 72 65 6c  _path</b>: a rel
6a60: 61 74 69 76 65 20 6f 72 20 61 62 73 6f 6c 75 74  ative or absolut
6a70: 65 20 70 61 74 68 6e 61 6d 65 20 6c 65 61 64 69  e pathname leadi
6a80: 6e 67 20 74 6f 20 61 20 76 61 6c 69 64 20 50 52  ng to a valid PR
6a90: 4f 4a 27 73 20 53 51 4c 69 74 65 20 64 61 74 61  OJ's SQLite data
6aa0: 62 61 73 65 2e 3c 2f 6c 69 3e 0d 0a 3c 2f 75 6c  base.</li>..</ul
6ab0: 3e 3c 2f 74 64 3e 0d 0a 3c 74 64 3e 57 69 6c 6c  ></td>..<td>Will
6ac0: 20 63 68 61 6e 67 65 20 74 68 65 20 63 75 72 72   change the curr
6ad0: 65 6e 74 6c 79 20 73 65 74 20 70 61 74 68 6e 61  ently set pathna
6ae0: 6d 65 20 6c 65 61 64 69 6e 67 20 74 6f 20 74 68  me leading to th
6af0: 65 20 70 72 69 76 61 74 65 20 50 52 4f 4a 27 73  e private PROJ's
6b00: 20 53 51 4c 69 74 65 20 64 61 74 61 62 61 73 65   SQLite database
6b10: 2e 3c 62 72 3e 0d 0a 3c 62 3e 4e 55 4c 4c 3c 2f  .<br>..<b>NULL</
6b20: 62 3e 20 77 69 6c 6c 20 62 65 20 72 65 74 75 72  b> will be retur
6b30: 6e 65 64 20 69 66 20 74 68 65 20 70 61 73 73 65  ned if the passe
6b40: 64 20 70 61 74 68 20 69 73 20 69 6e 76 61 6c 69  d path is invali
6b50: 64 2c 20 6f 74 68 65 72 77 69 73 65 20 74 68 65  d, otherwise the
6b60: 20 70 61 74 68 20 6f 66 20 74 68 65 20 63 75 72   path of the cur
6b70: 72 65 6e 74 6c 79 20 73 65 74 20 70 72 69 76 61  rently set priva
6b80: 74 65 20 50 52 4f 4a 27 73 20 53 51 4c 69 74 65  te PROJ's SQLite
6b90: 20 64 61 74 61 62 61 73 65 20 77 69 6c 6c 20 62   database will b
6ba0: 65 20 72 65 74 75 72 6e 65 64 2e 3c 2f 74 64 3e  e returned.</td>
6bb0: 3c 2f 74 72 3e 0d 0a 3c 74 72 3e 3c 74 64 3e 3c  </tr>..<tr><td><
6bc0: 62 3e 50 52 4f 4a 5f 41 73 57 4b 54 3c 2f 62 3e  b>PROJ_AsWKT</b>
6bd0: 20 28 20 61 75 74 68 5f 6e 61 6d 65 20 3c 69 3e   ( auth_name <i>
6be0: 53 74 72 69 6e 67 3c 2f 69 3e 20 2c 20 61 75 74  String</i> , aut
6bf0: 68 5f 73 72 69 64 20 3c 69 3e 49 6e 74 65 67 65  h_srid <i>Intege
6c00: 72 3c 2f 69 3e 20 29 20 3a 20 3c 69 3e 53 74 72  r</i> ) : <i>Str
6c10: 69 6e 67 3c 2f 69 3e 3c 68 72 3e 0d 0a 3c 62 3e  ing</i><hr>..<b>
6c20: 50 52 4f 4a 5f 41 73 57 4b 54 3c 2f 62 3e 20 28  PROJ_AsWKT</b> (
6c30: 20 61 75 74 68 5f 6e 61 6d 65 20 3c 69 3e 53 74   auth_name <i>St
6c40: 72 69 6e 67 3c 2f 69 3e 20 2c 20 61 75 74 68 5f  ring</i> , auth_
6c50: 73 72 69 64 20 3c 69 3e 49 6e 74 65 67 65 72 3c  srid <i>Integer<
6c60: 2f 69 3e 20 2c 20 77 6b 74 5f 73 74 79 6c 65 20  /i> , wkt_style 
6c70: 3c 69 3e 53 74 72 69 6e 67 3c 2f 69 3e 20 29 20  <i>String</i> ) 
6c80: 3a 20 3c 69 3e 53 74 72 69 6e 67 3c 2f 69 3e 3c  : <i>String</i><
6c90: 68 72 3e 0d 0a 3c 62 3e 50 52 4f 4a 5f 41 73 57  hr>..<b>PROJ_AsW
6ca0: 4b 54 3c 2f 62 3e 20 28 20 61 75 74 68 5f 6e 61  KT</b> ( auth_na
6cb0: 6d 65 20 3c 69 3e 53 74 72 69 6e 67 3c 2f 69 3e  me <i>String</i>
6cc0: 20 2c 20 61 75 74 68 5f 73 72 69 64 20 3c 69 3e   , auth_srid <i>
6cd0: 49 6e 74 65 67 65 72 3c 2f 69 3e 20 2c 20 77 6b  Integer</i> , wk
6ce0: 74 5f 73 74 79 6c 65 20 3c 69 3e 53 74 72 69 6e  t_style <i>Strin
6cf0: 67 3c 2f 69 3e 20 2c 20 69 6e 64 65 6e 74 65 64  g</i> , indented
6d00: 20 3c 69 3e 42 6f 6f 6c 65 61 6e 3c 2f 69 3e 20   <i>Boolean</i> 
6d10: 29 20 3a 20 3c 69 3e 53 74 72 69 6e 67 3c 2f 69  ) : <i>String</i
6d20: 3e 3c 68 72 3e 0d 0a 3c 62 3e 50 52 4f 4a 5f 41  ><hr>..<b>PROJ_A
6d30: 73 57 4b 54 3c 2f 62 3e 20 28 20 61 75 74 68 5f  sWKT</b> ( auth_
6d40: 6e 61 6d 65 20 3c 69 3e 53 74 72 69 6e 67 3c 2f  name <i>String</
6d50: 69 3e 20 2c 20 61 75 74 68 5f 73 72 69 64 20 3c  i> , auth_srid <
6d60: 69 3e 49 6e 74 65 67 65 72 3c 2f 69 3e 20 2c 20  i>Integer</i> , 
6d70: 77 6b 74 5f 73 74 79 6c 65 20 3c 69 3e 53 74 72  wkt_style <i>Str
6d80: 69 6e 67 3c 2f 69 3e 20 2c 20 69 6e 64 65 6e 74  ing</i> , indent
6d90: 65 64 20 3c 69 3e 42 6f 6f 6c 65 61 6e 3c 2f 69  ed <i>Boolean</i
6da0: 3e 20 2c 20 69 6e 64 65 6e 74 61 74 69 6f 6e 20  > , indentation 
6db0: 3c 69 3e 49 6e 74 65 67 65 72 3c 2f 69 3e 20 29  <i>Integer</i> )
6dc0: 20 3a 20 3c 69 3e 53 74 72 69 6e 67 3c 2f 69 3e   : <i>String</i>
6dd0: 3c 2f 74 64 3e 0d 0a 3c 74 64 3e 3c 75 6c 3e 0d  </td>..<td><ul>.
6de0: 0a 3c 6c 69 3e 3c 62 3e 61 75 74 68 5f 6e 61 6d  .<li><b>auth_nam
6df0: 65 3c 2f 62 3e 20 61 6e 64 20 3c 62 3e 61 75 74  e</b> and <b>aut
6e00: 68 5f 73 72 69 64 3c 2f 62 3e 20 69 64 65 6e 74  h_srid</b> ident
6e10: 69 66 79 20 74 68 65 20 69 6e 74 65 6e 64 65 64  ify the intended
6e20: 20 43 52 53 2e 3c 62 72 3e 0d 0a 3c 62 3e 61 75   CRS.<br>..<b>au
6e30: 74 68 5f 6e 61 6d 65 3c 2f 62 3e 20 63 61 6e 20  th_name</b> can 
6e40: 62 65 20 3c 62 3e 4e 55 4c 4c 3c 2f 62 3e 2c 20  be <b>NULL</b>, 
6e50: 61 6e 64 20 69 6e 20 74 68 69 73 20 63 61 73 65  and in this case
6e60: 20 3c 62 3e 45 50 53 47 3c 2f 62 3e 20 77 69 6c   <b>EPSG</b> wil
6e70: 6c 20 62 65 20 61 73 73 75 6d 65 64 2e 3c 2f 6c  l be assumed.</l
6e80: 69 3e 0d 0a 3c 6c 69 3e 74 68 65 20 6f 70 74 69  i>..<li>the opti
6e90: 6f 6e 61 6c 20 61 72 67 75 6d 65 6e 74 20 3c 62  onal argument <b
6ea0: 3e 73 74 79 6c 65 3c 2f 62 3e 20 64 65 74 65 72  >style</b> deter
6eb0: 6d 69 6e 65 73 20 77 68 69 63 68 20 73 70 65 63  mines which spec
6ec0: 69 66 69 63 20 57 4b 54 20 66 6f 72 6d 61 74 20  ific WKT format 
6ed0: 73 68 6f 75 6c 64 20 62 65 20 61 64 6f 70 74 65  should be adopte
6ee0: 64 2c 20 61 6e 64 20 6d 75 73 74 20 62 65 20 6f  d, and must be o
6ef0: 6e 65 20 62 65 74 77 65 65 6e 20 3c 62 3e 47 44  ne between <b>GD
6f00: 41 4c 3c 2f 62 3e 2c 20 3c 62 3e 45 53 52 49 3c  AL</b>, <b>ESRI<
6f10: 2f 62 3e 2c 20 3c 62 3e 49 53 4f 2d 32 30 31 35  /b>, <b>ISO-2015
6f20: 3c 2f 62 3e 20 6f 72 20 3c 62 3e 49 53 4f 2d 32  </b> or <b>ISO-2
6f30: 30 31 38 3c 2f 62 3e 20 28 74 68 69 73 20 6c 61  018</b> (this la
6f40: 74 74 65 72 20 62 65 69 6e 67 20 74 68 65 20 64  tter being the d
6f50: 65 66 61 75 6c 74 20 73 65 74 74 69 6e 67 29 2e  efault setting).
6f60: 3c 2f 6c 69 3e 0d 0a 3c 6c 69 3e 74 68 65 20 6f  </li>..<li>the o
6f70: 70 74 69 6f 6e 61 6c 20 61 72 67 75 6d 65 6e 74  ptional argument
6f80: 20 3c 62 3e 69 6e 64 65 6e 74 65 64 3c 2f 62 3e   <b>indented</b>
6f90: 20 69 66 20 73 65 74 20 74 6f 20 3c 62 3e 54 52   if set to <b>TR
6fa0: 55 45 3c 2f 62 3e 20 77 69 6c 6c 20 6e 69 63 65  UE</b> will nice
6fb0: 6c 79 20 66 6f 72 6d 61 74 20 61 20 6d 75 6c 74  ly format a mult
6fc0: 69 6c 69 6e 65 20 57 4b 54 20 65 78 70 72 65 73  iline WKT expres
6fd0: 73 69 6f 6e 2c 20 6f 74 68 65 72 77 69 73 65 20  sion, otherwise 
6fe0: 61 20 73 69 6e 67 6c 65 20 6d 6f 6e 6f 6c 69 74  a single monolit
6ff0: 68 69 63 20 6c 69 6e 65 20 6c 61 63 6b 69 6e 67  hic line lacking
7000: 20 61 6e 79 20 77 68 69 74 65 2d 73 70 61 63 65   any white-space
7010: 20 6f 72 20 6e 65 77 2d 6c 69 6e 65 20 77 69 6c   or new-line wil
7020: 6c 20 62 65 20 70 72 69 6e 74 65 64 20 28 74 68  l be printed (th
7030: 65 20 64 65 66 61 75 6c 74 20 69 73 20 3c 62 3e  e default is <b>
7040: 54 52 55 45 3c 2f 62 3e 29 2e 3c 2f 6c 69 3e 0d  TRUE</b>).</li>.
7050: 0a 3c 6c 69 3e 74 68 65 20 6f 70 74 69 6f 6e 61  .<li>the optiona
7060: 6c 20 61 72 67 75 6d 65 6e 74 20 3c 62 3e 69 6e  l argument <b>in
7070: 64 65 6e 74 61 74 69 6f 6e 3c 2f 62 3e 20 64 65  dentation</b> de
7080: 74 65 72 6d 69 6e 65 73 20 68 6f 77 20 6d 61 6e  termines how man
7090: 79 20 77 68 69 74 65 2d 73 70 61 63 65 73 20 61  y white-spaces a
70a0: 72 65 20 74 6f 20 62 65 20 75 73 65 64 20 66 6f  re to be used fo
70b0: 72 20 69 6e 64 65 6e 74 69 6e 67 20 28 6f 6e 6c  r indenting (onl
70c0: 79 20 6d 65 61 6e 69 6e 67 66 75 6c 20 69 66 20  y meaningful if 
70d0: 3c 62 3e 3c 69 3e 69 6e 64 65 6e 74 65 64 3d 54  <b><i>indented=T
70e0: 52 55 45 3c 2f 69 3e 3c 2f 62 3e 3b 20 74 68 65  RUE</i></b>; the
70f0: 20 64 65 66 61 75 6c 74 20 76 61 6c 75 65 73 20   default values 
7100: 69 73 20 3c 62 3e 34 3c 2f 62 3e 29 2e 3c 2f 6c  is <b>4</b>).</l
7110: 69 3e 0d 0a 3c 2f 75 6c 3e 3c 2f 74 64 3e 0d 0a  i>..</ul></td>..
7120: 3c 74 64 3e 57 69 6c 6c 20 72 65 74 75 72 6e 20  <td>Will return 
7130: 74 68 65 20 57 4b 54 20 65 78 70 72 65 73 73 69  the WKT expressi
7140: 6f 6e 20 63 6f 72 72 65 73 70 6f 6e 64 69 6e 67  on corresponding
7150: 20 74 6f 20 61 20 67 69 76 65 6e 20 43 52 53 3b   to a given CRS;
7160: 20 74 68 65 20 64 65 66 69 6e 69 74 69 6f 6e 73   the definitions
7170: 20 77 69 6c 6c 20 62 65 20 74 61 6b 65 6e 20 64   will be taken d
7180: 69 72 65 63 74 6c 79 20 66 72 6f 6d 20 74 68 65  irectly from the
7190: 20 70 72 69 76 61 74 65 20 50 52 4f 4a 27 73 20   private PROJ's 
71a0: 6f 77 6e 20 64 61 74 61 62 61 73 65 2e 3c 62 72  own database.<br
71b0: 3e 0d 0a 3c 62 3e 4e 55 4c 4c 3c 2f 62 3e 20 77  >..<b>NULL</b> w
71c0: 69 6c 6c 20 62 65 20 72 65 74 75 72 6e 65 64 20  ill be returned 
71d0: 6f 6e 20 66 61 69 6c 75 72 65 20 6f 72 20 6f 6e  on failure or on
71e0: 20 69 6e 76 61 6c 69 64 20 61 72 67 75 6d 65 6e   invalid argumen
71f0: 74 73 2e 3c 2f 74 64 3e 3c 2f 74 72 3e 0d 0a 3c  ts.</td></tr>..<
7200: 74 72 3e 3c 74 64 3e 3c 62 3e 50 52 4f 4a 5f 47  tr><td><b>PROJ_G
7210: 75 65 73 73 53 72 69 64 46 72 6f 6d 57 4b 54 3c  uessSridFromWKT<
7220: 2f 62 3e 20 28 20 77 6b 74 5f 65 78 70 72 20 3c  /b> ( wkt_expr <
7230: 69 3e 53 74 72 69 6e 67 3c 2f 69 3e 20 29 20 3a  i>String</i> ) :
7240: 20 3c 69 3e 49 6e 74 65 67 65 72 3c 2f 69 3e 3c   <i>Integer</i><
7250: 2f 74 64 3e 0d 0a 3c 74 64 3e 3c 75 6c 3e 0d 0a  /td>..<td><ul>..
7260: 3c 6c 69 3e 3c 62 3e 77 6b 74 5f 65 78 70 72 3c  <li><b>wkt_expr<
7270: 2f 62 3e 3a 20 74 68 65 20 57 4b 54 20 65 78 70  /b>: the WKT exp
7280: 72 65 73 73 69 6f 6e 20 74 6f 20 62 65 20 65 76  ression to be ev
7290: 61 6c 75 61 74 65 64 2e 3c 2f 6c 69 3e 0d 0a 3c  aluated.</li>..<
72a0: 2f 75 6c 3e 3c 2f 74 64 3e 0d 0a 3c 74 64 3e 0d  /ul></td>..<td>.
72b0: 0a 57 69 6c 6c 20 70 6f 73 73 69 62 6c 79 20 72  .Will possibly r
72c0: 65 74 75 72 6e 20 74 68 65 20 3c 62 3e 53 52 49  eturn the <b>SRI
72d0: 44 20 76 61 6c 75 65 3c 2f 62 3e 20 63 6f 72 72  D value</b> corr
72e0: 65 73 70 6f 6e 64 69 6e 67 20 74 6f 20 61 20 67  esponding to a g
72f0: 69 76 65 6e 20 57 4b 54 20 65 78 70 72 65 73 73  iven WKT express
7300: 69 6f 6e 20 64 65 66 69 6e 69 6e 67 20 61 20 43  ion defining a C
7310: 52 53 2e 3c 62 72 3e 0d 0a 3c 62 3e 2d 31 3c 2f  RS.<br>..<b>-1</
7320: 62 3e 20 77 69 6c 6c 20 62 65 20 72 65 74 75 72  b> will be retur
7330: 6e 65 64 20 69 66 20 6e 6f 20 43 52 53 20 73 75  ned if no CRS su
7340: 70 70 6f 72 74 65 64 20 62 79 20 50 52 4f 4a 2e  pported by PROJ.
7350: 36 20 6d 61 74 63 68 65 73 20 74 68 65 20 57 4b  6 matches the WK
7360: 54 20 65 78 70 72 65 73 73 69 6f 6e 2e 3c 62 72  T expression.<br
7370: 3e 0d 0a 3c 62 3e 4e 55 4c 4c 3c 2f 62 3e 20 77  >..<b>NULL</b> w
7380: 69 6c 6c 20 62 65 20 72 65 74 75 72 6e 65 64 20  ill be returned 
7390: 6f 6e 20 69 6e 76 61 6c 69 64 20 61 72 67 75 6d  on invalid argum
73a0: 65 6e 74 2e 0d 0a 3c 2f 74 64 3e 3c 2f 74 72 3e  ent...</td></tr>
73b0: 0d 0a 3c 74 72 3e 3c 74 64 3e 3c 62 3e 50 52 4f  ..<tr><td><b>PRO
73c0: 4a 5f 47 75 65 73 73 53 72 69 64 46 72 6f 6d 53  J_GuessSridFromS
73d0: 48 50 3c 2f 62 3e 20 28 20 66 69 6c 65 6e 61 6d  HP</b> ( filenam
73e0: 65 20 3c 69 3e 53 74 72 69 6e 67 3c 2f 69 3e 20  e <i>String</i> 
73f0: 29 20 3a 20 3c 69 3e 49 6e 74 65 67 65 72 3c 2f  ) : <i>Integer</
7400: 69 3e 3c 2f 74 64 3e 0d 0a 3c 74 64 3e 3c 75 6c  i></td>..<td><ul
7410: 3e 0d 0a 3c 6c 69 3e 3c 62 3e 66 69 6c 65 6e 61  >..<li><b>filena
7420: 6d 65 3c 2f 62 3e 3a 20 74 68 65 20 61 62 73 6f  me</b>: the abso
7430: 6c 75 74 65 20 6f 72 20 72 65 6c 61 74 69 76 65  lute or relative
7440: 20 70 61 74 68 20 6c 65 61 64 69 6e 67 20 74 6f   path leading to
7450: 20 73 6f 6d 65 20 53 68 61 70 65 66 69 6c 65 2e   some Shapefile.
7460: 3c 62 72 3e 0d 0a 4e 6f 74 65 3a 20 65 78 61 63  <br>..Note: exac
7470: 74 6c 65 79 20 61 73 20 72 65 71 75 69 72 65 64  tley as required
7480: 20 62 79 20 3c 62 3e 3c 69 3e 49 6d 70 6f 72 74   by <b><i>Import
7490: 53 48 50 3c 2f 69 3e 3c 2f 62 3e 28 29 20 3c 62  SHP</i></b>() <b
74a0: 3e 3c 69 3e 66 69 6c 65 6e 61 6d 65 3c 2f 69 3e  ><i>filename</i>
74b0: 3c 2f 62 3e 20 6d 75 73 74 20 6f 6d 69 74 20 61  </b> must omit a
74c0: 6e 79 20 3c 62 3e 2e 73 68 70 3c 2f 62 3e 2c 20  ny <b>.shp</b>, 
74d0: 3c 62 3e 2e 73 68 78 3c 2f 62 3e 2c 20 3c 62 3e  <b>.shx</b>, <b>
74e0: 2e 64 62 66 3c 2f 62 3e 20 6f 72 20 3c 62 3e 2e  .dbf</b> or <b>.
74f0: 70 72 6a 3c 2f 62 3e 20 73 75 66 66 69 78 2e 3c  prj</b> suffix.<
7500: 2f 6c 69 3e 0d 0a 3c 2f 75 6c 3e 3c 2f 74 64 3e  /li>..</ul></td>
7510: 0d 0a 3c 74 64 3e 0d 0a 57 69 6c 6c 20 70 6f 73  ..<td>..Will pos
7520: 73 69 62 6c 79 20 72 65 74 75 72 6e 20 74 68 65  sibly return the
7530: 20 3c 62 3e 53 52 49 44 20 76 61 6c 75 65 3c 2f   <b>SRID value</
7540: 62 3e 20 63 6f 72 72 65 73 70 6f 6e 64 69 6e 67  b> corresponding
7550: 20 74 6f 20 74 68 65 20 43 52 53 20 64 65 66 69   to the CRS defi
7560: 6e 65 64 20 62 79 20 74 68 65 20 2e 50 52 4a 20  ned by the .PRJ 
7570: 6d 65 6d 62 65 72 20 6f 66 20 74 68 65 20 53 68  member of the Sh
7580: 61 70 65 66 69 6c 65 2e 3c 62 72 3e 0d 0a 3c 62  apefile.<br>..<b
7590: 3e 2d 31 3c 2f 62 3e 20 77 69 6c 6c 20 62 65 20  >-1</b> will be 
75a0: 72 65 74 75 72 6e 65 64 20 69 66 20 6e 6f 20 43  returned if no C
75b0: 52 53 20 73 75 70 70 6f 72 74 65 64 20 62 79 20  RS supported by 
75c0: 50 52 4f 4a 2e 36 20 6d 61 74 63 68 65 73 20 50  PROJ.6 matches P
75d0: 52 4a 20 6d 65 6d 62 65 72 20 6f 66 20 74 68 65  RJ member of the
75e0: 20 53 68 61 70 65 66 69 6c 65 2e 3c 62 72 3e 0d   Shapefile.<br>.
75f0: 0a 3c 62 3e 4e 55 4c 4c 3c 2f 62 3e 20 77 69 6c  .<b>NULL</b> wil
7600: 6c 20 62 65 20 72 65 74 75 72 6e 65 64 20 6f 6e  l be returned on
7610: 20 69 6e 76 61 6c 69 64 20 61 72 67 75 6d 65 6e   invalid argumen
7620: 74 2e 3c 68 72 3e 0d 0a 3c 75 3e 50 6c 65 61 73  t.<hr>..<u>Pleas
7630: 65 20 6e 6f 74 65 20 77 65 6c 6c 3c 2f 75 3e 3a  e note well</u>:
7640: 20 74 68 69 73 20 53 51 4c 20 66 75 6e 63 74 69   this SQL functi
7650: 6f 6e 20 6f 70 65 6e 64 20 74 68 65 20 64 6f 6f  on opend the doo
7660: 72 20 74 6f 20 6d 61 6e 79 20 70 6f 74 65 6e 74  r to many potent
7670: 69 61 6c 20 73 65 63 75 72 69 74 79 20 69 73 73  ial security iss
7680: 75 65 73 2c 20 61 6e 64 20 74 68 75 73 20 69 73  ues, and thus is
7690: 20 61 6c 77 61 79 73 20 3c 69 3e 64 69 73 61 62   always <i>disab
76a0: 6c 65 64 20 62 79 20 64 65 66 61 75 6c 74 3c 2f  led by default</
76b0: 69 3e 2e 3c 62 72 3e 0d 0a 45 78 70 6c 69 63 69  i>.<br>..Explici
76c0: 74 6c 79 20 73 65 74 74 69 6e 67 20 74 68 65 20  tly setting the 
76d0: 65 6e 76 69 72 6f 6e 6d 65 6e 74 20 76 61 72 69  environment vari
76e0: 61 62 6c 65 20 3c 62 3e 53 50 41 54 49 41 4c 49  able <b>SPATIALI
76f0: 54 45 5f 53 45 43 55 52 49 54 59 3d 72 65 6c 61  TE_SECURITY=rela
7700: 78 65 64 3c 2f 62 3e 20 69 73 20 61 62 73 6f 6c  xed</b> is absol
7710: 75 74 65 6c 79 20 72 65 71 75 69 72 65 64 20 69  utely required i
7720: 6e 20 6f 72 64 65 72 20 74 6f 20 65 6e 61 62 6c  n order to enabl
7730: 65 20 74 68 69 73 20 66 75 6e 63 74 69 6f 6e 2e  e this function.
7740: 0d 0a 3c 2f 74 64 3e 3c 2f 74 72 3e 0d 0a 3c 2f  ..</td></tr>..</
7750: 74 61 62 6c 65 3e 3c 62 72 3e 0d 0a 3c 74 61 62  table><br>..<tab
7760: 6c 65 20 63 65 6c 6c 73 70 61 63 69 6e 67 3d 22  le cellspacing="
7770: 38 22 20 63 65 6c 6c 70 61 64 64 69 6e 67 3d 22  8" cellpadding="
7780: 31 36 22 20 62 67 63 6f 6c 6f 72 3d 22 23 66 66  16" bgcolor="#ff
7790: 66 66 65 39 22 3e 0d 0a 3c 74 72 3e 3c 74 64 3e  ffe9">..<tr><td>
77a0: 0d 0a 3c 62 3e 3c 75 3e 4e 6f 74 65 3c 2f 75 3e  ..<b><u>Note</u>
77b0: 3c 2f 62 3e 3a 20 61 6c 6c 20 74 68 65 20 61 62  </b>: all the ab
77c0: 6f 76 65 20 53 51 4c 20 46 75 6e 63 74 69 6f 6e  ove SQL Function
77d0: 73 20 77 69 6c 6c 20 62 65 20 61 76 61 69 6c 61  s will be availa
77e0: 62 6c 65 20 6f 6e 6c 79 20 77 68 65 6e 20 53 70  ble only when Sp
77f0: 61 74 69 61 6c 69 74 65 2d 35 2e 30 2e 30 20 68  atialite-5.0.0 h
7800: 61 73 20 62 65 65 6e 20 62 75 69 6c 74 20 61 67  as been built ag
7810: 61 69 6e 73 74 20 3c 62 3e 50 52 4f 4a 2e 36 3c  ainst <b>PROJ.6<
7820: 2f 62 3e 20 28 6f 72 20 61 6e 79 20 73 75 62 73  /b> (or any subs
7830: 65 71 75 65 6e 74 20 76 65 72 73 69 6f 6e 29 2e  equent version).
7840: 3c 62 72 3e 0d 0a 49 66 20 53 70 61 74 69 61 4c  <br>..If SpatiaL
7850: 69 74 65 2d 35 2e 30 2e 30 20 68 61 73 20 62 65  ite-5.0.0 has be
7860: 65 6e 20 62 75 69 6c 74 20 69 6e 73 74 65 61 64  en built instead
7870: 20 61 67 61 69 6e 73 74 20 61 6e 79 20 70 72 65   against any pre
7880: 76 69 6f 73 75 73 20 76 65 72 73 69 6f 6e 20 28  viosus version (
7890: 61 73 20 65 2e 67 2e 20 3c 62 3e 50 52 4f 4a 2e  as e.g. <b>PROJ.
78a0: 34 3c 2f 62 3e 29 20 61 6e 79 20 61 74 74 65 6d  4</b>) any attem
78b0: 70 74 20 74 6f 20 63 61 6c 6c 20 6f 6e 65 20 6f  pt to call one o
78c0: 66 20 74 68 65 73 65 20 53 51 4c 20 46 75 6e 63  f these SQL Func
78d0: 74 69 6f 6e 73 20 77 69 6c 6c 20 73 69 6d 70 6c  tions will simpl
78e0: 79 20 72 65 74 75 72 6e 20 61 20 3c 62 3e 3c 69  y return a <b><i
78f0: 3e 3c 75 3e 6e 6f 20 73 75 63 68 20 66 75 6e 63  ><u>no such func
7900: 74 69 6f 6e 3c 2f 75 3e 3c 2f 69 3e 3c 2f 62 3e  tion</u></i></b>
7910: 20 53 51 4c 20 65 72 72 6f 72 2e 0d 0a 3c 2f 74   SQL error...</t
7920: 64 3e 3c 2f 74 72 3e 0d 0a 3c 2f 74 61 62 6c 65  d></tr>..</table
7930: 3e 3c 62 72 3e 0d 0a 3c 62 3e 50 72 61 63 74 69  ><br>..<b>Practi
7940: 63 61 6c 20 65 78 61 6d 70 6c 65 73 3a 3c 2f 62  cal examples:</b
7950: 3e 0d 0a 3c 76 65 72 62 61 74 69 6d 3e 0d 0a 53  >..<verbatim>..S
7960: 45 4c 45 43 54 20 50 52 4f 4a 5f 47 65 74 44 61  ELECT PROJ_GetDa
7970: 74 61 62 61 73 65 50 61 74 68 28 29 3b 20 20 2d  tabasePath();  -
7980: 2d 20 72 65 74 72 69 65 76 69 6e 67 20 74 68 65  - retrieving the
7990: 20 63 75 72 72 65 6e 74 6c 79 20 73 65 74 20 50   currently set P
79a0: 52 4f 4a 27 73 20 6f 77 6e 20 64 61 74 61 62 61  ROJ's own databa
79b0: 73 65 0d 0a 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d  se..------------
79c0: 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d  ----------------
79d0: 2d 2d 0d 0a 2f 75 73 72 2f 6c 6f 63 61 6c 2f 73  --../usr/local/s
79e0: 68 61 72 65 2f 70 72 6f 6a 2f 70 72 6f 6a 2e 64  hare/proj/proj.d
79f0: 62 0d 0a 0d 0a 53 45 4c 45 43 54 20 50 52 4f 4a  b....SELECT PROJ
7a00: 5f 53 65 74 44 61 74 61 62 61 73 65 50 61 74 68  _SetDatabasePath
7a10: 28 27 2f 68 6f 6d 65 2f 73 61 6e 64 72 6f 2f 6e  ('/home/sandro/n
7a20: 6f 74 5f 65 78 69 73 74 69 6e 67 5f 70 72 6f 6a  ot_existing_proj
7a30: 2e 64 62 27 29 3b 20 2d 2d 20 6e 6f 6e 20 65 78  .db'); -- non ex
7a40: 69 73 74 69 6e 67 20 64 61 74 61 62 61 73 65 0d  isting database.
7a50: 0a 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d  .---------------
7a60: 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 0d  ---------------.
7a70: 0a 4e 55 4c 4c 0d 0a 0d 0a 53 45 4c 45 43 54 20  .NULL....SELECT 
7a80: 50 52 4f 4a 5f 47 65 74 4c 61 73 74 45 72 72 6f  PROJ_GetLastErro
7a90: 72 4d 73 67 28 29 3b 20 2d 2d 20 72 65 74 72 69  rMsg(); -- retri
7aa0: 65 76 69 6e 67 20 74 68 65 20 66 61 69 6c 75 72  eving the failur
7ab0: 65 20 63 61 75 73 65 0d 0a 2d 2d 2d 2d 2d 2d 2d  e cause..-------
7ac0: 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d  ----------------
7ad0: 2d 2d 2d 2d 2d 2d 2d 0d 0a 70 72 6f 6a 5f 63 6f  -------..proj_co
7ae0: 6e 74 65 78 74 5f 73 65 74 5f 64 61 74 61 62 61  ntext_set_databa
7af0: 73 65 5f 70 61 74 68 3a 20 4f 70 65 6e 20 6f 66  se_path: Open of
7b00: 20 2f 68 6f 6d 65 2f 73 61 6e 64 72 6f 2f 6e 6f   /home/sandro/no
7b10: 74 5f 65 78 69 73 74 69 6e 67 5f 70 72 6f 6a 2e  t_existing_proj.
7b20: 64 62 20 66 61 69 6c 65 64 0d 0a 0d 0a 53 45 4c  db failed....SEL
7b30: 45 43 54 20 50 52 4f 4a 5f 53 65 74 44 61 74 61  ECT PROJ_SetData
7b40: 62 61 73 65 50 61 74 68 28 27 2f 68 6f 6d 65 2f  basePath('/home/
7b50: 73 61 6e 64 72 6f 2f 76 61 6c 69 64 5f 70 72 6f  sandro/valid_pro
7b60: 6a 2e 64 62 27 29 3b 20 2d 2d 20 76 61 6c 69 64  j.db'); -- valid
7b70: 20 64 61 74 61 62 61 73 65 0d 0a 2d 2d 2d 2d 2d   database..-----
7b80: 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d  ----------------
7b90: 2d 2d 2d 2d 2d 2d 2d 2d 2d 0d 0a 2f 68 6f 6d 65  ---------../home
7ba0: 2f 73 61 6e 64 72 6f 2f 76 61 6c 69 64 5f 70 72  /sandro/valid_pr
7bb0: 6f 6a 2e 64 62 0d 0a 0d 0a 53 45 4c 45 43 54 20  oj.db....SELECT 
7bc0: 50 52 4f 4a 5f 41 73 57 4b 54 28 27 45 50 53 47  PROJ_AsWKT('EPSG
7bd0: 27 2c 20 34 33 32 36 29 3b 20 2d 2d 20 64 65 66  ', 4326); -- def
7be0: 61 75 6c 74 20 73 65 74 74 69 6e 67 73 3a 20 49  ault settings: I
7bf0: 53 4f 2d 32 30 31 38 20 73 74 79 6c 65 2c 20 69  SO-2018 style, i
7c00: 6e 64 65 6e 74 65 64 20 77 69 74 68 20 69 6e 64  ndented with ind
7c10: 65 6e 74 61 74 69 6f 6e 20 34 0d 0a 2d 2d 2d 2d  entation 4..----
7c20: 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d  ----------------
7c30: 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 0d 0a 47 45 4f 44  ----------..GEOD
7c40: 43 52 53 5b 22 57 47 53 20 38 34 22 2c 0d 0a 20  CRS["WGS 84",.. 
7c50: 20 20 20 44 41 54 55 4d 5b 22 57 6f 72 6c 64 20     DATUM["World 
7c60: 47 65 6f 64 65 74 69 63 20 53 79 73 74 65 6d 20  Geodetic System 
7c70: 31 39 38 34 22 2c 0d 0a 20 20 20 20 20 20 20 20  1984",..        
7c80: 45 4c 4c 49 50 53 4f 49 44 5b 22 57 47 53 20 38  ELLIPSOID["WGS 8
7c90: 34 22 2c 36 33 37 38 31 33 37 2c 32 39 38 2e 32  4",6378137,298.2
7ca0: 35 37 32 32 33 35 36 33 2c 0d 0a 20 20 20 20 20  57223563,..     
7cb0: 20 20 20 20 20 20 20 4c 45 4e 47 54 48 55 4e 49         LENGTHUNI
7cc0: 54 5b 22 6d 65 74 72 65 22 2c 31 5d 5d 5d 2c 0d  T["metre",1]]],.
7cd0: 0a 20 20 20 20 50 52 49 4d 45 4d 5b 22 47 72 65  .    PRIMEM["Gre
7ce0: 65 6e 77 69 63 68 22 2c 30 2c 0d 0a 20 20 20 20  enwich",0,..    
7cf0: 20 20 20 20 41 4e 47 4c 45 55 4e 49 54 5b 22 64      ANGLEUNIT["d
7d00: 65 67 72 65 65 22 2c 30 2e 30 31 37 34 35 33 32  egree",0.0174532
7d10: 39 32 35 31 39 39 34 33 33 5d 5d 2c 0d 0a 20 20  925199433]],..  
7d20: 20 20 43 53 5b 65 6c 6c 69 70 73 6f 69 64 61 6c    CS[ellipsoidal
7d30: 2c 32 5d 2c 0d 0a 20 20 20 20 20 20 20 20 41 58  ,2],..        AX
7d40: 49 53 5b 22 67 65 6f 64 65 74 69 63 20 6c 61 74  IS["geodetic lat
7d50: 69 74 75 64 65 20 28 4c 61 74 29 22 2c 6e 6f 72  itude (Lat)",nor
7d60: 74 68 2c 0d 0a 20 20 20 20 20 20 20 20 20 20 20  th,..           
7d70: 20 4f 52 44 45 52 5b 31 5d 2c 0d 0a 20 20 20 20   ORDER[1],..    
7d80: 20 20 20 20 20 20 20 20 41 4e 47 4c 45 55 4e 49          ANGLEUNI
7d90: 54 5b 22 64 65 67 72 65 65 22 2c 30 2e 30 31 37  T["degree",0.017
7da0: 34 35 33 32 39 32 35 31 39 39 34 33 33 5d 5d 2c  4532925199433]],
7db0: 0d 0a 20 20 20 20 20 20 20 20 41 58 49 53 5b 22  ..        AXIS["
7dc0: 67 65 6f 64 65 74 69 63 20 6c 6f 6e 67 69 74 75  geodetic longitu
7dd0: 64 65 20 28 4c 6f 6e 29 22 2c 65 61 73 74 2c 0d  de (Lon)",east,.
7de0: 0a 20 20 20 20 20 20 20 20 20 20 20 20 4f 52 44  .            ORD
7df0: 45 52 5b 32 5d 2c 0d 0a 20 20 20 20 20 20 20 20  ER[2],..        
7e00: 20 20 20 20 41 4e 47 4c 45 55 4e 49 54 5b 22 64      ANGLEUNIT["d
7e10: 65 67 72 65 65 22 2c 30 2e 30 31 37 34 35 33 32  egree",0.0174532
7e20: 39 32 35 31 39 39 34 33 33 5d 5d 2c 0d 0a 20 20  925199433]],..  
7e30: 20 20 41 52 45 41 5b 22 57 6f 72 6c 64 22 5d 2c    AREA["World"],
7e40: 0d 0a 20 20 20 20 42 42 4f 58 5b 2d 39 30 2c 2d  ..    BBOX[-90,-
7e50: 31 38 30 2c 39 30 2c 31 38 30 5d 2c 0d 0a 20 20  180,90,180],..  
7e60: 20 20 49 44 5b 22 45 50 53 47 22 2c 34 33 32 36    ID["EPSG",4326
7e70: 5d 5d 0d 0a 0d 0a 53 45 4c 45 43 54 20 50 52 4f  ]]....SELECT PRO
7e80: 4a 5f 41 73 57 4b 54 28 27 45 50 53 47 27 2c 20  J_AsWKT('EPSG', 
7e90: 34 33 32 36 2c 20 27 45 53 52 49 27 2c 20 30 2c  4326, 'ESRI', 0,
7ea0: 20 30 29 3b 20 2d 2d 20 45 53 52 49 20 73 74 79   0); -- ESRI sty
7eb0: 6c 65 2c 20 6d 6f 6e 6f 6c 69 74 68 69 63 20 6c  le, monolithic l
7ec0: 69 6e 65 0d 0a 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d  ine..-----------
7ed0: 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d  ----------------
7ee0: 2d 2d 2d 0d 0a 47 45 4f 47 43 53 5b 22 47 43 53  ---..GEOGCS["GCS
7ef0: 5f 57 47 53 5f 31 39 38 34 22 2c 44 41 54 55 4d  _WGS_1984",DATUM
7f00: 5b 22 44 5f 57 47 53 5f 31 39 38 34 22 2c 53 50  ["D_WGS_1984",SP
7f10: 48 45 52 4f 49 44 5b 22 57 47 53 5f 31 39 38 34  HEROID["WGS_1984
7f20: 22 2c 36 33 37 38 31 33 37 2e 30 2c 32 39 38 2e  ",6378137.0,298.
7f30: 32 35 37 32 32 33 35 36 33 5d 5d 2c 50 52 49 4d  257223563]],PRIM
7f40: 45 4d 5b 22 47 72 65 65 6e 77 69 63 68 22 2c 30  EM["Greenwich",0
7f50: 2e 30 5d 2c 55 4e 49 54 5b 22 44 65 67 72 65 65  .0],UNIT["Degree
7f60: 22 2c 30 2e 30 31 37 34 35 33 32 39 32 35 31 39  ",0.017453292519
7f70: 39 34 33 33 5d 5d 0d 0a 0d 0a 53 45 4c 45 43 54  9433]]....SELECT
7f80: 20 50 52 4f 4a 5f 47 75 65 73 73 53 72 69 64 46   PROJ_GuessSridF
7f90: 72 6f 6d 57 4b 54 28 27 47 45 4f 47 43 53 5b 22  romWKT('GEOGCS["
7fa0: 47 43 53 5f 4d 6f 6e 74 65 5f 4d 61 72 69 6f 5f  GCS_Monte_Mario_
7fb0: 52 6f 6d 65 22 2c 44 41 54 55 4d 5b 22 44 5f 4d  Rome",DATUM["D_M
7fc0: 6f 6e 74 65 5f 4d 61 72 69 6f 22 2c 53 50 48 45  onte_Mario",SPHE
7fd0: 52 4f 49 44 5b 22 49 6e 74 65 72 6e 61 74 69 6f  ROID["Internatio
7fe0: 6e 61 6c 5f 31 39 32 34 22 2c 36 33 37 38 33 38  nal_1924",637838
7ff0: 38 2e 30 2c 32 39 37 2e 30 5d 5d 2c 50 52 49 4d  8.0,297.0]],PRIM
8000: 45 4d 5b 22 52 6f 6d 65 22 2c 31 32 2e 34 35 32  EM["Rome",12.452
8010: 33 33 33 33 33 33 33 33 33 33 5d 2c 55 4e 49 54  3333333333],UNIT
8020: 5b 22 44 65 67 72 65 65 22 2c 30 2e 30 31 37 34  ["Degree",0.0174
8030: 35 33 32 39 32 35 31 39 39 34 33 33 5d 5d 27 29  532925199433]]')
8040: 3b 20 0d 0a 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d  ; ..------------
8050: 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d  ----------------
8060: 2d 2d 0d 0a 34 38 30 36 0d 0a 0d 0a 53 45 4c 45  --..4806....SELE
8070: 43 54 20 50 52 4f 4a 5f 47 75 65 73 73 53 72 69  CT PROJ_GuessSri
8080: 64 46 72 6f 6d 53 48 50 28 27 2f 68 6f 6d 65 2f  dFromSHP('/home/
8090: 73 61 6e 64 72 6f 2f 74 75 73 63 61 6e 79 5f 73  sandro/tuscany_s
80a0: 68 70 2f 70 72 6f 76 32 30 31 31 27 29 3b 20 2d  hp/prov2011'); -
80b0: 2d 20 72 65 6d 65 6d 62 65 72 3a 20 72 65 71 75  - remember: requ
80c0: 69 72 65 73 20 74 6f 20 65 78 70 6c 69 63 69 74  ires to explicit
80d0: 6c 79 20 73 65 74 20 53 50 41 54 49 41 4c 49 54  ly set SPATIALIT
80e0: 45 5f 53 45 43 55 52 49 54 59 3d 72 65 6c 61 78  E_SECURITY=relax
80f0: 65 64 0d 0a 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d  ed..------------
8100: 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d  ----------------
8110: 2d 2d 0d 0a 33 30 30 33 0d 0a 3c 2f 76 65 72 62  --..3003..</verb
8120: 61 74 69 6d 3e 0d 0a 3c 62 72 3e 0d 0a 3c 68 72  atim>..<br>..<hr
8130: 3e 3c 62 72 3e 0d 0a 3c 74 61 62 6c 65 20 63 65  ><br>..<table ce
8140: 6c 6c 73 70 61 63 69 6e 67 3d 22 38 22 20 63 65  llspacing="8" ce
8150: 6c 6c 70 61 64 64 69 6e 67 3d 22 38 22 20 62 67  llpadding="8" bg
8160: 63 6f 6c 6f 72 3d 22 23 66 66 65 30 65 39 22 20  color="#ffe0e9" 
8170: 77 69 64 74 68 3d 22 31 30 30 25 22 3e 0d 0a 3c  width="100%">..<
8180: 74 72 3e 3c 74 68 3e 0d 0a 3c 68 31 3e 49 6d 70  tr><th>..<h1>Imp
8190: 6f 72 74 61 6e 74 20 6e 6f 74 69 63 65 20 66 6f  ortant notice fo
81a0: 72 20 57 69 6e 64 6f 77 73 20 75 73 65 72 73 3c  r Windows users<
81b0: 2f 68 31 3e 0d 0a 3c 2f 74 68 3e 3c 2f 74 72 3e  /h1>..</th></tr>
81c0: 0d 0a 3c 74 72 3e 3c 74 64 3e 0d 0a 3c 62 3e 50  ..<tr><td>..<b>P
81d0: 52 4f 4a 2e 36 3c 2f 62 3e 20 63 72 69 74 69 63  ROJ.6</b> critic
81e0: 61 6c 6c 79 20 64 65 70 65 6e 64 73 20 6f 6e 20  ally depends on 
81f0: 69 74 73 20 6f 77 6e 20 70 72 69 76 61 74 65 20  its own private 
8200: 53 51 4c 69 74 65 20 64 61 74 61 62 61 73 65 20  SQLite database 
8210: 28 3c 62 3e 70 72 6f 6a 2e 64 62 3c 2f 62 3e 29  (<b>proj.db</b>)
8220: 20 63 6f 6e 74 61 69 6e 69 6e 67 20 61 6c 6c 20   containing all 
8230: 72 65 6c 65 76 61 6e 74 20 64 65 66 69 6e 69 74  relevant definit
8240: 69 6f 6e 73 20 61 62 6f 75 74 20 45 6c 6c 69 70  ions about Ellip
8250: 73 6f 69 64 73 2c 20 50 72 69 6d 65 20 4d 65 72  soids, Prime Mer
8260: 69 64 69 61 6e 73 2c 20 43 52 53 65 73 2c 20 54  idians, CRSes, T
8270: 72 61 6e 73 66 6f 72 6d 61 74 69 6f 6e 73 20 61  ransformations a
8280: 6e 64 20 61 6c 69 6b 65 2e 3c 62 72 3e 0d 0a 49  nd alike.<br>..I
8290: 66 20 50 52 4f 4a 2e 36 20 69 73 20 75 6e 61 62  f PROJ.6 is unab
82a0: 6c 65 20 74 6f 20 63 6f 72 72 65 63 74 6c 79 20  le to correctly 
82b0: 65 73 74 61 62 6c 69 73 68 20 61 20 63 6f 6e 6e  establish a conn
82c0: 65 63 74 69 6f 6e 20 74 6f 20 74 68 69 73 20 64  ection to this d
82d0: 61 74 61 62 61 73 65 20 69 74 20 77 69 6c 6c 20  atabase it will 
82e0: 62 65 20 73 65 76 65 72 65 6c 79 20 6c 69 6d 69  be severely limi
82f0: 74 65 64 20 61 6e 64 20 77 69 6c 6c 20 6e 6f 74  ted and will not
8300: 20 62 65 20 61 62 6c 65 20 74 6f 20 63 6f 72 72   be able to corr
8310: 65 63 74 6c 79 20 62 65 68 61 76 65 20 61 73 20  ectly behave as 
8320: 65 78 70 65 63 74 65 64 2e 3c 62 72 3e 3c 62 72  expected.<br><br
8330: 3e 0d 0a 3c 75 6c 3e 0d 0a 3c 6c 69 3e 3c 62 3e  >..<ul>..<li><b>
8340: 3c 75 3e 3c 69 3e 53 68 6f 72 74 20 63 6f 6e 63  <u><i>Short conc
8350: 6c 75 73 69 6f 6e 3c 2f 69 3e 3c 2f 75 3e 3c 2f  lusion</i></u></
8360: 62 3e 3a 20 69 6e 73 74 61 6c 6c 69 6e 67 20 74  b>: installing t
8370: 68 65 20 73 6f 66 74 77 61 72 65 20 61 6c 6f 6e  he software alon
8380: 65 20 69 73 20 6e 6f 74 20 65 6e 6f 75 67 68 2e  e is not enough.
8390: 3c 62 72 3e 0d 0a 54 68 65 20 50 52 4f 4a 2e 36  <br>..The PROJ.6
83a0: 20 70 72 69 76 61 74 65 20 64 61 74 61 62 61 73   private databas
83b0: 65 20 3c 62 3e 70 72 6f 6a 2e 64 62 3c 2f 62 3e  e <b>proj.db</b>
83c0: 20 6d 75 73 74 20 62 65 20 70 72 6f 70 65 72 6c   must be properl
83d0: 79 20 69 6e 73 74 61 6c 6c 65 64 20 61 73 20 77  y installed as w
83e0: 65 6c 6c 2c 20 69 6e 20 6f 72 64 65 72 20 74 6f  ell, in order to
83f0: 20 65 6e 73 75 72 65 20 74 68 61 74 20 61 6e 79   ensure that any
8400: 74 68 69 6e 67 20 72 75 6e 73 20 73 6d 6f 6f 74  thing runs smoot
8410: 68 6c 79 2e 3c 2f 6c 69 3e 0d 0a 3c 2f 75 6c 3e  hly.</li>..</ul>
8420: 3c 62 72 3e 0d 0a 54 68 69 73 20 69 73 6e 27 74  <br>..This isn't
8430: 20 75 73 75 61 6c 6c 79 20 61 20 62 69 67 20 69   usually a big i
8440: 73 73 75 65 20 6f 6e 20 4c 69 6e 75 78 20 61 6e  ssue on Linux an
8450: 64 20 55 6e 69 78 2d 6c 69 6b 65 20 70 6c 61 74  d Unix-like plat
8460: 66 6f 72 6d 73 2c 20 77 68 65 72 65 20 61 20 72  forms, where a r
8470: 61 74 69 6f 6e 61 6c 20 61 6e 64 20 76 65 72 79  ational and very
8480: 20 63 6c 65 61 72 20 66 69 6c 65 73 79 73 74 65   clear filesyste
8490: 6d 20 6c 61 79 6f 75 74 20 65 78 69 73 74 73 2e  m layout exists.
84a0: 3c 62 72 3e 0d 0a 4f 6e 20 74 68 65 73 65 20 6f  <br>..On these o
84b0: 70 65 72 61 74 69 6e 67 20 73 79 73 74 65 6d 73  perating systems
84c0: 20 74 68 65 20 70 61 63 6b 61 67 65 20 6d 61 6e   the package man
84d0: 61 67 65 72 20 28 6f 72 20 3c 62 3e 6d 61 6b 65  ager (or <b>make
84e0: 20 69 6e 73 74 61 6c 6c 3c 2f 62 3e 29 20 77 69   install</b>) wi
84f0: 6c 6c 20 61 75 74 6f 6d 61 74 69 63 61 6c 6c 79  ll automatically
8500: 20 74 61 6b 65 20 63 61 72 65 20 74 6f 20 69 6e   take care to in
8510: 73 74 61 6c 6c 20 3c 62 3e 70 72 6f 6a 2e 64 62  stall <b>proj.db
8520: 3c 2f 62 3e 20 6f 6e 20 74 68 65 20 6d 6f 73 74  </b> on the most
8530: 20 61 70 70 72 6f 70 72 69 61 74 65 20 64 69 72   appropriate dir
8540: 65 63 74 6f 72 79 20 28 75 73 75 61 6c 6c 79 20  ectory (usually 
8550: 61 73 20 3c 62 3e 2f 75 73 72 2f 73 68 61 72 65  as <b>/usr/share
8560: 2f 70 72 6f 6a 2f 70 72 6f 6a 2e 64 62 3c 2f 62  /proj/proj.db</b
8570: 3e 20 6f 72 20 61 73 20 3c 62 3e 2f 75 73 72 2f  > or as <b>/usr/
8580: 6c 6f 63 61 6c 2f 73 68 61 72 65 2f 70 72 6f 6a  local/share/proj
8590: 2f 70 72 6f 6a 2e 64 62 3c 2f 62 3e 29 20 61 6e  /proj.db</b>) an
85a0: 64 20 74 68 61 74 27 73 20 61 6c 6c 2e 3c 62 72  d that's all.<br
85b0: 3e 3c 62 72 3e 0d 0a 54 68 69 6e 67 73 20 61 72  ><br>..Things ar
85c0: 65 20 75 6e 68 61 70 70 69 6c 79 20 61 20 6c 69  e unhappily a li
85d0: 74 74 6c 65 20 62 69 74 20 6d 6f 72 65 20 64 69  ttle bit more di
85e0: 66 66 69 63 75 6c 74 73 20 6f 6e 20 57 69 6e 64  fficults on Wind
85f0: 6f 77 73 20 70 6c 61 74 66 6f 72 6d 73 2e 0d 0a  ows platforms...
8600: 54 68 65 20 75 73 65 72 20 69 74 73 65 6c 66 20  The user itself 
8610: 69 73 20 72 65 73 70 6f 6e 73 69 62 6c 65 20 66  is responsible f
8620: 6f 72 20 70 72 6f 70 65 72 6c 79 20 69 6e 73 74  or properly inst
8630: 61 6c 6c 69 6e 67 20 3c 62 3e 70 72 6f 6a 2e 64  alling <b>proj.d
8640: 62 3c 2f 62 3e 0d 0a 53 6f 20 69 74 20 62 65 63  b</b>..So it bec
8650: 6f 6d 65 73 20 63 72 69 74 69 63 61 6c 20 75 6e  omes critical un
8660: 64 65 72 73 74 61 6e 64 69 6e 67 20 74 68 65 20  derstanding the 
8670: 62 61 73 69 63 20 72 75 6c 65 73 20 61 64 6f 70  basic rules adop
8680: 74 65 64 20 62 79 20 3c 62 3e 6c 69 62 73 70 61  ted by <b>libspa
8690: 74 69 61 6c 69 74 65 3c 2f 62 3e 20 69 6e 20 6f  tialite</b> in o
86a0: 72 64 65 72 20 74 6f 20 70 72 6f 70 65 72 6c 79  rder to properly
86b0: 20 6c 6f 63 61 74 65 20 3c 62 3e 70 72 6f 6a 2e   locate <b>proj.
86c0: 64 62 3c 2f 62 3e 20 6f 6e 20 57 69 6e 64 6f 77  db</b> on Window
86d0: 73 2e 0d 0a 3c 2f 74 64 3e 3c 2f 74 72 3e 0d 0a  s...</td></tr>..
86e0: 3c 74 72 3e 3c 74 68 3e 0d 0a 3c 68 32 3e 57 68  <tr><th>..<h2>Wh
86f0: 65 72 65 20 70 72 6f 6a 2e 64 62 20 69 73 20 65  ere proj.db is e
8700: 78 70 65 63 74 65 64 20 74 6f 20 62 65 20 66 6f  xpected to be fo
8710: 75 6e 64 20 6f 6e 20 57 69 6e 64 6f 77 73 3c 2f  und on Windows</
8720: 68 32 3e 0d 0a 3c 2f 74 64 3e 3c 2f 74 72 3e 0d  h2>..</td></tr>.
8730: 0a 3c 74 72 3e 3c 74 64 3e 0d 0a 3c 6f 6c 3e 0d  .<tr><td>..<ol>.
8740: 0a 3c 6c 69 3e 74 68 65 20 66 69 72 73 74 20 70  .<li>the first p
8750: 6c 61 63 65 20 77 68 65 72 65 20 3c 62 3e 70 72  lace where <b>pr
8760: 6f 6a 2e 64 62 3c 2f 62 3e 20 77 69 6c 6c 20 62  oj.db</b> will b
8770: 65 20 73 65 61 72 63 68 65 64 20 69 73 20 74 68  e searched is th
8780: 65 20 73 61 6d 65 20 66 6f 6c 64 65 72 20 66 6f  e same folder fo
8790: 72 6d 20 77 68 65 72 65 20 74 68 65 20 3c 62 3e  rm where the <b>
87a0: 45 58 45 3c 2f 62 3e 20 62 69 6e 61 72 79 20 77  EXE</b> binary w
87b0: 61 73 20 69 6e 69 74 69 61 6c 6c 79 20 6c 6f 61  as initially loa
87c0: 64 65 64 2e 3c 62 72 3e 0d 0a 3c 69 3e 3c 75 3e  ded.<br>..<i><u>
87d0: 45 78 61 6d 70 6c 65 3c 2f 69 3e 3c 2f 75 3e 3a  Example</i></u>:
87e0: 20 61 73 73 75 6d 69 6e 67 20 74 68 61 74 20 79   assuming that y
87f0: 6f 75 20 61 72 65 20 63 75 72 72 65 6e 74 6c 79  ou are currently
8800: 20 65 78 65 63 75 74 69 6e 67 20 3c 62 3e 43 3a   executing <b>C:
8810: 5c 6d 79 70 72 6f 67 73 5c 73 70 61 74 69 61 6c  \myprogs\spatial
8820: 69 74 65 5c 62 69 6e 5c 73 70 61 74 69 61 6c 69  ite\bin\spatiali
8830: 74 65 2e 65 78 65 3c 2f 62 3e 0d 0a 3c 75 6c 3e  te.exe</b>..<ul>
8840: 0d 0a 3c 6c 69 3e 74 68 65 6e 20 61 6e 20 61 74  ..<li>then an at
8850: 74 65 6d 70 74 20 77 69 6c 6c 20 62 65 20 6d 61  tempt will be ma
8860: 64 65 20 74 6f 20 63 6f 6e 6e 65 63 74 20 3c 62  de to connect <b
8870: 3e 43 3a 5c 6d 79 70 72 6f 67 73 5c 73 70 61 74  >C:\myprogs\spat
8880: 69 61 6c 69 74 65 5c 62 69 6e 5c 70 72 6f 6a 2e  ialite\bin\proj.
8890: 64 62 3c 2f 62 3e 3c 2f 6c 69 3e 0d 0a 3c 2f 75  db</b></li>..</u
88a0: 6c 3e 3c 2f 6c 69 3e 0d 0a 3c 6c 69 3e 61 20 73  l></li>..<li>a s
88b0: 65 63 6f 6e 64 20 61 74 74 65 6d 70 74 20 77 69  econd attempt wi
88c0: 6c 6c 20 62 65 20 6d 61 64 65 20 6f 6e 20 62 65  ll be made on be
88d0: 68 61 6c 66 20 6f 66 20 74 68 65 20 3c 62 3e 50  half of the <b>P
88e0: 75 62 6c 69 63 3c 2f 62 3e 20 66 6f 6c 64 65 72  ublic</b> folder
88f0: 2e 3c 62 72 3e 0d 0a 3c 69 3e 3c 75 3e 45 78 61  .<br>..<i><u>Exa
8900: 6d 70 6c 65 3c 2f 75 3e 3c 2f 69 3e 3a 20 61 6e  mple</u></i>: an
8910: 20 61 74 74 65 6d 70 74 20 77 69 6c 6c 20 62 65   attempt will be
8920: 20 6d 61 64 65 20 74 6f 20 63 6f 6e 6e 65 63 74   made to connect
8930: 20 3c 62 3e 43 3a 5c 55 73 65 72 73 5c 50 75 62   <b>C:\Users\Pub
8940: 6c 69 63 5c 73 70 61 74 69 61 6c 69 74 65 5c 70  lic\spatialite\p
8950: 72 6f 6a 5c 70 72 6f 6a 2e 64 62 3c 2f 62 3e 3c  roj\proj.db</b><
8960: 2f 6c 69 3e 0d 0a 3c 6c 69 3e 61 20 74 68 69 72  /li>..<li>a thir
8970: 64 20 28 61 6e 64 20 6c 61 73 74 29 20 61 74 74  d (and last) att
8980: 65 6d 70 74 20 77 69 6c 6c 20 62 65 20 6d 61 64  empt will be mad
8990: 65 20 6f 6e 20 62 65 68 61 6c 66 20 6f 66 20 74  e on behalf of t
89a0: 68 65 20 3c 62 3e 55 73 65 72 3c 2f 62 3e 20 66  he <b>User</b> f
89b0: 6f 6c 64 65 72 2e 3c 62 72 3e 0d 0a 3c 69 3e 3c  older.<br>..<i><
89c0: 75 3e 45 78 61 6d 70 6c 65 3c 2f 69 3e 3c 2f 75  u>Example</i></u
89d0: 3e 3a 20 61 6e 20 61 74 74 65 6d 70 74 20 77 69  >: an attempt wi
89e0: 6c 6c 20 62 65 20 6d 61 64 65 20 74 6f 20 63 6f  ll be made to co
89f0: 6e 6e 65 63 74 20 3c 62 3e 43 3a 5c 55 73 65 72  nnect <b>C:\User
8a00: 73 5c 73 61 6e 64 72 6f 5c 73 70 61 74 69 61 6c  s\sandro\spatial
8a10: 69 74 65 5c 70 72 6f 6a 5c 70 72 6f 6a 2e 64 62  ite\proj\proj.db
8a20: 3c 2f 62 3e 3c 2f 6c 69 3e 0d 0a 3c 2f 6f 6c 3e  </b></li>..</ol>
8a30: 0d 0a 3c 68 33 3e 41 6e 20 75 73 65 66 75 6c 20  ..<h3>An useful 
8a40: 64 69 61 67 6e 6f 73 74 69 63 20 63 68 65 63 6b  diagnostic check
8a50: 3c 2f 68 33 3e 0d 0a 3c 76 65 72 62 61 74 69 6d  </h3>..<verbatim
8a60: 3e 0d 0a 53 45 4c 45 43 54 20 50 52 4f 4a 5f 47  >..SELECT PROJ_G
8a70: 65 74 44 61 74 61 62 61 73 65 50 61 74 68 28 29  etDatabasePath()
8a80: 3b 0d 0a 3c 2f 76 65 72 62 61 74 69 6d 3e 0d 0a  ;..</verbatim>..
8a90: 3c 75 6c 3e 0d 0a 3c 6c 69 3e 69 66 20 3c 62 3e  <ul>..<li>if <b>
8aa0: 4e 55 4c 4c 3c 2f 62 3e 20 69 73 20 72 65 74 75  NULL</b> is retu
8ab0: 72 6e 65 64 2c 20 74 68 65 6e 20 50 52 4f 4a 2e  rned, then PROJ.
8ac0: 36 20 69 73 20 64 65 66 69 6e 69 74 65 6c 79 20  6 is definitely 
8ad0: 75 6e 61 62 6c 65 20 74 6f 20 63 6f 6e 6e 65 63  unable to connec
8ae0: 74 20 74 6f 20 69 74 73 20 6f 77 6e 20 70 72 69  t to its own pri
8af0: 76 61 74 65 20 53 51 4c 69 74 65 20 64 61 74 61  vate SQLite data
8b00: 62 61 73 65 20 3c 62 3e 70 72 6f 6a 2e 64 62 3c  base <b>proj.db<
8b10: 2f 62 3e 3c 62 72 3e 0d 0a 59 6f 75 20 68 61 76  /b><br>..You hav
8b20: 65 20 74 6f 20 63 61 72 65 66 75 6c 6c 79 20 76  e to carefully v
8b30: 65 72 69 66 69 79 20 74 68 61 74 20 69 74 27 73  erifiy that it's
8b40: 20 72 65 61 6c 6c 79 20 69 6e 73 74 61 6c 6c 65   really installe
8b50: 64 20 6f 6e 20 6f 6e 65 20 6f 66 20 74 68 65 20  d on one of the 
8b60: 65 78 70 65 63 74 65 64 20 73 74 61 6e 64 61 72  expected standar
8b70: 64 20 6c 6f 63 61 74 69 6f 6e 73 2e 3c 2f 6c 69  d locations.</li
8b80: 3e 0d 0a 3c 6c 69 3e 6f 74 68 65 72 77 69 73 65  >..<li>otherwise
8b90: 20 74 68 65 20 70 61 74 68 20 6c 65 61 64 69 6e   the path leadin
8ba0: 67 20 74 6f 20 74 68 65 20 63 75 72 72 65 6e 74  g to the current
8bb0: 6c 79 20 63 6f 6e 6e 65 63 74 65 64 20 3c 62 3e  ly connected <b>
8bc0: 70 72 6f 6a 2e 64 62 3c 2f 62 3e 20 77 69 6c 6c  proj.db</b> will
8bd0: 20 62 65 20 72 65 74 75 72 6e 65 64 2e 3c 2f 6c   be returned.</l
8be0: 69 3e 0d 0a 3c 2f 75 6c 3e 3c 62 72 3e 0d 0a 3c  i>..</ul><br>..<
8bf0: 2f 74 64 3e 3c 2f 74 72 3e 0d 0a 3c 2f 74 61 62  /td></tr>..</tab
8c00: 6c 65 3e 3c 62 72 3e 3c 62 72 3e 0d 0a 3c 74 61  le><br><br>..<ta
8c10: 62 6c 65 20 63 65 6c 6c 73 70 61 63 69 6e 67 3d  ble cellspacing=
8c20: 22 38 22 20 63 65 6c 6c 70 61 64 64 69 6e 67 3d  "8" cellpadding=
8c30: 22 38 22 20 62 67 63 6f 6c 6f 72 3d 22 23 63 39  "8" bgcolor="#c9
8c40: 66 66 66 30 22 20 77 69 64 74 68 3d 22 31 30 30  fff0" width="100
8c50: 25 22 3e 0d 0a 3c 74 72 3e 3c 74 68 3e 0d 0a 3c  %">..<tr><th>..<
8c60: 68 32 3e 55 73 69 6e 67 20 74 68 65 20 65 6e 76  h2>Using the env
8c70: 69 72 6f 6e 6d 65 6e 74 20 76 61 72 69 61 62 6c  ironment variabl
8c80: 65 20 53 50 41 54 49 41 4c 49 54 45 5f 50 52 4f  e SPATIALITE_PRO
8c90: 4a 5f 44 42 5f 50 41 54 48 3c 2f 68 32 3e 0d 0a  J_DB_PATH</h2>..
8ca0: 3c 2f 74 68 3e 3c 2f 74 72 3e 0d 0a 3c 74 72 3e  </th></tr>..<tr>
8cb0: 3c 74 64 3e 0d 0a 49 66 20 74 68 65 20 65 6e 76  <td>..If the env
8cc0: 69 72 6f 6e 6d 65 6e 74 20 76 61 72 69 61 62 6c  ironment variabl
8cd0: 65 20 3c 62 3e 53 50 41 54 49 41 4c 49 54 45 5f  e <b>SPATIALITE_
8ce0: 50 52 4f 4a 5f 44 42 5f 50 41 54 48 3c 2f 62 3e  PROJ_DB_PATH</b>
8cf0: 20 69 73 20 73 65 74 2c 20 74 68 65 6e 20 3c 62   is set, then <b
8d00: 3e 6c 69 62 73 70 61 74 69 61 6c 69 74 65 3c 2f  >libspatialite</
8d10: 62 3e 20 77 69 6c 6c 20 73 69 6d 70 6c 79 20 61  b> will simply a
8d20: 74 74 65 6d 70 74 20 74 6f 20 63 6f 6e 6e 65 63  ttempt to connec
8d30: 74 20 74 68 65 20 64 61 74 61 62 61 73 65 20 70  t the database p
8d40: 6f 69 6e 74 65 64 20 62 79 20 74 68 69 73 20 76  ointed by this v
8d50: 61 72 69 61 62 6c 65 2e 3c 62 72 3e 0d 0a 53 75  ariable.<br>..Su
8d60: 63 68 20 61 20 63 61 70 61 62 69 6c 69 74 79 20  ch a capability 
8d70: 69 73 20 73 75 70 70 6f 72 74 65 64 20 6e 6f 74  is supported not
8d80: 20 6f 6e 6c 79 20 6f 6e 20 57 69 6e 64 6f 77 73   only on Windows
8d90: 20 62 75 74 20 61 6c 73 6f 20 6f 6e 20 4c 69 6e   but also on Lin
8da0: 75 78 20 28 61 6e 64 20 6f 6e 20 61 6e 79 20 6f  ux (and on any o
8db0: 74 68 65 72 20 70 6c 61 74 66 6f 72 6d 29 2e 3c  ther platform).<
8dc0: 62 72 3e 3c 62 72 3e 0d 0a 3c 69 3e 3c 75 3e 4c  br><br>..<i><u>L
8dd0: 69 6e 75 78 20 65 78 61 6d 70 6c 65 3c 2f 75 3e  inux example</u>
8de0: 3c 2f 69 3e 3a 0d 0a 3c 75 6c 3e 0d 0a 3c 6c 69  </i>:..<ul>..<li
8df0: 3e 3c 62 3e 65 78 70 6f 72 74 20 22 53 50 41 54  ><b>export "SPAT
8e00: 49 41 4c 49 54 45 5f 50 52 4f 4a 5f 44 42 5f 50  IALITE_PROJ_DB_P
8e10: 41 54 48 3d 2f 68 6f 6d 65 2f 73 61 6e 64 72 6f  ATH=/home/sandro
8e20: 2f 61 75 78 2f 70 72 6f 6a 2e 64 62 22 3c 62 72  /aux/proj.db"<br
8e30: 3e 0d 0a 65 63 68 6f 20 24 53 50 41 54 49 41 4c  >..echo $SPATIAL
8e40: 49 54 45 5f 50 52 4f 4a 5f 44 42 5f 50 41 54 48  ITE_PROJ_DB_PATH
8e50: 3c 62 72 3e 0d 0a 73 70 61 74 69 61 6c 69 74 65  <br>..spatialite
8e60: 3c 62 3e 3c 2f 6c 69 3e 0d 0a 3c 2f 75 6c 3e 3c  <b></li>..</ul><
8e70: 62 72 3e 3c 62 72 3e 0d 0a 3c 69 3e 3c 75 3e 57  br><br>..<i><u>W
8e80: 69 6e 64 6f 77 73 20 65 78 61 6d 70 6c 65 3c 2f  indows example</
8e90: 75 3e 3c 2f 69 3e 3a 0d 0a 3c 75 6c 3e 0d 0a 3c  u></i>:..<ul>..<
8ea0: 6c 69 3e 3c 62 3e 53 45 54 20 53 50 41 54 49 41  li><b>SET SPATIA
8eb0: 4c 49 54 45 5f 50 52 4f 4a 5f 44 42 5f 50 41 54  LITE_PROJ_DB_PAT
8ec0: 48 3d 43 3a 5c 55 73 65 72 73 5c 73 61 6e 64 72  H=C:\Users\sandr
8ed0: 6f 5c 61 75 78 5c 70 72 6f 6a 2e 64 62 3c 62 72  o\aux\proj.db<br
8ee0: 3e 0d 0a 65 63 68 6f 20 25 53 50 41 54 49 41 4c  >..echo %SPATIAL
8ef0: 49 54 45 5f 50 52 4f 4a 5f 44 42 5f 50 41 54 48  ITE_PROJ_DB_PATH
8f00: 25 3c 62 72 3e 0d 0a 73 70 61 74 69 61 6c 69 74  %<br>..spatialit
8f10: 65 5f 67 75 69 3c 62 3e 3c 2f 6c 69 3e 0d 0a 3c  e_gui<b></li>..<
8f20: 2f 75 6c 3e 3c 62 72 3e 3c 62 72 3e 0d 0a 3c 2f  /ul><br><br>..</
8f30: 74 68 3e 3c 2f 74 72 3e 0d 0a 3c 2f 74 61 62 6c  th></tr>..</tabl
8f40: 65 3e 3c 62 72 3e 0d 0a 3c 68 72 3e 3c 62 72 3e  e><br>..<hr><br>
8f50: 0d 0a 3c 61 20 68 72 65 66 3d 22 68 74 74 70 73  ..<a href="https
8f60: 3a 2f 2f 77 77 77 2e 67 61 69 61 2d 67 69 73 2e  ://www.gaia-gis.
8f70: 69 74 2f 66 6f 73 73 69 6c 2f 6c 69 62 73 70 61  it/fossil/libspa
8f80: 74 69 61 6c 69 74 65 2f 77 69 6b 69 3f 6e 61 6d  tialite/wiki?nam
8f90: 65 3d 34 2e 33 2e 30 2d 64 6f 63 22 3e 62 61 63  e=4.3.0-doc">bac
8fa0: 6b 3c 2f 61 3e 0a 5a 20 37 61 32 36 66 61 63 63  k</a>.Z 7a26facc
8fb0: 30 34 39 32 39 38 61 30 38 32 33 64 61 34 66 35  049298a0823da4f5
8fc0: 30 30 63 64 38 35 62 32 0a                       00cd85b2.