ThinkGeo.com    |     Documentation    |     Premium Support

Unable To get Bing Maps Layer to work

  try


            {
 
                BingMapLayer worldLayer = new BingMapLayer(accountId, password, clientIpAddress);
                worldLayer.Open();
                if (worldLayer.IsOpen)
                {
                }
                else
                {
                    worldLayer.Open();
                }
 
                LayerOverlay worldOverlay = new LayerOverlay();
                worldOverlay.Layers.Add("WorldLayer", worldLayer);
                map.Overlays.Add("WorldOverlay", worldOverlay);
                map.Refresh();
 
this code executes with no errors but Bing maps are never displayed so I don't know what I am doing wrong.
 
is account id my numbered Bing maps account ID or my username?
is password the password for the account associated with that Account ID?
 
 

 


Hi Darren,
There’re at least two reasons that may cause your problem as far as I can see. Firstly, was everything going on fine during the installation? If the evaluation wasn’t installed correctly, it would cause the problem you described. Additionally, it seems that Microsoft has moved BingMaps API to a higher version that requires the argument AppicationID to validate user information. So, could you please try our latest daily build of WPFDesktopEdition and MicrosoftMapLayerExtension, there you can find a Layer named BingMapsLayer which receives the applicationID argument and takes care of the latest BingMaps APIs.
Any further questions please let me know.
Thanks.
James

 I'm having the same problem. how do we get the latest daily build?



Ben,


You can login the custom portal, helpdesk.thinkgeo.com, and you can easy to find the daily build.

 


James



 I got the latest build and see the following.


there is this class


ThinkGeo.MapSuite.WpfDesktopEdition.BingMapsTileOverlay which takes applicationId as a parameter - what is applicationId?


 


and this class


ThinkGeo.MapSuite.Core.BingMapLayer which has a number of different arguments. 


 


Still can't get either to work.



public MainWindow()


        {


            InitializeComponent();


            this.Loaded += new RoutedEventHandler(MainWindow_Loaded);


        }


 


        void MainWindow_Loaded(object sender, RoutedEventArgs e)


        {


            map.MapTools.MouseCoordinate.IsEnabled = true;


            map.MapTools.MouseCoordinate.MouseCoordinateType = MouseCoordinateType.LatitudeLongitude;


            map.MapUnit = GeographyUnit.DecimalDegree;


 


            map.MapUnit = GeographyUnit.DecimalDegree;


            map.CurrentExtent = new RectangleShape(-180, 90, 180, -90);


ThinkGeo.MapSuite.WpfDesktopEdition.BingMapsTileOverlay overlay = new BingMapsTileOverlay(??????);


                map.Overlays.Add("BingMaps", overlay);


 


                map.Refresh();




 I'm not able to log in to the customer portal... I'm evaluating Map Suite so am I not able to download the latest build?



Ben,  
  
 I sent an e-mail to the address we have on file for you with your Customer Portal username and password. You will be able to download the latest evaluation build using this login.

 


Hi Darren,
Sorry for the late response.
The parameter applicationID is the ID generated by Bing Developer Center, when you create your first Bing Maps application, the first step is to apply for an AppID on Bing Developer Center. (It seems that Microsoft has moved Bing Maps API form version 1.x to version 2.0, when in version 1.x, the way to use Bing Maps API is to provide the username, password and other information, but for version 2.0, just the applicationID is required, kind of easy.)  
So MapSuite has to provide the new APIs which takes care of the new version of Bing Maps API, that’s why the BingMapsLayer of MapSuiteCore and BingMapsTileOverlay of MapSuiteWpfDesktopEdition came into being.
To use BingMapsTileOverlay, you just need to pass in the correct ApplicationID, and add the overlay to the Map Control, job’s done.
Further questions please let me know.
Thanks.
James