code: def _update(self, frame_no):
          
          # Check for any fatal errors from the background thread and quit if we hit anything.
          if self._oops:
              raise RuntimeError(self._oops)
  
          # Calculate new positions for animated movement.
          self._move_to_desired_location()
  
          # Re-draw the tiles - if we have any suitable ones downloaded.
          count = 0
          x_offset = self._convert_longitude(self._longitude)
          y_offset = self._convert_latitude(self._latitude)
          if self._tiles:
              # Clear the area first.
              bg = 253 if self._screen.unicode_aware and self._screen.colours >= 256 else 0
              for y in range(self._screen.height):
                  self._screen.print_at("." * self._screen.width, 0, y, colour=bg, bg=bg)
  
              # Now draw all the available tiles.
              count = self._draw_tiles(x_offset, y_offset, bg)
  
          # Just a few pointers on what the user should do...
          if count == 0:
              self._screen.centre(" Loading - please wait... ", self._screen.height // 2, 1)
  
          self._screen.centre("Press '?' for help.", 0, 1)
          if _KEY == "":
              footer = "Using local cached data - go to https://www.mapbox.com/ and get a free key."
          else:
              footer = u"Zoom: {} Location: {:.6}, {:.6} Maps: © Mapbox, © OpenStreetMap".format(
                  self._zoom, self._longitude, self._latitude)
          self._screen.centre(footer, self._screen.height - 1, 1)
  
          return count
docs: Draw the latest set of tiles to the Screen.