With Google condemning their Geocoding v2 API at the end of this year, a ton of people will be porting their geocoding logic to v3, and this question will arise: how to match the string 'location_type' with the equivalent of 'precision?
Here's a decent display:
"ROOFTOP" -> 9 [Everything else] -> 4 to 8 (aka the text string might as well read "GARBAGE")
If anything other than ROOFTOP is indicated, use the area for northeast and southwest to decide if this is enough for you.
Now, what should happen if you do not get something “exact”? Run the Google Places text search query at the same address. Google Places also performs geocoding, and with Billing turned on you can receive 10,000 text search queries per day (no speed limit), and Google claims that they will not charge a card (they presumably just use it to verify the account records). With billing, you get 100,000 queries, but the “Places” text search queries have a “cost” 10 times that of a regular “Places” query, hence the aforementioned limit of 10,000. Places can be too complicated, and you should only consider responses with one result.
Sometimes "Place" requests do not return zipcode - especially if one is not sent. If you need a zipcode, take the results of the lat / lng Places request and feed it back to the geocoder, which usually spits out the address using zipcode (and very often matches ROOFTOP).
It should be noted that the official politeness limit in the Geocoding API is 2500 requests per day with a speed limit per second per IP address. Therefore, following the above formula, it will probably decrease and may even halve the number of geocoding available to you.
If you need more than the Google Geocoding limit (who doesn't?), Come up with your own mini geocoding service with something like an OpenStreetMap database. Clone the parts of OpenStreetMap that you need and write your own geocoder (or use the library). Then you can geocode in your heart content without quantity or speed limits. If you are still using Google Maps, you can use the Google geocoder as a reserve if the OSM geocoder is not accurate enough for all cases.
Alternatively, if you trust your users not to send dummy data (really?) And should use the Google geocoding service, you can also abuse the user's web browser having the geocoding information for the browser for you, and then submit the results to your server . You can burn the user's daily limit, and you risk someone pushing dummy data, but if you are going to all these problems, do you really care?
In any case, the tips given above should be sufficient for intermediate use for most users to create a working API v3. Go into this problem, so I decided to share a decent solution with the community halfway. I still think v2 was the best API integer of precision ratings instead of the ugly text strings that always win.