XQ121 - 01. Jan 2022: SunExpress (SXS3EX) from Zurich to Antalya (2023)

SunExpress XQ121 (SXS121)
XQ121 / SXS3
01. Jan 2022
This is not the most recent flight. Click here for the XQ121 flight plan.

Landed
The flight has landed. It arrived 16 months ago (26min early).
Zurich
ZRH / LSZH

2h 57m
2,167km / 1,337mi

Antalya
AYT / LTAI

XQ121 - 01. Jan 2022: SunExpress (SXS3EX) from Zurich to Antalya (4)

Departure 17:16CET
9min early

Arrival 22:13UTC+03
26min early

GATE: 2

TERMINAL: 1
GATE: T1

FREQUENCY:

daily
Sun,Mon,Tue,Wed,Thu,Fri,Sat
AIRLINE
SunExpress
XQ/SXS
" : "") + "XQ121 - 01. Jan 2022: SunExpress (SXS3EX) from Zurich to Antalya (6)"; liveMap.removeLayer(marker[activeHex]); const m = L.marker(activeMarker.getLatLng(), { icon: L.divIcon({ className: 'flt-marker', html: htmlc }) , alt: activeHex , opacity: lp[3] ? 0.9 : 0.6 }).addTo(liveMap).on('click', onPlaneClick); marker[activeHex] = m; document.getElementById("mi-"+activeHex).style.transform = "rotate("+lp[2]+"deg)"; activeMarker = null; } activeHex = null; liveTrack = null; liveMarker = null; estTrack = null; document.getElementById('liveMapContainer').style.display = 'none'; } async function updateCalc(liveMap) { if (recalcInProg) { return; } if (liveMap.getZoom() < 6) { return; } recalcInProg = true; for (const [key, prevPos] of Object.entries(lastPos)) { if (key in marker) { if (prevPos[3] < 50 || prevPos[6]) { continue; } // calc next position const speed = prevPos[3] ? prevPos[3] : 0; const interval = Date.now() - prevPos[4]; const dist = speed * interval / 1000 / 3600 * 1852; if (dist < 50) { continue; } const lat1 = toRad(prevPos[0]); const lon1 = toRad(prevPos[1]); const brng = toRad(prevPos[2]); const lat2 = Math.asin(sin(lat1) * cos(dist / r_earth) + cos(lat1) * sin(dist / r_earth) * cos(brng)); const lon2 = lon1 + Math.atan2(sin(brng) * sin(dist / r_earth) * cos(lat1), cos(dist / r_earth) - sin(lat1) * sin(lat2)); const lat2d = toDeg(lat2); const lon2d = toDeg(lon2); lastPos[key] = [lat2d, lon2d, prevPos[2], prevPos[3], Date.now(), prevPos[5],prevPos[6],prevPos[7]]; marker[key].setLatLng([lat2d, lon2d]); if (liveTrack && activeMarker == key) { l = liveTrack.getLatLngs(); l.push(L.latLng(lat2d, lon2d,prevPos[5])); try { liveTrack.setLatLngs(l); } catch (e) { } if (activeDest) { t = activeDest; tn = L.latLng(lat2d, lon2d); liveMap.removeLayer(estTrack); if (t.lng < tn.lng) { estTrack = L.Polyline.Arc(t, tn, { color: "gray", noClip: true, vertices: 100 }).addTo(liveMap); } else { estTrack = L.Polyline.Arc(tn, t, { color: "gray", noClip: true, vertices: 100 }).addTo(liveMap); } tracks.push(estTrack); } } } } recalcInProg = false; } async function getData(url) { url=url + "?" + Math.floor(Date.now() / 5000) const ret = await (fetch(url, { headers: { Authorization: auth_token } }).then((response) => { if (response.ok) { if (sf == "") { document.getElementById("liveUpdErr").style.display = 'none'; document.getElementById("liveUpdNotFound").style.display = 'none'; } return response.json(); } else if (response.status != 404 && sf == "") { refreshsActive = false; document.getElementById("liveUpdNotFound").style.display = 'none'; document.getElementById("liveUpdErr").style.display = 'block'; document.getElementById("liveMapContainer").style.display = 'none'; document.getElementById("liveUpdErrCode").innerText = response.status; } else if (sf == "") { document.getElementById("liveUpdErr").style.display = 'none'; document.getElementById("liveMapContainer").style.display = 'none'; document.getElementById("liveUpdNotFound").style.display = 'block'; } return null; }).catch((error) => { return null; })); return ret; } async function updateMap(liveMap, fromZoom) { if (typeof document.hidden !== "undefined") { if (document.hidden) { return; } } b = liveMap.getBounds(); const widthText = screenWidth > 1000 ? "large" : "small"; url = "/en/live/map/" + Math.floor(b['_northEast'].lat * 1e5) + "/" + Math.floor(b['_southWest'].lat * 1e5) + "/" + Math.floor(b['_southWest'].lng * 1e5) + "/" + Math.floor(b['_northEast'].lng * 1e5) + "/"+liveMap.getZoom() + "/" + widthText; if (updateInProg) { return; } freq = fromZoom ? minZoomFreq : minRefreshFreq; if (Date.now() - lastUpdate < freq) { return; } recalcInProg = true; lastUpdate = Date.now(); updateInProg = true; const ld = await getData(url); if (!ld) { updateInProg = false; return; } newMarker = {}; arcs = []; curArc = []; arcCol = ""; prevCoord = []; document.getElementById("nr_flights_disp").innerText =ld["f"]; document.getElementById("nr_flights_tot").innerText =ld["t"]; st = screenWidth / ld["f"] > 2; const redraw = st != hadTitles; for (const entr in ld["m"]) { const e = ld["m"][entr]; if (e[4] == null || e[5] == null) { continue; } const currentPos = L.latLng(e[4], e[5]); if (redraw && e[0] in marker) { liveMap.removeLayer(marker[e[0]]); delete marker[e[0]]; } if (e[0] in marker) { const m = marker[e[0]]; m.setLatLng(currentPos); lastPos[e[0]] = [e[4], e[5], e[2], e[6], Date.now(),e[7],e[8],e[9]]; newMarker[e[0]] = true; document.getElementById("mi-"+e[0]).style.transform = "rotate("+e[2]+"deg)"; } else { const htmlc = (st ? "

