Não é melhor verificar o geolocation depois? Essa linha invalida o nosso cache inteiro.

Acho que dá pra aproveitar o `result` se ele existir e só adicionar essa informação de geolocation.