Hello Folks π
What's up friends, this is SnowBit here. I am a young passionate and self-taught developer and have an intention to become a successful developer.
Today, I am here with an amazing topic that will be fun sharing π°
What is ISS?
The International Space Station is a modular space station in low Earth orbit. It is a multinational collaborative project involving five participating space agencies: NASA, Roscosmos, JAXA, ESA, and CSA. The ownership and use of the space station is established by intergovernmental treaties and agreements.
Source Wikipedia
Let's get on to the code π
Step 1 - Map
- Go to Mapbox and create account
- Copy and save your public token
Step 2 - Import Mapbox
<script src='https://api.mapbox.com/mapbox-gl-js/v2.6.1/mapbox-gl.js'></script> <link href='https://api.mapbox.com/mapbox-gl-js/v2.6.1/mapbox-gl.css' rel='stylesheet' />
Paste this in the <head>
tag of your .html
file
Step 3 - Setting map
In your Javascript file.
mapboxgl.accessToken = 'YOUR_PUBLIC_TOKEN'; const map = new mapboxgl.Map({ container: 'map', style: 'mapbox://styles/mapbox/dark-v10', center: [-74.5, 40], zoom: 0 });
Display map
const ISSLoc = (lng, lat) => { const geojson = { type: 'FeatureCollection', features: [ { type: 'Feature', geometry: { type: 'Point', coordinates: [lng, lat] }, properties: { title: 'Mapbox', description: 'San Francisco, California' } }, ] }; for (const feature of geojson.features) { const el = document.getElementById('marker'); new mapboxgl.Marker(el).setLngLat(feature.geometry.coordinates).addTo(map); } new mapboxgl.Marker(el) .setLngLat(feature.geometry.coordinates) .setPopup( new mapboxgl.Popup({ offset: 25 }) // add popups .setHTML( `<h3>${feature.properties.title}</h3><p>${feature.properties.description}</p>` ) ) .addTo(map); new mapboxgl.Marker(el) .setLngLat(feature.geometry.coordinates) .setPopup( new mapboxgl.Popup({ offset: 25 }) // add popups .setHTML( `<h3>${feature.properties.title}</h3><p>${feature.properties.description}</p>` ) ) .addTo(map); }
Step 4 - Styling popups
In your CSS file.
.marker { background-image: url('sat.png'); background-size: cover; width: 50px; height: 50px; border-radius: 50%; cursor: pointer; } .mapboxgl-popup { max-width: 200px; } .mapboxgl-popup-content { text-align: center; font-family: 'Open Sans', sans-serif; }
Image file: sat.png
Step 5 - Get ISS Position
const getISSLoc = () => { fetch('https://api.wheretheiss.at/v1/satellites/25544') .then(response => response.json()) .then(data => { ISSLoc(data.longitude, data.latitude) long = data.longitude latt = data.latitude }) }
Update ISS Position every second
const updateISSLoc = () => { setInterval(() => { getISSLoc() }, 1000 ) } updateISSLoc()
And you made it π
Check out the full source code: https://github.com/codewithsnowbit/ISS-Live-Location
Thank you for reading, have a nice day!
Your appreciation is my motivation π
- Follow me on Twitter - @codewithsnowbit
- Subscribe to me on YouTube - Code With SnowBit
Top comments (0)