"+e[9]+"

" : "") + "XQ121 - 01. Jan 2022: SunExpress (SXS3EX) from Zurich to Antalya (7)" const m = L.marker(currentPos, { icon: L.divIcon({ className: 'flt-marker', html: htmlc }) , alt: e[0] , opacity: e[3] ? 0.9 : 0.6 }).addTo(liveMap).on('click', onPlaneClick); marker[e[0]] = m; newMarker[e[0]] = true; lastPos[e[0]] = [e[4], e[5], e[2], e[6], Date.now(),e[7],e[8],e[9]]; document.getElementById("mi-"+e[0]).style.transform = "rotate("+e[2]+"deg)"; } } hadTitles = st; for (const m in marker) { if (!(m in newMarker) && m != activeHex) { liveMap.removeLayer(marker[m]); delete marker[m]; } } updateInProg = false; recalcInProg = false; firstUpd = false; } function onMoveend(e) { localStorage.setItem('livemapCenter', JSON.stringify(e.target.getCenter())); localStorage.setItem('livemapZoom', e.target.getZoom()); updateMap(e.sourceTarget, false); } function onZoomed(e) { updateMap(e.sourceTarget, true) } function onPlaneClick(e) { if (sf != "") { return; } updateInProg = true; const liveMap = e.target._map; const hex = e.target.options.alt; if (hex == activeHex) { return; } updateTrack(liveMap, "/en/live/track_hex/" + hex, hex, e) } function updateTrack(liveMap, url, hex, e) { getData(url).then(function (ld) { if (!ld) { return; } const hadNoHex = hex == ""; if (hex == "") { hex = ld[0]; } if (activeMarker && hex != activeHex) { // reset old marker const lp = lastPos[activeHex]; const htmlc = (hadTitles ? "

