@cpp.js/package-proj 1.0.0-beta.20

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (256) hide show
  1. package/LICENSE +34 -0
  2. package/README.md +47 -0
  3. package/cppjs-package-proj.podspec +14 -0
  4. package/cppjs.build.js +11 -0
  5. package/cppjs.config.js +54 -0
  6. package/dist/prebuilt/Android-arm64-v8a/include/geodesic.h +837 -0
  7. package/dist/prebuilt/Android-arm64-v8a/include/proj/common.hpp +489 -0
  8. package/dist/prebuilt/Android-arm64-v8a/include/proj/coordinateoperation.hpp +2129 -0
  9. package/dist/prebuilt/Android-arm64-v8a/include/proj/coordinates.hpp +115 -0
  10. package/dist/prebuilt/Android-arm64-v8a/include/proj/coordinatesystem.hpp +892 -0
  11. package/dist/prebuilt/Android-arm64-v8a/include/proj/crs.hpp +1591 -0
  12. package/dist/prebuilt/Android-arm64-v8a/include/proj/datum.hpp +860 -0
  13. package/dist/prebuilt/Android-arm64-v8a/include/proj/io.hpp +1389 -0
  14. package/dist/prebuilt/Android-arm64-v8a/include/proj/metadata.hpp +470 -0
  15. package/dist/prebuilt/Android-arm64-v8a/include/proj/nn.hpp +385 -0
  16. package/dist/prebuilt/Android-arm64-v8a/include/proj/util.hpp +781 -0
  17. package/dist/prebuilt/Android-arm64-v8a/include/proj.h +2214 -0
  18. package/dist/prebuilt/Android-arm64-v8a/include/proj_constants.h +836 -0
  19. package/dist/prebuilt/Android-arm64-v8a/include/proj_experimental.h +52 -0
  20. package/dist/prebuilt/Android-arm64-v8a/include/proj_symbol_rename.h +428 -0
  21. package/dist/prebuilt/Android-arm64-v8a/lib/cmake/proj/proj-config-version.cmake +52 -0
  22. package/dist/prebuilt/Android-arm64-v8a/lib/cmake/proj/proj-config.cmake +79 -0
  23. package/dist/prebuilt/Android-arm64-v8a/lib/cmake/proj/proj-targets-release.cmake +19 -0
  24. package/dist/prebuilt/Android-arm64-v8a/lib/cmake/proj/proj-targets.cmake +106 -0
  25. package/dist/prebuilt/Android-arm64-v8a/lib/cmake/proj/proj4-targets-release.cmake +19 -0
  26. package/dist/prebuilt/Android-arm64-v8a/lib/cmake/proj/proj4-targets.cmake +106 -0
  27. package/dist/prebuilt/Android-arm64-v8a/lib/cmake/proj4/proj-targets-release.cmake +19 -0
  28. package/dist/prebuilt/Android-arm64-v8a/lib/cmake/proj4/proj-targets.cmake +106 -0
  29. package/dist/prebuilt/Android-arm64-v8a/lib/cmake/proj4/proj4-config-version.cmake +52 -0
  30. package/dist/prebuilt/Android-arm64-v8a/lib/cmake/proj4/proj4-config.cmake +79 -0
  31. package/dist/prebuilt/Android-arm64-v8a/lib/cmake/proj4/proj4-targets-release.cmake +19 -0
  32. package/dist/prebuilt/Android-arm64-v8a/lib/cmake/proj4/proj4-targets.cmake +106 -0
  33. package/dist/prebuilt/Android-arm64-v8a/lib/libproj.so +0 -0
  34. package/dist/prebuilt/Android-arm64-v8a/lib/pkgconfig/proj.pc +14 -0
  35. package/dist/prebuilt/Android-arm64-v8a/share/doc/proj/AUTHORS +42 -0
  36. package/dist/prebuilt/Android-arm64-v8a/share/doc/proj/COPYING +34 -0
  37. package/dist/prebuilt/Android-arm64-v8a/share/doc/proj/NEWS +3170 -0
  38. package/dist/prebuilt/Android-arm64-v8a/share/man/man1/cct.1 +370 -0
  39. package/dist/prebuilt/Android-arm64-v8a/share/man/man1/cs2cs.1 +537 -0
  40. package/dist/prebuilt/Android-arm64-v8a/share/man/man1/geod.1 +263 -0
  41. package/dist/prebuilt/Android-arm64-v8a/share/man/man1/gie.1 +524 -0
  42. package/dist/prebuilt/Android-arm64-v8a/share/man/man1/proj.1 +326 -0
  43. package/dist/prebuilt/Android-arm64-v8a/share/man/man1/projinfo.1 +853 -0
  44. package/dist/prebuilt/Android-arm64-v8a/share/man/man1/projsync.1 +227 -0
  45. package/dist/prebuilt/Android-arm64-v8a/share/proj/CH +22 -0
  46. package/dist/prebuilt/Android-arm64-v8a/share/proj/GL27 +23 -0
  47. package/dist/prebuilt/Android-arm64-v8a/share/proj/ITRF2000 +24 -0
  48. package/dist/prebuilt/Android-arm64-v8a/share/proj/ITRF2008 +94 -0
  49. package/dist/prebuilt/Android-arm64-v8a/share/proj/ITRF2014 +55 -0
  50. package/dist/prebuilt/Android-arm64-v8a/share/proj/deformation_model.schema.json +582 -0
  51. package/dist/prebuilt/Android-arm64-v8a/share/proj/nad.lst +142 -0
  52. package/dist/prebuilt/Android-arm64-v8a/share/proj/nad27 +810 -0
  53. package/dist/prebuilt/Android-arm64-v8a/share/proj/nad83 +745 -0
  54. package/dist/prebuilt/Android-arm64-v8a/share/proj/other.extra +53 -0
  55. package/dist/prebuilt/Android-arm64-v8a/share/proj/proj.db +0 -0
  56. package/dist/prebuilt/Android-arm64-v8a/share/proj/proj.ini +51 -0
  57. package/dist/prebuilt/Android-arm64-v8a/share/proj/projjson.schema.json +1174 -0
  58. package/dist/prebuilt/Android-arm64-v8a/share/proj/triangulation.schema.json +214 -0
  59. package/dist/prebuilt/Android-arm64-v8a/share/proj/world +214 -0
  60. package/dist/prebuilt/CMakeLists.txt +44 -0
  61. package/dist/prebuilt/Emscripten-x86_64/include/geodesic.h +837 -0
  62. package/dist/prebuilt/Emscripten-x86_64/include/proj/common.hpp +489 -0
  63. package/dist/prebuilt/Emscripten-x86_64/include/proj/coordinateoperation.hpp +2129 -0
  64. package/dist/prebuilt/Emscripten-x86_64/include/proj/coordinates.hpp +115 -0
  65. package/dist/prebuilt/Emscripten-x86_64/include/proj/coordinatesystem.hpp +892 -0
  66. package/dist/prebuilt/Emscripten-x86_64/include/proj/crs.hpp +1591 -0
  67. package/dist/prebuilt/Emscripten-x86_64/include/proj/datum.hpp +860 -0
  68. package/dist/prebuilt/Emscripten-x86_64/include/proj/io.hpp +1389 -0
  69. package/dist/prebuilt/Emscripten-x86_64/include/proj/metadata.hpp +470 -0
  70. package/dist/prebuilt/Emscripten-x86_64/include/proj/nn.hpp +385 -0
  71. package/dist/prebuilt/Emscripten-x86_64/include/proj/util.hpp +781 -0
  72. package/dist/prebuilt/Emscripten-x86_64/include/proj.h +2214 -0
  73. package/dist/prebuilt/Emscripten-x86_64/include/proj_constants.h +836 -0
  74. package/dist/prebuilt/Emscripten-x86_64/include/proj_experimental.h +52 -0
  75. package/dist/prebuilt/Emscripten-x86_64/include/proj_symbol_rename.h +428 -0
  76. package/dist/prebuilt/Emscripten-x86_64/lib/cmake/proj/proj-config-version.cmake +52 -0
  77. package/dist/prebuilt/Emscripten-x86_64/lib/cmake/proj/proj-config.cmake +79 -0
  78. package/dist/prebuilt/Emscripten-x86_64/lib/cmake/proj/proj-targets-release.cmake +19 -0
  79. package/dist/prebuilt/Emscripten-x86_64/lib/cmake/proj/proj-targets.cmake +107 -0
  80. package/dist/prebuilt/Emscripten-x86_64/lib/cmake/proj/proj4-targets-release.cmake +19 -0
  81. package/dist/prebuilt/Emscripten-x86_64/lib/cmake/proj/proj4-targets.cmake +107 -0
  82. package/dist/prebuilt/Emscripten-x86_64/lib/cmake/proj4/proj-targets-release.cmake +19 -0
  83. package/dist/prebuilt/Emscripten-x86_64/lib/cmake/proj4/proj-targets.cmake +107 -0
  84. package/dist/prebuilt/Emscripten-x86_64/lib/cmake/proj4/proj4-config-version.cmake +52 -0
  85. package/dist/prebuilt/Emscripten-x86_64/lib/cmake/proj4/proj4-config.cmake +79 -0
  86. package/dist/prebuilt/Emscripten-x86_64/lib/cmake/proj4/proj4-targets-release.cmake +19 -0
  87. package/dist/prebuilt/Emscripten-x86_64/lib/cmake/proj4/proj4-targets.cmake +107 -0
  88. package/dist/prebuilt/Emscripten-x86_64/lib/libproj.a +0 -0
  89. package/dist/prebuilt/Emscripten-x86_64/lib/pkgconfig/proj.pc +14 -0
  90. package/dist/prebuilt/Emscripten-x86_64/share/doc/proj/AUTHORS +42 -0
  91. package/dist/prebuilt/Emscripten-x86_64/share/doc/proj/COPYING +34 -0
  92. package/dist/prebuilt/Emscripten-x86_64/share/doc/proj/NEWS +3170 -0
  93. package/dist/prebuilt/Emscripten-x86_64/share/man/man1/cct.1 +370 -0
  94. package/dist/prebuilt/Emscripten-x86_64/share/man/man1/cs2cs.1 +537 -0
  95. package/dist/prebuilt/Emscripten-x86_64/share/man/man1/geod.1 +263 -0
  96. package/dist/prebuilt/Emscripten-x86_64/share/man/man1/gie.1 +524 -0
  97. package/dist/prebuilt/Emscripten-x86_64/share/man/man1/proj.1 +326 -0
  98. package/dist/prebuilt/Emscripten-x86_64/share/man/man1/projinfo.1 +853 -0
  99. package/dist/prebuilt/Emscripten-x86_64/share/man/man1/projsync.1 +227 -0
  100. package/dist/prebuilt/Emscripten-x86_64/share/proj/CH +22 -0
  101. package/dist/prebuilt/Emscripten-x86_64/share/proj/GL27 +23 -0
  102. package/dist/prebuilt/Emscripten-x86_64/share/proj/ITRF2000 +24 -0
  103. package/dist/prebuilt/Emscripten-x86_64/share/proj/ITRF2008 +94 -0
  104. package/dist/prebuilt/Emscripten-x86_64/share/proj/ITRF2014 +55 -0
  105. package/dist/prebuilt/Emscripten-x86_64/share/proj/deformation_model.schema.json +582 -0
  106. package/dist/prebuilt/Emscripten-x86_64/share/proj/nad.lst +142 -0
  107. package/dist/prebuilt/Emscripten-x86_64/share/proj/nad27 +810 -0
  108. package/dist/prebuilt/Emscripten-x86_64/share/proj/nad83 +745 -0
  109. package/dist/prebuilt/Emscripten-x86_64/share/proj/other.extra +53 -0
  110. package/dist/prebuilt/Emscripten-x86_64/share/proj/proj.db +0 -0
  111. package/dist/prebuilt/Emscripten-x86_64/share/proj/proj.ini +51 -0
  112. package/dist/prebuilt/Emscripten-x86_64/share/proj/projjson.schema.json +1174 -0
  113. package/dist/prebuilt/Emscripten-x86_64/share/proj/triangulation.schema.json +214 -0
  114. package/dist/prebuilt/Emscripten-x86_64/share/proj/world +214 -0
  115. package/dist/prebuilt/iOS-iphoneos/include/geodesic.h +837 -0
  116. package/dist/prebuilt/iOS-iphoneos/include/proj/common.hpp +489 -0
  117. package/dist/prebuilt/iOS-iphoneos/include/proj/coordinateoperation.hpp +2129 -0
  118. package/dist/prebuilt/iOS-iphoneos/include/proj/coordinates.hpp +115 -0
  119. package/dist/prebuilt/iOS-iphoneos/include/proj/coordinatesystem.hpp +892 -0
  120. package/dist/prebuilt/iOS-iphoneos/include/proj/crs.hpp +1591 -0
  121. package/dist/prebuilt/iOS-iphoneos/include/proj/datum.hpp +860 -0
  122. package/dist/prebuilt/iOS-iphoneos/include/proj/io.hpp +1389 -0
  123. package/dist/prebuilt/iOS-iphoneos/include/proj/metadata.hpp +470 -0
  124. package/dist/prebuilt/iOS-iphoneos/include/proj/nn.hpp +385 -0
  125. package/dist/prebuilt/iOS-iphoneos/include/proj/util.hpp +781 -0
  126. package/dist/prebuilt/iOS-iphoneos/include/proj.h +2214 -0
  127. package/dist/prebuilt/iOS-iphoneos/include/proj_constants.h +836 -0
  128. package/dist/prebuilt/iOS-iphoneos/include/proj_experimental.h +52 -0
  129. package/dist/prebuilt/iOS-iphoneos/include/proj_symbol_rename.h +428 -0
  130. package/dist/prebuilt/iOS-iphoneos/lib/cmake/proj/proj-config-version.cmake +52 -0
  131. package/dist/prebuilt/iOS-iphoneos/lib/cmake/proj/proj-config.cmake +79 -0
  132. package/dist/prebuilt/iOS-iphoneos/lib/cmake/proj/proj-targets-release.cmake +19 -0
  133. package/dist/prebuilt/iOS-iphoneos/lib/cmake/proj/proj-targets.cmake +108 -0
  134. package/dist/prebuilt/iOS-iphoneos/lib/cmake/proj/proj4-targets-release.cmake +19 -0
  135. package/dist/prebuilt/iOS-iphoneos/lib/cmake/proj/proj4-targets.cmake +108 -0
  136. package/dist/prebuilt/iOS-iphoneos/lib/cmake/proj4/proj-targets-release.cmake +19 -0
  137. package/dist/prebuilt/iOS-iphoneos/lib/cmake/proj4/proj-targets.cmake +108 -0
  138. package/dist/prebuilt/iOS-iphoneos/lib/cmake/proj4/proj4-config-version.cmake +52 -0
  139. package/dist/prebuilt/iOS-iphoneos/lib/cmake/proj4/proj4-config.cmake +79 -0
  140. package/dist/prebuilt/iOS-iphoneos/lib/cmake/proj4/proj4-targets-release.cmake +19 -0
  141. package/dist/prebuilt/iOS-iphoneos/lib/cmake/proj4/proj4-targets.cmake +108 -0
  142. package/dist/prebuilt/iOS-iphoneos/lib/libproj.a +0 -0
  143. package/dist/prebuilt/iOS-iphoneos/lib/pkgconfig/proj.pc +14 -0
  144. package/dist/prebuilt/iOS-iphoneos/share/doc/proj/AUTHORS +42 -0
  145. package/dist/prebuilt/iOS-iphoneos/share/doc/proj/COPYING +34 -0
  146. package/dist/prebuilt/iOS-iphoneos/share/doc/proj/NEWS +3170 -0
  147. package/dist/prebuilt/iOS-iphoneos/share/man/man1/cct.1 +370 -0
  148. package/dist/prebuilt/iOS-iphoneos/share/man/man1/cs2cs.1 +537 -0
  149. package/dist/prebuilt/iOS-iphoneos/share/man/man1/geod.1 +263 -0
  150. package/dist/prebuilt/iOS-iphoneos/share/man/man1/gie.1 +524 -0
  151. package/dist/prebuilt/iOS-iphoneos/share/man/man1/proj.1 +326 -0
  152. package/dist/prebuilt/iOS-iphoneos/share/man/man1/projinfo.1 +853 -0
  153. package/dist/prebuilt/iOS-iphoneos/share/man/man1/projsync.1 +227 -0
  154. package/dist/prebuilt/iOS-iphoneos/share/proj/CH +22 -0
  155. package/dist/prebuilt/iOS-iphoneos/share/proj/GL27 +23 -0
  156. package/dist/prebuilt/iOS-iphoneos/share/proj/ITRF2000 +24 -0
  157. package/dist/prebuilt/iOS-iphoneos/share/proj/ITRF2008 +94 -0
  158. package/dist/prebuilt/iOS-iphoneos/share/proj/ITRF2014 +55 -0
  159. package/dist/prebuilt/iOS-iphoneos/share/proj/deformation_model.schema.json +582 -0
  160. package/dist/prebuilt/iOS-iphoneos/share/proj/nad.lst +142 -0
  161. package/dist/prebuilt/iOS-iphoneos/share/proj/nad27 +810 -0
  162. package/dist/prebuilt/iOS-iphoneos/share/proj/nad83 +745 -0
  163. package/dist/prebuilt/iOS-iphoneos/share/proj/other.extra +53 -0
  164. package/dist/prebuilt/iOS-iphoneos/share/proj/proj.db +0 -0
  165. package/dist/prebuilt/iOS-iphoneos/share/proj/proj.ini +51 -0
  166. package/dist/prebuilt/iOS-iphoneos/share/proj/projjson.schema.json +1174 -0
  167. package/dist/prebuilt/iOS-iphoneos/share/proj/triangulation.schema.json +214 -0
  168. package/dist/prebuilt/iOS-iphoneos/share/proj/world +214 -0
  169. package/dist/prebuilt/iOS-iphonesimulator/include/geodesic.h +837 -0
  170. package/dist/prebuilt/iOS-iphonesimulator/include/proj/common.hpp +489 -0
  171. package/dist/prebuilt/iOS-iphonesimulator/include/proj/coordinateoperation.hpp +2129 -0
  172. package/dist/prebuilt/iOS-iphonesimulator/include/proj/coordinates.hpp +115 -0
  173. package/dist/prebuilt/iOS-iphonesimulator/include/proj/coordinatesystem.hpp +892 -0
  174. package/dist/prebuilt/iOS-iphonesimulator/include/proj/crs.hpp +1591 -0
  175. package/dist/prebuilt/iOS-iphonesimulator/include/proj/datum.hpp +860 -0
  176. package/dist/prebuilt/iOS-iphonesimulator/include/proj/io.hpp +1389 -0
  177. package/dist/prebuilt/iOS-iphonesimulator/include/proj/metadata.hpp +470 -0
  178. package/dist/prebuilt/iOS-iphonesimulator/include/proj/nn.hpp +385 -0
  179. package/dist/prebuilt/iOS-iphonesimulator/include/proj/util.hpp +781 -0
  180. package/dist/prebuilt/iOS-iphonesimulator/include/proj.h +2214 -0
  181. package/dist/prebuilt/iOS-iphonesimulator/include/proj_constants.h +836 -0
  182. package/dist/prebuilt/iOS-iphonesimulator/include/proj_experimental.h +52 -0
  183. package/dist/prebuilt/iOS-iphonesimulator/include/proj_symbol_rename.h +428 -0
  184. package/dist/prebuilt/iOS-iphonesimulator/lib/cmake/proj/proj-config-version.cmake +52 -0
  185. package/dist/prebuilt/iOS-iphonesimulator/lib/cmake/proj/proj-config.cmake +79 -0
  186. package/dist/prebuilt/iOS-iphonesimulator/lib/cmake/proj/proj-targets-release.cmake +19 -0
  187. package/dist/prebuilt/iOS-iphonesimulator/lib/cmake/proj/proj-targets.cmake +108 -0
  188. package/dist/prebuilt/iOS-iphonesimulator/lib/cmake/proj/proj4-targets-release.cmake +19 -0
  189. package/dist/prebuilt/iOS-iphonesimulator/lib/cmake/proj/proj4-targets.cmake +108 -0
  190. package/dist/prebuilt/iOS-iphonesimulator/lib/cmake/proj4/proj-targets-release.cmake +19 -0
  191. package/dist/prebuilt/iOS-iphonesimulator/lib/cmake/proj4/proj-targets.cmake +108 -0
  192. package/dist/prebuilt/iOS-iphonesimulator/lib/cmake/proj4/proj4-config-version.cmake +52 -0
  193. package/dist/prebuilt/iOS-iphonesimulator/lib/cmake/proj4/proj4-config.cmake +79 -0
  194. package/dist/prebuilt/iOS-iphonesimulator/lib/cmake/proj4/proj4-targets-release.cmake +19 -0
  195. package/dist/prebuilt/iOS-iphonesimulator/lib/cmake/proj4/proj4-targets.cmake +108 -0
  196. package/dist/prebuilt/iOS-iphonesimulator/lib/libproj.a +0 -0
  197. package/dist/prebuilt/iOS-iphonesimulator/lib/pkgconfig/proj.pc +14 -0
  198. package/dist/prebuilt/iOS-iphonesimulator/share/doc/proj/AUTHORS +42 -0
  199. package/dist/prebuilt/iOS-iphonesimulator/share/doc/proj/COPYING +34 -0
  200. package/dist/prebuilt/iOS-iphonesimulator/share/doc/proj/NEWS +3170 -0
  201. package/dist/prebuilt/iOS-iphonesimulator/share/man/man1/cct.1 +370 -0
  202. package/dist/prebuilt/iOS-iphonesimulator/share/man/man1/cs2cs.1 +537 -0
  203. package/dist/prebuilt/iOS-iphonesimulator/share/man/man1/geod.1 +263 -0
  204. package/dist/prebuilt/iOS-iphonesimulator/share/man/man1/gie.1 +524 -0
  205. package/dist/prebuilt/iOS-iphonesimulator/share/man/man1/proj.1 +326 -0
  206. package/dist/prebuilt/iOS-iphonesimulator/share/man/man1/projinfo.1 +853 -0
  207. package/dist/prebuilt/iOS-iphonesimulator/share/man/man1/projsync.1 +227 -0
  208. package/dist/prebuilt/iOS-iphonesimulator/share/proj/CH +22 -0
  209. package/dist/prebuilt/iOS-iphonesimulator/share/proj/GL27 +23 -0
  210. package/dist/prebuilt/iOS-iphonesimulator/share/proj/ITRF2000 +24 -0
  211. package/dist/prebuilt/iOS-iphonesimulator/share/proj/ITRF2008 +94 -0
  212. package/dist/prebuilt/iOS-iphonesimulator/share/proj/ITRF2014 +55 -0
  213. package/dist/prebuilt/iOS-iphonesimulator/share/proj/deformation_model.schema.json +582 -0
  214. package/dist/prebuilt/iOS-iphonesimulator/share/proj/nad.lst +142 -0
  215. package/dist/prebuilt/iOS-iphonesimulator/share/proj/nad27 +810 -0
  216. package/dist/prebuilt/iOS-iphonesimulator/share/proj/nad83 +745 -0
  217. package/dist/prebuilt/iOS-iphonesimulator/share/proj/other.extra +53 -0
  218. package/dist/prebuilt/iOS-iphonesimulator/share/proj/proj.db +0 -0
  219. package/dist/prebuilt/iOS-iphonesimulator/share/proj/proj.ini +51 -0
  220. package/dist/prebuilt/iOS-iphonesimulator/share/proj/projjson.schema.json +1174 -0
  221. package/dist/prebuilt/iOS-iphonesimulator/share/proj/triangulation.schema.json +214 -0
  222. package/dist/prebuilt/iOS-iphonesimulator/share/proj/world +214 -0
  223. package/dist/prebuilt/proj.xcframework/Info.plist +50 -0
  224. package/dist/prebuilt/proj.xcframework/ios-arm64_arm64e/Headers/geodesic.h +837 -0
  225. package/dist/prebuilt/proj.xcframework/ios-arm64_arm64e/Headers/proj/common.hpp +489 -0
  226. package/dist/prebuilt/proj.xcframework/ios-arm64_arm64e/Headers/proj/coordinateoperation.hpp +2129 -0
  227. package/dist/prebuilt/proj.xcframework/ios-arm64_arm64e/Headers/proj/coordinates.hpp +115 -0
  228. package/dist/prebuilt/proj.xcframework/ios-arm64_arm64e/Headers/proj/coordinatesystem.hpp +892 -0
  229. package/dist/prebuilt/proj.xcframework/ios-arm64_arm64e/Headers/proj/crs.hpp +1591 -0
  230. package/dist/prebuilt/proj.xcframework/ios-arm64_arm64e/Headers/proj/datum.hpp +860 -0
  231. package/dist/prebuilt/proj.xcframework/ios-arm64_arm64e/Headers/proj/io.hpp +1389 -0
  232. package/dist/prebuilt/proj.xcframework/ios-arm64_arm64e/Headers/proj/metadata.hpp +470 -0
  233. package/dist/prebuilt/proj.xcframework/ios-arm64_arm64e/Headers/proj/nn.hpp +385 -0
  234. package/dist/prebuilt/proj.xcframework/ios-arm64_arm64e/Headers/proj/util.hpp +781 -0
  235. package/dist/prebuilt/proj.xcframework/ios-arm64_arm64e/Headers/proj.h +2214 -0
  236. package/dist/prebuilt/proj.xcframework/ios-arm64_arm64e/Headers/proj_constants.h +836 -0
  237. package/dist/prebuilt/proj.xcframework/ios-arm64_arm64e/Headers/proj_experimental.h +52 -0
  238. package/dist/prebuilt/proj.xcframework/ios-arm64_arm64e/Headers/proj_symbol_rename.h +428 -0
  239. package/dist/prebuilt/proj.xcframework/ios-arm64_arm64e/libproj.a +0 -0
  240. package/dist/prebuilt/proj.xcframework/ios-arm64_arm64e_x86_64-simulator/Headers/geodesic.h +837 -0
  241. package/dist/prebuilt/proj.xcframework/ios-arm64_arm64e_x86_64-simulator/Headers/proj/common.hpp +489 -0
  242. package/dist/prebuilt/proj.xcframework/ios-arm64_arm64e_x86_64-simulator/Headers/proj/coordinateoperation.hpp +2129 -0
  243. package/dist/prebuilt/proj.xcframework/ios-arm64_arm64e_x86_64-simulator/Headers/proj/coordinates.hpp +115 -0
  244. package/dist/prebuilt/proj.xcframework/ios-arm64_arm64e_x86_64-simulator/Headers/proj/coordinatesystem.hpp +892 -0
  245. package/dist/prebuilt/proj.xcframework/ios-arm64_arm64e_x86_64-simulator/Headers/proj/crs.hpp +1591 -0
  246. package/dist/prebuilt/proj.xcframework/ios-arm64_arm64e_x86_64-simulator/Headers/proj/datum.hpp +860 -0
  247. package/dist/prebuilt/proj.xcframework/ios-arm64_arm64e_x86_64-simulator/Headers/proj/io.hpp +1389 -0
  248. package/dist/prebuilt/proj.xcframework/ios-arm64_arm64e_x86_64-simulator/Headers/proj/metadata.hpp +470 -0
  249. package/dist/prebuilt/proj.xcframework/ios-arm64_arm64e_x86_64-simulator/Headers/proj/nn.hpp +385 -0
  250. package/dist/prebuilt/proj.xcframework/ios-arm64_arm64e_x86_64-simulator/Headers/proj/util.hpp +781 -0
  251. package/dist/prebuilt/proj.xcframework/ios-arm64_arm64e_x86_64-simulator/Headers/proj.h +2214 -0
  252. package/dist/prebuilt/proj.xcframework/ios-arm64_arm64e_x86_64-simulator/Headers/proj_constants.h +836 -0
  253. package/dist/prebuilt/proj.xcframework/ios-arm64_arm64e_x86_64-simulator/Headers/proj_experimental.h +52 -0
  254. package/dist/prebuilt/proj.xcframework/ios-arm64_arm64e_x86_64-simulator/Headers/proj_symbol_rename.h +428 -0
  255. package/dist/prebuilt/proj.xcframework/ios-arm64_arm64e_x86_64-simulator/libproj.a +0 -0
  256. package/package.json +32 -0
