Air Miles Calculator logo

How far is Barcelona from Shanghai?

The distance between Shanghai (Shanghai Hongqiao International Airport) and Barcelona (Barcelona–El Prat Airport) is 6121 miles / 9852 kilometers / 5319 nautical miles.

Shanghai Hongqiao International Airport – Barcelona–El Prat Airport

Distance arrow
6121
Miles
Distance arrow
9852
Kilometers
Distance arrow
5319
Nautical miles

Search flights

Distance from Shanghai to Barcelona

There are several ways to calculate the distance from Shanghai to Barcelona. Here are two standard methods:

Vincenty's formula (applied above)
  • 6121.494 miles
  • 9851.590 kilometers
  • 5319.433 nautical miles

Vincenty's formula calculates the distance between latitude/longitude points on the earth's surface using an ellipsoidal model of the planet.

Haversine formula
  • 6108.445 miles
  • 9830.590 kilometers
  • 5308.094 nautical miles

The haversine formula calculates the distance between latitude/longitude points assuming a spherical earth (great-circle distance – the shortest distance between two points).

How long does it take to fly from Shanghai to Barcelona?

The estimated flight time from Shanghai Hongqiao International Airport to Barcelona–El Prat Airport is 12 hours and 5 minutes.

Flight carbon footprint between Shanghai Hongqiao International Airport (SHA) and Barcelona–El Prat Airport (BCN)

On average, flying from Shanghai to Barcelona generates about 733 kg of CO2 per passenger, and 733 kilograms equals 1 616 pounds (lbs). The figures are estimates and include only the CO2 generated by burning jet fuel.

Map of flight path from Shanghai to Barcelona

See the map of the shortest flight path between Shanghai Hongqiao International Airport (SHA) and Barcelona–El Prat Airport (BCN).

Airport information

Origin Shanghai Hongqiao International Airport
City: Shanghai
Country: China Flag of China
IATA Code: SHA
ICAO Code: ZSSS
Coordinates: 31°11′52″N, 121°20′9″E
Destination Barcelona–El Prat Airport
City: Barcelona
Country: Spain Flag of Spain
IATA Code: BCN
ICAO Code: LEBL
Coordinates: 41°17′49″N, 2°4′42″E