This section explains warp correction using overpass-turbo.eu.
This example uses GPX data recorded while traveling on Rome
Metro Line A in Italy, from Repubblica station to Lucio Sestio
station. Points No.7 to No.8 cover the subway section. Because GPS
signals could not be received underground, there is a gap of about
7 km.

You can also see the warp on the map.

Use overpass-turbo.eu to create data for the target section.

[out:json][timeout:60];
area["name"="Roma"]["boundary"="administrative"]->.a;
(
node(area.a)["railway"="station"]["name"="Repubblica"];
node(area.a)["railway"="station"]["name"="Lucio Sestio"];
)->.stations;
rel(area.a)["route"="subway"]["ref"="A"]->.r;
way(r.r)->.tracks;
(.stations; .tracks;);
out geom;
Run the query.

If the query succeeds, the results are displayed. Export the results in GeoJSON format.

Next, import the GeoJSON file in Turbo GPX map editing ([Edit]-[File]-[Import GeoJSON]).

On the [Options] tab, set the name field to Label ([Import
GeoJSON]-[Set name to]=Label). This stores the
GeoJSON name data in the Label field. In this example,
Repubblica is set as the first Label and
Lucio Sestio as the last Label.
Apply the
editing data to the main window. Set [Apply to GPX List] Mode to
Insert and Insert No. to 7, then click
the [Apply] button.

The points have been inserted below No.7.
Open the map
view.

The warp has been corrected.