     super(_.defaults(options, @default_options))
     @zoom_count = null
 
-  update_range: (range_info) ->
-    if not range_info?
-      range_info = @initial_range_info
-    @pause()
-    if range_info.sdx?
-      @map.panBy(range_info.sdx, range_info.sdy)
-    else
-      xr = range_info.xrs.default
-      yr = range_info.yrs.default
-      sw_lng = Math.min(xr.start, xr.end)
-      ne_lng = Math.max(xr.start, xr.end)
-      sw_lat = Math.min(yr.start, yr.end)
-      ne_lat = Math.max(yr.start, yr.end)
-
-      center = new google.maps.LatLng((ne_lat+sw_lat)/2, (ne_lng+sw_lng)/2)
-
-      if not range_info.factor?
-        @map.setCenter(center)
-        @map.setZoom(@initial_zoom)
-      else if range_info.factor > 0
-        @zoom_count += 1
-        if @zoom_count == 10
-          @map.setZoom(@map.getZoom()+1)
-          @zoom_count = 0
-      else
-        @zoom_count -= 1
-        if @zoom_count == -10
-          @map.setCenter(center)
-          @map.setZoom(@map.getZoom()-1)
-          @map.setCenter(center)
-          @zoom_count = 0
-
-    @unpause()
-
   bind_bokeh_events: () ->
     super()
 

    left = @canvas.vx_to_sx(@frame.get('left'))
    top = @canvas.vy_to_sy(@frame.get('top'))

    @canvas_view.map_div.attr("style",
      "top: #{top}px; left: #{left}px; position: absolute")
    @canvas_view.map_div.attr('style', "width:#{width}px;")
    @canvas_view.map_div.attr('style', "height:#{height}px;")
    @canvas_view.map_div.width("#{width}px").height("#{height}px")

        _.each(window._bokeh_gmap_loads, _.defer)
      script = document.createElement('script')
      script.type = 'text/javascript'
      script.src = "https://maps.googleapis.com/maps/api/js?v=3&callback=_bokeh_gmap_callback"
      document.body.appendChild(script)

  _map_hook: (ctx, frame_box) ->
    [left, top, width, height] = frame_box
