{"id":18569805,"url":"https://github.com/n-thumann/easybell-carrier-map","last_synced_at":"2025-04-10T06:32:16.429Z","repository":{"id":115583030,"uuid":"575613341","full_name":"n-thumann/easybell-carrier-map","owner":"n-thumann","description":"A map showing the carriers used by Easybell for their VDSL products","archived":false,"fork":false,"pushed_at":"2024-10-19T15:04:51.000Z","size":1553,"stargazers_count":25,"open_issues_count":0,"forks_count":1,"subscribers_count":3,"default_branch":"main","last_synced_at":"2025-04-07T00:42:33.746Z","etag":null,"topics":["1und1","carrier","easybell","map","mapbox-gl-js","maplibre-gl-js","maptiler","telekom","versatel","vitroconnect"],"latest_commit_sha":null,"homepage":"https://n-thumann.github.io/easybell-carrier-map/","language":"TypeScript","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/n-thumann.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","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}},"created_at":"2022-12-07T22:56:27.000Z","updated_at":"2025-03-17T22:08:21.000Z","dependencies_parsed_at":null,"dependency_job_id":"4c1b058a-45a5-49c8-958d-6d47b032739f","html_url":"https://github.com/n-thumann/easybell-carrier-map","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/n-thumann%2Feasybell-carrier-map","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/n-thumann%2Feasybell-carrier-map/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/n-thumann%2Feasybell-carrier-map/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/n-thumann%2Feasybell-carrier-map/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/n-thumann","download_url":"https://codeload.github.com/n-thumann/easybell-carrier-map/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":248168325,"owners_count":21058816,"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","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":["1und1","carrier","easybell","map","mapbox-gl-js","maplibre-gl-js","maptiler","telekom","versatel","vitroconnect"],"created_at":"2024-11-06T22:35:12.250Z","updated_at":"2025-04-10T06:32:16.072Z","avatar_url":"https://github.com/n-thumann.png","language":"TypeScript","funding_links":[],"categories":[],"sub_categories":[],"readme":"# easybell-carrier-map\n\nA map showing the carriers used by Easybell for their VDSL products\n\n\u003cpicture\u003e\n  \u003csource media=\"(prefers-color-scheme: dark)\" srcset=\"https://user-images.githubusercontent.com/46975855/210180771-4ec19873-8b84-4b64-a385-08047771b96e.gif\"\u003e\n  \u003csource media=\"(prefers-color-scheme: light)\" srcset=\"https://user-images.githubusercontent.com/46975855/210180768-15df1025-4f4f-4ae2-8121-994341ccfde2.gif\"\u003e\n  \u003cimg alt=\"Demo of easybell-carrier-map\" src=\"https://user-images.githubusercontent.com/46975855/210180771-4ec19873-8b84-4b64-a385-08047771b96e.gif\"\u003e\n\u003c/picture\u003e\n\n## Usage\n\nOpen [map](https://n-thumann.github.io/easybell-carrier-map/), click to select area, wait, done.\n\n## Running locally\n\nClone this repository, run `npm install`, run `npm run serve` to start the local development server or `npm run build` to build for production.\n\n## How it works\n\n1. Get the bounding box from the selected area\n2. Query [Overpass](https://overpass-api.de/) for all addresses within the bounding box\n3. Create hexagon grid inside bounding box\n4. Assign addresses to corresponding hexagons\n5. Sort addresses within each hexagon based on their distance to the hexagon's center (ascending distance)\n6. Query Easybell availability API for every address in hexagon until a carrier has been found\n7. Color hexagons on map based on carrier\n\n## Quirks\n\n- Not every address, especially in more rural areas, is available in OpenStreetMap. This can result in Overpass not returning any addresses for a hexagon, even though there are buildings in there.\n- The Easybell API doesn't set CORS HTTP headers so that your browser can query it directly. Therefore, a CORS proxy is used. This is not needed when running locally.\n\n## Background\n\nActually, I didn't build this to map Easybells carriers at all, but to visualize where 1\u00261 Versatel Layer 2 bitstream access is available. While playing around with Easybells availability API, I noticed that it also returns the carrier used, e.g. 1\u00261 Versatel.\nMy assumption is that in regions where 1\u00261 Versatel provides service to Easybell, they have L2-BSA available, which is in turn used for their own products (e.g. 1\u00261 DSL for consumers). I was able to confirm this assumption in multiple regions using e.g. RIPE Atlas nodes.\nBecause picking addresses at random and running e.g. `curl -s \"https://www.easybell.de/api/provider-availabilities/TAL?exact_address=false\u0026zip_code=49074\u0026city=Osnabrück\u0026street=Domhof\u0026house_number=10\" | jq -r \".results[0].carrier\"` was a bit boring and lacked visualization, I built this project.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fn-thumann%2Feasybell-carrier-map","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fn-thumann%2Feasybell-carrier-map","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fn-thumann%2Feasybell-carrier-map/lists"}