How to constrain cursor to surface?

I am making a virtual tour using 360 images applied to spheres.
I would like to create a cursor (like the one used in google maps) that is constrained to the surface of the sphere. How could I go about doing this?
Thank you!

I’m not totally sure what you mean, but i guess you mean google streetview and not really maps? Google street view requires a lot of extra metadata. This includes at which height the floor is and also the rough geometry of the surrounding buildings. This geometry can be calculated from several different images from different perspectives but the algorithms requires are quite complicated.

In short assuming you have the required metadata where the floor is you can either build a mesh collider with that data and use Collider.Raycast to determine a point on the surface, or if you only have a floor you can simply use an infinite mathematical Plane and Raycast against that.

If this is not what you’re after you have to be much more specific on what information you actually have and what the result should look like.

Hello, thanks for the response.
Yes, I did mean google street view. I do not have a floor, only the sphere with a reversed shader so that the 360 image is viewed from the inside.


Here, I have white rings in the sphere that act as a hotspot to transition into a different sphere by clicking on it.

It works fine but I would like to make it neater and copy the way the cursor in street view works (an arrow, confined to the ground plane, changes direction depending which way you orient the scene.) I hope this is specific enough.

Thanks again for your help