Дайте вашему map_canvas
div фиксированную ширину и высоту, и ваш пример будет работать нормально:
<div id="map_canvas" style="width: 500px; height: 400px;"></div>
В противном случае установите высоту на html
и body
, как это делает Google в учебниках по API :
<style type="text/css">
html { height: 100% }
body { height: 100%; margin: 0px; padding: 0px }
#map_canvas { height: 100% }
</style>