@@ -0,0 +1,860 @@
1
+ /******************************************************************************
2
+ *
3
+ * Project: PROJ
4
+ * Purpose: ISO19111:2019 implementation
5
+ * Author: Even Rouault <even dot rouault at spatialys dot com>
6
+ *
7
+ ******************************************************************************
8
+ * Copyright (c) 2018, Even Rouault <even dot rouault at spatialys dot com>
9
+ *
10
+ * Permission is hereby granted, free of charge, to any person obtaining a
11
+ * copy of this software and associated documentation files (the "Software"),
12
+ * to deal in the Software without restriction, including without limitation
13
+ * the rights to use, copy, modify, merge, publish, distribute, sublicense,
14
+ * and/or sell copies of the Software, and to permit persons to whom the
15
+ * Software is furnished to do so, subject to the following conditions:
16
+ *
17
+ * The above copyright notice and this permission notice shall be included
18
+ * in all copies or substantial portions of the Software.
19
+ *
20
+ * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS
21
+ * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
22
+ * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL
23
+ * THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
24
+ * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
25
+ * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER
26
+ * DEALINGS IN THE SOFTWARE.
27
+ ****************************************************************************/
28
+
29
+ #ifndef DATUM_HH_INCLUDED
30
+ #define DATUM_HH_INCLUDED
31
+
32
+ #include <memory>
33
+ #include <string>
34
+ #include <vector>
35
+
36
+ #include "common.hpp"
37
+ #include "io.hpp"
38
+ #include "util.hpp"
39
+
40
+ NS_PROJ_START
41
+
42
+ /** osgeo.proj.datum namespace
43
+
44
+ \brief Datum (the relationship of a coordinate system to the body).
45
+ */
46
+ namespace datum {
47
+
48
+ // ---------------------------------------------------------------------------
49
+
50
+ /** \brief Abstract class of the relationship of a coordinate system to an
51
+ * object, thus creating a coordinate reference system.
52
+ *
53
+ * For geodetic and vertical coordinate reference systems, it relates a
54
+ * coordinate system to the Earth (or the celestial body considered). With
55
+ * other types of coordinate reference systems, the datum may relate the
56
+ * coordinate system to another physical or
57
+ * virtual object. A datum uses a parameter or set of parameters that determine
58
+ * the location of the origin of the coordinate reference system. Each datum
59
+ * subtype can be associated with only specific types of coordinate reference
60
+ * systems.
61
+ *
62
+ * \remark Implements Datum from \ref ISO_19111_2019
63
+ */
64
+ class PROJ_GCC_DLL Datum : public common::ObjectUsage,
65
+ public io::IJSONExportable {
66
+ public:
67
+ //! @cond Doxygen_Suppress
68
+ PROJ_DLL ~Datum() override;
69
+ //! @endcond
70
+
71
+ PROJ_DLL const util::optional<std::string> &anchorDefinition() const;
72
+ PROJ_DLL const util::optional<common::Measure> &anchorEpoch() const;
73
+ PROJ_DLL const util::optional<common::DateTime> &publicationDate() const;
74
+ PROJ_DLL const common::IdentifiedObjectPtr &conventionalRS() const;
75
+
76
+ //! @cond Doxygen_Suppress
77
+ PROJ_INTERNAL bool _isEquivalentTo(
78
+ const util::IComparable *other,
79
+ util::IComparable::Criterion criterion =
80
+ util::IComparable::Criterion::STRICT,
81
+ const io::DatabaseContextPtr &dbContext = nullptr) const override;
82
+ //! @endcond
83
+
84
+ protected:
85
+ PROJ_INTERNAL Datum();
86
+
87
+ #ifdef DOXYGEN_ENABLED
88
+ std::string *anchorDefinition_;
89
+ Date *publicationDate_;
90
+ common::IdentifiedObject *conventionalRS_;
91
+ #endif
92
+
93
+ protected:
94
+ PROJ_INTERNAL void setAnchor(const util::optional<std::string> &anchor);
95
+ PROJ_INTERNAL void
96
+ setAnchorEpoch(const util::optional<common::Measure> &anchorEpoch);
97
+
98
+ PROJ_INTERNAL void
99
+ setProperties(const util::PropertyMap
100
+ &properties); // throw(InvalidValueTypeException)
101
+
102
+ private:
103
+ PROJ_OPAQUE_PRIVATE_DATA
104
+ Datum &operator=(const Datum &other) = delete;
105
+ Datum(const Datum &other) = delete;
106
+ };
107
+
108
+ /** Shared pointer of Datum */
109
+ using DatumPtr = std::shared_ptr<Datum>;
110
+ /** Non-null shared pointer of Datum */
111
+ using DatumNNPtr = util::nn<DatumPtr>;
112
+
113
+ // ---------------------------------------------------------------------------
114
+
115
+ class DatumEnsemble;
116
+ /** Shared pointer of DatumEnsemble */
117
+ using DatumEnsemblePtr = std::shared_ptr<DatumEnsemble>;
118
+ /** Non-null shared pointer of DatumEnsemble */
119
+ using DatumEnsembleNNPtr = util::nn<DatumEnsemblePtr>;
120
+
121
+ /** \brief A collection of two or more geodetic or vertical reference frames
122
+ * (or if not geodetic or vertical reference frame, a collection of two or more
123
+ * datums) which for all but the highest accuracy requirements may be
124
+ * considered to be insignificantly different from each other.
125
+ *
126
+ * Every frame within the datum ensemble must be a realizations of the same
127
+ * Terrestrial Reference System or Vertical Reference System.
128
+ *
129
+ * \remark Implements DatumEnsemble from \ref ISO_19111_2019
130
+ */
131
+ class PROJ_GCC_DLL DatumEnsemble final : public common::ObjectUsage,
132
+ public io::IJSONExportable {
133
+ public:
134
+ //! @cond Doxygen_Suppress
135
+ PROJ_DLL ~DatumEnsemble() override;
136
+ //! @endcond
137
+
138
+ PROJ_DLL const std::vector<DatumNNPtr> &datums() const;
139
+ PROJ_DLL const metadata::PositionalAccuracyNNPtr &
140
+ positionalAccuracy() const;
141
+
142
+ PROJ_DLL static DatumEnsembleNNPtr create(
143
+ const util::PropertyMap &properties,
144
+ const std::vector<DatumNNPtr> &datumsIn,
145
+ const metadata::PositionalAccuracyNNPtr &accuracy); // throw(Exception)
146
+
147
+ //! @cond Doxygen_Suppress
148
+ PROJ_INTERNAL void _exportToWKT(io::WKTFormatter *formatter)
149
+ const override; // throw(io::FormattingException)
150
+
151
+ PROJ_INTERNAL void _exportToJSON(io::JSONFormatter *formatter)
152
+ const override; // throw(io::FormattingException)
153
+
154
+ PROJ_FOR_TEST DatumNNPtr
155
+ asDatum(const io::DatabaseContextPtr &dbContext) const;
156
+ //! @endcond
157
+
158
+ protected:
159
+ #ifdef DOXYGEN_ENABLED
160
+ Datum datums_[];
161
+ PositionalAccuracy positionalAccuracy_;
162
+ #endif
163
+
164
+ PROJ_INTERNAL
165
+ DatumEnsemble(const std::vector<DatumNNPtr> &datumsIn,
166
+ const metadata::PositionalAccuracyNNPtr &accuracy);
167
+ INLINED_MAKE_SHARED
168
+
169
+ private:
170
+ PROJ_OPAQUE_PRIVATE_DATA
171
+
172
+ DatumEnsemble(const DatumEnsemble &other) = delete;
173
+ DatumEnsemble &operator=(const DatumEnsemble &other) = delete;
174
+ };
175
+
176
+ // ---------------------------------------------------------------------------
177
+
178
+ class PrimeMeridian;
179
+ /** Shared pointer of PrimeMeridian */
180
+ using PrimeMeridianPtr = std::shared_ptr<PrimeMeridian>;
181
+ /** Non-null shared pointer of PrimeMeridian */
182
+ using PrimeMeridianNNPtr = util::nn<PrimeMeridianPtr>;
183
+
184
+ /** \brief The origin meridian from which longitude values are determined.
185
+ *
186
+ * \note The default value for prime meridian name is "Greenwich". When the
187
+ * default applies, the value for the longitude shall be 0 (degrees).
188
+ *
189
+ * \remark Implements PrimeMeridian from \ref ISO_19111_2019
190
+ */
191
+ class PROJ_GCC_DLL PrimeMeridian final : public common::IdentifiedObject,
192
+ public io::IPROJStringExportable,
193
+ public io::IJSONExportable {
194
+ public:
195
+ //! @cond Doxygen_Suppress
196
+ PROJ_DLL ~PrimeMeridian() override;
197
+ //! @endcond
198
+
199
+ PROJ_DLL const common::Angle &longitude() PROJ_PURE_DECL;
200
+
201
+ // non-standard
202
+ PROJ_DLL static PrimeMeridianNNPtr
203
+ create(const util::PropertyMap &properties,
204
+ const common::Angle &longitudeIn);
205
+
206
+ PROJ_DLL static const PrimeMeridianNNPtr GREENWICH;
207
+ PROJ_DLL static const PrimeMeridianNNPtr REFERENCE_MERIDIAN;
208
+ PROJ_DLL static const PrimeMeridianNNPtr PARIS;
209
+
210
+ PROJ_PRIVATE :
211
+
212
+ //! @cond Doxygen_Suppress
213
+ PROJ_INTERNAL void
214
+ _exportToPROJString(io::PROJStringFormatter *formatter)
215
+ const override; // throw(FormattingException)
216
+
217
+ PROJ_INTERNAL void _exportToWKT(io::WKTFormatter *formatter)
218
+ const override; // throw(io::FormattingException)
219
+
220
+ PROJ_INTERNAL void _exportToJSON(io::JSONFormatter *formatter)
221
+ const override; // throw(io::FormattingException)
222
+
223
+ PROJ_INTERNAL bool _isEquivalentTo(
224
+ const util::IComparable *other,
225
+ util::IComparable::Criterion criterion =
226
+ util::IComparable::Criterion::STRICT,
227
+ const io::DatabaseContextPtr &dbContext = nullptr) const override;
228
+
229
+ PROJ_INTERNAL static std::string
230
+ getPROJStringWellKnownName(const common::Angle &angle);
231
+ //! @endcond
232
+
233
+ protected:
234
+ #ifdef DOXYGEN_ENABLED
235
+ Angle greenwichLongitude_;
236
+ #endif
237
+
238
+ PROJ_INTERNAL explicit PrimeMeridian(
239
+ const common::Angle &angle = common::Angle());
240
+ INLINED_MAKE_SHARED
241
+
242
+ private:
243
+ PROJ_OPAQUE_PRIVATE_DATA
244
+ PrimeMeridian(const PrimeMeridian &other) = delete;
245
+ PrimeMeridian &operator=(const PrimeMeridian &other) = delete;
246
+
247
+ PROJ_INTERNAL static const PrimeMeridianNNPtr createGREENWICH();
248
+ PROJ_INTERNAL static const PrimeMeridianNNPtr createREFERENCE_MERIDIAN();
249
+ PROJ_INTERNAL static const PrimeMeridianNNPtr createPARIS();
250
+ };
251
+
252
+ // ---------------------------------------------------------------------------
253
+
254
+ class Ellipsoid;
255
+ /** Shared pointer of Ellipsoid */
256
+ using EllipsoidPtr = std::shared_ptr<Ellipsoid>;
257
+ /** Non-null shared pointer of Ellipsoid */
258
+ using EllipsoidNNPtr = util::nn<EllipsoidPtr>;
259
+
260
+ /** \brief A geometric figure that can be used to describe the approximate
261
+ * shape of an object.
262
+ *
263
+ * For the Earth an oblate biaxial ellipsoid is used: in mathematical terms,
264
+ * it is a surface formed by the rotation of an ellipse about its minor axis.
265
+ *
266
+ * \remark Implements Ellipsoid from \ref ISO_19111_2019
267
+ */
268
+ class PROJ_GCC_DLL Ellipsoid final : public common::IdentifiedObject,
269
+ public io::IPROJStringExportable,
270
+ public io::IJSONExportable {
271
+ public:
272
+ //! @cond Doxygen_Suppress
273
+ PROJ_DLL ~Ellipsoid() override;
274
+ //! @endcond
275
+
276
+ PROJ_DLL const common::Length &semiMajorAxis() PROJ_PURE_DECL;
277
+
278
+ // Inlined from SecondDefiningParameter union
279
+ PROJ_DLL const util::optional<common::Scale> &
280
+ inverseFlattening() PROJ_PURE_DECL;
281
+ PROJ_DLL const util::optional<common::Length> &
282
+ semiMinorAxis() PROJ_PURE_DECL;
283
+ PROJ_DLL bool isSphere() PROJ_PURE_DECL;
284
+
285
+ PROJ_DLL const util::optional<common::Length> &
286
+ semiMedianAxis() PROJ_PURE_DECL;
287
+
288
+ // non-standard
289
+
290
+ PROJ_DLL double computedInverseFlattening() PROJ_PURE_DECL;
291
+ PROJ_DLL double squaredEccentricity() PROJ_PURE_DECL;
292
+ PROJ_DLL common::Length computeSemiMinorAxis() const;
293
+
294
+ PROJ_DLL const std::string &celestialBody() PROJ_PURE_DECL;
295
+
296
+ PROJ_DLL static const std::string EARTH;
297
+
298
+ PROJ_DLL static EllipsoidNNPtr
299
+ createSphere(const util::PropertyMap &properties,
300
+ const common::Length &radius,
301
+ const std::string &celestialBody = EARTH);
302
+
303
+ PROJ_DLL static EllipsoidNNPtr
304
+ createFlattenedSphere(const util::PropertyMap &properties,
305
+ const common::Length &semiMajorAxisIn,
306
+ const common::Scale &invFlattening,
307
+ const std::string &celestialBody = EARTH);
308
+
309
+ PROJ_DLL static EllipsoidNNPtr
310
+ createTwoAxis(const util::PropertyMap &properties,
311
+ const common::Length &semiMajorAxisIn,
312
+ const common::Length &semiMinorAxisIn,
313
+ const std::string &celestialBody = EARTH);
314
+
315
+ PROJ_DLL EllipsoidNNPtr identify() const;
316
+
317
+ PROJ_DLL static const EllipsoidNNPtr CLARKE_1866;
318
+ PROJ_DLL static const EllipsoidNNPtr WGS84;
319
+ PROJ_DLL static const EllipsoidNNPtr GRS1980;
320
+
321
+ PROJ_PRIVATE :
322
+ //! @cond Doxygen_Suppress
323
+ PROJ_INTERNAL void
324
+ _exportToWKT(io::WKTFormatter *formatter)
325
+ const override; // throw(io::FormattingException)
326
+
327
+ PROJ_INTERNAL void _exportToJSON(io::JSONFormatter *formatter)
328
+ const override; // throw(io::FormattingException)
329
+
330
+ PROJ_INTERNAL bool _isEquivalentTo(
331
+ const util::IComparable *other,
332
+ util::IComparable::Criterion criterion =
333
+ util::IComparable::Criterion::STRICT,
334
+ const io::DatabaseContextPtr &dbContext = nullptr) const override;
335
+
336
+ PROJ_INTERNAL void _exportToPROJString(io::PROJStringFormatter *formatter)
337
+ const override; // throw(FormattingException)
338
+ //! @endcond
339
+
340
+ PROJ_INTERNAL static std::string
341
+ guessBodyName(const io::DatabaseContextPtr &dbContext, double a,
342
+ const std::string &ellpsName = std::string());
343
+
344
+ PROJ_INTERNAL bool lookForProjWellKnownEllps(std::string &projEllpsName,
345
+ std::string &ellpsName) const;
346
+
347
+ protected:
348
+ #ifdef DOXYGEN_ENABLED
349
+ common::Length semiMajorAxis_;
350
+ common::Scale *inverseFlattening_;
351
+ common::Length *semiMinorAxis_;
352
+ bool isSphere_;
353
+ common::Length *semiMedianAxis_;
354
+ #endif
355
+
356
+ PROJ_INTERNAL explicit Ellipsoid(const common::Length &radius,
357
+ const std::string &celestialBody);
358
+
359
+ PROJ_INTERNAL Ellipsoid(const common::Length &semiMajorAxisIn,
360
+ const common::Scale &invFlattening,
361
+ const std::string &celestialBody);
362
+
363
+ PROJ_INTERNAL Ellipsoid(const common::Length &semiMajorAxisIn,
364
+ const common::Length &semiMinorAxisIn,
365
+ const std::string &celestialBody);
366
+
367
+ PROJ_INTERNAL Ellipsoid(const Ellipsoid &other);
368
+
369
+ INLINED_MAKE_SHARED
370
+
371
+ PROJ_INTERNAL static const EllipsoidNNPtr createCLARKE_1866();
372
+ PROJ_INTERNAL static const EllipsoidNNPtr createWGS84();
373
+ PROJ_INTERNAL static const EllipsoidNNPtr createGRS1980();
374
+
375
+ private:
376
+ PROJ_OPAQUE_PRIVATE_DATA
377
+ Ellipsoid &operator=(const Ellipsoid &other) = delete;
378
+ };
379
+
380
+ // ---------------------------------------------------------------------------
381
+
382
+ class GeodeticReferenceFrame;
383
+ /** Shared pointer of GeodeticReferenceFrame */
384
+ using GeodeticReferenceFramePtr = std::shared_ptr<GeodeticReferenceFrame>;
385
+ /** Non-null shared pointer of GeodeticReferenceFrame */
386
+ using GeodeticReferenceFrameNNPtr = util::nn<GeodeticReferenceFramePtr>;
387
+
388
+ /** \brief The definition of the position, scale and orientation of a geocentric
389
+ * Cartesian 3D coordinate system relative to the Earth.
390
+ *
391
+ * It may also identify a defined ellipsoid (or sphere) that approximates
392
+ * the shape of the Earth and which is centred on and aligned to this
393
+ * geocentric coordinate system. Older geodetic datums define the location and
394
+ * orientation of a defined ellipsoid (or sphere) that approximates the shape
395
+ * of the earth.
396
+ *
397
+ * \note The terminology "Datum" is often used to mean a GeodeticReferenceFrame.
398
+ *
399
+ * \note In \ref ISO_19111_2007, this class was called GeodeticDatum.
400
+ *
401
+ * \remark Implements GeodeticReferenceFrame from \ref ISO_19111_2019
402
+ */
403
+ class PROJ_GCC_DLL GeodeticReferenceFrame : public Datum {
404
+ public:
405
+ //! @cond Doxygen_Suppress
406
+ PROJ_DLL ~GeodeticReferenceFrame() override;
407
+ //! @endcond
408
+
409
+ PROJ_DLL const PrimeMeridianNNPtr &primeMeridian() PROJ_PURE_DECL;
410
+
411
+ // We constraint more than the standard into which the ellipsoid might
412
+ // be omitted for a CRS with a non-ellipsoidal CS
413
+ PROJ_DLL const EllipsoidNNPtr &ellipsoid() PROJ_PURE_DECL;
414
+
415
+ // non-standard
416
+ PROJ_DLL static GeodeticReferenceFrameNNPtr
417
+ create(const util::PropertyMap &properties, const EllipsoidNNPtr &ellipsoid,
418
+ const util::optional<std::string> &anchor,
419
+ const PrimeMeridianNNPtr &primeMeridian);
420
+
421
+ PROJ_DLL static GeodeticReferenceFrameNNPtr
422
+ create(const util::PropertyMap &properties, const EllipsoidNNPtr &ellipsoid,
423
+ const util::optional<std::string> &anchor,
424
+ const util::optional<common::Measure> &anchorEpoch,
425
+ const PrimeMeridianNNPtr &primeMeridian);
426
+
427
+ PROJ_DLL static const GeodeticReferenceFrameNNPtr
428
+ EPSG_6267; // North American Datum 1927
429
+ PROJ_DLL static const GeodeticReferenceFrameNNPtr
430
+ EPSG_6269; // North American Datum 1983
431
+ PROJ_DLL static const GeodeticReferenceFrameNNPtr EPSG_6326; // WGS 84
432
+
433
+ //! @cond Doxygen_Suppress
434
+ PROJ_INTERNAL void _exportToWKT(io::WKTFormatter *formatter)
435
+ const override; // throw(io::FormattingException)
436
+
437
+ PROJ_INTERNAL void _exportToJSON(io::JSONFormatter *formatter)
438
+ const override; // throw(FormattingException)
439
+
440
+ PROJ_INTERNAL bool _isEquivalentTo(
441
+ const util::IComparable *other,
442
+ util::IComparable::Criterion criterion =
443
+ util::IComparable::Criterion::STRICT,
444
+ const io::DatabaseContextPtr &dbContext = nullptr) const override;
445
+
446
+ PROJ_INTERNAL bool isEquivalentToNoExactTypeCheck(
447
+ const util::IComparable *other, util::IComparable::Criterion criterion,
448
+ const io::DatabaseContextPtr &dbContext) const;
449
+ //! @endcond
450
+
451
+ protected:
452
+ #ifdef DOXYGEN_ENABLED
453
+ PrimeMeridian primeMeridian_;
454
+ Ellipsoid *ellipsoid_;
455
+ #endif
456
+
457
+ PROJ_INTERNAL
458
+ GeodeticReferenceFrame(const EllipsoidNNPtr &ellipsoidIn,
459
+ const PrimeMeridianNNPtr &primeMeridianIn);
460
+ INLINED_MAKE_SHARED
461
+
462
+ PROJ_INTERNAL static const GeodeticReferenceFrameNNPtr createEPSG_6267();
463
+ PROJ_INTERNAL static const GeodeticReferenceFrameNNPtr createEPSG_6269();
464
+ PROJ_INTERNAL static const GeodeticReferenceFrameNNPtr createEPSG_6326();
465
+
466
+ bool hasEquivalentNameToUsingAlias(
467
+ const IdentifiedObject *other,
468
+ const io::DatabaseContextPtr &dbContext) const override;
469
+
470
+ private:
471
+ PROJ_OPAQUE_PRIVATE_DATA
472
+ GeodeticReferenceFrame(const GeodeticReferenceFrame &other) = delete;
473
+ GeodeticReferenceFrame &
474
+ operator=(const GeodeticReferenceFrame &other) = delete;
475
+ };
476
+
477
+ // ---------------------------------------------------------------------------
478
+
479
+ class DynamicGeodeticReferenceFrame;
480
+ /** Shared pointer of DynamicGeodeticReferenceFrame */
481
+ using DynamicGeodeticReferenceFramePtr =
482
+ std::shared_ptr<DynamicGeodeticReferenceFrame>;
483
+ /** Non-null shared pointer of DynamicGeodeticReferenceFrame */
484
+ using DynamicGeodeticReferenceFrameNNPtr =
485
+ util::nn<DynamicGeodeticReferenceFramePtr>;
486
+
487
+ /** \brief A geodetic reference frame in which some of the parameters describe
488
+ * time evolution of defining station coordinates.
489
+ *
490
+ * For example defining station coordinates having linear velocities to account
491
+ * for crustal motion.
492
+ *
493
+ * \remark Implements DynamicGeodeticReferenceFrame from \ref ISO_19111_2019
494
+ */
495
+ class PROJ_GCC_DLL DynamicGeodeticReferenceFrame final
496
+ : public GeodeticReferenceFrame {
497
+ public:
498
+ //! @cond Doxygen_Suppress
499
+ PROJ_DLL ~DynamicGeodeticReferenceFrame() override;
500
+ //! @endcond
501
+
502
+ PROJ_DLL const common::Measure &frameReferenceEpoch() const;
503
+ PROJ_DLL const util::optional<std::string> &deformationModelName() const;
504
+
505
+ // non-standard
506
+ PROJ_DLL static DynamicGeodeticReferenceFrameNNPtr
507
+ create(const util::PropertyMap &properties, const EllipsoidNNPtr &ellipsoid,
508
+ const util::optional<std::string> &anchor,
509
+ const PrimeMeridianNNPtr &primeMeridian,
510
+ const common::Measure &frameReferenceEpochIn,
511
+ const util::optional<std::string> &deformationModelNameIn);
512
+
513
+ //! @cond Doxygen_Suppress
514
+ PROJ_INTERNAL bool _isEquivalentTo(
515
+ const util::IComparable *other,
516
+ util::IComparable::Criterion criterion =
517
+ util::IComparable::Criterion::STRICT,
518
+ const io::DatabaseContextPtr &dbContext = nullptr) const override;
519
+
520
+ PROJ_INTERNAL void _exportToWKT(io::WKTFormatter *formatter)
521
+ const override; // throw(io::FormattingException)
522
+ //! @endcond
523
+
524
+ protected:
525
+ #ifdef DOXYGEN_ENABLED
526
+ Measure frameReferenceEpoch_;
527
+ #endif
528
+
529
+ PROJ_INTERNAL DynamicGeodeticReferenceFrame(
530
+ const EllipsoidNNPtr &ellipsoidIn,
531
+ const PrimeMeridianNNPtr &primeMeridianIn,
532
+ const common::Measure &frameReferenceEpochIn,
533
+ const util::optional<std::string> &deformationModelNameIn);
534
+ INLINED_MAKE_SHARED
535
+
536
+ private:
537
+ PROJ_OPAQUE_PRIVATE_DATA
538
+ DynamicGeodeticReferenceFrame(const DynamicGeodeticReferenceFrame &other) =
539
+ delete;
540
+ DynamicGeodeticReferenceFrame &
541
+ operator=(const DynamicGeodeticReferenceFrame &other) = delete;
542
+ };
543
+
544
+ // ---------------------------------------------------------------------------
545
+
546
+ /** \brief The specification of the method by which the vertical reference frame
547
+ * is realized.
548
+ *
549
+ * \remark Implements RealizationMethod from \ref ISO_19111_2019
550
+ */
551
+ class PROJ_GCC_DLL RealizationMethod : public util::CodeList {
552
+ public:
553
+ PROJ_DLL static const RealizationMethod LEVELLING;
554
+ PROJ_DLL static const RealizationMethod GEOID;
555
+ PROJ_DLL static const RealizationMethod TIDAL;
556
+
557
+ private:
558
+ PROJ_FRIEND_OPTIONAL(RealizationMethod);
559
+ PROJ_DLL explicit RealizationMethod(
560
+ const std::string &nameIn = std::string());
561
+ PROJ_DLL RealizationMethod(const RealizationMethod &other) = default;
562
+ PROJ_DLL RealizationMethod &operator=(const RealizationMethod &other);
563
+ };
564
+
565
+ // ---------------------------------------------------------------------------
566
+
567
+ class VerticalReferenceFrame;
568
+ /** Shared pointer of VerticalReferenceFrame */
569
+ using VerticalReferenceFramePtr = std::shared_ptr<VerticalReferenceFrame>;
570
+ /** Non-null shared pointer of VerticalReferenceFrame */
571
+ using VerticalReferenceFrameNNPtr = util::nn<VerticalReferenceFramePtr>;
572
+
573
+ /** \brief A textual description and/or a set of parameters identifying a
574
+ * particular reference level surface used as a zero-height or zero-depth
575
+ * surface, including its position with respect to the Earth.
576
+ *
577
+ * \note In \ref ISO_19111_2007, this class was called VerticalDatum.
578
+
579
+ * \remark Implements VerticalReferenceFrame from \ref ISO_19111_2019
580
+ */
581
+ class PROJ_GCC_DLL VerticalReferenceFrame : public Datum {
582
+ public:
583
+ //! @cond Doxygen_Suppress
584
+ PROJ_DLL ~VerticalReferenceFrame() override;
585
+ //! @endcond
586
+
587
+ PROJ_DLL const util::optional<RealizationMethod> &realizationMethod() const;
588
+
589
+ // non-standard
590
+ PROJ_DLL static VerticalReferenceFrameNNPtr
591
+ create(const util::PropertyMap &properties,
592
+ const util::optional<std::string> &anchor =
593
+ util::optional<std::string>(),
594
+ const util::optional<RealizationMethod> &realizationMethodIn =
595
+ util::optional<RealizationMethod>());
596
+
597
+ PROJ_DLL static VerticalReferenceFrameNNPtr
598
+ create(const util::PropertyMap &properties,
599
+ const util::optional<std::string> &anchor,
600
+ const util::optional<common::Measure> &anchorEpoch,
601
+ const util::optional<RealizationMethod> &realizationMethodIn =
602
+ util::optional<RealizationMethod>());
603
+
604
+ //! @cond Doxygen_Suppress
605
+ PROJ_INTERNAL bool _isEquivalentTo(
606
+ const util::IComparable *other,
607
+ util::IComparable::Criterion criterion =
608
+ util::IComparable::Criterion::STRICT,
609
+ const io::DatabaseContextPtr &dbContext = nullptr) const override;
610
+
611
+ PROJ_INTERNAL bool isEquivalentToNoExactTypeCheck(
612
+ const util::IComparable *other, util::IComparable::Criterion criterion,
613
+ const io::DatabaseContextPtr &dbContext) const;
614
+
615
+ PROJ_INTERNAL void _exportToWKT(io::WKTFormatter *formatter)
616
+ const override; // throw(io::FormattingException)
617
+
618
+ PROJ_INTERNAL void _exportToJSON(io::JSONFormatter *formatter)
619
+ const override; // throw(FormattingException)
620
+
621
+ PROJ_INTERNAL const std::string &getWKT1DatumType() const;
622
+
623
+ //! @endcond
624
+
625
+ protected:
626
+ #ifdef DOXYGEN_ENABLED
627
+ RealizationMethod realizationMethod_;
628
+ #endif
629
+
630
+ PROJ_INTERNAL explicit VerticalReferenceFrame(
631
+ const util::optional<RealizationMethod> &realizationMethodIn);
632
+ INLINED_MAKE_SHARED
633
+
634
+ private:
635
+ PROJ_OPAQUE_PRIVATE_DATA
636
+ };
637
+
638
+ // ---------------------------------------------------------------------------
639
+
640
+ class DynamicVerticalReferenceFrame;
641
+ /** Shared pointer of DynamicVerticalReferenceFrame */
642
+ using DynamicVerticalReferenceFramePtr =
643
+ std::shared_ptr<DynamicVerticalReferenceFrame>;
644
+ /** Non-null shared pointer of DynamicVerticalReferenceFrame */
645
+ using DynamicVerticalReferenceFrameNNPtr =
646
+ util::nn<DynamicVerticalReferenceFramePtr>;
647
+
648
+ /** \brief A vertical reference frame in which some of the defining parameters
649
+ * have time dependency.
650
+ *
651
+ * For example defining station heights have velocity to account for
652
+ * post-glacial isostatic rebound motion.
653
+ *
654
+ * \remark Implements DynamicVerticalReferenceFrame from \ref ISO_19111_2019
655
+ */
656
+ class PROJ_GCC_DLL DynamicVerticalReferenceFrame final
657
+ : public VerticalReferenceFrame {
658
+ public:
659
+ //! @cond Doxygen_Suppress
660
+ PROJ_DLL ~DynamicVerticalReferenceFrame() override;
661
+ //! @endcond
662
+
663
+ PROJ_DLL const common::Measure &frameReferenceEpoch() const;
664
+ PROJ_DLL const util::optional<std::string> &deformationModelName() const;
665
+
666
+ // non-standard
667
+ PROJ_DLL static DynamicVerticalReferenceFrameNNPtr
668
+ create(const util::PropertyMap &properties,
669
+ const util::optional<std::string> &anchor,
670
+ const util::optional<RealizationMethod> &realizationMethodIn,
671
+ const common::Measure &frameReferenceEpochIn,
672
+ const util::optional<std::string> &deformationModelNameIn);
673
+
674
+ //! @cond Doxygen_Suppress
675
+ PROJ_INTERNAL bool _isEquivalentTo(
676
+ const util::IComparable *other,
677
+ util::IComparable::Criterion criterion =
678
+ util::IComparable::Criterion::STRICT,
679
+ const io::DatabaseContextPtr &dbContext = nullptr) const override;
680
+
681
+ PROJ_INTERNAL void _exportToWKT(io::WKTFormatter *formatter)
682
+ const override; // throw(io::FormattingException)
683
+ //! @endcond
684
+
685
+ protected:
686
+ #ifdef DOXYGEN_ENABLED
687
+ Measure frameReferenceEpoch_;
688
+ #endif
689
+
690
+ PROJ_INTERNAL DynamicVerticalReferenceFrame(
691
+ const util::optional<RealizationMethod> &realizationMethodIn,
692
+ const common::Measure &frameReferenceEpochIn,
693
+ const util::optional<std::string> &deformationModelNameIn);
694
+ INLINED_MAKE_SHARED
695
+
696
+ private:
697
+ PROJ_OPAQUE_PRIVATE_DATA
698
+ DynamicVerticalReferenceFrame(const DynamicVerticalReferenceFrame &other) =
699
+ delete;
700
+ DynamicVerticalReferenceFrame &
701
+ operator=(const DynamicVerticalReferenceFrame &other) = delete;
702
+ };
703
+
704
+ // ---------------------------------------------------------------------------
705
+
706
+ class TemporalDatum;
707
+ /** Shared pointer of TemporalDatum */
708
+ using TemporalDatumPtr = std::shared_ptr<TemporalDatum>;
709
+ /** Non-null shared pointer of TemporalDatum */
710
+ using TemporalDatumNNPtr = util::nn<TemporalDatumPtr>;
711
+
712
+ /** \brief The definition of the relationship of a temporal coordinate system
713
+ * to an object. The object is normally time on the Earth.
714
+ *
715
+ * \remark Implements TemporalDatum from \ref ISO_19111_2019
716
+ */
717
+ class PROJ_GCC_DLL TemporalDatum final : public Datum {
718
+ public:
719
+ //! @cond Doxygen_Suppress
720
+ PROJ_DLL ~TemporalDatum() override;
721
+ //! @endcond
722
+
723
+ PROJ_DLL const common::DateTime &temporalOrigin() const;
724
+ PROJ_DLL const std::string &calendar() const;
725
+
726
+ PROJ_DLL static const std::string CALENDAR_PROLEPTIC_GREGORIAN;
727
+
728
+ // non-standard
729
+ PROJ_DLL static TemporalDatumNNPtr
730
+ create(const util::PropertyMap &properties,
731
+ const common::DateTime &temporalOriginIn,
732
+ const std::string &calendarIn);
733
+
734
+ //! @cond Doxygen_Suppress
735
+ PROJ_INTERNAL void _exportToWKT(io::WKTFormatter *formatter)
736
+ const override; // throw(io::FormattingException)
737
+
738
+ PROJ_INTERNAL void _exportToJSON(io::JSONFormatter *formatter)
739
+ const override; // throw(FormattingException)
740
+
741
+ PROJ_INTERNAL bool _isEquivalentTo(
742
+ const util::IComparable *other,
743
+ util::IComparable::Criterion criterion =
744
+ util::IComparable::Criterion::STRICT,
745
+ const io::DatabaseContextPtr &dbContext = nullptr) const override;
746
+ //! @endcond
747
+
748
+ protected:
749
+ PROJ_INTERNAL TemporalDatum(const common::DateTime &temporalOriginIn,
750
+ const std::string &calendarIn);
751
+ INLINED_MAKE_SHARED
752
+
753
+ private:
754
+ PROJ_OPAQUE_PRIVATE_DATA
755
+ };
756
+
757
+ // ---------------------------------------------------------------------------
758
+
759
+ class EngineeringDatum;
760
+ /** Shared pointer of EngineeringDatum */
761
+ using EngineeringDatumPtr = std::shared_ptr<EngineeringDatum>;
762
+ /** Non-null shared pointer of EngineeringDatum */
763
+ using EngineeringDatumNNPtr = util::nn<EngineeringDatumPtr>;
764
+
765
+ /** \brief The definition of the origin and orientation of an engineering
766
+ * coordinate reference system.
767
+ *
768
+ * \note The origin can be fixed with respect to the Earth (such as a defined
769
+ * point at a construction site), or be a defined point on a moving vehicle
770
+ * (such as on a ship or satellite), or a defined point of an image.
771
+ *
772
+ * \remark Implements EngineeringDatum from \ref ISO_19111_2019
773
+ */
774
+ class PROJ_GCC_DLL EngineeringDatum final : public Datum {
775
+ public:
776
+ //! @cond Doxygen_Suppress
777
+ PROJ_DLL ~EngineeringDatum() override;
778
+ //! @endcond
779
+
780
+ // non-standard
781
+ PROJ_DLL static EngineeringDatumNNPtr
782
+ create(const util::PropertyMap &properties,
783
+ const util::optional<std::string> &anchor =
784
+ util::optional<std::string>());
785
+
786
+ //! @cond Doxygen_Suppress
787
+ PROJ_INTERNAL void _exportToWKT(io::WKTFormatter *formatter)
788
+ const override; // throw(io::FormattingException)
789
+
790
+ PROJ_INTERNAL void _exportToJSON(io::JSONFormatter *formatter)
791
+ const override; // throw(FormattingException)
792
+
793
+ PROJ_INTERNAL bool _isEquivalentTo(
794
+ const util::IComparable *other,
795
+ util::IComparable::Criterion criterion =
796
+ util::IComparable::Criterion::STRICT,
797
+ const io::DatabaseContextPtr &dbContext = nullptr) const override;
798
+ //! @endcond
799
+
800
+ protected:
801
+ PROJ_INTERNAL EngineeringDatum();
802
+ INLINED_MAKE_SHARED
803
+
804
+ private:
805
+ PROJ_OPAQUE_PRIVATE_DATA
806
+ };
807
+
808
+ // ---------------------------------------------------------------------------
809
+
810
+ class ParametricDatum;
811
+ /** Shared pointer of ParametricDatum */
812
+ using ParametricDatumPtr = std::shared_ptr<ParametricDatum>;
813
+ /** Non-null shared pointer of ParametricDatum */
814
+ using ParametricDatumNNPtr = util::nn<ParametricDatumPtr>;
815
+
816
+ /** \brief Textual description and/or a set of parameters identifying a
817
+ * particular reference surface used as the origin of a parametric coordinate
818
+ * system, including its position with respect to the Earth.
819
+ *
820
+ * \remark Implements ParametricDatum from \ref ISO_19111_2019
821
+ */
822
+ class PROJ_GCC_DLL ParametricDatum final : public Datum {
823
+ public:
824
+ //! @cond Doxygen_Suppress
825
+ PROJ_DLL ~ParametricDatum() override;
826
+ //! @endcond
827
+
828
+ // non-standard
829
+ PROJ_DLL static ParametricDatumNNPtr
830
+ create(const util::PropertyMap &properties,
831
+ const util::optional<std::string> &anchor =
832
+ util::optional<std::string>());
833
+
834
+ //! @cond Doxygen_Suppress
835
+ PROJ_INTERNAL void _exportToWKT(io::WKTFormatter *formatter)
836
+ const override; // throw(io::FormattingException)
837
+
838
+ PROJ_INTERNAL void _exportToJSON(io::JSONFormatter *formatter)
839
+ const override; // throw(FormattingException)
840
+
841
+ PROJ_INTERNAL bool _isEquivalentTo(
842
+ const util::IComparable *other,
843
+ util::IComparable::Criterion criterion =
844
+ util::IComparable::Criterion::STRICT,
845
+ const io::DatabaseContextPtr &dbContext = nullptr) const override;
846
+ //! @endcond
847
+
848
+ protected:
849
+ PROJ_INTERNAL ParametricDatum();
850
+ INLINED_MAKE_SHARED
851
+
852
+ private:
853
+ PROJ_OPAQUE_PRIVATE_DATA
854
+ };
855
+
856
+ } // namespace datum
857
+
858
+ NS_PROJ_END
859
+
860
+ #endif // DATUM_HH_INCLUDED