Introducing the AJAX map control V7

Today we have the distinct pleasure of announcing the release of the new Bing AJAX map control v7 (V7). It seems to be the year of 7s at Microsoft and we’re excited to carry on the reputation that V7 does indeed denote something very special.

Let’s start off with discussing V7 performance:

- V7 is less than 1/3 the size of our v6.3 control. This smaller size helps V7 load faster than our previous control.
- V7 renders multiple points on a map up to 3 times faster than v6.3. This improvement will help you deliver more information to your users, faster.

These numbers are based on internal tests of our compressed controls, including all secondary JavaScript, CSS and image-files. I invite you to try out V7 for yourself and compare. Add 10, 100 or 100s of pins and evaluate the performance. I think you’ll be pleased.

While you’re doing this, make sure to check out three other major features:

Optimized for mobile web. As more business is done on mobile, you need to have a control that’s built for mobile browsing. V7 delivers in these scenarios with a small control size, support for HTML5 and touch support for mobile devices.

Enhanced Bird’s eye. V7 introduces our new "Bird’s eye" to AJAX. It’s the same 45-degree perspective, viewable from all 4 compass directions imagery that you love – enhanced to include seamless, smooth panning at all zoom levels, life-like building models in urban centers and 3D-like terrain features. This new experience is ripe to provide a differentiated and highly useful perspective to your applications.

New map style. First seen on http://www.bing.com/maps, our new map style for "road" and "hybrid" modes is now the default map style for V7. This means that when you build a V7 app, you’ll have the opportunity to show it off on an updated canvas with improved look/feel, readability and interaction with data overlays. We’ve received some great customer feedback since its first debut and we’ll be incorporating that into an updated version soon.

It also means that effective today, all Bing Maps customers have the opportunity to opt-in to the new map style for testing or production "go live" scenarios across all controls/APIs (REST Services, SOAP Services and Silverlight Map Control opt-in also went live today). This opt-in period will end on April 30, 2011 and beginning on May 1, 2011, the new map style will become the default and only road style delivered across all Bing mapping services.

So there you are –V7 is fast, is great for mobile web and introduces new and differentiated ways for you to connect with your customers. To learn more about all of the features and enhancements in V7, take a look at the Bing AJAX map control v7 SDK and the recent announcement regarding Bing.com/Maps. Also look out for future blog posts that delve deeper into individual functionality.

I’d like to thank our engineering team for all of their hard work and our customers for building some of the best applications on the web – I look forward to seeing what you do with V7 on desktop and mobile!

Follow us @BingMaps 
Learn more on Facebook & Wikipedia

Floyd Mendoza,
Bing Maps Product Manager
Enterprise Mapping

Join the conversation

