关于地图拖拽父节点与地图之间距离的问题

我在实现地图拖拽的过程中,采用的摄像头(view)不动,地图(map)移动的方式
但是在计算过程中:
/**

 * 单点触摸-地图拖拽

*/

private dealMove(dir: Vec3, map: Node, container: Node): void {

    let edge: { left, right, top, bottom } = this.calculateEdge(map, container)

    let pos_x = map.getx()

    let pos_y = map.gety()

    //向右拖拽

    if (dir.x > 0) {

        pos_x += dir.x

        map.setx(pos_x)

        if (pos_x > edge.left) {

            map.setx(edge.left)

        }

    }

    // 向左拖拽

    if (dir.x < 0) {

        pos_x += dir.x

        map.setx(pos_x)

        if (pos_x < edge.right) {

            map.setx(edge.right)

        }

    }

    // 向上拖拽

    if (dir.y > 0) {

        pos_y += dir.y

        map.sety(pos_y)

        if (pos_y > edge.bottom) {

            map.sety(edge.bottom)

        }

    }

    // 向下拖拽

    if (dir.y < 0) {

        pos_y += dir.y

        map.sety(pos_y)

        if (pos_y < edge.top) {

            map.sety(edge.top)

        }

    }

public calculateEdge(map: Node, view: Node): any {

    //horizontalDistance:600.5

    let horizontalDistance: number = (view.getWidth() - map.getWidth() * map.getScale().x) / 2

    //verticalDistance:274

    let verticalDistance: number = (view.getHeight() - map.getHeight() * map.getScale().y) / 2

    let left: number = 0-horizontalDistance

    let right: number = horizontalDistance

    let top: number = verticalDistance

    let bottom: number = 0 - verticalDistance

    return { left, right, top, bottom }

}

长屏手机 都会出现上下边界触碰不对的问题
QQ截图20230811161138

苹果这种小手机我在浏览器上测试的时候,都是按照边界值来的。这种长屏的边界条件咋个调哇,大佬们