Algeria's Urban Bus Networks
@geoalgeria/buses
153 urban and suburban bus Lines across 14 Operator networks: Line identities, termini, the communes and transit Stations each Line serves, 1,603 indexed Stations, and published departure timetables where the Operator publishes them. Reusable geometry for 76 Lines comes from OpenStreetMap (ODbL).
Source: Published Operator materials, French Wikipedia and OpenStreetMap for Line identities and timetables; OpenStreetMap for reusable geometry and Stations
Install
npm install @geoalgeria/busesQuick example
import buses from "@geoalgeria/buses";
const all = buses.lines(); // 153 Lines, 14 Operators
const setif = buses.linesByOperator("ETUS Setif");
const shape = buses.shapeForLine("etusa-1"); // MultiLineString, or null
const stops = buses.stationsByLine("etusa-1"); // stations in source orderAPI reference
| Name | Signature | Description |
|---|---|---|
lines | lines(): BusLine[] | All 153 bus Lines across the 14 Operators. |
lineById | lineById(id): BusLine | null | One line by id (e.g. "etusa-1"). |
linesByWilaya | linesByWilaya(code): BusLine[] | Lines in one wilaya. |
linesByOperator | linesByOperator(operator): BusLine[] | Lines for an operator (case-insensitive). |
operatorRecords | operatorRecords(): BusOperator[] | The 14 Operators with their wilayas and Line counts. |
shapes | shapes(): BusShape[] | The 76 reusable OSM geometries, one per mapped Line. |
shapeForLine | shapeForLine(lineId): BusShape | null | The geometry for one line, when it has one. |
directions | directions(): BusDirection[] | The 128 Directions behind those shapes. |
stations | stations(): BusStation[] | All 1,603 indexed Stations. |
stationsByLine | stationsByLine(lineId): BusStation[] | Stations a line serves, in source order. |
stationMemberships | stationMemberships(): StationMembership[] | Station-to-direction joins that keep the source ordering. |
metadata | metadata(): Metadata | Package metadata (counts, coverage note, licence). |
Record shape
| Field | Type | Nullable | Description |
|---|---|---|---|
id | string | no | Stable id, `{operator}-{line}` (e.g. "etusa-1"). |
name | string | yes | Line display name, where the operator publishes one. |
wilaya_code | string | no | Zero-padded ("16" for Alger). |
commune_code | null | no | Always null (line-level record, no single commune). |
commune | null | no | Always null (line-level record). |
lat | null | no | Always null: a line's geometry lives in its shape, not a point. |
lng | null | no | Always null (line-level record). |
geo_precision | null | no | Always null (line-level record). |
geo_method | null | no | Always null (line-level record). |
source | SourceKey | no | Which source established the line (operator, OSM, or both). |
operator_id | string | no | Stable operator key (e.g. "etus-setif"). |
operator | string | no | Operating company (e.g. "ETUSA"). |
network | string | no | Network / city (e.g. "Alger"). |
line | string | no | Line number/label. |
terminus1 | string | yes | First terminus, with `terminus1_fr` / `terminus1_ar` where published. |
terminus2 | string | yes | Second terminus, with `terminus2_fr` / `terminus2_ar` where published. |
stops | number | yes | Number of stops where published. |
major_stops | number | yes | Number of major stops where the operator types them separately. |
service_hours | BusServiceHours[] | no | First and last departure per service period, where published. |
departure_schedules | BusDepartureSchedule[] | yes | Full directional departure lists, for the 8 Lines whose Operator publishes them. |
route_diagram_url | string | yes | Official route diagram, where the operator publishes one. |
communes_served | string[] | no | Communes along the line. |
stations_served | string[] | no | Metro/tram/gare stations served en route. |
shape_id | string | yes | Joins to the line's route geometry; null for a directory-only line. |
osm_relation_ids | number[] | no | The OSM relations the geometry was assembled from. |
source_refs | SourceKey[] | no | Every source behind the record, in package order. |
source_url | string | yes | Source page URL. |
Formats
The npm package ships JSON. Other formats are available in each GitHub Release.
Related packages
@geoalgeria/ferroviaire692 rail and urban-transit nodes across 50 wilayas: 427 rail, 190 tram, 41 metro, 24 aerial-tramway and 10 gondola; bilingual FR/AR, with operator (SNTF/SETRAM/SEMA), line membership and wilaya/commune linkage. A Wikidata (CC0) + OpenStreetMap (ODbL) composite.
@geoalgeria/gares-routieres74 intercity bus stations (gares routières) across 52 wilayas: official names, addresses, coordinates (74/74 geocoded), surface areas and wilaya/commune linkage, from SOGRAL, the state operator of Algeria's coach stations.
@geoalgeria/transportUmbrella package: install once to get every GeoAlgeria transport dataset, re-exported namespaced: civil airports, rail & urban transit, intercity bus stations and urban bus networks.