@crossbind/port-gdal-wasm 2.0.0-beta.50

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 (667) hide show
  1. package/LICENSE +467 -0
  2. package/README.md +12 -0
  3. package/assets/gdal_empty_file.cpp +0 -0
  4. package/crossbind.build.js +23 -0
  5. package/crossbind.config.js +35 -0
  6. package/dist/prebuilt/CMakeLists.txt +57 -0
  7. package/dist/prebuilt/wasm-wasm32-mt-release/crossbind-emccflags.fingerprint +1 -0
  8. package/dist/prebuilt/wasm-wasm32-mt-release/include/cpl_atomic_ops.h +89 -0
  9. package/dist/prebuilt/wasm-wasm32-mt-release/include/cpl_auto_close.h +72 -0
  10. package/dist/prebuilt/wasm-wasm32-mt-release/include/cpl_compressor.h +112 -0
  11. package/dist/prebuilt/wasm-wasm32-mt-release/include/cpl_config.h +203 -0
  12. package/dist/prebuilt/wasm-wasm32-mt-release/include/cpl_config_extras.h +33 -0
  13. package/dist/prebuilt/wasm-wasm32-mt-release/include/cpl_conv.h +528 -0
  14. package/dist/prebuilt/wasm-wasm32-mt-release/include/cpl_csv.h +70 -0
  15. package/dist/prebuilt/wasm-wasm32-mt-release/include/cpl_error.h +505 -0
  16. package/dist/prebuilt/wasm-wasm32-mt-release/include/cpl_float.h +730 -0
  17. package/dist/prebuilt/wasm-wasm32-mt-release/include/cpl_hash_set.h +82 -0
  18. package/dist/prebuilt/wasm-wasm32-mt-release/include/cpl_http.h +317 -0
  19. package/dist/prebuilt/wasm-wasm32-mt-release/include/cpl_json.h +398 -0
  20. package/dist/prebuilt/wasm-wasm32-mt-release/include/cpl_list.h +58 -0
  21. package/dist/prebuilt/wasm-wasm32-mt-release/include/cpl_minixml.h +210 -0
  22. package/dist/prebuilt/wasm-wasm32-mt-release/include/cpl_multiproc.h +241 -0
  23. package/dist/prebuilt/wasm-wasm32-mt-release/include/cpl_port.h +1266 -0
  24. package/dist/prebuilt/wasm-wasm32-mt-release/include/cpl_progress.h +48 -0
  25. package/dist/prebuilt/wasm-wasm32-mt-release/include/cpl_quad_tree.h +104 -0
  26. package/dist/prebuilt/wasm-wasm32-mt-release/include/cpl_spawn.h +59 -0
  27. package/dist/prebuilt/wasm-wasm32-mt-release/include/cpl_string.h +985 -0
  28. package/dist/prebuilt/wasm-wasm32-mt-release/include/cpl_time.h +28 -0
  29. package/dist/prebuilt/wasm-wasm32-mt-release/include/cpl_virtualmem.h +347 -0
  30. package/dist/prebuilt/wasm-wasm32-mt-release/include/cpl_vsi.h +885 -0
  31. package/dist/prebuilt/wasm-wasm32-mt-release/include/cpl_vsi_error.h +91 -0
  32. package/dist/prebuilt/wasm-wasm32-mt-release/include/cpl_vsi_virtual.h +838 -0
  33. package/dist/prebuilt/wasm-wasm32-mt-release/include/cplkeywordparser.h +60 -0
  34. package/dist/prebuilt/wasm-wasm32-mt-release/include/gdal.h +3013 -0
  35. package/dist/prebuilt/wasm-wasm32-mt-release/include/gdal_adbc.h +46 -0
  36. package/dist/prebuilt/wasm-wasm32-mt-release/include/gdal_alg.h +753 -0
  37. package/dist/prebuilt/wasm-wasm32-mt-release/include/gdal_alg_priv.h +444 -0
  38. package/dist/prebuilt/wasm-wasm32-mt-release/include/gdal_asyncreader.h +177 -0
  39. package/dist/prebuilt/wasm-wasm32-mt-release/include/gdal_colortable.h +85 -0
  40. package/dist/prebuilt/wasm-wasm32-mt-release/include/gdal_computedrasterband.h +334 -0
  41. package/dist/prebuilt/wasm-wasm32-mt-release/include/gdal_cpp_functions.h +414 -0
  42. package/dist/prebuilt/wasm-wasm32-mt-release/include/gdal_csv.h +24 -0
  43. package/dist/prebuilt/wasm-wasm32-mt-release/include/gdal_dataset.h +959 -0
  44. package/dist/prebuilt/wasm-wasm32-mt-release/include/gdal_defaultoverviews.h +133 -0
  45. package/dist/prebuilt/wasm-wasm32-mt-release/include/gdal_driver.h +348 -0
  46. package/dist/prebuilt/wasm-wasm32-mt-release/include/gdal_drivermanager.h +115 -0
  47. package/dist/prebuilt/wasm-wasm32-mt-release/include/gdal_frmts.h +230 -0
  48. package/dist/prebuilt/wasm-wasm32-mt-release/include/gdal_fwd.h +219 -0
  49. package/dist/prebuilt/wasm-wasm32-mt-release/include/gdal_gcp.h +140 -0
  50. package/dist/prebuilt/wasm-wasm32-mt-release/include/gdal_geotransform.h +251 -0
  51. package/dist/prebuilt/wasm-wasm32-mt-release/include/gdal_majorobject.h +102 -0
  52. package/dist/prebuilt/wasm-wasm32-mt-release/include/gdal_maskbands.h +170 -0
  53. package/dist/prebuilt/wasm-wasm32-mt-release/include/gdal_mdreader.h +240 -0
  54. package/dist/prebuilt/wasm-wasm32-mt-release/include/gdal_mem.h +32 -0
  55. package/dist/prebuilt/wasm-wasm32-mt-release/include/gdal_minmax_element.hpp +1489 -0
  56. package/dist/prebuilt/wasm-wasm32-mt-release/include/gdal_multidim.h +1356 -0
  57. package/dist/prebuilt/wasm-wasm32-mt-release/include/gdal_multidim_cpp.h +33 -0
  58. package/dist/prebuilt/wasm-wasm32-mt-release/include/gdal_multidomainmetadata.h +91 -0
  59. package/dist/prebuilt/wasm-wasm32-mt-release/include/gdal_openinfo.h +94 -0
  60. package/dist/prebuilt/wasm-wasm32-mt-release/include/gdal_pam.h +400 -0
  61. package/dist/prebuilt/wasm-wasm32-mt-release/include/gdal_pam_multidim.h +114 -0
  62. package/dist/prebuilt/wasm-wasm32-mt-release/include/gdal_priv.h +69 -0
  63. package/dist/prebuilt/wasm-wasm32-mt-release/include/gdal_priv_templates.hpp +1516 -0
  64. package/dist/prebuilt/wasm-wasm32-mt-release/include/gdal_proxy.h +475 -0
  65. package/dist/prebuilt/wasm-wasm32-mt-release/include/gdal_raster_cpp.h +46 -0
  66. package/dist/prebuilt/wasm-wasm32-mt-release/include/gdal_rasterband.h +779 -0
  67. package/dist/prebuilt/wasm-wasm32-mt-release/include/gdal_rasterblock.h +184 -0
  68. package/dist/prebuilt/wasm-wasm32-mt-release/include/gdal_rat.h +589 -0
  69. package/dist/prebuilt/wasm-wasm32-mt-release/include/gdal_relationship.h +380 -0
  70. package/dist/prebuilt/wasm-wasm32-mt-release/include/gdal_simplesurf.h +579 -0
  71. package/dist/prebuilt/wasm-wasm32-mt-release/include/gdal_thread_pool.h +42 -0
  72. package/dist/prebuilt/wasm-wasm32-mt-release/include/gdal_typetraits.h +517 -0
  73. package/dist/prebuilt/wasm-wasm32-mt-release/include/gdal_utils.h +350 -0
  74. package/dist/prebuilt/wasm-wasm32-mt-release/include/gdal_vector_cpp.h +31 -0
  75. package/dist/prebuilt/wasm-wasm32-mt-release/include/gdal_version.h +37 -0
  76. package/dist/prebuilt/wasm-wasm32-mt-release/include/gdal_vrt.h +88 -0
  77. package/dist/prebuilt/wasm-wasm32-mt-release/include/gdalalgorithm.h +19 -0
  78. package/dist/prebuilt/wasm-wasm32-mt-release/include/gdalalgorithm_c.h +292 -0
  79. package/dist/prebuilt/wasm-wasm32-mt-release/include/gdalalgorithm_cpp.h +3398 -0
  80. package/dist/prebuilt/wasm-wasm32-mt-release/include/gdalcachedpixelaccessor.h +446 -0
  81. package/dist/prebuilt/wasm-wasm32-mt-release/include/gdalgeorefpamdataset.h +72 -0
  82. package/dist/prebuilt/wasm-wasm32-mt-release/include/gdalgrid.h +102 -0
  83. package/dist/prebuilt/wasm-wasm32-mt-release/include/gdalgrid_priv.h +67 -0
  84. package/dist/prebuilt/wasm-wasm32-mt-release/include/gdaljp2abstractdataset.h +60 -0
  85. package/dist/prebuilt/wasm-wasm32-mt-release/include/gdaljp2metadata.h +236 -0
  86. package/dist/prebuilt/wasm-wasm32-mt-release/include/gdalpansharpen.h +260 -0
  87. package/dist/prebuilt/wasm-wasm32-mt-release/include/gdalsubdatasetinfo.h +104 -0
  88. package/dist/prebuilt/wasm-wasm32-mt-release/include/gdalwarper.h +644 -0
  89. package/dist/prebuilt/wasm-wasm32-mt-release/include/geoheif.h +58 -0
  90. package/dist/prebuilt/wasm-wasm32-mt-release/include/gnm.h +781 -0
  91. package/dist/prebuilt/wasm-wasm32-mt-release/include/gnm_api.h +99 -0
  92. package/dist/prebuilt/wasm-wasm32-mt-release/include/gnmgraph.h +257 -0
  93. package/dist/prebuilt/wasm-wasm32-mt-release/include/memdataset.h +385 -0
  94. package/dist/prebuilt/wasm-wasm32-mt-release/include/ogr_api.h +948 -0
  95. package/dist/prebuilt/wasm-wasm32-mt-release/include/ogr_core.h +1319 -0
  96. package/dist/prebuilt/wasm-wasm32-mt-release/include/ogr_feature.h +2136 -0
  97. package/dist/prebuilt/wasm-wasm32-mt-release/include/ogr_featurestyle.h +869 -0
  98. package/dist/prebuilt/wasm-wasm32-mt-release/include/ogr_geocoding.h +45 -0
  99. package/dist/prebuilt/wasm-wasm32-mt-release/include/ogr_geomcoordinateprecision.h +85 -0
  100. package/dist/prebuilt/wasm-wasm32-mt-release/include/ogr_geometry.h +4382 -0
  101. package/dist/prebuilt/wasm-wasm32-mt-release/include/ogr_p.h +330 -0
  102. package/dist/prebuilt/wasm-wasm32-mt-release/include/ogr_recordbatch.h +128 -0
  103. package/dist/prebuilt/wasm-wasm32-mt-release/include/ogr_refcountedptr.h +198 -0
  104. package/dist/prebuilt/wasm-wasm32-mt-release/include/ogr_spatialref.h +1122 -0
  105. package/dist/prebuilt/wasm-wasm32-mt-release/include/ogr_srs_api.h +1073 -0
  106. package/dist/prebuilt/wasm-wasm32-mt-release/include/ogr_swq.h +534 -0
  107. package/dist/prebuilt/wasm-wasm32-mt-release/include/ogrsf_frmts.h +803 -0
  108. package/dist/prebuilt/wasm-wasm32-mt-release/include/rawdataset.h +268 -0
  109. package/dist/prebuilt/wasm-wasm32-mt-release/include/vrtdataset.h +2595 -0
  110. package/dist/prebuilt/wasm-wasm32-mt-release/lib/cmake/gdal/3.20/FindLibLZMA.cmake +126 -0
  111. package/dist/prebuilt/wasm-wasm32-mt-release/lib/cmake/gdal/3.20/FindPostgreSQL.cmake +312 -0
  112. package/dist/prebuilt/wasm-wasm32-mt-release/lib/cmake/gdal/DefineFindPackage2.cmake +164 -0
  113. package/dist/prebuilt/wasm-wasm32-mt-release/lib/cmake/gdal/GDAL-targets-release.cmake +19 -0
  114. package/dist/prebuilt/wasm-wasm32-mt-release/lib/cmake/gdal/GDAL-targets.cmake +108 -0
  115. package/dist/prebuilt/wasm-wasm32-mt-release/lib/cmake/gdal/GDALConfig.cmake +35 -0
  116. package/dist/prebuilt/wasm-wasm32-mt-release/lib/cmake/gdal/GDALConfigVersion.cmake +65 -0
  117. package/dist/prebuilt/wasm-wasm32-mt-release/lib/cmake/gdal/GdalFindModulePath.cmake +13 -0
  118. package/dist/prebuilt/wasm-wasm32-mt-release/lib/cmake/gdal/packages/FindBRUNSLI.cmake +74 -0
  119. package/dist/prebuilt/wasm-wasm32-mt-release/lib/cmake/gdal/packages/FindBlosc.cmake +74 -0
  120. package/dist/prebuilt/wasm-wasm32-mt-release/lib/cmake/gdal/packages/FindCURL.cmake +235 -0
  121. package/dist/prebuilt/wasm-wasm32-mt-release/lib/cmake/gdal/packages/FindCryptoPP.cmake +91 -0
  122. package/dist/prebuilt/wasm-wasm32-mt-release/lib/cmake/gdal/packages/FindDeflate.cmake +113 -0
  123. package/dist/prebuilt/wasm-wasm32-mt-release/lib/cmake/gdal/packages/FindECW.cmake +172 -0
  124. package/dist/prebuilt/wasm-wasm32-mt-release/lib/cmake/gdal/packages/FindEXPAT.cmake +156 -0
  125. package/dist/prebuilt/wasm-wasm32-mt-release/lib/cmake/gdal/packages/FindExprTk.cmake +93 -0
  126. package/dist/prebuilt/wasm-wasm32-mt-release/lib/cmake/gdal/packages/FindFYBA.cmake +38 -0
  127. package/dist/prebuilt/wasm-wasm32-mt-release/lib/cmake/gdal/packages/FindFileGDB.cmake +93 -0
  128. package/dist/prebuilt/wasm-wasm32-mt-release/lib/cmake/gdal/packages/FindFreeXL.cmake +67 -0
  129. package/dist/prebuilt/wasm-wasm32-mt-release/lib/cmake/gdal/packages/FindGEOS.cmake +49 -0
  130. package/dist/prebuilt/wasm-wasm32-mt-release/lib/cmake/gdal/packages/FindGIF.cmake +97 -0
  131. package/dist/prebuilt/wasm-wasm32-mt-release/lib/cmake/gdal/packages/FindGeoTIFF.cmake +104 -0
  132. package/dist/prebuilt/wasm-wasm32-mt-release/lib/cmake/gdal/packages/FindHDF4.cmake +133 -0
  133. package/dist/prebuilt/wasm-wasm32-mt-release/lib/cmake/gdal/packages/FindHDFS.cmake +54 -0
  134. package/dist/prebuilt/wasm-wasm32-mt-release/lib/cmake/gdal/packages/FindIDB.cmake +45 -0
  135. package/dist/prebuilt/wasm-wasm32-mt-release/lib/cmake/gdal/packages/FindIconv.cmake +145 -0
  136. package/dist/prebuilt/wasm-wasm32-mt-release/lib/cmake/gdal/packages/FindJSONC.cmake +48 -0
  137. package/dist/prebuilt/wasm-wasm32-mt-release/lib/cmake/gdal/packages/FindKDU.cmake +105 -0
  138. package/dist/prebuilt/wasm-wasm32-mt-release/lib/cmake/gdal/packages/FindLERC.cmake +46 -0
  139. package/dist/prebuilt/wasm-wasm32-mt-release/lib/cmake/gdal/packages/FindLZ4.cmake +130 -0
  140. package/dist/prebuilt/wasm-wasm32-mt-release/lib/cmake/gdal/packages/FindLibKML.cmake +134 -0
  141. package/dist/prebuilt/wasm-wasm32-mt-release/lib/cmake/gdal/packages/FindMONGOCXX.cmake +56 -0
  142. package/dist/prebuilt/wasm-wasm32-mt-release/lib/cmake/gdal/packages/FindMRSID.cmake +66 -0
  143. package/dist/prebuilt/wasm-wasm32-mt-release/lib/cmake/gdal/packages/FindMSSQL_NCLI.cmake +86 -0
  144. package/dist/prebuilt/wasm-wasm32-mt-release/lib/cmake/gdal/packages/FindMSSQL_ODBC.cmake +113 -0
  145. package/dist/prebuilt/wasm-wasm32-mt-release/lib/cmake/gdal/packages/FindMySQL.cmake +83 -0
  146. package/dist/prebuilt/wasm-wasm32-mt-release/lib/cmake/gdal/packages/FindNetCDF.cmake +209 -0
  147. package/dist/prebuilt/wasm-wasm32-mt-release/lib/cmake/gdal/packages/FindODBC.cmake +259 -0
  148. package/dist/prebuilt/wasm-wasm32-mt-release/lib/cmake/gdal/packages/FindODBCCPP.cmake +72 -0
  149. package/dist/prebuilt/wasm-wasm32-mt-release/lib/cmake/gdal/packages/FindOpenCAD.cmake +97 -0
  150. package/dist/prebuilt/wasm-wasm32-mt-release/lib/cmake/gdal/packages/FindOpenEXR.cmake +125 -0
  151. package/dist/prebuilt/wasm-wasm32-mt-release/lib/cmake/gdal/packages/FindOpenJPEG.cmake +124 -0
  152. package/dist/prebuilt/wasm-wasm32-mt-release/lib/cmake/gdal/packages/FindOracle.cmake +230 -0
  153. package/dist/prebuilt/wasm-wasm32-mt-release/lib/cmake/gdal/packages/FindPCRE.cmake +28 -0
  154. package/dist/prebuilt/wasm-wasm32-mt-release/lib/cmake/gdal/packages/FindPCRE2.cmake +27 -0
  155. package/dist/prebuilt/wasm-wasm32-mt-release/lib/cmake/gdal/packages/FindPROJ.cmake +91 -0
  156. package/dist/prebuilt/wasm-wasm32-mt-release/lib/cmake/gdal/packages/FindPodofo.cmake +94 -0
  157. package/dist/prebuilt/wasm-wasm32-mt-release/lib/cmake/gdal/packages/FindPoppler.cmake +182 -0
  158. package/dist/prebuilt/wasm-wasm32-mt-release/lib/cmake/gdal/packages/FindQHULL.cmake +44 -0
  159. package/dist/prebuilt/wasm-wasm32-mt-release/lib/cmake/gdal/packages/FindRASTERLITE2.cmake +85 -0
  160. package/dist/prebuilt/wasm-wasm32-mt-release/lib/cmake/gdal/packages/FindSFCGAL.cmake +87 -0
  161. package/dist/prebuilt/wasm-wasm32-mt-release/lib/cmake/gdal/packages/FindSPATIALITE.cmake +74 -0
  162. package/dist/prebuilt/wasm-wasm32-mt-release/lib/cmake/gdal/packages/FindSQLite3.cmake +208 -0
  163. package/dist/prebuilt/wasm-wasm32-mt-release/lib/cmake/gdal/packages/FindShapelib.cmake +69 -0
  164. package/dist/prebuilt/wasm-wasm32-mt-release/lib/cmake/gdal/packages/FindSpatialindex.cmake +18 -0
  165. package/dist/prebuilt/wasm-wasm32-mt-release/lib/cmake/gdal/packages/FindTEIGHA.cmake +242 -0
  166. package/dist/prebuilt/wasm-wasm32-mt-release/lib/cmake/gdal/packages/FindWebP.cmake +38 -0
  167. package/dist/prebuilt/wasm-wasm32-mt-release/lib/cmake/gdal/packages/FindZSTD.cmake +95 -0
  168. package/dist/prebuilt/wasm-wasm32-mt-release/lib/cmake/gdal/packages/Findmuparser.cmake +53 -0
  169. package/dist/prebuilt/wasm-wasm32-mt-release/lib/cmake/gdal/thirdparty/DotnetImports.props.in +7 -0
  170. package/dist/prebuilt/wasm-wasm32-mt-release/lib/cmake/gdal/thirdparty/FindCSharp.cmake +72 -0
  171. package/dist/prebuilt/wasm-wasm32-mt-release/lib/cmake/gdal/thirdparty/FindDotnet.cmake +496 -0
  172. package/dist/prebuilt/wasm-wasm32-mt-release/lib/cmake/gdal/thirdparty/FindInt128.cmake +65 -0
  173. package/dist/prebuilt/wasm-wasm32-mt-release/lib/cmake/gdal/thirdparty/FindMono.cmake +163 -0
  174. package/dist/prebuilt/wasm-wasm32-mt-release/lib/cmake/gdal/thirdparty/GetGitHeadDate.cmake +33 -0
  175. package/dist/prebuilt/wasm-wasm32-mt-release/lib/cmake/gdal/thirdparty/GetGitRevisionDescription.cmake +181 -0
  176. package/dist/prebuilt/wasm-wasm32-mt-release/lib/cmake/gdal/thirdparty/GetGitRevisionDescription.cmake.in +50 -0
  177. package/dist/prebuilt/wasm-wasm32-mt-release/lib/cmake/gdal/thirdparty/OSXInstallDirs.cmake +214 -0
  178. package/dist/prebuilt/wasm-wasm32-mt-release/lib/cmake/gdal/thirdparty/SystemSummary.cmake +89 -0
  179. package/dist/prebuilt/wasm-wasm32-mt-release/lib/gdalplugins/drivers.ini +285 -0
  180. package/dist/prebuilt/wasm-wasm32-mt-release/lib/libgdal.a +0 -0
  181. package/dist/prebuilt/wasm-wasm32-mt-release/lib/pkgconfig/gdal.pc +17 -0
  182. package/dist/prebuilt/wasm-wasm32-mt-release/share/gdal/GDALLogoBW.svg +138 -0
  183. package/dist/prebuilt/wasm-wasm32-mt-release/share/gdal/GDALLogoColor.svg +126 -0
  184. package/dist/prebuilt/wasm-wasm32-mt-release/share/gdal/GDALLogoGS.svg +126 -0
  185. package/dist/prebuilt/wasm-wasm32-mt-release/share/gdal/LICENSE.TXT +467 -0
  186. package/dist/prebuilt/wasm-wasm32-mt-release/share/gdal/MM_m_idofic.csv +320 -0
  187. package/dist/prebuilt/wasm-wasm32-mt-release/share/gdal/cubewerx_extra.wkt +48 -0
  188. package/dist/prebuilt/wasm-wasm32-mt-release/share/gdal/default.rsc +0 -0
  189. package/dist/prebuilt/wasm-wasm32-mt-release/share/gdal/ecw_cs.wkt +1453 -0
  190. package/dist/prebuilt/wasm-wasm32-mt-release/share/gdal/eedaconf.json +23 -0
  191. package/dist/prebuilt/wasm-wasm32-mt-release/share/gdal/epsg.wkt +1 -0
  192. package/dist/prebuilt/wasm-wasm32-mt-release/share/gdal/esri_StatePlane_extra.wkt +631 -0
  193. package/dist/prebuilt/wasm-wasm32-mt-release/share/gdal/gdal_algorithm.schema.json +240 -0
  194. package/dist/prebuilt/wasm-wasm32-mt-release/share/gdal/gdalg.schema.json +36 -0
  195. package/dist/prebuilt/wasm-wasm32-mt-release/share/gdal/gdalicon.png +0 -0
  196. package/dist/prebuilt/wasm-wasm32-mt-release/share/gdal/gdalinfo_output.schema.json +390 -0
  197. package/dist/prebuilt/wasm-wasm32-mt-release/share/gdal/gdalmdiminfo_output.schema.json +393 -0
  198. package/dist/prebuilt/wasm-wasm32-mt-release/share/gdal/gdaltileindex.xsd +264 -0
  199. package/dist/prebuilt/wasm-wasm32-mt-release/share/gdal/gdalvrt.xsd +948 -0
  200. package/dist/prebuilt/wasm-wasm32-mt-release/share/gdal/gfs.xsd +246 -0
  201. package/dist/prebuilt/wasm-wasm32-mt-release/share/gdal/gml_registry.xml +117 -0
  202. package/dist/prebuilt/wasm-wasm32-mt-release/share/gdal/gml_registry.xsd +66 -0
  203. package/dist/prebuilt/wasm-wasm32-mt-release/share/gdal/grib2_center.csv +251 -0
  204. package/dist/prebuilt/wasm-wasm32-mt-release/share/gdal/grib2_process.csv +102 -0
  205. package/dist/prebuilt/wasm-wasm32-mt-release/share/gdal/grib2_subcenter.csv +63 -0
  206. package/dist/prebuilt/wasm-wasm32-mt-release/share/gdal/grib2_table_4_2_0_0.csv +261 -0
  207. package/dist/prebuilt/wasm-wasm32-mt-release/share/gdal/grib2_table_4_2_0_1.csv +261 -0
  208. package/dist/prebuilt/wasm-wasm32-mt-release/share/gdal/grib2_table_4_2_0_13.csv +261 -0
  209. package/dist/prebuilt/wasm-wasm32-mt-release/share/gdal/grib2_table_4_2_0_14.csv +261 -0
  210. package/dist/prebuilt/wasm-wasm32-mt-release/share/gdal/grib2_table_4_2_0_15.csv +261 -0
  211. package/dist/prebuilt/wasm-wasm32-mt-release/share/gdal/grib2_table_4_2_0_16.csv +261 -0
  212. package/dist/prebuilt/wasm-wasm32-mt-release/share/gdal/grib2_table_4_2_0_17.csv +261 -0
  213. package/dist/prebuilt/wasm-wasm32-mt-release/share/gdal/grib2_table_4_2_0_18.csv +261 -0
  214. package/dist/prebuilt/wasm-wasm32-mt-release/share/gdal/grib2_table_4_2_0_19.csv +261 -0
  215. package/dist/prebuilt/wasm-wasm32-mt-release/share/gdal/grib2_table_4_2_0_190.csv +261 -0
  216. package/dist/prebuilt/wasm-wasm32-mt-release/share/gdal/grib2_table_4_2_0_191.csv +261 -0
  217. package/dist/prebuilt/wasm-wasm32-mt-release/share/gdal/grib2_table_4_2_0_2.csv +261 -0
  218. package/dist/prebuilt/wasm-wasm32-mt-release/share/gdal/grib2_table_4_2_0_20.csv +261 -0
  219. package/dist/prebuilt/wasm-wasm32-mt-release/share/gdal/grib2_table_4_2_0_21.csv +261 -0
  220. package/dist/prebuilt/wasm-wasm32-mt-release/share/gdal/grib2_table_4_2_0_22.csv +261 -0
  221. package/dist/prebuilt/wasm-wasm32-mt-release/share/gdal/grib2_table_4_2_0_3.csv +261 -0
  222. package/dist/prebuilt/wasm-wasm32-mt-release/share/gdal/grib2_table_4_2_0_4.csv +261 -0
  223. package/dist/prebuilt/wasm-wasm32-mt-release/share/gdal/grib2_table_4_2_0_5.csv +261 -0
  224. package/dist/prebuilt/wasm-wasm32-mt-release/share/gdal/grib2_table_4_2_0_6.csv +261 -0
  225. package/dist/prebuilt/wasm-wasm32-mt-release/share/gdal/grib2_table_4_2_0_7.csv +261 -0
  226. package/dist/prebuilt/wasm-wasm32-mt-release/share/gdal/grib2_table_4_2_10_0.csv +261 -0
  227. package/dist/prebuilt/wasm-wasm32-mt-release/share/gdal/grib2_table_4_2_10_1.csv +261 -0
  228. package/dist/prebuilt/wasm-wasm32-mt-release/share/gdal/grib2_table_4_2_10_191.csv +261 -0
  229. package/dist/prebuilt/wasm-wasm32-mt-release/share/gdal/grib2_table_4_2_10_2.csv +261 -0
  230. package/dist/prebuilt/wasm-wasm32-mt-release/share/gdal/grib2_table_4_2_10_3.csv +261 -0
  231. package/dist/prebuilt/wasm-wasm32-mt-release/share/gdal/grib2_table_4_2_10_4.csv +261 -0
  232. package/dist/prebuilt/wasm-wasm32-mt-release/share/gdal/grib2_table_4_2_1_0.csv +261 -0
  233. package/dist/prebuilt/wasm-wasm32-mt-release/share/gdal/grib2_table_4_2_1_1.csv +261 -0
  234. package/dist/prebuilt/wasm-wasm32-mt-release/share/gdal/grib2_table_4_2_1_2.csv +261 -0
  235. package/dist/prebuilt/wasm-wasm32-mt-release/share/gdal/grib2_table_4_2_20_0.csv +261 -0
  236. package/dist/prebuilt/wasm-wasm32-mt-release/share/gdal/grib2_table_4_2_20_1.csv +261 -0
  237. package/dist/prebuilt/wasm-wasm32-mt-release/share/gdal/grib2_table_4_2_20_2.csv +261 -0
  238. package/dist/prebuilt/wasm-wasm32-mt-release/share/gdal/grib2_table_4_2_20_3.csv +261 -0
  239. package/dist/prebuilt/wasm-wasm32-mt-release/share/gdal/grib2_table_4_2_2_0.csv +261 -0
  240. package/dist/prebuilt/wasm-wasm32-mt-release/share/gdal/grib2_table_4_2_2_3.csv +261 -0
  241. package/dist/prebuilt/wasm-wasm32-mt-release/share/gdal/grib2_table_4_2_2_4.csv +261 -0
  242. package/dist/prebuilt/wasm-wasm32-mt-release/share/gdal/grib2_table_4_2_2_5.csv +261 -0
  243. package/dist/prebuilt/wasm-wasm32-mt-release/share/gdal/grib2_table_4_2_2_6.csv +261 -0
  244. package/dist/prebuilt/wasm-wasm32-mt-release/share/gdal/grib2_table_4_2_2_7.csv +261 -0
  245. package/dist/prebuilt/wasm-wasm32-mt-release/share/gdal/grib2_table_4_2_3_0.csv +261 -0
  246. package/dist/prebuilt/wasm-wasm32-mt-release/share/gdal/grib2_table_4_2_3_1.csv +261 -0
  247. package/dist/prebuilt/wasm-wasm32-mt-release/share/gdal/grib2_table_4_2_3_2.csv +243 -0
  248. package/dist/prebuilt/wasm-wasm32-mt-release/share/gdal/grib2_table_4_2_3_3.csv +261 -0
  249. package/dist/prebuilt/wasm-wasm32-mt-release/share/gdal/grib2_table_4_2_3_4.csv +261 -0
  250. package/dist/prebuilt/wasm-wasm32-mt-release/share/gdal/grib2_table_4_2_3_5.csv +261 -0
  251. package/dist/prebuilt/wasm-wasm32-mt-release/share/gdal/grib2_table_4_2_3_6.csv +261 -0
  252. package/dist/prebuilt/wasm-wasm32-mt-release/share/gdal/grib2_table_4_2_4_0.csv +261 -0
  253. package/dist/prebuilt/wasm-wasm32-mt-release/share/gdal/grib2_table_4_2_4_1.csv +261 -0
  254. package/dist/prebuilt/wasm-wasm32-mt-release/share/gdal/grib2_table_4_2_4_10.csv +261 -0
  255. package/dist/prebuilt/wasm-wasm32-mt-release/share/gdal/grib2_table_4_2_4_2.csv +261 -0
  256. package/dist/prebuilt/wasm-wasm32-mt-release/share/gdal/grib2_table_4_2_4_3.csv +261 -0
  257. package/dist/prebuilt/wasm-wasm32-mt-release/share/gdal/grib2_table_4_2_4_4.csv +261 -0
  258. package/dist/prebuilt/wasm-wasm32-mt-release/share/gdal/grib2_table_4_2_4_5.csv +261 -0
  259. package/dist/prebuilt/wasm-wasm32-mt-release/share/gdal/grib2_table_4_2_4_6.csv +261 -0
  260. package/dist/prebuilt/wasm-wasm32-mt-release/share/gdal/grib2_table_4_2_4_7.csv +261 -0
  261. package/dist/prebuilt/wasm-wasm32-mt-release/share/gdal/grib2_table_4_2_4_8.csv +261 -0
  262. package/dist/prebuilt/wasm-wasm32-mt-release/share/gdal/grib2_table_4_2_4_9.csv +261 -0
  263. package/dist/prebuilt/wasm-wasm32-mt-release/share/gdal/grib2_table_4_2_local_Canada.csv +5 -0
  264. package/dist/prebuilt/wasm-wasm32-mt-release/share/gdal/grib2_table_4_2_local_HPC.csv +2 -0
  265. package/dist/prebuilt/wasm-wasm32-mt-release/share/gdal/grib2_table_4_2_local_MRMS.csv +175 -0
  266. package/dist/prebuilt/wasm-wasm32-mt-release/share/gdal/grib2_table_4_2_local_NCEP.csv +401 -0
  267. package/dist/prebuilt/wasm-wasm32-mt-release/share/gdal/grib2_table_4_2_local_NDFD.csv +38 -0
  268. package/dist/prebuilt/wasm-wasm32-mt-release/share/gdal/grib2_table_4_2_local_index.csv +7 -0
  269. package/dist/prebuilt/wasm-wasm32-mt-release/share/gdal/grib2_table_4_5.csv +261 -0
  270. package/dist/prebuilt/wasm-wasm32-mt-release/share/gdal/grib2_table_versions.csv +3 -0
  271. package/dist/prebuilt/wasm-wasm32-mt-release/share/gdal/gt_datum.csv +229 -0
  272. package/dist/prebuilt/wasm-wasm32-mt-release/share/gdal/gt_ellips.csv +24 -0
  273. package/dist/prebuilt/wasm-wasm32-mt-release/share/gdal/header.dxf +1138 -0
  274. package/dist/prebuilt/wasm-wasm32-mt-release/share/gdal/inspire_cp_BasicPropertyUnit.gfs +57 -0
  275. package/dist/prebuilt/wasm-wasm32-mt-release/share/gdal/inspire_cp_CadastralBoundary.gfs +60 -0
  276. package/dist/prebuilt/wasm-wasm32-mt-release/share/gdal/inspire_cp_CadastralParcel.gfs +81 -0
  277. package/dist/prebuilt/wasm-wasm32-mt-release/share/gdal/inspire_cp_CadastralZoning.gfs +161 -0
  278. package/dist/prebuilt/wasm-wasm32-mt-release/share/gdal/jpfgdgml_AdmArea.gfs +59 -0
  279. package/dist/prebuilt/wasm-wasm32-mt-release/share/gdal/jpfgdgml_AdmBdry.gfs +49 -0
  280. package/dist/prebuilt/wasm-wasm32-mt-release/share/gdal/jpfgdgml_AdmPt.gfs +59 -0
  281. package/dist/prebuilt/wasm-wasm32-mt-release/share/gdal/jpfgdgml_BldA.gfs +54 -0
  282. package/dist/prebuilt/wasm-wasm32-mt-release/share/gdal/jpfgdgml_BldL.gfs +54 -0
  283. package/dist/prebuilt/wasm-wasm32-mt-release/share/gdal/jpfgdgml_Cntr.gfs +54 -0
  284. package/dist/prebuilt/wasm-wasm32-mt-release/share/gdal/jpfgdgml_CommBdry.gfs +49 -0
  285. package/dist/prebuilt/wasm-wasm32-mt-release/share/gdal/jpfgdgml_CommPt.gfs +59 -0
  286. package/dist/prebuilt/wasm-wasm32-mt-release/share/gdal/jpfgdgml_Cstline.gfs +54 -0
  287. package/dist/prebuilt/wasm-wasm32-mt-release/share/gdal/jpfgdgml_ElevPt.gfs +54 -0
  288. package/dist/prebuilt/wasm-wasm32-mt-release/share/gdal/jpfgdgml_GCP.gfs +94 -0
  289. package/dist/prebuilt/wasm-wasm32-mt-release/share/gdal/jpfgdgml_LeveeEdge.gfs +49 -0
  290. package/dist/prebuilt/wasm-wasm32-mt-release/share/gdal/jpfgdgml_RailCL.gfs +54 -0
  291. package/dist/prebuilt/wasm-wasm32-mt-release/share/gdal/jpfgdgml_RdASL.gfs +44 -0
  292. package/dist/prebuilt/wasm-wasm32-mt-release/share/gdal/jpfgdgml_RdArea.gfs +54 -0
  293. package/dist/prebuilt/wasm-wasm32-mt-release/share/gdal/jpfgdgml_RdCompt.gfs +59 -0
  294. package/dist/prebuilt/wasm-wasm32-mt-release/share/gdal/jpfgdgml_RdEdg.gfs +59 -0
  295. package/dist/prebuilt/wasm-wasm32-mt-release/share/gdal/jpfgdgml_RdMgtBdry.gfs +49 -0
  296. package/dist/prebuilt/wasm-wasm32-mt-release/share/gdal/jpfgdgml_RdSgmtA.gfs +59 -0
  297. package/dist/prebuilt/wasm-wasm32-mt-release/share/gdal/jpfgdgml_RvrMgtBdry.gfs +49 -0
  298. package/dist/prebuilt/wasm-wasm32-mt-release/share/gdal/jpfgdgml_SBAPt.gfs +49 -0
  299. package/dist/prebuilt/wasm-wasm32-mt-release/share/gdal/jpfgdgml_SBArea.gfs +54 -0
  300. package/dist/prebuilt/wasm-wasm32-mt-release/share/gdal/jpfgdgml_SBBdry.gfs +44 -0
  301. package/dist/prebuilt/wasm-wasm32-mt-release/share/gdal/jpfgdgml_WA.gfs +54 -0
  302. package/dist/prebuilt/wasm-wasm32-mt-release/share/gdal/jpfgdgml_WL.gfs +54 -0
  303. package/dist/prebuilt/wasm-wasm32-mt-release/share/gdal/jpfgdgml_WStrA.gfs +54 -0
  304. package/dist/prebuilt/wasm-wasm32-mt-release/share/gdal/jpfgdgml_WStrL.gfs +54 -0
  305. package/dist/prebuilt/wasm-wasm32-mt-release/share/gdal/leaflet_template.html +102 -0
  306. package/dist/prebuilt/wasm-wasm32-mt-release/share/gdal/nitf_spec.xml +3508 -0
  307. package/dist/prebuilt/wasm-wasm32-mt-release/share/gdal/nitf_spec.xsd +178 -0
  308. package/dist/prebuilt/wasm-wasm32-mt-release/share/gdal/ogr_fields_override.schema.json +278 -0
  309. package/dist/prebuilt/wasm-wasm32-mt-release/share/gdal/ogrinfo_output.schema.json +532 -0
  310. package/dist/prebuilt/wasm-wasm32-mt-release/share/gdal/ogrvrt.xsd +526 -0
  311. package/dist/prebuilt/wasm-wasm32-mt-release/share/gdal/osmconf.ini +134 -0
  312. package/dist/prebuilt/wasm-wasm32-mt-release/share/gdal/ozi_datum.csv +131 -0
  313. package/dist/prebuilt/wasm-wasm32-mt-release/share/gdal/ozi_ellips.csv +35 -0
  314. package/dist/prebuilt/wasm-wasm32-mt-release/share/gdal/pci_datum.txt +530 -0
  315. package/dist/prebuilt/wasm-wasm32-mt-release/share/gdal/pci_ellips.txt +129 -0
  316. package/dist/prebuilt/wasm-wasm32-mt-release/share/gdal/pdfcomposition.xsd +703 -0
  317. package/dist/prebuilt/wasm-wasm32-mt-release/share/gdal/plscenesconf.json +1985 -0
  318. package/dist/prebuilt/wasm-wasm32-mt-release/share/gdal/ruian_vf_ob_v1.gfs +1455 -0
  319. package/dist/prebuilt/wasm-wasm32-mt-release/share/gdal/ruian_vf_st_uvoh_v1.gfs +86 -0
  320. package/dist/prebuilt/wasm-wasm32-mt-release/share/gdal/ruian_vf_st_v1.gfs +1489 -0
  321. package/dist/prebuilt/wasm-wasm32-mt-release/share/gdal/ruian_vf_v1.gfs +2126 -0
  322. package/dist/prebuilt/wasm-wasm32-mt-release/share/gdal/s57agencies.csv +249 -0
  323. package/dist/prebuilt/wasm-wasm32-mt-release/share/gdal/s57attributes.csv +484 -0
  324. package/dist/prebuilt/wasm-wasm32-mt-release/share/gdal/s57expectedinput.csv +1008 -0
  325. package/dist/prebuilt/wasm-wasm32-mt-release/share/gdal/s57objectclasses.csv +287 -0
  326. package/dist/prebuilt/wasm-wasm32-mt-release/share/gdal/seed_2d.dgn +0 -0
  327. package/dist/prebuilt/wasm-wasm32-mt-release/share/gdal/seed_3d.dgn +0 -0
  328. package/dist/prebuilt/wasm-wasm32-mt-release/share/gdal/stateplane.csv +259 -0
  329. package/dist/prebuilt/wasm-wasm32-mt-release/share/gdal/template_tiles.mapml +26 -0
  330. package/dist/prebuilt/wasm-wasm32-mt-release/share/gdal/tms_LINZAntarticaMapTileGrid.json +190 -0
  331. package/dist/prebuilt/wasm-wasm32-mt-release/share/gdal/tms_MapML_APSTILE.json +268 -0
  332. package/dist/prebuilt/wasm-wasm32-mt-release/share/gdal/tms_MapML_CBMTILE.json +346 -0
  333. package/dist/prebuilt/wasm-wasm32-mt-release/share/gdal/tms_NZTM2000.json +243 -0
  334. package/dist/prebuilt/wasm-wasm32-mt-release/share/gdal/trailer.dxf +434 -0
  335. package/dist/prebuilt/wasm-wasm32-mt-release/share/gdal/vdv452.xml +349 -0
  336. package/dist/prebuilt/wasm-wasm32-mt-release/share/gdal/vdv452.xsd +45 -0
  337. package/dist/prebuilt/wasm-wasm32-st-release/crossbind-emccflags.fingerprint +1 -0
  338. package/dist/prebuilt/wasm-wasm32-st-release/include/cpl_atomic_ops.h +89 -0
  339. package/dist/prebuilt/wasm-wasm32-st-release/include/cpl_auto_close.h +72 -0
  340. package/dist/prebuilt/wasm-wasm32-st-release/include/cpl_compressor.h +112 -0
  341. package/dist/prebuilt/wasm-wasm32-st-release/include/cpl_config.h +203 -0
  342. package/dist/prebuilt/wasm-wasm32-st-release/include/cpl_config_extras.h +33 -0
  343. package/dist/prebuilt/wasm-wasm32-st-release/include/cpl_conv.h +528 -0
  344. package/dist/prebuilt/wasm-wasm32-st-release/include/cpl_csv.h +70 -0
  345. package/dist/prebuilt/wasm-wasm32-st-release/include/cpl_error.h +505 -0
  346. package/dist/prebuilt/wasm-wasm32-st-release/include/cpl_float.h +730 -0
  347. package/dist/prebuilt/wasm-wasm32-st-release/include/cpl_hash_set.h +82 -0
  348. package/dist/prebuilt/wasm-wasm32-st-release/include/cpl_http.h +317 -0
  349. package/dist/prebuilt/wasm-wasm32-st-release/include/cpl_json.h +398 -0
  350. package/dist/prebuilt/wasm-wasm32-st-release/include/cpl_list.h +58 -0
  351. package/dist/prebuilt/wasm-wasm32-st-release/include/cpl_minixml.h +210 -0
  352. package/dist/prebuilt/wasm-wasm32-st-release/include/cpl_multiproc.h +241 -0
  353. package/dist/prebuilt/wasm-wasm32-st-release/include/cpl_port.h +1266 -0
  354. package/dist/prebuilt/wasm-wasm32-st-release/include/cpl_progress.h +48 -0
  355. package/dist/prebuilt/wasm-wasm32-st-release/include/cpl_quad_tree.h +104 -0
  356. package/dist/prebuilt/wasm-wasm32-st-release/include/cpl_spawn.h +59 -0
  357. package/dist/prebuilt/wasm-wasm32-st-release/include/cpl_string.h +985 -0
  358. package/dist/prebuilt/wasm-wasm32-st-release/include/cpl_time.h +28 -0
  359. package/dist/prebuilt/wasm-wasm32-st-release/include/cpl_virtualmem.h +347 -0
  360. package/dist/prebuilt/wasm-wasm32-st-release/include/cpl_vsi.h +885 -0
  361. package/dist/prebuilt/wasm-wasm32-st-release/include/cpl_vsi_error.h +91 -0
  362. package/dist/prebuilt/wasm-wasm32-st-release/include/cpl_vsi_virtual.h +838 -0
  363. package/dist/prebuilt/wasm-wasm32-st-release/include/cplkeywordparser.h +60 -0
  364. package/dist/prebuilt/wasm-wasm32-st-release/include/gdal.h +3013 -0
  365. package/dist/prebuilt/wasm-wasm32-st-release/include/gdal_adbc.h +46 -0
  366. package/dist/prebuilt/wasm-wasm32-st-release/include/gdal_alg.h +753 -0
  367. package/dist/prebuilt/wasm-wasm32-st-release/include/gdal_alg_priv.h +444 -0
  368. package/dist/prebuilt/wasm-wasm32-st-release/include/gdal_asyncreader.h +177 -0
  369. package/dist/prebuilt/wasm-wasm32-st-release/include/gdal_colortable.h +85 -0
  370. package/dist/prebuilt/wasm-wasm32-st-release/include/gdal_computedrasterband.h +334 -0
  371. package/dist/prebuilt/wasm-wasm32-st-release/include/gdal_cpp_functions.h +414 -0
  372. package/dist/prebuilt/wasm-wasm32-st-release/include/gdal_csv.h +24 -0
  373. package/dist/prebuilt/wasm-wasm32-st-release/include/gdal_dataset.h +959 -0
  374. package/dist/prebuilt/wasm-wasm32-st-release/include/gdal_defaultoverviews.h +133 -0
  375. package/dist/prebuilt/wasm-wasm32-st-release/include/gdal_driver.h +348 -0
  376. package/dist/prebuilt/wasm-wasm32-st-release/include/gdal_drivermanager.h +115 -0
  377. package/dist/prebuilt/wasm-wasm32-st-release/include/gdal_frmts.h +230 -0
  378. package/dist/prebuilt/wasm-wasm32-st-release/include/gdal_fwd.h +219 -0
  379. package/dist/prebuilt/wasm-wasm32-st-release/include/gdal_gcp.h +140 -0
  380. package/dist/prebuilt/wasm-wasm32-st-release/include/gdal_geotransform.h +251 -0
  381. package/dist/prebuilt/wasm-wasm32-st-release/include/gdal_majorobject.h +102 -0
  382. package/dist/prebuilt/wasm-wasm32-st-release/include/gdal_maskbands.h +170 -0
  383. package/dist/prebuilt/wasm-wasm32-st-release/include/gdal_mdreader.h +240 -0
  384. package/dist/prebuilt/wasm-wasm32-st-release/include/gdal_mem.h +32 -0
  385. package/dist/prebuilt/wasm-wasm32-st-release/include/gdal_minmax_element.hpp +1489 -0
  386. package/dist/prebuilt/wasm-wasm32-st-release/include/gdal_multidim.h +1356 -0
  387. package/dist/prebuilt/wasm-wasm32-st-release/include/gdal_multidim_cpp.h +33 -0
  388. package/dist/prebuilt/wasm-wasm32-st-release/include/gdal_multidomainmetadata.h +91 -0
  389. package/dist/prebuilt/wasm-wasm32-st-release/include/gdal_openinfo.h +94 -0
  390. package/dist/prebuilt/wasm-wasm32-st-release/include/gdal_pam.h +400 -0
  391. package/dist/prebuilt/wasm-wasm32-st-release/include/gdal_pam_multidim.h +114 -0
  392. package/dist/prebuilt/wasm-wasm32-st-release/include/gdal_priv.h +69 -0
  393. package/dist/prebuilt/wasm-wasm32-st-release/include/gdal_priv_templates.hpp +1516 -0
  394. package/dist/prebuilt/wasm-wasm32-st-release/include/gdal_proxy.h +475 -0
  395. package/dist/prebuilt/wasm-wasm32-st-release/include/gdal_raster_cpp.h +46 -0
  396. package/dist/prebuilt/wasm-wasm32-st-release/include/gdal_rasterband.h +779 -0
  397. package/dist/prebuilt/wasm-wasm32-st-release/include/gdal_rasterblock.h +184 -0
  398. package/dist/prebuilt/wasm-wasm32-st-release/include/gdal_rat.h +589 -0
  399. package/dist/prebuilt/wasm-wasm32-st-release/include/gdal_relationship.h +380 -0
  400. package/dist/prebuilt/wasm-wasm32-st-release/include/gdal_simplesurf.h +579 -0
  401. package/dist/prebuilt/wasm-wasm32-st-release/include/gdal_thread_pool.h +42 -0
  402. package/dist/prebuilt/wasm-wasm32-st-release/include/gdal_typetraits.h +517 -0
  403. package/dist/prebuilt/wasm-wasm32-st-release/include/gdal_utils.h +350 -0
  404. package/dist/prebuilt/wasm-wasm32-st-release/include/gdal_vector_cpp.h +31 -0
  405. package/dist/prebuilt/wasm-wasm32-st-release/include/gdal_version.h +37 -0
  406. package/dist/prebuilt/wasm-wasm32-st-release/include/gdal_vrt.h +88 -0
  407. package/dist/prebuilt/wasm-wasm32-st-release/include/gdalalgorithm.h +19 -0
  408. package/dist/prebuilt/wasm-wasm32-st-release/include/gdalalgorithm_c.h +292 -0
  409. package/dist/prebuilt/wasm-wasm32-st-release/include/gdalalgorithm_cpp.h +3398 -0
  410. package/dist/prebuilt/wasm-wasm32-st-release/include/gdalcachedpixelaccessor.h +446 -0
  411. package/dist/prebuilt/wasm-wasm32-st-release/include/gdalgeorefpamdataset.h +72 -0
  412. package/dist/prebuilt/wasm-wasm32-st-release/include/gdalgrid.h +102 -0
  413. package/dist/prebuilt/wasm-wasm32-st-release/include/gdalgrid_priv.h +67 -0
  414. package/dist/prebuilt/wasm-wasm32-st-release/include/gdaljp2abstractdataset.h +60 -0
  415. package/dist/prebuilt/wasm-wasm32-st-release/include/gdaljp2metadata.h +236 -0
  416. package/dist/prebuilt/wasm-wasm32-st-release/include/gdalpansharpen.h +260 -0
  417. package/dist/prebuilt/wasm-wasm32-st-release/include/gdalsubdatasetinfo.h +104 -0
  418. package/dist/prebuilt/wasm-wasm32-st-release/include/gdalwarper.h +644 -0
  419. package/dist/prebuilt/wasm-wasm32-st-release/include/geoheif.h +58 -0
  420. package/dist/prebuilt/wasm-wasm32-st-release/include/gnm.h +781 -0
  421. package/dist/prebuilt/wasm-wasm32-st-release/include/gnm_api.h +99 -0
  422. package/dist/prebuilt/wasm-wasm32-st-release/include/gnmgraph.h +257 -0
  423. package/dist/prebuilt/wasm-wasm32-st-release/include/memdataset.h +385 -0
  424. package/dist/prebuilt/wasm-wasm32-st-release/include/ogr_api.h +948 -0
  425. package/dist/prebuilt/wasm-wasm32-st-release/include/ogr_core.h +1319 -0
  426. package/dist/prebuilt/wasm-wasm32-st-release/include/ogr_feature.h +2136 -0
  427. package/dist/prebuilt/wasm-wasm32-st-release/include/ogr_featurestyle.h +869 -0
  428. package/dist/prebuilt/wasm-wasm32-st-release/include/ogr_geocoding.h +45 -0
  429. package/dist/prebuilt/wasm-wasm32-st-release/include/ogr_geomcoordinateprecision.h +85 -0
  430. package/dist/prebuilt/wasm-wasm32-st-release/include/ogr_geometry.h +4382 -0
  431. package/dist/prebuilt/wasm-wasm32-st-release/include/ogr_p.h +330 -0
  432. package/dist/prebuilt/wasm-wasm32-st-release/include/ogr_recordbatch.h +128 -0
  433. package/dist/prebuilt/wasm-wasm32-st-release/include/ogr_refcountedptr.h +198 -0
  434. package/dist/prebuilt/wasm-wasm32-st-release/include/ogr_spatialref.h +1122 -0
  435. package/dist/prebuilt/wasm-wasm32-st-release/include/ogr_srs_api.h +1073 -0
  436. package/dist/prebuilt/wasm-wasm32-st-release/include/ogr_swq.h +534 -0
  437. package/dist/prebuilt/wasm-wasm32-st-release/include/ogrsf_frmts.h +803 -0
  438. package/dist/prebuilt/wasm-wasm32-st-release/include/rawdataset.h +268 -0
  439. package/dist/prebuilt/wasm-wasm32-st-release/include/vrtdataset.h +2595 -0
  440. package/dist/prebuilt/wasm-wasm32-st-release/lib/cmake/gdal/3.20/FindLibLZMA.cmake +126 -0
  441. package/dist/prebuilt/wasm-wasm32-st-release/lib/cmake/gdal/3.20/FindPostgreSQL.cmake +312 -0
  442. package/dist/prebuilt/wasm-wasm32-st-release/lib/cmake/gdal/DefineFindPackage2.cmake +164 -0
  443. package/dist/prebuilt/wasm-wasm32-st-release/lib/cmake/gdal/GDAL-targets-release.cmake +19 -0
  444. package/dist/prebuilt/wasm-wasm32-st-release/lib/cmake/gdal/GDAL-targets.cmake +108 -0
  445. package/dist/prebuilt/wasm-wasm32-st-release/lib/cmake/gdal/GDALConfig.cmake +35 -0
  446. package/dist/prebuilt/wasm-wasm32-st-release/lib/cmake/gdal/GDALConfigVersion.cmake +65 -0
  447. package/dist/prebuilt/wasm-wasm32-st-release/lib/cmake/gdal/GdalFindModulePath.cmake +13 -0
  448. package/dist/prebuilt/wasm-wasm32-st-release/lib/cmake/gdal/packages/FindBRUNSLI.cmake +74 -0
  449. package/dist/prebuilt/wasm-wasm32-st-release/lib/cmake/gdal/packages/FindBlosc.cmake +74 -0
  450. package/dist/prebuilt/wasm-wasm32-st-release/lib/cmake/gdal/packages/FindCURL.cmake +235 -0
  451. package/dist/prebuilt/wasm-wasm32-st-release/lib/cmake/gdal/packages/FindCryptoPP.cmake +91 -0
  452. package/dist/prebuilt/wasm-wasm32-st-release/lib/cmake/gdal/packages/FindDeflate.cmake +113 -0
  453. package/dist/prebuilt/wasm-wasm32-st-release/lib/cmake/gdal/packages/FindECW.cmake +172 -0
  454. package/dist/prebuilt/wasm-wasm32-st-release/lib/cmake/gdal/packages/FindEXPAT.cmake +156 -0
  455. package/dist/prebuilt/wasm-wasm32-st-release/lib/cmake/gdal/packages/FindExprTk.cmake +93 -0
  456. package/dist/prebuilt/wasm-wasm32-st-release/lib/cmake/gdal/packages/FindFYBA.cmake +38 -0
  457. package/dist/prebuilt/wasm-wasm32-st-release/lib/cmake/gdal/packages/FindFileGDB.cmake +93 -0
  458. package/dist/prebuilt/wasm-wasm32-st-release/lib/cmake/gdal/packages/FindFreeXL.cmake +67 -0
  459. package/dist/prebuilt/wasm-wasm32-st-release/lib/cmake/gdal/packages/FindGEOS.cmake +49 -0
  460. package/dist/prebuilt/wasm-wasm32-st-release/lib/cmake/gdal/packages/FindGIF.cmake +97 -0
  461. package/dist/prebuilt/wasm-wasm32-st-release/lib/cmake/gdal/packages/FindGeoTIFF.cmake +104 -0
  462. package/dist/prebuilt/wasm-wasm32-st-release/lib/cmake/gdal/packages/FindHDF4.cmake +133 -0
  463. package/dist/prebuilt/wasm-wasm32-st-release/lib/cmake/gdal/packages/FindHDFS.cmake +54 -0
  464. package/dist/prebuilt/wasm-wasm32-st-release/lib/cmake/gdal/packages/FindIDB.cmake +45 -0
  465. package/dist/prebuilt/wasm-wasm32-st-release/lib/cmake/gdal/packages/FindIconv.cmake +145 -0
  466. package/dist/prebuilt/wasm-wasm32-st-release/lib/cmake/gdal/packages/FindJSONC.cmake +48 -0
  467. package/dist/prebuilt/wasm-wasm32-st-release/lib/cmake/gdal/packages/FindKDU.cmake +105 -0
  468. package/dist/prebuilt/wasm-wasm32-st-release/lib/cmake/gdal/packages/FindLERC.cmake +46 -0
  469. package/dist/prebuilt/wasm-wasm32-st-release/lib/cmake/gdal/packages/FindLZ4.cmake +130 -0
  470. package/dist/prebuilt/wasm-wasm32-st-release/lib/cmake/gdal/packages/FindLibKML.cmake +134 -0
  471. package/dist/prebuilt/wasm-wasm32-st-release/lib/cmake/gdal/packages/FindMONGOCXX.cmake +56 -0
  472. package/dist/prebuilt/wasm-wasm32-st-release/lib/cmake/gdal/packages/FindMRSID.cmake +66 -0
  473. package/dist/prebuilt/wasm-wasm32-st-release/lib/cmake/gdal/packages/FindMSSQL_NCLI.cmake +86 -0
  474. package/dist/prebuilt/wasm-wasm32-st-release/lib/cmake/gdal/packages/FindMSSQL_ODBC.cmake +113 -0
  475. package/dist/prebuilt/wasm-wasm32-st-release/lib/cmake/gdal/packages/FindMySQL.cmake +83 -0
  476. package/dist/prebuilt/wasm-wasm32-st-release/lib/cmake/gdal/packages/FindNetCDF.cmake +209 -0
  477. package/dist/prebuilt/wasm-wasm32-st-release/lib/cmake/gdal/packages/FindODBC.cmake +259 -0
  478. package/dist/prebuilt/wasm-wasm32-st-release/lib/cmake/gdal/packages/FindODBCCPP.cmake +72 -0
  479. package/dist/prebuilt/wasm-wasm32-st-release/lib/cmake/gdal/packages/FindOpenCAD.cmake +97 -0
  480. package/dist/prebuilt/wasm-wasm32-st-release/lib/cmake/gdal/packages/FindOpenEXR.cmake +125 -0
  481. package/dist/prebuilt/wasm-wasm32-st-release/lib/cmake/gdal/packages/FindOpenJPEG.cmake +124 -0
  482. package/dist/prebuilt/wasm-wasm32-st-release/lib/cmake/gdal/packages/FindOracle.cmake +230 -0
  483. package/dist/prebuilt/wasm-wasm32-st-release/lib/cmake/gdal/packages/FindPCRE.cmake +28 -0
  484. package/dist/prebuilt/wasm-wasm32-st-release/lib/cmake/gdal/packages/FindPCRE2.cmake +27 -0
  485. package/dist/prebuilt/wasm-wasm32-st-release/lib/cmake/gdal/packages/FindPROJ.cmake +91 -0
  486. package/dist/prebuilt/wasm-wasm32-st-release/lib/cmake/gdal/packages/FindPodofo.cmake +94 -0
  487. package/dist/prebuilt/wasm-wasm32-st-release/lib/cmake/gdal/packages/FindPoppler.cmake +182 -0
  488. package/dist/prebuilt/wasm-wasm32-st-release/lib/cmake/gdal/packages/FindQHULL.cmake +44 -0
  489. package/dist/prebuilt/wasm-wasm32-st-release/lib/cmake/gdal/packages/FindRASTERLITE2.cmake +85 -0
  490. package/dist/prebuilt/wasm-wasm32-st-release/lib/cmake/gdal/packages/FindSFCGAL.cmake +87 -0
  491. package/dist/prebuilt/wasm-wasm32-st-release/lib/cmake/gdal/packages/FindSPATIALITE.cmake +74 -0
  492. package/dist/prebuilt/wasm-wasm32-st-release/lib/cmake/gdal/packages/FindSQLite3.cmake +208 -0
  493. package/dist/prebuilt/wasm-wasm32-st-release/lib/cmake/gdal/packages/FindShapelib.cmake +69 -0
  494. package/dist/prebuilt/wasm-wasm32-st-release/lib/cmake/gdal/packages/FindSpatialindex.cmake +18 -0
  495. package/dist/prebuilt/wasm-wasm32-st-release/lib/cmake/gdal/packages/FindTEIGHA.cmake +242 -0
  496. package/dist/prebuilt/wasm-wasm32-st-release/lib/cmake/gdal/packages/FindWebP.cmake +38 -0
  497. package/dist/prebuilt/wasm-wasm32-st-release/lib/cmake/gdal/packages/FindZSTD.cmake +95 -0
  498. package/dist/prebuilt/wasm-wasm32-st-release/lib/cmake/gdal/packages/Findmuparser.cmake +53 -0
  499. package/dist/prebuilt/wasm-wasm32-st-release/lib/cmake/gdal/thirdparty/DotnetImports.props.in +7 -0
  500. package/dist/prebuilt/wasm-wasm32-st-release/lib/cmake/gdal/thirdparty/FindCSharp.cmake +72 -0
  501. package/dist/prebuilt/wasm-wasm32-st-release/lib/cmake/gdal/thirdparty/FindDotnet.cmake +496 -0
  502. package/dist/prebuilt/wasm-wasm32-st-release/lib/cmake/gdal/thirdparty/FindInt128.cmake +65 -0
  503. package/dist/prebuilt/wasm-wasm32-st-release/lib/cmake/gdal/thirdparty/FindMono.cmake +163 -0
  504. package/dist/prebuilt/wasm-wasm32-st-release/lib/cmake/gdal/thirdparty/GetGitHeadDate.cmake +33 -0
  505. package/dist/prebuilt/wasm-wasm32-st-release/lib/cmake/gdal/thirdparty/GetGitRevisionDescription.cmake +181 -0
  506. package/dist/prebuilt/wasm-wasm32-st-release/lib/cmake/gdal/thirdparty/GetGitRevisionDescription.cmake.in +50 -0
  507. package/dist/prebuilt/wasm-wasm32-st-release/lib/cmake/gdal/thirdparty/OSXInstallDirs.cmake +214 -0
  508. package/dist/prebuilt/wasm-wasm32-st-release/lib/cmake/gdal/thirdparty/SystemSummary.cmake +89 -0
  509. package/dist/prebuilt/wasm-wasm32-st-release/lib/gdalplugins/drivers.ini +285 -0
  510. package/dist/prebuilt/wasm-wasm32-st-release/lib/libgdal.a +0 -0
  511. package/dist/prebuilt/wasm-wasm32-st-release/lib/pkgconfig/gdal.pc +17 -0
  512. package/dist/prebuilt/wasm-wasm32-st-release/share/gdal/GDALLogoBW.svg +138 -0
  513. package/dist/prebuilt/wasm-wasm32-st-release/share/gdal/GDALLogoColor.svg +126 -0
  514. package/dist/prebuilt/wasm-wasm32-st-release/share/gdal/GDALLogoGS.svg +126 -0
  515. package/dist/prebuilt/wasm-wasm32-st-release/share/gdal/LICENSE.TXT +467 -0
  516. package/dist/prebuilt/wasm-wasm32-st-release/share/gdal/MM_m_idofic.csv +320 -0
  517. package/dist/prebuilt/wasm-wasm32-st-release/share/gdal/cubewerx_extra.wkt +48 -0
  518. package/dist/prebuilt/wasm-wasm32-st-release/share/gdal/default.rsc +0 -0
  519. package/dist/prebuilt/wasm-wasm32-st-release/share/gdal/ecw_cs.wkt +1453 -0
  520. package/dist/prebuilt/wasm-wasm32-st-release/share/gdal/eedaconf.json +23 -0
  521. package/dist/prebuilt/wasm-wasm32-st-release/share/gdal/epsg.wkt +1 -0
  522. package/dist/prebuilt/wasm-wasm32-st-release/share/gdal/esri_StatePlane_extra.wkt +631 -0
  523. package/dist/prebuilt/wasm-wasm32-st-release/share/gdal/gdal_algorithm.schema.json +240 -0
  524. package/dist/prebuilt/wasm-wasm32-st-release/share/gdal/gdalg.schema.json +36 -0
  525. package/dist/prebuilt/wasm-wasm32-st-release/share/gdal/gdalicon.png +0 -0
  526. package/dist/prebuilt/wasm-wasm32-st-release/share/gdal/gdalinfo_output.schema.json +390 -0
  527. package/dist/prebuilt/wasm-wasm32-st-release/share/gdal/gdalmdiminfo_output.schema.json +393 -0
  528. package/dist/prebuilt/wasm-wasm32-st-release/share/gdal/gdaltileindex.xsd +264 -0
  529. package/dist/prebuilt/wasm-wasm32-st-release/share/gdal/gdalvrt.xsd +948 -0
  530. package/dist/prebuilt/wasm-wasm32-st-release/share/gdal/gfs.xsd +246 -0
  531. package/dist/prebuilt/wasm-wasm32-st-release/share/gdal/gml_registry.xml +117 -0
  532. package/dist/prebuilt/wasm-wasm32-st-release/share/gdal/gml_registry.xsd +66 -0
  533. package/dist/prebuilt/wasm-wasm32-st-release/share/gdal/grib2_center.csv +251 -0
  534. package/dist/prebuilt/wasm-wasm32-st-release/share/gdal/grib2_process.csv +102 -0
  535. package/dist/prebuilt/wasm-wasm32-st-release/share/gdal/grib2_subcenter.csv +63 -0
  536. package/dist/prebuilt/wasm-wasm32-st-release/share/gdal/grib2_table_4_2_0_0.csv +261 -0
  537. package/dist/prebuilt/wasm-wasm32-st-release/share/gdal/grib2_table_4_2_0_1.csv +261 -0
  538. package/dist/prebuilt/wasm-wasm32-st-release/share/gdal/grib2_table_4_2_0_13.csv +261 -0
  539. package/dist/prebuilt/wasm-wasm32-st-release/share/gdal/grib2_table_4_2_0_14.csv +261 -0
  540. package/dist/prebuilt/wasm-wasm32-st-release/share/gdal/grib2_table_4_2_0_15.csv +261 -0
  541. package/dist/prebuilt/wasm-wasm32-st-release/share/gdal/grib2_table_4_2_0_16.csv +261 -0
  542. package/dist/prebuilt/wasm-wasm32-st-release/share/gdal/grib2_table_4_2_0_17.csv +261 -0
  543. package/dist/prebuilt/wasm-wasm32-st-release/share/gdal/grib2_table_4_2_0_18.csv +261 -0
  544. package/dist/prebuilt/wasm-wasm32-st-release/share/gdal/grib2_table_4_2_0_19.csv +261 -0
  545. package/dist/prebuilt/wasm-wasm32-st-release/share/gdal/grib2_table_4_2_0_190.csv +261 -0
  546. package/dist/prebuilt/wasm-wasm32-st-release/share/gdal/grib2_table_4_2_0_191.csv +261 -0
  547. package/dist/prebuilt/wasm-wasm32-st-release/share/gdal/grib2_table_4_2_0_2.csv +261 -0
  548. package/dist/prebuilt/wasm-wasm32-st-release/share/gdal/grib2_table_4_2_0_20.csv +261 -0
  549. package/dist/prebuilt/wasm-wasm32-st-release/share/gdal/grib2_table_4_2_0_21.csv +261 -0
  550. package/dist/prebuilt/wasm-wasm32-st-release/share/gdal/grib2_table_4_2_0_22.csv +261 -0
  551. package/dist/prebuilt/wasm-wasm32-st-release/share/gdal/grib2_table_4_2_0_3.csv +261 -0
  552. package/dist/prebuilt/wasm-wasm32-st-release/share/gdal/grib2_table_4_2_0_4.csv +261 -0
  553. package/dist/prebuilt/wasm-wasm32-st-release/share/gdal/grib2_table_4_2_0_5.csv +261 -0
  554. package/dist/prebuilt/wasm-wasm32-st-release/share/gdal/grib2_table_4_2_0_6.csv +261 -0
  555. package/dist/prebuilt/wasm-wasm32-st-release/share/gdal/grib2_table_4_2_0_7.csv +261 -0
  556. package/dist/prebuilt/wasm-wasm32-st-release/share/gdal/grib2_table_4_2_10_0.csv +261 -0
  557. package/dist/prebuilt/wasm-wasm32-st-release/share/gdal/grib2_table_4_2_10_1.csv +261 -0
  558. package/dist/prebuilt/wasm-wasm32-st-release/share/gdal/grib2_table_4_2_10_191.csv +261 -0
  559. package/dist/prebuilt/wasm-wasm32-st-release/share/gdal/grib2_table_4_2_10_2.csv +261 -0
  560. package/dist/prebuilt/wasm-wasm32-st-release/share/gdal/grib2_table_4_2_10_3.csv +261 -0
  561. package/dist/prebuilt/wasm-wasm32-st-release/share/gdal/grib2_table_4_2_10_4.csv +261 -0
  562. package/dist/prebuilt/wasm-wasm32-st-release/share/gdal/grib2_table_4_2_1_0.csv +261 -0
  563. package/dist/prebuilt/wasm-wasm32-st-release/share/gdal/grib2_table_4_2_1_1.csv +261 -0
  564. package/dist/prebuilt/wasm-wasm32-st-release/share/gdal/grib2_table_4_2_1_2.csv +261 -0
  565. package/dist/prebuilt/wasm-wasm32-st-release/share/gdal/grib2_table_4_2_20_0.csv +261 -0
  566. package/dist/prebuilt/wasm-wasm32-st-release/share/gdal/grib2_table_4_2_20_1.csv +261 -0
  567. package/dist/prebuilt/wasm-wasm32-st-release/share/gdal/grib2_table_4_2_20_2.csv +261 -0
  568. package/dist/prebuilt/wasm-wasm32-st-release/share/gdal/grib2_table_4_2_20_3.csv +261 -0
  569. package/dist/prebuilt/wasm-wasm32-st-release/share/gdal/grib2_table_4_2_2_0.csv +261 -0
  570. package/dist/prebuilt/wasm-wasm32-st-release/share/gdal/grib2_table_4_2_2_3.csv +261 -0
  571. package/dist/prebuilt/wasm-wasm32-st-release/share/gdal/grib2_table_4_2_2_4.csv +261 -0
  572. package/dist/prebuilt/wasm-wasm32-st-release/share/gdal/grib2_table_4_2_2_5.csv +261 -0
  573. package/dist/prebuilt/wasm-wasm32-st-release/share/gdal/grib2_table_4_2_2_6.csv +261 -0
  574. package/dist/prebuilt/wasm-wasm32-st-release/share/gdal/grib2_table_4_2_2_7.csv +261 -0
  575. package/dist/prebuilt/wasm-wasm32-st-release/share/gdal/grib2_table_4_2_3_0.csv +261 -0
  576. package/dist/prebuilt/wasm-wasm32-st-release/share/gdal/grib2_table_4_2_3_1.csv +261 -0
  577. package/dist/prebuilt/wasm-wasm32-st-release/share/gdal/grib2_table_4_2_3_2.csv +243 -0
  578. package/dist/prebuilt/wasm-wasm32-st-release/share/gdal/grib2_table_4_2_3_3.csv +261 -0
  579. package/dist/prebuilt/wasm-wasm32-st-release/share/gdal/grib2_table_4_2_3_4.csv +261 -0
  580. package/dist/prebuilt/wasm-wasm32-st-release/share/gdal/grib2_table_4_2_3_5.csv +261 -0
  581. package/dist/prebuilt/wasm-wasm32-st-release/share/gdal/grib2_table_4_2_3_6.csv +261 -0
  582. package/dist/prebuilt/wasm-wasm32-st-release/share/gdal/grib2_table_4_2_4_0.csv +261 -0
  583. package/dist/prebuilt/wasm-wasm32-st-release/share/gdal/grib2_table_4_2_4_1.csv +261 -0
  584. package/dist/prebuilt/wasm-wasm32-st-release/share/gdal/grib2_table_4_2_4_10.csv +261 -0
  585. package/dist/prebuilt/wasm-wasm32-st-release/share/gdal/grib2_table_4_2_4_2.csv +261 -0
  586. package/dist/prebuilt/wasm-wasm32-st-release/share/gdal/grib2_table_4_2_4_3.csv +261 -0
  587. package/dist/prebuilt/wasm-wasm32-st-release/share/gdal/grib2_table_4_2_4_4.csv +261 -0
  588. package/dist/prebuilt/wasm-wasm32-st-release/share/gdal/grib2_table_4_2_4_5.csv +261 -0
  589. package/dist/prebuilt/wasm-wasm32-st-release/share/gdal/grib2_table_4_2_4_6.csv +261 -0
  590. package/dist/prebuilt/wasm-wasm32-st-release/share/gdal/grib2_table_4_2_4_7.csv +261 -0
  591. package/dist/prebuilt/wasm-wasm32-st-release/share/gdal/grib2_table_4_2_4_8.csv +261 -0
  592. package/dist/prebuilt/wasm-wasm32-st-release/share/gdal/grib2_table_4_2_4_9.csv +261 -0
  593. package/dist/prebuilt/wasm-wasm32-st-release/share/gdal/grib2_table_4_2_local_Canada.csv +5 -0
  594. package/dist/prebuilt/wasm-wasm32-st-release/share/gdal/grib2_table_4_2_local_HPC.csv +2 -0
  595. package/dist/prebuilt/wasm-wasm32-st-release/share/gdal/grib2_table_4_2_local_MRMS.csv +175 -0
  596. package/dist/prebuilt/wasm-wasm32-st-release/share/gdal/grib2_table_4_2_local_NCEP.csv +401 -0
  597. package/dist/prebuilt/wasm-wasm32-st-release/share/gdal/grib2_table_4_2_local_NDFD.csv +38 -0
  598. package/dist/prebuilt/wasm-wasm32-st-release/share/gdal/grib2_table_4_2_local_index.csv +7 -0
  599. package/dist/prebuilt/wasm-wasm32-st-release/share/gdal/grib2_table_4_5.csv +261 -0
  600. package/dist/prebuilt/wasm-wasm32-st-release/share/gdal/grib2_table_versions.csv +3 -0
  601. package/dist/prebuilt/wasm-wasm32-st-release/share/gdal/gt_datum.csv +229 -0
  602. package/dist/prebuilt/wasm-wasm32-st-release/share/gdal/gt_ellips.csv +24 -0
  603. package/dist/prebuilt/wasm-wasm32-st-release/share/gdal/header.dxf +1138 -0
  604. package/dist/prebuilt/wasm-wasm32-st-release/share/gdal/inspire_cp_BasicPropertyUnit.gfs +57 -0
  605. package/dist/prebuilt/wasm-wasm32-st-release/share/gdal/inspire_cp_CadastralBoundary.gfs +60 -0
  606. package/dist/prebuilt/wasm-wasm32-st-release/share/gdal/inspire_cp_CadastralParcel.gfs +81 -0
  607. package/dist/prebuilt/wasm-wasm32-st-release/share/gdal/inspire_cp_CadastralZoning.gfs +161 -0
  608. package/dist/prebuilt/wasm-wasm32-st-release/share/gdal/jpfgdgml_AdmArea.gfs +59 -0
  609. package/dist/prebuilt/wasm-wasm32-st-release/share/gdal/jpfgdgml_AdmBdry.gfs +49 -0
  610. package/dist/prebuilt/wasm-wasm32-st-release/share/gdal/jpfgdgml_AdmPt.gfs +59 -0
  611. package/dist/prebuilt/wasm-wasm32-st-release/share/gdal/jpfgdgml_BldA.gfs +54 -0
  612. package/dist/prebuilt/wasm-wasm32-st-release/share/gdal/jpfgdgml_BldL.gfs +54 -0
  613. package/dist/prebuilt/wasm-wasm32-st-release/share/gdal/jpfgdgml_Cntr.gfs +54 -0
  614. package/dist/prebuilt/wasm-wasm32-st-release/share/gdal/jpfgdgml_CommBdry.gfs +49 -0
  615. package/dist/prebuilt/wasm-wasm32-st-release/share/gdal/jpfgdgml_CommPt.gfs +59 -0
  616. package/dist/prebuilt/wasm-wasm32-st-release/share/gdal/jpfgdgml_Cstline.gfs +54 -0
  617. package/dist/prebuilt/wasm-wasm32-st-release/share/gdal/jpfgdgml_ElevPt.gfs +54 -0
  618. package/dist/prebuilt/wasm-wasm32-st-release/share/gdal/jpfgdgml_GCP.gfs +94 -0
  619. package/dist/prebuilt/wasm-wasm32-st-release/share/gdal/jpfgdgml_LeveeEdge.gfs +49 -0
  620. package/dist/prebuilt/wasm-wasm32-st-release/share/gdal/jpfgdgml_RailCL.gfs +54 -0
  621. package/dist/prebuilt/wasm-wasm32-st-release/share/gdal/jpfgdgml_RdASL.gfs +44 -0
  622. package/dist/prebuilt/wasm-wasm32-st-release/share/gdal/jpfgdgml_RdArea.gfs +54 -0
  623. package/dist/prebuilt/wasm-wasm32-st-release/share/gdal/jpfgdgml_RdCompt.gfs +59 -0
  624. package/dist/prebuilt/wasm-wasm32-st-release/share/gdal/jpfgdgml_RdEdg.gfs +59 -0
  625. package/dist/prebuilt/wasm-wasm32-st-release/share/gdal/jpfgdgml_RdMgtBdry.gfs +49 -0
  626. package/dist/prebuilt/wasm-wasm32-st-release/share/gdal/jpfgdgml_RdSgmtA.gfs +59 -0
  627. package/dist/prebuilt/wasm-wasm32-st-release/share/gdal/jpfgdgml_RvrMgtBdry.gfs +49 -0
  628. package/dist/prebuilt/wasm-wasm32-st-release/share/gdal/jpfgdgml_SBAPt.gfs +49 -0
  629. package/dist/prebuilt/wasm-wasm32-st-release/share/gdal/jpfgdgml_SBArea.gfs +54 -0
  630. package/dist/prebuilt/wasm-wasm32-st-release/share/gdal/jpfgdgml_SBBdry.gfs +44 -0
  631. package/dist/prebuilt/wasm-wasm32-st-release/share/gdal/jpfgdgml_WA.gfs +54 -0
  632. package/dist/prebuilt/wasm-wasm32-st-release/share/gdal/jpfgdgml_WL.gfs +54 -0
  633. package/dist/prebuilt/wasm-wasm32-st-release/share/gdal/jpfgdgml_WStrA.gfs +54 -0
  634. package/dist/prebuilt/wasm-wasm32-st-release/share/gdal/jpfgdgml_WStrL.gfs +54 -0
  635. package/dist/prebuilt/wasm-wasm32-st-release/share/gdal/leaflet_template.html +102 -0
  636. package/dist/prebuilt/wasm-wasm32-st-release/share/gdal/nitf_spec.xml +3508 -0
  637. package/dist/prebuilt/wasm-wasm32-st-release/share/gdal/nitf_spec.xsd +178 -0
  638. package/dist/prebuilt/wasm-wasm32-st-release/share/gdal/ogr_fields_override.schema.json +278 -0
  639. package/dist/prebuilt/wasm-wasm32-st-release/share/gdal/ogrinfo_output.schema.json +532 -0
  640. package/dist/prebuilt/wasm-wasm32-st-release/share/gdal/ogrvrt.xsd +526 -0
  641. package/dist/prebuilt/wasm-wasm32-st-release/share/gdal/osmconf.ini +134 -0
  642. package/dist/prebuilt/wasm-wasm32-st-release/share/gdal/ozi_datum.csv +131 -0
  643. package/dist/prebuilt/wasm-wasm32-st-release/share/gdal/ozi_ellips.csv +35 -0
  644. package/dist/prebuilt/wasm-wasm32-st-release/share/gdal/pci_datum.txt +530 -0
  645. package/dist/prebuilt/wasm-wasm32-st-release/share/gdal/pci_ellips.txt +129 -0
  646. package/dist/prebuilt/wasm-wasm32-st-release/share/gdal/pdfcomposition.xsd +703 -0
  647. package/dist/prebuilt/wasm-wasm32-st-release/share/gdal/plscenesconf.json +1985 -0
  648. package/dist/prebuilt/wasm-wasm32-st-release/share/gdal/ruian_vf_ob_v1.gfs +1455 -0
  649. package/dist/prebuilt/wasm-wasm32-st-release/share/gdal/ruian_vf_st_uvoh_v1.gfs +86 -0
  650. package/dist/prebuilt/wasm-wasm32-st-release/share/gdal/ruian_vf_st_v1.gfs +1489 -0
  651. package/dist/prebuilt/wasm-wasm32-st-release/share/gdal/ruian_vf_v1.gfs +2126 -0
  652. package/dist/prebuilt/wasm-wasm32-st-release/share/gdal/s57agencies.csv +249 -0
  653. package/dist/prebuilt/wasm-wasm32-st-release/share/gdal/s57attributes.csv +484 -0
  654. package/dist/prebuilt/wasm-wasm32-st-release/share/gdal/s57expectedinput.csv +1008 -0
  655. package/dist/prebuilt/wasm-wasm32-st-release/share/gdal/s57objectclasses.csv +287 -0
  656. package/dist/prebuilt/wasm-wasm32-st-release/share/gdal/seed_2d.dgn +0 -0
  657. package/dist/prebuilt/wasm-wasm32-st-release/share/gdal/seed_3d.dgn +0 -0
  658. package/dist/prebuilt/wasm-wasm32-st-release/share/gdal/stateplane.csv +259 -0
  659. package/dist/prebuilt/wasm-wasm32-st-release/share/gdal/template_tiles.mapml +26 -0
  660. package/dist/prebuilt/wasm-wasm32-st-release/share/gdal/tms_LINZAntarticaMapTileGrid.json +190 -0
  661. package/dist/prebuilt/wasm-wasm32-st-release/share/gdal/tms_MapML_APSTILE.json +268 -0
  662. package/dist/prebuilt/wasm-wasm32-st-release/share/gdal/tms_MapML_CBMTILE.json +346 -0
  663. package/dist/prebuilt/wasm-wasm32-st-release/share/gdal/tms_NZTM2000.json +243 -0
  664. package/dist/prebuilt/wasm-wasm32-st-release/share/gdal/trailer.dxf +434 -0
  665. package/dist/prebuilt/wasm-wasm32-st-release/share/gdal/vdv452.xml +349 -0
  666. package/dist/prebuilt/wasm-wasm32-st-release/share/gdal/vdv452.xsd +45 -0
  667. package/package.json +49 -0
