Aller au contenu

Exercices Tremblements de Terre (suite)

Exercice - Tremblements de terre (suite)#

À la suite de l’exercice des tremblements de terre :

  • Ajoutez une popup lors du click sur chaque point (basez-vous sur les exemples du cours)
  • La popup doit contenir :
    • un titre avec la magnitude (clé mag)
    • un texte avec la date, dans le format local (clé time, et utilisez new Date(timestamp).toLocaleString())
    • un texte avec le lieu (clé place)

Remarquez dans OpenLayers le «problème» de la gestion multi-mondes en cliquant sur un tremblement de terre au large de la Nouvelle-Zélande.

Pou palier cela, deux solutions :

  • empêcher le «multi-monde» avec l’option wrapX: false sur la source
  • ou, calculer et utiliser les coordonnées au sein du monde courant (voir code)
let worldWidth = ol.extent.getWidth(map.getView().getProjection().getExtent());
let world = Math.floor((map.getCoordinateFromPixel(evt.pixel)[0] + worldWidth/2)/worldWidth);
let coords = feature.getGeometry().getCoordinates();
popup.setPosition([coords[0] + world * worldWidth, coords[1]]);