<SYSTEM_TASK:>
Solve the following problem using Python, implementing the functions described below, one line at a time
<END_TASK>
<USER_TASK:>
Description:
 def start_pan(self, x, y, button):
 """ Called when a pan operation has started. *x*, *y* are the mouse coordinates in display coords. button is the mouse button number: * 1: LEFT * 2: MIDDLE * 3: RIGHT .. note:: Intended to be overridden by new projection types. """

        bd = self.viewer.get_bindings()
        data_x, data_y = self.viewer.get_data_xy(x, y)
        event = PointEvent(button=button, state='down',
                           data_x=data_x, data_y=data_y,
                           viewer=self.viewer)
        if button == 1:
            bd.ms_pan(self.viewer, event, data_x, data_y)
        elif button == 3:
            bd.ms_zoom(self.viewer, event, data_x, data_y)