Here is a more basic approach to your problem, which I found interesting. The PG can stand some optimisation and made more suitable for your use case but I hope it gives you some ideas. I think you should be able to follow the construction. If not ask away.
Click on a cell to place a cylinder.
It is made by mapping a gridded box onto a sphere.
Set boxSize and gridSize on lines 189 and 190