{"_id":"@allmaps/io","_rev":"4-8c480cb773c42da8aecbd54c32510fde","name":"@allmaps/io","dist-tags":{"latest":"1.0.0-beta.5"},"versions":{"1.0.0-beta.2":{"name":"@allmaps/io","version":"1.0.0-beta.2","keywords":["allmaps","io"],"license":"MIT","_id":"@allmaps/io@1.0.0-beta.2","maintainers":[{"name":"bertspaan","email":"hello@bertspaan.nl"}],"contributors":[{"url":"https://bertspaan.nl","name":"Bert Spaan","email":"hello@bertspaan.nl"},{"url":"https://manuelclaeysbouuaert.be","name":"Manuel Claeys Bouuaert","email":"manuel.claeys.b@gmail.com"}],"homepage":"https://allmaps.org","bugs":{"url":"https://github.com/allmaps/allmaps/issues"},"dist":{"shasum":"ceee6b606b2cdd3931d27f2d2d53d0df89516cd5","tarball":"https://registry.npmjs.org/@allmaps/io/-/io-1.0.0-beta.2.tgz","fileCount":23,"integrity":"sha512-uvaCB52QOdCtQo0nw9r4tNPW4sXd8YiDLyhxwuRzaYKU5FxXDgbIlxy6EjQ2XJaMYuZzF71pMI9JqIQ4g9qPxA==","signatures":[{"sig":"MEUCIHn07mOSUYj0ZCsqSrjqaMrxtfkDYOtdSFOAv7if86z0AiEA3amF66uFjjhwP84WCb91RbNQ3D8MDzpzkwl8jFBgnjw=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":49217},"type":"module","exports":"./dist/index.js","gitHead":"dfe8dc3b15ae53f3dec0627144a0778de3a51779","scripts":{"lint":"prettier --check src && eslint src --ext .js,.ts","build":"tsc && pnpm run documentation","types":"tsc --noEmit","watch":"tsc --watch","format":"prettier --write src","documentation":"remark . --output --use remark-api"},"_npmUser":{"name":"bertspaan","email":"hello@bertspaan.nl"},"repository":{"url":"git+https://github.com/allmaps/allmaps.git","type":"git","directory":"packages/io"},"_npmVersion":"lerna/4.7.0/node@v24.10.0+arm64 (darwin)","description":"Import properties and export derivatives of Georeference Annotations","directories":{},"_nodeVersion":"24.10.0","dependencies":{"@allmaps/id":"^1.0.0-beta.36","stream-json":"^1.9.1","@allmaps/types":"^1.0.0-beta.21","@allmaps/stdlib":"^1.0.0-beta.38","@allmaps/project":"^1.0.0-beta.6","@allmaps/transform":"^1.0.0-beta.49","@allmaps/annotation":"^1.0.0-beta.36"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"eslint":"^8.56.0","prettier":"^3.6.2","remark-api":"^1.1.0","remark-cli":"^12.0.1","typescript":"^5.7.0","@types/eslint":"^8.56.0","@types/stream-json":"^1.7.2","eslint-config-prettier":"^9.1.0","@typescript-eslint/parser":"^7.0.0","@typescript-eslint/eslint-plugin":"^7.0.0"},"_npmOperationalInternal":{"tmp":"tmp/io_1.0.0-beta.2_1762812027304_0.3482999426592739","host":"s3://npm-registry-packages-npm-production"}},"1.0.0-beta.3":{"name":"@allmaps/io","version":"1.0.0-beta.3","keywords":["allmaps","io"],"license":"MIT","_id":"@allmaps/io@1.0.0-beta.3","maintainers":[{"name":"bertspaan","email":"hello@bertspaan.nl"}],"contributors":[{"url":"https://bertspaan.nl","name":"Bert Spaan","email":"hello@bertspaan.nl"},{"url":"https://manuelclaeysbouuaert.be","name":"Manuel Claeys Bouuaert","email":"manuel.claeys.b@gmail.com"}],"homepage":"https://allmaps.org","bugs":{"url":"https://github.com/allmaps/allmaps/issues"},"dist":{"shasum":"57a5fee02637bd64f38097b7c9e1cd1ed21efb01","tarball":"https://registry.npmjs.org/@allmaps/io/-/io-1.0.0-beta.3.tgz","fileCount":23,"integrity":"sha512-J2unTneXouMLdTqXNVjPCF6a4+IXNXLPIPhZs1MVkkUrcS2NvYtCsUR5+m+EE+RRc6jZjR6S/O6jL+r2Ch8lCA==","signatures":[{"sig":"MEUCIQCMOGwcb63/Ke+toN/bujjDCUuvepoggi+NayMYTKIj2AIgYPYSqVksjKHWmezUoI0vui+rjyiLLKcLZPeNYB25ez4=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":49217},"type":"module","exports":"./dist/index.js","gitHead":"814686e9c8e78777708c22dcd1efc4c81d968539","scripts":{"lint":"prettier --check src && eslint src --ext .js,.ts","build":"tsc && pnpm run documentation","types":"tsc --noEmit","watch":"tsc --watch","format":"prettier --write src","documentation":"remark . --output --use remark-api"},"_npmUser":{"name":"bertspaan","email":"hello@bertspaan.nl"},"repository":{"url":"git+https://github.com/allmaps/allmaps.git","type":"git","directory":"packages/io"},"_npmVersion":"lerna/4.7.0/node@v24.10.0+arm64 (darwin)","description":"Import properties and export derivatives of Georeference Annotations","directories":{},"_nodeVersion":"24.10.0","dependencies":{"@allmaps/id":"^1.0.0-beta.37","stream-json":"^1.9.1","@allmaps/types":"^1.0.0-beta.22","@allmaps/stdlib":"^1.0.0-beta.39","@allmaps/project":"^1.0.0-beta.7","@allmaps/transform":"^1.0.0-beta.50","@allmaps/annotation":"^1.0.0-beta.36"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"eslint":"^8.56.0","prettier":"^3.6.2","remark-api":"^1.1.0","remark-cli":"^12.0.1","typescript":"^5.7.0","@types/eslint":"^8.56.0","@types/stream-json":"^1.7.2","eslint-config-prettier":"^9.1.0","@typescript-eslint/parser":"^7.0.0","@typescript-eslint/eslint-plugin":"^7.0.0"},"_npmOperationalInternal":{"tmp":"tmp/io_1.0.0-beta.3_1764251095630_0.10031964493191103","host":"s3://npm-registry-packages-npm-production"}},"1.0.0-beta.4":{"name":"@allmaps/io","version":"1.0.0-beta.4","keywords":["allmaps","io"],"license":"MIT","_id":"@allmaps/io@1.0.0-beta.4","maintainers":[{"name":"bertspaan","email":"hello@bertspaan.nl"}],"contributors":[{"url":"https://bertspaan.nl","name":"Bert Spaan","email":"hello@bertspaan.nl"},{"url":"https://manuelclaeysbouuaert.be","name":"Manuel Claeys Bouuaert","email":"manuel.claeys.b@gmail.com"}],"homepage":"https://allmaps.org","bugs":{"url":"https://github.com/allmaps/allmaps/issues"},"dist":{"shasum":"b3ec39611581f30da4eb957395be263442d3e5a1","tarball":"https://registry.npmjs.org/@allmaps/io/-/io-1.0.0-beta.4.tgz","fileCount":19,"integrity":"sha512-uM2cm13flXuVWnCxnHgWjlCFBt1YO+TMw1/Hp9/aiGR4kZtiPtZ3gup0QNZBaNMjz9yjMrplo2WgxDXYqLwRVw==","signatures":[{"sig":"MEUCIFk1InDV3mEtdiaJja9T394Cjon9Ih/+vVA2acO1Ga9KAiEA61ZmRkVhWT0OtjU1V8xyuyJxx+bd/zh8HmRBMHja3Ck=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":47874},"type":"module","exports":"./dist/index.js","gitHead":"5801dd5a129c88cb0aaea3f45e2e288f38565d46","scripts":{"lint":"prettier --check src && eslint src --ext .js,.ts","build":"tsc && pnpm run documentation","types":"tsc --noEmit","watch":"tsc --watch","format":"prettier --write src","documentation":"remark . --output --use remark-api"},"_npmUser":{"name":"bertspaan","email":"hello@bertspaan.nl"},"repository":{"url":"git+https://github.com/allmaps/allmaps.git","type":"git","directory":"packages/io"},"_npmVersion":"lerna/4.9.4/node@v24.10.0+arm64 (darwin)","description":"Import properties and export derivatives of Georeference Annotations","directories":{},"_nodeVersion":"24.10.0","dependencies":{"@allmaps/id":"^1.0.0-beta.37","stream-json":"^1.9.1","@allmaps/types":"^1.0.0-beta.22","@allmaps/stdlib":"^1.0.0-beta.40","@allmaps/project":"^1.0.0-beta.8","@allmaps/transform":"^1.0.0-beta.51","@allmaps/annotation":"^1.0.0-beta.36"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"eslint":"^8.56.0","prettier":"^3.6.2","remark-api":"^1.1.0","remark-cli":"^12.0.1","typescript":"^5.7.0","@types/eslint":"^8.56.0","@types/stream-json":"^1.7.2","eslint-config-prettier":"^9.1.0","@typescript-eslint/parser":"^7.0.0","@typescript-eslint/eslint-plugin":"^7.0.0"},"_npmOperationalInternal":{"tmp":"tmp/io_1.0.0-beta.4_1770665502091_0.48069644966576286","host":"s3://npm-registry-packages-npm-production"}},"1.0.0-beta.5":{"name":"@allmaps/io","version":"1.0.0-beta.5","contributors":[{"name":"Bert Spaan","email":"hello@bertspaan.nl","url":"https://bertspaan.nl"},{"name":"Manuel Claeys Bouuaert","email":"manuel.claeys.b@gmail.com","url":"https://manuelclaeysbouuaert.be"}],"description":"Import properties and export derivatives of Georeference Annotations","type":"module","exports":"./dist/index.js","publishConfig":{"access":"public"},"repository":{"type":"git","url":"git+https://github.com/allmaps/allmaps.git","directory":"packages/io"},"homepage":"https://allmaps.org","keywords":["allmaps","io"],"scripts":{"watch":"tsc --watch --noCheck","build":"tsc --noCheck","types":"tsc --noEmit","documentation":"remark . --output --use remark-api","lint":"prettier --ignore-path ../../.gitignore --check src && eslint src --ext .js,.ts","format":"prettier --ignore-path ../../.gitignore --write src"},"license":"MIT","dependencies":{"@allmaps/annotation":"^1.0.0-beta.37","@allmaps/id":"^1.0.0-beta.38","@allmaps/project":"^1.0.0-beta.9","@allmaps/stdlib":"^1.0.0-beta.41","@allmaps/transform":"^1.0.0-beta.52","@allmaps/types":"^1.0.0-beta.23","proj4":"^2.20.0","stream-json":"^1.9.1"},"devDependencies":{"@types/eslint":"^8.56.0","@types/stream-json":"^1.7.2","@typescript-eslint/eslint-plugin":"^7.0.0","@typescript-eslint/parser":"^7.0.0","eslint":"^8.56.0","eslint-config-prettier":"^9.1.0","prettier":"^3.6.2","remark-api":"^1.1.0","remark-cli":"^12.0.1","typescript":"^5.9.3"},"gitHead":"0776371fa222f670b893d87b302c6334e825ac3e","_id":"@allmaps/io@1.0.0-beta.5","bugs":{"url":"https://github.com/allmaps/allmaps/issues"},"_nodeVersion":"25.8.0","_npmVersion":"lerna/4.9.4/node@v25.8.0+arm64 (darwin)","dist":{"integrity":"sha512-DV/BKlPkxDHxQCAdiNMpFAXNVToQ9dH/L9+keB12YXgReWMZ7h2war60kRLVYYWTh/F5erERdB9QCZxTP06+UA==","shasum":"4f1f86b28650afbbfe7c0ffed05b85ad5015b603","tarball":"https://registry.npmjs.org/@allmaps/io/-/io-1.0.0-beta.5.tgz","fileCount":19,"unpackedSize":47931,"signatures":[{"keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U","sig":"MEUCIQCm6MRnvoa1QA5ffdeGxVdKICYHmgzQ0a+S++YHDwz9zgIgCtZeckC/I5gAa7Jv5Co8rDYXlTFREtlJbH6WHbNufW8="}]},"_npmUser":{"name":"bertspaan","email":"hello@bertspaan.nl"},"directories":{},"maintainers":[{"name":"bertspaan","email":"hello@bertspaan.nl"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages-npm-production","tmp":"tmp/io_1.0.0-beta.5_1780001976630_0.3068987524224345"},"_hasShrinkwrap":false}},"time":{"created":"2025-11-10T22:00:27.186Z","modified":"2026-05-28T20:59:36.900Z","1.0.0-beta.2":"2025-11-10T22:00:27.512Z","1.0.0-beta.3":"2025-11-27T13:44:55.881Z","1.0.0-beta.4":"2026-02-09T19:31:42.306Z","1.0.0-beta.5":"2026-05-28T20:59:36.751Z"},"bugs":{"url":"https://github.com/allmaps/allmaps/issues"},"license":"MIT","homepage":"https://allmaps.org","keywords":["allmaps","io"],"repository":{"type":"git","url":"git+https://github.com/allmaps/allmaps.git","directory":"packages/io"},"description":"Import properties and export derivatives of Georeference Annotations","contributors":[{"name":"Bert Spaan","email":"hello@bertspaan.nl","url":"https://bertspaan.nl"},{"name":"Manuel Claeys Bouuaert","email":"manuel.claeys.b@gmail.com","url":"https://manuelclaeysbouuaert.be"}],"maintainers":[{"name":"bertspaan","email":"hello@bertspaan.nl"}],"readme":"# @allmaps/io\n\nImport properties and export derivatives of [Georeference Annotations](https://iiif.io/api/extension/georef/).\n\nFor parsing and generating full Georeference Annotations, see [@allmaps/annotation](../../packages/annotation/)\n\n## Installation\n\nThis is an ESM-only module that works in browsers and in Node.js.\n\nInstall with pnpm:\n\n```sh\npnpm install @allmaps/io\n```\n\n## Usage\n\nThis package contains functions for importing specific properties of Georeference Annotation, or creating derivatives from them. These are used in apps like [@allmaps/cli](../../apps/cli/) and [@allmaps/editor](../../apps/editor/).\n\n### GeoTIFF scripts\n\nGenerate a Bash script that uses [GDAL](https://gdal.org/index.html) to convert one or more downloaded full-size IIIF images to [Cloud Optimized GeoTIFFs](https://www.cogeo.org/) using a given Georeferenced Map:\n\n```js\nimport { parseAnnotation } from '@allmaps/annotation'\nimport { ProjectedGcpTransformer } from '@allmaps/project'\n\n// Fetch an annotation\nconst annotation = await fetch(annoationUrl).then((response) => response.json())\n\n// Create georeferencedMaps from the annotation\nconst georeferencedMaps = parseAnnotation(annotation)\n\n// Create the script\nconst geotiffScripts = await getGeoreferencedMapsGeotiffScripts(maps)\n\n// Log scripts (or write to file)\nconsole.log(geotiffScripts.join('\\n'))\n```\n\nThe generated Bash script expects the full-size images to be available on the local file system with the correct name. You can download these images manually or using the [@allmaps/cli](../../apps/cli/)'s `allmaps fetch full-image` or `allmaps script dezoomify` command.\n\n### Print GCPs\n\nGCPs can be printed to common [GCP file formats](#gcp-file-formats).\n\n```js\nimport { parseAnnotation } from '@allmaps/annotation'\nimport { ProjectedGcpTransformer } from '@allmaps/project'\n\n// Fetch an annotation\nconst annotation = await fetch(annoationUrl).then((response) => response.json())\n\n// Create a georeferencedMap from the annotation\nconst georeferencedMaps = parseAnnotation(annotation)\nconst georeferencedMap = parseAnnotation(annotation)\n\n// Print GCPs to QGIS format\nconst gcpString = generateGeoreferencedMapGcps(georeferencedMap, {\n  gcpFileFormat: 'qgis'\n})\n\n// Log GCPs (or write to file)\nconsole.log(gcpString)\n```\n\nGCPs are printed in \"EPSG:4326\" by default, but their projection can be specified via the options. Use \"EPSG:3857\", the default projection in [@allmaps/project](../../packages/project/) and [@allmaps/render](../../packages/render/), to obtain the same result when using printed GCPs in e.g. QGIS.\n\n### Parse GCPs\n\nGCPs can be parsed from common [GCP file formats](#gcp-file-formats).\n\n```js\nimport { readFileSync } from 'fs'\n\n// Read a GCP file\nconst gcpString = readFileSync('./gcps.points', { encoding: 'utf8', flag: 'r' })\n\n// parse the GCPs and, if found in a QGIS file format, their projection\nconst { gcps, gcpProjection } = parseGcps(gcpString)\n```\n\nGCPs are expected in \"EPSG:4326\" by default, but their projection can be specified in a QGIS GCP file format or via the options.\n\n## GCP file formats\n\nThe following GCP file formats are supported for reading and writing:\n\n```ts\nexport type gcpFileFormat = 'gdal' | 'qgis' | 'arcgis-csv' | 'arcgis-tsv'\n```\n\n### GDAL-like files\n\nGDAL doesn't allow loading GCP from files, but `gdal_translate` allows to specify GCPs using argument. The [documentation](https://gdal.org/en/stable/programs/gdal_translate.html#cmdoption-gdal_translate-gcp) about this tells us something about GCPs in GDAL:\n\n`-gcp <pixel> <line> <easting> <northing> [<elevation>]`\n\nIf we follow the same logic, a GDAL GCP file would look like this:\n\n```\n3899 6412 9.9301538 53.5814021\n6584 819 25.4101689 71.0981125\n6491 4782 22.2380717 60.4764844\n1409 5436 -3.2014645 55.959946\n1765 1737 -18.1014216 64.3331759\n```\n\nColumn order is `resourceX`, `resourceY`, `gcpProjectedGeoX`, `gcpProjectedGeoY`. Resource origin is in the upper left of the image, and resource y-axis is pointing down.\n\nSince this (simple) format follows the same conventions as other Allmaps packages and as the [Georeference Annotation spec](https://iiif.io/api/extension/georef/), we'll use this format as a default.\n\n### QGIS Georeferencer files\n\nFile format used in [QGIS Georeferencer](https://docs.qgis.org/3.40/en/docs/user_manual/managing_data_source/georeferencer.html). Such files typically have the `.points` file-extension.\n\n```\n#CRS: PROJCS[\"ETRS89-extended / LAEA Europe\",GEOGCS[\"ETRS89\",DATUM[\"European_Terrestrial_Reference_System_1989\",SPHEROID[\"GRS 1980\",6378137,298.257222101,AUTHORITY[\"EPSG\",\"7019\"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY[\"EPSG\",\"6258\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"4258\"]],PROJECTION[\"Lambert_Azimuthal_Equal_Area\"],PARAMETER[\"latitude_of_center\",52],PARAMETER[\"longitude_of_center\",10],PARAMETER[\"false_easting\",4321000],PARAMETER[\"false_northing\",3210000],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AUTHORITY[\"EPSG\",\"3035\"]]\nmapX,mapY,sourceX,sourceY,enable,dX,dY,residual\n4316373.376414543,3385976.075841331,3899,6412,1,-0.0000000000039222,0.00000000030794922,0.0000000003079742\n4880681.582355963,5391377.562290795,6584,819,1,-0.0000000000039222,0.00000000030794922,0.0000000003079742\n4992046.052562315,4211073.756809569,6491,4782,1,-0.0000000000039222,0.00000000030794922,0.0000000003079742\n3501317.073142613,3726222.5800730046,1409,5436,1,-0.0000000000039222,0.00000000030794922,0.0000000003079742\n2997626.6441897955,4852265.50079984,1765,1737,1,-0.0000000000039222,0.00000000030794922,0.0000000003079742\n```\n\nColumn order is `gcpProjectedGeoX`, `gcpProjectedGeoY`, `resourceX`, `resourceY`. Resource origin is in the upper left of the image, and resource y-axis is pointing up (with negative `resourceY` coordinates so as to assure equal handedness of the resource and projectedGeo axis).\n\nThe first line may specify a CRS in WKT format (proj4string not supported currently). When reading this format the CRS in this first line is parsed and returned via the `gcpProjection` and the GCPs are parsed using this CRS. When printing to this format the `gcpProjection` option's definition is printed as this CRS. Since only a WKT format is supported, avoid passing a projection whose definition is a proj4string.\n\n### ESRI CSV files\n\nFile format used in ArcGIS. Such files typically have the `.csv` file-extension.\n\n```\n1,3899,6412,9.9301538,53.5814021\n2,6584,819,25.4101689,71.0981125\n3,6491,4782,22.2380717,60.4764844\n4,1409,5436,-3.2014645,55.959946\n5,1765,1737,-18.1014216,64.3331759\n```\n\nColumn order is `id`, `resourceX`, `resourceY`, `gcpProjectedGeoX`, `gcpProjectedGeoY`. Resource origin is in the upper left of the image, and resource y-axis is pointing up (with negative `resourceY` coordinates so as to assure equal handedness of the resource and projectedGeo axis).\n\n### ESRI TSV files\n\nFile format used in ArcGIS. Such files typically have the `.txt` file-extension.\n\n```\n3899\t6412\t9.9301538\t53.5814021\n6584\t819\t25.4101689\t71.0981125\n6491\t4782\t22.2380717\t60.4764844\n1409\t5436\t-3.2014645\t55.959946\n1765\t1737\t-18.1014216\t64.3331759\n```\n\nColumn order is `resourceX`, `resourceY`, `gcpProjectedGeoX`, `gcpProjectedGeoY`. Resource origin is in the upper left of the image, and resource y-axis is pointing up (with negative `resourceY` coordinates so as to assure equal handedness of the resource and projectedGeo axis).\n\n## License\n\nMIT\n\n## API\n\n### `GcpFileFormat`\n\n###### Type\n\n```ts\n'qgis' | 'arcgis-csv' | 'arcgis-tsv' | 'gdal'\n```\n\n### `GcpFileFormatWithResourceYAxisUp`\n\n###### Type\n\n```ts\n'qgis' | 'arcgis-csv' | 'arcgis-tsv'\n```\n\n### `GcpResourceOrigin`\n\n###### Type\n\n```ts\n'top-left' | 'bottom-left'\n```\n\n### `GcpResourceYAxis`\n\n###### Type\n\n```ts\n'up' | 'down'\n```\n\n### `generateCheckCommand(command, message)`\n\n###### Parameters\n\n* `command` (`string`)\n* `message` (`string`)\n\n###### Returns\n\n`string`.\n\n### `generateGeoreferencedMapGcps(map, options)`\n\nGenerate GCPs from Georeferenced Map to file string.\n\nA projection can be specified files to print files,\nand will be infered from the map's resourceCrs by default.\nIts definition will be included in QGIS GCP files.\nThe resource height must specified when parsing GCPs with resource origin in bottom left,\nand will be infered from the map by default.\n\n###### Parameters\n\n* `map` (`{ type: \"GeoreferencedMap\"; resource: { id: string; type: \"ImageService1\" | \"ImageService2\" | \"ImageService3\" | \"Canvas\"; height?: number | undefined; width?: number | undefined; partOf?: Array<PartOfItemType> | undefined; provider?: Array<{ ...; }> | undefined; }; ... 8 more ...; _allmaps?: unknown; }`)\n* `options?` (`  | Partial<{\n        gcpFileFormat: GcpFileFormat\n        gcpResourceYAxis: GcpResourceYAxis\n        gcpResourceWidth: number\n        gcpResourceHeight: number\n        resourceWidth: number\n        resourceHeight: number\n        gcpResourceOrigin: GcpResourceOrigin\n        gcpProjection: Projection\n      }>\n    | undefined`)\n\n###### Returns\n\n`string`.\n\n### `generateGeoreferencedMapsGeotiffScripts(maps, options)`\n\n###### Parameters\n\n* `maps` (`Array<{ type: \"GeoreferencedMap\"; resource: { id: string; type: \"ImageService1\" | \"ImageService2\" | \"ImageService3\" | \"Canvas\"; height?: number | undefined; width?: number | undefined; partOf?: Array<PartOfItemType> | undefined; provider?: Array<{ ...; }> | undefined; }; ... 8 more ...; _allmaps?: unknown; }>`)\n* `options?` (`  | Partial<{\n        projectedTransformers: ProjectedGcpTransformer[]\n        imageFilenames: {[key: string]: string}\n        sourceDir: string\n        outputDir: string\n        jpgQuality: number\n      }>\n    | undefined`)\n\n###### Returns\n\n`Promise<string>`.\n\n### `generateLeafletExample(annotationUrl, center, zoom)`\n\n###### Parameters\n\n* `annotationUrl` (`string`)\n* `center` (`[number, number]`)\n* `zoom` (`number`)\n\n###### Returns\n\n`string`.\n\n### `generateMapLibreExample(annotationUrl, center, zoom)`\n\n###### Parameters\n\n* `annotationUrl` (`string`)\n* `center` (`[number, number]`)\n* `zoom` (`number`)\n\n###### Returns\n\n`string`.\n\n### `generateOpenLayersExample(annotationUrl, center, zoom)`\n\n###### Parameters\n\n* `annotationUrl` (`string`)\n* `center` (`[number, number]`)\n* `zoom` (`number`)\n\n###### Returns\n\n`string`.\n\n### `parseGcpProjectionFromGcpString(gcpString)`\n\n###### Parameters\n\n* `gcpString` (`string`)\n\n###### Returns\n\n`Projection | undefined`.\n\n### `parseGcps(gcpString, options)`\n\nParse GCPs from file string.\n\nA projection can be included in a QGIS GCP file and will be used when parsing and returned.\nA projection can be specified to parse ArcGIS files.\nThe resource height must specified when parsing GCPs with resource origin in bottom left.\n\n###### Parameters\n\n* `gcpString` (`string`)\n* `options?` (`  | Partial<{\n        gcpFileFormat: GcpFileFormat\n        gcpResourceYAxis: GcpResourceYAxis\n        gcpResourceWidth: number\n        gcpResourceHeight: number\n        resourceWidth: number\n        resourceHeight: number\n        gcpResourceOrigin: GcpResourceOrigin\n        gcpProjection: Projection\n      }>\n    | undefined`)\n\n###### Returns\n\n`{gcps: Gcp[]; gcpProjection?: Projection}`.\n\n### `parseGdalCoordinateLines(lines)`\n\n###### Parameters\n\n* `lines` (`Array<string>`)\n\n###### Returns\n\n`Array<Array<number>>`.\n","readmeFilename":"README.md"}