def METHOD_NAME(self, geometry: Union[Point, LineString, MultiLineString]) -> int:
    """Returns the zone in which the given geometry is located.
        If the geometry is not fully enclosed by any zone, the zone closest to
        the geometry is returned
    :Arguments:
        **geometry** (:obj:`Point` or :obj:`LineString`): A Shapely geometry object
    :Return:
        **zone_id** (:obj:`int`): ID of the zone applicable to the point provided
    """
    nearest = self.__geo_index.nearest(geometry, 10)
    dists = {}
    for zone_id in nearest:
        geo = self.__items[zone_id].geometry
        if geo.contains(geometry):
            return zone_id
        dists[geo.distance(geometry)] = zone_id
    return dists[min(dists.keys())]