How to make panning and zooming using the middle mouse button/scroll wheel using unity input system

Sorry about the mouthful title, but basically, trying to make a RTS camera, similar to the ones used in Paradox Interactive games (Crusader Kings, Europa Universalis, Hearts of Iron, ect.) I took a look on the internet, but nothing seemed to use the Unity Input System (the package).

I made a Input Actions asset, putting in PanMap (Pass Through, Vector2), binding it to the middle mouse button, and a ZoomMap (Pass Through, Axis).

Created a C# Script, and put:

using System.Collections;
using System.Collections.Generic;
using UnityEngine;

namespace Requiem
{

    public class Controls : MonoBehaviour
    {

        GameControls controls;

        float PanSpeed = 20f;
        float ZoomSpeed = 2f;

        float Zoom;
        Vector3 CameraPosition;

        private void ZoomMap()
        {
            Zoom = controls.Default.ZoomMap.ReadValue<float>();

            CameraPosition.y += Zoom * ZoomSpeed * Time.deltaTime;
        }

        private void Awake()
        {
            controls = new GameControls();

            controls.Default.ZoomMap.performed += ctx => ZoomMap();
        }

        private void Update()
        {
            CameraPosition = transform.position;

            transform.position = CameraPosition;
        }

        private void OnEnable()
        {
            controls.Enable();
        }

        private void OnDisable()
        {
            controls.Disable();
        }

    }

}

Loosely following the Brackeys tutorial. I am not sure what to do from here, and I’m not sure what to put in the controls.Default.ZoomMap.ReadValue<>(); section, so I put float.

Anyone have any ideas/can help?

Edited the script and controls a bit.
New Script:

using System.Collections;
using System.Collections.Generic;
using UnityEngine;

namespace Requiem
{

    public class Controls : MonoBehaviour
    {

        GameControls controls;

        float ZoomSpeed = 2f;

        float Zoom;
        Vector3 CameraPosition;

        private void MapZoom()
        {
            Zoom = controls.Default.MouseZoom.ReadValue<float>();

            CameraPosition.y += Zoom * ZoomSpeed * Time.deltaTime;
        }

        private void Awake()
        {
            controls = new GameControls();

            controls.Default.MouseZoom.performed += ctx => MapZoom();
        }

        private void Update()
        {
            CameraPosition = transform.position;

            transform.position = CameraPosition;
        }

        private void OnEnable()
        {
            controls.Enable();
        }

        private void OnDisable()
        {
            controls.Disable();
        }

    }

}

Controls:

I am new to unity myself, so take my solution with a pinch of salt, but panning and zooming are different things, this is how I would do zooming, I used cinemachine here which is a package you can install

//CameraHandler.cs
[SerializeField] private CinemachineVirtualCamera cinemachineVirtualCamera;

    private float orthographicSize;
    private float targetOrthographicSize;

   
    private void Start() {
        orthographicSize = cinemachineVirtualCamera.m_Lens.OrthographicSize;
        targetOrthographicSize = orthographicSize;
    }
  
    private void Update() {
        HandleZoom();
        HandlePanning(); // something similar but with middle mouse button and target.x/y rarther then orthographicSize
    }


    private void HandleZoom() {
        float zoomAmount = 2f;
        targetOrthographicSize += -Input.mouseScrollDelta.y * zoomAmount;

        targetOrthographicSize = Mathf.Clamp(targetOrthographicSize, 3, 20);
        float zoomSpeed = 5f;
        orthographicSize = Mathf.Lerp(orthographicSize, targetOrthographicSize, Time.deltaTime * zoomSpeed);
        cinemachineVirtualCamera.m_Lens.OrthographicSize = orthographicSize;
    }