https://developers.google.com/maps/documentation/j... - первая страница туториала на официальной странице и на русском языке, неужели нельзя прочесть?
В первом же примере показано, что нужно юзать callback, нужно дождаться загрузки карты.
И зачем вы сначала объявили глобальную переменную map, а потом объявили эту же переменную локально (если вам нужно глобальная переменная, то при присвоении переменной отбросьте var .
сначала
var map;
а потом
map = new ....;