New Version of the Bing Maps v7 control

It seems that, in the last few hours, Microsoft have pushed out a new release of the Bing Maps AJAX control (or, maybe their content delivery network has only just started serving a new version – the timestamp attached to the library URL, http://ecn.dev.virtualearth.net/mapcontrol/v7.0/js/bin/7.0.20110426171249.81/en-us/veapicore.js, suggests that it may have been compiled 10 days ago, on 26th April 2011).

This is a minor release – it’s not version 7.1 – so you wouldn’t normally expect to see much in the way of new features. However, it is significant since it appears to resolve a fairly crippling bug that previously made the map control unusable if instantiated in a container of the page that was not visible on initial load (i.e. if you wanted your map to be absolutely positioned in a div near the bottom of a long page that required the user to scroll to get to it).

There is also at least one change made to the default behaviour of the map, in that panning now exhibits an inertia effect – the map does not abruptly stop when you release the mouse button after panning, but slides to a gradual standstill. This change follows the trend of a lot of previous enhancements to v7, in making the AJAX control behave more like its Silverlight cousin (which has always had optional inertia).

You don’t need to do anything to use the new version – any requests to the v7 library will automatically retrieve the latest version, as follows:

<script src="http://ecn.dev.virtualearth.net/mapcontrol/mapcontrol.ashx?v=7.0" type="text/javascript"></script>

Of course, you might not want to use the new inertia effect. A quick dig around the code reveals that there is now a useInertia boolean property that can be passed in the mapOptions of the map constructor. To disable the inertia effect, create your map as follows:

map = new Microsoft.Maps.Map(
  document.getElementById("divMap"),
  {
    credentials: "ENTER YOUR KEY",
    center: new Microsoft.Maps.Location(54, -2),
    zoom: 4,
    mapTypeId: Microsoft.Maps.MapTypeId.road,
    useInertia: false
  }
);

You can also change the intensity of the inertial effect by setting the inertialIntensity property. If you want to make yourself dizzy, try the following and then give the map a give flick!

map = new Microsoft.Maps.Map(
  document.getElementById("divMap"),
  {
    credentials: "ENTER YOUR KEY",
    center: new Microsoft.Maps.Location(54, -2),
    zoom: 4,
    mapTypeId: Microsoft.Maps.MapTypeId.road,
    useInertia: true,
    inertiaIntensity: 1
  }
);

It’s almost impossible to make a side-by-side comparison of any other changes that occur between versions – the source code of the control is obfuscated, causing functions and parameters to be renamed with random letters between versions, so z = new function(cB, a) might be exactly the same as A = new function(h, t), but without comparing line-by-line you can’t be certain.

However, a quick examination of the new library does reveal some other interesting things to note:

  • New touch events: “touchstart“, “touchmove“, “touchend“, and “touchcancel
  • New classes: Microsoft.Maps.Streetside and Microsoft.Maps.VenueMaps

Of course, you can’t necessarily infer too much based only on the name of a class in the library but, even if these features aren’t exposed yet, it’s interesting to see what might be coming just round the corner…

I guess there might be a press release from Microsoft at some point announcing the new features but, if I find any more in the meantime, I’ll post them up here.

This entry was posted in Bing Maps and tagged . Bookmark the permalink.

One Response to New Version of the Bing Maps v7 control

  1. Caedmon says:

    It also seems the changes have changed (messed up) the way infobox html content is displayed… great…

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s