Talentsalve

Carte et facettes

Les totaux par zone pour dessiner une carte, et les valeurs de filtre avec leurs effectifs.

Les totaux par zone (geo)

geo.query renvoie des points au format GeoJSON, chacun portant le nombre d'offres de sa zone.

const geo = await talentsalve.geo.query({ zoom: 4, continent: "Europe" })

if (geo.ok) {
  for (const feature of geo.value.features) {
    const { level, name, offers } = feature.properties
    console.log(level, name, offers)
  }
}

Le niveau de regroupement dépend du zoom, sauf si vous passez level vous-même : continent, country, region, city ou office.

ZoomNiveau
inférieur à 3continent
de 3 à 5country
de 5 à 7region
de 7 à 9city
9 et plusoffice

Le serveur décide ; les fonctions levelForZoom et la constante LEVEL_MAX_ZOOM du SDK reproduisent ces seuils pour connaître le niveau avant d'appeler.

Au niveau office, la zone visible (bbox) est obligatoire. Le serveur la refuse sinon.

Les facettes (facets)

facets.get renvoie les valeurs de filtre disponibles, avec le nombre d'offres de chacune : continents, pays, régions, villes, secteurs, sous-secteurs, domaines et entreprises.

const facets = await talentsalve.facets.get({ continent: "Europe" })

if (facets.ok) {
  console.log(facets.value.countries.length, "pays", facets.value.countries[0])
  console.log(facets.value.domains.slice(0, 5))
}

Chaque valeur porte un id (à passer aux filtres de offers et de geo), un name et son nombre d'offres (les continents n'ont qu'un nom). Chaque liste est calculée sans son propre filtre : après avoir filtré sur un pays, la liste des pays montre encore les autres. Les secteurs et sous-secteurs restent complets et portent un parentId pour reconstruire l'arbre ; les domaines, eux, se restreignent au nœud choisi. Certaines listes sont limitées aux valeurs les plus fournies.

On this page