Air Miles Calculator logo

How far is Surabaya from Shanghai?

The distance between Shanghai (Shanghai Pudong International Airport) and Surabaya (Juanda International Airport) is 2715 miles / 4370 kilometers / 2360 nautical miles.

Shanghai Pudong International Airport – Juanda International Airport

Distance arrow
2715
Miles
Distance arrow
4370
Kilometers
Distance arrow
2360
Nautical miles

Search flights

Distance from Shanghai to Surabaya

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

Vincenty's formula (applied above)
  • 2715.355 miles
  • 4369.941 kilometers
  • 2359.579 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
  • 2727.700 miles
  • 4389.807 kilometers
  • 2370.306 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 Surabaya?

The estimated flight time from Shanghai Pudong International Airport to Juanda International Airport is 5 hours and 38 minutes.

Flight carbon footprint between Shanghai Pudong International Airport (PVG) and Juanda International Airport (SUB)

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

Map of flight path from Shanghai to Surabaya

See the map of the shortest flight path between Shanghai Pudong International Airport (PVG) and Juanda International Airport (SUB).

Airport information

Origin Shanghai Pudong International Airport
City: Shanghai
Country: China Flag of China
IATA Code: PVG
ICAO Code: ZSPD
Coordinates: 31°8′36″N, 121°48′18″E
Destination Juanda International Airport
City: Surabaya
Country: Indonesia Flag of Indonesia
IATA Code: SUB
ICAO Code: WARR
Coordinates: 7°22′47″S, 112°47′13″E