I'll try to describe my problem as simplest as possible.
Assume I have a map where I plot as points the cities within the map. Cities are then connected by line segments representing roads, so now there's a graph with line segments that represent the euclidean distance for each road (these are the original weights).
I need to make a new graph with line segments representing the actual road lengths (new weights), while trying as much as possible to keep the original geometry unmodified.
I'm thinking metric multidimensional scaling is the way to go, but maybe there's something simpler.