{"_id":"@2gis/mapgl-terra-draw","_rev":"9-781f9b3d67d5e503cc3412acf8c24cb1","name":"@2gis/mapgl-terra-draw","dist-tags":{"beta":"0.4.0-styling.0","latest":"0.4.0"},"versions":{"0.1.0":{"name":"@2gis/mapgl-terra-draw","version":"0.1.0","keywords":["mapgl","terradraw"],"author":{"name":"Michel Beloshitsky","email":"itano@yandex.ru"},"license":"MIT","_id":"@2gis/mapgl-terra-draw@0.1.0","maintainers":[{"name":"artem.malko","email":"artem.malko@gmail.com"},{"name":"trufi","email":"stevemyz@gmail.com"},{"name":"lastw","email":"me@lastw.net"},{"name":"itanka9","email":"mbeloshitsky@gmail.com"},{"name":"alxart","email":"a.artemev@inbox.ru"},{"name":"vitaliy.gis","email":"vitaliy.gis@gmail.com"},{"name":"kuznetcoff","email":"mail@kuznetsov.it"},{"name":"kalyanov","email":"oleg1556@gmail.com"},{"name":"kto-to","email":"count@ngs.ru"},{"name":"nortren_developer","email":"nortren@inbox.ru"}],"dist":{"shasum":"b04ff1c1e4396e1299fccaaf80de4f11b32ffeb2","tarball":"https://registry.npmjs.org/@2gis/mapgl-terra-draw/-/mapgl-terra-draw-0.1.0.tgz","fileCount":12,"integrity":"sha512-izNvX50VR+sQdutztbHYNMaO21RVcfoYtMN34UR6/8yD8kbwJ034H1DJUe41fFBz/1z9vmmo88tNt2tDE4+qjA==","signatures":[{"sig":"MEUCIAThQkClI0CxyBWYG51GojboEvvFKVkuQS97uCkN4mO3AiEAyKFyJV27aW/gL+Tm6mpwgMo9tJAr+zwA7Up2iTIPQ1U=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":57766},"main":"dist/mapgl-terra-draw.cjs","type":"module","module":"dist/mapgl-terra-draw.js","gitHead":"068922b5ea84eaf0cd250bf7eb265ba1e384a4c6","scripts":{"build":"npm run build:lib && npm run build:types","start":"vite demo","prettier":"prettier --check \"./**/*..{ts,html,css,md}\"","build:lib":"vite -c vite.config.lib.js build","build:demo":"vite build demo","build:types":"tsc --declaration --emitDeclarationOnly","prettier:write":"prettier --write \"./**/*.{ts,html,css,md}\""},"typings":"dist/index.d.ts","_npmUser":{"name":"itanka9","actor":{"name":"itanka9","type":"user","email":"mbeloshitsky@gmail.com"},"email":"mbeloshitsky@gmail.com"},"_npmVersion":"10.8.2","description":"TerraDraw adapter for MapGL JS API","directories":{},"_nodeVersion":"20.19.3","dependencies":{"geojson":"^0.5.0","terra-draw":"^1.8.0","@2gis/mapgl":"^1.61.0","vanilla-colorful":"^0.7.2"},"_hasShrinkwrap":false,"devDependencies":{"vite":"^6.3.5","prettier":"^3.6.0","typescript":"^5.8.3","@types/geojson":"^7946.0.16"},"_npmOperationalInternal":{"tmp":"tmp/mapgl-terra-draw_0.1.0_1751436830824_0.053766709300847815","host":"s3://npm-registry-packages-npm-production"}},"0.2.0":{"name":"@2gis/mapgl-terra-draw","version":"0.2.0","keywords":["mapgl","terradraw"],"author":{"name":"Michel Beloshitsky","email":"itano@yandex.ru"},"license":"MIT","_id":"@2gis/mapgl-terra-draw@0.2.0","maintainers":[{"name":"artem.malko","email":"artem.malko@gmail.com"},{"name":"trufi","email":"stevemyz@gmail.com"},{"name":"lastw","email":"me@lastw.net"},{"name":"itanka9","email":"mbeloshitsky@gmail.com"},{"name":"alxart","email":"a.artemev@inbox.ru"},{"name":"vitaliy.gis","email":"vitaliy.gis@gmail.com"},{"name":"kuznetcoff","email":"mail@kuznetsov.it"},{"name":"kalyanov","email":"oleg1556@gmail.com"},{"name":"kto-to","email":"count@ngs.ru"},{"name":"nortren_developer","email":"nortren@inbox.ru"}],"dist":{"shasum":"e93013756b4e4bfcd70cb341e1d7b4334ee88cbe","tarball":"https://registry.npmjs.org/@2gis/mapgl-terra-draw/-/mapgl-terra-draw-0.2.0.tgz","fileCount":12,"integrity":"sha512-l+eDIpEXsus4ujVHrqSJ9aSrrchBCjjv3XHMCgkYfS5I+ay/tkBu2RrMiRNVZa2HTGz/DeJBq1ZnDlCr1f9O7g==","signatures":[{"sig":"MEUCIQDrrPv45uB6/308wImA4S39h6N+MerzAVB80VO5y7bRcgIgeddDnLTy5pXFTM5PiwQi9eyxz49br1jdNWlsV3xyYC8=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":59857},"main":"dist/mapgl-terra-draw.cjs","type":"module","module":"dist/mapgl-terra-draw.js","gitHead":"9a078eb77a2d1fff0e4aa9a3059a61b4f4342e54","scripts":{"build":"npm run build:lib && npm run build:types","start":"vite demo","prettier":"prettier --check \"./**/*..{ts,html,css,md}\"","build:lib":"vite -c vite.config.lib.js build","build:demo":"vite build demo","build:types":"tsc --declaration --emitDeclarationOnly","prettier:write":"prettier --write \"./**/*.{ts,html,css,md}\""},"typings":"dist/index.d.ts","_npmUser":{"name":"itanka9","email":"mbeloshitsky@gmail.com"},"_npmVersion":"10.8.2","description":"TerraDraw adapter for MapGL JS API","directories":{},"_nodeVersion":"20.19.3","dependencies":{"geojson":"^0.5.0","terra-draw":"^1.8.0","@2gis/mapgl":"^1.61.0","vanilla-colorful":"^0.7.2"},"_hasShrinkwrap":false,"devDependencies":{"vite":"^6.3.5","prettier":"^3.6.0","typescript":"^5.8.3","@types/geojson":"^7946.0.16"},"_npmOperationalInternal":{"tmp":"tmp/mapgl-terra-draw_0.2.0_1754486123068_0.41745925946080376","host":"s3://npm-registry-packages-npm-production"}},"0.2.1":{"name":"@2gis/mapgl-terra-draw","version":"0.2.1","keywords":["mapgl","terradraw"],"author":{"name":"Michel Beloshitsky","email":"itano@yandex.ru"},"license":"MIT","_id":"@2gis/mapgl-terra-draw@0.2.1","maintainers":[{"name":"artem.malko","email":"artem.malko@gmail.com"},{"name":"trufi","email":"stevemyz@gmail.com"},{"name":"lastw","email":"me@lastw.net"},{"name":"itanka9","email":"mbeloshitsky@gmail.com"},{"name":"alxart","email":"a.artemev@inbox.ru"},{"name":"vitaliy.gis","email":"vitaliy.gis@gmail.com"},{"name":"kuznetcoff","email":"mail@kuznetsov.it"},{"name":"kalyanov","email":"oleg1556@gmail.com"},{"name":"kto-to","email":"count@ngs.ru"},{"name":"nortren_developer","email":"nortren@inbox.ru"}],"dist":{"shasum":"6011310d391ab3aafe1ba18385f8e0aca0861ad0","tarball":"https://registry.npmjs.org/@2gis/mapgl-terra-draw/-/mapgl-terra-draw-0.2.1.tgz","fileCount":12,"integrity":"sha512-Bvi326e0fdrVNO6Zitvk879omHwUgKI92Qayc6Pq/Vw4WRYiU0KXecQpSypJksBbYJ3TKXMNLOf9qrDrIn1W1w==","signatures":[{"sig":"MEYCIQDf4YLhchBRDMQMkN7j2Npjnl3o8wl/WiCsOBHv8QDEgQIhAL+LiuLexs1a7m8TfaH7/wopvDjjXX+nM6Yt1+uvD2Bc","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":60565},"main":"dist/mapgl-terra-draw.cjs","type":"module","module":"dist/mapgl-terra-draw.js","gitHead":"5615fd54e97ac3d8ab3ec86ac81235cf8c35458a","scripts":{"build":"npm run build:lib && npm run build:types","start":"vite demo","prettier":"prettier --check \"./**/*..{ts,html,css,md}\"","build:lib":"vite -c vite.config.lib.js build","build:demo":"vite build demo","build:types":"tsc --declaration --emitDeclarationOnly","prettier:write":"prettier --write \"./**/*.{ts,html,css,md}\""},"typings":"dist/index.d.ts","_npmUser":{"name":"itanka9","email":"mbeloshitsky@gmail.com"},"_npmVersion":"10.8.2","description":"TerraDraw adapter for MapGL JS API","directories":{},"_nodeVersion":"20.19.3","dependencies":{"geojson":"^0.5.0","terra-draw":"^1.8.0","@2gis/mapgl":"^1.61.0","vanilla-colorful":"^0.7.2"},"_hasShrinkwrap":false,"devDependencies":{"vite":"^6.3.5","prettier":"^3.6.0","typescript":"^5.8.3","@types/geojson":"^7946.0.16"},"_npmOperationalInternal":{"tmp":"tmp/mapgl-terra-draw_0.2.1_1755591212818_0.19843584556780636","host":"s3://npm-registry-packages-npm-production"}},"0.3.0-umd.0":{"name":"@2gis/mapgl-terra-draw","version":"0.3.0-umd.0","keywords":["mapgl","terradraw"],"author":{"name":"Michel Beloshitsky","email":"itano@yandex.ru"},"license":"MIT","_id":"@2gis/mapgl-terra-draw@0.3.0-umd.0","maintainers":[{"name":"artem.malko","email":"artem.malko@gmail.com"},{"name":"trufi","email":"stevemyz@gmail.com"},{"name":"lastw","email":"me@lastw.net"},{"name":"itanka9","email":"mbeloshitsky@gmail.com"},{"name":"alxart","email":"a.artemev@inbox.ru"},{"name":"vitaliy.gis","email":"vitaliy.gis@gmail.com"},{"name":"kuznetcoff","email":"mail@kuznetsov.it"},{"name":"kalyanov","email":"oleg1556@gmail.com"},{"name":"kto-to","email":"count@ngs.ru"},{"name":"nortren_developer","email":"nortren@inbox.ru"}],"dist":{"shasum":"fdb865d97b630587637f5c0297751a7be0c0b54a","tarball":"https://registry.npmjs.org/@2gis/mapgl-terra-draw/-/mapgl-terra-draw-0.3.0-umd.0.tgz","fileCount":13,"integrity":"sha512-YSb6bggDhD9fNrkZyzSCMhJjHP63DR6fu3xJxAXieu1QLRyqYSiI+xpTHAVu7EArKloFhEgt94iRTs9hMihfgw==","signatures":[{"sig":"MEUCIHrRq8tOSKHcFF8kLC8s0zTZ19a1LCvK+MYbQKrFpd+ZAiEAu0my7SfPKrIKO3heuOSHJo7xUY4rMCA7s8DgmM8ecmY=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":79545},"main":"dist/mapgl-terra-draw.cjs","type":"module","module":"dist/mapgl-terra-draw.js","gitHead":"4f149ffdff9b7c29e9c5c46b0504323c42830edf","scripts":{"build":"npm run build:lib && npm run build:types","start":"vite demo","prettier":"prettier --check \"./**/*..{ts,html,css,md}\"","build:lib":"vite -c vite.config.lib.js build","build:demo":"vite build demo","build:types":"tsc --declaration --emitDeclarationOnly","prettier:write":"prettier --write \"./**/*.{ts,html,css,md}\""},"typings":"dist/index.d.ts","_npmUser":{"name":"itanka9","email":"mbeloshitsky@gmail.com"},"_npmVersion":"10.8.2","description":"TerraDraw adapter for MapGL JS API","directories":{},"_nodeVersion":"20.19.3","dependencies":{"geojson":"^0.5.0","terra-draw":"^1.8.0","@2gis/mapgl":"^1.61.0","vanilla-colorful":"^0.7.2"},"_hasShrinkwrap":false,"devDependencies":{"vite":"^6.3.5","prettier":"^3.6.0","typescript":"^5.8.3","@types/geojson":"^7946.0.16"},"_npmOperationalInternal":{"tmp":"tmp/mapgl-terra-draw_0.3.0-umd.0_1755592071162_0.6538149911950555","host":"s3://npm-registry-packages-npm-production"}},"0.3.0":{"name":"@2gis/mapgl-terra-draw","version":"0.3.0","keywords":["mapgl","terradraw"],"author":{"name":"Michel Beloshitsky","email":"itano@yandex.ru"},"license":"MIT","_id":"@2gis/mapgl-terra-draw@0.3.0","maintainers":[{"name":"artem.malko","email":"artem.malko@gmail.com"},{"name":"trufi","email":"stevemyz@gmail.com"},{"name":"lastw","email":"me@lastw.net"},{"name":"itanka9","email":"mbeloshitsky@gmail.com"},{"name":"alxart","email":"a.artemev@inbox.ru"},{"name":"vitaliy.gis","email":"vitaliy.gis@gmail.com"},{"name":"kuznetcoff","email":"mail@kuznetsov.it"},{"name":"kalyanov","email":"oleg1556@gmail.com"},{"name":"kto-to","email":"count@ngs.ru"},{"name":"nortren_developer","email":"nortren@inbox.ru"}],"dist":{"shasum":"0854f5fa7c830ca0ad3d3fd9e09fcde290616549","tarball":"https://registry.npmjs.org/@2gis/mapgl-terra-draw/-/mapgl-terra-draw-0.3.0.tgz","fileCount":13,"integrity":"sha512-WLOJIgNXVp5j3cUjWTeke2zeqzM1nCoGbz5sd8N3coc5Ynwd1Ng99e2wCTQfv674bu0SQYQynzusJDih+KmAzw==","signatures":[{"sig":"MEQCIF27yOLCUsdnYDej+NbZ1gA7TYVFRAYHsU/2chSqE8D1AiABXd851SkIwvf2nLSTjRuzZ40MBDtHsJ3zbYQ00iwv8Q==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":80978},"main":"dist/mapgl-terra-draw.cjs","type":"module","module":"dist/mapgl-terra-draw.js","gitHead":"89ffcb2df8d5b4c334c792070a1c5f9ea47463b6","scripts":{"build":"npm run build:lib && npm run build:types","start":"vite demo","prettier":"prettier --check \"./**/*..{ts,html,css,md}\"","build:lib":"vite -c vite.config.lib.js build","build:demo":"vite build demo","build:types":"tsc --declaration --emitDeclarationOnly","prettier:write":"prettier --write \"./**/*.{ts,html,css,md}\""},"typings":"dist/index.d.ts","_npmUser":{"name":"itanka9","email":"mbeloshitsky@gmail.com"},"_npmVersion":"10.8.2","description":"TerraDraw adapter for MapGL JS API","directories":{},"_nodeVersion":"20.19.3","dependencies":{"geojson":"^0.5.0","terra-draw":"^1.8.0","@2gis/mapgl":"^1.61.0","vanilla-colorful":"^0.7.2"},"_hasShrinkwrap":false,"devDependencies":{"vite":"^6.3.5","prettier":"^3.6.0","typescript":"^5.8.3","@types/geojson":"^7946.0.16"},"_npmOperationalInternal":{"tmp":"tmp/mapgl-terra-draw_0.3.0_1755600201345_0.9206985444195035","host":"s3://npm-registry-packages-npm-production"}},"0.4.0-styling.0":{"name":"@2gis/mapgl-terra-draw","version":"0.4.0-styling.0","keywords":["mapgl","terradraw"],"author":{"name":"Michel Beloshitsky","email":"itano@yandex.ru"},"license":"MIT","_id":"@2gis/mapgl-terra-draw@0.4.0-styling.0","maintainers":[{"name":"artem.malko","email":"artem.malko@gmail.com"},{"name":"trufi","email":"stevemyz@gmail.com"},{"name":"lastw","email":"me@lastw.net"},{"name":"itanka9","email":"mbeloshitsky@gmail.com"},{"name":"alxart","email":"a.artemev@inbox.ru"},{"name":"vitaliy.gis","email":"vitaliy.gis@gmail.com"},{"name":"kuznetcoff","email":"mail@kuznetsov.it"},{"name":"kalyanov","email":"oleg1556@gmail.com"},{"name":"kto-to","email":"count@ngs.ru"},{"name":"nortren_developer","email":"nortren@inbox.ru"}],"dist":{"shasum":"cca35878d4d60600ce1508e3adb03a301050b21f","tarball":"https://registry.npmjs.org/@2gis/mapgl-terra-draw/-/mapgl-terra-draw-0.4.0-styling.0.tgz","fileCount":19,"integrity":"sha512-Fveo43PJGsXg8Z7rKhB3hWfiZephttB2Wjs8wvrgf9Cib2ZorhTr4mIelih4w5tnHdyvdazv4F9/MO2Q1Ev3dA==","signatures":[{"sig":"MEQCIC+WWDbeEuhFWtHVNGt3RHkoT2plblVDOkFA1dKVkF3OAiBCu/rtYd13hLhjbZFiyL6m0bnYarRxwo2Rvv6fFz4/Cw==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":117158},"main":"dist/mapgl-terra-draw.cjs","type":"module","module":"dist/mapgl-terra-draw.js","gitHead":"dc532e29de22748cfd10f1bfdabca34d742be0dd","scripts":{"build":"npm run build:lib && npm run build:types && npm run build:es6","start":"vite demo","prettier":"prettier --check \"./**/*..{ts,html,css,md}\"","build:es6":"tsc","build:lib":"vite -c vite.config.lib.js build","build:demo":"vite build demo","build:types":"tsc --declaration --emitDeclarationOnly","prettier:write":"prettier --write \"./**/*.{ts,html,css,md}\""},"typings":"dist/index.d.ts","_npmUser":{"name":"itanka9","email":"mbeloshitsky@gmail.com"},"_npmVersion":"10.8.2","description":"TerraDraw adapter for MapGL JS API","directories":{},"_nodeVersion":"20.19.3","dependencies":{"geojson":"^0.5.0","terra-draw":"^1.8.0","@2gis/mapgl":"^1.61.0","vanilla-colorful":"^0.7.2"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"vite":"^6.3.5","prettier":"^3.6.0","typescript":"^5.8.3","@types/geojson":"^7946.0.16"},"_npmOperationalInternal":{"tmp":"tmp/mapgl-terra-draw_0.4.0-styling.0_1759402720427_0.5665152533967985","host":"s3://npm-registry-packages-npm-production"}},"0.4.0":{"name":"@2gis/mapgl-terra-draw","version":"0.4.0","keywords":["mapgl","terradraw"],"author":{"name":"Michel Beloshitsky","email":"itano@yandex.ru"},"license":"MIT","_id":"@2gis/mapgl-terra-draw@0.4.0","maintainers":[{"name":"artem.malko","email":"artem.malko@gmail.com"},{"name":"trufi","email":"stevemyz@gmail.com"},{"name":"lastw","email":"me@lastw.net"},{"name":"itanka9","email":"mbeloshitsky@gmail.com"},{"name":"alxart","email":"a.artemev@inbox.ru"},{"name":"vitaliy.gis","email":"vitaliy.gis@gmail.com"},{"name":"kuznetcoff","email":"mail@kuznetsov.it"},{"name":"kalyanov","email":"oleg1556@gmail.com"},{"name":"kto-to","email":"count@ngs.ru"},{"name":"nortren_developer","email":"nortren@inbox.ru"}],"dist":{"shasum":"17b986b911a45d518e92dea12e034a4ac66b88a7","tarball":"https://registry.npmjs.org/@2gis/mapgl-terra-draw/-/mapgl-terra-draw-0.4.0.tgz","fileCount":19,"integrity":"sha512-2fX0Uy1V2yNlQmRBYVC5AfAL8x31IiVV8rIKUcxiVTBOFRwpCnGA7ibGUvJ6QKXqbrMXPXZJXPhv8OOF5ufVBA==","signatures":[{"sig":"MEUCIQCUFxcRsEwvTIdK5cVIwezYBBabVmeaqa5QPRvH9WldFgIgJHgjH/IeCismji0uCWcT4i3iQQa4Yjevg3EYtk96/5c=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":118015},"main":"dist/mapgl-terra-draw.cjs","type":"module","module":"dist/mapgl-terra-draw.js","gitHead":"0d950b88026683207249e741d4371832315e93d2","scripts":{"build":"npm run build:lib && npm run build:types && npm run build:es6","start":"vite demo","prettier":"prettier --check \"./**/*..{ts,html,css,md}\"","build:es6":"tsc","build:lib":"vite -c vite.config.lib.js build","build:demo":"vite build demo","build:docs":"tsx utils/docs.ts","build:types":"tsc --declaration --emitDeclarationOnly","prettier:write":"prettier --write \"./**/*.{ts,html,css,md}\""},"typings":"dist/index.d.ts","_npmUser":{"name":"itanka9","email":"mbeloshitsky@gmail.com"},"_npmVersion":"10.8.2","description":"TerraDraw adapter for MapGL JS API","directories":{},"_nodeVersion":"20.19.3","dependencies":{"geojson":"^0.5.0","terra-draw":"^1.8.0","@2gis/mapgl":"^1.63.0","vanilla-colorful":"^0.7.2"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.20.4","vite":"^6.3.5","prettier":"^3.6.0","typescript":"^5.8.3","@types/node":"^24.3.0","@types/geojson":"^7946.0.16","@documentalist/compiler":"^5.0.0"},"_npmOperationalInternal":{"tmp":"tmp/mapgl-terra-draw_0.4.0_1759865070280_0.42308280240040963","host":"s3://npm-registry-packages-npm-production"}}},"time":{"created":"2025-07-02T06:13:50.721Z","modified":"2026-09-04T09:00:36.181Z","0.1.0":"2025-07-02T06:13:51.039Z","0.2.0":"2025-08-06T13:15:23.270Z","0.2.1":"2025-08-19T08:13:32.988Z","0.3.0-umd.0":"2025-08-19T08:27:51.344Z","0.3.0":"2025-08-19T10:43:21.530Z","0.4.0-styling.0":"2025-10-02T10:58:40.611Z","0.4.0":"2025-10-07T19:24:30.458Z"},"author":{"name":"Michel Beloshitsky","email":"itano@yandex.ru"},"license":"MIT","keywords":["mapgl","terradraw"],"description":"TerraDraw adapter for MapGL JS API","maintainers":[{"email":"artem.malko@gmail.com","name":"artem.malko"},{"email":"stevemyz@gmail.com","name":"trufi"},{"email":"me@lastw.net","name":"lastw"},{"email":"mbeloshitsky@gmail.com","name":"itanka9"},{"email":"a.artemev@inbox.ru","name":"alxart"},{"email":"vitaliy.gis@gmail.com","name":"vitaliy.gis"},{"email":"mail@kuznetsov.it","name":"kuznetcoff"},{"email":"oleg1556@gmail.com","name":"kalyanov"},{"email":"count@ngs.ru","name":"kto-to"},{"email":"m.novoselcev@2gis.ru","name":"mnovoseltsev"}],"readme":"# MapGL TerraDraw Adapter\n\n[TerraDraw](https://github.com/JamesLMilner/terra-draw) adapter for [MapGL JS API](http://docs.2gis.com/en/mapgl) or just a simple drawing tool.\n\n![intro pic](/docs/intro.png)\n\n[Demo](https://2gis.github.io/mapgl-terra-draw/)\n\n[Drawing Modes User Manual](MODES.md)\n\n## Getting started\n\nInstall library\n\n```bash\nnpm install @2gis/mapgl-terra-draw\n```\n\nUse ui-helper `createTerraDrawWithUI` and not forget to plug css:\n\n```ts\nimport { load } from '@2gis/mapgl';\nimport { createTerraDrawWithUI } from '@2gis/mapgl-terra-draw';\nimport '@2gis/mapgl-terra-draw/dist/mapgl-terra-draw.css';\n\nload().then((mapgl) => {\n    const map = new mapgl.Map('map', {\n        center: [55.31878, 25.23584],\n        zoom: 13,\n        key: 'Your MapGL JS API key',\n        enableTrackResize: true,\n    });\n\n    map.on('styleload', () => {\n        createTerraDrawWithUI({\n            map,\n            mapgl: mapgl as any,\n            controls: ['color', 'select', 'point', 'polygon', 'circle', 'download', 'clear'],\n        });\n    });\n});\n```\n\nOr directly in HTML via unpkg CDN\n\n```html\n<html>\n    <head>\n        <link rel=\"stylesheet\" href=\"https://fonts.googleapis.com/css2?family=Material+Symbols+Outlined\" />\n        <link rel=\"stylesheet\" type=\"text/css\" href=\"https://unpkg.com/@2gis/mapgl-terra-draw@0.2.0/dist/mapgl-terra-draw.css\" />\n        <script src=\"https://mapgl.2gis.com/api/js/v1\"></script>\n        <script src=\"https://unpkg.com/terra-draw@1.0.0/dist/terra-draw.umd.js\"></script>\n        <script src=\"https://unpkg.com/@2gis/mapgl-terra-draw/dist/mapgl-terra-draw.umd.cjs\"></script>\n        <style>\n            html,\n            body,\n            #container {\n                margin: 0;\n                width: 100%;\n                height: 100%;\n                overflow: hidden;\n            }\n        </style>\n    </head>\n    <body>\n        <div id=\"container\"></div>\n        <script>\n            const map = new mapgl.Map('container', {\n                center: [55.31878, 25.23584],\n                zoom: 13,\n                key: 'bfd8bbca-8abf-11ea-b033-5fa57aae2de7',\n                enableTrackResize: true,\n            });\n\n            map.on('styleload', () => {\n                mapglTerraDraw.createTerraDrawWithUI({\n                    map,\n                    mapgl: mapgl,\n                    controls: ['color', 'select', 'point', 'polygon', 'circle', 'download', 'clear'],\n                });\n            });\n        </script>\n    </body>\n</html>\n```\n\n## Advanced usage\n\nIf advanced cases (use your custom drawing mode, customize a very flexible TerraDraw [selection behaviour](https://github.com/JamesLMilner/terra-draw/blob/main/guides/4.MODES.md#selection-mode), design a fancy UI, e.g.) you can use `TerraDrawMapGlAdapter` class directly.\n\nThis gives you much more flexibility, but puts a some bunch of work on your side. Here is a simple example:\n\n```ts\nimport { load } from '@2gis/mapgl';\nimport {\n    TerraDraw,\n    TerraDrawPointMode,\n    TerraDrawPolygonMode,\n    TerraDrawSelectMode,\n} from 'terra-draw';\nimport { TerraDrawMapGlAdapter } from '@2gis/mapgl-terra-draw';\n\nload().then((mapgl) => {\n    const map = new mapgl.Map('map', {\n        center: [55.31878, 25.23584],\n        zoom: 13,\n        key: 'Your MapGL JS API key',\n        enableTrackResize: true,\n    });\n\n    map.on('styleload', () => {\n        const draw = new TerraDraw({\n            adapter: new TerraDrawMapGlAdapter({\n                map,\n                mapgl,\n                coordinatePrecision: 9,\n            }),\n            modes: [\n                new TerraDrawSelectMode(),\n                new TerraDrawPointMode(),\n                new TerraDrawPolygonMode(),\n            ],\n        });\n\n        const buttons = document.createElement('div');\n        buttons.style.display = 'flex';\n        buttons.style.flexDirection = 'column';\n        buttons.style.gap = '8px';\n        new mapgl.Control(map, buttons, { position: 'centerLeft' });\n\n        const selectButton = document.createElement('button');\n        selectButton.innerText = 'select';\n        selectButton.addEventListener('click', () => {\n            draw.setMode('select');\n        });\n        buttons.appendChild(selectButton);\n\n        const pointButton = document.createElement('button');\n        pointButton.innerText = 'point';\n        pointButton.addEventListener('click', () => {\n            draw.setMode('point');\n        });\n        buttons.appendChild(pointButton);\n\n        const polygonButton = document.createElement('button');\n        polygonButton.innerText = 'polygon';\n        polygonButton.addEventListener('click', () => {\n            draw.setMode('polygon');\n        });\n        buttons.appendChild(polygonButton);\n\n        const clearButton = document.createElement('button');\n        clearButton.innerText = 'clear';\n        clearButton.addEventListener('click', () => {\n            draw.clear();\n        });\n        buttons.appendChild(clearButton);\n\n        draw.start();\n    });\n});\n```\n\n## How to get a drawed data\n\nTo get drawing data with styling use this code snippet:\n\n```js\nconst adapter = new TerraDrawMapGlAdapter({\n    ...\n});\nconst { draw } = createTerraDrawWithUI({\n    adapter,\n    ...\n});\n\nconst features = draw.getSnapshot();\nconst { icons, layers } = adapter.addStyling(features);\nconst featureCollection = {\n    type: 'FeatureCollection',\n    icons,\n    layers,\n    features,\n};\n```\n\nHere we obtain a standart GeoJSON FeatureCollection and put `icons` and `layers` props in the root (which is permitted by GeoJSON specification).\n\nTo display this data, you should add `icons` and `layers` to your MapGL map, and add GeoJSON via GeoJsonSource\n\n```js\nfor (const icon in featureCollection.icons) {\n    map.addIcon(icon, { url: featureCollection.icons[icon] });\n}\nfor (const layer of featureCollection.layers) {\n    map.addLayer(layer);  \n}\nconst source = new mapgl.GeoJsonSource(map, {\n    data: featureCollection,\n    attributes: {\n        name: 'terra-draw-output',\n    },\n});\n```\n\nYou can use [demo on codepen](https://codepen.io/itanka9/pen/RNrRvaX) for reference.\n\n### Raw Data\n\nIf you want just geojson shapes of drawed feature use a [.getSnapshot()](https://jameslmilner.github.io/terra-draw/classes/terra_draw.TerraDraw.html#getSnapshot) method of a TerraDraw.\n\n```ts\nconst { draw } = createTerraDrawWithUI({\n    ...\n});\n\n...\n\ndraw.getSnapshot();\n```\n\n## Material Icons\n\nUI relies on Material Icons font to display icons. So you should include following `link` to your HTML head.\n\n```html\n<link rel=\"stylesheet\" href=\"https://fonts.googleapis.com/css2?family=Material+Symbols+Outlined\" />\n```\n\n## Deploy\n\n```\nnpm run build\nnpm publish --access=public\n```\n\n## LICENSE\n\nMIT\n","readmeFilename":"README.md"}