rodolpheg

Untitled

Mar 11th, 2020
119
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 2.85 KB | None | 0 0
  1. <!DOCTYPE html>
  2. <html>
  3. <head>
  4. <head>
  5. <title>Titre</title>
  6. <meta charset="UTF-8">
  7. <!-- https://leafletjs.com/download.html -->
  8. <script src="https://unpkg.com/[email protected]/dist/leaflet.js"></script>
  9. <link rel="stylesheet" href="https://unpkg.com/[email protected]/dist/leaflet.css" />
  10. <style>
  11. /* On indique la taille de l'emplacement de la carte*/
  12. html, body {height: 100%; margin: 0;}
  13. #Carte { width: 100%; height: 100%; }
  14. </style>
  15. </head>
  16. <body>
  17. <div id='Carte'></div>
  18. <script>
  19. // créer la carte, remplacez VOTRE_TOKEN pour la clef que vous trouverez là : https://account.mapbox.com
  20. //var fondDeCarte = L.tileLayer('https://api.mapbox.com/styles/v1/mapbox/satellite-v9/tiles/{z}/{x}/{y}?access_token=VOTRE_TOKEN');
  21. // décochez la ligne suivante si vous n'avez pas de compte MapBox
  22. var fondDeCarte = L.tileLayer('https://{s}.tile.openstreetmap.org/{z}/{x}/{y}.png');
  23. var maCarte = L.map('Carte', {
  24. layers: fondDeCarte,
  25. zoomControl: true
  26. });
  27. maCarte.setView([0,0], 2);
  28.  
  29. // Création d'une couche à ajouter à la carte
  30. var seismes = new L.layerGroup();
  31.  
  32. // Création d'une fonction pour afficher un cercle par séisme
  33. function dessinerSeismes(data) {
  34. console.log(data);
  35. // nettoyer la couche seismes avant de dessiner les cercles à leur nouvelle position
  36. seismes.clearLayers()
  37. // dessiner les cercles
  38. for (var i = 0; i < data.features.length; i++) {
  39. seismes.addLayer(L.circleMarker([data.features[i].geometry.coordinates[1],data.features[i].geometry.coordinates[0]],{
  40. radius: data.features[i].properties.mag * 2.0,
  41. stroke: false,
  42. opacity: 1,
  43. fillColor: 'red',
  44. fillOpacity: .95
  45. }));
  46. }
  47. }
  48.  
  49. // téléchargement des données de l'API
  50. const api_url = 'https://earthquake.usgs.gov/earthquakes/feed/v1.0/summary/all_week.geojson';
  51. // Création d'une fonction asynchrone, qui authorise "await" afin de télécharger les données sans bloquer le reste des processus de la carte
  52. async function recupererLesDonnees() {
  53. // Téléchargement des données à l'adresse api_url. Tant que le téléchargement (effectué avec la fonction "fetch") n'est pas terminé, la fonction attend. Toutefois, puisque nous avons créé la fonction recupererLesDonnees en spécifiant qu'elle est asynchrone, le reste de la page est toujours fonctionnel
  54. const response = await fetch(api_url)
  55. const data = await response.json();
  56. // Ajoût d'une pour les données
  57. maCarte.attributionControl.addAttribution("données : USGS");
  58. // Invocation d'une fonction pour dessiner les points des séismes
  59. dessinerSeismes(data);
  60. }
  61. recupererLesDonnees();
  62. // ajouter la couche seismes nouvellement mise à jour à la carte
  63. maCarte.addLayer(seismes);
  64.  
  65. </script>
  66. </body>
  67. </html>
Advertisement
Add Comment
Please, Sign In to add comment