Tag Archives: Windows 8
Apps: Roman Numbers is now on the Windows 8 Store
Apps: Colorblind test is now on the Windows 8 Store
How to manage maps in Windows 8 without a native control
If you want to show a map with a pushpin in Metro app you need, up to now, to embed the Map into a WebView control to avoid the lack of a native Map Control in Windows 8.
To generate a valid URL from latitude and longitude parameters use this method in your code
public static string GetMapUri(double latitude, double longitude, int zoom, string mapStyle, int width, int height) { ObservableCollection pins = new ObservableCollection(); ImageryService.Pushpin pushpin = new ImageryService.Pushpin(); pushpin.Location = new ImageryService.Location(); pushpin.Location.Latitude = latitude; pushpin.Location.Longitude = longitude; pushpin.IconStyle = "2"; pins.Add(pushpin); MapUriRequest mapUriRequest = new MapUriRequest(); // Set credentials using a valid Bing Maps Key mapUriRequest.Credentials = new ImageryService.Credentials(); mapUriRequest.Credentials.ApplicationId = BingMapKey; // use your personal key // Set the location of the requested image mapUriRequest.Pushpins = pins; // Set the map style and zoom level MapUriOptions mapUriOptions = new MapUriOptions(); switch (mapStyle.ToUpper()) { case "HYBRID": mapUriOptions.Style = ImageryService.MapStyle.AerialWithLabels; break; case "ROAD": mapUriOptions.Style = ImageryService.MapStyle.Road; break; case "AERIAL": mapUriOptions.Style = ImageryService.MapStyle.Aerial; break; default: mapUriOptions.Style = ImageryService.MapStyle.Road; break; } mapUriOptions.ZoomLevel = zoom; // Set the size of the requested image to match the size of the image control mapUriOptions.ImageSize = new ImageryService.SizeOfint(); mapUriOptions.ImageSize.Height = height; mapUriOptions.ImageSize.Width = width; mapUriRequest.Options = mapUriOptions; ImageryServiceClient imageryService = new ImageryServiceClient(ImageryServiceClient.EndpointConfiguration.BasicHttpBinding_IImageryService); MapUriResponse mapUriResponse = null; try { mapUriResponse = imageryService.GetMapUriAsync(mapUriRequest).Result; } catch (Exception ex) { Debug.WriteLine("GeoLocation: " + ex.Message); } return mapUriResponse.Uri; }
You also need to reference the Bing Maps SOAP Services
GeocodeService
http://dev.virtualearth.net/webservices/v1/geocodeservice/geocodeservice.svc?wsdl
SearchService
http://dev.virtualearth.net/webservices/v1/searchservice/searchservice.svc?wsdl
ImageryService
http://dev.virtualearth.net/webservices/v1/imageryservice/imageryservice.svc?wsdl
RouteService
http://dev.virtualearth.net/webservices/v1/routeservice/routeservice.svc?wsdl
Wrap the generated string in a URI and insert it into the WebView controller.
A bug in Windows 8 Developer Preview CTP
There is a bug in the MediaPlayer component on Windows 8. A bug requires MediaPlayer Source to be set in the Code Behind in this manner:
mediaPlayer.Source = new Uri(mediaPlayer.BaseUri, "Media/file.mp4");
How to locate resources in WinRT Metro App
MS invented another URI format for WinRT resources. For example, to set the Image.Source attribute on WinRT Metro App follow this steps:
- Define a new Image
- Add the Source attribute in the code behind
Image image = new Image(); image.Source = new BitmapImage(new Uri("ms-resource://MyAssembly/.../image.png", UriKind.ReletiveOrAbsolute));
You’ve to add the path above to locate the resouce in WinRT Metro App.
How to install Windows 8 Developer Preview
Download the Windows 8 Developer Preview from the follow link http://msdn.microsoft.com/en-us/windows/apps/br229516. Choose your version.
Download and install Oracle VirtualBox.
- Launch VirtualBox and create a New virtual machine (VM).
- Create a new VM with Windows 8 Developer Preview OS. Next
- Select at least half the RAM on your machine. Next
- Create a new Hard Drive. Next
- Select VDI (VirtualBox Disk Image). Next
- Select Dynamically Allocated. Next
- Set the position and the size (a minimum of 80GB is required) of the Virtual Drive. Next
- Create.
- A new empty Virtual Machine was created.
To install the relative OS load the .iso image on a virtual optical device in the guest machine.
- Open VirtualBox and launch the Virtual Machine created before
- Follow the procedure of the first start
- Choose the installation support (the virtual optical device where you loaded the .iso image
- Wait until the OS installation is finished
For developers: