Il problema fondamentale sarebbe che la geolocalizzazione tramite l'indirizzo IP non è necessariamente il metodo più precisio. Nel tuo caso per esempio sembra che il tuo IP è stato registrato su Roma, anche se poi viene assegnato ai clienti di Bergamo.
Potresti provarlo con http://en.wikipedia.org/wiki/W3C_Geolocation_API ma anche qui l'IP viene usato come dato principale.
In breve, trovare la posizione del utente in modo automatico non è proprio sempre precisio (per esempio potrebbe usare un proxy o VPN) e spesso è meglio chiedere all'utente.