{"id":16497464,"url":"https://github.com/lhapaipai/three-mini-map","last_synced_at":"2025-10-08T21:42:17.494Z","repository":{"id":57377054,"uuid":"380827364","full_name":"lhapaipai/three-mini-map","owner":"lhapaipai","description":"Tile based visualization library for threejs.","archived":false,"fork":false,"pushed_at":"2023-03-27T15:45:31.000Z","size":1364,"stargazers_count":9,"open_issues_count":0,"forks_count":2,"subscribers_count":2,"default_branch":"main","last_synced_at":"2025-09-21T21:36:16.318Z","etag":null,"topics":["cartography","map","maps","three","webgl"],"latest_commit_sha":null,"homepage":"https://three-mini-map.netlify.app/default/","language":"JavaScript","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/lhapaipai.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null}},"created_at":"2021-06-27T19:59:29.000Z","updated_at":"2025-06-23T20:39:16.000Z","dependencies_parsed_at":"2025-07-10T13:34:37.872Z","dependency_job_id":"8b50ca2b-4da4-4bc9-8adf-b77427cee1d3","html_url":"https://github.com/lhapaipai/three-mini-map","commit_stats":null,"previous_names":[],"tags_count":6,"template":false,"template_full_name":null,"purl":"pkg:github/lhapaipai/three-mini-map","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/lhapaipai%2Fthree-mini-map","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/lhapaipai%2Fthree-mini-map/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/lhapaipai%2Fthree-mini-map/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/lhapaipai%2Fthree-mini-map/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/lhapaipai","download_url":"https://codeload.github.com/lhapaipai/three-mini-map/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/lhapaipai%2Fthree-mini-map/sbom","scorecard":{"id":587163,"data":{"date":"2025-08-11","repo":{"name":"github.com/lhapaipai/three-mini-map","commit":"4058d200e9bf0d6d9bbcb5587a7a0e12eeb7a2ef"},"scorecard":{"version":"v5.2.1-40-gf6ed084d","commit":"f6ed084d17c9236477efd66e5b258b9d4cc7b389"},"score":1.3,"checks":[{"name":"Maintained","score":0,"reason":"0 commit(s) and 0 issue activity found in the last 90 days -- score normalized to 0","details":null,"documentation":{"short":"Determines if the project is \"actively maintained\".","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#maintained"}},{"name":"Packaging","score":-1,"reason":"packaging workflow not detected","details":["Warn: no GitHub/GitLab publishing workflow detected."],"documentation":{"short":"Determines if the project is published as a package that others can easily download, install, easily update, and uninstall.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#packaging"}},{"name":"Token-Permissions","score":-1,"reason":"No tokens found","details":null,"documentation":{"short":"Determines if the project's workflows follow the principle of least privilege.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#token-permissions"}},{"name":"Dangerous-Workflow","score":-1,"reason":"no workflows found","details":null,"documentation":{"short":"Determines if the project's GitHub Action workflows avoid dangerous patterns.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#dangerous-workflow"}},{"name":"SAST","score":0,"reason":"no SAST tool detected","details":["Warn: no pull requests merged into dev branch"],"documentation":{"short":"Determines if the project uses static code analysis.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#sast"}},{"name":"Code-Review","score":0,"reason":"Found 0/24 approved changesets -- score normalized to 0","details":null,"documentation":{"short":"Determines if the project requires human code review before pull requests (aka merge requests) are merged.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#code-review"}},{"name":"Binary-Artifacts","score":10,"reason":"no binaries found in the repo","details":null,"documentation":{"short":"Determines if the project has generated executable (binary) artifacts in the source repository.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#binary-artifacts"}},{"name":"Pinned-Dependencies","score":-1,"reason":"no dependencies found","details":null,"documentation":{"short":"Determines if the project has declared and pinned the dependencies of its build process.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#pinned-dependencies"}},{"name":"CII-Best-Practices","score":0,"reason":"no effort to earn an OpenSSF best practices badge detected","details":null,"documentation":{"short":"Determines if the project has an OpenSSF (formerly CII) Best Practices Badge.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#cii-best-practices"}},{"name":"Security-Policy","score":0,"reason":"security policy file not detected","details":["Warn: no security policy file detected","Warn: no security file to analyze","Warn: no security file to analyze","Warn: no security file to analyze"],"documentation":{"short":"Determines if the project has published a security policy.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#security-policy"}},{"name":"Fuzzing","score":0,"reason":"project is not fuzzed","details":["Warn: no fuzzer integrations found"],"documentation":{"short":"Determines if the project uses fuzzing.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#fuzzing"}},{"name":"License","score":0,"reason":"license file not detected","details":["Warn: project does not have a license file"],"documentation":{"short":"Determines if the project has defined a license.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#license"}},{"name":"Signed-Releases","score":-1,"reason":"no releases found","details":null,"documentation":{"short":"Determines if the project cryptographically signs release artifacts.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#signed-releases"}},{"name":"Branch-Protection","score":0,"reason":"branch protection not enabled on development/release branches","details":["Warn: branch protection not enabled for branch 'main'"],"documentation":{"short":"Determines if the default and release branches are protected with GitHub's branch protection settings.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#branch-protection"}},{"name":"Vulnerabilities","score":0,"reason":"15 existing vulnerabilities detected","details":["Warn: Project is vulnerable to: GHSA-67mh-4wv8-2f99","Warn: Project is vulnerable to: GHSA-qrpm-p2h7-hrv2","Warn: Project is vulnerable to: GHSA-mwcw-c2x4-8c55","Warn: Project is vulnerable to: GHSA-7fh5-64p2-3v2j","Warn: Project is vulnerable to: GHSA-gcx4-mw62-g8wm","Warn: Project is vulnerable to: GHSA-mv48-hcvh-8jj8","Warn: Project is vulnerable to: GHSA-353f-5xf4-qw67","Warn: Project is vulnerable to: GHSA-64vr-g452-qvp3","Warn: Project is vulnerable to: GHSA-9cwx-2883-4wfx","Warn: Project is vulnerable to: GHSA-vg6x-rcgg-rjx6","Warn: Project is vulnerable to: GHSA-x574-m823-4x7w","Warn: Project is vulnerable to: GHSA-4r4m-qw57-chr8","Warn: Project is vulnerable to: GHSA-xcj6-pq6g-qj4x","Warn: Project is vulnerable to: GHSA-356w-63v5-8wf4","Warn: Project is vulnerable to: GHSA-859w-5945-r5v3"],"documentation":{"short":"Determines if the project has open, known unfixed vulnerabilities.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#vulnerabilities"}}]},"last_synced_at":"2025-08-20T20:51:26.015Z","repository_id":57377054,"created_at":"2025-08-20T20:51:26.015Z","updated_at":"2025-08-20T20:51:26.015Z"},"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":279000705,"owners_count":26082837,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","status":"online","status_checked_at":"2025-10-08T02:00:06.501Z","response_time":56,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["cartography","map","maps","three","webgl"],"created_at":"2024-10-11T14:44:21.992Z","updated_at":"2025-10-08T21:42:17.477Z","avatar_url":"https://github.com/lhapaipai.png","language":"JavaScript","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Three-Mini-Map\n\nLibrary to display maps using `three.js`.\n\n- Generate 3d geometry from elevation tiles.\n- Smooth connexion between tiles.\n- Choose a map provider who deliver (EPSG:3857) WMTS tiles and add textures to tiles.\n\n[**Basic example : Marignier**](https://three-mini-map.netlify.app/default/)\n\n[**Example Combins tour (switzerland)**](https://three-mini-map.netlify.app/private-combins/)\n\n[**Example Grande casse (France)**](https://three-mini-map.netlify.app/private-casse/)\n\n\u003cimg alt=\"Three Mini Map\" src=\"https://user-images.githubusercontent.com/1088155/123599215-a92a1980-d7f5-11eb-8b0f-dae04e0eb61f.png\"\u003e\n\n\u003cimg alt=\"Combins\" src=\"https://user-images.githubusercontent.com/1088155/124091028-b34a5300-da55-11eb-894a-b1fb9e4effca.jpg\" width=\"400\"\u003e\u003cimg alt=\"Combins debug\" src=\"https://user-images.githubusercontent.com/1088155/124091077-bf361500-da55-11eb-86f9-bff74b6a7fa6.jpg\" width=\"400\"\u003e\n\n\n\n\u003cimg alt=\"Môle\" src=\"https://user-images.githubusercontent.com/1088155/124091100-c4935f80-da55-11eb-9ac9-92c5462ca735.jpg\" width=\"400\"\u003e\u003cimg alt=\"Môle debug\" src=\"https://user-images.githubusercontent.com/1088155/124091130-c9581380-da55-11eb-9b22-28fafdfe089c.jpg\" width=\"400\"\u003e\n\n## Installation\n\nif you want to use this library in your three project.\n\n```console\nnpm install three-mini-map\n```\n\nExamples are located in the `examples` folder. Each example has defined his own `package.json` but `npm install` is not needed. Just execute this command in the root directory. (examples share the same workspace )\n\nIf you want to test a Basic Hello World, check the `examples/default`\n\n```console\ngit clone https://github.com/lhapaipai/three-mini-map.git\nnpm install\ncd examples/default\nnpm run dev\n```\n\n## Usage\n\n```js\nimport MiniMapManager from \"mini-map-manager\";\n\nconst miniMapManager = new MiniMapManager();\n\nminiMapManager\n  .getMap({\n    textureSource: \"osm\",\n    textureZoom: 15,\n    center: [6.4751, 46.1024],\n    radius: 4,\n  })\n  .then((map) =\u003e {\n    let scene = new THREE.Scene();\n    scene.add(map);\n  });\n```\n\n## API\n\n### `MiniMapManager` class\n\n```javascript\nconst miniMapManager = new MiniMapManager(options);\n```\n\nDefine custom configuration in the `options` object.\n\n| Key                      | Description                                                           | Default Value |\n| ------------------------ | --------------------------------------------------------------------- | ------------- |\n| elevationSource (string) | map elevation provider.                                               | `\"terrarium\"` |\n| elevationSource (obj)    | custom elevation provider                                             | -             |\n| zScaleFactor             | your elevation data is multiplied to this factor                      | 1.6           |\n| tileUnits                | the dimension of each tile in Three                                   | 1.0           |\n| debug                    | show debug infos in your console.                                     | false         |\n| dryRun                   | show tiles to load if you want to download them and then work locally | false         |\n| basementHeight           | height of the base (in three coords) on which to place the map        | 0.05          |\n\nif you want to provide your own elevation provider you can specify configuration in the elevationSource key.\n\n```javascript\nnew MiniMapManager({\n  elevationSource: {\n    url: (z, x, y) =\u003e\n      `https://s3.amazonaws.com/elevation-tiles-prod/terrarium/${z}/${x}/${y}.png`,\n    size: 256,\n    maxZoom: 15,\n  },\n});\n```\n\n### `miniMapManager` instance methods\n\n```javascript\nminiMapManager.getMap(mapOptions).then((map) =\u003e {\n  // map is a THREE.Group instance\n});\n```\n\nDefine custom configuration in the `mapOptions` object.\n\n| Key                 | Description                                                                                                                                                                           | Default Value     |\n| ------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ----------------- |\n| textureSource (str) | map provider used to texture the tile.                                                                                                                                                | `\"osm\"`           |\n| textureSource (obj) | custom map provider                                                                                                                                                                   | -                 |\n| tileSegments        | nb of segments used per texture tile to build the geometry. must be a power of 2 (16, 32, 64, 128, 256)                                                                               | 32                |\n| textureZoom         | zoom used to retrieve textures                                                                                                                                                        | 15                |\n| center              | array containing position of the map `[lng, lat]`                                                                                                                                     | [6.4751, 46.1024] |\n| radius              | distance in kilometers used to compute the bbox of your map.                                                                                                                          | 1                 |\n| material            | an object with the `name` and `options` to apply to each tile. set `map` to false if you don't want texture (or if you want to preview relief data before download big texture data.) |                   |\n| withTexture         | wether or not we add map texture (from textureSource) to the material                                                                                                                 | true              |\n\nif you want to provide your own map provider you can specify configuration in the textureSource key.\n\n```javascript\nminiMapManager.getMap({\n  textureSource: {\n    url: (z, x, y, token) =\u003e\n      `https://api.mapbox.com/styles/v1/mapbox/satellite-v9/tiles/${z}/${x}/${y}?access_token=${token}`,\n    size: 256,\n    token: \"YOUR_TOKEN\",\n  },\n  material: {\n    name: \"MeshLambertMaterial\",\n    options: {\n      wireframe: false,\n    },\n  },\n});\n```\n\n## Issues\n\nI load two times the Three Library...\n\nbecause all Three.js update are minor version change from major version 0. If you do not install the same version of three as three-mini-map in your project your app will load twice three.js\n\n- Check the version of Three.js installed by `three-mini-map` and install the same in your project.\n  or\n- Import MiniMapManager from the sources\n\n```js\nimport MiniMapManager from \"three-mini-map/src/MiniMapManager\";\n```\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Flhapaipai%2Fthree-mini-map","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Flhapaipai%2Fthree-mini-map","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Flhapaipai%2Fthree-mini-map/lists"}