If you’re working on a Windows Phone 7 app that uses the Bing Map control, you might be interested in these little differences between the Desktop version and the Phone version of the map control.
1. The Location type on the Phone has no constructor that takes 2 parameters (the Desktop version does). You’ll have to construct a Location object with the default constructor and then set the Latitude and Longitude fields separately.
2. LocationRect also has no constructor that takes 2 parameters. Here you’ll need to do a little more work and assign the North, West, South and East fields appropriately after constructing a LocationRect object with the default constructor.
3. MapLayer has no static function called SetPosition that lets you map Location objects to something appropriate for a MapLayer. Use the regular instance member MapLayer.AddChild() instead.
With these changes, you can make the Desktop sample on the Bing developer site work on a Windows Phone 7 device.
Thanks for reading! It looks like you're new here. Welcome! If you like what you see, I encourage you to subscribe to my RSS feed. If you're worried about adding another RSS feed that will add to your information overload, don't! I'm not a prolific poster. Thanks for visiting!
Like this:
Like Loading...
Categories: Microsoft, Software development, Windows Phone 7
5 Comments »
5 Responses to “Windows Phone 7 – Bing Map Phone/Desktop diffs: MapLayer.SetPosition() missing on Phone”
Thanks, dude. I was ripping my hair out for item #3.
How do you change the location of a UIElement that is a child of the MapLayer and that has already been added as a child at design time? We used to be able to use SetPosition on the desktop to do that. On WinPho, are you saying you have to remove and add each time?
Btw, i have tried using ‘ mapLayer.SetValue(MapLayer.PositionProperty, location);’, but a run time exception is thrown complaining about the values for location being invalid for property ‘Position’, regardless of what values i try.
Sorry mate, haven’t had time to play with that since I wrote the post. Don’t know.
Care to comment?