code: def footprints_from_address(address, distance, footprint_type='building', retain_invalid=False):
      
  
      # geocode the address string to a (lat, lon) point
      point = geocode(query=address)
  
      # get footprints within distance of this point
      return footprints_from_point(point, distance, footprint_type=footprint_type, 
                                   retain_invalid=retain_invalid)
docs: Get footprints within some distance north, south, east, and west of
      an address.
  
      Parameters
      ----------
      address : string
          the address to geocode to a lat-long point
      distance : numeric
          distance in meters
      footprint_type : string
          type of footprint to be downloaded. OSM tag key e.g. 'building', 'landuse', 'place', etc.
      retain_invalid : bool
          if False discard any footprints with an invalid geometry
  
      Returns
      -------
      GeoDataFrame