//------------------------------------------------------------------------------
// <auto-generated>
//     This code was generated by a tool.
//     Runtime Version:4.0.30319.18010
//
//     Changes to this file may cause incorrect behavior and will be lost if
//     the code is regenerated.
// </auto-generated>
//------------------------------------------------------------------------------

// 
// This code was auto-generated by Microsoft.VisualStudio.ServiceReference.Platforms, version 11.0.50727.1
// 
namespace RotatingMap.ImageryService {
    using System.Runtime.Serialization;
    
    
    [System.Diagnostics.DebuggerStepThroughAttribute()]
    [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Runtime.Serialization", "4.0.0.0")]
    [System.Runtime.Serialization.DataContractAttribute(Name="RequestBase", Namespace="http://dev.virtualearth.net/webservices/v1/common")]
    [System.Runtime.Serialization.KnownTypeAttribute(typeof(RotatingMap.ImageryService.MapUriRequest))]
    [System.Runtime.Serialization.KnownTypeAttribute(typeof(RotatingMap.ImageryService.ImageryMetadataRequest))]
    public partial class RequestBase : object, System.ComponentModel.INotifyPropertyChanged {
        
        private RotatingMap.ImageryService.Credentials CredentialsField;
        
        private string CultureField;
        
        private RotatingMap.ImageryService.ExecutionOptions ExecutionOptionsField;
        
        private RotatingMap.ImageryService.UserProfile UserProfileField;
        
        [System.Runtime.Serialization.DataMemberAttribute()]
        public RotatingMap.ImageryService.Credentials Credentials {
            get {
                return this.CredentialsField;
            }
            set {
                if ((object.ReferenceEquals(this.CredentialsField, value) != true)) {
                    this.CredentialsField = value;
                    this.RaisePropertyChanged("Credentials");
                }
            }
        }
        
        [System.Runtime.Serialization.DataMemberAttribute()]
        public string Culture {
            get {
                return this.CultureField;
            }
            set {
                if ((object.ReferenceEquals(this.CultureField, value) != true)) {
                    this.CultureField = value;
                    this.RaisePropertyChanged("Culture");
                }
            }
        }
        
        [System.Runtime.Serialization.DataMemberAttribute()]
        public RotatingMap.ImageryService.ExecutionOptions ExecutionOptions {
            get {
                return this.ExecutionOptionsField;
            }
            set {
                if ((object.ReferenceEquals(this.ExecutionOptionsField, value) != true)) {
                    this.ExecutionOptionsField = value;
                    this.RaisePropertyChanged("ExecutionOptions");
                }
            }
        }
        
        [System.Runtime.Serialization.DataMemberAttribute()]
        public RotatingMap.ImageryService.UserProfile UserProfile {
            get {
                return this.UserProfileField;
            }
            set {
                if ((object.ReferenceEquals(this.UserProfileField, value) != true)) {
                    this.UserProfileField = value;
                    this.RaisePropertyChanged("UserProfile");
                }
            }
        }
        
        public event System.ComponentModel.PropertyChangedEventHandler PropertyChanged;
        
        protected void RaisePropertyChanged(string propertyName) {
            System.ComponentModel.PropertyChangedEventHandler propertyChanged = this.PropertyChanged;
            if ((propertyChanged != null)) {
                propertyChanged(this, new System.ComponentModel.PropertyChangedEventArgs(propertyName));
            }
        }
    }
    
    [System.Diagnostics.DebuggerStepThroughAttribute()]
    [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Runtime.Serialization", "4.0.0.0")]
    [System.Runtime.Serialization.DataContractAttribute(Name="Credentials", Namespace="http://dev.virtualearth.net/webservices/v1/common")]
    public partial class Credentials : object, System.ComponentModel.INotifyPropertyChanged {
        
        private string ApplicationIdField;
        
        private string TokenField;
        
        [System.Runtime.Serialization.DataMemberAttribute()]
        public string ApplicationId {
            get {
                return this.ApplicationIdField;
            }
            set {
                if ((object.ReferenceEquals(this.ApplicationIdField, value) != true)) {
                    this.ApplicationIdField = value;
                    this.RaisePropertyChanged("ApplicationId");
                }
            }
        }
        
        [System.Runtime.Serialization.DataMemberAttribute()]
        public string Token {
            get {
                return this.TokenField;
            }
            set {
                if ((object.ReferenceEquals(this.TokenField, value) != true)) {
                    this.TokenField = value;
                    this.RaisePropertyChanged("Token");
                }
            }
        }
        
        public event System.ComponentModel.PropertyChangedEventHandler PropertyChanged;
        
        protected void RaisePropertyChanged(string propertyName) {
            System.ComponentModel.PropertyChangedEventHandler propertyChanged = this.PropertyChanged;
            if ((propertyChanged != null)) {
                propertyChanged(this, new System.ComponentModel.PropertyChangedEventArgs(propertyName));
            }
        }
    }
    
    [System.Diagnostics.DebuggerStepThroughAttribute()]
    [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Runtime.Serialization", "4.0.0.0")]
    [System.Runtime.Serialization.DataContractAttribute(Name="ExecutionOptions", Namespace="http://dev.virtualearth.net/webservices/v1/common")]
    public partial class ExecutionOptions : object, System.ComponentModel.INotifyPropertyChanged {
        
        private bool SuppressFaultsField;
        
        [System.Runtime.Serialization.DataMemberAttribute()]
        public bool SuppressFaults {
            get {
                return this.SuppressFaultsField;
            }
            set {
                if ((this.SuppressFaultsField.Equals(value) != true)) {
                    this.SuppressFaultsField = value;
                    this.RaisePropertyChanged("SuppressFaults");
                }
            }
        }
        
        public event System.ComponentModel.PropertyChangedEventHandler PropertyChanged;
        
        protected void RaisePropertyChanged(string propertyName) {
            System.ComponentModel.PropertyChangedEventHandler propertyChanged = this.PropertyChanged;
            if ((propertyChanged != null)) {
                propertyChanged(this, new System.ComponentModel.PropertyChangedEventArgs(propertyName));
            }
        }
    }
    
    [System.Diagnostics.DebuggerStepThroughAttribute()]
    [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Runtime.Serialization", "4.0.0.0")]
    [System.Runtime.Serialization.DataContractAttribute(Name="UserProfile", Namespace="http://dev.virtualearth.net/webservices/v1/common")]
    public partial class UserProfile : object, System.ComponentModel.INotifyPropertyChanged {
        
        private RotatingMap.ImageryService.Heading CurrentHeadingField;
        
        private RotatingMap.ImageryService.UserLocation CurrentLocationField;
        
        private RotatingMap.ImageryService.DeviceType DeviceTypeField;
        
        private RotatingMap.ImageryService.DistanceUnit DistanceUnitField;
        
        private string IPAddressField;
        
        private RotatingMap.ImageryService.ShapeBase MapViewField;
        
        private RotatingMap.ImageryService.SizeOfint ScreenSizeField;
        
        [System.Runtime.Serialization.DataMemberAttribute()]
        public RotatingMap.ImageryService.Heading CurrentHeading {
            get {
                return this.CurrentHeadingField;
            }
            set {
                if ((object.ReferenceEquals(this.CurrentHeadingField, value) != true)) {
                    this.CurrentHeadingField = value;
                    this.RaisePropertyChanged("CurrentHeading");
                }
            }
        }
        
        [System.Runtime.Serialization.DataMemberAttribute()]
        public RotatingMap.ImageryService.UserLocation CurrentLocation {
            get {
                return this.CurrentLocationField;
            }
            set {
                if ((object.ReferenceEquals(this.CurrentLocationField, value) != true)) {
                    this.CurrentLocationField = value;
                    this.RaisePropertyChanged("CurrentLocation");
                }
            }
        }
        
        [System.Runtime.Serialization.DataMemberAttribute()]
        public RotatingMap.ImageryService.DeviceType DeviceType {
            get {
                return this.DeviceTypeField;
            }
            set {
                if ((this.DeviceTypeField.Equals(value) != true)) {
                    this.DeviceTypeField = value;
                    this.RaisePropertyChanged("DeviceType");
                }
            }
        }
        
        [System.Runtime.Serialization.DataMemberAttribute()]
        public RotatingMap.ImageryService.DistanceUnit DistanceUnit {
            get {
                return this.DistanceUnitField;
            }
            set {
                if ((this.DistanceUnitField.Equals(value) != true)) {
                    this.DistanceUnitField = value;
                    this.RaisePropertyChanged("DistanceUnit");
                }
            }
        }
        
        [System.Runtime.Serialization.DataMemberAttribute()]
        public string IPAddress {
            get {
                return this.IPAddressField;
            }
            set {
                if ((object.ReferenceEquals(this.IPAddressField, value) != true)) {
                    this.IPAddressField = value;
                    this.RaisePropertyChanged("IPAddress");
                }
            }
        }
        
        [System.Runtime.Serialization.DataMemberAttribute()]
        public RotatingMap.ImageryService.ShapeBase MapView {
            get {
                return this.MapViewField;
            }
            set {
                if ((object.ReferenceEquals(this.MapViewField, value) != true)) {
                    this.MapViewField = value;
                    this.RaisePropertyChanged("MapView");
                }
            }
        }
        
        [System.Runtime.Serialization.DataMemberAttribute()]
        public RotatingMap.ImageryService.SizeOfint ScreenSize {
            get {
                return this.ScreenSizeField;
            }
            set {
                if ((object.ReferenceEquals(this.ScreenSizeField, value) != true)) {
                    this.ScreenSizeField = value;
                    this.RaisePropertyChanged("ScreenSize");
                }
            }
        }
        
        public event System.ComponentModel.PropertyChangedEventHandler PropertyChanged;
        
        protected void RaisePropertyChanged(string propertyName) {
            System.ComponentModel.PropertyChangedEventHandler propertyChanged = this.PropertyChanged;
            if ((propertyChanged != null)) {
                propertyChanged(this, new System.ComponentModel.PropertyChangedEventArgs(propertyName));
            }
        }
    }
    
    [System.Diagnostics.DebuggerStepThroughAttribute()]
    [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Runtime.Serialization", "4.0.0.0")]
    [System.Runtime.Serialization.DataContractAttribute(Name="MapUriRequest", Namespace="http://dev.virtualearth.net/webservices/v1/imagery")]
    public partial class MapUriRequest : RotatingMap.ImageryService.RequestBase {
        
        private RotatingMap.ImageryService.Location CenterField;
        
        private RotatingMap.ImageryService.Location MajorRoutesDestinationField;
        
        private RotatingMap.ImageryService.MapUriOptions OptionsField;
        
        private System.Collections.ObjectModel.ObservableCollection<RotatingMap.ImageryService.Pushpin> PushpinsField;
        
        [System.Runtime.Serialization.DataMemberAttribute()]
        public RotatingMap.ImageryService.Location Center {
            get {
                return this.CenterField;
            }
            set {
                if ((object.ReferenceEquals(this.CenterField, value) != true)) {
                    this.CenterField = value;
                    this.RaisePropertyChanged("Center");
                }
            }
        }
        
        [System.Runtime.Serialization.DataMemberAttribute()]
        public RotatingMap.ImageryService.Location MajorRoutesDestination {
            get {
                return this.MajorRoutesDestinationField;
            }
            set {
                if ((object.ReferenceEquals(this.MajorRoutesDestinationField, value) != true)) {
                    this.MajorRoutesDestinationField = value;
                    this.RaisePropertyChanged("MajorRoutesDestination");
                }
            }
        }
        
        [System.Runtime.Serialization.DataMemberAttribute()]
        public RotatingMap.ImageryService.MapUriOptions Options {
            get {
                return this.OptionsField;
            }
            set {
                if ((object.ReferenceEquals(this.OptionsField, value) != true)) {
                    this.OptionsField = value;
                    this.RaisePropertyChanged("Options");
                }
            }
        }
        
        [System.Runtime.Serialization.DataMemberAttribute()]
        public System.Collections.ObjectModel.ObservableCollection<RotatingMap.ImageryService.Pushpin> Pushpins {
            get {
                return this.PushpinsField;
            }
            set {
                if ((object.ReferenceEquals(this.PushpinsField, value) != true)) {
                    this.PushpinsField = value;
                    this.RaisePropertyChanged("Pushpins");
                }
            }
        }
    }
    
    [System.Diagnostics.DebuggerStepThroughAttribute()]
    [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Runtime.Serialization", "4.0.0.0")]
    [System.Runtime.Serialization.DataContractAttribute(Name="ImageryMetadataRequest", Namespace="http://dev.virtualearth.net/webservices/v1/imagery")]
    public partial class ImageryMetadataRequest : RotatingMap.ImageryService.RequestBase {
        
        private RotatingMap.ImageryService.ImageryMetadataOptions OptionsField;
        
        private RotatingMap.ImageryService.MapStyle StyleField;
        
        [System.Runtime.Serialization.DataMemberAttribute()]
        public RotatingMap.ImageryService.ImageryMetadataOptions Options {
            get {
                return this.OptionsField;
            }
            set {
                if ((object.ReferenceEquals(this.OptionsField, value) != true)) {
                    this.OptionsField = value;
                    this.RaisePropertyChanged("Options");
                }
            }
        }
        
        [System.Runtime.Serialization.DataMemberAttribute()]
        public RotatingMap.ImageryService.MapStyle Style {
            get {
                return this.StyleField;
            }
            set {
                if ((this.StyleField.Equals(value) != true)) {
                    this.StyleField = value;
                    this.RaisePropertyChanged("Style");
                }
            }
        }
    }
    
    [System.Diagnostics.DebuggerStepThroughAttribute()]
    [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Runtime.Serialization", "4.0.0.0")]
    [System.Runtime.Serialization.DataContractAttribute(Name="ImageryMetadataOptions", Namespace="http://dev.virtualearth.net/webservices/v1/imagery")]
    public partial class ImageryMetadataOptions : object, System.ComponentModel.INotifyPropertyChanged {
        
        private RotatingMap.ImageryService.Heading HeadingField;
        
        private RotatingMap.ImageryService.Location LocationField;
        
        private bool ReturnImageryProvidersField;
        
        private RotatingMap.ImageryService.UriScheme UriSchemeField;
        
        private System.Nullable<int> ZoomLevelField;
        
        [System.Runtime.Serialization.DataMemberAttribute()]
        public RotatingMap.ImageryService.Heading Heading {
            get {
                return this.HeadingField;
            }
            set {
                if ((object.ReferenceEquals(this.HeadingField, value) != true)) {
                    this.HeadingField = value;
                    this.RaisePropertyChanged("Heading");
                }
            }
        }
        
        [System.Runtime.Serialization.DataMemberAttribute()]
        public RotatingMap.ImageryService.Location Location {
            get {
                return this.LocationField;
            }
            set {
                if ((object.ReferenceEquals(this.LocationField, value) != true)) {
                    this.LocationField = value;
                    this.RaisePropertyChanged("Location");
                }
            }
        }
        
        [System.Runtime.Serialization.DataMemberAttribute()]
        public bool ReturnImageryProviders {
            get {
                return this.ReturnImageryProvidersField;
            }
            set {
                if ((this.ReturnImageryProvidersField.Equals(value) != true)) {
                    this.ReturnImageryProvidersField = value;
                    this.RaisePropertyChanged("ReturnImageryProviders");
                }
            }
        }
        
        [System.Runtime.Serialization.DataMemberAttribute()]
        public RotatingMap.ImageryService.UriScheme UriScheme {
            get {
                return this.UriSchemeField;
            }
            set {
                if ((this.UriSchemeField.Equals(value) != true)) {
                    this.UriSchemeField = value;
                    this.RaisePropertyChanged("UriScheme");
                }
            }
        }
        
        [System.Runtime.Serialization.DataMemberAttribute()]
        public System.Nullable<int> ZoomLevel {
            get {
                return this.ZoomLevelField;
            }
            set {
                if ((this.ZoomLevelField.Equals(value) != true)) {
                    this.ZoomLevelField = value;
                    this.RaisePropertyChanged("ZoomLevel");
                }
            }
        }
        
        public event System.ComponentModel.PropertyChangedEventHandler PropertyChanged;
        
        protected void RaisePropertyChanged(string propertyName) {
            System.ComponentModel.PropertyChangedEventHandler propertyChanged = this.PropertyChanged;
            if ((propertyChanged != null)) {
                propertyChanged(this, new System.ComponentModel.PropertyChangedEventArgs(propertyName));
            }
        }
    }
    
    [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Runtime.Serialization", "4.0.0.0")]
    [System.Runtime.Serialization.DataContractAttribute(Name="MapStyle", Namespace="http://dev.virtualearth.net/webservices/v1/common")]
    public enum MapStyle : int {
        
        [System.Runtime.Serialization.EnumMemberAttribute()]
        Road = 0,
        
        [System.Runtime.Serialization.EnumMemberAttribute()]
        Aerial = 1,
        
        [System.Runtime.Serialization.EnumMemberAttribute()]
        AerialWithLabels = 2,
        
        [System.Runtime.Serialization.EnumMemberAttribute()]
        Birdseye = 3,
        
        [System.Runtime.Serialization.EnumMemberAttribute()]
        BirdseyeWithLabels = 4,
        
        [System.Runtime.Serialization.EnumMemberAttribute()]
        Road_v0 = 5,
        
        [System.Runtime.Serialization.EnumMemberAttribute()]
        AerialWithLabels_v0 = 6,
        
        [System.Runtime.Serialization.EnumMemberAttribute()]
        BirdseyeWithLabels_v0 = 7,
        
        [System.Runtime.Serialization.EnumMemberAttribute()]
        Road_v1 = 8,
        
        [System.Runtime.Serialization.EnumMemberAttribute()]
        AerialWithLabels_v1 = 9,
        
        [System.Runtime.Serialization.EnumMemberAttribute()]
        BirdseyeWithLabels_v1 = 10,
    }
    
    [System.Diagnostics.DebuggerStepThroughAttribute()]
    [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Runtime.Serialization", "4.0.0.0")]
    [System.Runtime.Serialization.DataContractAttribute(Name="Heading", Namespace="http://dev.virtualearth.net/webservices/v1/common")]
    public partial class Heading : object, System.ComponentModel.INotifyPropertyChanged {
        
        private double OrientationField;
        
        [System.Runtime.Serialization.DataMemberAttribute()]
        public double Orientation {
            get {
                return this.OrientationField;
            }
            set {
                if ((this.OrientationField.Equals(value) != true)) {
                    this.OrientationField = value;
                    this.RaisePropertyChanged("Orientation");
                }
            }
        }
        
        public event System.ComponentModel.PropertyChangedEventHandler PropertyChanged;
        
        protected void RaisePropertyChanged(string propertyName) {
            System.ComponentModel.PropertyChangedEventHandler propertyChanged = this.PropertyChanged;
            if ((propertyChanged != null)) {
                propertyChanged(this, new System.ComponentModel.PropertyChangedEventArgs(propertyName));
            }
        }
    }
    
    [System.Diagnostics.DebuggerStepThroughAttribute()]
    [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Runtime.Serialization", "4.0.0.0")]
    [System.Runtime.Serialization.DataContractAttribute(Name="UserLocation", Namespace="http://dev.virtualearth.net/webservices/v1/common")]
    public partial class UserLocation : RotatingMap.ImageryService.Location {
        
        private RotatingMap.ImageryService.Confidence ConfidenceField;
        
        [System.Runtime.Serialization.DataMemberAttribute()]
        public RotatingMap.ImageryService.Confidence Confidence {
            get {
                return this.ConfidenceField;
            }
            set {
                if ((this.ConfidenceField.Equals(value) != true)) {
                    this.ConfidenceField = value;
                    this.RaisePropertyChanged("Confidence");
                }
            }
        }
    }
    
    [System.Diagnostics.DebuggerStepThroughAttribute()]
    [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Runtime.Serialization", "4.0.0.0")]
    [System.Runtime.Serialization.DataContractAttribute(Name="ShapeBase", Namespace="http://dev.virtualearth.net/webservices/v1/common")]
    [System.Runtime.Serialization.KnownTypeAttribute(typeof(RotatingMap.ImageryService.SearchPoint))]
    [System.Runtime.Serialization.KnownTypeAttribute(typeof(RotatingMap.ImageryService.Circle))]
    [System.Runtime.Serialization.KnownTypeAttribute(typeof(RotatingMap.ImageryService.Rectangle))]
    [System.Runtime.Serialization.KnownTypeAttribute(typeof(RotatingMap.ImageryService.Polygon))]
    public partial class ShapeBase : object, System.ComponentModel.INotifyPropertyChanged {
        
        public event System.ComponentModel.PropertyChangedEventHandler PropertyChanged;
        
        protected void RaisePropertyChanged(string propertyName) {
            System.ComponentModel.PropertyChangedEventHandler propertyChanged = this.PropertyChanged;
            if ((propertyChanged != null)) {
                propertyChanged(this, new System.ComponentModel.PropertyChangedEventArgs(propertyName));
            }
        }
    }
    
    [System.Diagnostics.DebuggerStepThroughAttribute()]
    [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Runtime.Serialization", "4.0.0.0")]
    [System.Runtime.Serialization.DataContractAttribute(Name="SizeOfint", Namespace="http://dev.virtualearth.net/webservices/v1/common")]
    public partial class SizeOfint : object, System.ComponentModel.INotifyPropertyChanged {
        
        private int HeightField;
        
        private int WidthField;
        
        [System.Runtime.Serialization.DataMemberAttribute()]
        public int Height {
            get {
                return this.HeightField;
            }
            set {
                if ((this.HeightField.Equals(value) != true)) {
                    this.HeightField = value;
                    this.RaisePropertyChanged("Height");
                }
            }
        }
        
        [System.Runtime.Serialization.DataMemberAttribute()]
        public int Width {
            get {
                return this.WidthField;
            }
            set {
                if ((this.WidthField.Equals(value) != true)) {
                    this.WidthField = value;
                    this.RaisePropertyChanged("Width");
                }
            }
        }
        
        public event System.ComponentModel.PropertyChangedEventHandler PropertyChanged;
        
        protected void RaisePropertyChanged(string propertyName) {
            System.ComponentModel.PropertyChangedEventHandler propertyChanged = this.PropertyChanged;
            if ((propertyChanged != null)) {
                propertyChanged(this, new System.ComponentModel.PropertyChangedEventArgs(propertyName));
            }
        }
    }
    
    [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Runtime.Serialization", "4.0.0.0")]
    [System.Runtime.Serialization.DataContractAttribute(Name="DeviceType", Namespace="http://dev.virtualearth.net/webservices/v1/common")]
    public enum DeviceType : int {
        
        [System.Runtime.Serialization.EnumMemberAttribute()]
        Desktop = 0,
        
        [System.Runtime.Serialization.EnumMemberAttribute()]
        Mobile = 1,
    }
    
    [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Runtime.Serialization", "4.0.0.0")]
    [System.Runtime.Serialization.DataContractAttribute(Name="DistanceUnit", Namespace="http://dev.virtualearth.net/webservices/v1/common")]
    public enum DistanceUnit : int {
        
        [System.Runtime.Serialization.EnumMemberAttribute()]
        Kilometer = 0,
        
        [System.Runtime.Serialization.EnumMemberAttribute()]
        Mile = 1,
    }
    
    [System.Diagnostics.DebuggerStepThroughAttribute()]
    [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Runtime.Serialization", "4.0.0.0")]
    [System.Runtime.Serialization.DataContractAttribute(Name="Location", Namespace="http://dev.virtualearth.net/webservices/v1/common")]
    [System.Runtime.Serialization.KnownTypeAttribute(typeof(RotatingMap.ImageryService.GeocodeLocation))]
    [System.Runtime.Serialization.KnownTypeAttribute(typeof(RotatingMap.ImageryService.UserLocation))]
    public partial class Location : object, System.ComponentModel.INotifyPropertyChanged {
        
        private double AltitudeField;
        
        private double LatitudeField;
        
        private double LongitudeField;
        
        [System.Runtime.Serialization.DataMemberAttribute()]
        public double Altitude {
            get {
                return this.AltitudeField;
            }
            set {
                if ((this.AltitudeField.Equals(value) != true)) {
                    this.AltitudeField = value;
                    this.RaisePropertyChanged("Altitude");
                }
            }
        }
        
        [System.Runtime.Serialization.DataMemberAttribute()]
        public double Latitude {
            get {
                return this.LatitudeField;
            }
            set {
                if ((this.LatitudeField.Equals(value) != true)) {
                    this.LatitudeField = value;
                    this.RaisePropertyChanged("Latitude");
                }
            }
        }
        
        [System.Runtime.Serialization.DataMemberAttribute()]
        public double Longitude {
            get {
                return this.LongitudeField;
            }
            set {
                if ((this.LongitudeField.Equals(value) != true)) {
                    this.LongitudeField = value;
                    this.RaisePropertyChanged("Longitude");
                }
            }
        }
        
        public event System.ComponentModel.PropertyChangedEventHandler PropertyChanged;
        
        protected void RaisePropertyChanged(string propertyName) {
            System.ComponentModel.PropertyChangedEventHandler propertyChanged = this.PropertyChanged;
            if ((propertyChanged != null)) {
                propertyChanged(this, new System.ComponentModel.PropertyChangedEventArgs(propertyName));
            }
        }
    }
    
    [System.Diagnostics.DebuggerStepThroughAttribute()]
    [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Runtime.Serialization", "4.0.0.0")]
    [System.Runtime.Serialization.DataContractAttribute(Name="GeocodeLocation", Namespace="http://dev.virtualearth.net/webservices/v1/common")]
    public partial class GeocodeLocation : RotatingMap.ImageryService.Location {
        
        private string CalculationMethodField;
        
        [System.Runtime.Serialization.DataMemberAttribute()]
        public string CalculationMethod {
            get {
                return this.CalculationMethodField;
            }
            set {
                if ((object.ReferenceEquals(this.CalculationMethodField, value) != true)) {
                    this.CalculationMethodField = value;
                    this.RaisePropertyChanged("CalculationMethod");
                }
            }
        }
    }
    
    [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Runtime.Serialization", "4.0.0.0")]
    [System.Runtime.Serialization.DataContractAttribute(Name="Confidence", Namespace="http://dev.virtualearth.net/webservices/v1/common")]
    public enum Confidence : int {
        
        [System.Runtime.Serialization.EnumMemberAttribute()]
        High = 0,
        
        [System.Runtime.Serialization.EnumMemberAttribute()]
        Medium = 1,
        
        [System.Runtime.Serialization.EnumMemberAttribute()]
        Low = 2,
    }
    
    [System.Diagnostics.DebuggerStepThroughAttribute()]
    [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Runtime.Serialization", "4.0.0.0")]
    [System.Runtime.Serialization.DataContractAttribute(Name="SearchPoint", Namespace="http://dev.virtualearth.net/webservices/v1/search")]
    public partial class SearchPoint : RotatingMap.ImageryService.ShapeBase {
        
        private RotatingMap.ImageryService.Location PointField;
        
        [System.Runtime.Serialization.DataMemberAttribute()]
        public RotatingMap.ImageryService.Location Point {
            get {
                return this.PointField;
            }
            set {
                if ((object.ReferenceEquals(this.PointField, value) != true)) {
                    this.PointField = value;
                    this.RaisePropertyChanged("Point");
                }
            }
        }
    }
    
    [System.Diagnostics.DebuggerStepThroughAttribute()]
    [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Runtime.Serialization", "4.0.0.0")]
    [System.Runtime.Serialization.DataContractAttribute(Name="Circle", Namespace="http://dev.virtualearth.net/webservices/v1/common")]
    public partial class Circle : RotatingMap.ImageryService.ShapeBase {
        
        private RotatingMap.ImageryService.Location CenterField;
        
        private RotatingMap.ImageryService.DistanceUnit DistanceUnitField;
        
        private double RadiusField;
        
        [System.Runtime.Serialization.DataMemberAttribute()]
        public RotatingMap.ImageryService.Location Center {
            get {
                return this.CenterField;
            }
            set {
                if ((object.ReferenceEquals(this.CenterField, value) != true)) {
                    this.CenterField = value;
                    this.RaisePropertyChanged("Center");
                }
            }
        }
        
        [System.Runtime.Serialization.DataMemberAttribute()]
        public RotatingMap.ImageryService.DistanceUnit DistanceUnit {
            get {
                return this.DistanceUnitField;
            }
            set {
                if ((this.DistanceUnitField.Equals(value) != true)) {
                    this.DistanceUnitField = value;
                    this.RaisePropertyChanged("DistanceUnit");
                }
            }
        }
        
        [System.Runtime.Serialization.DataMemberAttribute()]
        public double Radius {
            get {
                return this.RadiusField;
            }
            set {
                if ((this.RadiusField.Equals(value) != true)) {
                    this.RadiusField = value;
                    this.RaisePropertyChanged("Radius");
                }
            }
        }
    }
    
    [System.Diagnostics.DebuggerStepThroughAttribute()]
    [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Runtime.Serialization", "4.0.0.0")]
    [System.Runtime.Serialization.DataContractAttribute(Name="Rectangle", Namespace="http://dev.virtualearth.net/webservices/v1/common")]
    public partial class Rectangle : RotatingMap.ImageryService.ShapeBase {
        
        private RotatingMap.ImageryService.Location NortheastField;
        
        private RotatingMap.ImageryService.Location SouthwestField;
        
        [System.Runtime.Serialization.DataMemberAttribute()]
        public RotatingMap.ImageryService.Location Northeast {
            get {
                return this.NortheastField;
            }
            set {
                if ((object.ReferenceEquals(this.NortheastField, value) != true)) {
                    this.NortheastField = value;
                    this.RaisePropertyChanged("Northeast");
                }
            }
        }
        
        [System.Runtime.Serialization.DataMemberAttribute()]
        public RotatingMap.ImageryService.Location Southwest {
            get {
                return this.SouthwestField;
            }
            set {
                if ((object.ReferenceEquals(this.SouthwestField, value) != true)) {
                    this.SouthwestField = value;
                    this.RaisePropertyChanged("Southwest");
                }
            }
        }
    }
    
    [System.Diagnostics.DebuggerStepThroughAttribute()]
    [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Runtime.Serialization", "4.0.0.0")]
    [System.Runtime.Serialization.DataContractAttribute(Name="Polygon", Namespace="http://dev.virtualearth.net/webservices/v1/common")]
    public partial class Polygon : RotatingMap.ImageryService.ShapeBase {
        
        private System.Collections.ObjectModel.ObservableCollection<RotatingMap.ImageryService.Location> VerticesField;
        
        [System.Runtime.Serialization.DataMemberAttribute()]
        public System.Collections.ObjectModel.ObservableCollection<RotatingMap.ImageryService.Location> Vertices {
            get {
                return this.VerticesField;
            }
            set {
                if ((object.ReferenceEquals(this.VerticesField, value) != true)) {
                    this.VerticesField = value;
                    this.RaisePropertyChanged("Vertices");
                }
            }
        }
    }
    
    [System.Diagnostics.DebuggerStepThroughAttribute()]
    [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Runtime.Serialization", "4.0.0.0")]
    [System.Runtime.Serialization.DataContractAttribute(Name="MapUriOptions", Namespace="http://dev.virtualearth.net/webservices/v1/imagery")]
    public partial class MapUriOptions : object, System.ComponentModel.INotifyPropertyChanged {
        
        private System.Collections.ObjectModel.ObservableCollection<string> DisplayLayersField;
        
        private RotatingMap.ImageryService.SizeOfint ImageSizeField;
        
        private RotatingMap.ImageryService.ImageType ImageTypeField;
        
        private bool PreventIconCollisionField;
        
        private RotatingMap.ImageryService.MapStyle StyleField;
        
        private RotatingMap.ImageryService.UriScheme UriSchemeField;
        
        private System.Nullable<int> ZoomLevelField;
        
        [System.Runtime.Serialization.DataMemberAttribute()]
        public System.Collections.ObjectModel.ObservableCollection<string> DisplayLayers {
            get {
                return this.DisplayLayersField;
            }
            set {
                if ((object.ReferenceEquals(this.DisplayLayersField, value) != true)) {
                    this.DisplayLayersField = value;
                    this.RaisePropertyChanged("DisplayLayers");
                }
            }
        }
        
        [System.Runtime.Serialization.DataMemberAttribute()]
        public RotatingMap.ImageryService.SizeOfint ImageSize {
            get {
                return this.ImageSizeField;
            }
            set {
                if ((object.ReferenceEquals(this.ImageSizeField, value) != true)) {
                    this.ImageSizeField = value;
                    this.RaisePropertyChanged("ImageSize");
                }
            }
        }
        
        [System.Runtime.Serialization.DataMemberAttribute()]
        public RotatingMap.ImageryService.ImageType ImageType {
            get {
                return this.ImageTypeField;
            }
            set {
                if ((this.ImageTypeField.Equals(value) != true)) {
                    this.ImageTypeField = value;
                    this.RaisePropertyChanged("ImageType");
                }
            }
        }
        
        [System.Runtime.Serialization.DataMemberAttribute()]
        public bool PreventIconCollision {
            get {
                return this.PreventIconCollisionField;
            }
            set {
                if ((this.PreventIconCollisionField.Equals(value) != true)) {
                    this.PreventIconCollisionField = value;
                    this.RaisePropertyChanged("PreventIconCollision");
                }
            }
        }
        
        [System.Runtime.Serialization.DataMemberAttribute()]
        public RotatingMap.ImageryService.MapStyle Style {
            get {
                return this.StyleField;
            }
            set {
                if ((this.StyleField.Equals(value) != true)) {
                    this.StyleField = value;
                    this.RaisePropertyChanged("Style");
                }
            }
        }
        
        [System.Runtime.Serialization.DataMemberAttribute()]
        public RotatingMap.ImageryService.UriScheme UriScheme {
            get {
                return this.UriSchemeField;
            }
            set {
                if ((this.UriSchemeField.Equals(value) != true)) {
                    this.UriSchemeField = value;
                    this.RaisePropertyChanged("UriScheme");
                }
            }
        }
        
        [System.Runtime.Serialization.DataMemberAttribute()]
        public System.Nullable<int> ZoomLevel {
            get {
                return this.ZoomLevelField;
            }
            set {
                if ((this.ZoomLevelField.Equals(value) != true)) {
                    this.ZoomLevelField = value;
                    this.RaisePropertyChanged("ZoomLevel");
                }
            }
        }
        
        public event System.ComponentModel.PropertyChangedEventHandler PropertyChanged;
        
        protected void RaisePropertyChanged(string propertyName) {
            System.ComponentModel.PropertyChangedEventHandler propertyChanged = this.PropertyChanged;
            if ((propertyChanged != null)) {
                propertyChanged(this, new System.ComponentModel.PropertyChangedEventArgs(propertyName));
            }
        }
    }
    
    [System.Diagnostics.DebuggerStepThroughAttribute()]
    [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Runtime.Serialization", "4.0.0.0")]
    [System.Runtime.Serialization.DataContractAttribute(Name="Pushpin", Namespace="http://dev.virtualearth.net/webservices/v1/common")]
    public partial class Pushpin : object, System.ComponentModel.INotifyPropertyChanged {
        
        private string IconStyleField;
        
        private string LabelField;
        
        private RotatingMap.ImageryService.Location LocationField;
        
        [System.Runtime.Serialization.DataMemberAttribute()]
        public string IconStyle {
            get {
                return this.IconStyleField;
            }
            set {
                if ((object.ReferenceEquals(this.IconStyleField, value) != true)) {
                    this.IconStyleField = value;
                    this.RaisePropertyChanged("IconStyle");
                }
            }
        }
        
        [System.Runtime.Serialization.DataMemberAttribute()]
        public string Label {
            get {
                return this.LabelField;
            }
            set {
                if ((object.ReferenceEquals(this.LabelField, value) != true)) {
                    this.LabelField = value;
                    this.RaisePropertyChanged("Label");
                }
            }
        }
        
        [System.Runtime.Serialization.DataMemberAttribute()]
        public RotatingMap.ImageryService.Location Location {
            get {
                return this.LocationField;
            }
            set {
                if ((object.ReferenceEquals(this.LocationField, value) != true)) {
                    this.LocationField = value;
                    this.RaisePropertyChanged("Location");
                }
            }
        }
        
        public event System.ComponentModel.PropertyChangedEventHandler PropertyChanged;
        
        protected void RaisePropertyChanged(string propertyName) {
            System.ComponentModel.PropertyChangedEventHandler propertyChanged = this.PropertyChanged;
            if ((propertyChanged != null)) {
                propertyChanged(this, new System.ComponentModel.PropertyChangedEventArgs(propertyName));
            }
        }
    }
    
    [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Runtime.Serialization", "4.0.0.0")]
    [System.Runtime.Serialization.DataContractAttribute(Name="ImageType", Namespace="http://dev.virtualearth.net/webservices/v1/common")]
    public enum ImageType : int {
        
        [System.Runtime.Serialization.EnumMemberAttribute()]
        Default = 0,
        
        [System.Runtime.Serialization.EnumMemberAttribute()]
        Png = 1,
        
        [System.Runtime.Serialization.EnumMemberAttribute()]
        Jpeg = 2,
        
        [System.Runtime.Serialization.EnumMemberAttribute()]
        Gif = 3,
    }
    
    [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Runtime.Serialization", "4.0.0.0")]
    [System.Runtime.Serialization.DataContractAttribute(Name="UriScheme", Namespace="http://dev.virtualearth.net/webservices/v1/common")]
    public enum UriScheme : int {
        
        [System.Runtime.Serialization.EnumMemberAttribute()]
        Http = 0,
        
        [System.Runtime.Serialization.EnumMemberAttribute()]
        Https = 1,
    }
    
    [System.Diagnostics.DebuggerStepThroughAttribute()]
    [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Runtime.Serialization", "4.0.0.0")]
    [System.Runtime.Serialization.DataContractAttribute(Name="ResponseBase", Namespace="http://dev.virtualearth.net/webservices/v1/common")]
    [System.Runtime.Serialization.KnownTypeAttribute(typeof(RotatingMap.ImageryService.MapUriResponse))]
    [System.Runtime.Serialization.KnownTypeAttribute(typeof(RotatingMap.ImageryService.ImageryMetadataResponse))]
    public partial class ResponseBase : object, System.ComponentModel.INotifyPropertyChanged {
        
        private System.Uri BrandLogoUriField;
        
        private RotatingMap.ImageryService.ResponseSummary ResponseSummaryField;
        
        [System.Runtime.Serialization.DataMemberAttribute()]
        public System.Uri BrandLogoUri {
            get {
                return this.BrandLogoUriField;
            }
            set {
                if ((object.ReferenceEquals(this.BrandLogoUriField, value) != true)) {
                    this.BrandLogoUriField = value;
                    this.RaisePropertyChanged("BrandLogoUri");
                }
            }
        }
        
        [System.Runtime.Serialization.DataMemberAttribute()]
        public RotatingMap.ImageryService.ResponseSummary ResponseSummary {
            get {
                return this.ResponseSummaryField;
            }
            set {
                if ((object.ReferenceEquals(this.ResponseSummaryField, value) != true)) {
                    this.ResponseSummaryField = value;
                    this.RaisePropertyChanged("ResponseSummary");
                }
            }
        }
        
        public event System.ComponentModel.PropertyChangedEventHandler PropertyChanged;
        
        protected void RaisePropertyChanged(string propertyName) {
            System.ComponentModel.PropertyChangedEventHandler propertyChanged = this.PropertyChanged;
            if ((propertyChanged != null)) {
                propertyChanged(this, new System.ComponentModel.PropertyChangedEventArgs(propertyName));
            }
        }
    }
    
    [System.Diagnostics.DebuggerStepThroughAttribute()]
    [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Runtime.Serialization", "4.0.0.0")]
    [System.Runtime.Serialization.DataContractAttribute(Name="ResponseSummary", Namespace="http://dev.virtualearth.net/webservices/v1/common")]
    public partial class ResponseSummary : object, System.ComponentModel.INotifyPropertyChanged {
        
        private RotatingMap.ImageryService.AuthenticationResultCode AuthenticationResultCodeField;
        
        private string CopyrightField;
        
        private string FaultReasonField;
        
        private RotatingMap.ImageryService.ResponseStatusCode StatusCodeField;
        
        private string TraceIdField;
        
        [System.Runtime.Serialization.DataMemberAttribute()]
        public RotatingMap.ImageryService.AuthenticationResultCode AuthenticationResultCode {
            get {
                return this.AuthenticationResultCodeField;
            }
            set {
                if ((this.AuthenticationResultCodeField.Equals(value) != true)) {
                    this.AuthenticationResultCodeField = value;
                    this.RaisePropertyChanged("AuthenticationResultCode");
                }
            }
        }
        
        [System.Runtime.Serialization.DataMemberAttribute()]
        public string Copyright {
            get {
                return this.CopyrightField;
            }
            set {
                if ((object.ReferenceEquals(this.CopyrightField, value) != true)) {
                    this.CopyrightField = value;
                    this.RaisePropertyChanged("Copyright");
                }
            }
        }
        
        [System.Runtime.Serialization.DataMemberAttribute()]
        public string FaultReason {
            get {
                return this.FaultReasonField;
            }
            set {
                if ((object.ReferenceEquals(this.FaultReasonField, value) != true)) {
                    this.FaultReasonField = value;
                    this.RaisePropertyChanged("FaultReason");
                }
            }
        }
        
        [System.Runtime.Serialization.DataMemberAttribute()]
        public RotatingMap.ImageryService.ResponseStatusCode StatusCode {
            get {
                return this.StatusCodeField;
            }
            set {
                if ((this.StatusCodeField.Equals(value) != true)) {
                    this.StatusCodeField = value;
                    this.RaisePropertyChanged("StatusCode");
                }
            }
        }
        
        [System.Runtime.Serialization.DataMemberAttribute()]
        public string TraceId {
            get {
                return this.TraceIdField;
            }
            set {
                if ((object.ReferenceEquals(this.TraceIdField, value) != true)) {
                    this.TraceIdField = value;
                    this.RaisePropertyChanged("TraceId");
                }
            }
        }
        
        public event System.ComponentModel.PropertyChangedEventHandler PropertyChanged;
        
        protected void RaisePropertyChanged(string propertyName) {
            System.ComponentModel.PropertyChangedEventHandler propertyChanged = this.PropertyChanged;
            if ((propertyChanged != null)) {
                propertyChanged(this, new System.ComponentModel.PropertyChangedEventArgs(propertyName));
            }
        }
    }
    
    [System.Diagnostics.DebuggerStepThroughAttribute()]
    [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Runtime.Serialization", "4.0.0.0")]
    [System.Runtime.Serialization.DataContractAttribute(Name="MapUriResponse", Namespace="http://dev.virtualearth.net/webservices/v1/imagery")]
    public partial class MapUriResponse : RotatingMap.ImageryService.ResponseBase {
        
        private string UriField;
        
        [System.Runtime.Serialization.DataMemberAttribute()]
        public string Uri {
            get {
                return this.UriField;
            }
            set {
                if ((object.ReferenceEquals(this.UriField, value) != true)) {
                    this.UriField = value;
                    this.RaisePropertyChanged("Uri");
                }
            }
        }
    }
    
    [System.Diagnostics.DebuggerStepThroughAttribute()]
    [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Runtime.Serialization", "4.0.0.0")]
    [System.Runtime.Serialization.DataContractAttribute(Name="ImageryMetadataResponse", Namespace="http://dev.virtualearth.net/webservices/v1/imagery")]
    public partial class ImageryMetadataResponse : RotatingMap.ImageryService.ResponseBase {
        
        private System.Collections.ObjectModel.ObservableCollection<RotatingMap.ImageryService.ImageryMetadataResult> ResultsField;
        
        [System.Runtime.Serialization.DataMemberAttribute()]
        public System.Collections.ObjectModel.ObservableCollection<RotatingMap.ImageryService.ImageryMetadataResult> Results {
            get {
                return this.ResultsField;
            }
            set {
                if ((object.ReferenceEquals(this.ResultsField, value) != true)) {
                    this.ResultsField = value;
                    this.RaisePropertyChanged("Results");
                }
            }
        }
    }
    
    [System.Diagnostics.DebuggerStepThroughAttribute()]
    [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Runtime.Serialization", "4.0.0.0")]
    [System.Runtime.Serialization.DataContractAttribute(Name="ImageryMetadataResult", Namespace="http://dev.virtualearth.net/webservices/v1/imagery")]
    [System.Runtime.Serialization.KnownTypeAttribute(typeof(RotatingMap.ImageryService.ImageryMetadataBirdseyeResult))]
    public partial class ImageryMetadataResult : object, System.ComponentModel.INotifyPropertyChanged {
        
        private RotatingMap.ImageryService.SizeOfint ImageSizeField;
        
        private string ImageUriField;
        
        private System.Collections.ObjectModel.ObservableCollection<string> ImageUriSubdomainsField;
        
        private System.Collections.ObjectModel.ObservableCollection<RotatingMap.ImageryService.ImageryProvider> ImageryProvidersField;
        
        private RotatingMap.ImageryService.RangeOfdateTime VintageField;
        
        private RotatingMap.ImageryService.RangeOfint ZoomRangeField;
        
        [System.Runtime.Serialization.DataMemberAttribute()]
        public RotatingMap.ImageryService.SizeOfint ImageSize {
            get {
                return this.ImageSizeField;
            }
            set {
                if ((object.ReferenceEquals(this.ImageSizeField, value) != true)) {
                    this.ImageSizeField = value;
                    this.RaisePropertyChanged("ImageSize");
                }
            }
        }
        
        [System.Runtime.Serialization.DataMemberAttribute()]
        public string ImageUri {
            get {
                return this.ImageUriField;
            }
            set {
                if ((object.ReferenceEquals(this.ImageUriField, value) != true)) {
                    this.ImageUriField = value;
                    this.RaisePropertyChanged("ImageUri");
                }
            }
        }
        
        [System.Runtime.Serialization.DataMemberAttribute()]
        public System.Collections.ObjectModel.ObservableCollection<string> ImageUriSubdomains {
            get {
                return this.ImageUriSubdomainsField;
            }
            set {
                if ((object.ReferenceEquals(this.ImageUriSubdomainsField, value) != true)) {
                    this.ImageUriSubdomainsField = value;
                    this.RaisePropertyChanged("ImageUriSubdomains");
                }
            }
        }
        
        [System.Runtime.Serialization.DataMemberAttribute()]
        public System.Collections.ObjectModel.ObservableCollection<RotatingMap.ImageryService.ImageryProvider> ImageryProviders {
            get {
                return this.ImageryProvidersField;
            }
            set {
                if ((object.ReferenceEquals(this.ImageryProvidersField, value) != true)) {
                    this.ImageryProvidersField = value;
                    this.RaisePropertyChanged("ImageryProviders");
                }
            }
        }
        
        [System.Runtime.Serialization.DataMemberAttribute()]
        public RotatingMap.ImageryService.RangeOfdateTime Vintage {
            get {
                return this.VintageField;
            }
            set {
                if ((object.ReferenceEquals(this.VintageField, value) != true)) {
                    this.VintageField = value;
                    this.RaisePropertyChanged("Vintage");
                }
            }
        }
        
        [System.Runtime.Serialization.DataMemberAttribute()]
        public RotatingMap.ImageryService.RangeOfint ZoomRange {
            get {
                return this.ZoomRangeField;
            }
            set {
                if ((object.ReferenceEquals(this.ZoomRangeField, value) != true)) {
                    this.ZoomRangeField = value;
                    this.RaisePropertyChanged("ZoomRange");
                }
            }
        }
        
        public event System.ComponentModel.PropertyChangedEventHandler PropertyChanged;
        
        protected void RaisePropertyChanged(string propertyName) {
            System.ComponentModel.PropertyChangedEventHandler propertyChanged = this.PropertyChanged;
            if ((propertyChanged != null)) {
                propertyChanged(this, new System.ComponentModel.PropertyChangedEventArgs(propertyName));
            }
        }
    }
    
    [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Runtime.Serialization", "4.0.0.0")]
    [System.Runtime.Serialization.DataContractAttribute(Name="AuthenticationResultCode", Namespace="http://dev.virtualearth.net/webservices/v1/common")]
    public enum AuthenticationResultCode : int {
        
        [System.Runtime.Serialization.EnumMemberAttribute()]
        None = 0,
        
        [System.Runtime.Serialization.EnumMemberAttribute()]
        NoCredentials = 1,
        
        [System.Runtime.Serialization.EnumMemberAttribute()]
        ValidCredentials = 2,
        
        [System.Runtime.Serialization.EnumMemberAttribute()]
        InvalidCredentials = 3,
        
        [System.Runtime.Serialization.EnumMemberAttribute()]
        CredentialsExpired = 4,
        
        [System.Runtime.Serialization.EnumMemberAttribute()]
        NotAuthorized = 7,
    }
    
    [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Runtime.Serialization", "4.0.0.0")]
    [System.Runtime.Serialization.DataContractAttribute(Name="ResponseStatusCode", Namespace="http://dev.virtualearth.net/webservices/v1/common")]
    public enum ResponseStatusCode : int {
        
        [System.Runtime.Serialization.EnumMemberAttribute()]
        Success = 0,
        
        [System.Runtime.Serialization.EnumMemberAttribute()]
        BadRequest = 1,
        
        [System.Runtime.Serialization.EnumMemberAttribute()]
        ServerError = 2,
    }
    
    [System.Diagnostics.DebuggerStepThroughAttribute()]
    [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Runtime.Serialization", "4.0.0.0")]
    [System.Runtime.Serialization.DataContractAttribute(Name="RangeOfdateTime", Namespace="http://dev.virtualearth.net/webservices/v1/common")]
    public partial class RangeOfdateTime : object, System.ComponentModel.INotifyPropertyChanged {
        
        private System.DateTime FromField;
        
        private System.DateTime ToField;
        
        [System.Runtime.Serialization.DataMemberAttribute()]
        public System.DateTime From {
            get {
                return this.FromField;
            }
            set {
                if ((this.FromField.Equals(value) != true)) {
                    this.FromField = value;
                    this.RaisePropertyChanged("From");
                }
            }
        }
        
        [System.Runtime.Serialization.DataMemberAttribute()]
        public System.DateTime To {
            get {
                return this.ToField;
            }
            set {
                if ((this.ToField.Equals(value) != true)) {
                    this.ToField = value;
                    this.RaisePropertyChanged("To");
                }
            }
        }
        
        public event System.ComponentModel.PropertyChangedEventHandler PropertyChanged;
        
        protected void RaisePropertyChanged(string propertyName) {
            System.ComponentModel.PropertyChangedEventHandler propertyChanged = this.PropertyChanged;
            if ((propertyChanged != null)) {
                propertyChanged(this, new System.ComponentModel.PropertyChangedEventArgs(propertyName));
            }
        }
    }
    
    [System.Diagnostics.DebuggerStepThroughAttribute()]
    [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Runtime.Serialization", "4.0.0.0")]
    [System.Runtime.Serialization.DataContractAttribute(Name="RangeOfint", Namespace="http://dev.virtualearth.net/webservices/v1/common")]
    public partial class RangeOfint : object, System.ComponentModel.INotifyPropertyChanged {
        
        private int FromField;
        
        private int ToField;
        
        [System.Runtime.Serialization.DataMemberAttribute()]
        public int From {
            get {
                return this.FromField;
            }
            set {
                if ((this.FromField.Equals(value) != true)) {
                    this.FromField = value;
                    this.RaisePropertyChanged("From");
                }
            }
        }
        
        [System.Runtime.Serialization.DataMemberAttribute()]
        public int To {
            get {
                return this.ToField;
            }
            set {
                if ((this.ToField.Equals(value) != true)) {
                    this.ToField = value;
                    this.RaisePropertyChanged("To");
                }
            }
        }
        
        public event System.ComponentModel.PropertyChangedEventHandler PropertyChanged;
        
        protected void RaisePropertyChanged(string propertyName) {
            System.ComponentModel.PropertyChangedEventHandler propertyChanged = this.PropertyChanged;
            if ((propertyChanged != null)) {
                propertyChanged(this, new System.ComponentModel.PropertyChangedEventArgs(propertyName));
            }
        }
    }
    
    [System.Diagnostics.DebuggerStepThroughAttribute()]
    [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Runtime.Serialization", "4.0.0.0")]
    [System.Runtime.Serialization.DataContractAttribute(Name="ImageryMetadataBirdseyeResult", Namespace="http://dev.virtualearth.net/webservices/v1/imagery")]
    public partial class ImageryMetadataBirdseyeResult : RotatingMap.ImageryService.ImageryMetadataResult {
        
        private RotatingMap.ImageryService.Heading HeadingField;
        
        private int TilesXField;
        
        private int TilesYField;
        
        [System.Runtime.Serialization.DataMemberAttribute()]
        public RotatingMap.ImageryService.Heading Heading {
            get {
                return this.HeadingField;
            }
            set {
                if ((object.ReferenceEquals(this.HeadingField, value) != true)) {
                    this.HeadingField = value;
                    this.RaisePropertyChanged("Heading");
                }
            }
        }
        
        [System.Runtime.Serialization.DataMemberAttribute()]
        public int TilesX {
            get {
                return this.TilesXField;
            }
            set {
                if ((this.TilesXField.Equals(value) != true)) {
                    this.TilesXField = value;
                    this.RaisePropertyChanged("TilesX");
                }
            }
        }
        
        [System.Runtime.Serialization.DataMemberAttribute()]
        public int TilesY {
            get {
                return this.TilesYField;
            }
            set {
                if ((this.TilesYField.Equals(value) != true)) {
                    this.TilesYField = value;
                    this.RaisePropertyChanged("TilesY");
                }
            }
        }
    }
    
    [System.Diagnostics.DebuggerStepThroughAttribute()]
    [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Runtime.Serialization", "4.0.0.0")]
    [System.Runtime.Serialization.DataContractAttribute(Name="ImageryProvider", Namespace="http://dev.virtualearth.net/webservices/v1/imagery")]
    public partial class ImageryProvider : object, System.ComponentModel.INotifyPropertyChanged {
        
        private string AttributionField;
        
        private System.Collections.ObjectModel.ObservableCollection<RotatingMap.ImageryService.CoverageArea> CoverageAreasField;
        
        [System.Runtime.Serialization.DataMemberAttribute()]
        public string Attribution {
            get {
                return this.AttributionField;
            }
            set {
                if ((object.ReferenceEquals(this.AttributionField, value) != true)) {
                    this.AttributionField = value;
                    this.RaisePropertyChanged("Attribution");
                }
            }
        }
        
        [System.Runtime.Serialization.DataMemberAttribute()]
        public System.Collections.ObjectModel.ObservableCollection<RotatingMap.ImageryService.CoverageArea> CoverageAreas {
            get {
                return this.CoverageAreasField;
            }
            set {
                if ((object.ReferenceEquals(this.CoverageAreasField, value) != true)) {
                    this.CoverageAreasField = value;
                    this.RaisePropertyChanged("CoverageAreas");
                }
            }
        }
        
        public event System.ComponentModel.PropertyChangedEventHandler PropertyChanged;
        
        protected void RaisePropertyChanged(string propertyName) {
            System.ComponentModel.PropertyChangedEventHandler propertyChanged = this.PropertyChanged;
            if ((propertyChanged != null)) {
                propertyChanged(this, new System.ComponentModel.PropertyChangedEventArgs(propertyName));
            }
        }
    }
    
    [System.Diagnostics.DebuggerStepThroughAttribute()]
    [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Runtime.Serialization", "4.0.0.0")]
    [System.Runtime.Serialization.DataContractAttribute(Name="CoverageArea", Namespace="http://dev.virtualearth.net/webservices/v1/imagery")]
    public partial class CoverageArea : object, System.ComponentModel.INotifyPropertyChanged {
        
        private RotatingMap.ImageryService.Rectangle BoundingRectangleField;
        
        private RotatingMap.ImageryService.RangeOfint ZoomRangeField;
        
        [System.Runtime.Serialization.DataMemberAttribute()]
        public RotatingMap.ImageryService.Rectangle BoundingRectangle {
            get {
                return this.BoundingRectangleField;
            }
            set {
                if ((object.ReferenceEquals(this.BoundingRectangleField, value) != true)) {
                    this.BoundingRectangleField = value;
                    this.RaisePropertyChanged("BoundingRectangle");
                }
            }
        }
        
        [System.Runtime.Serialization.DataMemberAttribute()]
        public RotatingMap.ImageryService.RangeOfint ZoomRange {
            get {
                return this.ZoomRangeField;
            }
            set {
                if ((object.ReferenceEquals(this.ZoomRangeField, value) != true)) {
                    this.ZoomRangeField = value;
                    this.RaisePropertyChanged("ZoomRange");
                }
            }
        }
        
        public event System.ComponentModel.PropertyChangedEventHandler PropertyChanged;
        
        protected void RaisePropertyChanged(string propertyName) {
            System.ComponentModel.PropertyChangedEventHandler propertyChanged = this.PropertyChanged;
            if ((propertyChanged != null)) {
                propertyChanged(this, new System.ComponentModel.PropertyChangedEventArgs(propertyName));
            }
        }
    }
    
    [System.CodeDom.Compiler.GeneratedCodeAttribute("System.ServiceModel", "4.0.0.0")]
    [System.ServiceModel.ServiceContractAttribute(Namespace="http://dev.virtualearth.net/webservices/v1/imagery/contracts", ConfigurationName="ImageryService.IImageryService")]
    public interface IImageryService {
        
        [System.ServiceModel.OperationContractAttribute(Action="http://dev.virtualearth.net/webservices/v1/imagery/contracts/IImageryService/GetI" +
            "mageryMetadata", ReplyAction="http://dev.virtualearth.net/webservices/v1/imagery/contracts/IImageryService/GetI" +
            "mageryMetadataResponse")]
        [System.ServiceModel.FaultContractAttribute(typeof(RotatingMap.ImageryService.ResponseSummary), Action="http://dev.virtualearth.net/webservices/v1/imagery/contracts/IImageryService/GetI" +
            "mageryMetadataResponseSummaryFault", Name="ResponseSummary", Namespace="http://dev.virtualearth.net/webservices/v1/common")]
        System.Threading.Tasks.Task<RotatingMap.ImageryService.ImageryMetadataResponse> GetImageryMetadataAsync(RotatingMap.ImageryService.ImageryMetadataRequest request);
        
        [System.ServiceModel.OperationContractAttribute(Action="http://dev.virtualearth.net/webservices/v1/imagery/contracts/IImageryService/GetM" +
            "apUri", ReplyAction="http://dev.virtualearth.net/webservices/v1/imagery/contracts/IImageryService/GetM" +
            "apUriResponse")]
        [System.ServiceModel.FaultContractAttribute(typeof(RotatingMap.ImageryService.ResponseSummary), Action="http://dev.virtualearth.net/webservices/v1/imagery/contracts/IImageryService/GetM" +
            "apUriResponseSummaryFault", Name="ResponseSummary", Namespace="http://dev.virtualearth.net/webservices/v1/common")]
        System.Threading.Tasks.Task<RotatingMap.ImageryService.MapUriResponse> GetMapUriAsync(RotatingMap.ImageryService.MapUriRequest request);
    }
    
    [System.CodeDom.Compiler.GeneratedCodeAttribute("System.ServiceModel", "4.0.0.0")]
    public interface IImageryServiceChannel : RotatingMap.ImageryService.IImageryService, System.ServiceModel.IClientChannel {
    }
    
    [System.Diagnostics.DebuggerStepThroughAttribute()]
    [System.CodeDom.Compiler.GeneratedCodeAttribute("System.ServiceModel", "4.0.0.0")]
    public partial class ImageryServiceClient : System.ServiceModel.ClientBase<RotatingMap.ImageryService.IImageryService>, RotatingMap.ImageryService.IImageryService {
        
        /// <summary>
        /// Implement this partial method to configure the service endpoint.
        /// </summary>
        /// <param name="serviceEndpoint">The endpoint to configure</param>
        /// <param name="clientCredentials">The client credentials</param>
        static partial void ConfigureEndpoint(System.ServiceModel.Description.ServiceEndpoint serviceEndpoint, System.ServiceModel.Description.ClientCredentials clientCredentials);
        
        public ImageryServiceClient(EndpointConfiguration endpointConfiguration) : 
                base(ImageryServiceClient.GetBindingForEndpoint(endpointConfiguration), ImageryServiceClient.GetEndpointAddress(endpointConfiguration)) {
            this.Endpoint.Name = endpointConfiguration.ToString();
            ConfigureEndpoint(this.Endpoint, this.ClientCredentials);
        }
        
        public ImageryServiceClient(EndpointConfiguration endpointConfiguration, string remoteAddress) : 
                base(ImageryServiceClient.GetBindingForEndpoint(endpointConfiguration), new System.ServiceModel.EndpointAddress(remoteAddress)) {
            this.Endpoint.Name = endpointConfiguration.ToString();
            ConfigureEndpoint(this.Endpoint, this.ClientCredentials);
        }
        
        public ImageryServiceClient(EndpointConfiguration endpointConfiguration, System.ServiceModel.EndpointAddress remoteAddress) : 
                base(ImageryServiceClient.GetBindingForEndpoint(endpointConfiguration), remoteAddress) {
            this.Endpoint.Name = endpointConfiguration.ToString();
            ConfigureEndpoint(this.Endpoint, this.ClientCredentials);
        }
        
        public ImageryServiceClient(System.ServiceModel.Channels.Binding binding, System.ServiceModel.EndpointAddress remoteAddress) : 
                base(binding, remoteAddress) {
        }
        
        public System.Threading.Tasks.Task<RotatingMap.ImageryService.ImageryMetadataResponse> GetImageryMetadataAsync(RotatingMap.ImageryService.ImageryMetadataRequest request) {
            return base.Channel.GetImageryMetadataAsync(request);
        }
        
        public System.Threading.Tasks.Task<RotatingMap.ImageryService.MapUriResponse> GetMapUriAsync(RotatingMap.ImageryService.MapUriRequest request) {
            return base.Channel.GetMapUriAsync(request);
        }
        
        public virtual System.Threading.Tasks.Task OpenAsync() {
            return System.Threading.Tasks.Task.Factory.FromAsync(((System.ServiceModel.ICommunicationObject)(this)).BeginOpen(null, null), new System.Action<System.IAsyncResult>(((System.ServiceModel.ICommunicationObject)(this)).EndOpen));
        }
        
        public virtual System.Threading.Tasks.Task CloseAsync() {
            return System.Threading.Tasks.Task.Factory.FromAsync(((System.ServiceModel.ICommunicationObject)(this)).BeginClose(null, null), new System.Action<System.IAsyncResult>(((System.ServiceModel.ICommunicationObject)(this)).EndClose));
        }
        
        private static System.ServiceModel.Channels.Binding GetBindingForEndpoint(EndpointConfiguration endpointConfiguration) {
            if ((endpointConfiguration == EndpointConfiguration.BasicHttpBinding_IImageryService)) {
                System.ServiceModel.BasicHttpBinding result = new System.ServiceModel.BasicHttpBinding();
                result.MaxBufferSize = int.MaxValue;
                result.ReaderQuotas = System.Xml.XmlDictionaryReaderQuotas.Max;
                result.MaxReceivedMessageSize = int.MaxValue;
                result.AllowCookies = true;
                return result;
            }
            if ((endpointConfiguration == EndpointConfiguration.CustomBinding_IImageryService)) {
                System.ServiceModel.Channels.CustomBinding result = new System.ServiceModel.Channels.CustomBinding();
                result.Elements.Add(new System.ServiceModel.Channels.BinaryMessageEncodingBindingElement());
                System.ServiceModel.Channels.HttpTransportBindingElement httpBindingElement = new System.ServiceModel.Channels.HttpTransportBindingElement();
                httpBindingElement.AllowCookies = true;
                httpBindingElement.MaxBufferSize = int.MaxValue;
                httpBindingElement.MaxReceivedMessageSize = int.MaxValue;
                result.Elements.Add(httpBindingElement);
                return result;
            }
            throw new System.InvalidOperationException(string.Format("Could not find endpoint with name \'{0}\'.", endpointConfiguration));
        }
        
        private static System.ServiceModel.EndpointAddress GetEndpointAddress(EndpointConfiguration endpointConfiguration) {
            if ((endpointConfiguration == EndpointConfiguration.BasicHttpBinding_IImageryService)) {
                return new System.ServiceModel.EndpointAddress("http://dev.virtualearth.net/webservices/v1/imageryservice/imageryservice.svc");
            }
            if ((endpointConfiguration == EndpointConfiguration.CustomBinding_IImageryService)) {
                return new System.ServiceModel.EndpointAddress("http://dev.virtualearth.net/webservices/v1/imageryservice/imageryservice.svc/bina" +
                        "ryHttp");
            }
            throw new System.InvalidOperationException(string.Format("Could not find endpoint with name \'{0}\'.", endpointConfiguration));
        }
        
        public enum EndpointConfiguration {
            
            BasicHttpBinding_IImageryService,
            
            CustomBinding_IImageryService,
        }
    }
}
