Les trente jours

Jour 8 : Utopie

902 noms de lieux officiels au Canada qui promettent un paradis, un bonheur, un espoir ou une fortune, et le trajet le plus rapide selon unmap d'Utopia, en Ontario, à Paradise, à Terre-Neuve-et-Labrador.

utopia.json
Chargement de 902 noms
Afficher ou masquer
Cliquez sur un point ou sur la ligne.

Le Canada compte 11 noms officiels qui disent utopie en toutes lettres : neuf Utopia, d'un hameau près de Barrie à un lac du Nouveau-Brunswick, et deux lacs de l'Utopie au Québec. Autour d'eux, 891 autres noms affichent leurs espoirs, classés ici en quatre familles : 318 paradis (Paradise, Eden, Canaan, Zion, Valhalla), 116 bonheurs (Happy, Joy, Bliss, Bonheur), 325 espoirs et paix (Hope, Espoir, Peace, Harmony, Providence) et 143 fortunes (Eureka, Eldorado, Bonanza).

La ligne magenta est le trajet le plus rapide d'Utopia, en Ontario, à Paradise, à Terre-Neuve-et-Labrador : 3 171 km et 36 h 57 min selon l'estimation d'unmap, traversier du détroit de Cabot compris. En chemin, il passe à moins de 5 km de 35 autres noms porteurs d'espoir, dont Port Hope, Mount Zion, Canaan Rapids, Marshy Hope et, vers la fin, l'isthme d'Avalon.

Le Québec compte le plus de noms, 262, mais il faut les lire avec prudence : Paradis est un nom de famille courant au Québec, et bon nombre de ses 91 noms en Paradis rendent peut-être hommage à une famille plutôt qu'à un rêve. Terre-Neuve-et-Labrador compte 25 des 116 noms de bonheur, juste derrière le Québec : Heart's Content, Heart's Delight, Happy Adventure.

La Colombie-Britannique compte le plus de fortunes, 37, et le Yukon garde la paire la plus célèbre : Bonanza Creek et Eldorado Creek, au Klondike. Le nom le plus au nord est Eureka, une station météorologique à 80° de latitude nord sur l'île d'Ellesmere. Et un nom de la carte a été donné à une vraie tentative d'utopie : Sointula, sur l'île Malcolm en Colombie-Britannique, « harmonie » en finnois, fondée en 1901 par des colons finlandais comme une commune.

Comment elle est faite

Un fond de carte et une couche. Voici toute la carte, sans la légende.

import { Unmap, createMap } from '@unmap/sdk'

const key = 'um_pk_live_...'
const unmap = new Unmap({ key })

// Keep an official name when a hopeful word appears in it as a whole word.
const families = {
  paradise: ['utopia', 'paradise', 'paradis', 'eden', 'canaan', 'zion', 'valhalla' /* ... */],
  happiness: ['happy', 'joy', 'bliss', 'delight', 'content', 'bonheur' /* ... */],
  harmony: ['hope', 'espoir', 'peace', 'paix', 'harmony', 'providence', 'sointula' /* ... */],
  fortune: ['eureka', 'eldorado', 'bonanza', 'success', 'fortune' /* ... */],
}
const word = (w) => new RegExp('(?<!\\p{L})' + w + '(?!\\p{L})', 'iu') // so Hopedale is not Hope
const family = (name) => Object.keys(families).find((f) => families[f].some((w) => word(w).test(name)))
const hopeful = names.filter((n) => family(n.name)) // names: Day 6's CGNDB file

// The fastest drive from Utopia, Ontario to Paradise, Newfoundland and Labrador.
const route = await unmap.router.route([-79.837, 44.329], [-52.884, 47.535], { mode: 'car' })

const map = createMap({ key, container: '#map', style: 'muted' })
map.on('load', () => {
  const labels = map.getStyle().layers.find((l) => l.type === 'symbol').id
  map.addSource('names', { type: 'geojson', data: toPoints(hopeful) })
  map.addLayer({ id: 'names', type: 'circle', source: 'names',
    paint: { 'circle-color': ['match', ['get', 'family'],
      'paradise', '#F2B84B', 'happiness', '#B58CFF', 'harmony', '#4FB3E8', '#7DD87F'] } }, labels)
  map.addSource('route', { type: 'geojson', data: route.geometry })
  map.addLayer({ id: 'route', type: 'line', source: 'route',
    paint: { 'line-color': '#FF3E9A', 'line-width': 3 } }, labels) // over the dots, under the place names
})

Les noms viennent du fichier du jour 6, qui contient tous les noms officiels de la Base de données toponymiques du Canada. Un script garde un nom quand l'un de 46 mots anglais et français y figure comme mot entier, si bien que Hopedale ne compte pas, et le classe selon ce mot dans l'une des quatre familles. La recherche lit des mots, pas des intentions : elle ne distingue pas un lac Hope nommé pour l'espoir d'un autre nommé pour un M. Hope, et elle manque les noms en langues autochtones qui ont le même sens, parce que la base ne les traduit pas. Huit noms dont le mot fait clairement partie du nom d'une personne, comme Sainte-Félicité et le parc Rosa-Bonheur, sont écartés. Le trajet est une seule requête en voiture à l'API d'itinéraires d'unmap. Le réseau routier couvre uniquement le Canada, si bien que le trajet ne peut pas couper par le Maine, et la durée du traversier est l'estimation du moteur, sans attente d'un départ.

Données

  • Noms : Base de données toponymiques du Canada, Ressources naturelles Canada. Contient des informations visées par la Licence du gouvernement ouvert - Canada.
  • Itinéraire : unmap sur les données d'OpenStreetMap, © les contributeurs d'OpenStreetMap (ODbL).
  • Fond de carte : unmap, © les contributeurs d'OpenStreetMap.

Partager cette carte

Publiez-la, ou faites la vôtre avec le mot-clic #30DayMapChallenge.