Camera movement blocking prolbem

I have problem with RTS Camera style movement blocking. My camera pawn and basic movement script:

Camera zooming and panning:

I know how to block StaticMeshComponent movement (by Sweep enabled in AddActorLocalOffset method). I dont know how to block camera movement when CameraCollisionComponent(Sphere Collision) is touching objects. I want CameraCollisionComponent radious to be minimal distance beetwen objects and camera. My questions are:

  1. Is Sphere Collision a good component for this job?
  2. How can I block camera movement, zooming, panning when CameraCollisionComponent is touching objects?
  3. Can I manually generate sweep test on attached component (at specified location)?
  4. Should I make collision test on component after or before movement, zooming or panning?

Any hints in blueprint or C++ code would be very helpful.