Можно использовать геокодер яндекса или дадата. Но нужно через api выгрузку сделать. Есть ещё где-то государственные базы адресов с координатами, но про Питер не знаю.
Кстати, по поводу геокодера Яндекса. Говорят, у них ещё в начале лета появилось ограничение на количество адресов, кто-нибудь знает?