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);
            }
        }
Esempio n. 2
0
    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);
    }