A bottle dynamo should work (I can vouch for the Axa working reasonably well to run a Cyo and a pair of Pixeos on barakta's trike), but performance at low speed is noticeably worse than either my SON Delux or Shimano DH-3N80 hub dynamos. You really need to be doing over 10mph to get decent power from it. There's also a voltage limiter built-in, so you get your rated 3W and that's it, regardless of speed (hub dynamos have no limiting, and clever electronics can use the higher voltage to extract more power at high speed).
900mA @5V is 4.5W - more than a dynamo will provide under normal circumstances. As such, you'll need a cache battery of some sort.
Solar is largely a gimmick, unless you've got a panel about the size of a trike seat. Doable, but expensive and still only as reliable as the weather.
I think Chris S sums it up nicely. Large cache batteries generally win if you can get access to a mains socket every couple of days. Hamsters are unreliable, have poor energy density, will only run in the wheel when you're not looking, and will chew the wires to the charger.
Personally, I'd approach this problem with a GPS that can take AAs and a couple of sets of spare batteries.