Is there a GPS tracking app that handles bad GPS data well?

I use Endomondo on iPhone and Android; also Strava.

Where I live, tall buildings and thousands of badly configured WiFi hotspots mean I get GPS spikes, where it suddenly thinks I'm 500m away from where I actually am.

A consequence is that in these apps, it thinks I'm walking at 60 km/h and calculates my calorie burn accordingly.

I wonder if there are better apps out there for this, ones that recognise these spikes and ignore them, or smooth them out?

Endo, at least for walking near where I live, is becoming useless, especially as it not posts directly to MFP and I then have to go and manually fix it up.