I use a sheeting car wash soap, specifically Turtle Wax Zip Wash, which I can wash the whole truck at one time, leave it to dry in the baking summer sun, and it rinses right off with a simple rinse. Been using it for over a decade, never any water spots.
However, I will occasionally get hard water spots when off-roading and being too lazy to wash/dry off and leaving it, or sprinklers is very common as well.
What removes hard water spots easily is a 50/50 mixture of distilled white vinegar and water. I spray it with a water bottle and use a microfiber towel to rub off. It takes a few seconds to a minute or so, but it will take off hard water spots easily, something that many cleaner waxes or polishes fail to do. Make sure to rinse the panel afterwards and put on some spray wax (or whatever you like) since it will remove any paint protection you have on the affected area you just cleaned. This tip came from a very well known detailer, and it works like magic.