{"id":13404022,"url":"https://github.com/leaflet-extras/leaflet-providers","last_synced_at":"2025-10-22T21:55:57.134Z","repository":{"id":2938719,"uuid":"3950765","full_name":"leaflet-extras/leaflet-providers","owner":"leaflet-extras","description":"An extension to Leaflet that contains configurations for various free tile providers.","archived":false,"fork":false,"pushed_at":"2025-10-20T23:01:36.000Z","size":1132,"stargazers_count":2301,"open_issues_count":18,"forks_count":713,"subscribers_count":66,"default_branch":"master","last_synced_at":"2025-10-22T04:05:31.982Z","etag":null,"topics":["leaflet"],"latest_commit_sha":null,"homepage":"https://leaflet-extras.github.io/leaflet-providers/preview/","language":"JavaScript","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"bsd-2-clause","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/leaflet-extras.png","metadata":{"files":{"readme":"README.md","changelog":"CHANGELOG.md","contributing":"CONTRIBUTING.md","funding":null,"license":"license.md","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":"2012-04-06T15:22:06.000Z","updated_at":"2025-10-21T04:12:58.000Z","dependencies_parsed_at":"2022-07-12T14:59:53.996Z","dependency_job_id":"f8e30919-b5e6-47f1-8b5d-fc63f2be9776","html_url":"https://github.com/leaflet-extras/leaflet-providers","commit_stats":{"total_commits":700,"total_committers":90,"mean_commits":7.777777777777778,"dds":0.6628571428571428,"last_synced_commit":"ece6ecacf03049bb3d910e645b8e1daf1f5af9e8"},"previous_names":[],"tags_count":60,"template":false,"template_full_name":null,"purl":"pkg:github/leaflet-extras/leaflet-providers","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/leaflet-extras%2Fleaflet-providers","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/leaflet-extras%2Fleaflet-providers/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/leaflet-extras%2Fleaflet-providers/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/leaflet-extras%2Fleaflet-providers/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/leaflet-extras","download_url":"https://codeload.github.com/leaflet-extras/leaflet-providers/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/leaflet-extras%2Fleaflet-providers/sbom","scorecard":{"id":581694,"data":{"date":"2025-08-11","repo":{"name":"github.com/leaflet-extras/leaflet-providers","commit":"1446eeb9a9a26a0f77bf72e4a7c8533eadec4830"},"scorecard":{"version":"v5.2.1-40-gf6ed084d","commit":"f6ed084d17c9236477efd66e5b258b9d4cc7b389"},"score":4.8,"checks":[{"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":"Maintained","score":10,"reason":"18 commit(s) and 1 issue activity found in the last 90 days -- score normalized to 10","details":null,"documentation":{"short":"Determines if the project is \"actively maintained\".","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#maintained"}},{"name":"Code-Review","score":4,"reason":"Found 2/5 approved changesets -- score normalized to 4","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":"Dangerous-Workflow","score":10,"reason":"no dangerous workflow patterns detected","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":"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":"Token-Permissions","score":0,"reason":"detected GitHub workflow tokens with excessive permissions","details":["Warn: no topLevel permission defined: .github/workflows/ci.yml:1","Info: no jobLevel write permissions found"],"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":"Pinned-Dependencies","score":3,"reason":"dependency not pinned by hash detected -- score normalized to 3","details":["Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/ci.yml:7: update your workflow using https://app.stepsecurity.io/secureworkflow/leaflet-extras/leaflet-providers/ci.yml/master?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/ci.yml:8: update your workflow using https://app.stepsecurity.io/secureworkflow/leaflet-extras/leaflet-providers/ci.yml/master?enable=pin","Info:   0 out of   2 GitHub-owned GitHubAction dependencies pinned","Info:   1 out of   1 npmCommand dependencies pinned"],"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":10,"reason":"license file detected","details":["Info: project has a license file: license.md:0","Info: FSF or OSI recognized license: BSD 2-Clause \"Simplified\" License: license.md:0"],"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":-1,"reason":"internal error: error during branchesHandler.setup: internal error: githubv4.Query: Resource not accessible by integration","details":null,"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":"SAST","score":0,"reason":"SAST tool is not run on all commits -- score normalized to 0","details":["Warn: 0 commits out of 27 are checked with a SAST tool"],"documentation":{"short":"Determines if the project uses static code analysis.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#sast"}},{"name":"Vulnerabilities","score":4,"reason":"6 existing vulnerabilities detected","details":["Warn: Project is vulnerable to: GHSA-v6h2-p8h4-qcjw","Warn: Project is vulnerable to: GHSA-gp2j-mg4w-2rh5","Warn: Project is vulnerable to: GHSA-vh95-rmgr-6w4m","Warn: Project is vulnerable to: GHSA-xvch-5gv4-984h","Warn: Project is vulnerable to: GHSA-7p7h-4mm5-852v","Warn: Project is vulnerable to: GHSA-p9pc-299p-vxgp"],"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-20T19:20:39.289Z","repository_id":2938719,"created_at":"2025-08-20T19:20:39.289Z","updated_at":"2025-08-20T19:20:39.289Z"},"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":280520820,"owners_count":26344439,"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-22T02:00:06.515Z","response_time":63,"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":["leaflet"],"created_at":"2024-07-30T19:01:37.851Z","updated_at":"2025-10-22T21:55:57.117Z","avatar_url":"https://github.com/leaflet-extras.png","language":"JavaScript","readme":"Leaflet-providers\n=================\nAn extension to [Leaflet](http://leafletjs.com/) that contains configurations for various free\u003csup\u003e[1](#what-is-free)\u003c/sup\u003e tile providers.\n\n# Installation\n\n## Bundler\n\n```shell\nnpm install leaflet-providers\n```\n\n## CDN\n\nInclude `leaflet-providers.js` in your page after including Leaflet, e.g.:\n\n```html\n\u003chead\u003e\n  \u003cscript src=\"https://unpkg.com/leaflet@latest/dist/leaflet.js\"\u003e\u003c/script\u003e\n  \u003cscript src=\"https://unpkg.com/leaflet-providers@latest/leaflet-providers.js\"\u003e\u003c/script\u003e\n\u003c/head\u003e\n```\n\n# Usage\n\nLeaflet-providers [providers](#providers) are referred to with a `provider[.\u003cvariant\u003e]`-string. Let's say you want to add the nice [Watercolor](http://maps.stamen.com/#watercolor/) style from Stamen to your map, you pass `Stadia.StamenWatercolor` to the `L.tileLayer.provider`-constructor, which will return a [L.TileLayer](http://leafletjs.com/reference.html#tilelayer) instance for Stamens Watercolor tile layer.\n\n```Javascript\n// add Stamen Watercolor to map.\nL.tileLayer.provider('Stadia.StamenWatercolor').addTo(map);\n```\n\n# Providers\n\nLeaflet-providers provides tile layers from different providers, including *OpenStreetMap*, *Esri* and *OpenWeatherMap*. The full listing of free to use layers can be [previewed](http://leaflet-extras.github.io/leaflet-providers/preview/index.html). The page will show you the name to use with `leaflet-providers.js` and the code to use it without dependencies.\n\n## Providers requiring registration\n\nIn addition to the providers you are free\u003cb id=\"what-is-free\"\u003e1\u003c/b\u003e to use, we support some layers which require registration.\n\n### HERE and HEREv3 (formerly Nokia).\n\nIn order to use HEREv3 layers, you must [register](http://developer.here.com/). Once registered, you can create an `apiKey` which you have to pass to `L.tileLayer.provider` in the options:\n\n```Javascript\nL.tileLayer.provider('HEREv3.terrainDay', {\n    apiKey: '\u003cinsert apiKey here\u003e'\n}).addTo(map);\n```\n\nYou can still pass `app_id` and `app_code` in legacy projects:\n\n```Javascript\nL.tileLayer.provider('HERE.terrainDay', {\n    app_id: '\u003cinsert ID here\u003e',\n    app_code: '\u003cinsert ID here\u003e'\n}).addTo(map);\n```\n\n### Jawg Maps\n\nIn order to use Jawg Maps, you must [register](https://www.jawg.io/lab). Once registered, your access token will be located [here](https://www.jawg.io/lab/access-tokens) and you will access to all Jawg default maps (variants) and your own customized maps :\n\n```JavaScript\nL.tileLayer.provider('Jawg.Streets', {\n    variant: '\u003cinsert map id here or blank for default variant\u003e',\n    accessToken: '\u003cinsert access token here\u003e'\n}).addTo(map);\n```\n\n### Mapbox\n\nIn order to use Mapbox maps, you must [register](https://tiles.mapbox.com/signup). You can get map_ID (e.g. \"mapbox/satellite-v9\") and ACCESS_TOKEN from [Mapbox projects](https://www.mapbox.com/projects):\n```JavaScript\nL.tileLayer.provider('MapBox', {\n    id: '\u003cinsert map_ID here\u003e',\n    accessToken: '\u003cinsert ACCESS_TOKEN here\u003e'\n}).addTo(map);\n```\n\nThe currently-valid Mapbox map styles, to use for map_IDs, [are listed in the Mapbox documentation](https://docs.mapbox.com/api/maps/#mapbox-styles) - only the final part of each is required, e.g. \"mapbox/light-v10\".\n\n### MapTiler Cloud\n\nIn order to use MapTiler maps, you must [register](https://cloud.maptiler.com/). Once registered, get your API key from Account-\u003eKeys, which you have to pass to `L.tileLayer.provider` in the options:\n```JavaScript\nL.tileLayer.provider('MapTiler.Streets', {\n    key: '\u003cinsert key here\u003e'\n}).addTo(map);\n```\n\n### MapTiles API\n\nIn order to use OpenStreetMap in English, French or Spanish provided by MapTiles API, you must [register](https://www.maptilesapi.com/). Once registered, you have to add your key to `L.tileLayer.provider` in the options:\n```JavaScript\nL.tileLayer.provider('MapTilesAPI.OSMEnglish', {\n    apikey: '\u003cinsert key here\u003e'\n}).addTo(map);\n```\n\n### Thunderforest\n\nIn order to use Thunderforest maps, you must [register](https://thunderforest.com/pricing/). Once registered, you have an `api_key` which you have to pass to `L.tileLayer.provider` in the options:\n```JavaScript\nL.tileLayer.provider('Thunderforest.Landscape', {apikey: '\u003cinsert api_key here\u003e'}).addTo(map);\n```\n\n### Esri/ArcGIS\n\nIn order to use ArcGIS maps, you must [register](https://developers.arcgis.com/en/sign-up/) and abide by the [terms of service](https://developers.arcgis.com/en/terms/). No special syntax is required.\n\n[Available Esri layers](http://leaflet-extras.github.io/leaflet-providers/preview/#filter=Esri)\n\n### TomTom\n\nIn order to use TomTom layers, you must [register](https://developer.tomtom.com/user/register). Once registered, you can create an `apikey` which you have to pass to `L.tileLayer.provider` in the options:\n\n```Javascript\nL.tileLayer.provider('TomTom', {\n    apikey: '\u003cinsert your API key here\u003e'\n}).addTo(map);\n```\n\n### Stadia Maps\n\nIn order to use Stadia maps, you must [register](https://client.stadiamaps.com/signup/). Once registered, you can whitelist your domain within your account settings.\n\n#### Stamen Design\n\nAs of July 31, 2023, Stamen's map styles are now hosted by [Stadia Maps](#stadia-maps). You can read the full\nannouncement from Stamen [here](http://maps.stamen.com/stadia-partnership/). No code changes are required to continue\nusing Stamen map styles hosted by Stadia Maps. Simply [register](https://client.stadiamaps.com/signup/) and whitelist\nyour domain.\n\n# Attribution\n\nThis work was inspired from \u003chttps://gist.github.com/1804938\u003e, and originally created by [Stefan Seelmann](https://github.com/seelmann).\n\n### What do we mean by *free*?\n\u003cb id=\"what-is-free\"\u003e1\u003c/b\u003e\nWe try to maintain leaflet-providers in such a way that you'll be able to use the layers we include without paying money.\nThis doesn't mean no limits apply, you should always check before using these layers for anything serious.\n","funding_links":[],"categories":["JavaScript","others","ГИС софтуер"],"sub_categories":["Визуализации онлайн"],"project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fleaflet-extras%2Fleaflet-providers","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fleaflet-extras%2Fleaflet-providers","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fleaflet-extras%2Fleaflet-providers/lists"}