Why is my battery low only a few hours after charging? Twice recently I have charged my Samsung Galaxy Ace at night and when the phone indicates it's fully charged I unplug the charger only to be woken a couple of hours later thinking I have a text come through to find a message saying the battery is very low and needs charging. It hasn't happened any other time. It's about 18 months old and generally I get a good days use out of it. How can it suddenly go from being fully charged to empty in a couple of hours without even being used?
You almost certainly have a rogue app, which a reboot usually fixes. However, in the long run it would be best to discover the app(s) that cause your battery issues so it does not catch you off guard when you really need you device to retain it's charge.

First, you will need some idea of how apps use the battery. All apps use the battery (to varying degrees) while they are active (i.e. when you are actively using them), but some apps also consume your battery even when they are not active. There are many reasons for this, but the most common is that they need to perform some action, such are checking for new email. These tasks are performed by services (belonging to the app), which run in the background. In order to be able to do their tasks when the device is sleeping (i.e. when the screen is turned off), these services use "wakelocks". For background tasks, apps use "partial wakelocks"; which basically means the processor wakes up, but the screen remains off. 

In a perfect world, an app would request a wakelock, perform it's task, and then release the wakelock; this happens quite frequently and only lasts for a very short period of time (milliseconds to seconds). The battery cost of these operations are generally quite low, and their benefits far outweigh this cost.

As for discovering your rogue app, the standard battery status provides a good starting point, but you will need to use a 3rd party app that can show you the wakelocks used by each app. In particular I find Wake lock detector very useful. It is free and can display both full and partial wakelocks. The app will basically show you the amount of time for which wakelocks have been active per application (or service). When you have a rogue app, it is usually very easy to spot as it will have unusually high usage compared to the others.

You mention that maps shows up in your battery usage; this happens because many applications that request your current location pass this request on to the maps app (it's location service), which performs the action and provides your location to the app requesting it. This is very normal, and usually nothing to be concerned with. Some apps can however issue the location request too frequently - which would have an adverse affect on your battery. Most decent apps provide a setting for the frequency they perform these update requests.