What's compared and what's not?
Just to make it clear for the audience, we'll be comparing -
The developer APIs and how easy it is to plug and play
The data accuracy and overall performance
Support and Documentation
However we'll not be comparing -
Satellite coverage and 3d effects
Any prominent feature
Using the APIs for non-web based platforms like - mobile phones, silverlight, etc.
Google Maps -
You can download the latest version of Google Maps API here [http://code.google.com/apis/maps/signup.html]
You may need to signup with your google account (create if you do not have one). Agree on the usage "Terms and Conditions", specify the website domain and hit "Generate API Key".
The API key is generally based on the website domain and the protocol (http|https). However for localhost it can work without the key too.
Bing Maps -
Bing Maps API could be found here[http://www.microsoft.com/maps/developers/web.aspx]
You may need to create/login using the Windows Live ID.
The process allows you to create a bingmapskey to use in your map application.
This could be helpful for tracking user sessions and usage analytics.
Ease to use
As much we try - for a relatively newbie developer (who has never ever worked on any map application) may find a little challenging to get familiarized with Bing Maps SDK as compared to Google Maps API. However at the same time if you are a .NET developer you may find Bing Maps easier.
There are a lot of features that you may never touch: traffic, directions, geocoding, and the native zoom and pan controls, etc. In most of the cases its just like telling the map to go there and create the marker and invoke the event when the markers are beginning to set or the user drags or pans or zooms on the map. In this instance Google API tends to handle the event more efficiently and its easier. For e.g.
Google provided the "dragstart" and "movestart" events so that you can attach custom programmatic calls to the user actions. This is clear missing (or is very painful) while working with Bing Maps SDK
Google seems more careful in not using non-cross browser compatible tags. Not all the CSS-Selectors work with all the browsers. Bing Map's CSS style has a expressions such as "!important" that's does not work with most of the leading browsers.
When you try to focus on a particular area on the map, Google handles the zoom level by its own. But with Bing Maps API the developer needs to take care of this (which could be painful at times).
So to conclude this section - you may find it so easy to develop an plain ASP.NET application with Bing Maps SDK. However if you want flexibility in the development environment or you expect non .NET coders or less skilled developers to be able to develop/support the module you may opt Google Maps.
The map accuracy is almost the same for both Google Maps and Bing Maps. What most people don't realize is that they both share pretty much the same mapping data, from the same providers. It's no surprise then that Google and Bing announces new satellite imagery[http://en.wikipedia.org/wiki/Satellite_imagery] on the very same day. However (according to the various online resources) Google tends to claim that it has increased the rate at which these updates will come. Although the mapping data is the same, the data plotting on the map image makes a lot of difference.
Tried searching "Bahrain" in Google Maps it pointed somewhere in the middle of the sea where Bing Maps got it right.
Tried searching "Playa Blanca" in Google Maps it got 2481 results (including hotels, Villas, Beaches, etc.). And the same in Bing Maps pointed right in the center on Spain.
Google even has trouble finding a location if you mention the wrong area code for the place, while Bing finds it straight away and flies straight to the centre of town. This is a big point Google need to work on. The most important thing for a map is to find the right place.
People will argue that other places are more up to date in Google, which could be true, but you have to agree that the above experiences aren't so delightful after all. Although admittedly the US locations seem to be more recent and accurate in Google Maps.
So to conclude this section - For US Maps, you can decide on Google Maps or Bing Maps both. Perhaps you could consider **extras** in your decision making viz - performance, ease of use, support, etc. However, if your map application concentrates on Asia-Pacific or Europe region then Bing Maps should be a better choice indeed. Else for some reason if you are decide to go with Google Maps for Asia-Pacific then the advise would be to feed the complete address (area, state, country, zip) to the API geocoders.
Support & Documentation
Both, Bing and Google Maps, offer a very good developer platform. The APIs do not differ vastly in its usage as a developer. The units used for defining the heights and widths of the markers and maps and other attributes are same. So smooth transition is guaranteed.
Bing Maps SDK -
It offers Application Gallery[http://www.microsoft.com/maps/gallery/] (also available to you under you Bing Maps developer account) which currently has over 20 Apps and allows for 3rd party layers of data on top of maps.
Developer platform for try and learn. Bing calls it Interactive SDK [http://www.bingmapsportal.com/isdk/ajaxv7]
Bing Maps API MSDN documentation[http://msdn.microsoft.com/en-us/library/gg427610.aspx]. Plain explanations of the methods and limited examples.
The developer Blog[http://www.bing.com/community/site_blogs/b/maps/default.aspx] is just getting better
In the commercial terms Microsoft has always been a charm. There are dedicated support teams worldwide for answering your issues directly, and all support enquiries of any nature will be responded.
Google Maps API
Developer platform for try and learn. Google calls it Code Playground [http://code.google.com/apis/ajax/playground/#map_simple]
Pretty neat and clean
It's developer blog[http://googlegeodevelopers.blogspot.com/] is well matured and vast.
Often official support for a product is great, but a true community built around an API can make all the difference. Most notably GMaps Utility Library[http://code.google.com/p/gmaps-utility-library-dev/] is officially recommended by Google on its v2 API references.
It has the whole detailed tutorial site[http://econym.org.uk/gmap/] including the custom features, third party extensions, advanced stuffs, part-by-part explanation of each API basics (including examples).
As per the commercial terms there is a dedicated support website for answering your issues directly with response within 24 business hours, however "Google reserves the sole right to determine whether to respond to all other support issues, such as implementation assistance, underlying errors in the map data, and cases where address locations are incorrect or missing." So you may not even get a response to some issues.
So to conclude this section - Google has an extremely strong documentation of its API. Besides because of its age you may find a lot of developer communities that would offer a great help and support over the API. Bing also has a decent documentation but they just a LOT. The advice would be try through more examples and more code than talks. And Google Maps undoubtedly has a larger user community with more articles, books and open source projects than Bing. In regards to support, unlike Google, Bing Maps paid customers have access to email and phone support as well (what more do you expect).