{"_id":"@aerisweather/abaculus","_rev":"11-68aac11ad9a81a39b1ca75d29f15fcfa","name":"@aerisweather/abaculus","dist-tags":{"latest":"3.1.2"},"versions":{"3.1.0":{"name":"@aerisweather/abaculus","version":"3.1.0","_id":"@aerisweather/abaculus@3.1.0","maintainers":[{"name":"u10int","email":"nshipes@urban10.com"},{"name":"bennyc50","email":"bennyc50@gmail.com"},{"name":"lhuffmam","email":"lhuffman@aerisweather.com"},{"name":"four43","email":"seth@four43.com"},{"name":"lstanley","email":"lstanley@aerisweather.com"},{"name":"aerisweather-ci","email":"eschwartz@aerisweather.com"}],"contributors":[{"name":"Yuri Astrakhan","email":"yurik@wikimedia.org"},{"name":"Seth Miller","email":"smiller@aerisweather.com"}],"homepage":"https://github.com/mapbox/abaculus#readme","bugs":{"url":"https://github.com/mapbox/abaculus/issues"},"dist":{"shasum":"8f9cb189dda11573b9d9dd47d777f0cf1841081f","tarball":"https://registry.npmjs.org/@aerisweather/abaculus/-/abaculus-3.1.0.tgz","fileCount":13,"integrity":"sha512-tAr7LKxBFFSymH+lpPMcaIlpGV/Zyfubp6Tvnf0hTjNxntRyZuo/lQzHCVSc190vH9CJ4ryjtroxG8xBsucvzA==","signatures":[{"sig":"MEUCICfPjbMbNJT1tZC96PEjTz0VrttVqkgdU4Rgsa1tdUeUAiEAxtCYXPZCyneSs/hoDZbSrR/RLIi/H56ErCALFdzGvAY=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":26043,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJcWHckCRA9TVsSAnZWagAAtRQQAJpemTQnu1cal92V1j4k\n92wmb2wU5lXA0vpC53FhZvy4OUkLfK5mQM4Mehg5bqE8SIQIxqsPc2ggREB3\nykx88I35s9v3ekgblhtTOBK4aPyDCbJGB8NzmG/LvO5wLxEDKwUERM22Trg3\nRQ01cH/gHTdymjMs9pJNiLph905qi+LWAon/KuPp6TF8QjAeAtucOhTi7qyk\n8wULSUZwQIAVBMvf9yyk5w1liabQ91slIMxuUG1146V3rwDOQOlHUM62LCMo\nF/xQt8Vrgsp14+C0lBnCyUsqCbc/iKP6uNEfoWF383ZxWERTmHdKa45JC6xG\ns65WyFV+J1ytZMWOgG/p16O82iYzsFymeRO3lG/cngPssXtvRvby0lbT7ZGE\nmm3xrgNzj1XgC8FSwLsYW8IqE56d6kMuoFfwQTqmVi1K5uyGo1m3JqSUn4pi\nyOzAxyL39fQN5Bj2pvNxpQM/nzeXzkkEJmZXUQ0D7r0oMmKaT/zPpoAehsVE\niQzhsUOyqa8FaTFUgVRk0GySlNrvXyZpYBTdNL7DGLpZTF8rCqu/47uocdg3\nCzKw7WVIkSAz5kXtciSG/y/VmUOKlObhL2Fl0HY3M/b+odN1YMPPSb7Ls9kb\nSIUg0HrbUQGUQsBRbPd9Arqu3rmT17NoF35h7WbKW7hGFEgiOoHG7zhr3jCk\ndeP6\r\n=IvMq\r\n-----END PGP SIGNATURE-----\r\n"},"main":"index.js","gitHead":"173a659bdf6eafd27524883011f7fedb909c9e32","scripts":{"test":"mocha -R spec"},"_npmUser":{"name":"four43","email":"seth@four43.com"},"repository":{"url":"git+ssh://git@github.com/mapbox/abaculus.git","type":"git"},"_npmVersion":"6.4.1","description":"stitches map tiles together for high-res exporting from tm2","directories":{},"_nodeVersion":"10.15.0","dependencies":{"mapnik":"^4.2.1","d3-queue":"^2.0.2","@mapbox/sphericalmercator":"^1.0.5"},"_hasShrinkwrap":false,"devDependencies":{"mocha":"^5.2.0"},"_npmOperationalInternal":{"tmp":"tmp/abaculus_3.1.0_1549301539276_0.32503916146267153","host":"s3://npm-registry-packages"}},"3.1.1":{"name":"@aerisweather/abaculus","version":"3.1.1","_id":"@aerisweather/abaculus@3.1.1","maintainers":[{"name":"aerisweather-ci","email":"eschwartz@aerisweather.com"},{"name":"bennyc50","email":"bennyc50@gmail.com"},{"name":"four43","email":"seth@four43.com"},{"name":"lhuffmam","email":"lhuffman@aerisweather.com"},{"name":"lstanley","email":"lstanley@aerisweather.com"},{"name":"u10int","email":"nshipes@urban10.com"}],"contributors":[{"name":"Yuri Astrakhan","email":"yurik@wikimedia.org"},{"name":"Seth Miller","email":"smiller@aerisweather.com"}],"homepage":"https://github.com/mapbox/abaculus#readme","bugs":{"url":"https://github.com/mapbox/abaculus/issues"},"dist":{"shasum":"093bf53877fdebcaa09079ba720a7b1ef0538345","tarball":"https://registry.npmjs.org/@aerisweather/abaculus/-/abaculus-3.1.1.tgz","fileCount":13,"integrity":"sha512-MPCe0+WtLsQGXYhe3zhemieQg83ykN4VCeqkGF5sVo0wm1cUQKySqDbhTUqFkm0xYJs7fo7R/gmcOBKNUqH3ug==","signatures":[{"sig":"MEUCIQDlJBqtUG2gxfdZCZtr5VpexBcQUsC9gVqFkaX4SgaPegIgdHOuu5h+xT99xg2jih5HDqMhdjni9BkSnty6vmCjVLM=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":27745,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJcdE/vCRA9TVsSAnZWagAACeUP/jRbsETfaFBxpRW4d4oZ\nlWbEiQyKc0QqpGKZi6W9mYN/PCQHhtloKpO9Sp4/1R4N/V47iLoegc20Dl1j\n+c+G02dGowOcdibyfevT9UGmyI+Cpvl+mFpuhPBO8oXSdo22RIWO/eAnb4cT\ngKoOGQ3LsKUNazO+qP6X1MFh79lvtgVLo0uK2uJRXVSER69wRg7qUsPvmCc1\npGyH+jQ4kW79OgvmbByi1QoFBuza1T+UcBmB3pxFu1cazqT8ORhbNJ9GkEZ9\nzs2G2tHoKdesHnzmdkgTIlZVq27UsL8Yq7/yI05ihIYe3zQXB5Fe5zyP4BIC\nYbP8w3mtS3BHEygpg0235Xl+583Z60OLp7tdGPLUVH+qL3bkh8TfGbZ5vnzb\nCREdRYOEjXh3uE3e9UrjhjaUDbbesu05ho63gTlViPDQ56pHk4nWDY+LQbFF\nl6HytaTIS1KPzZ6D8jRCn/TpVUJkznwqkshZJjlGYwSX65YkIkEgnqTqKvkC\n/Bl+5FKOxWk2+csI726EEBp/ft6zE6gFRyjBa+7J6MU/mvsdypmB4TCyN51U\nop5Z5A3JKpiV34myrJHYFGJHz81/DyV5CQkcYrUUs749ZtSBmtAEKxZPzU64\n3PrsCtAYkdinEsztF+3Xut1llyZ4PE5DkX2RJTdsxGKr06ibaUtadexoUrNy\n4IP0\r\n=Qnb8\r\n-----END PGP SIGNATURE-----\r\n"},"main":"index.js","gitHead":"d7452db46bb540281021a81d68b3749865c0e622","scripts":{"test":"mocha -R spec"},"_npmUser":{"name":"four43","email":"seth@four43.com"},"repository":{"url":"git+ssh://git@github.com/mapbox/abaculus.git","type":"git"},"_npmVersion":"6.4.1","description":"stitches map tiles together for high-res exporting from tm2","directories":{},"_nodeVersion":"10.15.1","dependencies":{"mapnik":"^4.2.1","d3-queue":"^2.0.2","@mapbox/sphericalmercator":"^1.0.5"},"_hasShrinkwrap":false,"devDependencies":{"mocha":"^5.2.0"},"_npmOperationalInternal":{"tmp":"tmp/abaculus_3.1.1_1551126510811_0.7489618134309834","host":"s3://npm-registry-packages"}},"3.1.2":{"name":"@aerisweather/abaculus","version":"3.1.2","_id":"@aerisweather/abaculus@3.1.2","maintainers":[{"name":"oliver.alexander.aw","email":"oliver.alexander@aerisweather.com"},{"name":"noahblon","email":"noahblon@gmail.com"},{"name":"u10int","email":"nshipes@urban10.com"},{"name":"bennyc50","email":"bennyc50@gmail.com"},{"name":"lhuffmam","email":"lhuffman@aerisweather.com"},{"name":"four43","email":"seth@four43.com"},{"name":"aerisweather-ci","email":"eschwartz@aerisweather.com"}],"contributors":[{"name":"Yuri Astrakhan","email":"yurik@wikimedia.org"},{"name":"Seth Miller","email":"smiller@aerisweather.com"}],"homepage":"https://github.com/mapbox/abaculus#readme","bugs":{"url":"https://github.com/mapbox/abaculus/issues"},"dist":{"shasum":"8ad9a963a473c694909d8b42851693a00be9ebdf","tarball":"https://registry.npmjs.org/@aerisweather/abaculus/-/abaculus-3.1.2.tgz","fileCount":7,"integrity":"sha512-QnJODxWPjbtesCcLVD2roz9UjBU5m/9rawIxD9ViePZQyKMcTp27BecQ+NxO9ryybY6RuvpYSkVWbSPT+5hulw==","signatures":[{"sig":"MEUCIF1QKt/o7kf73CDaGEe+YsSGt6BKZ+3cQNAZlHnvUv+8AiEAxxjUlu9hyqDZp78bxmiGr7pocuIhYZkpbv4m9xTx8Vo=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":13918},"main":"index.js","gitHead":"01fcdb76ccbb06a21f52946283b554a96688edb8","scripts":{"test":"mocha -R spec"},"_npmUser":{"name":"four43","email":"seth@four43.com"},"repository":{"url":"git+ssh://git@github.com/mapbox/abaculus.git","type":"git"},"_npmVersion":"10.8.2","description":"stitches map tiles together for high-res exporting from tm2","directories":{},"_nodeVersion":"20.17.0","dependencies":{"mapnik":"^4.2.1","d3-queue":"^2.0.2","@mapbox/sphericalmercator":"^1.0.5"},"_hasShrinkwrap":false,"devDependencies":{"mocha":"^5.2.0"},"_npmOperationalInternal":{"tmp":"tmp/abaculus_3.1.2_1727111545301_0.8541500402288633","host":"s3://npm-registry-packages"}}},"time":{"created":"2019-02-04T17:32:19.275Z","modified":"2026-06-18T21:56:46.557Z","3.1.0":"2019-02-04T17:32:19.536Z","3.1.1":"2019-02-25T20:28:30.966Z","3.1.2":"2024-09-23T17:12:25.474Z"},"bugs":{"url":"https://github.com/mapbox/abaculus/issues"},"homepage":"https://github.com/mapbox/abaculus#readme","repository":{"url":"git+ssh://git@github.com/mapbox/abaculus.git","type":"git"},"description":"stitches map tiles together for high-res exporting from tm2","contributors":[{"name":"Yuri Astrakhan","email":"yurik@wikimedia.org"},{"name":"Seth Miller","email":"smiller@aerisweather.com"}],"maintainers":[{"email":"nshipes@urban10.com","name":"u10int"},{"email":"bennyc50@gmail.com","name":"bennyc50"},{"email":"lhuffman@aerisweather.com","name":"lhuffmam"},{"email":"seth@four43.com","name":"four43"},{"email":"eschwartz@aerisweather.com","name":"aerisweather-ci"},{"email":"noahblon@gmail.com","name":"noahblon"},{"email":"devops@aerisweather.com","name":"xweather-ci"},{"email":"oliver.alexander@aerisweather.com","name":"oliver.alexander.aw"},{"email":"alexander.stone@vaisala.com","name":"xander-vaisala"}],"readme":"## abaculus\n\n> **Note From AerisWeather:**\n> We have made some updates to this repo and publishing it as @aerisweather/abaculus@3.1.0 on npm\n> Tests all pass for node 4, 8, 10\n\na small block of stone, tile, glass, or other material used in the construction of a mosaic\n\nor,\n\na library for creating static maps from tiles based on center or corner lng,lat coordinates.\nUses node-mapnik to stitch tiles together.\n\n[![Build Status](https://travis-ci.org/mapbox/abaculus.svg?branch=master)](https://travis-ci.org/mapbox/abaculus)\n\n[![Build status](https://ci.appveyor.com/api/projects/status/k5e2v42uhbda1ihx)](https://ci.appveyor.com/project/Mapbox/abaculus)\n\nLooking to create high res images of maps? Abaculus was written for use in [Mapbox Studio](http://github.com/mapbox/mapbox-studio) and you can use Mapbox Studio to create and export high resolution images -- see [https://www.mapbox.com/guides/print/](https://www.mapbox.com/guides/print/) for more information. You can even use [that utility from the command line](https://github.com/mapbox/mapbox-studio/issues/1024#issuecomment-63535433).\n\n### usage\n\nUsage and example formatting below, or see the [tests](https://github.com/mapbox/abaculus/blob/master/test/test.js#L158-L204) for a more robust example with a `getTile` function.\n\n#### input:\n`scale`: integer between 1-4 and sets resolution (`scale: 1` is 72dpi, `scale: 4`, is 288dpi)\n\n`zoom`: zoom level\n\n`[w, s, e, n]`: the bounding box for the west (lat val), south (lng val), east (lat val), north (lng val) for the desired area\n\n`x`: longitude coordinate\n\n`y`: latitude coordinate\n\n`width` and `height`: desired pixel bounds for a map with a center coordinate. Will be multiplied by scale to maintain resolution.\n\n`format` (optional): `png` or `jpeg`, default is `png`.\n\n`quality` (optional): when used with `jpeg` format, accepts 1-100 and defaults to 80. when used with `png` format, accepts 2-256 (# of colors to reduce the image to) and defaults to none.\n\n`tileSize` (optional, defaults to `256`): Specifies input size of tiles used in `getTile` function.\n\n`getTile`: a function that returns a tile buffer (png or otherwise) and headers given `z`, `x`, `y`, and a callback, such as from [tilelive-vector](https://github.com/mapbox/tilelive-vector/blob/master/index.js#L119-L218) or this [test function](https://github.com/mapbox/abaculus/blob/master/test/test.js#L184-L204).\n\n`limit` (optional): max width or height of generated image in pixels. Default is `19008`.\n\n```javascript\n// Calculate image bounds from W,S,E,N bounding box.\nvar params = {\n\tzoom: {zoom},\n\tscale: {scale}\n    bbox: [{w}, {s}, {e}, {n}],\n    format: {format},\n    quality: {quality},\n\ttileSize: {tileSize},\n    getTile: function(z, x, y, callback){\n\t\t// do something\n\t\treturn callback(null, buffer, headers);\n\t},\n\tlimit: {limit}\n};\n```\nor\n```javascript\n// Calculate image bounds from center lng,lat coordinates and\n// pixel dimensions of final image (will be multipled by scale).\nvar params = {\n\tzoom: {zoom},\n\tscale: {scale}\n    center: {\n    \tx: {x},\n    \ty: {y},\n    \tw: {width},\n    \th: {height}\n    },\n    format: {format},\n    quality: {quality},\n\ttileSize: {tileSize},\n    getTile: function(z,x,y, callback){\n\t\t// do something\n\t\treturn callback(null, buffer, headers);\n\t},\n\tlimit: {limit}\n};\n```\n#### usage:\n``` javascript\nabaculus(params, function(err, image, headers){\n\tif (err) return err;\n\t// do something with image\n});\n```\n\n#### output:\nan image of desired resolution for the selected area.\n","readmeFilename":"README.md"}