Ecosyste.ms: Awesome

An open API service indexing awesome lists of open source software.

Awesome Lists | Featured Topics | Projects

https://github.com/n-thumann/easybell-carrier-map

A map showing the carriers used by Easybell for their VDSL products
https://github.com/n-thumann/easybell-carrier-map

1und1 carrier easybell map mapbox-gl-js maplibre-gl-js maptiler telekom versatel vitroconnect

Last synced: about 2 months ago
JSON representation

A map showing the carriers used by Easybell for their VDSL products

Awesome Lists containing this project

README

        

# easybell-carrier-map

A map showing the carriers used by Easybell for their VDSL products



Demo of easybell-carrier-map

## Usage

Open [map](https://n-thumann.github.io/easybell-carrier-map/), click to select area, wait, done.

## Running locally

Clone this repository, run `npm install`, run `npm run serve` to start the local development server or `npm run build` to build for production.

## How it works

1. Get the bounding box from the selected area
2. Query [Overpass](https://overpass-api.de/) for all addresses within the bounding box
3. Create hexagon grid inside bounding box
4. Assign addresses to corresponding hexagons
5. Sort addresses within each hexagon based on their distance to the hexagon's center (ascending distance)
6. Query Easybell availability API for every address in hexagon until a carrier has been found
7. Color hexagons on map based on carrier

## Quirks

- 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.
- 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.

## Background

Actually, I didn't build this to map Easybells carriers at all, but to visualize where 1&1 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&1 Versatel.
My assumption is that in regions where 1&1 Versatel provides service to Easybell, they have L2-BSA available, which is in turn used for their own products (e.g. 1&1 DSL for consumers). I was able to confirm this assumption in multiple regions using e.g. RIPE Atlas nodes.
Because picking addresses at random and running e.g. `curl -s "https://www.easybell.de/api/provider-availabilities/TAL?exact_address=false&zip_code=49074&city=Osnabrück&street=Domhof&house_number=10" | jq -r ".results[0].carrier"` was a bit boring and lacked visualization, I built this project.