Io ho fatto cosi:
- Lungo elenco di indirizzi da gaolocalizzare.
- A fiano ad ogni indirizzo un pulsante per ricavare le coordinate ed un pulsante per salvarle.
Nella lista mantengo anche gli indirizzi già geolocalizzati e la possibilità di modificarli (e quindi geolocalizzarli nuovamente)

La mia scelta non è per niente automatica ed ho agito così solo per lo spasso di farmi una maschera con un po' di ajax e qualche altra funzionalità (tipo il cambio di indirizzo al volo).

Non mi sono preoccupato di cercare delle API che non fossero javascript per recuperare le coordinate, sempre per il motivo sopra citato: il gusto di farmi una mascherina bella da usare (tanto la uso io).

Io ti suggerisco di cercare tra le API di Google il modo di ricavare lat e lng attraverso un linguaggio lato server (attraverso ASP, PHP, XML o qualunque altro tu stia usando) per poi immagazzinarle in DB.
Sarebbe una soluzione automatica e decisamente migliore rispetto a quella adottata da me.

Se queste API non ci sono...puoi farti uno script (con del javascript) che recuperi le coordinate, ma temporizzando le richieste, tipo una ogni secondo.

Non mi viene in mente altro... :master:

Riguardo alla tue seconda domanda: si, una volta che le hai in DB, ne puoi istanziare anche 2000 (!!!) di marker sulla mappa, passandogli direttamente lat e lng.