@@ -0,0 +1,2136 @@
1
+ /******************************************************************************
2
+ *
3
+ * Project: OpenGIS Simple Features Reference Implementation
4
+ * Purpose: Class for representing a whole feature, and layer schemas.
5
+ * Author: Frank Warmerdam, warmerdam@pobox.com
6
+ *
7
+ ******************************************************************************
8
+ * Copyright (c) 1999, Les Technologies SoftMap Inc.
9
+ * Copyright (c) 2008-2013, Even Rouault <even dot rouault at spatialys.com>
10
+ *
11
+ * SPDX-License-Identifier: MIT
12
+ ****************************************************************************/
13
+
14
+ #ifndef OGR_FEATURE_H_INCLUDED
15
+ #define OGR_FEATURE_H_INCLUDED
16
+
17
+ #include "cpl_atomic_ops.h"
18
+ #include "gdal_fwd.h"
19
+ #include "ogr_featurestyle.h"
20
+ #include "ogr_geometry.h"
21
+ #include "ogr_geomcoordinateprecision.h"
22
+
23
+ #include <cstddef>
24
+
25
+ #include <exception>
26
+ #include <memory>
27
+ #include <string>
28
+ #if __cplusplus >= 201703L || (defined(_MSVC_LANG) && _MSVC_LANG >= 201703L)
29
+ #include <string_view>
30
+ #endif
31
+ #include <vector>
32
+
33
+ /**
34
+ * \file ogr_feature.h
35
+ *
36
+ * Simple feature classes.
37
+ */
38
+
39
+ class OGRStyleTable;
40
+
41
+ /************************************************************************/
42
+ /* OGRFieldDefn */
43
+ /************************************************************************/
44
+
45
+ /**
46
+ * Definition of an attribute of an OGRFeatureDefn. A field is described by :
47
+ * <ul>
48
+ * <li>a name. See SetName() / GetNameRef()</li>
49
+ * <li>an alternative name (optional): alternative descriptive name for the
50
+ * field (sometimes referred to as an "alias"). See SetAlternativeName() /
51
+ * GetAlternativeNameRef()</li> <li>a type: OFTString, OFTInteger, OFTReal, ...
52
+ * See SetType() / GetType()</li> <li>a subtype (optional): OFSTBoolean, ... See
53
+ * SetSubType() / GetSubType()</li> <li>a width (optional): maximal number of
54
+ * characters. See SetWidth() / GetWidth()</li> <li>a precision (optional):
55
+ * number of digits after decimal point. See SetPrecision() /
56
+ * GetPrecision()</li> <li>a NOT NULL constraint (optional). See SetNullable() /
57
+ * IsNullable()</li> <li>a UNIQUE constraint (optional). See SetUnique() /
58
+ * IsUnique()</li> <li>a default value (optional). See SetDefault() /
59
+ * GetDefault()</li> <li>a boolean to indicate whether it should be ignored when
60
+ * retrieving features. See SetIgnored() / IsIgnored()</li> <li>a field domain
61
+ * name (optional). See SetDomainName() / Get DomainName()</li>
62
+ * </ul>
63
+ *
64
+ * Note that once a OGRFieldDefn has been added to a layer definition with
65
+ * OGRLayer::AddFieldDefn(), its setter methods should not be called on the
66
+ * object returned with OGRLayer::GetLayerDefn()->GetFieldDefn(). Instead,
67
+ * OGRLayer::AlterFieldDefn() should be called on a new instance of
68
+ * OGRFieldDefn, for drivers that support AlterFieldDefn().
69
+ */
70
+
71
+ class CPL_DLL OGRFieldDefn
72
+ {
73
+ private:
74
+ char *pszName;
75
+ char *pszAlternativeName;
76
+ OGRFieldType eType;
77
+ OGRJustification eJustify;
78
+ int nWidth; // Zero is variable.
79
+ int nPrecision;
80
+ char *pszDefault;
81
+
82
+ int bIgnore;
83
+ OGRFieldSubType eSubType;
84
+
85
+ int bNullable;
86
+ int bUnique;
87
+
88
+ // Used by drivers (GPKG) to track generated fields
89
+ bool m_bGenerated = false;
90
+
91
+ std::string m_osDomainName{}; // field domain name. Might be empty
92
+
93
+ std::string m_osComment{}; // field comment. Might be empty
94
+
95
+ int m_nTZFlag = OGR_TZFLAG_UNKNOWN;
96
+ bool m_bSealed = false;
97
+
98
+ public:
99
+ OGRFieldDefn(const char *, OGRFieldType);
100
+ explicit OGRFieldDefn(const OGRFieldDefn *);
101
+ ~OGRFieldDefn();
102
+
103
+ // Copy constructor
104
+ OGRFieldDefn(const OGRFieldDefn &oOther);
105
+
106
+ // Copy assignment operator
107
+ OGRFieldDefn &operator=(const OGRFieldDefn &oOther);
108
+
109
+ void SetName(const char *);
110
+
111
+ const char *GetNameRef() const
112
+ {
113
+ return pszName;
114
+ }
115
+
116
+ void SetAlternativeName(const char *);
117
+
118
+ const char *GetAlternativeNameRef() const
119
+ {
120
+ return pszAlternativeName;
121
+ }
122
+
123
+ OGRFieldType GetType() const
124
+ {
125
+ return eType;
126
+ }
127
+
128
+ void SetType(OGRFieldType eTypeIn);
129
+ static const char *GetFieldTypeName(OGRFieldType);
130
+ static OGRFieldType GetFieldTypeByName(const char *);
131
+
132
+ OGRFieldSubType GetSubType() const
133
+ {
134
+ return eSubType;
135
+ }
136
+
137
+ void SetSubType(OGRFieldSubType eSubTypeIn);
138
+ static const char *GetFieldSubTypeName(OGRFieldSubType);
139
+ static OGRFieldSubType GetFieldSubTypeByName(const char *);
140
+
141
+ OGRJustification GetJustify() const
142
+ {
143
+ return eJustify;
144
+ }
145
+
146
+ void SetJustify(OGRJustification eJustifyIn)
147
+ {
148
+ eJustify = eJustifyIn;
149
+ }
150
+
151
+ int GetWidth() const
152
+ {
153
+ return nWidth;
154
+ }
155
+
156
+ void SetWidth(int nWidthIn);
157
+
158
+ int GetPrecision() const
159
+ {
160
+ return nPrecision;
161
+ }
162
+
163
+ void SetPrecision(int nPrecisionIn);
164
+
165
+ int GetTZFlag() const
166
+ {
167
+ return m_nTZFlag;
168
+ }
169
+
170
+ void SetTZFlag(int nTZFlag);
171
+
172
+ void Set(const char *, OGRFieldType, int = 0, int = 0,
173
+ OGRJustification = OJUndefined);
174
+
175
+ void SetDefault(const char *);
176
+ const char *GetDefault() const;
177
+ int IsDefaultDriverSpecific() const;
178
+
179
+ int IsIgnored() const
180
+ {
181
+ return bIgnore;
182
+ }
183
+
184
+ void SetIgnored(int bIgnoreIn)
185
+ {
186
+ bIgnore = bIgnoreIn;
187
+ }
188
+
189
+ int IsNullable() const
190
+ {
191
+ return bNullable;
192
+ }
193
+
194
+ void SetNullable(int bNullableIn);
195
+
196
+ int IsUnique() const
197
+ {
198
+ return bUnique;
199
+ }
200
+
201
+ /**
202
+ * @brief Return whether the field is a generated field.
203
+ *
204
+ * At time of writing, only the GeoPackage and PG drivers fill that information. Consequently,
205
+ * only a returned value equal to TRUE can be fully trusted.
206
+ * @return TRUE if the field is a generated field, FALSE otherwise.
207
+ * @since GDAL 3.11
208
+ */
209
+ bool IsGenerated() const
210
+ {
211
+ return m_bGenerated;
212
+ }
213
+
214
+ /**
215
+ * @brief SetGenerated set the field generated status.
216
+ * @param bGeneratedIn TRUE if the field is a generated field, FALSE otherwise.
217
+ * @since GDAL 3.11
218
+ */
219
+ void SetGenerated(bool bGeneratedIn)
220
+ {
221
+ m_bGenerated = bGeneratedIn;
222
+ }
223
+
224
+ void SetUnique(int bUniqueIn);
225
+
226
+ const std::string &GetDomainName() const
227
+ {
228
+ return m_osDomainName;
229
+ }
230
+
231
+ void SetDomainName(const std::string &osDomainName);
232
+
233
+ const std::string &GetComment() const
234
+ {
235
+ return m_osComment;
236
+ }
237
+
238
+ void SetComment(const std::string &osComment);
239
+
240
+ int IsSame(const OGRFieldDefn *) const;
241
+
242
+ /** Convert a OGRFieldDefn* to a OGRFieldDefnH.
243
+ */
244
+ static inline OGRFieldDefnH ToHandle(OGRFieldDefn *poFieldDefn)
245
+ {
246
+ return reinterpret_cast<OGRFieldDefnH>(poFieldDefn);
247
+ }
248
+
249
+ /** Convert a OGRFieldDefnH to a OGRFieldDefn*.
250
+ */
251
+ static inline OGRFieldDefn *FromHandle(OGRFieldDefnH hFieldDefn)
252
+ {
253
+ return reinterpret_cast<OGRFieldDefn *>(hFieldDefn);
254
+ }
255
+
256
+ void Seal();
257
+
258
+ void Unseal();
259
+
260
+ /*! @cond Doxygen_Suppress */
261
+ struct CPL_DLL TemporaryUnsealer
262
+ {
263
+ private:
264
+ OGRFieldDefn *m_poFieldDefn = nullptr;
265
+ CPL_DISALLOW_COPY_ASSIGN(TemporaryUnsealer)
266
+ public:
267
+ explicit TemporaryUnsealer(OGRFieldDefn *poFieldDefn)
268
+ : m_poFieldDefn(poFieldDefn)
269
+ {
270
+ m_poFieldDefn->Unseal();
271
+ }
272
+
273
+ TemporaryUnsealer(TemporaryUnsealer &&) = default;
274
+ TemporaryUnsealer &operator=(TemporaryUnsealer &&) = default;
275
+
276
+ ~TemporaryUnsealer()
277
+ {
278
+ m_poFieldDefn->Seal();
279
+ }
280
+
281
+ OGRFieldDefn *operator->()
282
+ {
283
+ return m_poFieldDefn;
284
+ }
285
+ };
286
+
287
+ /*! @endcond */
288
+
289
+ TemporaryUnsealer GetTemporaryUnsealer();
290
+ };
291
+
292
+ #ifdef GDAL_COMPILATION
293
+ /** Return an object that temporary unseals the OGRFieldDefn.
294
+ *
295
+ * The returned object calls Unseal() initially, and when it is destroyed
296
+ * it calls Seal().
297
+ *
298
+ * This method should only be called by driver implementations.
299
+ *
300
+ * Usage: whileUnsealing(poFieldDefn)->some_method();
301
+ *
302
+ * @since GDAL 3.9
303
+ */
304
+ inline OGRFieldDefn::TemporaryUnsealer whileUnsealing(OGRFieldDefn *object)
305
+ {
306
+ return object->GetTemporaryUnsealer();
307
+ }
308
+ #endif
309
+
310
+ /************************************************************************/
311
+ /* OGRGeomFieldDefn */
312
+ /************************************************************************/
313
+
314
+ /**
315
+ * Definition of a geometry field of an OGRFeatureDefn. A geometry field is
316
+ * described by :
317
+ * <ul>
318
+ * <li>a name. See SetName() / GetNameRef()</li>
319
+ * <li>a type: wkbPoint, wkbLineString, ... See SetType() / GetType()</li>
320
+ * <li>a spatial reference system (optional). See SetSpatialRef() /
321
+ * GetSpatialRef()</li> <li>a NOT NULL constraint (optional). See SetNullable()
322
+ * / IsNullable()</li> <li>a boolean to indicate whether it should be ignored
323
+ * when retrieving features. See SetIgnored() / IsIgnored()</li>
324
+ * </ul>
325
+ *
326
+ * Note that once a OGRGeomFieldDefn has been added to a layer definition with
327
+ * OGRLayer::AddGeomFieldDefn(), its setter methods should not be called on the
328
+ * object returned with OGRLayer::GetLayerDefn()->GetGeomFieldDefn(). Instead,
329
+ * OGRLayer::AlterGeomFieldDefn() should be called on a new instance of
330
+ * OGRFieldDefn, for drivers that support AlterFieldDefn().
331
+ *
332
+ */
333
+
334
+ class CPL_DLL OGRGeomFieldDefn
335
+ {
336
+ protected:
337
+ //! @cond Doxygen_Suppress
338
+ char *pszName = nullptr;
339
+ OGRwkbGeometryType eGeomType =
340
+ wkbUnknown; /* all values possible except wkbNone */
341
+ mutable OGRSpatialReferenceRefCountedPtr poSRS = nullptr;
342
+
343
+ int bIgnore = false;
344
+ mutable int bNullable = true;
345
+ bool m_bSealed = false;
346
+ OGRGeomCoordinatePrecision m_oCoordPrecision{};
347
+
348
+ void Initialize(const char *, OGRwkbGeometryType);
349
+ //! @endcond
350
+
351
+ public:
352
+ OGRGeomFieldDefn(const char *pszNameIn, OGRwkbGeometryType eGeomTypeIn);
353
+ explicit OGRGeomFieldDefn(const OGRGeomFieldDefn *);
354
+ virtual ~OGRGeomFieldDefn();
355
+
356
+ // Copy constructor
357
+ OGRGeomFieldDefn(const OGRGeomFieldDefn &oOther);
358
+
359
+ // Move constructor
360
+ OGRGeomFieldDefn(OGRGeomFieldDefn &&oOther);
361
+
362
+ // Copy assignment operator
363
+ OGRGeomFieldDefn &operator=(const OGRGeomFieldDefn &oOther);
364
+
365
+ // Move assignment operator
366
+ OGRGeomFieldDefn &operator=(OGRGeomFieldDefn &&oOther);
367
+
368
+ void SetName(const char *);
369
+
370
+ const char *GetNameRef() const
371
+ {
372
+ return pszName;
373
+ }
374
+
375
+ OGRwkbGeometryType GetType() const
376
+ {
377
+ return eGeomType;
378
+ }
379
+
380
+ void SetType(OGRwkbGeometryType eTypeIn);
381
+
382
+ virtual const OGRSpatialReference *GetSpatialRef() const;
383
+ void SetSpatialRef(const OGRSpatialReference *poSRSIn);
384
+ void SetSpatialRef(OGRSpatialReferenceRefCountedPtr poSRSIn);
385
+
386
+ int IsIgnored() const
387
+ {
388
+ return bIgnore;
389
+ }
390
+
391
+ void SetIgnored(int bIgnoreIn)
392
+ {
393
+ bIgnore = bIgnoreIn;
394
+ }
395
+
396
+ int IsNullable() const
397
+ {
398
+ return bNullable;
399
+ }
400
+
401
+ void SetNullable(int bNullableIn);
402
+
403
+ const OGRGeomCoordinatePrecision &GetCoordinatePrecision() const
404
+ {
405
+ return m_oCoordPrecision;
406
+ }
407
+
408
+ void SetCoordinatePrecision(const OGRGeomCoordinatePrecision &prec);
409
+
410
+ int IsSame(const OGRGeomFieldDefn *) const;
411
+
412
+ /** Convert a OGRGeomFieldDefn* to a OGRGeomFieldDefnH.
413
+ */
414
+ static inline OGRGeomFieldDefnH ToHandle(OGRGeomFieldDefn *poGeomFieldDefn)
415
+ {
416
+ return reinterpret_cast<OGRGeomFieldDefnH>(poGeomFieldDefn);
417
+ }
418
+
419
+ /** Convert a OGRGeomFieldDefnH to a OGRGeomFieldDefn*.
420
+ */
421
+ static inline OGRGeomFieldDefn *FromHandle(OGRGeomFieldDefnH hGeomFieldDefn)
422
+ {
423
+ return reinterpret_cast<OGRGeomFieldDefn *>(hGeomFieldDefn);
424
+ }
425
+
426
+ void Seal();
427
+
428
+ void Unseal();
429
+
430
+ /*! @cond Doxygen_Suppress */
431
+ struct CPL_DLL TemporaryUnsealer
432
+ {
433
+ private:
434
+ OGRGeomFieldDefn *m_poFieldDefn = nullptr;
435
+ CPL_DISALLOW_COPY_ASSIGN(TemporaryUnsealer)
436
+ public:
437
+ explicit TemporaryUnsealer(OGRGeomFieldDefn *poFieldDefn)
438
+ : m_poFieldDefn(poFieldDefn)
439
+ {
440
+ m_poFieldDefn->Unseal();
441
+ }
442
+
443
+ TemporaryUnsealer(TemporaryUnsealer &&) = default;
444
+ TemporaryUnsealer &operator=(TemporaryUnsealer &&) = default;
445
+
446
+ ~TemporaryUnsealer()
447
+ {
448
+ m_poFieldDefn->Seal();
449
+ }
450
+
451
+ OGRGeomFieldDefn *operator->()
452
+ {
453
+ return m_poFieldDefn;
454
+ }
455
+ };
456
+
457
+ /*! @endcond */
458
+
459
+ TemporaryUnsealer GetTemporaryUnsealer();
460
+
461
+ private:
462
+ OGRSpatialReferenceRefCountedPtr &GetRefCountedSRS() const
463
+ {
464
+ GetSpatialRef();
465
+ return poSRS;
466
+ }
467
+ };
468
+
469
+ #ifdef GDAL_COMPILATION
470
+ /** Return an object that temporary unseals the OGRGeomFieldDefn.
471
+ *
472
+ * The returned object calls Unseal() initially, and when it is destroyed
473
+ * it calls Seal().
474
+ *
475
+ * This method should only be called by driver implementations.
476
+ *
477
+ * Usage: whileUnsealing(poGeomFieldDefn)->some_method();
478
+ *
479
+ * @since GDAL 3.9
480
+ */
481
+ inline OGRGeomFieldDefn::TemporaryUnsealer
482
+ whileUnsealing(OGRGeomFieldDefn *object)
483
+ {
484
+ return object->GetTemporaryUnsealer();
485
+ }
486
+ #endif
487
+
488
+ /************************************************************************/
489
+ /* OGRFeatureDefn */
490
+ /************************************************************************/
491
+
492
+ /**
493
+ * Definition of a feature class or feature layer.
494
+ *
495
+ * This object contains schema information for a set of OGRFeatures. In
496
+ * table based systems, an OGRFeatureDefn is essentially a layer. In more
497
+ * object oriented approaches (such as SF CORBA) this can represent a class
498
+ * of features but doesn't necessarily relate to all of a layer, or just one
499
+ * layer.
500
+ *
501
+ * This object also can contain some other information such as a name and
502
+ * potentially other metadata.
503
+ *
504
+ * It is essentially a collection of field descriptions (OGRFieldDefn class).
505
+ * In addition to attribute fields, it can also
506
+ * contain multiple geometry fields (OGRGeomFieldDefn class).
507
+ *
508
+ * It is reasonable for different translators to derive classes from
509
+ * OGRFeatureDefn with additional translator specific information.
510
+ *
511
+ * Note that adding, modifying, removing, reordering a OGRFieldDefn (or a
512
+ * OGRGeomFieldDefn) from/to a OGRFeatureDefn that belongs to a OGRLayer should
513
+ * not be done through the OGRFeatureDefn::AddFieldDefn(),
514
+ * OGRFeatureDefn::DeleteFieldDefn() or OGRFeatureDefn::ReorderFieldDefns()
515
+ * methods, but rather through OGRLayer::CreateField(),
516
+ * OGRLayer::AlterFieldDefn() or OGRLayer::ReorderFields(), for drivers that
517
+ * support those operations.
518
+ */
519
+
520
+ class CPL_DLL OGRFeatureDefn
521
+ {
522
+ protected:
523
+ //! @cond Doxygen_Suppress
524
+ volatile int nRefCount = 0;
525
+
526
+ mutable std::vector<std::unique_ptr<OGRFieldDefn>> apoFieldDefn{};
527
+ mutable std::vector<std::unique_ptr<OGRGeomFieldDefn>> apoGeomFieldDefn{};
528
+
529
+ char *pszFeatureClassName = nullptr;
530
+
531
+ bool bIgnoreStyle = false;
532
+
533
+ friend class TemporaryUnsealer;
534
+ bool m_bSealed = false;
535
+ int m_nTemporaryUnsealCount = 0;
536
+ //! @endcond
537
+
538
+ public:
539
+ explicit OGRFeatureDefn(const char *pszName = nullptr);
540
+ virtual ~OGRFeatureDefn();
541
+
542
+ void SetName(const char *pszName);
543
+ virtual const char *GetName() const;
544
+
545
+ virtual int GetFieldCount() const;
546
+ virtual OGRFieldDefn *GetFieldDefn(int i);
547
+ virtual const OGRFieldDefn *GetFieldDefn(int i) const;
548
+ virtual int GetFieldIndex(const char *) const;
549
+ int GetFieldIndexCaseSensitive(const char *) const;
550
+
551
+ //! @cond Doxygen_Suppress
552
+ /** Helper class to iterate over non-geometry fields.
553
+ *
554
+ * Note: fields should not be added or removed while iterating over them.
555
+ */
556
+ template <class OwnerT, class ChildT> struct CPL_DLL Fields
557
+ {
558
+ private:
559
+ OwnerT m_poFDefn;
560
+
561
+ public:
562
+ inline explicit Fields(OwnerT poFDefn) : m_poFDefn(poFDefn)
563
+ {
564
+ }
565
+
566
+ struct CPL_DLL Iterator
567
+ {
568
+ private:
569
+ OwnerT m_poFDefn;
570
+ const int m_nFieldCount;
571
+ int m_nIdx;
572
+ ChildT m_curValue{};
573
+
574
+ public:
575
+ inline Iterator(OwnerT poFDefn, int nIdx)
576
+ : m_poFDefn(poFDefn), m_nFieldCount(poFDefn->GetFieldCount()),
577
+ m_nIdx(nIdx)
578
+ {
579
+ if (m_nIdx < m_nFieldCount)
580
+ m_curValue = m_poFDefn->GetFieldDefn(m_nIdx);
581
+ }
582
+
583
+ inline const ChildT &operator*() const
584
+ {
585
+ return m_curValue;
586
+ }
587
+
588
+ inline ChildT &operator*()
589
+ {
590
+ return m_curValue;
591
+ }
592
+
593
+ inline Iterator &operator++()
594
+ {
595
+ m_nIdx++;
596
+ if (m_nIdx < m_nFieldCount)
597
+ m_curValue = m_poFDefn->GetFieldDefn(m_nIdx);
598
+ else
599
+ m_curValue = nullptr;
600
+ return *this;
601
+ }
602
+
603
+ inline bool operator!=(const Iterator &it) const
604
+ {
605
+ return m_nIdx != it.m_nIdx;
606
+ }
607
+ };
608
+
609
+ inline Iterator begin() const
610
+ {
611
+ return Iterator(m_poFDefn, 0);
612
+ }
613
+
614
+ inline Iterator end() const
615
+ {
616
+ return Iterator(m_poFDefn, m_poFDefn->GetFieldCount());
617
+ }
618
+
619
+ inline size_t size() const
620
+ {
621
+ return static_cast<std::size_t>(m_poFDefn->GetFieldCount());
622
+ }
623
+
624
+ inline ChildT operator[](size_t i)
625
+ {
626
+ return m_poFDefn->GetFieldDefn(static_cast<int>(i));
627
+ }
628
+ };
629
+
630
+ //! @endcond
631
+
632
+ /** Return type of GetFields() */
633
+ using NonConstFields = Fields<OGRFeatureDefn *, OGRFieldDefn *>;
634
+
635
+ /** Return an object that can be used to iterate over non-geometry fields.
636
+ \verbatim
637
+ for( const auto* poFieldDefn: poFeatureDefn->GetFields() )
638
+ {
639
+ // do something
640
+ }
641
+ \endverbatim
642
+
643
+ @since GDAL 3.7
644
+ */
645
+ inline NonConstFields GetFields()
646
+ {
647
+ return NonConstFields(this);
648
+ }
649
+
650
+ /** Return type of GetFields() const */
651
+ using ConstFields = Fields<const OGRFeatureDefn *, const OGRFieldDefn *>;
652
+
653
+ /** Return an object that can be used to iterate over non-geometry fields.
654
+ \verbatim
655
+ for( const auto* poFieldDefn: poFeatureDefn->GetFields() )
656
+ {
657
+ // do something
658
+ }
659
+ \endverbatim
660
+
661
+ @since GDAL 3.12
662
+ */
663
+ inline ConstFields GetFields() const
664
+ {
665
+ return ConstFields(this);
666
+ }
667
+
668
+ //! @cond Doxygen_Suppress
669
+ // That method should only be called if there's a guarantee that
670
+ // GetFieldCount() has been called before
671
+ int GetFieldCountUnsafe() const
672
+ {
673
+ return static_cast<int>(apoFieldDefn.size());
674
+ }
675
+
676
+ // Those methods don't check i is n range.
677
+ OGRFieldDefn *GetFieldDefnUnsafe(int i)
678
+ {
679
+ if (apoFieldDefn.empty())
680
+ GetFieldDefn(i);
681
+ return apoFieldDefn[static_cast<std::size_t>(i)].get();
682
+ }
683
+
684
+ const OGRFieldDefn *GetFieldDefnUnsafe(int i) const
685
+ {
686
+ if (apoFieldDefn.empty())
687
+ GetFieldDefn(i);
688
+ return apoFieldDefn[static_cast<std::size_t>(i)].get();
689
+ }
690
+
691
+ //! @endcond
692
+
693
+ virtual void AddFieldDefn(const OGRFieldDefn *);
694
+ virtual OGRErr DeleteFieldDefn(int iField);
695
+
696
+ /**
697
+ * @brief StealFieldDefn takes ownership of the field definition at index detaching
698
+ * it from the feature definition.
699
+ * This is an advanced method designed to be only used for driver implementations.
700
+ * @param iField index of the field definition to detach.
701
+ * @return a unique pointer to the detached field definition or nullptr if the index is out of range.
702
+ * @since GDAL 3.11
703
+ */
704
+ virtual std::unique_ptr<OGRFieldDefn> StealFieldDefn(int iField);
705
+
706
+ virtual void AddFieldDefn(std::unique_ptr<OGRFieldDefn> &&poFieldDefn);
707
+
708
+ virtual OGRErr ReorderFieldDefns(const int *panMap);
709
+
710
+ /**
711
+ * @brief StealGeomFieldDefn takes ownership of the the geometry field definition at index
712
+ * detaching it from the feature definition.
713
+ * This is an advanced method designed to be only used for driver implementations.
714
+ * @param iField index of the geometry field definition to detach.
715
+ * @return a unique pointer to the detached geometry field definition or nullptr if the index is out of range.
716
+ * @since GDAL 3.11
717
+ */
718
+ virtual std::unique_ptr<OGRGeomFieldDefn> StealGeomFieldDefn(int iField);
719
+
720
+ virtual int GetGeomFieldCount() const;
721
+ virtual OGRGeomFieldDefn *GetGeomFieldDefn(int i);
722
+ virtual const OGRGeomFieldDefn *GetGeomFieldDefn(int i) const;
723
+ virtual int GetGeomFieldIndex(const char *) const;
724
+
725
+ //! @cond Doxygen_Suppress
726
+ /** Helper class to iterate over geometry fields.
727
+ *
728
+ * Note: fields should not be added or removed while iterating over them.
729
+ */
730
+ template <class OwnerT, class ChildT> struct CPL_DLL GeomFields
731
+ {
732
+ private:
733
+ OwnerT m_poFDefn;
734
+
735
+ public:
736
+ inline explicit GeomFields(OwnerT poFDefn) : m_poFDefn(poFDefn)
737
+ {
738
+ }
739
+
740
+ struct CPL_DLL Iterator
741
+ {
742
+ private:
743
+ OwnerT m_poFDefn;
744
+ int m_nIdx;
745
+
746
+ public:
747
+ inline Iterator(OwnerT poFDefn, int nIdx)
748
+ : m_poFDefn(poFDefn), m_nIdx(nIdx)
749
+ {
750
+ }
751
+
752
+ inline ChildT operator*() const
753
+ {
754
+ return m_poFDefn->GetGeomFieldDefn(m_nIdx);
755
+ }
756
+
757
+ inline Iterator &operator++()
758
+ {
759
+ m_nIdx++;
760
+ return *this;
761
+ }
762
+
763
+ inline bool operator!=(const Iterator &it) const
764
+ {
765
+ return m_nIdx != it.m_nIdx;
766
+ }
767
+ };
768
+
769
+ inline Iterator begin()
770
+ {
771
+ return Iterator(m_poFDefn, 0);
772
+ }
773
+
774
+ inline Iterator end()
775
+ {
776
+ return Iterator(m_poFDefn, m_poFDefn->GetGeomFieldCount());
777
+ }
778
+
779
+ inline size_t size() const
780
+ {
781
+ return static_cast<std::size_t>(m_poFDefn->GetGeomFieldCount());
782
+ }
783
+
784
+ inline ChildT operator[](size_t i) const
785
+ {
786
+ return m_poFDefn->GetGeomFieldDefn(static_cast<int>(i));
787
+ }
788
+ };
789
+
790
+ //! @endcond
791
+
792
+ /** Return type of GetGeomFields() */
793
+ using NonConstGeomFields = GeomFields<OGRFeatureDefn *, OGRGeomFieldDefn *>;
794
+
795
+ /** Return an object that can be used to iterate over geometry fields.
796
+ \verbatim
797
+ for( const auto* poGeomFieldDefn: poFeatureDefn->GetGeomFields() )
798
+ {
799
+ // do something
800
+ }
801
+ \endverbatim
802
+
803
+ @since GDAL 3.7
804
+ */
805
+ inline NonConstGeomFields GetGeomFields()
806
+ {
807
+ return NonConstGeomFields(this);
808
+ }
809
+
810
+ /** Return type of GetGeomFields() const */
811
+ using ConstGeomFields =
812
+ GeomFields<const OGRFeatureDefn *, const OGRGeomFieldDefn *>;
813
+
814
+ /** Return an object that can be used to iterate over geometry fields.
815
+ \verbatim
816
+ for( const auto* poGeomFieldDefn: poFeatureDefn->GetGeomFields() )
817
+ {
818
+ // do something
819
+ }
820
+ \endverbatim
821
+
822
+ @since GDAL 3.12
823
+ */
824
+ inline ConstGeomFields GetGeomFields() const
825
+ {
826
+ return ConstGeomFields(this);
827
+ }
828
+
829
+ virtual void AddGeomFieldDefn(const OGRGeomFieldDefn *);
830
+ virtual void AddGeomFieldDefn(std::unique_ptr<OGRGeomFieldDefn> &&);
831
+ virtual OGRErr DeleteGeomFieldDefn(int iGeomField);
832
+
833
+ virtual OGRwkbGeometryType GetGeomType() const;
834
+ virtual void SetGeomType(OGRwkbGeometryType);
835
+
836
+ virtual OGRFeatureDefn *Clone() const;
837
+
838
+ #ifdef DEPRECATE_OGRFEATUREDEFN_REF_COUNTING
839
+ int Reference()
840
+ CPL_WARN_DEPRECATED("Use OGRFeatureDefnRefCountedPtr instead")
841
+ {
842
+ return CPLAtomicInc(&nRefCount);
843
+ }
844
+
845
+ int Dereference()
846
+ CPL_WARN_DEPRECATED("Use OGRFeatureDefnRefCountedPtr instead")
847
+ {
848
+ return CPLAtomicDec(&nRefCount);
849
+ }
850
+
851
+ int GetReferenceCount() const
852
+ CPL_WARN_DEPRECATED("Use OGRFeatureDefnRefCountedPtr instead")
853
+ {
854
+ return nRefCount;
855
+ }
856
+
857
+ void Release()
858
+ CPL_WARN_DEPRECATED("Use OGRFeatureDefnRefCountedPtr instead");
859
+ #else
860
+ int Reference()
861
+ {
862
+ return CPLAtomicInc(&nRefCount);
863
+ }
864
+
865
+ int Dereference()
866
+ #if defined(GDAL_COMPILATION) && !defined(DOXYGEN_XML)
867
+ CPL_WARN_DEPRECATED("Use Release() instead")
868
+ #endif
869
+ {
870
+ return CPLAtomicDec(&nRefCount);
871
+ }
872
+
873
+ int GetReferenceCount() const
874
+ {
875
+ return nRefCount;
876
+ }
877
+
878
+ void Release();
879
+ #endif
880
+
881
+ virtual int IsGeometryIgnored() const;
882
+ virtual void SetGeometryIgnored(int bIgnore);
883
+
884
+ virtual bool IsStyleIgnored() const
885
+ {
886
+ return bIgnoreStyle;
887
+ }
888
+
889
+ virtual void SetStyleIgnored(bool bIgnore)
890
+ {
891
+ bIgnoreStyle = bIgnore;
892
+ }
893
+
894
+ virtual int IsSame(const OGRFeatureDefn *poOtherFeatureDefn) const;
895
+
896
+ //! @cond Doxygen_Suppress
897
+ void ReserveSpaceForFields(int nFieldCountIn);
898
+ //! @endcond
899
+
900
+ std::vector<int> ComputeMapForSetFrom(const OGRFeatureDefn *poSrcFDefn,
901
+ bool bForgiving = true) const;
902
+
903
+ static OGRFeatureDefn *CreateFeatureDefn(const char *pszName = nullptr);
904
+ static void DestroyFeatureDefn(OGRFeatureDefn *);
905
+
906
+ /** Convert a OGRFeatureDefn* to a OGRFeatureDefnH.
907
+ */
908
+ static inline OGRFeatureDefnH ToHandle(OGRFeatureDefn *poFeatureDefn)
909
+ {
910
+ return reinterpret_cast<OGRFeatureDefnH>(poFeatureDefn);
911
+ }
912
+
913
+ /** Convert a OGRFeatureDefnH to a OGRFeatureDefn*.
914
+ */
915
+ static inline OGRFeatureDefn *FromHandle(OGRFeatureDefnH hFeatureDefn)
916
+ {
917
+ return reinterpret_cast<OGRFeatureDefn *>(hFeatureDefn);
918
+ }
919
+
920
+ void Seal(bool bSealFields);
921
+
922
+ void Unseal(bool bUnsealFields);
923
+
924
+ /*! @cond Doxygen_Suppress */
925
+ struct CPL_DLL TemporaryUnsealer
926
+ {
927
+ private:
928
+ OGRFeatureDefn *m_poFeatureDefn = nullptr;
929
+ bool m_bSealFields = false;
930
+ CPL_DISALLOW_COPY_ASSIGN(TemporaryUnsealer)
931
+ public:
932
+ explicit TemporaryUnsealer(OGRFeatureDefn *poFeatureDefn,
933
+ bool bSealFields);
934
+
935
+ TemporaryUnsealer(TemporaryUnsealer &&) = default;
936
+ TemporaryUnsealer &operator=(TemporaryUnsealer &&) = default;
937
+
938
+ ~TemporaryUnsealer();
939
+
940
+ OGRFeatureDefn *operator->()
941
+ {
942
+ return m_poFeatureDefn;
943
+ }
944
+ };
945
+
946
+ /*! @endcond */
947
+
948
+ TemporaryUnsealer GetTemporaryUnsealer(bool bSealFields = true);
949
+
950
+ private:
951
+ CPL_DISALLOW_COPY_ASSIGN(OGRFeatureDefn)
952
+ };
953
+
954
+ /*! @cond Doxygen_Suppress */
955
+
956
+ #include "ogr_refcountedptr.h"
957
+
958
+ template <>
959
+ struct OGRRefCountedPtr<OGRFeatureDefn>
960
+ : public OGRRefCountedPtrBase<OGRFeatureDefn>
961
+ {
962
+ /** Constructs from a raw OGRFeatureDefn instance.
963
+ */
964
+ inline explicit OGRRefCountedPtr(OGRFeatureDefn *poFDefn = nullptr,
965
+ bool add_ref = true)
966
+ : OGRRefCountedPtrBase<OGRFeatureDefn>(poFDefn, add_ref)
967
+ {
968
+ }
969
+
970
+ /** Constructs with a null OGRFeatureDefn instance.
971
+ */
972
+ inline explicit OGRRefCountedPtr(std::nullptr_t)
973
+ {
974
+ }
975
+
976
+ /** Constructs with a new OGRFeatureDefn instance with the provided name
977
+ */
978
+ inline static OGRRefCountedPtr makeInstance(const char *pszName)
979
+ {
980
+ // Initial ref_count of OGRFeatureDefn is 0, so do add a ref
981
+ return OGRRefCountedPtr(new OGRFeatureDefn(pszName),
982
+ /* add_ref = */ true);
983
+ }
984
+ };
985
+
986
+ /** Smart pointer around OGRFeatureDefn.
987
+ *
988
+ * It uses OGRFeatureDefn built-in reference counting, to increase the reference
989
+ * count when assigning a raw pointer to the smart pointer, and decrease it
990
+ * when releasing it.
991
+ * Somewhat similar to https://www.boost.org/doc/libs/latest/libs/smart_ptr/doc/html/smart_ptr.html#intrusive_ptr
992
+ */
993
+ using OGRFeatureDefnRefCountedPtr = OGRRefCountedPtr<OGRFeatureDefn>;
994
+
995
+ /*! @endcond */
996
+
997
+ #ifdef GDAL_COMPILATION
998
+ /** Return an object that temporary unseals the OGRFeatureDefn
999
+ *
1000
+ * The returned object calls Unseal() initially, and when it is destroyed
1001
+ * it calls Seal().
1002
+ * This method should be called on a OGRFeatureDefn that has been sealed
1003
+ * previously.
1004
+ * GetTemporaryUnsealer() calls may be nested, in which case only the first
1005
+ * one has an effect (similarly to a recursive mutex locked in a nested way
1006
+ * from the same thread).
1007
+ *
1008
+ * This method should only be called by driver implementations.
1009
+ *
1010
+ * Usage: whileUnsealing(poFeatureDefn)->some_method();
1011
+ *
1012
+ * @param bSealFields Whether fields and geometry fields should be unsealed and
1013
+ * resealed.
1014
+ * This is generally desirable, but in case of deferred
1015
+ * resolution of them, this parameter should be set to false.
1016
+ * @since GDAL 3.9
1017
+ */
1018
+ inline OGRFeatureDefn::TemporaryUnsealer whileUnsealing(OGRFeatureDefn *object,
1019
+ bool bSealFields = true)
1020
+ {
1021
+ return object->GetTemporaryUnsealer(bSealFields);
1022
+ }
1023
+
1024
+ inline OGRFeatureDefn::TemporaryUnsealer
1025
+ whileUnsealing(OGRFeatureDefnRefCountedPtr &object, bool bSealFields = true)
1026
+ {
1027
+ return object->GetTemporaryUnsealer(bSealFields);
1028
+ }
1029
+
1030
+ #endif
1031
+
1032
+ /************************************************************************/
1033
+ /* OGRFeature */
1034
+ /************************************************************************/
1035
+
1036
+ /**
1037
+ * A simple feature, including geometry and attributes.
1038
+ */
1039
+
1040
+ class CPL_DLL OGRFeature
1041
+ {
1042
+ private:
1043
+ GIntBig nFID;
1044
+ const OGRFeatureDefn *poDefn;
1045
+ OGRGeometry **papoGeometries;
1046
+ OGRField *pauFields;
1047
+ char *m_pszNativeData;
1048
+ char *m_pszNativeMediaType;
1049
+
1050
+ bool SetFieldInternal(int i, const OGRField *puValue);
1051
+
1052
+ protected:
1053
+ //! @cond Doxygen_Suppress
1054
+ mutable char *m_pszStyleString;
1055
+ mutable OGRStyleTable *m_poStyleTable;
1056
+ mutable char *m_pszTmpFieldValue;
1057
+ //! @endcond
1058
+
1059
+ bool CopySelfTo(OGRFeature *poNew) const;
1060
+
1061
+ public:
1062
+ explicit OGRFeature(const OGRFeatureDefn *);
1063
+ virtual ~OGRFeature();
1064
+
1065
+ /** Field value. */
1066
+ class CPL_DLL FieldValue
1067
+ {
1068
+ friend class OGRFeature;
1069
+ struct Private;
1070
+ std::unique_ptr<Private> m_poPrivate;
1071
+
1072
+ FieldValue(OGRFeature *poFeature, int iFieldIndex);
1073
+ FieldValue(const OGRFeature *poFeature, int iFieldIndex);
1074
+ FieldValue(const FieldValue &oOther) = delete;
1075
+ FieldValue &Assign(const FieldValue &oOther);
1076
+
1077
+ public:
1078
+ //! @cond Doxygen_Suppress
1079
+ ~FieldValue();
1080
+
1081
+ FieldValue &operator=(FieldValue &&oOther);
1082
+ //! @endcond
1083
+
1084
+ /** Set a field value from another one. */
1085
+ FieldValue &operator=(const FieldValue &oOther);
1086
+ /** Set an integer value to the field. */
1087
+ FieldValue &operator=(int nVal);
1088
+ /** Set an integer value to the field. */
1089
+ FieldValue &operator=(GIntBig nVal);
1090
+ /** Set a real value to the field. */
1091
+ FieldValue &operator=(double dfVal);
1092
+ /** Set a string value to the field. */
1093
+ FieldValue &operator=(const char *pszVal);
1094
+ /** Set a string value to the field. */
1095
+ FieldValue &operator=(const std::string &osVal);
1096
+ /** Set an array of integer to the field. */
1097
+ FieldValue &operator=(const std::vector<int> &oArray);
1098
+ /** Set an array of big integer to the field. */
1099
+ FieldValue &operator=(const std::vector<GIntBig> &oArray);
1100
+ /** Set an array of double to the field. */
1101
+ FieldValue &operator=(const std::vector<double> &oArray);
1102
+ /** Set an array of strings to the field. */
1103
+ FieldValue &operator=(const std::vector<std::string> &oArray);
1104
+ /** Set an array of strings to the field. */
1105
+ FieldValue &operator=(CSLConstList papszValues);
1106
+ /** Set a null value to the field. */
1107
+ void SetNull();
1108
+ /** Unset the field. */
1109
+ void clear();
1110
+
1111
+ /** Unset the field. */
1112
+ void Unset()
1113
+ {
1114
+ clear();
1115
+ }
1116
+
1117
+ /** Set date time value/ */
1118
+ void SetDateTime(int nYear, int nMonth, int nDay, int nHour = 0,
1119
+ int nMinute = 0, float fSecond = 0.f, int nTZFlag = 0);
1120
+
1121
+ /** Return field index. */
1122
+ int GetIndex() const;
1123
+ /** Return field definition. */
1124
+ const OGRFieldDefn *GetDefn() const;
1125
+
1126
+ /** Return field name. */
1127
+ const char *GetName() const
1128
+ {
1129
+ return GetDefn()->GetNameRef();
1130
+ }
1131
+
1132
+ /** Return field type. */
1133
+ OGRFieldType GetType() const
1134
+ {
1135
+ return GetDefn()->GetType();
1136
+ }
1137
+
1138
+ /** Return field subtype. */
1139
+ OGRFieldSubType GetSubType() const
1140
+ {
1141
+ return GetDefn()->GetSubType();
1142
+ }
1143
+
1144
+ /** Return whether the field value is unset/empty. */
1145
+ // cppcheck-suppress functionStatic
1146
+ bool empty() const
1147
+ {
1148
+ return IsUnset();
1149
+ }
1150
+
1151
+ /** Return whether the field value is unset/empty. */
1152
+ // cppcheck-suppress functionStatic
1153
+ bool IsUnset() const;
1154
+
1155
+ /** Return whether the field value is null. */
1156
+ // cppcheck-suppress functionStatic
1157
+ bool IsNull() const;
1158
+
1159
+ /** Return the raw field value */
1160
+ const OGRField *GetRawValue() const;
1161
+
1162
+ /** Return the integer value.
1163
+ * Only use that method if and only if GetType() == OFTInteger.
1164
+ */
1165
+ // cppcheck-suppress functionStatic
1166
+ int GetInteger() const
1167
+ {
1168
+ return GetRawValue()->Integer;
1169
+ }
1170
+
1171
+ /** Return the 64-bit integer value.
1172
+ * Only use that method if and only if GetType() == OFTInteger64.
1173
+ */
1174
+ // cppcheck-suppress functionStatic
1175
+ GIntBig GetInteger64() const
1176
+ {
1177
+ return GetRawValue()->Integer64;
1178
+ }
1179
+
1180
+ /** Return the double value.
1181
+ * Only use that method if and only if GetType() == OFTReal.
1182
+ */
1183
+ // cppcheck-suppress functionStatic
1184
+ double GetDouble() const
1185
+ {
1186
+ return GetRawValue()->Real;
1187
+ }
1188
+
1189
+ /** Return the string value.
1190
+ * Only use that method if and only if GetType() == OFTString.
1191
+ */
1192
+ // cppcheck-suppress functionStatic
1193
+ const char *GetString() const
1194
+ {
1195
+ return GetRawValue()->String;
1196
+ }
1197
+
1198
+ /** Return the date/time/datetime value. */
1199
+ bool GetDateTime(int *pnYear, int *pnMonth, int *pnDay, int *pnHour,
1200
+ int *pnMinute, float *pfSecond, int *pnTZFlag) const;
1201
+
1202
+ /** Return the field value as integer, with potential conversion */
1203
+ operator int() const
1204
+ {
1205
+ return GetAsInteger();
1206
+ }
1207
+
1208
+ /** Return the field value as 64-bit integer, with potential conversion
1209
+ */
1210
+ operator GIntBig() const
1211
+ {
1212
+ return GetAsInteger64();
1213
+ }
1214
+
1215
+ /** Return the field value as double, with potential conversion */
1216
+ operator double() const
1217
+ {
1218
+ return GetAsDouble();
1219
+ }
1220
+
1221
+ /** Return the field value as string, with potential conversion */
1222
+ operator const char *() const
1223
+ {
1224
+ return GetAsString();
1225
+ }
1226
+
1227
+ /** Return the field value as integer list, with potential conversion */
1228
+ operator const std::vector<int> &() const
1229
+ {
1230
+ return GetAsIntegerList();
1231
+ }
1232
+
1233
+ /** Return the field value as 64-bit integer list, with potential
1234
+ * conversion */
1235
+ operator const std::vector<GIntBig> &() const
1236
+ {
1237
+ return GetAsInteger64List();
1238
+ }
1239
+
1240
+ /** Return the field value as double list, with potential conversion */
1241
+ operator const std::vector<double> &() const
1242
+ {
1243
+ return GetAsDoubleList();
1244
+ }
1245
+
1246
+ /** Return the field value as string list, with potential conversion */
1247
+ operator const std::vector<std::string> &() const
1248
+ {
1249
+ return GetAsStringList();
1250
+ }
1251
+
1252
+ /** Return the field value as string list, with potential conversion */
1253
+ operator CSLConstList() const;
1254
+
1255
+ /** Return the field value as integer, with potential conversion */
1256
+ int GetAsInteger() const;
1257
+ /** Return the field value as 64-bit integer, with potential conversion
1258
+ */
1259
+ GIntBig GetAsInteger64() const;
1260
+ /** Return the field value as double, with potential conversion */
1261
+ double GetAsDouble() const;
1262
+ /** Return the field value as string, with potential conversion */
1263
+ const char *GetAsString() const;
1264
+ /** Return the field value as integer list, with potential conversion */
1265
+ const std::vector<int> &GetAsIntegerList() const;
1266
+ /** Return the field value as 64-bit integer list, with potential
1267
+ * conversion */
1268
+ const std::vector<GIntBig> &GetAsInteger64List() const;
1269
+ /** Return the field value as double list, with potential conversion */
1270
+ const std::vector<double> &GetAsDoubleList() const;
1271
+ /** Return the field value as string list, with potential conversion */
1272
+ const std::vector<std::string> &GetAsStringList() const;
1273
+ };
1274
+
1275
+ /** Field value iterator class. */
1276
+ class CPL_DLL ConstFieldIterator
1277
+ {
1278
+ friend class OGRFeature;
1279
+ struct Private;
1280
+ std::unique_ptr<Private> m_poPrivate;
1281
+
1282
+ ConstFieldIterator(const OGRFeature *poSelf, int nPos);
1283
+
1284
+ public:
1285
+ //! @cond Doxygen_Suppress
1286
+ ConstFieldIterator(
1287
+ ConstFieldIterator &&oOther) noexcept; // declared but not defined.
1288
+ // Needed for gcc 5.4 at least
1289
+ ~ConstFieldIterator();
1290
+ const FieldValue &operator*() const;
1291
+ ConstFieldIterator &operator++();
1292
+ bool operator!=(const ConstFieldIterator &it) const;
1293
+ //! @endcond
1294
+ };
1295
+
1296
+ /** Return begin of field value iterator.
1297
+ *
1298
+ * Using this iterator for standard range-based loops is safe, but
1299
+ * due to implementation limitations, you shouldn't try to access
1300
+ * (dereference) more than one iterator step at a time, since you will get
1301
+ * a reference to the same object (FieldValue) at each iteration step.
1302
+ *
1303
+ * \code{.cpp}
1304
+ * for( auto&& oField: poFeature )
1305
+ * {
1306
+ * std::cout << oField.GetIndex() << "," << oField.GetName()<< ": " <<
1307
+ * oField.GetAsString() << std::endl;
1308
+ * }
1309
+ * \endcode
1310
+ *
1311
+ */
1312
+ ConstFieldIterator begin() const;
1313
+ /** Return end of field value iterator. */
1314
+ ConstFieldIterator end() const;
1315
+
1316
+ const FieldValue operator[](int iField) const;
1317
+ FieldValue operator[](int iField);
1318
+
1319
+ #if defined(__clang__)
1320
+ #pragma clang diagnostic push
1321
+ #pragma clang diagnostic ignored "-Wweak-vtables"
1322
+ #endif
1323
+
1324
+ /** Exception raised by operator[](const char*) when a field is not found.
1325
+ */
1326
+ class FieldNotFoundException final : public std::exception
1327
+ {
1328
+ };
1329
+
1330
+ #if defined(__clang__)
1331
+ #pragma clang diagnostic pop
1332
+ #endif
1333
+
1334
+ const FieldValue operator[](const char *pszFieldName) const;
1335
+ FieldValue operator[](const char *pszFieldName);
1336
+
1337
+ const OGRFeatureDefn *GetDefnRef() const
1338
+ {
1339
+ return poDefn;
1340
+ }
1341
+
1342
+ //! @cond Doxygen_Suppress
1343
+ void SetFDefnUnsafe(OGRFeatureDefn *poNewFDefn);
1344
+ //! @endcond
1345
+
1346
+ OGRErr SetGeometryDirectly(OGRGeometry *);
1347
+ OGRErr SetGeometry(const OGRGeometry *);
1348
+ OGRErr SetGeometry(std::unique_ptr<OGRGeometry>);
1349
+ OGRGeometry *GetGeometryRef();
1350
+ const OGRGeometry *GetGeometryRef() const;
1351
+ OGRGeometry *StealGeometry() CPL_WARN_UNUSED_RESULT;
1352
+
1353
+ int GetGeomFieldCount() const
1354
+ {
1355
+ return poDefn->GetGeomFieldCount();
1356
+ }
1357
+
1358
+ const OGRGeomFieldDefn *GetGeomFieldDefnRef(int iField) const
1359
+ {
1360
+ return poDefn->GetGeomFieldDefn(iField);
1361
+ }
1362
+
1363
+ int GetGeomFieldIndex(const char *pszName) const
1364
+ {
1365
+ return poDefn->GetGeomFieldIndex(pszName);
1366
+ }
1367
+
1368
+ OGRGeometry *GetGeomFieldRef(int iField);
1369
+ const OGRGeometry *GetGeomFieldRef(int iField) const;
1370
+ OGRGeometry *StealGeometry(int iField);
1371
+ OGRGeometry *GetGeomFieldRef(const char *pszFName);
1372
+ const OGRGeometry *GetGeomFieldRef(const char *pszFName) const;
1373
+ OGRErr SetGeomFieldDirectly(int iField, OGRGeometry *);
1374
+ OGRErr SetGeomField(int iField, const OGRGeometry *);
1375
+ OGRErr SetGeomField(int iField, std::unique_ptr<OGRGeometry>);
1376
+
1377
+ void Reset();
1378
+
1379
+ OGRFeature *Clone() const CPL_WARN_UNUSED_RESULT;
1380
+ virtual OGRBoolean Equal(const OGRFeature *poFeature) const;
1381
+
1382
+ int GetFieldCount() const
1383
+ {
1384
+ return poDefn->GetFieldCount();
1385
+ }
1386
+
1387
+ const OGRFieldDefn *GetFieldDefnRef(int iField) const
1388
+ {
1389
+ return poDefn->GetFieldDefn(iField);
1390
+ }
1391
+
1392
+ int GetFieldIndex(const char *pszName) const
1393
+ {
1394
+ return poDefn->GetFieldIndex(pszName);
1395
+ }
1396
+
1397
+ int IsFieldSet(int iField) const;
1398
+
1399
+ void UnsetField(int iField);
1400
+
1401
+ bool IsFieldNull(int iField) const;
1402
+
1403
+ void SetFieldNull(int iField);
1404
+
1405
+ bool IsFieldSetAndNotNull(int iField) const;
1406
+
1407
+ OGRField *GetRawFieldRef(int i)
1408
+ {
1409
+ return pauFields + i;
1410
+ }
1411
+
1412
+ const OGRField *GetRawFieldRef(int i) const
1413
+ {
1414
+ return pauFields + i;
1415
+ }
1416
+
1417
+ int GetFieldAsInteger(int i) const;
1418
+ GIntBig GetFieldAsInteger64(int i) const;
1419
+ double GetFieldAsDouble(int i) const;
1420
+ const char *GetFieldAsString(int i) const;
1421
+ const char *GetFieldAsISO8601DateTime(int i,
1422
+ CSLConstList papszOptions) const;
1423
+ const int *GetFieldAsIntegerList(int i, int *pnCount) const;
1424
+ const GIntBig *GetFieldAsInteger64List(int i, int *pnCount) const;
1425
+ const double *GetFieldAsDoubleList(int i, int *pnCount) const;
1426
+ char **GetFieldAsStringList(int i) const;
1427
+ GByte *GetFieldAsBinary(int i, int *pnCount) const;
1428
+ int GetFieldAsDateTime(int i, int *pnYear, int *pnMonth, int *pnDay,
1429
+ int *pnHour, int *pnMinute, int *pnSecond,
1430
+ int *pnTZFlag) const;
1431
+ int GetFieldAsDateTime(int i, int *pnYear, int *pnMonth, int *pnDay,
1432
+ int *pnHour, int *pnMinute, float *pfSecond,
1433
+ int *pnTZFlag) const;
1434
+ char *GetFieldAsSerializedJSon(int i) const;
1435
+
1436
+ //! @cond Doxygen_Suppress
1437
+ bool IsFieldSetUnsafe(int i) const
1438
+ {
1439
+ return !(pauFields[i].Set.nMarker1 == OGRUnsetMarker &&
1440
+ pauFields[i].Set.nMarker2 == OGRUnsetMarker &&
1441
+ pauFields[i].Set.nMarker3 == OGRUnsetMarker);
1442
+ }
1443
+
1444
+ bool IsFieldNullUnsafe(int i) const
1445
+ {
1446
+ return (pauFields[i].Set.nMarker1 == OGRNullMarker &&
1447
+ pauFields[i].Set.nMarker2 == OGRNullMarker &&
1448
+ pauFields[i].Set.nMarker3 == OGRNullMarker);
1449
+ }
1450
+
1451
+ bool IsFieldSetAndNotNullUnsafe(int i) const
1452
+ {
1453
+ return IsFieldSetUnsafe(i) && !IsFieldNullUnsafe(i);
1454
+ }
1455
+
1456
+ // Those methods should only be called on a field that is of the type
1457
+ // consistent with the value, and that is set.
1458
+ int GetFieldAsIntegerUnsafe(int i) const
1459
+ {
1460
+ return pauFields[i].Integer;
1461
+ }
1462
+
1463
+ GIntBig GetFieldAsInteger64Unsafe(int i) const
1464
+ {
1465
+ return pauFields[i].Integer64;
1466
+ }
1467
+
1468
+ double GetFieldAsDoubleUnsafe(int i) const
1469
+ {
1470
+ return pauFields[i].Real;
1471
+ }
1472
+
1473
+ const char *GetFieldAsStringUnsafe(int i) const
1474
+ {
1475
+ return pauFields[i].String;
1476
+ }
1477
+
1478
+ //! @endcond
1479
+
1480
+ int GetFieldAsInteger(const char *pszFName) const
1481
+ {
1482
+ return GetFieldAsInteger(GetFieldIndex(pszFName));
1483
+ }
1484
+
1485
+ GIntBig GetFieldAsInteger64(const char *pszFName) const
1486
+ {
1487
+ return GetFieldAsInteger64(GetFieldIndex(pszFName));
1488
+ }
1489
+
1490
+ double GetFieldAsDouble(const char *pszFName) const
1491
+ {
1492
+ return GetFieldAsDouble(GetFieldIndex(pszFName));
1493
+ }
1494
+
1495
+ const char *GetFieldAsString(const char *pszFName) const
1496
+ {
1497
+ return GetFieldAsString(GetFieldIndex(pszFName));
1498
+ }
1499
+
1500
+ const char *GetFieldAsISO8601DateTime(const char *pszFName,
1501
+ CSLConstList papszOptions) const
1502
+ {
1503
+ return GetFieldAsISO8601DateTime(GetFieldIndex(pszFName), papszOptions);
1504
+ }
1505
+
1506
+ const int *GetFieldAsIntegerList(const char *pszFName, int *pnCount) const
1507
+ {
1508
+ return GetFieldAsIntegerList(GetFieldIndex(pszFName), pnCount);
1509
+ }
1510
+
1511
+ const GIntBig *GetFieldAsInteger64List(const char *pszFName,
1512
+ int *pnCount) const
1513
+ {
1514
+ return GetFieldAsInteger64List(GetFieldIndex(pszFName), pnCount);
1515
+ }
1516
+
1517
+ const double *GetFieldAsDoubleList(const char *pszFName, int *pnCount) const
1518
+ {
1519
+ return GetFieldAsDoubleList(GetFieldIndex(pszFName), pnCount);
1520
+ }
1521
+
1522
+ char **GetFieldAsStringList(const char *pszFName) const
1523
+ {
1524
+ return GetFieldAsStringList(GetFieldIndex(pszFName));
1525
+ }
1526
+
1527
+ void SetField(int i, int nValue);
1528
+ void SetField(int i, GIntBig nValue);
1529
+ void SetField(int i, double dfValue);
1530
+ void SetField(int i, const char *pszValue);
1531
+ #if defined(DOXYGEN_SKIP) || __cplusplus >= 201703L || \
1532
+ (defined(_MSVC_LANG) && _MSVC_LANG >= 201703L)
1533
+ void SetField(int i, std::string_view svValue);
1534
+
1535
+ //! @cond Doxygen_Suppress
1536
+ inline void SetField(int i, const std::string &osValue)
1537
+ {
1538
+ SetField(i, osValue.c_str());
1539
+ }
1540
+
1541
+ //! @endcond
1542
+ #endif
1543
+ void SetField(int i, int nCount, const int *panValues);
1544
+ void SetField(int i, int nCount, const GIntBig *panValues);
1545
+ void SetField(int i, int nCount, const double *padfValues);
1546
+ void SetField(int i, const char *const *papszValues);
1547
+ void SetField(int i, const OGRField *puValue);
1548
+ void SetField(int i, int nCount, const void *pabyBinary);
1549
+ void SetField(int i, int nYear, int nMonth, int nDay, int nHour = 0,
1550
+ int nMinute = 0, float fSecond = 0.f, int nTZFlag = 0);
1551
+
1552
+ //! @cond Doxygen_Suppress
1553
+ // Those methods should only be called on a field that is of the type
1554
+ // consistent with the value, and in a unset state.
1555
+ void SetFieldSameTypeUnsafe(int i, int nValue)
1556
+ {
1557
+ pauFields[i].Integer = nValue;
1558
+ pauFields[i].Set.nMarker2 = 0;
1559
+ pauFields[i].Set.nMarker3 = 0;
1560
+ }
1561
+
1562
+ void SetFieldSameTypeUnsafe(int i, GIntBig nValue)
1563
+ {
1564
+ pauFields[i].Integer64 = nValue;
1565
+ }
1566
+
1567
+ void SetFieldSameTypeUnsafe(int i, double dfValue)
1568
+ {
1569
+ pauFields[i].Real = dfValue;
1570
+ }
1571
+
1572
+ void SetFieldSameTypeUnsafe(int i, char *pszValueTransferred)
1573
+ {
1574
+ pauFields[i].String = pszValueTransferred;
1575
+ }
1576
+
1577
+ //! @endcond
1578
+
1579
+ void SetField(const char *pszFName, int nValue)
1580
+ {
1581
+ SetField(GetFieldIndex(pszFName), nValue);
1582
+ }
1583
+
1584
+ void SetField(const char *pszFName, GIntBig nValue)
1585
+ {
1586
+ SetField(GetFieldIndex(pszFName), nValue);
1587
+ }
1588
+
1589
+ void SetField(const char *pszFName, double dfValue)
1590
+ {
1591
+ SetField(GetFieldIndex(pszFName), dfValue);
1592
+ }
1593
+
1594
+ void SetField(const char *pszFName, const char *pszValue)
1595
+ {
1596
+ SetField(GetFieldIndex(pszFName), pszValue);
1597
+ }
1598
+
1599
+ void SetField(const char *pszFName, int nCount, const int *panValues)
1600
+ {
1601
+ SetField(GetFieldIndex(pszFName), nCount, panValues);
1602
+ }
1603
+
1604
+ void SetField(const char *pszFName, int nCount, const GIntBig *panValues)
1605
+ {
1606
+ SetField(GetFieldIndex(pszFName), nCount, panValues);
1607
+ }
1608
+
1609
+ void SetField(const char *pszFName, int nCount, const double *padfValues)
1610
+ {
1611
+ SetField(GetFieldIndex(pszFName), nCount, padfValues);
1612
+ }
1613
+
1614
+ void SetField(const char *pszFName, const char *const *papszValues)
1615
+ {
1616
+ SetField(GetFieldIndex(pszFName), papszValues);
1617
+ }
1618
+
1619
+ void SetField(const char *pszFName, const OGRField *puValue)
1620
+ {
1621
+ SetField(GetFieldIndex(pszFName), puValue);
1622
+ }
1623
+
1624
+ void SetField(const char *pszFName, int nYear, int nMonth, int nDay,
1625
+ int nHour = 0, int nMinute = 0, float fSecond = 0.f,
1626
+ int nTZFlag = 0)
1627
+ {
1628
+ SetField(GetFieldIndex(pszFName), nYear, nMonth, nDay, nHour, nMinute,
1629
+ fSecond, nTZFlag);
1630
+ }
1631
+
1632
+ GIntBig GetFID() const
1633
+ {
1634
+ return nFID;
1635
+ }
1636
+
1637
+ virtual OGRErr SetFID(GIntBig nFIDIn);
1638
+
1639
+ void DumpReadable(FILE *, CSLConstList papszOptions = nullptr) const;
1640
+ std::string DumpReadableAsString(CSLConstList papszOptions = nullptr) const;
1641
+
1642
+ OGRErr SetFrom(const OGRFeature *, int bForgiving = TRUE);
1643
+ OGRErr SetFrom(const OGRFeature *, const int *panMap, int bForgiving = TRUE,
1644
+ bool bUseISO8601ForDateTimeAsString = false);
1645
+ OGRErr SetFieldsFrom(const OGRFeature *, const int *panMap,
1646
+ int bForgiving = TRUE,
1647
+ bool bUseISO8601ForDateTimeAsString = false);
1648
+
1649
+ //! @cond Doxygen_Suppress
1650
+ OGRErr RemapFields(const OGRFeatureDefn *poNewDefn,
1651
+ const int *panRemapSource);
1652
+ void AppendField();
1653
+ OGRErr RemapGeomFields(const OGRFeatureDefn *poNewDefn,
1654
+ const int *panRemapSource);
1655
+ //! @endcond
1656
+
1657
+ int Validate(int nValidateFlags, int bEmitError) const;
1658
+ void FillUnsetWithDefault(int bNotNullableOnly, CSLConstList papszOptions);
1659
+
1660
+ bool SerializeToBinary(std::vector<GByte> &abyBuffer) const;
1661
+ bool DeserializeFromBinary(const GByte *pabyBuffer, size_t nSize);
1662
+
1663
+ virtual const char *GetStyleString() const;
1664
+ virtual void SetStyleString(const char *);
1665
+ virtual void SetStyleStringDirectly(char *);
1666
+
1667
+ /** Return style table.
1668
+ * @return style table.
1669
+ */
1670
+ virtual OGRStyleTable *GetStyleTable() const
1671
+ {
1672
+ return m_poStyleTable;
1673
+ } /* f.i.x.m.e: add a const qualifier for return type */
1674
+
1675
+ virtual void SetStyleTable(OGRStyleTable *poStyleTable);
1676
+ virtual void SetStyleTableDirectly(OGRStyleTable *poStyleTable);
1677
+
1678
+ const char *GetNativeData() const
1679
+ {
1680
+ return m_pszNativeData;
1681
+ }
1682
+
1683
+ const char *GetNativeMediaType() const
1684
+ {
1685
+ return m_pszNativeMediaType;
1686
+ }
1687
+
1688
+ void SetNativeData(const char *pszNativeData);
1689
+ void SetNativeMediaType(const char *pszNativeMediaType);
1690
+
1691
+ static OGRFeature *CreateFeature(const OGRFeatureDefn *);
1692
+ static void DestroyFeature(OGRFeature *);
1693
+
1694
+ /** Convert a OGRFeature* to a OGRFeatureH.
1695
+ */
1696
+ static inline OGRFeatureH ToHandle(OGRFeature *poFeature)
1697
+ {
1698
+ return reinterpret_cast<OGRFeatureH>(poFeature);
1699
+ }
1700
+
1701
+ /** Convert a OGRFeatureH to a OGRFeature*.
1702
+ */
1703
+ static inline OGRFeature *FromHandle(OGRFeatureH hFeature)
1704
+ {
1705
+ return reinterpret_cast<OGRFeature *>(hFeature);
1706
+ }
1707
+
1708
+ private:
1709
+ CPL_DISALLOW_COPY_ASSIGN(OGRFeature)
1710
+ };
1711
+
1712
+ //! @cond Doxygen_Suppress
1713
+ struct CPL_DLL OGRFeatureUniquePtrDeleter
1714
+ {
1715
+ void operator()(OGRFeature *) const;
1716
+ };
1717
+
1718
+ //! @endcond
1719
+
1720
+ /** Unique pointer type for OGRFeature.
1721
+ */
1722
+ typedef std::unique_ptr<OGRFeature, OGRFeatureUniquePtrDeleter>
1723
+ OGRFeatureUniquePtr;
1724
+
1725
+ //! @cond Doxygen_Suppress
1726
+ /** @see OGRFeature::begin() const */
1727
+ inline OGRFeature::ConstFieldIterator begin(const OGRFeature *poFeature)
1728
+ {
1729
+ return poFeature->begin();
1730
+ }
1731
+
1732
+ /** @see OGRFeature::end() const */
1733
+ inline OGRFeature::ConstFieldIterator end(const OGRFeature *poFeature)
1734
+ {
1735
+ return poFeature->end();
1736
+ }
1737
+
1738
+ /** @see OGRFeature::begin() const */
1739
+ inline OGRFeature::ConstFieldIterator
1740
+ begin(const OGRFeatureUniquePtr &poFeature)
1741
+ {
1742
+ return poFeature->begin();
1743
+ }
1744
+
1745
+ /** @see OGRFeature::end() const */
1746
+ inline OGRFeature::ConstFieldIterator end(const OGRFeatureUniquePtr &poFeature)
1747
+ {
1748
+ return poFeature->end();
1749
+ }
1750
+
1751
+ //! @endcond
1752
+
1753
+ /************************************************************************/
1754
+ /* OGRFieldDomain */
1755
+ /************************************************************************/
1756
+
1757
+ /* clang-format off */
1758
+ /**
1759
+ * Definition of a field domain.
1760
+ *
1761
+ * A field domain is a set of constraints that apply to one or several fields.
1762
+ *
1763
+ * This is a concept found in
1764
+ * <a href="https://desktop.arcgis.com/en/arcmap/latest/manage-data/geodatabases/an-overview-of-attribute-domains.htm">File
1765
+ * Geodatabase</a> or GeoPackage (using the <a href="http://www.geopackage.org/spec/#extension_schema">schema extension</a>)
1766
+ * for example.
1767
+ *
1768
+ * A field domain can be:
1769
+ * <ul>
1770
+ * <li>OGRCodedFieldDomain: an enumerated list of (code, value) tuples.</li>
1771
+ * <li>OGRRangeFieldDomain: a range constraint (min, max).</li>
1772
+ * <li>OGRGlobFieldDomain: a glob expression.</li>
1773
+ * </ul>
1774
+ *
1775
+ * @since GDAL 3.3
1776
+ */
1777
+ /* clang-format on */
1778
+
1779
+ class CPL_DLL OGRFieldDomain
1780
+ {
1781
+ protected:
1782
+ /*! @cond Doxygen_Suppress */
1783
+ std::string m_osName;
1784
+ std::string m_osDescription;
1785
+ OGRFieldDomainType m_eDomainType;
1786
+ OGRFieldType m_eFieldType;
1787
+ OGRFieldSubType m_eFieldSubType;
1788
+ OGRFieldDomainSplitPolicy m_eSplitPolicy = OFDSP_DEFAULT_VALUE;
1789
+ OGRFieldDomainMergePolicy m_eMergePolicy = OFDMP_DEFAULT_VALUE;
1790
+
1791
+ OGRFieldDomain(const std::string &osName, const std::string &osDescription,
1792
+ OGRFieldDomainType eDomainType, OGRFieldType eFieldType,
1793
+ OGRFieldSubType eFieldSubType);
1794
+ /*! @endcond */
1795
+
1796
+ public:
1797
+ /** Destructor.
1798
+ *
1799
+ * This is the same as the C function OGR_FldDomain_Destroy().
1800
+ */
1801
+ virtual ~OGRFieldDomain();
1802
+
1803
+ /** Clone.
1804
+ *
1805
+ * Return a cloned object, or nullptr in case of error.
1806
+ */
1807
+ virtual OGRFieldDomain *Clone() const = 0;
1808
+
1809
+ /** Get the name of the field domain.
1810
+ *
1811
+ * This is the same as the C function OGR_FldDomain_GetName().
1812
+ */
1813
+ const std::string &GetName() const
1814
+ {
1815
+ return m_osName;
1816
+ }
1817
+
1818
+ /** Get the description of the field domain.
1819
+ * Empty string if there is none.
1820
+ *
1821
+ * This is the same as the C function OGR_FldDomain_GetDescription().
1822
+ */
1823
+ const std::string &GetDescription() const
1824
+ {
1825
+ return m_osDescription;
1826
+ }
1827
+
1828
+ /** Get the type of the field domain.
1829
+ *
1830
+ * This is the same as the C function OGR_FldDomain_GetDomainType().
1831
+ */
1832
+ OGRFieldDomainType GetDomainType() const
1833
+ {
1834
+ return m_eDomainType;
1835
+ }
1836
+
1837
+ /** Get the field type.
1838
+ *
1839
+ * This is the same as the C function OGR_FldDomain_GetFieldType().
1840
+ */
1841
+ OGRFieldType GetFieldType() const
1842
+ {
1843
+ return m_eFieldType;
1844
+ }
1845
+
1846
+ /** Get the field subtype.
1847
+ *
1848
+ * This is the same as the C function OGR_FldDomain_GetFieldSubType().
1849
+ */
1850
+ OGRFieldSubType GetFieldSubType() const
1851
+ {
1852
+ return m_eFieldSubType;
1853
+ }
1854
+
1855
+ /** Convert a OGRFieldDomain* to a OGRFieldDomainH. */
1856
+ static inline OGRFieldDomainH ToHandle(OGRFieldDomain *poFieldDomain)
1857
+ {
1858
+ return reinterpret_cast<OGRFieldDomainH>(poFieldDomain);
1859
+ }
1860
+
1861
+ /** Convert a OGRFieldDomainH to a OGRFieldDomain*. */
1862
+ static inline OGRFieldDomain *FromHandle(OGRFieldDomainH hFieldDomain)
1863
+ {
1864
+ return reinterpret_cast<OGRFieldDomain *>(hFieldDomain);
1865
+ }
1866
+
1867
+ /** Get the split policy.
1868
+ *
1869
+ * This is the same as the C function OGR_FldDomain_GetSplitPolicy().
1870
+ */
1871
+ OGRFieldDomainSplitPolicy GetSplitPolicy() const
1872
+ {
1873
+ return m_eSplitPolicy;
1874
+ }
1875
+
1876
+ /** Set the split policy.
1877
+ *
1878
+ * This is the same as the C function OGR_FldDomain_SetSplitPolicy().
1879
+ */
1880
+ void SetSplitPolicy(OGRFieldDomainSplitPolicy policy)
1881
+ {
1882
+ m_eSplitPolicy = policy;
1883
+ }
1884
+
1885
+ /** Get the merge policy.
1886
+ *
1887
+ * This is the same as the C function OGR_FldDomain_GetMergePolicy().
1888
+ */
1889
+ OGRFieldDomainMergePolicy GetMergePolicy() const
1890
+ {
1891
+ return m_eMergePolicy;
1892
+ }
1893
+
1894
+ /** Set the merge policy.
1895
+ *
1896
+ * This is the same as the C function OGR_FldDomain_SetMergePolicy().
1897
+ */
1898
+ void SetMergePolicy(OGRFieldDomainMergePolicy policy)
1899
+ {
1900
+ m_eMergePolicy = policy;
1901
+ }
1902
+ };
1903
+
1904
+ /** Definition of a coded / enumerated field domain.
1905
+ *
1906
+ * A code field domain is a domain for which only a limited set of codes,
1907
+ * associated with their expanded value, are allowed.
1908
+ * The type of the code should be the one of the field domain.
1909
+ */
1910
+ class CPL_DLL OGRCodedFieldDomain final : public OGRFieldDomain
1911
+ {
1912
+ private:
1913
+ std::vector<OGRCodedValue> m_asValues{};
1914
+
1915
+ OGRCodedFieldDomain(const OGRCodedFieldDomain &) = delete;
1916
+ OGRCodedFieldDomain &operator=(const OGRCodedFieldDomain &) = delete;
1917
+
1918
+ public:
1919
+ /** Constructor.
1920
+ *
1921
+ * This is the same as the C function OGR_CodedFldDomain_Create()
1922
+ * (except that the C function copies the enumeration, whereas the C++
1923
+ * method moves it)
1924
+ *
1925
+ * @param osName Domain name.
1926
+ * @param osDescription Domain description.
1927
+ * @param eFieldType Field type. Generally numeric. Potentially
1928
+ * OFTDateTime
1929
+ * @param eFieldSubType Field subtype.
1930
+ * @param asValues Enumeration as (code, value) pairs.
1931
+ * Each code should appear only once, but it is the
1932
+ * responsibility of the user to check it.
1933
+ */
1934
+ OGRCodedFieldDomain(const std::string &osName,
1935
+ const std::string &osDescription,
1936
+ OGRFieldType eFieldType, OGRFieldSubType eFieldSubType,
1937
+ std::vector<OGRCodedValue> &&asValues);
1938
+
1939
+ ~OGRCodedFieldDomain() override;
1940
+
1941
+ OGRCodedFieldDomain *Clone() const override;
1942
+
1943
+ /** Get the enumeration as (code, value) pairs.
1944
+ * The end of the enumeration is signaled by code == NULL.
1945
+ *
1946
+ * This is the same as the C function OGR_CodedFldDomain_GetEnumeration().
1947
+ */
1948
+ const OGRCodedValue *GetEnumeration() const
1949
+ {
1950
+ return m_asValues.data();
1951
+ }
1952
+ };
1953
+
1954
+ /** Definition of a numeric field domain with a range of validity for values.
1955
+ */
1956
+ class CPL_DLL OGRRangeFieldDomain final : public OGRFieldDomain
1957
+ {
1958
+ private:
1959
+ OGRField m_sMin;
1960
+ OGRField m_sMax;
1961
+ bool m_bMinIsInclusive;
1962
+ bool m_bMaxIsInclusive;
1963
+
1964
+ OGRRangeFieldDomain(const OGRRangeFieldDomain &) = delete;
1965
+ OGRRangeFieldDomain &operator=(const OGRRangeFieldDomain &) = delete;
1966
+
1967
+ public:
1968
+ /** Constructor.
1969
+ *
1970
+ * This is the same as the C function OGR_RangeFldDomain_Create().
1971
+ *
1972
+ * @param osName Domain name.
1973
+ * @param osDescription Domain description.
1974
+ * @param eFieldType Field type.
1975
+ * One among OFTInteger, OFTInteger64, OFTReal or
1976
+ * OFTDateTime
1977
+ * @param eFieldSubType Field subtype.
1978
+ * @param sMin Minimum value.
1979
+ * Which member in the OGRField enum must be read
1980
+ * depends on the field type.
1981
+ * If no minimum is set (might not be supported by
1982
+ * all backends), then initialize the value with
1983
+ * OGR_RawField_SetUnset().
1984
+ * @param bMinIsInclusive Whether the minimum value is included in the
1985
+ * range.
1986
+ * @param sMax Minimum value.
1987
+ * Which member in the OGRField enum must be read
1988
+ * depends on the field type.
1989
+ * If no maximum is set (might not be supported by
1990
+ * all backends), then initialize the value with
1991
+ * OGR_RawField_SetUnset().
1992
+ * @param bMaxIsInclusive Whether the minimum value is included in the
1993
+ * range.
1994
+ */
1995
+ OGRRangeFieldDomain(const std::string &osName,
1996
+ const std::string &osDescription,
1997
+ OGRFieldType eFieldType, OGRFieldSubType eFieldSubType,
1998
+ const OGRField &sMin, bool bMinIsInclusive,
1999
+ const OGRField &sMax, bool bMaxIsInclusive);
2000
+
2001
+ OGRRangeFieldDomain *Clone() const override;
2002
+
2003
+ /** Get the minimum value.
2004
+ *
2005
+ * Which member in the returned OGRField enum must be read depends on the
2006
+ * field type.
2007
+ *
2008
+ * If no minimum value is set, the OGR_RawField_IsUnset() will return true
2009
+ * when called on the result.
2010
+ *
2011
+ * This is the same as the C function OGR_RangeFldDomain_GetMin().
2012
+ *
2013
+ * @param bIsInclusiveOut set to true if the minimum is included in the
2014
+ * range.
2015
+ */
2016
+ const OGRField &GetMin(bool &bIsInclusiveOut) const
2017
+ {
2018
+ bIsInclusiveOut = m_bMinIsInclusive;
2019
+ return m_sMin;
2020
+ }
2021
+
2022
+ /** Get the maximum value.
2023
+ *
2024
+ * Which member in the returned OGRField enum must be read depends on the
2025
+ * field type.
2026
+ *
2027
+ * If no maximum value is set, the OGR_RawField_IsUnset() will return true
2028
+ * when called on the result.
2029
+ *
2030
+ * This is the same as the C function OGR_RangeFldDomain_GetMax().
2031
+ *
2032
+ * @param bIsInclusiveOut set to true if the maximum is included in the
2033
+ * range.
2034
+ */
2035
+ const OGRField &GetMax(bool &bIsInclusiveOut) const
2036
+ {
2037
+ bIsInclusiveOut = m_bMaxIsInclusive;
2038
+ return m_sMax;
2039
+ }
2040
+ };
2041
+
2042
+ /** Definition of a field domain for field content validated by a glob.
2043
+ *
2044
+ * Globs are matching expression like "*[a-z][0-1]?"
2045
+ */
2046
+ class CPL_DLL OGRGlobFieldDomain final : public OGRFieldDomain
2047
+ {
2048
+ private:
2049
+ std::string m_osGlob;
2050
+
2051
+ OGRGlobFieldDomain(const OGRGlobFieldDomain &) = delete;
2052
+ OGRGlobFieldDomain &operator=(const OGRGlobFieldDomain &) = delete;
2053
+
2054
+ public:
2055
+ /** Constructor.
2056
+ *
2057
+ * This is the same as the C function OGR_GlobFldDomain_Create().
2058
+ *
2059
+ * @param osName Domain name.
2060
+ * @param osDescription Domain description.
2061
+ * @param eFieldType Field type.
2062
+ * @param eFieldSubType Field subtype.
2063
+ * @param osBlob Blob expression
2064
+ */
2065
+ OGRGlobFieldDomain(const std::string &osName,
2066
+ const std::string &osDescription,
2067
+ OGRFieldType eFieldType, OGRFieldSubType eFieldSubType,
2068
+ const std::string &osBlob);
2069
+
2070
+ OGRGlobFieldDomain *Clone() const override;
2071
+
2072
+ /** Get the glob expression.
2073
+ *
2074
+ * This is the same as the C function OGR_GlobFldDomain_GetGlob().
2075
+ */
2076
+ const std::string &GetGlob() const
2077
+ {
2078
+ return m_osGlob;
2079
+ }
2080
+ };
2081
+
2082
+ /************************************************************************/
2083
+ /* OGRFeatureQuery */
2084
+ /************************************************************************/
2085
+
2086
+ //! @cond Doxygen_Suppress
2087
+ class OGRLayer;
2088
+ class swq_expr_node;
2089
+ class swq_custom_func_registrar;
2090
+ struct swq_evaluation_context;
2091
+
2092
+ class CPL_DLL OGRFeatureQuery
2093
+ {
2094
+ private:
2095
+ const OGRFeatureDefn *poTargetDefn;
2096
+ void *pSWQExpr;
2097
+ swq_evaluation_context *m_psContext = nullptr;
2098
+
2099
+ char **FieldCollector(void *, char **);
2100
+
2101
+ static GIntBig *EvaluateAgainstIndices(const swq_expr_node *, OGRLayer *,
2102
+ GIntBig &nFIDCount);
2103
+
2104
+ static int CanUseIndex(const swq_expr_node *, OGRLayer *);
2105
+
2106
+ OGRErr Compile(const OGRLayer *, const OGRFeatureDefn *, const char *,
2107
+ int bCheck,
2108
+ swq_custom_func_registrar *poCustomFuncRegistrar);
2109
+
2110
+ CPL_DISALLOW_COPY_ASSIGN(OGRFeatureQuery)
2111
+
2112
+ public:
2113
+ OGRFeatureQuery();
2114
+ ~OGRFeatureQuery();
2115
+
2116
+ OGRErr Compile(const OGRLayer *, const char *, int bCheck = TRUE,
2117
+ swq_custom_func_registrar *poCustomFuncRegistrar = nullptr);
2118
+ OGRErr Compile(const OGRFeatureDefn *, const char *, int bCheck = TRUE,
2119
+ swq_custom_func_registrar *poCustomFuncRegistrar = nullptr);
2120
+ int Evaluate(OGRFeature *);
2121
+
2122
+ GIntBig *EvaluateAgainstIndices(OGRLayer *, OGRErr *);
2123
+
2124
+ int CanUseIndex(OGRLayer *);
2125
+
2126
+ char **GetUsedFields();
2127
+
2128
+ void *GetSWQExpr()
2129
+ {
2130
+ return pSWQExpr;
2131
+ }
2132
+ };
2133
+
2134
+ //! @endcond
2135
+
2136
+ #endif /* ndef OGR_FEATURE_H_INCLUDED */