32 comments
  1. Ricky Brundritt

    At the last Bing Maps UK user group meeting Johannes from Microsoft stated that there were no plans to deprecate v6.3. There are a lot of people using this API and upgrading will take time. Personally I think this is great as upgrading to v7 opens the door for better performance and a great ability for code reuse.

  2. adirat

    Nobody to answer NKJ ??  may be "retiring 6.3" is a new type of  variable with MICROSOFT Bing programing wich peculiarity is UNKNOWN.. may be one year , may be more , may be less.. who knows?   Programing with bing maps is like a Hobby : who care about quality ? support ?  Nobody can say us .. guys your tools dead on that date ..  So, i'm moving all my code to OSM and Open Layers : bye bye  and Good Luck to all Bing programer s (pro ones)

  3. NKJ

    Is there a roadmap for retiring v6.3 of Bing Maps?

  4. adirat

    Alastair : that is the most stupid argument have ever heard : Does Microsoft have to follow Google ? even in mistaken strategy?  In may i was very happy to not be a google customer .. i was … now i 'm shameful . Google deprecate nearly 50% of this functionality . and MS is speaking about 100% whithout garantee to support all functionality of v 6.n version. This is quiet incredible.  

    More seriously : imagine you are are 2 or 3 years later , your args to manage change must be the same. So Microsoft will plan to deprecate ALL this Bing Maps model ? every 3 years ?

    How can we plan to keep in business to that kind of strategy?

    FloydM: NO i can't wait with a deprecated V6.3 model . I manage a SaaS app , wich users needs some improvements .  I can't keep writing some code who had no future, and some functionality are not supported with new version

    Floyd : do you will accept coding with a deprecated model ?  is your boss agree that ?  

    This anouncement reveal a a very bad panic mood in MS cloud strategy .   Microsoft seems to be not concern by our business .  At this time , beeing a  competitive company , i can take a list

    of  entreprises using Bing Maps and tell us "Hellllloooooo  did you know that all your mapping plateform was thrown down?" "May bbbbbbe it will be betttter to come with us in a more seriously way ? "

    What do we must say to Microsoft: thanks ? and Merry Christmasssss ?

    After evangelize age (where are you Chris Pendleton ?) , here it comes crucifixion time.

  5. alastair.aitchison

    To all those disappointed at having to upgrade their 6.x code to work with 7.x – it is perfectly normal to have breaking changes following a major upgrade to an API. The old API had kept a largely consistent structure (but becoming larger and larger) since about Virtual Earth v4. The only way to get rid of this bloat is to have a radically redesigned core, and this looks like what v7.0 has given us. You've got at least a year to upgrade, which seems reasonable to me.

    Also, you might want to observe the similarities when Google upgraded their Map API from v2.x to v3.x – breaking changes, less features, in order to deliver a more streamlined core…. so don't think it's specific to MS!

  6. FloydM

    Hi @kakwanda, @adirat and @gmcleod2. Thanks for the feedback. We try our best to strike a fine balance between waiting to release new APIs/features until they comprehensively supersede prior versions in every aspect and releasing tangibly new innovation to our customers on a continuous basis. In this instance we felt that there was too much goodness in the v7 control to incubate it any further. We understand that there are still some features such as pushpin clustering that need to be built for the v7 control and we will include this in a future release. If the current feature set in v7 is not the right fit for you, please continue to utilize the v6.3 control for the time being. As mentioned in my previous comment, we have not announced an end of life date for v6.3 and once we do, our customers will have at minimum 12 months notice before needing to move to the v7 control.

  7. kakwanda

    Agree with @adirat and @gmcleod2 that the loss of features is not acceptable. My company is an enterprise-level customer and I have told my boss not to renew our license until I investigate other options. If I am required to rewrite existing code + code to implement missing features, this is the time to look at other mapping possibilities. surely, they anticipated that some existing customers might leave, because I think that is what might happen. I am very very unhappy — removing features that paying customers use is a big no – no in my book.

  8. gmcleod2

    DDaviesBrackett – Agree the documentation is very lacking in this version, and I too have found several "bugs" to report and the loss of features that are crippling is too much for us.

    Has anyone else noticed that the "Dashboard"

      A) is broken for all browsers I've tried so far, all panning trends to the south, and

      B) can't be addressed except to toggle its visibility.

  9. The Bing Team

    @GMCleod2 – THere is indeed no pin clustering in the new version.

  10. adirat

    gmcleod2 : V7 version seems had no Vertical compatibility, so there is no reuse of code nor substainability of project with Bing Maps . so , i think to move my app to OpenLayesr.. that's all folks ! game is over

  11. gmcleod2

    For us, the single key selling point for using Bing maps vs other options was the pin clustering functionality that was available in SDK versions <7.  

    Please, please, please tell me that I'm just not finding this in the v7 SDK.  

    Please please please tell me that I don't have to go to my boss (I work for a government) and tell him that the time and expense incurred to date in the development of our public-faced app has been wasted and we need to start all over again.   At least we could be given some sort of time frame for end-of-life for v6.3 so that we can also plan accordingly.

    PLEASE — What am I getting wrong about this picture?  Do I really have to go to my government client and tell them that their time and expense put into a public faced app that relies on clustering is now entirely wasted and that they need to start over?

  12. madaznz

    Lazy loading not working in V7 API.  The browser gets reloaded. Same on all IE8/FF/Chrome

    This used to work with 6.3.

    Example is using jQuery.  The alert message gets displayed but then the browser reloads.  In my real world application, the following code is not on the page load, but once a user displays a hidden map area, as this map is not always accessed.

           function displayMap() {

               alert('here');

           }

           $(document).ready(function () {

               $('head:first').append('$(<script type="text/javascript" src="ecn.dev.virtualearth.net/…/mapcontrol.ashx charset="UTF-8"/>');

           });

  13. DDaviesBrackett

    When is the Bing Maps team going to get on Microsoft Connect so that bug reports can be filed the same way they are for most other MS products?  I've found a number of inconsistencies in the documentation, and at least one outright bug in the code, that I'd like to report in a way that will notify me when they're fixed.

  14. jromney

    Curious to know if there will be a asp.net map control similiar to what there is for google maps for this new version. This would really help out those developers lacking in the JavaScript arena.

  15. cecile.muller

    Another thing: "addEvent" either shouldn't change the context of event handlers, either it should allow passing additional parameters, because the way it is currently, "this" in event handlers is useless because it's the same value as the event, which is quite troublesome for modular design.

    For example:

    function Test(){

    this.callback = function(e){

    console.log(this);

    this.hello(); //fails when "callback" is called by the event

    };

    this.hello = function(){

    console.log('Hello'); //image a function that uses instance-specific properties

    }

    }

    var test = new Test();

    // "this" is the Test object

    test.callback();

    // "this" is the event

    Microsoft.Maps.Events.addHandler(map, 'click', test.callback);

    The event handler cannot call "hello" because it has no reference to the Test object, so how can it possibily access the Test instance from the event handler ?

  16. cecile.muller

    In the end, I don't mind that Infobox is gone because it will is easier to add a "sticky" option for infoboxes when starting from scratch than hacking into the existing system, however I'm having trouble receiving any event at all from EntityCollection (c.f. my post on the forums: social.msdn.microsoft.com/…/threads )

  17. Henri Fournier

    Here's a follow up to my previous post regarding a script error when divMap is on an AjaxControlToolkit tab control.

    I was loading the map like this:

    <script type="text/javascript">

     $(document).ready(function () {

       GetMap();

     });

    which causes the script error I previously mentioned. Based on the error, it sounds like a timing thing were it's trying to render the map, but the container control itself hasn't rendered yet. So, I commented out the above code and tried this instead:

    <input id="Button1" type="button" value="Load Map" onclick="GetMap();" />

    and clicking the button renders the map without error. So the problem is not with putting the divMap inside an AjaxControlToolkit tab container per se, but with the timing of the rendering. So I tried the following to prove out my theory:

    <script type="text/javascript">

       $(document).ready(function () {

           setTimeout('GetMap();', 10) // 10 millisecond delay

       });

    </script>

    I altered the timeout delay from 1000 (1 second) all the way down to 1 millisecond and the map still rendered correctly most of the time, but it was inconsistent at 1 ms. It seems to be OK at 10 ms. If I don't use setTimeout, I get the script error on s.focus() every time.

    So at least I now have a workaround, but I didn't have this problem with 6.3

  18. cecile.muller

    After some testing, here is my feedback.

    First, the great:

    – joy and happiness: touch events work on mobile without hack and even seem reliable, thank god, that one gave me quite a few headaches, I love you guys :-)

    – it's more reactive and the transitions are definitely smoother

    – overriding functions (with a version that supports more parameters for example) seems much easier to do

      (e.g. I will probably add support for a couple more parameters in Pushpin.setOptions)

    – quite a few functions like contains() will be handy to have natively instead of adding them by hand

    – changing the background behind tiles seems easier to theme

    And the rest:

    – I will surely miss infoboxes as I had finally fine-tuned a nice CSS3 theme for 6.3 :-(

    Sure I will reuse the CSS, but thing like placing the arrow at the right "y" position and on the proper left/right side, or where to open the infobox depending on the location of the pin on the map / size of the map and such calculations that 6.3 did will probably be frustrating to redo.

    – I will also miss the Tiny and Small dashboards as I had also made a stylesheet that can override each button/state appearance, but that's ok, the new dashboard is a nice compromise: at least now I won't have to add an extra "bird's eye view" button in the small dashboard's HTML anymore.

    – no more REST API functions ? Sure it's not that hard to redo, but it was a nifty shortcut.

    – Shape layers: obsolete concept or are they replaced by entity collections ?

    – I haven't tested it yet, but I hope the hack to be able to draw outside polygons to simulate multipolygons will still work, otherwise I'm definitely stucked with 6.3 as I need that feature.

    – credentials: if you really want to force users to use credentials, I would suggest either not to load tiles at all, either display the error in front of the map: personally, I had to go thru Firebug to find out what the error was saying; at first I even thought it was just a copyright notice because it disappeared so fast behind the tiles and because you can't  click the blue link.

    And a quick note too: the "draggable" option for pins seems to work fine, however it's missing in the documentation of PushpinOptions.

  19. FloydM

    @Kakwane

    @Henri

    @MikeinBA

    Hi all. While Brian works on getting some help to answer the technical questions, I need to address some open questions and misinterpretation in the comments thread that should be cleared up.

    - Is a key required in v7? Yes a key is required.

    - Was one required in v6.2? No. The key requirement is a precedent that started with the release of our REST APIs in June.

    We've made enhancements to our key provisioning system to make getting started simple and easy. There's also a lot of extra features available in the key portal – if you haven't dug in lately, you should check it out: http://www.bingmapsportal.com

    - When is end of life for v6.x? We have not announced an end date for the v6 control and there will be no auto-upgrade to v7. As you mentioned, the codebase is completely different and we realize that many of our users will need additional time to make the transition to v7. We will post an announcement to this blog and send out an email to all customers once we are ready to announce the 12 month (or possibly longer) notice of end of life for the v6.x control. I should also mention that there will be no new investment in v6.x going forward unless a major bug is found.

    - What is happening on May 1, 2011? This is the switch over date for the new map style. This date should not be confused with the end of life date for v6.x. I encourage all of you to test out the new map style beginning today and to switch your production applications to the new map style once you have tested it within your site.

    - Is migration documentation going to be provided for the move from v6.x to v7? We are looking into materials and activities focused at educating technical users on what's new in v7. Be on the lookout for future materials to be announced on this blog.

    Hope this helps. Thanks for posting and for trying out the new control.

  20. Henri Fournier

    @SSchwane: This may be the same problem I'm having with placing the mapDiv on an AjaxControlToolkit tab control, which generates an error in the script. The error message is: "htmlfile: Can't move focus to the control beacuse it is invisible, not enabled, or of a type that does not accept focus." The error is generated at s.focus() in veapicore.js, where "s" is a DispHTMLButtonElement. If I click Continue, the map renders, but none of the built-in controls appear, nor do my pushpins.

  21. Henri Fournier

    @kakwanda: The blog says: "This opt-in period will end on April 30, 2011 and beginning on May 1, 2011, the new map style will become the default and only road style delivered across all Bing mapping services."

  22. The Bing Team

    Hi all,

    I apologize for the delay in support, I am tracking down the people who can confirm my answers.

  23. SSchwane

    Is there any reason the new AJAX control would not work inside of a Sharepoint 2007 webpart? I've done some testing and the map does not render in my webpart (6.3 version of control did work). The same version 7 code I am using in my webpart works fine in a standard ASP.NET page. Thanks.

  24. kakwanda

    I think what's missing is an explanation to current developers as to what it will take to move to version 7. Scanning the API, it seems like it is completely different. It will not be as simple as changing the URL of the mapping API, but it looks like I would need to completely rewrite my application. Where is the documentation on migration? Current developers need this. Also, is there some timeframe for when version 6.3 would stop working? This is very important to know. Thanks.

  25. MikeInBA

    @alastair.aitchison

    Ok, then I must be confused, because this code doesnt have any credentials and seems to use the control without issue?????

    http://codepaste.net/tdbzwc

  26. tkulp

    How do you add HTML controls to the map in v7? I can't find an equivalent to the map.AddControl method in the API. Any help would be appreciated!

  27. alastair.aitchison

    @MikeInBA

    In v6.2 you used to provide your map key using the SetCredentials() method after the map was initialised. msdn.microsoft.com/…/ee692182.aspx

    Now you supply it in the credentials property when you first create the map.

  28. MikeInBA

    Im trying to find if something has changed, but in the example: msdn.microsoft.com/…/gg427624.aspx

    It looks like a bing map key is required.  In my 6.2 version, this was not required, has this changed?

  29. Alsace Web Agency

    "This smaller size helps V7 load faster than our previous control" Indeed, it seems faster.

  30. Henri Fournier

    Two things:

    1. Looked at the API, but I can't figure out how to add a Description (hover/click more info bubble text) to a pushpin

    2. I copied the "Displaying Location Search Results Using the REST Services" example, which works fine, until I put the mapDiv on an AjaxControlToolkit tab control, which throws a script error.

Comments are closed.