From a battery saving perspective, these settings will help minimise drain, and need to be changed when you actually require location based services:
WiFi → Advanced → Keep WiFi On during sleep → Always ( See this for more details on trade-off between battery and being connected always What does "Keep wifi on during sleep" mean? )
Location → Scanning → WiFi Scanning - disabled
Location → Mode → Battery Saving
This in addition to tweaking app permissions as detailed in other answer by Abhishek should maximise savings
Another aspect is Doze feature of Marshmallow. It's implementation, delays Doze if a) Device is physically moved b) If the location feature is enabled and location update happens ( doesn't seem to be documented but reported widely)
If you want to further maximize battery savings, and trigger Doze functionality immediately or after a configurable delay , you could try Greenify or Force Doze. Both these can work on rooted or unrooted devices. Of course, Greenify has other advantage of hibernating appsb while the device is in use