Démarrer
Cette fiche montre comment utiliser benin-geo depuis les sources et quels appels faire en premier. Les paquets ne sont pas encore publiés sur npm ni sur PyPI : tant que ce n'est pas le cas, on les installe depuis le dépôt.
Depuis les sources #
JavaScript, avec Node 20 ou plus et pnpm :
git clone https://github.com/Elodias2001/Takienta.git
cd Takienta
pnpm install
pnpm --filter benin-geo build
Puis, dans votre projet, installez le dossier construit :
npm install /chemin/vers/Takienta/packages/js
Python, version 3.9 ou plus :
node scripts/build-data.mjs
pip install ./packages/python
Le script build-data.mjs écrit le module de données des deux paquets depuis le dossier data/, qui est la seule source de vérité. Il ne fait aucun appel réseau.
Premiers appels en JavaScript #
import { chercher, communesDe, hierarchie } from "benin-geo";
chercher("abomey calavi")[0].id; // "BJ-AQ-ABO"
communesDe("BJ-BO").length; // 8
const h = hierarchie("BJ-AL-KAN-04");
h.pole.nom; // "Nord-Est"
h.departement.nom; // "Alibori"
h.commune.nom; // "Kandi"
h.arrondissement.nom; // "Kandi 1"
Premiers appels en Python #
from benin_geo import chercher, communes_de, hierarchie
chercher("abomey calavi")[0].id # "BJ-AQ-ABO"
len(communes_de("BJ-BO")) # 8
h = hierarchie("BJ-AL-KAN-04")
h.pole.nom # "Nord-Est"
h.departement.nom # "Alibori"
h.commune.nom # "Kandi"
h.arrondissement.nom # "Kandi 1"
Remplir un formulaire en cascade #
Un département, puis ses communes, puis leurs arrondissements. Les listes sont déjà triées.
import { arrondissementsDe, communesDe, departements } from "benin-geo";
const options = (liste) => liste.map((e) => new Option(e.nom, e.id));
selectDepartement.replaceChildren(...options(departements));
selectDepartement.onchange = () => selectCommune.replaceChildren(...options(communesDe(selectDepartement.value)));
selectCommune.onchange = () => selectArrondissement.replaceChildren(...options(arrondissementsDe(selectCommune.value)));
Ce que le paquet ne fait pas #
- Il n'appelle jamais le réseau, ni à l'installation, ni à l'exécution, et n'a aucune dépendance.
- Il ne contient aucune géométrie. Les contours ont leur propre licence et ne sont pas dans le paquet.
- Il ne descend pas au-dessous de l'arrondissement : les villages et quartiers de ville ne font pas partie de la première version.