I recently switched from Cartographer to YM4R/GM. I considered YM4R/ Mapstraction as well, but decided to go with just /GM since it seems more lightweight (i.e. less JS) and has more features for specifically for GM.
Cartographer is not maintained as far as I could tell and it predates Rails 1.0.
Honestly, I liked the API for Cartographer much better as it seemed to flow with the usual Rails conventions, whereas YM4R is full of init_ methods and you have to call more of them instead of cleanly passing a hash parameter to a single method...
I also found the API key handling to be easier on Mapstraction. I had to write some request_uri.gsub magic to get it to find the right key in YM4R when I have maps in more than one directory. (Google takes / maps without the trailing slash and /maps/ to be different directories so you need two keys...)
Why did I switch? I had a *very* strange bug with Mapstraction where the whole Rails stack would seem to get corrupted after clicking to a map page that created map markers for some of my models. Any subsequent request would totally lose associations between models:
"association named 'Address' not found, perhaps you misspelled it?"
This would affect all other pages in my app, even breaking associations not related to mapping until I restarted the server. I actually updated my app from 1.1.6 to 1.2 out of desperation since I couldn't tell what was causing this--even integration tests to simulate my clicking through the app wouldn't show the problem. So, eventually I narrowed it down to Cartographer and after banging my head on the wall for a couple weeks thinking there must be some fundamental bug in my code, I removed Cartographer.