大约1800公里。

山西大同坐火车到上海需要25小时多,按照加权平均的车速70公里多来算,路程就是1750多,保留有效位到百位就是1800公里 ,当然这不是直线距离,火车要经过沿途的城市,路程就会有拐来拐去的,火车的路程一定比直线距离远一些。

火车的票价是按路程来算的,由此可以推断出路程。