4,348 geocoded tourism sites across Algeria's 69 wilayas, hotels, attractions, historic sites, thermal springs and protected areas, each with coordinates, wilaya linkage and source attribution. Sourced from ASAL Geoportail (thermal springs), OpenStreetMap (hotels, attractions, historic sites, parks) and Wikidata (heritage sites, museums, parks). Shipped as JSON, CSV, and GeoJSON. Part of GeoAlgeria.
npm install @geoalgeria/tourismeimport tourisme from "@geoalgeria/tourisme";
const everything = tourisme.all(); // 4,348
const hotels = tourisme.lodging(); // 1,602
const springs = tourisme.thermalSprings(); // 282
const inTipaza = tourisme.byWilaya(42); // all tourism sites in wilaya 42
const ruins = tourisme.byLayer("historic"); // 1,184 historic sites
// Everything has lat/lng – distance-sort, map, or nearest-site in a few lines.- Tourism apps – searchable directory of hotels, attractions and historic sites by wilaya.
- Nearest-site lookups – coordinates on every record, ready for distance sorting.
- Maps – drop-in GeoJSON point layers for the full tourism network.
- Thermal-spring guides – temperature, flow rate, altitude and mineral composition data for 282 springs.
- Heritage & culture – Wikipedia/Wikidata-linked historic sites, monuments and archaeological sites.
| Layer | Function | Count | Notes |
|---|---|---|---|
| Lodging | lodging() |
1,602 | hotels, hostels, guest houses, chalets, alpine huts |
| Attractions | attractions() |
1,248 | museums, viewpoints, caves, waterfalls, zoos |
| Historic | historic() |
1,184 | archaeological sites, ruins, monuments, forts, castles |
| Thermal springs | thermalSprings() |
282 | temperature, flow rate, altitude, minerality |
| Parks | parks() |
32 | national parks, nature reserves, protected areas |
| Total | all() |
4,348 |
Spanning 69 wilayas. wilaya_code is linked against the
geoalgeria wilaya model (69-wilaya scheme).
The npm package ships the JSON (importable directly):
import lodging from "@geoalgeria/tourisme/data/lodging.json" with { type: "json" };
// or via CDN, no install:
// https://cdn.jsdelivr.net/npm/@geoalgeria/tourisme/data/lodging.jsonThe loaders and record shapes are fully typed, TypeScript definitions ship in the package:
import tourisme, { type Lodging, type ThermalSpring } from "@geoalgeria/tourisme";
const hotels: Lodging[] = tourisme.lodging();
const springs: ThermalSpring[] = tourisme.thermalSprings();CSV and GeoJSON are in the repo under data/ and bundled in every
GitHub Release:
data/
lodging.json # 1,602 lodging entries
attractions.json # 1,248 attractions
historic.json # 1,184 historic sites
thermal-springs.json # 282 thermal springs
parks.json # 32 parks
metadata.json # sources, counts, coverage
csv/ # CSV exports (repo + Release bundle, not in npm tarball)
geojson/ # GeoJSON features
Lodging – hotels, hostels, guest houses:
{
"id": "lodging-1",
"name": "عريان الراس",
"name_ar": "عريان الراس تسابيت",
"wilaya_code": "01",
"commune_code": null,
"commune": null,
"lat": 28.4162728,
"lng": -0.2620846,
"geo_precision": "exact",
"geo_method": "osm",
"source": "osm",
"refs": { "osm": "8107956617" },
"type": "alpine_hut"
}type is one of hotel, hostel, guest_house, apartment, chalet, motel, alpine_hut.
name_fr and name_ar are present only where OpenStreetMap carries that language.
source is a short key resolved in metadata.sources[], and external ids live in refs
(refs.osm is the OSM id as a string; refs.wikidata a QID; refs.wikipedia a
"<lang>:<title>" sitelink). The four OSM layers carry no commune linkage, so
commune_code and commune are null throughout.
Optional contact and classification fields are present where the source publishes them, and
absent otherwise, never null. On lodging: address (209 records), phone (204, several
numbers ;-separated as OSM tags them), website (84), stars (60) and rooms (24). On
attractions: description (26). On historic sites: heritage_status (17, e.g.
"part of UNESCO World Heritage Site") and heritage (12, the OSM protection level).
Most records on these four layers come from OpenStreetMap, but 115 come from Wikidata instead
(32 attractions, 75 historic sites, 8 parks). Those carry source and geo_method of
"wikidata" and a refs.wikidata QID with no refs.osm, they are CC0, not ODbL, so filter
on source if the distinction matters for your attribution. In all, 236 records carry a
Wikidata QID and 100 a Wikipedia sitelink.
Thermal spring – ASAL Geoportail sourced, with physical properties:
{
"id": "thermal-spring-1",
"name": "FORAGE DAR OUAD",
"wilaya_code": "43",
"commune_code": null,
"commune": "BENI H'MIDENE",
"lat": 36.4625,
"lng": 6.4827778,
"geo_precision": "exact",
"geo_method": "asal",
"source": "asal",
"type": "forage",
"temperature_c": 32,
"debit_l_s": 15,
"altitude_m": 423,
"minerality": "BICARBONATEE CALCIQUE"
}type is one of hammam, ain, source, forage. Physical properties (temperature_c,
debit_l_s, altitude_m, minerality) come directly from the ASAL dataset; minerality
is the only optional one. This is the one layer that names a commune, as commune, a name
rather than an ONS commune_code, which stays null.
wilaya_code is zero-padded to two digits across all layers and joins GeoAlgeria's wilayas.
If you also need wilayas, dairas, and communes to join against, use the main
geoalgeria package, it ships the full
69-wilaya division dataset that wilaya_code here links to. Use @geoalgeria/tourisme
when you only need tourism data.
The repository test suite guards this snapshot against silent regressions:
bilingual French + Arabic naming must stay at or above 28.8%, every geocoded
record must keep geo_precision and geo_method, the currently sourced lodging
contact/detail fields cannot shrink, and cross-category OpenStreetMap references
stay explicitly bounded. These are regression floors, not completeness claims;
a larger verified refresh may raise them.
Data comes from three sources:
- ASAL Geoportail – thermal springs (temperature, flow rate, altitude, mineral composition). Public government data.
- OpenStreetMap – hotels, attractions, historic sites, and parks. Licensed under ODbL.
- Wikidata – heritage sites, museums, and park metadata. Licensed under CC0.
Code is MIT. Underlying data:
- Thermal springs: public government data (ASAL).
- OSM-sourced layers: © OpenStreetMap contributors, ODbL.
- Wikidata-sourced records: CC0.
Redistributed for reference and to power GeoAlgeria. Verify against original sources for authoritative, real-time information.
API docs & field reference → · Browse all packages →
Made by Yasser's Studio · LinkedIn · X · hello@yasser.studio