private void client_GetImageryMetadataCompleted(object sender, GetImageryMetadataCompletedEventArgs e) { if (e.Error == null) { loaded = true; ImageryMetadataResponse metadataResponse = (ImageryMetadataResponse)e.Result; ImageryMetadataResult result = metadataResponse.Results[0]; servers = result.ImageUriSubdomains; ServersNum = servers.Length; TileWidth = result.ImageSize.Width; TileHeight = result.ImageSize.Height; UriFormat = result.ImageUri.Replace("{culture}", "en-us").Replace("{token}", token).Replace("{subdomain}", "{0}").Replace("{quadkey}", "{1}"); MinLevel = result.ZoomRange.From; MaxLevel = result.ZoomRange.To; RaiseChangedEvent(); } else if (e.Error is EndpointNotFoundException) { Debug.WriteLine(ServerName + ": error occured during loading: " + e.Error.Message); } else { throw new InvalidOperationException(VE.Properties.Resources.VEServerCannotLoadTile, e.Error); } }
ViewParams CreateViewParams(ImageryMetadataResult result) { string uri = result.ImageUri; uri = uri.Replace("{subdomain}", result.ImageUriSubdomains[0]); uri = uri.Replace("&token={token}", ""); uri = uri.Replace("{culture}", "en-us"); return(new ViewParams { UriTemplate = uri, MinimumLevel = result.ZoomRange.From, MaximumLevel = result.ZoomRange.To }); }
private string RequestImageMetadata(string locationString) { string results = ""; string key = "ArLeGdHOcc5h7j3L4W37oFGcU9E-LF3tAZi4o0DfhXbPJ8aiyTGbIDNHex08R2u7"; ImageryMetadataRequest metadataRequest = new ImageryMetadataRequest(); // Set credentials using a valid Bing Maps key metadataRequest.Credentials = new ImageryService.Credentials(); metadataRequest.Credentials.ApplicationId = key; // Set the imagery metadata request options ImageryService.Location centerLocation = new ImageryService.Location(); string[] digits = locationString.Split(','); centerLocation.Latitude = double.Parse(digits[0].Trim()); centerLocation.Longitude = double.Parse(digits[1].Trim()); metadataRequest.Options = new ImageryMetadataOptions(); metadataRequest.Options.Location = centerLocation; metadataRequest.Options.ZoomLevel = 10; metadataRequest.Style = MapStyle.AerialWithLabels; // Make the imagery metadata request ImageryServiceClient imageryService = new ImageryServiceClient("BasicHttpBinding_IImageryService"); ImageryMetadataResponse metadataResponse = imageryService.GetImageryMetadata(metadataRequest); ImageryMetadataResult result = metadataResponse.Results[0]; if (metadataResponse.Results.Length > 0) { results = String.Format("Uri: {0}\nVintage: {1} to {2}\nZoom Levels: {3} to {4}", result.ImageUri, result.Vintage.From.ToString(), result.Vintage.To.ToString(), result.ZoomRange.From.ToString(), result.ZoomRange.To.ToString()); } else { results = "Metadata is not available"; } return(results); }