'Get the latest data from Google.'

@Throttle(MIN_TIME_BETWEEN_UPDATES)
def update(self):

    options_copy = self._options.copy()
    dtime = options_copy.get('departure_time')
    atime = options_copy.get('arrival_time')
    if ((dtime is not None) and (':' in dtime)):
        options_copy['departure_time'] = convert_time_to_utc(dtime)
    elif (dtime is not None):
        options_copy['departure_time'] = dtime
    elif (atime is None):
        options_copy['departure_time'] = 'now'
    if ((atime is not None) and (':' in atime)):
        options_copy['arrival_time'] = convert_time_to_utc(atime)
    elif (atime is not None):
        options_copy['arrival_time'] = atime
    if hasattr(self, '_origin_entity_id'):
        self._origin = self._get_location_from_entity(self._origin_entity_id)
    if hasattr(self, '_destination_entity_id'):
        self._destination = self._get_location_from_entity(self._destination_entity_id)
    self._destination = self._resolve_zone(self._destination)
    self._origin = self._resolve_zone(self._origin)
    if ((self._destination is not None) and (self._origin is not None)):
        self._matrix = self._client.distance_matrix(self._origin, self._destination, **options_copy)
