Though the solution of both are working, there are also other methods. The method of Yehuda is recursive which is not that nice, and can therefore not be parallelised easily. I see wo other ways of doing it:
ClearAll[distance];
distance[{{x1_,y1_},{x2_,y2_}}]:=Abs[(x2-x1)]+Abs[(y2-y1)];
totaldistance[x:{{_,_}..}]:=Total[distance/@Partition[x,2,1,{-1,1},{{0,0}}]]
similar to the above 2 replies. But one can also do it like this:
ClearAll[distance];
ClearAll[distance];
distance[{\[CapitalDelta]x_,\[CapitalDelta]y_}]:=Abs[\[CapitalDelta]x]+Abs[\[CapitalDelta]y];
totaldistance[x:{{_,_}..}]:=Total[distance/@Differences[Join[{{0,0}},x,{{0,0}}]]]
or even:
ClearAll[totaldistance];
totaldistance[x:{{_,_}..}]:=Total[Abs[Differences[Join[{{0.0,0.0}},x,{{0.0,0.0}}]]],\[Infinity]]
Note that prepending/appending 0.0 instead of 0 can make a big difference depending on the input data. Especially if it is a packed array of a certain type. The last one will be the fastest as it does not use Map, and everything is vectorized (assuming real numbers, not symbolic calculation, and 'large' number of points).