robust geolocation using watchPosition()