AA545 - American Airlines (AAL545) from Philadelphia to Fort Myers (2023)

American Airlines AA545 (AAL545)
AA545 / AAL545
22. May 2023

On Time
This flight is scheduled, it will depart in 133 minutes.
Philadelphia
PHL / KPHL

2h 49m
1,602km / 989mi

Fort Myers
RSW / KRSW

AA545 - American Airlines (AAL545) from Philadelphia to Fort Myers (4)

Departure 13:43EDT
3min late

Arrival 16:29EDT

TERMINAL: B
GATE: B3

GATE: D1

FREQUENCY:

daily
Sun,Mon,Tue,Wed,Thu,Fri,Sat
AIRLINE
American Airlines
AA/AAL
" : "") + "AA545 - American Airlines (AAL545) from Philadelphia to Fort Myers (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]+"

" : "") + "AA545 - American Airlines (AAL545) from Philadelphia to Fort Myers (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]+"

" : "") + "AA545 - American Airlines (AAL545) from Philadelphia to Fort Myers (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]+"

" : "") + "AA545 - American Airlines (AAL545) from Philadelphia to Fort Myers (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
N649AW Airbus A320

ICAO IDENTIFIER
A886BF

SEAT CONFIGURATION
150 seats
12 Business138 Economy

FIRST FLIGHT
Mar 1998
25 years ago

GENERAL ROUTE INFO

DISTANCE
1,602km 995mi

FLIGHT TIME
2 hours 54 min

FLIGHTS / WEEK
26 Flights

PUNCTUALITY
6 Flights/week delayed
75% On-Time Performance

SEATS / WEEK
155 seats/Flight
17,272 seats/week

CO2 EMISSIONS*

Economy
265kg

Business
358kg

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: Manual Maggio

Last Updated: 27/07/2023

Views: 5899

Rating: 4.9 / 5 (69 voted)

Reviews: 92% of readers found this page helpful

Author information

Name: Manual Maggio

Birthday: 1998-01-20

Address: 359 Kelvin Stream, Lake Eldonview, MT 33517-1242

Phone: +577037762465

Job: Product Hospitality Supervisor

Hobby: Gardening, Web surfing, Video gaming, Amateur radio, Flag Football, Reading, Table tennis

Introduction: My name is Manual Maggio, I am a thankful, tender, adventurous, delightful, fantastic, proud, graceful person who loves writing and wants to share my knowledge and understanding with you.