Accurate localization is vital to ensure safety and efficiency in dispatching and commanding from railway control centers. Currently, the high-speed railway adopts a positioning method combining track circuits and transponders. However, such a positioning scheme is easily affected by natural environments (such as lightning strikes and corrosion). Using global navigation satellite systems (GNSS) to provide positions can improve the system's robustness to nature. However, GNSS signals can be absent when a train goes through a tunnel, and the accuracy of GNSS positioning cannot meet the needs of high-speed railways due to the interference of atmospheric delay and out of synchronization between satellite and receiver clocks. This paper proposes a multi-sensor fusion approach that fuses GNSS coordinates, inertial measurements, and LoRa signals to achieve decimeter-level localization accuracy even when missing GNSS signals to address the above challenges. We first fuse GNSS with inertial measurements from Inertial Measurement Unit (IMU) to provide accurate positions when trains have valid GNSS signals. Then we elaborate on the LoRa positioning technique and the LoRa-IMU fusion scheme to cope with the absence of GNSS signals. To demonstrate the effectiveness of our approach, we leverage the real-world dataset, KITTI, to conduct data-driven experiments. The results show that our approach outperforms existing localization approaches about 7 times in accuracy. Moreover, thanks to the long-range sensing capability of LoRa, the LoRa gateway can be very sparse.