Se você prefere usar a API de geocodificação do Google ou outra fonte on-line, em vez de opções locais, sugiro pesquisar no Projeto Tor (facilmente instalado através do pacote chamado 'Vidalia Bundle').
O Tor protege você devolvendo suas comunicações em uma rede distribuída de relés executados por voluntários em todo o mundo: impede ... os sites que você visita de aprender sua localização física.
Juntamente com a injeção de endereços aleatórios e o uso de SSL (https) para criptografar as comunicações em seus pontos de extremidade (verifique se você também está fazendo isso), não consigo pensar em uma maneira mais segura de geocodificar remotamente. Qualquer que seja o serviço de geocodificação que você estiver usando, nunca será capaz de identificar de onde vieram as solicitações e, com o https, ninguém mais o fará. Nota: não use um serviço de geocodificação que exija uma chave API para isso, ou você não será mais anônimo. (O Google não exige mais uma chave API).
Um "benefício" secundário desse procedimento é que você não ficará mais restrito a nenhum número de solicitações de geocodificação, pois elas parecerão provenientes de vários endereços IP. No entanto, eu não recomendo ou apoio o abuso dessas adoráveis APIs gratuitas! A taxa ainda será limitada se a API limitar a taxa (embora a velocidade de transmissão usando o Tor seja um pouco mais lenta que a conexão direta).
Estudo de caso em Python - Depois de instalar o Vidalia Bundle e executar o proxy em 127.0.0.1:8118 (o padrão), no Python 2.7 ou superior, você pode configurar um proxy https urllib2 usando:
import urllib2
proxy = urllib2.ProxyHandler({'https': '127.0.0.1:8118'})
opener = urllib2.build_opener(proxy)
urllib2.install_opener(opener)
response = urllib2.urlopen("https://maps.google.com/maps/geo?q=Los+Angeles&sensor=false&gl=us")
Observe que os proxies urllib2 não funcionam com https até pelo menos o Python 2.7, portanto esse método funciona apenas com versões recentes do Python. Verifique se você tem 'https' (não 'http') nos dois lugares no exemplo acima. Eu só testei com o Python 2.7.1.
O Vidalia altera sua identidade / origem aparente do endereço IP a cada 10 minutos, mas se você tiver taxas lentas ou outros problemas (erros de cota excedidos) ou se for especialmente paranóico e quiser mudar sua identidade com mais frequência, poderá alterar sua identidade Tor usando o código python aqui (ligeiramente modificado abaixo). Você precisará alterar a senha do Tor para estática (em vez de gerada aleatoriamente), digitando as configurações do Vidalia. Também pode ser necessário reiniciar o Vidalia após todas as alterações.
p = "MySuperSecurePassword"
def renewTorIdentity():
success = False
try:
s = socket.socket()
s.connect(('localhost', 9051))
s.send('AUTHENTICATE "' + p + '"\r\n')
resp = s.recv(1024)
if resp.startswith('250'):
s.send("signal NEWNYM\r\n")
resp2 = s.recv(1024)
if resp2.startswith('250'):
success = True
except:
success = False
return success