def METHOD_NAME(self, queryCoords, qdist):
    """Get attributes by coordinates (all available layers)
    Return line id or None if no line is found"""
    line = None
    nselected = 0
    try:
        data = grass.vector_what(
            map=self.map,
            coord=(float(queryCoords[0]), float(queryCoords[1])),
            distance=float(qdist),
        )
    except grass.ScriptError:
        GError(
            parent=None,
            message=_(
                "Failed to query vector map <{map}>. "
                "Check database settings and topology."
            ).format(map=self.map),
        )
    if len(data) < 1 or all(("Table" not in record) for record in data):
        return None
    # process attributes
    ret = dict()
    for key in ["Category", "Layer", "Table", "Id"]:
        ret[key] = list()
    for record in data:
        if "Table" not in record:
            continue
        table = record["Table"]
        for key, value in record["Attributes"].items():
            if len(value) < 1:
                value = None
            else:
                if self.tables[table][key]["ctype"] != str:
                    value = self.tables[table][key]["ctype"](value)
                else:
                    value = GetUnicodeValue(value)
            self.tables[table][key]["values"].append(value)
        for key, value in record.items():
            if key == "Attributes":
                continue
            if key in ret:
                ret[key].append(value)
        if "Id" not in record.keys():
            ret["Id"].append(None)
    return ret