The Virtual Earth version 6 API is now available. The launch included several new exciting features documented in the online SDK.Moving from Version 5 to Version 6 is easy! You simply need to change one character in your .ashx link - change http://dev.virtualearth.net/mapcontrol/mapcontrol.ashx?v=5 to http://dev.virtualearth.net/mapcontrol/mapcontrol.ashx?v=6. I've received several messages from people who were linking to the .ashx file on local.live.com or have downloaded the .js file from the .ashx file - VERY BAD. If we wanted you to do this we'd put it in the SDK, so change your links; however, by now you've probably realized that your application is broken and are looking for a fix. We'll for now you can change your link to "http://dev.virtualearth.net/legacyservice/" + servicetype + ",ashx" + parameter. As for the details of version 6, I've provided the overview below:

Multipoint routing
The new GetDirections API can take multiple points for a route instead of just the start and end points, allowing for more complex trip planning.  In addition, it is also possible to import routes from Excel through the GeoRSS API.

NOTE: The current GetRoute API continues to support start and end points only.

Enhanced Geocoding
We have created a next-generation Geocoding engine in support of Virtual Earth.  The engine combines results from multiple geocoders to get the most accurate and up-to-date result possible.  Additionally, it takes MapView, ReverseIP and Culture into account in order to provide more relevant results for the end user.
• MapView:  Virtual Earth will make intuitive inferences for search queries based on the current mapview.  If a user is hovering over Seattle and doesn’t enter the city name into address queries, Virtual Earth will automatically infer this information based on the map view.
• Reverse IP lookup:  The map will make intuitive inferences for search queries based on the physical location from where the user is actually making a query.
• Culture:  Users can configure culture settings on the map control.  This can be used to restrict the results because the map control will return results based on the culture setting.

NOTE:  This is available for GetDirections and Find-where calls.  Microsoft will support Find-‘what-where’ at a later date.

Safari support
The V6 Map Control includes Safari 2.0 support. This has been a big request from B2B customers who have many Mac users.  We will officially support Safari 2 and run sanity test pass against Safari 3.0 beta.

NOTE:  There is no route line functionality at this time.  Safari will not be supported on the live site or on the iPhone.

Traffic Tile Overlay
The V6 map Control now supports fetching of Traffic tiles, for client token authenticated users, containing rendered traffic flow data.  While the Virtual Earth Platform does not automatically offer incident information, users can query MapPoint Web Service to get this information.

Bird’s eye pushpin accuracy
Bird’s Eye pushpin placement accuracy has been enhanced for V6.  In this release, when users convert pixels to latlong in Bird’s Eye, Virtual Earth will make server side calls for accurate calculations taking into account camera metadata.  The result will be that when users add a pushpin in a road or aerial view, and switch to bird’s eye, the pushpin will still display in the correct location. 

NOTE: Users must activate this functionality.  A maximum of 50 pushpins will be supported for accuracy.

Rooftop Geocoding
Rooftop Geocoding will now be available through the API, resulting in the most precise Geocoding results available in the United States today.  When rooftop data is available for a given location (40% of the addresses in the United States and counting) the Map Control will return the rooftop location as the result of a VEMap.Find call. 

NOTE:  This is available for GetDirections and Find-where calls.  Microsoft will support Find-‘what-where’ at a later date.

Ability to use MWS as a routing engine
When a customer uses the MapPoint Web Service (MWS) capability, Find Near Route, to get locations along a route corridor, and the current Virtual Earth routing functionality, for route display, the results do not always match.  GetRoute and GetDirections are two distinct routing engines.  The GetRoute API uses MWS, and the GetDirections API uses Virtual Earth. To support this scenario, we have modified the VEMap.GetRoute to use the MWS routing engine.  This benefits users as VEMap GetRoute is better because of higher definition results and more road nodes.

NOTE:  This will not be available with the GetDirections API in Gemini.  Use MWS to find routes, Find Near Route, and localized itineraries through the GetRoute API.  Use Virtual Earth for simple routing and multipoint routing through the GetDirections API.

Customer Identification via Client Tokens
Client tokens can be obtained using production developer credentials and are used to identify transactions for reporting and billing purposes.  Customers that use Client Tokens will have access to the SLA and Transaction Reporting. 

Transaction Reporting (beta)
Transaction reporting is now available in beta for Virtual Earth when customers implement the Client Token.  These reports are available via the Virtual Earth Platform Customer Services Site.  Customers are now able to see a preview of their billable transactions for the current month as well as their historical traffic for a given date range.

Localization
Users can specify a neutral culture (such as “ES”) when calling VEMap.Find and VEMap.GetDirections and get localized results.  Localization is supported in the following:

Czech; Danish; Dutch; English; English – United States; Finnish; French; German; Italian; Japanese (JP Addresses Only); Norwegian (Bokmål), Portuguese, Spanish, Swedish, Chinese (within China only).

NOTE:  This localization support is not available when using GetRoute to obtain a route or for labels on Map Tiles.  This feature will be available end of 2007.


MapCruncher (Beta)
MapCruncher Beta for Microsoft Virtual Earth makes it easy to publish maps overlaid in an application using the Virtual Earth map control. Once you are familiar with the tool, it should take about ten minutes to generate a new tile layer.  Just find 5 to 10 corresponding landmarks on your map and on the Virtual Earth map view, and MapCruncher will register your map to the global coordinate system, warp it to fit a Mercator projection, and generate a set of image tiles that can be seamlessly layered on top of Virtual Earth map control's standard road, hybrid, or aerial imagery. It even makes a sample HTML page for reference.

MapCruncher accepts a variety of vector formats (PDF, WMF, EMF) and raster formats (JPG, PNG, TIFF, GIF, BMP).
Download MapCruncher Beta for Microsoft Virtual Earth from the Microsoft Download Center.

SLA
The Virtual Earth Platform now carries a 99.9% uptime guarantee for paying customers.  Receipt of reparations for the SLA also requires that customers use the Client Token infrastructure.


Bulk addition of VEShape
When a user adds a large number of pushpins (say 500), the performance is slow because of multiple modifications of DOM.  The new V6 API will allow the customer to add multiple pushpins in one drop. This is a common scenario for real estate customers. The performance of this API is better than the performance of adding multiple pushpins separately because of fewer modifications to the DOM.

zIndex support for VEShapes
This zIndex is similar to the zIndex in the browser. The API will allow the user to specify whether a VEShape object appears “above” or “below” the other VEShape or Tile objects. The current mapcontrol handles zIndexes automatically when shapes are added to the map. The new API will allow users to override the z-index. It is not necessary for the user to set the z-index in which case the default z-index is used.

3D collection model
Mash-up users can upload a read-only collection with 3D models that they have built. Users can then add pushpins and models to collections.  When a user switches from 3D to 2D, models will appear as pushpins.


Get/Set Altitude
The VELatLong class is being modified. You can now specify the altitude (in meters) of a VELatLong object. When the user switches from 2D to 3D, the altitude information is passed to the 3D control. The 3D control already has the capability to handle the altitude data.

New v6 iSDK
A new version of the Virtual Earth Interactive SDK is available, demonstrating the new functionality of the Virtual Earth Map Control with ease.  http://dev.live.com/virtualearth

Enjoy!

CP