"+lp[7]+"

" : "") + "XQ121 - 01. Jan 2022: SunExpress (SXS3EX) from Zurich to Antalya (8)"; liveMap.removeLayer(marker[activeHex]); const m = L.marker(activeMarker.getLatLng(), { icon: L.divIcon({ className: 'flt-marker', html: htmlc }) , alt: activeHex , opacity: lp[3] ? 0.9 : 0.6 }).addTo(liveMap).on('click', onPlaneClick); marker[activeHex] = m; document.getElementById("mi-"+activeHex).style.transform = "rotate("+lp[2]+"deg)"; activeMarker = m; } // set new marker if (hex != activeHex && e) { const lp = lastPos[hex]; const htmlc = (hadTitles ? "

"+lp[7]+"

" : "") + "XQ121 - 01. Jan 2022: SunExpress (SXS3EX) from Zurich to Antalya (9)" const m = L.marker(e.target.getLatLng(), { icon: L.divIcon({ className: 'flt-marker', html: htmlc }) , alt: hex , opacity: ld[3] ? 0.9 : 0.6 }).addTo(liveMap).on('click', onPlaneClick); marker[hex] = m; liveMap.removeLayer(e.target); activeMarker = m; } refreshsActive = true; recalcInProg = true; arcs = []; curArc = []; arcCol = ""; prevCoord = []; track = ld[23]; if (sf == "") { if (ld[0] != "") { document.getElementById("liveFlnr").href = "/en/live/flight_details/" + ld[10]; document.getElementById("liveFlnr").innerText = ld[0]; } else { document.getElementById("liveFlnr").innerText = ""; document.getElementById("liveFlnr").href = ""; } if (ld[21]) { document.getElementById("liveAirline").innerText = ld[21]; } else { document.getElementById("liveAirline").innerText = ""; } document.getElementById("liveHex").innerText = ld[1] ; if (ld[2] != "" && ld[2] != ld[0]) { document.getElementById("liveCallsign").innerText = ld[2]; } else { document.getElementById("liveCallsign").innerText = ""; } if (ld[3] != "") { document.getElementById("liveReg").href = "/en/planes/" + ld[3]; document.getElementById("liveRegBlock").style.display="block"; document.getElementById("liveReg").innerText = ld[3]; } else { document.getElementById("liveReg").innerText = "NA"; document.getElementById("liveRegBlock").style.display="none"; document.getElementById("liveReg").href = ""; } if (ld[4] != "NA") { document.getElementById("liveDep").innerText = ld[5]; document.getElementById("liveDepFlag").src="/staticfiles/"+ld[6].toLowerCase()+".svg"; document.getElementById("liveDep").href = "/en/airport/" + ld[5] + "/" + ld[4]; document.getElementById("liveDepTime").innerText = ld[11]; if (ld[19] && ld[19] != "+0") { document.getElementById("liveDepDelay").innerText = ld[19]; } else { document.getElementById("liveDepDelay").innerText = ""; } } else { document.getElementById("liveDep").innerText = "NA"; document.getElementById("liveDepTime").innerText = ""; document.getElementById("liveDepDelay").innerText = ""; } if (ld[7] != "NA") { document.getElementById("liveArr").innerText = ld[8]; document.getElementById("liveArrFlag").src="/staticfiles/"+ld[9].toLowerCase()+".svg"; document.getElementById("liveArr").href = "/en/airport/" + ld[8] + "/" + ld[7]; document.getElementById("liveArrTime").innerText = ld[12]; if (ld[20] && ld[20] != "+0") { document.getElementById("liveArrDelay").innerText = ld[20]; } else { document.getElementById("liveArrDelay").innerText = ""; } } else { document.getElementById("liveArr").innerText = "NA"; document.getElementById("liveArrTime").innerText = ""; document.getElementById("liveArrDelay").innerText = ""; } if (ld[10] != null) { document.getElementById("liveLink").href = "/en/live/flight_details/" + ld[10]; document.getElementById("liveLink").style.display = "block"; } else { document.getElementById("liveLink").style.display = "none"; } const lt = track[track.length - 1]; document.getElementById("liveAlt").innerText = lt[3] + " ft"; document.getElementById("liveSpeed").innerText = lt[5] + " kts"; document.getElementById("liveTrack").innerText = lt[4] + "°"; if (ld[18] != "") { document.getElementById("planePic").src = ld[18]; document.getElementById("planePic").style.display = "block"; } else { document.getElementById("planePic").style.display = "none"; } if (ld[22]) { document.getElementById("liveType").innerText = ld[22]; document.getElementById("liveTypeBlock").style.display="block"; } else { document.getElementById("liveTypeBlock").style.display="none"; document.getElementById("liveType").innerText = "NA"; } } if (ld[13] != null && ld[14] != null && track.length > 0 && Math.abs(ld[13] - track[0][1] / 1e5) > 1 && Math.abs(ld[14] - track[0][2] / 1e5) > 1) { arcs.push([[[ld[13], ld[14]], [track[0][1] / 1e5, track[0][2] / 1e5]], "gray", true]) } var prevCoord = null; var prevCoordFull = null; lp = null; for (const entr in track) { const p = track[entr]; if (p[1] == null || p[2] == null) { continue; } col = "green"; if (prevCoord && (Math.abs(prevCoord[0] - p[1] / 1e5) > 1 || Math.abs(prevCoord[1] - p[2] / 1e5) > 1)) { arcs.push([curArc, arcCol, false]); arcCol = ""; arcs.push([[[prevCoord[0], prevCoord[1]], L.latLng(p[1] / 1e5, p[2] / 1e5,p[3])], "gray", true]); curArc = [L.latLng(p[1] / 1e5, p[2] / 1e5,p[3])]; } else if (arcCol != col) { if (curArc.length > 0) { arcs.push([curArc, arcCol, false]); } if (prevCoord) { curArc = [prevCoord]; } else { curArc = []; } arcCol = col; } prevCoordFull = [p[1] / 1e5, p[2] / 1e5, p[4], p[5], Date.now(),p[3],false,p[9]]; prevCoord = L.latLng(p[1] / 1e5, p[2] / 1e5,p[3]); curArc.push(prevCoord); if (p[4] != 0) { lastTrack = p[4]; } } if (curArc.length > 0) { arcs.push([curArc, arcCol]); } if (ld[15] != null && ld[16] != null && prevCoord && (Math.abs(prevCoord.lat - ld[15]) > 0.1 || Math.abs(prevCoord.lng - ld[16]) > 0.1)) { arcs.push([[prevCoord, [ld[15], ld[16]]], "gray", true]) activeDest = L.latLng(ld[15], ld[16]); } for (const idx in tracks) { tracks[idx].remove(); } tracks = []; for (const idx in arcs) { var a = arcs[idx]; if (a[2]) { if (a[0][0][1] > a[0][1][1]) { var p = a[0][0]; a[0][0] = a[0][1]; a[0][1] = p; } p = L.Polyline.Arc(a[0][0], a[0][1], { color: a[1], noClip: true, vertices: 100 }); estTrack = p; } else { p = L.hotline(a[0], { palette: {0:'gray',0.1:'green',0.5:'yellow',0.7:'orange',1:'red'},min:0,max:36000, outlineWidth: 0,weight:4, noClip: true }); liveTrack = p; } p.addTo(liveMap); tracks.push(p); } if (prevCoordFull) { lastPos[hex] = prevCoordFull; } if (prevCoord) { if (e) { const i = e.sourceTarget; i.setLatLng(prevCoord); activeMarker = i; if (lastTrack) { document.getElementById("mi-"+hex).style.transform = "rotate("+lastTrack+"deg)"; } if (!refreshs && !viewSet) { liveMap.setView(prevCoord, 8); } } else { if (!activeMarker) { activeMarker = L.marker(prevCoord, { icon: L.icon({ iconUrl: "/img/plane-icon_active.svg?20221124", iconSize: liveMap._zoom > 7 ? sizes[0] : sizes[1] }) , rotationAngle: prevCoordFull[2] , rotationOrigin: "center center" , opacity: 0.8 , title: hex }).addTo(liveMap); } else { activeMarker.setLatLng(prevCoord); } } if (e || hadNoHex) { // only set refresh on first click or for live flight tracks (no hex given then) if (trackRefresh) { window.clearInterval(trackRefresh); } if (ld[17]) { trackRefresh = window.setInterval(function () { if (refreshsActive) { updateTrack(liveMap, url, hex, null); } }, 5000); } } } if (!refreshs && !viewSet) { liveMap.setView(prevCoord, 8); } if (sf == "") { document.getElementById("liveMapContainer").style.display = 'block'; } activeHex = hex; updateInProg = false; recalcInProg = false; }); } function buildLiveMap(liveMap) { const osmUrl = 'https://a.tile.openstreetmap.org/{z}/{x}/{y}.png'; const osmAttrib = '© OpenStreetMap'; const osm = new L.TileLayer(osmUrl, { attribution: osmAttrib }); liveMap.attributionControl.setPrefix(''); liveMap.addLayer(osm); updateMap(liveMap, false); liveMap.on('zoomend', onZoomed); liveMap.on('moveend', onMoveend); } function buildTrackMap(liveMap, url) { const osmUrl = 'https://a.tile.openstreetmap.org/{z}/{x}/{y}.png'; const osmAttrib = '© OpenStreetMap'; const osm = new L.TileLayer(osmUrl, { attribution: osmAttrib }); liveMap.attributionControl.setPrefix(''); liveMap.addLayer(osm); updateTrack(liveMap, url, "", null); }

PLANE

MODEL
TC-SUU Boeing B737-800

ICAO IDENTIFIER
4BCEB5

SEAT CONFIGURATION
189 seats
189 Economy

FIRST FLIGHT
May 2001
22 years ago

GENERAL ROUTE INFO

DISTANCE
2,167km 1,346mi

FLIGHT TIME
3 hours 15 min

FLIGHTS / WEEK
23 Flights

PUNCTUALITY
13 Flights/week delayed
43% On-Time Performance

SEATS / WEEK
185 seats/Flight
18,343 seats/week

CO2 EMISSIONS*

Economy
301kg

Our CO2 calculations are estimated based on real flight data from prior flights and provide an estimated carbon footprint for the entire flight, including takeoff, cruising, and landing. We take into account factors such as aircraft type, fuel efficiency, and distance traveled to provide the most accurate estimate possible. Our goal is to provide transparency and help travelers make more informed decisions about their environmental impact.

* CO2 calculations provided by CarbonCompute.com

Flight delays happen, but that doesn’t mean you have to accept them. You may be entitled to as much as €600/$700 in compensation if your flight has been delayed, canceled or overbooked within the last three years.

Top Articles
Latest Posts
Article information

Author: Golda Nolan II

Last Updated: 11/07/2023

Views: 5485

Rating: 4.8 / 5 (78 voted)

Reviews: 93% of readers found this page helpful

Author information

Name: Golda Nolan II

Birthday: 1998-05-14

Address: Suite 369 9754 Roberts Pines, West Benitaburgh, NM 69180-7958

Phone: +522993866487

Job: Sales Executive

Hobby: Worldbuilding, Shopping, Quilting, Cooking, Homebrewing, Leather crafting, Pet

Introduction: My name is Golda Nolan II, I am a thoughtful, clever, cute, jolly, brave, powerful, splendid person who loves writing and wants to share my knowledge and understanding with you.