//------------------------------------------------------------------------------
// <auto-generated>
//     This code was generated by a tool.
//     Runtime Version:4.0.30319.225
//
//     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.Silverlight.Phone.ServiceReference, version 3.7.0.0
// 
namespace GPSapp.terraService2 {
    using System.Runtime.Serialization;
    
    
    [System.Diagnostics.DebuggerStepThroughAttribute()]
    [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Runtime.Serialization", "4.0.0.0")]
    [System.Runtime.Serialization.DataContractAttribute(Name="LonLatPt", Namespace="http://msrmaps.com/")]
    public partial class LonLatPt : object, System.ComponentModel.INotifyPropertyChanged {
        
        private double LonField;
        
        private double LatField;
        
        [System.Runtime.Serialization.DataMemberAttribute(IsRequired=true)]
        public double Lon {
            get {
                return this.LonField;
            }
            set {
                if ((this.LonField.Equals(value) != true)) {
                    this.LonField = value;
                    this.RaisePropertyChanged("Lon");
                }
            }
        }
        
        [System.Runtime.Serialization.DataMemberAttribute(IsRequired=true, Order=1)]
        public double Lat {
            get {
                return this.LatField;
            }
            set {
                if ((this.LatField.Equals(value) != true)) {
                    this.LatField = value;
                    this.RaisePropertyChanged("Lat");
                }
            }
        }
        
        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="UtmPt", Namespace="http://msrmaps.com/")]
    public partial class UtmPt : object, System.ComponentModel.INotifyPropertyChanged {
        
        private int ZoneField;
        
        private double XField;
        
        private double YField;
        
        [System.Runtime.Serialization.DataMemberAttribute(IsRequired=true)]
        public int Zone {
            get {
                return this.ZoneField;
            }
            set {
                if ((this.ZoneField.Equals(value) != true)) {
                    this.ZoneField = value;
                    this.RaisePropertyChanged("Zone");
                }
            }
        }
        
        [System.Runtime.Serialization.DataMemberAttribute(IsRequired=true, Order=1)]
        public double X {
            get {
                return this.XField;
            }
            set {
                if ((this.XField.Equals(value) != true)) {
                    this.XField = value;
                    this.RaisePropertyChanged("X");
                }
            }
        }
        
        [System.Runtime.Serialization.DataMemberAttribute(IsRequired=true, Order=2)]
        public double Y {
            get {
                return this.YField;
            }
            set {
                if ((this.YField.Equals(value) != true)) {
                    this.YField = value;
                    this.RaisePropertyChanged("Y");
                }
            }
        }
        
        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="Place", Namespace="http://msrmaps.com/")]
    public partial class Place : object, System.ComponentModel.INotifyPropertyChanged {
        
        private string CityField;
        
        private string StateField;
        
        private string CountryField;
        
        [System.Runtime.Serialization.DataMemberAttribute(EmitDefaultValue=false)]
        public string City {
            get {
                return this.CityField;
            }
            set {
                if ((object.ReferenceEquals(this.CityField, value) != true)) {
                    this.CityField = value;
                    this.RaisePropertyChanged("City");
                }
            }
        }
        
        [System.Runtime.Serialization.DataMemberAttribute(EmitDefaultValue=false)]
        public string State {
            get {
                return this.StateField;
            }
            set {
                if ((object.ReferenceEquals(this.StateField, value) != true)) {
                    this.StateField = value;
                    this.RaisePropertyChanged("State");
                }
            }
        }
        
        [System.Runtime.Serialization.DataMemberAttribute(EmitDefaultValue=false, Order=2)]
        public string Country {
            get {
                return this.CountryField;
            }
            set {
                if ((object.ReferenceEquals(this.CountryField, value) != true)) {
                    this.CountryField = value;
                    this.RaisePropertyChanged("Country");
                }
            }
        }
        
        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="PlaceType", Namespace="http://msrmaps.com/")]
    public enum PlaceType : int {
        
        [System.Runtime.Serialization.EnumMemberAttribute()]
        UnknownPlaceType = 0,
        
        [System.Runtime.Serialization.EnumMemberAttribute()]
        AirRailStation = 1,
        
        [System.Runtime.Serialization.EnumMemberAttribute()]
        BayGulf = 2,
        
        [System.Runtime.Serialization.EnumMemberAttribute()]
        CapePeninsula = 3,
        
        [System.Runtime.Serialization.EnumMemberAttribute()]
        CityTown = 4,
        
        [System.Runtime.Serialization.EnumMemberAttribute()]
        HillMountain = 5,
        
        [System.Runtime.Serialization.EnumMemberAttribute()]
        Island = 6,
        
        [System.Runtime.Serialization.EnumMemberAttribute()]
        Lake = 7,
        
        [System.Runtime.Serialization.EnumMemberAttribute()]
        OtherLandFeature = 8,
        
        [System.Runtime.Serialization.EnumMemberAttribute()]
        OtherWaterFeature = 9,
        
        [System.Runtime.Serialization.EnumMemberAttribute()]
        ParkBeach = 10,
        
        [System.Runtime.Serialization.EnumMemberAttribute()]
        PointOfInterest = 11,
        
        [System.Runtime.Serialization.EnumMemberAttribute()]
        River = 12,
    }
    
    [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Runtime.Serialization", "4.0.0.0")]
    [System.Runtime.Serialization.DataContractAttribute(Name="Scale", Namespace="http://msrmaps.com/")]
    public enum Scale : int {
        
        [System.Runtime.Serialization.EnumMemberAttribute()]
        Scale1mm = 0,
        
        [System.Runtime.Serialization.EnumMemberAttribute()]
        Scale2mm = 1,
        
        [System.Runtime.Serialization.EnumMemberAttribute()]
        Scale4mm = 2,
        
        [System.Runtime.Serialization.EnumMemberAttribute()]
        Scale8mm = 3,
        
        [System.Runtime.Serialization.EnumMemberAttribute()]
        Scale16mm = 4,
        
        [System.Runtime.Serialization.EnumMemberAttribute()]
        Scale32mm = 5,
        
        [System.Runtime.Serialization.EnumMemberAttribute()]
        Scale63mm = 6,
        
        [System.Runtime.Serialization.EnumMemberAttribute()]
        Scale125mm = 7,
        
        [System.Runtime.Serialization.EnumMemberAttribute()]
        Scale250mm = 8,
        
        [System.Runtime.Serialization.EnumMemberAttribute()]
        Scale500mm = 9,
        
        [System.Runtime.Serialization.EnumMemberAttribute()]
        Scale1m = 10,
        
        [System.Runtime.Serialization.EnumMemberAttribute()]
        Scale2m = 11,
        
        [System.Runtime.Serialization.EnumMemberAttribute()]
        Scale4m = 12,
        
        [System.Runtime.Serialization.EnumMemberAttribute()]
        Scale8m = 13,
        
        [System.Runtime.Serialization.EnumMemberAttribute()]
        Scale16m = 14,
        
        [System.Runtime.Serialization.EnumMemberAttribute()]
        Scale32m = 15,
        
        [System.Runtime.Serialization.EnumMemberAttribute()]
        Scale64m = 16,
        
        [System.Runtime.Serialization.EnumMemberAttribute()]
        Scale128m = 17,
        
        [System.Runtime.Serialization.EnumMemberAttribute()]
        Scale256m = 18,
        
        [System.Runtime.Serialization.EnumMemberAttribute()]
        Scale512m = 19,
        
        [System.Runtime.Serialization.EnumMemberAttribute()]
        Scale1km = 20,
        
        [System.Runtime.Serialization.EnumMemberAttribute()]
        Scale2km = 21,
        
        [System.Runtime.Serialization.EnumMemberAttribute()]
        Scale4km = 22,
        
        [System.Runtime.Serialization.EnumMemberAttribute()]
        Scale8km = 23,
        
        [System.Runtime.Serialization.EnumMemberAttribute()]
        Scale16km = 24,
        
        [System.Runtime.Serialization.EnumMemberAttribute()]
        Scale32km = 25,
        
        [System.Runtime.Serialization.EnumMemberAttribute()]
        Scale64km = 26,
        
        [System.Runtime.Serialization.EnumMemberAttribute()]
        Scale128km = 27,
        
        [System.Runtime.Serialization.EnumMemberAttribute()]
        Scale256km = 28,
        
        [System.Runtime.Serialization.EnumMemberAttribute()]
        Scale512km = 29,
        
        [System.Runtime.Serialization.EnumMemberAttribute()]
        Scale1024km = 30,
        
        [System.Runtime.Serialization.EnumMemberAttribute()]
        Scale2048km = 31,
    }
    
    [System.Diagnostics.DebuggerStepThroughAttribute()]
    [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Runtime.Serialization", "4.0.0.0")]
    [System.Runtime.Serialization.DataContractAttribute(Name="AreaBoundingBox", Namespace="http://msrmaps.com/")]
    public partial class AreaBoundingBox : object, System.ComponentModel.INotifyPropertyChanged {
        
        private GPSapp.terraService2.AreaCoordinate NorthWestField;
        
        private GPSapp.terraService2.AreaCoordinate NorthEastField;
        
        private GPSapp.terraService2.AreaCoordinate SouthWestField;
        
        private GPSapp.terraService2.AreaCoordinate SouthEastField;
        
        private GPSapp.terraService2.AreaCoordinate CenterField;
        
        private string NearestPlaceField;
        
        private System.Collections.ObjectModel.ObservableCollection<GPSapp.terraService2.OverlappingThemeInfo> OverlappingThemeInfosField;
        
        [System.Runtime.Serialization.DataMemberAttribute(IsRequired=true, EmitDefaultValue=false)]
        public GPSapp.terraService2.AreaCoordinate NorthWest {
            get {
                return this.NorthWestField;
            }
            set {
                if ((object.ReferenceEquals(this.NorthWestField, value) != true)) {
                    this.NorthWestField = value;
                    this.RaisePropertyChanged("NorthWest");
                }
            }
        }
        
        [System.Runtime.Serialization.DataMemberAttribute(IsRequired=true, EmitDefaultValue=false, Order=1)]
        public GPSapp.terraService2.AreaCoordinate NorthEast {
            get {
                return this.NorthEastField;
            }
            set {
                if ((object.ReferenceEquals(this.NorthEastField, value) != true)) {
                    this.NorthEastField = value;
                    this.RaisePropertyChanged("NorthEast");
                }
            }
        }
        
        [System.Runtime.Serialization.DataMemberAttribute(IsRequired=true, EmitDefaultValue=false, Order=2)]
        public GPSapp.terraService2.AreaCoordinate SouthWest {
            get {
                return this.SouthWestField;
            }
            set {
                if ((object.ReferenceEquals(this.SouthWestField, value) != true)) {
                    this.SouthWestField = value;
                    this.RaisePropertyChanged("SouthWest");
                }
            }
        }
        
        [System.Runtime.Serialization.DataMemberAttribute(IsRequired=true, EmitDefaultValue=false, Order=3)]
        public GPSapp.terraService2.AreaCoordinate SouthEast {
            get {
                return this.SouthEastField;
            }
            set {
                if ((object.ReferenceEquals(this.SouthEastField, value) != true)) {
                    this.SouthEastField = value;
                    this.RaisePropertyChanged("SouthEast");
                }
            }
        }
        
        [System.Runtime.Serialization.DataMemberAttribute(IsRequired=true, EmitDefaultValue=false, Order=4)]
        public GPSapp.terraService2.AreaCoordinate Center {
            get {
                return this.CenterField;
            }
            set {
                if ((object.ReferenceEquals(this.CenterField, value) != true)) {
                    this.CenterField = value;
                    this.RaisePropertyChanged("Center");
                }
            }
        }
        
        [System.Runtime.Serialization.DataMemberAttribute(EmitDefaultValue=false, Order=5)]
        public string NearestPlace {
            get {
                return this.NearestPlaceField;
            }
            set {
                if ((object.ReferenceEquals(this.NearestPlaceField, value) != true)) {
                    this.NearestPlaceField = value;
                    this.RaisePropertyChanged("NearestPlace");
                }
            }
        }
        
        [System.Runtime.Serialization.DataMemberAttribute(EmitDefaultValue=false, Order=6)]
        public System.Collections.ObjectModel.ObservableCollection<GPSapp.terraService2.OverlappingThemeInfo> OverlappingThemeInfos {
            get {
                return this.OverlappingThemeInfosField;
            }
            set {
                if ((object.ReferenceEquals(this.OverlappingThemeInfosField, value) != true)) {
                    this.OverlappingThemeInfosField = value;
                    this.RaisePropertyChanged("OverlappingThemeInfos");
                }
            }
        }
        
        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="AreaCoordinate", Namespace="http://msrmaps.com/")]
    public partial class AreaCoordinate : object, System.ComponentModel.INotifyPropertyChanged {
        
        private GPSapp.terraService2.TileMeta TileMetaField;
        
        private GPSapp.terraService2.LonLatPtOffset OffsetField;
        
        [System.Runtime.Serialization.DataMemberAttribute(IsRequired=true, EmitDefaultValue=false)]
        public GPSapp.terraService2.TileMeta TileMeta {
            get {
                return this.TileMetaField;
            }
            set {
                if ((object.ReferenceEquals(this.TileMetaField, value) != true)) {
                    this.TileMetaField = value;
                    this.RaisePropertyChanged("TileMeta");
                }
            }
        }
        
        [System.Runtime.Serialization.DataMemberAttribute(IsRequired=true, EmitDefaultValue=false, Order=1)]
        public GPSapp.terraService2.LonLatPtOffset Offset {
            get {
                return this.OffsetField;
            }
            set {
                if ((object.ReferenceEquals(this.OffsetField, value) != true)) {
                    this.OffsetField = value;
                    this.RaisePropertyChanged("Offset");
                }
            }
        }
        
        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="OverlappingThemeInfo", Namespace="http://msrmaps.com/")]
    public partial class OverlappingThemeInfo : object, System.ComponentModel.INotifyPropertyChanged {
        
        private bool LocalThemeField;
        
        private int ThemeField;
        
        private GPSapp.terraService2.LonLatPt PointField;
        
        private string ThemeNameField;
        
        private System.DateTime CaptureField;
        
        private GPSapp.terraService2.ProjectionType ProjectionIdField;
        
        private GPSapp.terraService2.Scale LoScaleField;
        
        private GPSapp.terraService2.Scale HiScaleField;
        
        private string UrlField;
        
        [System.Runtime.Serialization.DataMemberAttribute(IsRequired=true)]
        public bool LocalTheme {
            get {
                return this.LocalThemeField;
            }
            set {
                if ((this.LocalThemeField.Equals(value) != true)) {
                    this.LocalThemeField = value;
                    this.RaisePropertyChanged("LocalTheme");
                }
            }
        }
        
        [System.Runtime.Serialization.DataMemberAttribute(IsRequired=true)]
        public int Theme {
            get {
                return this.ThemeField;
            }
            set {
                if ((this.ThemeField.Equals(value) != true)) {
                    this.ThemeField = value;
                    this.RaisePropertyChanged("Theme");
                }
            }
        }
        
        [System.Runtime.Serialization.DataMemberAttribute(IsRequired=true, EmitDefaultValue=false, Order=2)]
        public GPSapp.terraService2.LonLatPt Point {
            get {
                return this.PointField;
            }
            set {
                if ((object.ReferenceEquals(this.PointField, value) != true)) {
                    this.PointField = value;
                    this.RaisePropertyChanged("Point");
                }
            }
        }
        
        [System.Runtime.Serialization.DataMemberAttribute(EmitDefaultValue=false, Order=3)]
        public string ThemeName {
            get {
                return this.ThemeNameField;
            }
            set {
                if ((object.ReferenceEquals(this.ThemeNameField, value) != true)) {
                    this.ThemeNameField = value;
                    this.RaisePropertyChanged("ThemeName");
                }
            }
        }
        
        [System.Runtime.Serialization.DataMemberAttribute(IsRequired=true, Order=4)]
        public System.DateTime Capture {
            get {
                return this.CaptureField;
            }
            set {
                if ((this.CaptureField.Equals(value) != true)) {
                    this.CaptureField = value;
                    this.RaisePropertyChanged("Capture");
                }
            }
        }
        
        [System.Runtime.Serialization.DataMemberAttribute(IsRequired=true, Order=5)]
        public GPSapp.terraService2.ProjectionType ProjectionId {
            get {
                return this.ProjectionIdField;
            }
            set {
                if ((this.ProjectionIdField.Equals(value) != true)) {
                    this.ProjectionIdField = value;
                    this.RaisePropertyChanged("ProjectionId");
                }
            }
        }
        
        [System.Runtime.Serialization.DataMemberAttribute(IsRequired=true, Order=6)]
        public GPSapp.terraService2.Scale LoScale {
            get {
                return this.LoScaleField;
            }
            set {
                if ((this.LoScaleField.Equals(value) != true)) {
                    this.LoScaleField = value;
                    this.RaisePropertyChanged("LoScale");
                }
            }
        }
        
        [System.Runtime.Serialization.DataMemberAttribute(IsRequired=true, Order=7)]
        public GPSapp.terraService2.Scale HiScale {
            get {
                return this.HiScaleField;
            }
            set {
                if ((this.HiScaleField.Equals(value) != true)) {
                    this.HiScaleField = value;
                    this.RaisePropertyChanged("HiScale");
                }
            }
        }
        
        [System.Runtime.Serialization.DataMemberAttribute(EmitDefaultValue=false, Order=8)]
        public string Url {
            get {
                return this.UrlField;
            }
            set {
                if ((object.ReferenceEquals(this.UrlField, value) != true)) {
                    this.UrlField = value;
                    this.RaisePropertyChanged("Url");
                }
            }
        }
        
        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="TileMeta", Namespace="http://msrmaps.com/")]
    public partial class TileMeta : object, System.ComponentModel.INotifyPropertyChanged {
        
        private GPSapp.terraService2.TileId IdField;
        
        private bool TileExistsField;
        
        private GPSapp.terraService2.LonLatPt NorthWestField;
        
        private GPSapp.terraService2.LonLatPt NorthEastField;
        
        private GPSapp.terraService2.LonLatPt SouthWestField;
        
        private GPSapp.terraService2.LonLatPt SouthEastField;
        
        private GPSapp.terraService2.LonLatPt CenterField;
        
        private System.DateTime CaptureField;
        
        [System.Runtime.Serialization.DataMemberAttribute(IsRequired=true, EmitDefaultValue=false)]
        public GPSapp.terraService2.TileId Id {
            get {
                return this.IdField;
            }
            set {
                if ((object.ReferenceEquals(this.IdField, value) != true)) {
                    this.IdField = value;
                    this.RaisePropertyChanged("Id");
                }
            }
        }
        
        [System.Runtime.Serialization.DataMemberAttribute(IsRequired=true)]
        public bool TileExists {
            get {
                return this.TileExistsField;
            }
            set {
                if ((this.TileExistsField.Equals(value) != true)) {
                    this.TileExistsField = value;
                    this.RaisePropertyChanged("TileExists");
                }
            }
        }
        
        [System.Runtime.Serialization.DataMemberAttribute(IsRequired=true, EmitDefaultValue=false, Order=2)]
        public GPSapp.terraService2.LonLatPt NorthWest {
            get {
                return this.NorthWestField;
            }
            set {
                if ((object.ReferenceEquals(this.NorthWestField, value) != true)) {
                    this.NorthWestField = value;
                    this.RaisePropertyChanged("NorthWest");
                }
            }
        }
        
        [System.Runtime.Serialization.DataMemberAttribute(IsRequired=true, EmitDefaultValue=false, Order=3)]
        public GPSapp.terraService2.LonLatPt NorthEast {
            get {
                return this.NorthEastField;
            }
            set {
                if ((object.ReferenceEquals(this.NorthEastField, value) != true)) {
                    this.NorthEastField = value;
                    this.RaisePropertyChanged("NorthEast");
                }
            }
        }
        
        [System.Runtime.Serialization.DataMemberAttribute(IsRequired=true, EmitDefaultValue=false, Order=4)]
        public GPSapp.terraService2.LonLatPt SouthWest {
            get {
                return this.SouthWestField;
            }
            set {
                if ((object.ReferenceEquals(this.SouthWestField, value) != true)) {
                    this.SouthWestField = value;
                    this.RaisePropertyChanged("SouthWest");
                }
            }
        }
        
        [System.Runtime.Serialization.DataMemberAttribute(IsRequired=true, EmitDefaultValue=false, Order=5)]
        public GPSapp.terraService2.LonLatPt SouthEast {
            get {
                return this.SouthEastField;
            }
            set {
                if ((object.ReferenceEquals(this.SouthEastField, value) != true)) {
                    this.SouthEastField = value;
                    this.RaisePropertyChanged("SouthEast");
                }
            }
        }
        
        [System.Runtime.Serialization.DataMemberAttribute(IsRequired=true, EmitDefaultValue=false, Order=6)]
        public GPSapp.terraService2.LonLatPt Center {
            get {
                return this.CenterField;
            }
            set {
                if ((object.ReferenceEquals(this.CenterField, value) != true)) {
                    this.CenterField = value;
                    this.RaisePropertyChanged("Center");
                }
            }
        }
        
        [System.Runtime.Serialization.DataMemberAttribute(IsRequired=true, Order=7)]
        public System.DateTime Capture {
            get {
                return this.CaptureField;
            }
            set {
                if ((this.CaptureField.Equals(value) != true)) {
                    this.CaptureField = value;
                    this.RaisePropertyChanged("Capture");
                }
            }
        }
        
        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="LonLatPtOffset", Namespace="http://msrmaps.com/")]
    public partial class LonLatPtOffset : object, System.ComponentModel.INotifyPropertyChanged {
        
        private GPSapp.terraService2.LonLatPt PointField;
        
        private int XOffsetField;
        
        private int YOffsetField;
        
        [System.Runtime.Serialization.DataMemberAttribute(IsRequired=true, EmitDefaultValue=false)]
        public GPSapp.terraService2.LonLatPt Point {
            get {
                return this.PointField;
            }
            set {
                if ((object.ReferenceEquals(this.PointField, value) != true)) {
                    this.PointField = value;
                    this.RaisePropertyChanged("Point");
                }
            }
        }
        
        [System.Runtime.Serialization.DataMemberAttribute(IsRequired=true)]
        public int XOffset {
            get {
                return this.XOffsetField;
            }
            set {
                if ((this.XOffsetField.Equals(value) != true)) {
                    this.XOffsetField = value;
                    this.RaisePropertyChanged("XOffset");
                }
            }
        }
        
        [System.Runtime.Serialization.DataMemberAttribute(IsRequired=true)]
        public int YOffset {
            get {
                return this.YOffsetField;
            }
            set {
                if ((this.YOffsetField.Equals(value) != true)) {
                    this.YOffsetField = value;
                    this.RaisePropertyChanged("YOffset");
                }
            }
        }
        
        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="TileId", Namespace="http://msrmaps.com/")]
    public partial class TileId : object, System.ComponentModel.INotifyPropertyChanged {
        
        private int ThemeField;
        
        private GPSapp.terraService2.Scale ScaleField;
        
        private int SceneField;
        
        private int XField;
        
        private int YField;
        
        [System.Runtime.Serialization.DataMemberAttribute(IsRequired=true)]
        public int Theme {
            get {
                return this.ThemeField;
            }
            set {
                if ((this.ThemeField.Equals(value) != true)) {
                    this.ThemeField = value;
                    this.RaisePropertyChanged("Theme");
                }
            }
        }
        
        [System.Runtime.Serialization.DataMemberAttribute(IsRequired=true, Order=1)]
        public GPSapp.terraService2.Scale Scale {
            get {
                return this.ScaleField;
            }
            set {
                if ((this.ScaleField.Equals(value) != true)) {
                    this.ScaleField = value;
                    this.RaisePropertyChanged("Scale");
                }
            }
        }
        
        [System.Runtime.Serialization.DataMemberAttribute(IsRequired=true, Order=2)]
        public int Scene {
            get {
                return this.SceneField;
            }
            set {
                if ((this.SceneField.Equals(value) != true)) {
                    this.SceneField = value;
                    this.RaisePropertyChanged("Scene");
                }
            }
        }
        
        [System.Runtime.Serialization.DataMemberAttribute(IsRequired=true, Order=3)]
        public int X {
            get {
                return this.XField;
            }
            set {
                if ((this.XField.Equals(value) != true)) {
                    this.XField = value;
                    this.RaisePropertyChanged("X");
                }
            }
        }
        
        [System.Runtime.Serialization.DataMemberAttribute(IsRequired=true, Order=4)]
        public int Y {
            get {
                return this.YField;
            }
            set {
                if ((this.YField.Equals(value) != true)) {
                    this.YField = value;
                    this.RaisePropertyChanged("Y");
                }
            }
        }
        
        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="ProjectionType", Namespace="http://msrmaps.com/")]
    public enum ProjectionType : int {
        
        [System.Runtime.Serialization.EnumMemberAttribute()]
        Geographic = 0,
        
        [System.Runtime.Serialization.EnumMemberAttribute()]
        UtmNad27 = 1,
        
        [System.Runtime.Serialization.EnumMemberAttribute()]
        UtmNad83 = 2,
    }
    
    [System.Diagnostics.DebuggerStepThroughAttribute()]
    [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Runtime.Serialization", "4.0.0.0")]
    [System.Runtime.Serialization.DataContractAttribute(Name="ThemeBoundingBox", Namespace="http://msrmaps.com/")]
    public partial class ThemeBoundingBox : object, System.ComponentModel.INotifyPropertyChanged {
        
        private int ThemeField;
        
        private string ThemeNameField;
        
        private int SparsenessField;
        
        private GPSapp.terraService2.Scale LoScaleField;
        
        private GPSapp.terraService2.Scale HiScaleField;
        
        private GPSapp.terraService2.ProjectionType ProjectionIdField;
        
        private string ProjectionNameField;
        
        private double WestLongitudeField;
        
        private double NorthLatitudeField;
        
        private double EastLongitudeField;
        
        private double SouthLatitudeField;
        
        [System.Runtime.Serialization.DataMemberAttribute(IsRequired=true)]
        public int Theme {
            get {
                return this.ThemeField;
            }
            set {
                if ((this.ThemeField.Equals(value) != true)) {
                    this.ThemeField = value;
                    this.RaisePropertyChanged("Theme");
                }
            }
        }
        
        [System.Runtime.Serialization.DataMemberAttribute(EmitDefaultValue=false)]
        public string ThemeName {
            get {
                return this.ThemeNameField;
            }
            set {
                if ((object.ReferenceEquals(this.ThemeNameField, value) != true)) {
                    this.ThemeNameField = value;
                    this.RaisePropertyChanged("ThemeName");
                }
            }
        }
        
        [System.Runtime.Serialization.DataMemberAttribute(IsRequired=true, Order=2)]
        public int Sparseness {
            get {
                return this.SparsenessField;
            }
            set {
                if ((this.SparsenessField.Equals(value) != true)) {
                    this.SparsenessField = value;
                    this.RaisePropertyChanged("Sparseness");
                }
            }
        }
        
        [System.Runtime.Serialization.DataMemberAttribute(IsRequired=true, Order=3)]
        public GPSapp.terraService2.Scale LoScale {
            get {
                return this.LoScaleField;
            }
            set {
                if ((this.LoScaleField.Equals(value) != true)) {
                    this.LoScaleField = value;
                    this.RaisePropertyChanged("LoScale");
                }
            }
        }
        
        [System.Runtime.Serialization.DataMemberAttribute(IsRequired=true, Order=4)]
        public GPSapp.terraService2.Scale HiScale {
            get {
                return this.HiScaleField;
            }
            set {
                if ((this.HiScaleField.Equals(value) != true)) {
                    this.HiScaleField = value;
                    this.RaisePropertyChanged("HiScale");
                }
            }
        }
        
        [System.Runtime.Serialization.DataMemberAttribute(IsRequired=true, Order=5)]
        public GPSapp.terraService2.ProjectionType ProjectionId {
            get {
                return this.ProjectionIdField;
            }
            set {
                if ((this.ProjectionIdField.Equals(value) != true)) {
                    this.ProjectionIdField = value;
                    this.RaisePropertyChanged("ProjectionId");
                }
            }
        }
        
        [System.Runtime.Serialization.DataMemberAttribute(EmitDefaultValue=false, Order=6)]
        public string ProjectionName {
            get {
                return this.ProjectionNameField;
            }
            set {
                if ((object.ReferenceEquals(this.ProjectionNameField, value) != true)) {
                    this.ProjectionNameField = value;
                    this.RaisePropertyChanged("ProjectionName");
                }
            }
        }
        
        [System.Runtime.Serialization.DataMemberAttribute(IsRequired=true, Order=7)]
        public double WestLongitude {
            get {
                return this.WestLongitudeField;
            }
            set {
                if ((this.WestLongitudeField.Equals(value) != true)) {
                    this.WestLongitudeField = value;
                    this.RaisePropertyChanged("WestLongitude");
                }
            }
        }
        
        [System.Runtime.Serialization.DataMemberAttribute(IsRequired=true, Order=8)]
        public double NorthLatitude {
            get {
                return this.NorthLatitudeField;
            }
            set {
                if ((this.NorthLatitudeField.Equals(value) != true)) {
                    this.NorthLatitudeField = value;
                    this.RaisePropertyChanged("NorthLatitude");
                }
            }
        }
        
        [System.Runtime.Serialization.DataMemberAttribute(IsRequired=true, Order=9)]
        public double EastLongitude {
            get {
                return this.EastLongitudeField;
            }
            set {
                if ((this.EastLongitudeField.Equals(value) != true)) {
                    this.EastLongitudeField = value;
                    this.RaisePropertyChanged("EastLongitude");
                }
            }
        }
        
        [System.Runtime.Serialization.DataMemberAttribute(IsRequired=true, Order=10)]
        public double SouthLatitude {
            get {
                return this.SouthLatitudeField;
            }
            set {
                if ((this.SouthLatitudeField.Equals(value) != true)) {
                    this.SouthLatitudeField = value;
                    this.RaisePropertyChanged("SouthLatitude");
                }
            }
        }
        
        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="PlaceFacts", Namespace="http://msrmaps.com/")]
    public partial class PlaceFacts : object, System.ComponentModel.INotifyPropertyChanged {
        
        private GPSapp.terraService2.Place PlaceField;
        
        private GPSapp.terraService2.LonLatPt CenterField;
        
        private int AvailableThemeMaskField;
        
        private GPSapp.terraService2.PlaceType PlaceTypeIdField;
        
        private int PopulationField;
        
        [System.Runtime.Serialization.DataMemberAttribute(IsRequired=true, EmitDefaultValue=false)]
        public GPSapp.terraService2.Place Place {
            get {
                return this.PlaceField;
            }
            set {
                if ((object.ReferenceEquals(this.PlaceField, value) != true)) {
                    this.PlaceField = value;
                    this.RaisePropertyChanged("Place");
                }
            }
        }
        
        [System.Runtime.Serialization.DataMemberAttribute(IsRequired=true, EmitDefaultValue=false, Order=1)]
        public GPSapp.terraService2.LonLatPt Center {
            get {
                return this.CenterField;
            }
            set {
                if ((object.ReferenceEquals(this.CenterField, value) != true)) {
                    this.CenterField = value;
                    this.RaisePropertyChanged("Center");
                }
            }
        }
        
        [System.Runtime.Serialization.DataMemberAttribute(IsRequired=true, Order=2)]
        public int AvailableThemeMask {
            get {
                return this.AvailableThemeMaskField;
            }
            set {
                if ((this.AvailableThemeMaskField.Equals(value) != true)) {
                    this.AvailableThemeMaskField = value;
                    this.RaisePropertyChanged("AvailableThemeMask");
                }
            }
        }
        
        [System.Runtime.Serialization.DataMemberAttribute(IsRequired=true, Order=3)]
        public GPSapp.terraService2.PlaceType PlaceTypeId {
            get {
                return this.PlaceTypeIdField;
            }
            set {
                if ((this.PlaceTypeIdField.Equals(value) != true)) {
                    this.PlaceTypeIdField = value;
                    this.RaisePropertyChanged("PlaceTypeId");
                }
            }
        }
        
        [System.Runtime.Serialization.DataMemberAttribute(IsRequired=true, Order=4)]
        public int Population {
            get {
                return this.PopulationField;
            }
            set {
                if ((this.PopulationField.Equals(value) != true)) {
                    this.PopulationField = value;
                    this.RaisePropertyChanged("Population");
                }
            }
        }
        
        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="ThemeInfo", Namespace="http://msrmaps.com/")]
    public partial class ThemeInfo : object, System.ComponentModel.INotifyPropertyChanged {
        
        private int ThemeField;
        
        private string NameField;
        
        private string DescriptionField;
        
        private string SupplierField;
        
        private GPSapp.terraService2.Scale LoScaleField;
        
        private GPSapp.terraService2.Scale HiScaleField;
        
        private GPSapp.terraService2.ProjectionType ProjectionIdField;
        
        private string ProjectionNameField;
        
        private string CopyrightNoticeField;
        
        [System.Runtime.Serialization.DataMemberAttribute(IsRequired=true)]
        public int Theme {
            get {
                return this.ThemeField;
            }
            set {
                if ((this.ThemeField.Equals(value) != true)) {
                    this.ThemeField = value;
                    this.RaisePropertyChanged("Theme");
                }
            }
        }
        
        [System.Runtime.Serialization.DataMemberAttribute(EmitDefaultValue=false, Order=1)]
        public string Name {
            get {
                return this.NameField;
            }
            set {
                if ((object.ReferenceEquals(this.NameField, value) != true)) {
                    this.NameField = value;
                    this.RaisePropertyChanged("Name");
                }
            }
        }
        
        [System.Runtime.Serialization.DataMemberAttribute(EmitDefaultValue=false, Order=2)]
        public string Description {
            get {
                return this.DescriptionField;
            }
            set {
                if ((object.ReferenceEquals(this.DescriptionField, value) != true)) {
                    this.DescriptionField = value;
                    this.RaisePropertyChanged("Description");
                }
            }
        }
        
        [System.Runtime.Serialization.DataMemberAttribute(EmitDefaultValue=false, Order=3)]
        public string Supplier {
            get {
                return this.SupplierField;
            }
            set {
                if ((object.ReferenceEquals(this.SupplierField, value) != true)) {
                    this.SupplierField = value;
                    this.RaisePropertyChanged("Supplier");
                }
            }
        }
        
        [System.Runtime.Serialization.DataMemberAttribute(IsRequired=true, Order=4)]
        public GPSapp.terraService2.Scale LoScale {
            get {
                return this.LoScaleField;
            }
            set {
                if ((this.LoScaleField.Equals(value) != true)) {
                    this.LoScaleField = value;
                    this.RaisePropertyChanged("LoScale");
                }
            }
        }
        
        [System.Runtime.Serialization.DataMemberAttribute(IsRequired=true, Order=5)]
        public GPSapp.terraService2.Scale HiScale {
            get {
                return this.HiScaleField;
            }
            set {
                if ((this.HiScaleField.Equals(value) != true)) {
                    this.HiScaleField = value;
                    this.RaisePropertyChanged("HiScale");
                }
            }
        }
        
        [System.Runtime.Serialization.DataMemberAttribute(IsRequired=true, Order=6)]
        public GPSapp.terraService2.ProjectionType ProjectionId {
            get {
                return this.ProjectionIdField;
            }
            set {
                if ((this.ProjectionIdField.Equals(value) != true)) {
                    this.ProjectionIdField = value;
                    this.RaisePropertyChanged("ProjectionId");
                }
            }
        }
        
        [System.Runtime.Serialization.DataMemberAttribute(EmitDefaultValue=false, Order=7)]
        public string ProjectionName {
            get {
                return this.ProjectionNameField;
            }
            set {
                if ((object.ReferenceEquals(this.ProjectionNameField, value) != true)) {
                    this.ProjectionNameField = value;
                    this.RaisePropertyChanged("ProjectionName");
                }
            }
        }
        
        [System.Runtime.Serialization.DataMemberAttribute(EmitDefaultValue=false, Order=8)]
        public string CopyrightNotice {
            get {
                return this.CopyrightNoticeField;
            }
            set {
                if ((object.ReferenceEquals(this.CopyrightNoticeField, value) != true)) {
                    this.CopyrightNoticeField = value;
                    this.RaisePropertyChanged("CopyrightNotice");
                }
            }
        }
        
        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://msrmaps.com/", ConfigurationName="terraService2.TerraServiceSoap")]
    public interface TerraServiceSoap {
        
        [System.ServiceModel.OperationContractAttribute(AsyncPattern=true, Action="http://msrmaps.com/ConvertLonLatPtToNearestPlace", ReplyAction="*")]
        System.IAsyncResult BeginConvertLonLatPtToNearestPlace(GPSapp.terraService2.ConvertLonLatPtToNearestPlaceRequest request, System.AsyncCallback callback, object asyncState);
        
        GPSapp.terraService2.ConvertLonLatPtToNearestPlaceResponse EndConvertLonLatPtToNearestPlace(System.IAsyncResult result);
        
        [System.ServiceModel.OperationContractAttribute(AsyncPattern=true, Action="http://msrmaps.com/ConvertLonLatPtToUtmPt", ReplyAction="*")]
        System.IAsyncResult BeginConvertLonLatPtToUtmPt(GPSapp.terraService2.ConvertLonLatPtToUtmPtRequest request, System.AsyncCallback callback, object asyncState);
        
        GPSapp.terraService2.ConvertLonLatPtToUtmPtResponse EndConvertLonLatPtToUtmPt(System.IAsyncResult result);
        
        [System.ServiceModel.OperationContractAttribute(AsyncPattern=true, Action="http://msrmaps.com/ConvertUtmPtToLonLatPt", ReplyAction="*")]
        System.IAsyncResult BeginConvertUtmPtToLonLatPt(GPSapp.terraService2.ConvertUtmPtToLonLatPtRequest request, System.AsyncCallback callback, object asyncState);
        
        GPSapp.terraService2.ConvertUtmPtToLonLatPtResponse EndConvertUtmPtToLonLatPt(System.IAsyncResult result);
        
        [System.ServiceModel.OperationContractAttribute(AsyncPattern=true, Action="http://msrmaps.com/ConvertPlaceToLonLatPt", ReplyAction="*")]
        System.IAsyncResult BeginConvertPlaceToLonLatPt(GPSapp.terraService2.ConvertPlaceToLonLatPtRequest request, System.AsyncCallback callback, object asyncState);
        
        GPSapp.terraService2.ConvertPlaceToLonLatPtResponse EndConvertPlaceToLonLatPt(System.IAsyncResult result);
        
        [System.ServiceModel.OperationContractAttribute(AsyncPattern=true, Action="http://msrmaps.com/CountPlacesInRect", ReplyAction="*")]
        System.IAsyncResult BeginCountPlacesInRect(GPSapp.terraService2.CountPlacesInRectRequest request, System.AsyncCallback callback, object asyncState);
        
        GPSapp.terraService2.CountPlacesInRectResponse EndCountPlacesInRect(System.IAsyncResult result);
        
        [System.ServiceModel.OperationContractAttribute(AsyncPattern=true, Action="http://msrmaps.com/GetAreaFromPt", ReplyAction="*")]
        System.IAsyncResult BeginGetAreaFromPt(GPSapp.terraService2.GetAreaFromPtRequest request, System.AsyncCallback callback, object asyncState);
        
        GPSapp.terraService2.GetAreaFromPtResponse EndGetAreaFromPt(System.IAsyncResult result);
        
        [System.ServiceModel.OperationContractAttribute(AsyncPattern=true, Action="http://msrmaps.com/GetAreaFromRect", ReplyAction="*")]
        System.IAsyncResult BeginGetAreaFromRect(GPSapp.terraService2.GetAreaFromRectRequest request, System.AsyncCallback callback, object asyncState);
        
        GPSapp.terraService2.GetAreaFromRectResponse EndGetAreaFromRect(System.IAsyncResult result);
        
        [System.ServiceModel.OperationContractAttribute(AsyncPattern=true, Action="http://msrmaps.com/GetAreaFromTileId", ReplyAction="*")]
        System.IAsyncResult BeginGetAreaFromTileId(GPSapp.terraService2.GetAreaFromTileIdRequest request, System.AsyncCallback callback, object asyncState);
        
        GPSapp.terraService2.GetAreaFromTileIdResponse EndGetAreaFromTileId(System.IAsyncResult result);
        
        [System.ServiceModel.OperationContractAttribute(AsyncPattern=true, Action="http://msrmaps.com/GetLatLonMetrics", ReplyAction="*")]
        System.IAsyncResult BeginGetLatLonMetrics(GPSapp.terraService2.GetLatLonMetricsRequest request, System.AsyncCallback callback, object asyncState);
        
        GPSapp.terraService2.GetLatLonMetricsResponse EndGetLatLonMetrics(System.IAsyncResult result);
        
        [System.ServiceModel.OperationContractAttribute(AsyncPattern=true, Action="http://msrmaps.com/GetPlaceFacts", ReplyAction="*")]
        System.IAsyncResult BeginGetPlaceFacts(GPSapp.terraService2.GetPlaceFactsRequest request, System.AsyncCallback callback, object asyncState);
        
        GPSapp.terraService2.GetPlaceFactsResponse EndGetPlaceFacts(System.IAsyncResult result);
        
        [System.ServiceModel.OperationContractAttribute(AsyncPattern=true, Action="http://msrmaps.com/GetPlaceList", ReplyAction="*")]
        System.IAsyncResult BeginGetPlaceList(GPSapp.terraService2.GetPlaceListRequest request, System.AsyncCallback callback, object asyncState);
        
        GPSapp.terraService2.GetPlaceListResponse EndGetPlaceList(System.IAsyncResult result);
        
        [System.ServiceModel.OperationContractAttribute(AsyncPattern=true, Action="http://msrmaps.com/GetPlaceListInRect", ReplyAction="*")]
        System.IAsyncResult BeginGetPlaceListInRect(GPSapp.terraService2.GetPlaceListInRectRequest request, System.AsyncCallback callback, object asyncState);
        
        GPSapp.terraService2.GetPlaceListInRectResponse EndGetPlaceListInRect(System.IAsyncResult result);
        
        [System.ServiceModel.OperationContractAttribute(AsyncPattern=true, Action="http://msrmaps.com/GetTheme", ReplyAction="*")]
        System.IAsyncResult BeginGetTheme(GPSapp.terraService2.GetThemeRequest request, System.AsyncCallback callback, object asyncState);
        
        GPSapp.terraService2.GetThemeResponse EndGetTheme(System.IAsyncResult result);
        
        [System.ServiceModel.OperationContractAttribute(AsyncPattern=true, Action="http://msrmaps.com/GetTileMetaFromLonLatPt", ReplyAction="*")]
        System.IAsyncResult BeginGetTileMetaFromLonLatPt(GPSapp.terraService2.GetTileMetaFromLonLatPtRequest request, System.AsyncCallback callback, object asyncState);
        
        GPSapp.terraService2.GetTileMetaFromLonLatPtResponse EndGetTileMetaFromLonLatPt(System.IAsyncResult result);
        
        [System.ServiceModel.OperationContractAttribute(AsyncPattern=true, Action="http://msrmaps.com/GetTileMetaFromTileId", ReplyAction="*")]
        System.IAsyncResult BeginGetTileMetaFromTileId(GPSapp.terraService2.GetTileMetaFromTileIdRequest request, System.AsyncCallback callback, object asyncState);
        
        GPSapp.terraService2.GetTileMetaFromTileIdResponse EndGetTileMetaFromTileId(System.IAsyncResult result);
        
        [System.ServiceModel.OperationContractAttribute(AsyncPattern=true, Action="http://msrmaps.com/GetTile", ReplyAction="*")]
        System.IAsyncResult BeginGetTile(GPSapp.terraService2.GetTileRequest request, System.AsyncCallback callback, object asyncState);
        
        GPSapp.terraService2.GetTileResponse EndGetTile(System.IAsyncResult result);
    }
    
    [System.Diagnostics.DebuggerStepThroughAttribute()]
    [System.CodeDom.Compiler.GeneratedCodeAttribute("System.ServiceModel", "4.0.0.0")]
    [System.ComponentModel.EditorBrowsableAttribute(System.ComponentModel.EditorBrowsableState.Advanced)]
    [System.ServiceModel.MessageContractAttribute(IsWrapped=false)]
    public partial class ConvertLonLatPtToNearestPlaceRequest {
        
        [System.ServiceModel.MessageBodyMemberAttribute(Name="ConvertLonLatPtToNearestPlace", Namespace="http://msrmaps.com/", Order=0)]
        public GPSapp.terraService2.ConvertLonLatPtToNearestPlaceRequestBody Body;
        
        public ConvertLonLatPtToNearestPlaceRequest() {
        }
        
        public ConvertLonLatPtToNearestPlaceRequest(GPSapp.terraService2.ConvertLonLatPtToNearestPlaceRequestBody Body) {
            this.Body = Body;
        }
    }
    
    [System.Diagnostics.DebuggerStepThroughAttribute()]
    [System.CodeDom.Compiler.GeneratedCodeAttribute("System.ServiceModel", "4.0.0.0")]
    [System.ComponentModel.EditorBrowsableAttribute(System.ComponentModel.EditorBrowsableState.Advanced)]
    [System.Runtime.Serialization.DataContractAttribute(Namespace="http://msrmaps.com/")]
    public partial class ConvertLonLatPtToNearestPlaceRequestBody {
        
        [System.Runtime.Serialization.DataMemberAttribute(EmitDefaultValue=false, Order=0)]
        public GPSapp.terraService2.LonLatPt point;
        
        public ConvertLonLatPtToNearestPlaceRequestBody() {
        }
        
        public ConvertLonLatPtToNearestPlaceRequestBody(GPSapp.terraService2.LonLatPt point) {
            this.point = point;
        }
    }
    
    [System.Diagnostics.DebuggerStepThroughAttribute()]
    [System.CodeDom.Compiler.GeneratedCodeAttribute("System.ServiceModel", "4.0.0.0")]
    [System.ComponentModel.EditorBrowsableAttribute(System.ComponentModel.EditorBrowsableState.Advanced)]
    [System.ServiceModel.MessageContractAttribute(IsWrapped=false)]
    public partial class ConvertLonLatPtToNearestPlaceResponse {
        
        [System.ServiceModel.MessageBodyMemberAttribute(Name="ConvertLonLatPtToNearestPlaceResponse", Namespace="http://msrmaps.com/", Order=0)]
        public GPSapp.terraService2.ConvertLonLatPtToNearestPlaceResponseBody Body;
        
        public ConvertLonLatPtToNearestPlaceResponse() {
        }
        
        public ConvertLonLatPtToNearestPlaceResponse(GPSapp.terraService2.ConvertLonLatPtToNearestPlaceResponseBody Body) {
            this.Body = Body;
        }
    }
    
    [System.Diagnostics.DebuggerStepThroughAttribute()]
    [System.CodeDom.Compiler.GeneratedCodeAttribute("System.ServiceModel", "4.0.0.0")]
    [System.ComponentModel.EditorBrowsableAttribute(System.ComponentModel.EditorBrowsableState.Advanced)]
    [System.Runtime.Serialization.DataContractAttribute(Namespace="http://msrmaps.com/")]
    public partial class ConvertLonLatPtToNearestPlaceResponseBody {
        
        [System.Runtime.Serialization.DataMemberAttribute(EmitDefaultValue=false, Order=0)]
        public string ConvertLonLatPtToNearestPlaceResult;
        
        public ConvertLonLatPtToNearestPlaceResponseBody() {
        }
        
        public ConvertLonLatPtToNearestPlaceResponseBody(string ConvertLonLatPtToNearestPlaceResult) {
            this.ConvertLonLatPtToNearestPlaceResult = ConvertLonLatPtToNearestPlaceResult;
        }
    }
    
    [System.Diagnostics.DebuggerStepThroughAttribute()]
    [System.CodeDom.Compiler.GeneratedCodeAttribute("System.ServiceModel", "4.0.0.0")]
    [System.ComponentModel.EditorBrowsableAttribute(System.ComponentModel.EditorBrowsableState.Advanced)]
    [System.ServiceModel.MessageContractAttribute(IsWrapped=false)]
    public partial class ConvertLonLatPtToUtmPtRequest {
        
        [System.ServiceModel.MessageBodyMemberAttribute(Name="ConvertLonLatPtToUtmPt", Namespace="http://msrmaps.com/", Order=0)]
        public GPSapp.terraService2.ConvertLonLatPtToUtmPtRequestBody Body;
        
        public ConvertLonLatPtToUtmPtRequest() {
        }
        
        public ConvertLonLatPtToUtmPtRequest(GPSapp.terraService2.ConvertLonLatPtToUtmPtRequestBody Body) {
            this.Body = Body;
        }
    }
    
    [System.Diagnostics.DebuggerStepThroughAttribute()]
    [System.CodeDom.Compiler.GeneratedCodeAttribute("System.ServiceModel", "4.0.0.0")]
    [System.ComponentModel.EditorBrowsableAttribute(System.ComponentModel.EditorBrowsableState.Advanced)]
    [System.Runtime.Serialization.DataContractAttribute(Namespace="http://msrmaps.com/")]
    public partial class ConvertLonLatPtToUtmPtRequestBody {
        
        [System.Runtime.Serialization.DataMemberAttribute(EmitDefaultValue=false, Order=0)]
        public GPSapp.terraService2.LonLatPt point;
        
        public ConvertLonLatPtToUtmPtRequestBody() {
        }
        
        public ConvertLonLatPtToUtmPtRequestBody(GPSapp.terraService2.LonLatPt point) {
            this.point = point;
        }
    }
    
    [System.Diagnostics.DebuggerStepThroughAttribute()]
    [System.CodeDom.Compiler.GeneratedCodeAttribute("System.ServiceModel", "4.0.0.0")]
    [System.ComponentModel.EditorBrowsableAttribute(System.ComponentModel.EditorBrowsableState.Advanced)]
    [System.ServiceModel.MessageContractAttribute(IsWrapped=false)]
    public partial class ConvertLonLatPtToUtmPtResponse {
        
        [System.ServiceModel.MessageBodyMemberAttribute(Name="ConvertLonLatPtToUtmPtResponse", Namespace="http://msrmaps.com/", Order=0)]
        public GPSapp.terraService2.ConvertLonLatPtToUtmPtResponseBody Body;
        
        public ConvertLonLatPtToUtmPtResponse() {
        }
        
        public ConvertLonLatPtToUtmPtResponse(GPSapp.terraService2.ConvertLonLatPtToUtmPtResponseBody Body) {
            this.Body = Body;
        }
    }
    
    [System.Diagnostics.DebuggerStepThroughAttribute()]
    [System.CodeDom.Compiler.GeneratedCodeAttribute("System.ServiceModel", "4.0.0.0")]
    [System.ComponentModel.EditorBrowsableAttribute(System.ComponentModel.EditorBrowsableState.Advanced)]
    [System.Runtime.Serialization.DataContractAttribute(Namespace="http://msrmaps.com/")]
    public partial class ConvertLonLatPtToUtmPtResponseBody {
        
        [System.Runtime.Serialization.DataMemberAttribute(EmitDefaultValue=false, Order=0)]
        public GPSapp.terraService2.UtmPt ConvertLonLatPtToUtmPtResult;
        
        public ConvertLonLatPtToUtmPtResponseBody() {
        }
        
        public ConvertLonLatPtToUtmPtResponseBody(GPSapp.terraService2.UtmPt ConvertLonLatPtToUtmPtResult) {
            this.ConvertLonLatPtToUtmPtResult = ConvertLonLatPtToUtmPtResult;
        }
    }
    
    [System.Diagnostics.DebuggerStepThroughAttribute()]
    [System.CodeDom.Compiler.GeneratedCodeAttribute("System.ServiceModel", "4.0.0.0")]
    [System.ComponentModel.EditorBrowsableAttribute(System.ComponentModel.EditorBrowsableState.Advanced)]
    [System.ServiceModel.MessageContractAttribute(IsWrapped=false)]
    public partial class ConvertUtmPtToLonLatPtRequest {
        
        [System.ServiceModel.MessageBodyMemberAttribute(Name="ConvertUtmPtToLonLatPt", Namespace="http://msrmaps.com/", Order=0)]
        public GPSapp.terraService2.ConvertUtmPtToLonLatPtRequestBody Body;
        
        public ConvertUtmPtToLonLatPtRequest() {
        }
        
        public ConvertUtmPtToLonLatPtRequest(GPSapp.terraService2.ConvertUtmPtToLonLatPtRequestBody Body) {
            this.Body = Body;
        }
    }
    
    [System.Diagnostics.DebuggerStepThroughAttribute()]
    [System.CodeDom.Compiler.GeneratedCodeAttribute("System.ServiceModel", "4.0.0.0")]
    [System.ComponentModel.EditorBrowsableAttribute(System.ComponentModel.EditorBrowsableState.Advanced)]
    [System.Runtime.Serialization.DataContractAttribute(Namespace="http://msrmaps.com/")]
    public partial class ConvertUtmPtToLonLatPtRequestBody {
        
        [System.Runtime.Serialization.DataMemberAttribute(EmitDefaultValue=false, Order=0)]
        public GPSapp.terraService2.UtmPt utm;
        
        public ConvertUtmPtToLonLatPtRequestBody() {
        }
        
        public ConvertUtmPtToLonLatPtRequestBody(GPSapp.terraService2.UtmPt utm) {
            this.utm = utm;
        }
    }
    
    [System.Diagnostics.DebuggerStepThroughAttribute()]
    [System.CodeDom.Compiler.GeneratedCodeAttribute("System.ServiceModel", "4.0.0.0")]
    [System.ComponentModel.EditorBrowsableAttribute(System.ComponentModel.EditorBrowsableState.Advanced)]
    [System.ServiceModel.MessageContractAttribute(IsWrapped=false)]
    public partial class ConvertUtmPtToLonLatPtResponse {
        
        [System.ServiceModel.MessageBodyMemberAttribute(Name="ConvertUtmPtToLonLatPtResponse", Namespace="http://msrmaps.com/", Order=0)]
        public GPSapp.terraService2.ConvertUtmPtToLonLatPtResponseBody Body;
        
        public ConvertUtmPtToLonLatPtResponse() {
        }
        
        public ConvertUtmPtToLonLatPtResponse(GPSapp.terraService2.ConvertUtmPtToLonLatPtResponseBody Body) {
            this.Body = Body;
        }
    }
    
    [System.Diagnostics.DebuggerStepThroughAttribute()]
    [System.CodeDom.Compiler.GeneratedCodeAttribute("System.ServiceModel", "4.0.0.0")]
    [System.ComponentModel.EditorBrowsableAttribute(System.ComponentModel.EditorBrowsableState.Advanced)]
    [System.Runtime.Serialization.DataContractAttribute(Namespace="http://msrmaps.com/")]
    public partial class ConvertUtmPtToLonLatPtResponseBody {
        
        [System.Runtime.Serialization.DataMemberAttribute(EmitDefaultValue=false, Order=0)]
        public GPSapp.terraService2.LonLatPt ConvertUtmPtToLonLatPtResult;
        
        public ConvertUtmPtToLonLatPtResponseBody() {
        }
        
        public ConvertUtmPtToLonLatPtResponseBody(GPSapp.terraService2.LonLatPt ConvertUtmPtToLonLatPtResult) {
            this.ConvertUtmPtToLonLatPtResult = ConvertUtmPtToLonLatPtResult;
        }
    }
    
    [System.Diagnostics.DebuggerStepThroughAttribute()]
    [System.CodeDom.Compiler.GeneratedCodeAttribute("System.ServiceModel", "4.0.0.0")]
    [System.ComponentModel.EditorBrowsableAttribute(System.ComponentModel.EditorBrowsableState.Advanced)]
    [System.ServiceModel.MessageContractAttribute(IsWrapped=false)]
    public partial class ConvertPlaceToLonLatPtRequest {
        
        [System.ServiceModel.MessageBodyMemberAttribute(Name="ConvertPlaceToLonLatPt", Namespace="http://msrmaps.com/", Order=0)]
        public GPSapp.terraService2.ConvertPlaceToLonLatPtRequestBody Body;
        
        public ConvertPlaceToLonLatPtRequest() {
        }
        
        public ConvertPlaceToLonLatPtRequest(GPSapp.terraService2.ConvertPlaceToLonLatPtRequestBody Body) {
            this.Body = Body;
        }
    }
    
    [System.Diagnostics.DebuggerStepThroughAttribute()]
    [System.CodeDom.Compiler.GeneratedCodeAttribute("System.ServiceModel", "4.0.0.0")]
    [System.ComponentModel.EditorBrowsableAttribute(System.ComponentModel.EditorBrowsableState.Advanced)]
    [System.Runtime.Serialization.DataContractAttribute(Namespace="http://msrmaps.com/")]
    public partial class ConvertPlaceToLonLatPtRequestBody {
        
        [System.Runtime.Serialization.DataMemberAttribute(EmitDefaultValue=false, Order=0)]
        public GPSapp.terraService2.Place place;
        
        public ConvertPlaceToLonLatPtRequestBody() {
        }
        
        public ConvertPlaceToLonLatPtRequestBody(GPSapp.terraService2.Place place) {
            this.place = place;
        }
    }
    
    [System.Diagnostics.DebuggerStepThroughAttribute()]
    [System.CodeDom.Compiler.GeneratedCodeAttribute("System.ServiceModel", "4.0.0.0")]
    [System.ComponentModel.EditorBrowsableAttribute(System.ComponentModel.EditorBrowsableState.Advanced)]
    [System.ServiceModel.MessageContractAttribute(IsWrapped=false)]
    public partial class ConvertPlaceToLonLatPtResponse {
        
        [System.ServiceModel.MessageBodyMemberAttribute(Name="ConvertPlaceToLonLatPtResponse", Namespace="http://msrmaps.com/", Order=0)]
        public GPSapp.terraService2.ConvertPlaceToLonLatPtResponseBody Body;
        
        public ConvertPlaceToLonLatPtResponse() {
        }
        
        public ConvertPlaceToLonLatPtResponse(GPSapp.terraService2.ConvertPlaceToLonLatPtResponseBody Body) {
            this.Body = Body;
        }
    }
    
    [System.Diagnostics.DebuggerStepThroughAttribute()]
    [System.CodeDom.Compiler.GeneratedCodeAttribute("System.ServiceModel", "4.0.0.0")]
    [System.ComponentModel.EditorBrowsableAttribute(System.ComponentModel.EditorBrowsableState.Advanced)]
    [System.Runtime.Serialization.DataContractAttribute(Namespace="http://msrmaps.com/")]
    public partial class ConvertPlaceToLonLatPtResponseBody {
        
        [System.Runtime.Serialization.DataMemberAttribute(EmitDefaultValue=false, Order=0)]
        public GPSapp.terraService2.LonLatPt ConvertPlaceToLonLatPtResult;
        
        public ConvertPlaceToLonLatPtResponseBody() {
        }
        
        public ConvertPlaceToLonLatPtResponseBody(GPSapp.terraService2.LonLatPt ConvertPlaceToLonLatPtResult) {
            this.ConvertPlaceToLonLatPtResult = ConvertPlaceToLonLatPtResult;
        }
    }
    
    [System.Diagnostics.DebuggerStepThroughAttribute()]
    [System.CodeDom.Compiler.GeneratedCodeAttribute("System.ServiceModel", "4.0.0.0")]
    [System.ComponentModel.EditorBrowsableAttribute(System.ComponentModel.EditorBrowsableState.Advanced)]
    [System.ServiceModel.MessageContractAttribute(IsWrapped=false)]
    public partial class CountPlacesInRectRequest {
        
        [System.ServiceModel.MessageBodyMemberAttribute(Name="CountPlacesInRect", Namespace="http://msrmaps.com/", Order=0)]
        public GPSapp.terraService2.CountPlacesInRectRequestBody Body;
        
        public CountPlacesInRectRequest() {
        }
        
        public CountPlacesInRectRequest(GPSapp.terraService2.CountPlacesInRectRequestBody Body) {
            this.Body = Body;
        }
    }
    
    [System.Diagnostics.DebuggerStepThroughAttribute()]
    [System.CodeDom.Compiler.GeneratedCodeAttribute("System.ServiceModel", "4.0.0.0")]
    [System.ComponentModel.EditorBrowsableAttribute(System.ComponentModel.EditorBrowsableState.Advanced)]
    [System.Runtime.Serialization.DataContractAttribute(Namespace="http://msrmaps.com/")]
    public partial class CountPlacesInRectRequestBody {
        
        [System.Runtime.Serialization.DataMemberAttribute(EmitDefaultValue=false, Order=0)]
        public GPSapp.terraService2.LonLatPt upperleft;
        
        [System.Runtime.Serialization.DataMemberAttribute(EmitDefaultValue=false, Order=1)]
        public GPSapp.terraService2.LonLatPt lowerright;
        
        [System.Runtime.Serialization.DataMemberAttribute(Order=2)]
        public GPSapp.terraService2.PlaceType ptype;
        
        public CountPlacesInRectRequestBody() {
        }
        
        public CountPlacesInRectRequestBody(GPSapp.terraService2.LonLatPt upperleft, GPSapp.terraService2.LonLatPt lowerright, GPSapp.terraService2.PlaceType ptype) {
            this.upperleft = upperleft;
            this.lowerright = lowerright;
            this.ptype = ptype;
        }
    }
    
    [System.Diagnostics.DebuggerStepThroughAttribute()]
    [System.CodeDom.Compiler.GeneratedCodeAttribute("System.ServiceModel", "4.0.0.0")]
    [System.ComponentModel.EditorBrowsableAttribute(System.ComponentModel.EditorBrowsableState.Advanced)]
    [System.ServiceModel.MessageContractAttribute(IsWrapped=false)]
    public partial class CountPlacesInRectResponse {
        
        [System.ServiceModel.MessageBodyMemberAttribute(Name="CountPlacesInRectResponse", Namespace="http://msrmaps.com/", Order=0)]
        public GPSapp.terraService2.CountPlacesInRectResponseBody Body;
        
        public CountPlacesInRectResponse() {
        }
        
        public CountPlacesInRectResponse(GPSapp.terraService2.CountPlacesInRectResponseBody Body) {
            this.Body = Body;
        }
    }
    
    [System.Diagnostics.DebuggerStepThroughAttribute()]
    [System.CodeDom.Compiler.GeneratedCodeAttribute("System.ServiceModel", "4.0.0.0")]
    [System.ComponentModel.EditorBrowsableAttribute(System.ComponentModel.EditorBrowsableState.Advanced)]
    [System.Runtime.Serialization.DataContractAttribute(Namespace="http://msrmaps.com/")]
    public partial class CountPlacesInRectResponseBody {
        
        [System.Runtime.Serialization.DataMemberAttribute(Order=0)]
        public int CountPlacesInRectResult;
        
        public CountPlacesInRectResponseBody() {
        }
        
        public CountPlacesInRectResponseBody(int CountPlacesInRectResult) {
            this.CountPlacesInRectResult = CountPlacesInRectResult;
        }
    }
    
    [System.Diagnostics.DebuggerStepThroughAttribute()]
    [System.CodeDom.Compiler.GeneratedCodeAttribute("System.ServiceModel", "4.0.0.0")]
    [System.ComponentModel.EditorBrowsableAttribute(System.ComponentModel.EditorBrowsableState.Advanced)]
    [System.ServiceModel.MessageContractAttribute(IsWrapped=false)]
    public partial class GetAreaFromPtRequest {
        
        [System.ServiceModel.MessageBodyMemberAttribute(Name="GetAreaFromPt", Namespace="http://msrmaps.com/", Order=0)]
        public GPSapp.terraService2.GetAreaFromPtRequestBody Body;
        
        public GetAreaFromPtRequest() {
        }
        
        public GetAreaFromPtRequest(GPSapp.terraService2.GetAreaFromPtRequestBody Body) {
            this.Body = Body;
        }
    }
    
    [System.Diagnostics.DebuggerStepThroughAttribute()]
    [System.CodeDom.Compiler.GeneratedCodeAttribute("System.ServiceModel", "4.0.0.0")]
    [System.ComponentModel.EditorBrowsableAttribute(System.ComponentModel.EditorBrowsableState.Advanced)]
    [System.Runtime.Serialization.DataContractAttribute(Namespace="http://msrmaps.com/")]
    public partial class GetAreaFromPtRequestBody {
        
        [System.Runtime.Serialization.DataMemberAttribute(EmitDefaultValue=false, Order=0)]
        public GPSapp.terraService2.LonLatPt center;
        
        [System.Runtime.Serialization.DataMemberAttribute(Order=1)]
        public int theme;
        
        [System.Runtime.Serialization.DataMemberAttribute(Order=2)]
        public GPSapp.terraService2.Scale scale;
        
        [System.Runtime.Serialization.DataMemberAttribute(Order=3)]
        public int displayPixWidth;
        
        [System.Runtime.Serialization.DataMemberAttribute(Order=4)]
        public int displayPixHeight;
        
        public GetAreaFromPtRequestBody() {
        }
        
        public GetAreaFromPtRequestBody(GPSapp.terraService2.LonLatPt center, int theme, GPSapp.terraService2.Scale scale, int displayPixWidth, int displayPixHeight) {
            this.center = center;
            this.theme = theme;
            this.scale = scale;
            this.displayPixWidth = displayPixWidth;
            this.displayPixHeight = displayPixHeight;
        }
    }
    
    [System.Diagnostics.DebuggerStepThroughAttribute()]
    [System.CodeDom.Compiler.GeneratedCodeAttribute("System.ServiceModel", "4.0.0.0")]
    [System.ComponentModel.EditorBrowsableAttribute(System.ComponentModel.EditorBrowsableState.Advanced)]
    [System.ServiceModel.MessageContractAttribute(IsWrapped=false)]
    public partial class GetAreaFromPtResponse {
        
        [System.ServiceModel.MessageBodyMemberAttribute(Name="GetAreaFromPtResponse", Namespace="http://msrmaps.com/", Order=0)]
        public GPSapp.terraService2.GetAreaFromPtResponseBody Body;
        
        public GetAreaFromPtResponse() {
        }
        
        public GetAreaFromPtResponse(GPSapp.terraService2.GetAreaFromPtResponseBody Body) {
            this.Body = Body;
        }
    }
    
    [System.Diagnostics.DebuggerStepThroughAttribute()]
    [System.CodeDom.Compiler.GeneratedCodeAttribute("System.ServiceModel", "4.0.0.0")]
    [System.ComponentModel.EditorBrowsableAttribute(System.ComponentModel.EditorBrowsableState.Advanced)]
    [System.Runtime.Serialization.DataContractAttribute(Namespace="http://msrmaps.com/")]
    public partial class GetAreaFromPtResponseBody {
        
        [System.Runtime.Serialization.DataMemberAttribute(EmitDefaultValue=false, Order=0)]
        public GPSapp.terraService2.AreaBoundingBox GetAreaFromPtResult;
        
        public GetAreaFromPtResponseBody() {
        }
        
        public GetAreaFromPtResponseBody(GPSapp.terraService2.AreaBoundingBox GetAreaFromPtResult) {
            this.GetAreaFromPtResult = GetAreaFromPtResult;
        }
    }
    
    [System.Diagnostics.DebuggerStepThroughAttribute()]
    [System.CodeDom.Compiler.GeneratedCodeAttribute("System.ServiceModel", "4.0.0.0")]
    [System.ComponentModel.EditorBrowsableAttribute(System.ComponentModel.EditorBrowsableState.Advanced)]
    [System.ServiceModel.MessageContractAttribute(IsWrapped=false)]
    public partial class GetAreaFromRectRequest {
        
        [System.ServiceModel.MessageBodyMemberAttribute(Name="GetAreaFromRect", Namespace="http://msrmaps.com/", Order=0)]
        public GPSapp.terraService2.GetAreaFromRectRequestBody Body;
        
        public GetAreaFromRectRequest() {
        }
        
        public GetAreaFromRectRequest(GPSapp.terraService2.GetAreaFromRectRequestBody Body) {
            this.Body = Body;
        }
    }
    
    [System.Diagnostics.DebuggerStepThroughAttribute()]
    [System.CodeDom.Compiler.GeneratedCodeAttribute("System.ServiceModel", "4.0.0.0")]
    [System.ComponentModel.EditorBrowsableAttribute(System.ComponentModel.EditorBrowsableState.Advanced)]
    [System.Runtime.Serialization.DataContractAttribute(Namespace="http://msrmaps.com/")]
    public partial class GetAreaFromRectRequestBody {
        
        [System.Runtime.Serialization.DataMemberAttribute(EmitDefaultValue=false, Order=0)]
        public GPSapp.terraService2.LonLatPt upperLeft;
        
        [System.Runtime.Serialization.DataMemberAttribute(EmitDefaultValue=false, Order=1)]
        public GPSapp.terraService2.LonLatPt lowerRight;
        
        [System.Runtime.Serialization.DataMemberAttribute(Order=2)]
        public int theme;
        
        [System.Runtime.Serialization.DataMemberAttribute(Order=3)]
        public GPSapp.terraService2.Scale scale;
        
        public GetAreaFromRectRequestBody() {
        }
        
        public GetAreaFromRectRequestBody(GPSapp.terraService2.LonLatPt upperLeft, GPSapp.terraService2.LonLatPt lowerRight, int theme, GPSapp.terraService2.Scale scale) {
            this.upperLeft = upperLeft;
            this.lowerRight = lowerRight;
            this.theme = theme;
            this.scale = scale;
        }
    }
    
    [System.Diagnostics.DebuggerStepThroughAttribute()]
    [System.CodeDom.Compiler.GeneratedCodeAttribute("System.ServiceModel", "4.0.0.0")]
    [System.ComponentModel.EditorBrowsableAttribute(System.ComponentModel.EditorBrowsableState.Advanced)]
    [System.ServiceModel.MessageContractAttribute(IsWrapped=false)]
    public partial class GetAreaFromRectResponse {
        
        [System.ServiceModel.MessageBodyMemberAttribute(Name="GetAreaFromRectResponse", Namespace="http://msrmaps.com/", Order=0)]
        public GPSapp.terraService2.GetAreaFromRectResponseBody Body;
        
        public GetAreaFromRectResponse() {
        }
        
        public GetAreaFromRectResponse(GPSapp.terraService2.GetAreaFromRectResponseBody Body) {
            this.Body = Body;
        }
    }
    
    [System.Diagnostics.DebuggerStepThroughAttribute()]
    [System.CodeDom.Compiler.GeneratedCodeAttribute("System.ServiceModel", "4.0.0.0")]
    [System.ComponentModel.EditorBrowsableAttribute(System.ComponentModel.EditorBrowsableState.Advanced)]
    [System.Runtime.Serialization.DataContractAttribute(Namespace="http://msrmaps.com/")]
    public partial class GetAreaFromRectResponseBody {
        
        [System.Runtime.Serialization.DataMemberAttribute(EmitDefaultValue=false, Order=0)]
        public GPSapp.terraService2.AreaBoundingBox GetAreaFromRectResult;
        
        public GetAreaFromRectResponseBody() {
        }
        
        public GetAreaFromRectResponseBody(GPSapp.terraService2.AreaBoundingBox GetAreaFromRectResult) {
            this.GetAreaFromRectResult = GetAreaFromRectResult;
        }
    }
    
    [System.Diagnostics.DebuggerStepThroughAttribute()]
    [System.CodeDom.Compiler.GeneratedCodeAttribute("System.ServiceModel", "4.0.0.0")]
    [System.ComponentModel.EditorBrowsableAttribute(System.ComponentModel.EditorBrowsableState.Advanced)]
    [System.ServiceModel.MessageContractAttribute(IsWrapped=false)]
    public partial class GetAreaFromTileIdRequest {
        
        [System.ServiceModel.MessageBodyMemberAttribute(Name="GetAreaFromTileId", Namespace="http://msrmaps.com/", Order=0)]
        public GPSapp.terraService2.GetAreaFromTileIdRequestBody Body;
        
        public GetAreaFromTileIdRequest() {
        }
        
        public GetAreaFromTileIdRequest(GPSapp.terraService2.GetAreaFromTileIdRequestBody Body) {
            this.Body = Body;
        }
    }
    
    [System.Diagnostics.DebuggerStepThroughAttribute()]
    [System.CodeDom.Compiler.GeneratedCodeAttribute("System.ServiceModel", "4.0.0.0")]
    [System.ComponentModel.EditorBrowsableAttribute(System.ComponentModel.EditorBrowsableState.Advanced)]
    [System.Runtime.Serialization.DataContractAttribute(Namespace="http://msrmaps.com/")]
    public partial class GetAreaFromTileIdRequestBody {
        
        [System.Runtime.Serialization.DataMemberAttribute(EmitDefaultValue=false, Order=0)]
        public GPSapp.terraService2.TileId id;
        
        [System.Runtime.Serialization.DataMemberAttribute(Order=1)]
        public int displayPixWidth;
        
        [System.Runtime.Serialization.DataMemberAttribute(Order=2)]
        public int displayPixHeight;
        
        public GetAreaFromTileIdRequestBody() {
        }
        
        public GetAreaFromTileIdRequestBody(GPSapp.terraService2.TileId id, int displayPixWidth, int displayPixHeight) {
            this.id = id;
            this.displayPixWidth = displayPixWidth;
            this.displayPixHeight = displayPixHeight;
        }
    }
    
    [System.Diagnostics.DebuggerStepThroughAttribute()]
    [System.CodeDom.Compiler.GeneratedCodeAttribute("System.ServiceModel", "4.0.0.0")]
    [System.ComponentModel.EditorBrowsableAttribute(System.ComponentModel.EditorBrowsableState.Advanced)]
    [System.ServiceModel.MessageContractAttribute(IsWrapped=false)]
    public partial class GetAreaFromTileIdResponse {
        
        [System.ServiceModel.MessageBodyMemberAttribute(Name="GetAreaFromTileIdResponse", Namespace="http://msrmaps.com/", Order=0)]
        public GPSapp.terraService2.GetAreaFromTileIdResponseBody Body;
        
        public GetAreaFromTileIdResponse() {
        }
        
        public GetAreaFromTileIdResponse(GPSapp.terraService2.GetAreaFromTileIdResponseBody Body) {
            this.Body = Body;
        }
    }
    
    [System.Diagnostics.DebuggerStepThroughAttribute()]
    [System.CodeDom.Compiler.GeneratedCodeAttribute("System.ServiceModel", "4.0.0.0")]
    [System.ComponentModel.EditorBrowsableAttribute(System.ComponentModel.EditorBrowsableState.Advanced)]
    [System.Runtime.Serialization.DataContractAttribute(Namespace="http://msrmaps.com/")]
    public partial class GetAreaFromTileIdResponseBody {
        
        [System.Runtime.Serialization.DataMemberAttribute(EmitDefaultValue=false, Order=0)]
        public GPSapp.terraService2.AreaBoundingBox GetAreaFromTileIdResult;
        
        public GetAreaFromTileIdResponseBody() {
        }
        
        public GetAreaFromTileIdResponseBody(GPSapp.terraService2.AreaBoundingBox GetAreaFromTileIdResult) {
            this.GetAreaFromTileIdResult = GetAreaFromTileIdResult;
        }
    }
    
    [System.Diagnostics.DebuggerStepThroughAttribute()]
    [System.CodeDom.Compiler.GeneratedCodeAttribute("System.ServiceModel", "4.0.0.0")]
    [System.ComponentModel.EditorBrowsableAttribute(System.ComponentModel.EditorBrowsableState.Advanced)]
    [System.ServiceModel.MessageContractAttribute(IsWrapped=false)]
    public partial class GetLatLonMetricsRequest {
        
        [System.ServiceModel.MessageBodyMemberAttribute(Name="GetLatLonMetrics", Namespace="http://msrmaps.com/", Order=0)]
        public GPSapp.terraService2.GetLatLonMetricsRequestBody Body;
        
        public GetLatLonMetricsRequest() {
        }
        
        public GetLatLonMetricsRequest(GPSapp.terraService2.GetLatLonMetricsRequestBody Body) {
            this.Body = Body;
        }
    }
    
    [System.Diagnostics.DebuggerStepThroughAttribute()]
    [System.CodeDom.Compiler.GeneratedCodeAttribute("System.ServiceModel", "4.0.0.0")]
    [System.ComponentModel.EditorBrowsableAttribute(System.ComponentModel.EditorBrowsableState.Advanced)]
    [System.Runtime.Serialization.DataContractAttribute(Namespace="http://msrmaps.com/")]
    public partial class GetLatLonMetricsRequestBody {
        
        [System.Runtime.Serialization.DataMemberAttribute(EmitDefaultValue=false, Order=0)]
        public GPSapp.terraService2.LonLatPt point;
        
        public GetLatLonMetricsRequestBody() {
        }
        
        public GetLatLonMetricsRequestBody(GPSapp.terraService2.LonLatPt point) {
            this.point = point;
        }
    }
    
    [System.Diagnostics.DebuggerStepThroughAttribute()]
    [System.CodeDom.Compiler.GeneratedCodeAttribute("System.ServiceModel", "4.0.0.0")]
    [System.ComponentModel.EditorBrowsableAttribute(System.ComponentModel.EditorBrowsableState.Advanced)]
    [System.ServiceModel.MessageContractAttribute(IsWrapped=false)]
    public partial class GetLatLonMetricsResponse {
        
        [System.ServiceModel.MessageBodyMemberAttribute(Name="GetLatLonMetricsResponse", Namespace="http://msrmaps.com/", Order=0)]
        public GPSapp.terraService2.GetLatLonMetricsResponseBody Body;
        
        public GetLatLonMetricsResponse() {
        }
        
        public GetLatLonMetricsResponse(GPSapp.terraService2.GetLatLonMetricsResponseBody Body) {
            this.Body = Body;
        }
    }
    
    [System.Diagnostics.DebuggerStepThroughAttribute()]
    [System.CodeDom.Compiler.GeneratedCodeAttribute("System.ServiceModel", "4.0.0.0")]
    [System.ComponentModel.EditorBrowsableAttribute(System.ComponentModel.EditorBrowsableState.Advanced)]
    [System.Runtime.Serialization.DataContractAttribute(Namespace="http://msrmaps.com/")]
    public partial class GetLatLonMetricsResponseBody {
        
        [System.Runtime.Serialization.DataMemberAttribute(EmitDefaultValue=false, Order=0)]
        public System.Collections.ObjectModel.ObservableCollection<GPSapp.terraService2.ThemeBoundingBox> GetLatLonMetricsResult;
        
        public GetLatLonMetricsResponseBody() {
        }
        
        public GetLatLonMetricsResponseBody(System.Collections.ObjectModel.ObservableCollection<GPSapp.terraService2.ThemeBoundingBox> GetLatLonMetricsResult) {
            this.GetLatLonMetricsResult = GetLatLonMetricsResult;
        }
    }
    
    [System.Diagnostics.DebuggerStepThroughAttribute()]
    [System.CodeDom.Compiler.GeneratedCodeAttribute("System.ServiceModel", "4.0.0.0")]
    [System.ComponentModel.EditorBrowsableAttribute(System.ComponentModel.EditorBrowsableState.Advanced)]
    [System.ServiceModel.MessageContractAttribute(IsWrapped=false)]
    public partial class GetPlaceFactsRequest {
        
        [System.ServiceModel.MessageBodyMemberAttribute(Name="GetPlaceFacts", Namespace="http://msrmaps.com/", Order=0)]
        public GPSapp.terraService2.GetPlaceFactsRequestBody Body;
        
        public GetPlaceFactsRequest() {
        }
        
        public GetPlaceFactsRequest(GPSapp.terraService2.GetPlaceFactsRequestBody Body) {
            this.Body = Body;
        }
    }
    
    [System.Diagnostics.DebuggerStepThroughAttribute()]
    [System.CodeDom.Compiler.GeneratedCodeAttribute("System.ServiceModel", "4.0.0.0")]
    [System.ComponentModel.EditorBrowsableAttribute(System.ComponentModel.EditorBrowsableState.Advanced)]
    [System.Runtime.Serialization.DataContractAttribute(Namespace="http://msrmaps.com/")]
    public partial class GetPlaceFactsRequestBody {
        
        [System.Runtime.Serialization.DataMemberAttribute(EmitDefaultValue=false, Order=0)]
        public GPSapp.terraService2.Place place;
        
        public GetPlaceFactsRequestBody() {
        }
        
        public GetPlaceFactsRequestBody(GPSapp.terraService2.Place place) {
            this.place = place;
        }
    }
    
    [System.Diagnostics.DebuggerStepThroughAttribute()]
    [System.CodeDom.Compiler.GeneratedCodeAttribute("System.ServiceModel", "4.0.0.0")]
    [System.ComponentModel.EditorBrowsableAttribute(System.ComponentModel.EditorBrowsableState.Advanced)]
    [System.ServiceModel.MessageContractAttribute(IsWrapped=false)]
    public partial class GetPlaceFactsResponse {
        
        [System.ServiceModel.MessageBodyMemberAttribute(Name="GetPlaceFactsResponse", Namespace="http://msrmaps.com/", Order=0)]
        public GPSapp.terraService2.GetPlaceFactsResponseBody Body;
        
        public GetPlaceFactsResponse() {
        }
        
        public GetPlaceFactsResponse(GPSapp.terraService2.GetPlaceFactsResponseBody Body) {
            this.Body = Body;
        }
    }
    
    [System.Diagnostics.DebuggerStepThroughAttribute()]
    [System.CodeDom.Compiler.GeneratedCodeAttribute("System.ServiceModel", "4.0.0.0")]
    [System.ComponentModel.EditorBrowsableAttribute(System.ComponentModel.EditorBrowsableState.Advanced)]
    [System.Runtime.Serialization.DataContractAttribute(Namespace="http://msrmaps.com/")]
    public partial class GetPlaceFactsResponseBody {
        
        [System.Runtime.Serialization.DataMemberAttribute(EmitDefaultValue=false, Order=0)]
        public GPSapp.terraService2.PlaceFacts GetPlaceFactsResult;
        
        public GetPlaceFactsResponseBody() {
        }
        
        public GetPlaceFactsResponseBody(GPSapp.terraService2.PlaceFacts GetPlaceFactsResult) {
            this.GetPlaceFactsResult = GetPlaceFactsResult;
        }
    }
    
    [System.Diagnostics.DebuggerStepThroughAttribute()]
    [System.CodeDom.Compiler.GeneratedCodeAttribute("System.ServiceModel", "4.0.0.0")]
    [System.ComponentModel.EditorBrowsableAttribute(System.ComponentModel.EditorBrowsableState.Advanced)]
    [System.ServiceModel.MessageContractAttribute(IsWrapped=false)]
    public partial class GetPlaceListRequest {
        
        [System.ServiceModel.MessageBodyMemberAttribute(Name="GetPlaceList", Namespace="http://msrmaps.com/", Order=0)]
        public GPSapp.terraService2.GetPlaceListRequestBody Body;
        
        public GetPlaceListRequest() {
        }
        
        public GetPlaceListRequest(GPSapp.terraService2.GetPlaceListRequestBody Body) {
            this.Body = Body;
        }
    }
    
    [System.Diagnostics.DebuggerStepThroughAttribute()]
    [System.CodeDom.Compiler.GeneratedCodeAttribute("System.ServiceModel", "4.0.0.0")]
    [System.ComponentModel.EditorBrowsableAttribute(System.ComponentModel.EditorBrowsableState.Advanced)]
    [System.Runtime.Serialization.DataContractAttribute(Namespace="http://msrmaps.com/")]
    public partial class GetPlaceListRequestBody {
        
        [System.Runtime.Serialization.DataMemberAttribute(EmitDefaultValue=false, Order=0)]
        public string placeName;
        
        [System.Runtime.Serialization.DataMemberAttribute(Order=1)]
        public int MaxItems;
        
        [System.Runtime.Serialization.DataMemberAttribute(Order=2)]
        public bool imagePresence;
        
        public GetPlaceListRequestBody() {
        }
        
        public GetPlaceListRequestBody(string placeName, int MaxItems, bool imagePresence) {
            this.placeName = placeName;
            this.MaxItems = MaxItems;
            this.imagePresence = imagePresence;
        }
    }
    
    [System.Diagnostics.DebuggerStepThroughAttribute()]
    [System.CodeDom.Compiler.GeneratedCodeAttribute("System.ServiceModel", "4.0.0.0")]
    [System.ComponentModel.EditorBrowsableAttribute(System.ComponentModel.EditorBrowsableState.Advanced)]
    [System.ServiceModel.MessageContractAttribute(IsWrapped=false)]
    public partial class GetPlaceListResponse {
        
        [System.ServiceModel.MessageBodyMemberAttribute(Name="GetPlaceListResponse", Namespace="http://msrmaps.com/", Order=0)]
        public GPSapp.terraService2.GetPlaceListResponseBody Body;
        
        public GetPlaceListResponse() {
        }
        
        public GetPlaceListResponse(GPSapp.terraService2.GetPlaceListResponseBody Body) {
            this.Body = Body;
        }
    }
    
    [System.Diagnostics.DebuggerStepThroughAttribute()]
    [System.CodeDom.Compiler.GeneratedCodeAttribute("System.ServiceModel", "4.0.0.0")]
    [System.ComponentModel.EditorBrowsableAttribute(System.ComponentModel.EditorBrowsableState.Advanced)]
    [System.Runtime.Serialization.DataContractAttribute(Namespace="http://msrmaps.com/")]
    public partial class GetPlaceListResponseBody {
        
        [System.Runtime.Serialization.DataMemberAttribute(EmitDefaultValue=false, Order=0)]
        public System.Collections.ObjectModel.ObservableCollection<GPSapp.terraService2.PlaceFacts> GetPlaceListResult;
        
        public GetPlaceListResponseBody() {
        }
        
        public GetPlaceListResponseBody(System.Collections.ObjectModel.ObservableCollection<GPSapp.terraService2.PlaceFacts> GetPlaceListResult) {
            this.GetPlaceListResult = GetPlaceListResult;
        }
    }
    
    [System.Diagnostics.DebuggerStepThroughAttribute()]
    [System.CodeDom.Compiler.GeneratedCodeAttribute("System.ServiceModel", "4.0.0.0")]
    [System.ComponentModel.EditorBrowsableAttribute(System.ComponentModel.EditorBrowsableState.Advanced)]
    [System.ServiceModel.MessageContractAttribute(IsWrapped=false)]
    public partial class GetPlaceListInRectRequest {
        
        [System.ServiceModel.MessageBodyMemberAttribute(Name="GetPlaceListInRect", Namespace="http://msrmaps.com/", Order=0)]
        public GPSapp.terraService2.GetPlaceListInRectRequestBody Body;
        
        public GetPlaceListInRectRequest() {
        }
        
        public GetPlaceListInRectRequest(GPSapp.terraService2.GetPlaceListInRectRequestBody Body) {
            this.Body = Body;
        }
    }
    
    [System.Diagnostics.DebuggerStepThroughAttribute()]
    [System.CodeDom.Compiler.GeneratedCodeAttribute("System.ServiceModel", "4.0.0.0")]
    [System.ComponentModel.EditorBrowsableAttribute(System.ComponentModel.EditorBrowsableState.Advanced)]
    [System.Runtime.Serialization.DataContractAttribute(Namespace="http://msrmaps.com/")]
    public partial class GetPlaceListInRectRequestBody {
        
        [System.Runtime.Serialization.DataMemberAttribute(EmitDefaultValue=false, Order=0)]
        public GPSapp.terraService2.LonLatPt upperleft;
        
        [System.Runtime.Serialization.DataMemberAttribute(EmitDefaultValue=false, Order=1)]
        public GPSapp.terraService2.LonLatPt lowerright;
        
        [System.Runtime.Serialization.DataMemberAttribute(Order=2)]
        public GPSapp.terraService2.PlaceType ptype;
        
        [System.Runtime.Serialization.DataMemberAttribute(Order=3)]
        public int MaxItems;
        
        public GetPlaceListInRectRequestBody() {
        }
        
        public GetPlaceListInRectRequestBody(GPSapp.terraService2.LonLatPt upperleft, GPSapp.terraService2.LonLatPt lowerright, GPSapp.terraService2.PlaceType ptype, int MaxItems) {
            this.upperleft = upperleft;
            this.lowerright = lowerright;
            this.ptype = ptype;
            this.MaxItems = MaxItems;
        }
    }
    
    [System.Diagnostics.DebuggerStepThroughAttribute()]
    [System.CodeDom.Compiler.GeneratedCodeAttribute("System.ServiceModel", "4.0.0.0")]
    [System.ComponentModel.EditorBrowsableAttribute(System.ComponentModel.EditorBrowsableState.Advanced)]
    [System.ServiceModel.MessageContractAttribute(IsWrapped=false)]
    public partial class GetPlaceListInRectResponse {
        
        [System.ServiceModel.MessageBodyMemberAttribute(Name="GetPlaceListInRectResponse", Namespace="http://msrmaps.com/", Order=0)]
        public GPSapp.terraService2.GetPlaceListInRectResponseBody Body;
        
        public GetPlaceListInRectResponse() {
        }
        
        public GetPlaceListInRectResponse(GPSapp.terraService2.GetPlaceListInRectResponseBody Body) {
            this.Body = Body;
        }
    }
    
    [System.Diagnostics.DebuggerStepThroughAttribute()]
    [System.CodeDom.Compiler.GeneratedCodeAttribute("System.ServiceModel", "4.0.0.0")]
    [System.ComponentModel.EditorBrowsableAttribute(System.ComponentModel.EditorBrowsableState.Advanced)]
    [System.Runtime.Serialization.DataContractAttribute(Namespace="http://msrmaps.com/")]
    public partial class GetPlaceListInRectResponseBody {
        
        [System.Runtime.Serialization.DataMemberAttribute(EmitDefaultValue=false, Order=0)]
        public System.Collections.ObjectModel.ObservableCollection<GPSapp.terraService2.PlaceFacts> GetPlaceListInRectResult;
        
        public GetPlaceListInRectResponseBody() {
        }
        
        public GetPlaceListInRectResponseBody(System.Collections.ObjectModel.ObservableCollection<GPSapp.terraService2.PlaceFacts> GetPlaceListInRectResult) {
            this.GetPlaceListInRectResult = GetPlaceListInRectResult;
        }
    }
    
    [System.Diagnostics.DebuggerStepThroughAttribute()]
    [System.CodeDom.Compiler.GeneratedCodeAttribute("System.ServiceModel", "4.0.0.0")]
    [System.ComponentModel.EditorBrowsableAttribute(System.ComponentModel.EditorBrowsableState.Advanced)]
    [System.ServiceModel.MessageContractAttribute(IsWrapped=false)]
    public partial class GetThemeRequest {
        
        [System.ServiceModel.MessageBodyMemberAttribute(Name="GetTheme", Namespace="http://msrmaps.com/", Order=0)]
        public GPSapp.terraService2.GetThemeRequestBody Body;
        
        public GetThemeRequest() {
        }
        
        public GetThemeRequest(GPSapp.terraService2.GetThemeRequestBody Body) {
            this.Body = Body;
        }
    }
    
    [System.Diagnostics.DebuggerStepThroughAttribute()]
    [System.CodeDom.Compiler.GeneratedCodeAttribute("System.ServiceModel", "4.0.0.0")]
    [System.ComponentModel.EditorBrowsableAttribute(System.ComponentModel.EditorBrowsableState.Advanced)]
    [System.Runtime.Serialization.DataContractAttribute(Namespace="http://msrmaps.com/")]
    public partial class GetThemeRequestBody {
        
        [System.Runtime.Serialization.DataMemberAttribute(Order=0)]
        public int theme;
        
        public GetThemeRequestBody() {
        }
        
        public GetThemeRequestBody(int theme) {
            this.theme = theme;
        }
    }
    
    [System.Diagnostics.DebuggerStepThroughAttribute()]
    [System.CodeDom.Compiler.GeneratedCodeAttribute("System.ServiceModel", "4.0.0.0")]
    [System.ComponentModel.EditorBrowsableAttribute(System.ComponentModel.EditorBrowsableState.Advanced)]
    [System.ServiceModel.MessageContractAttribute(IsWrapped=false)]
    public partial class GetThemeResponse {
        
        [System.ServiceModel.MessageBodyMemberAttribute(Name="GetThemeResponse", Namespace="http://msrmaps.com/", Order=0)]
        public GPSapp.terraService2.GetThemeResponseBody Body;
        
        public GetThemeResponse() {
        }
        
        public GetThemeResponse(GPSapp.terraService2.GetThemeResponseBody Body) {
            this.Body = Body;
        }
    }
    
    [System.Diagnostics.DebuggerStepThroughAttribute()]
    [System.CodeDom.Compiler.GeneratedCodeAttribute("System.ServiceModel", "4.0.0.0")]
    [System.ComponentModel.EditorBrowsableAttribute(System.ComponentModel.EditorBrowsableState.Advanced)]
    [System.Runtime.Serialization.DataContractAttribute(Namespace="http://msrmaps.com/")]
    public partial class GetThemeResponseBody {
        
        [System.Runtime.Serialization.DataMemberAttribute(EmitDefaultValue=false, Order=0)]
        public GPSapp.terraService2.ThemeInfo GetThemeResult;
        
        public GetThemeResponseBody() {
        }
        
        public GetThemeResponseBody(GPSapp.terraService2.ThemeInfo GetThemeResult) {
            this.GetThemeResult = GetThemeResult;
        }
    }
    
    [System.Diagnostics.DebuggerStepThroughAttribute()]
    [System.CodeDom.Compiler.GeneratedCodeAttribute("System.ServiceModel", "4.0.0.0")]
    [System.ComponentModel.EditorBrowsableAttribute(System.ComponentModel.EditorBrowsableState.Advanced)]
    [System.ServiceModel.MessageContractAttribute(IsWrapped=false)]
    public partial class GetTileMetaFromLonLatPtRequest {
        
        [System.ServiceModel.MessageBodyMemberAttribute(Name="GetTileMetaFromLonLatPt", Namespace="http://msrmaps.com/", Order=0)]
        public GPSapp.terraService2.GetTileMetaFromLonLatPtRequestBody Body;
        
        public GetTileMetaFromLonLatPtRequest() {
        }
        
        public GetTileMetaFromLonLatPtRequest(GPSapp.terraService2.GetTileMetaFromLonLatPtRequestBody Body) {
            this.Body = Body;
        }
    }
    
    [System.Diagnostics.DebuggerStepThroughAttribute()]
    [System.CodeDom.Compiler.GeneratedCodeAttribute("System.ServiceModel", "4.0.0.0")]
    [System.ComponentModel.EditorBrowsableAttribute(System.ComponentModel.EditorBrowsableState.Advanced)]
    [System.Runtime.Serialization.DataContractAttribute(Namespace="http://msrmaps.com/")]
    public partial class GetTileMetaFromLonLatPtRequestBody {
        
        [System.Runtime.Serialization.DataMemberAttribute(EmitDefaultValue=false, Order=0)]
        public GPSapp.terraService2.LonLatPt point;
        
        [System.Runtime.Serialization.DataMemberAttribute(Order=1)]
        public int theme;
        
        [System.Runtime.Serialization.DataMemberAttribute(Order=2)]
        public GPSapp.terraService2.Scale scale;
        
        public GetTileMetaFromLonLatPtRequestBody() {
        }
        
        public GetTileMetaFromLonLatPtRequestBody(GPSapp.terraService2.LonLatPt point, int theme, GPSapp.terraService2.Scale scale) {
            this.point = point;
            this.theme = theme;
            this.scale = scale;
        }
    }
    
    [System.Diagnostics.DebuggerStepThroughAttribute()]
    [System.CodeDom.Compiler.GeneratedCodeAttribute("System.ServiceModel", "4.0.0.0")]
    [System.ComponentModel.EditorBrowsableAttribute(System.ComponentModel.EditorBrowsableState.Advanced)]
    [System.ServiceModel.MessageContractAttribute(IsWrapped=false)]
    public partial class GetTileMetaFromLonLatPtResponse {
        
        [System.ServiceModel.MessageBodyMemberAttribute(Name="GetTileMetaFromLonLatPtResponse", Namespace="http://msrmaps.com/", Order=0)]
        public GPSapp.terraService2.GetTileMetaFromLonLatPtResponseBody Body;
        
        public GetTileMetaFromLonLatPtResponse() {
        }
        
        public GetTileMetaFromLonLatPtResponse(GPSapp.terraService2.GetTileMetaFromLonLatPtResponseBody Body) {
            this.Body = Body;
        }
    }
    
    [System.Diagnostics.DebuggerStepThroughAttribute()]
    [System.CodeDom.Compiler.GeneratedCodeAttribute("System.ServiceModel", "4.0.0.0")]
    [System.ComponentModel.EditorBrowsableAttribute(System.ComponentModel.EditorBrowsableState.Advanced)]
    [System.Runtime.Serialization.DataContractAttribute(Namespace="http://msrmaps.com/")]
    public partial class GetTileMetaFromLonLatPtResponseBody {
        
        [System.Runtime.Serialization.DataMemberAttribute(EmitDefaultValue=false, Order=0)]
        public GPSapp.terraService2.TileMeta GetTileMetaFromLonLatPtResult;
        
        public GetTileMetaFromLonLatPtResponseBody() {
        }
        
        public GetTileMetaFromLonLatPtResponseBody(GPSapp.terraService2.TileMeta GetTileMetaFromLonLatPtResult) {
            this.GetTileMetaFromLonLatPtResult = GetTileMetaFromLonLatPtResult;
        }
    }
    
    [System.Diagnostics.DebuggerStepThroughAttribute()]
    [System.CodeDom.Compiler.GeneratedCodeAttribute("System.ServiceModel", "4.0.0.0")]
    [System.ComponentModel.EditorBrowsableAttribute(System.ComponentModel.EditorBrowsableState.Advanced)]
    [System.ServiceModel.MessageContractAttribute(IsWrapped=false)]
    public partial class GetTileMetaFromTileIdRequest {
        
        [System.ServiceModel.MessageBodyMemberAttribute(Name="GetTileMetaFromTileId", Namespace="http://msrmaps.com/", Order=0)]
        public GPSapp.terraService2.GetTileMetaFromTileIdRequestBody Body;
        
        public GetTileMetaFromTileIdRequest() {
        }
        
        public GetTileMetaFromTileIdRequest(GPSapp.terraService2.GetTileMetaFromTileIdRequestBody Body) {
            this.Body = Body;
        }
    }
    
    [System.Diagnostics.DebuggerStepThroughAttribute()]
    [System.CodeDom.Compiler.GeneratedCodeAttribute("System.ServiceModel", "4.0.0.0")]
    [System.ComponentModel.EditorBrowsableAttribute(System.ComponentModel.EditorBrowsableState.Advanced)]
    [System.Runtime.Serialization.DataContractAttribute(Namespace="http://msrmaps.com/")]
    public partial class GetTileMetaFromTileIdRequestBody {
        
        [System.Runtime.Serialization.DataMemberAttribute(EmitDefaultValue=false, Order=0)]
        public GPSapp.terraService2.TileId id;
        
        public GetTileMetaFromTileIdRequestBody() {
        }
        
        public GetTileMetaFromTileIdRequestBody(GPSapp.terraService2.TileId id) {
            this.id = id;
        }
    }
    
    [System.Diagnostics.DebuggerStepThroughAttribute()]
    [System.CodeDom.Compiler.GeneratedCodeAttribute("System.ServiceModel", "4.0.0.0")]
    [System.ComponentModel.EditorBrowsableAttribute(System.ComponentModel.EditorBrowsableState.Advanced)]
    [System.ServiceModel.MessageContractAttribute(IsWrapped=false)]
    public partial class GetTileMetaFromTileIdResponse {
        
        [System.ServiceModel.MessageBodyMemberAttribute(Name="GetTileMetaFromTileIdResponse", Namespace="http://msrmaps.com/", Order=0)]
        public GPSapp.terraService2.GetTileMetaFromTileIdResponseBody Body;
        
        public GetTileMetaFromTileIdResponse() {
        }
        
        public GetTileMetaFromTileIdResponse(GPSapp.terraService2.GetTileMetaFromTileIdResponseBody Body) {
            this.Body = Body;
        }
    }
    
    [System.Diagnostics.DebuggerStepThroughAttribute()]
    [System.CodeDom.Compiler.GeneratedCodeAttribute("System.ServiceModel", "4.0.0.0")]
    [System.ComponentModel.EditorBrowsableAttribute(System.ComponentModel.EditorBrowsableState.Advanced)]
    [System.Runtime.Serialization.DataContractAttribute(Namespace="http://msrmaps.com/")]
    public partial class GetTileMetaFromTileIdResponseBody {
        
        [System.Runtime.Serialization.DataMemberAttribute(EmitDefaultValue=false, Order=0)]
        public GPSapp.terraService2.TileMeta GetTileMetaFromTileIdResult;
        
        public GetTileMetaFromTileIdResponseBody() {
        }
        
        public GetTileMetaFromTileIdResponseBody(GPSapp.terraService2.TileMeta GetTileMetaFromTileIdResult) {
            this.GetTileMetaFromTileIdResult = GetTileMetaFromTileIdResult;
        }
    }
    
    [System.Diagnostics.DebuggerStepThroughAttribute()]
    [System.CodeDom.Compiler.GeneratedCodeAttribute("System.ServiceModel", "4.0.0.0")]
    [System.ComponentModel.EditorBrowsableAttribute(System.ComponentModel.EditorBrowsableState.Advanced)]
    [System.ServiceModel.MessageContractAttribute(IsWrapped=false)]
    public partial class GetTileRequest {
        
        [System.ServiceModel.MessageBodyMemberAttribute(Name="GetTile", Namespace="http://msrmaps.com/", Order=0)]
        public GPSapp.terraService2.GetTileRequestBody Body;
        
        public GetTileRequest() {
        }
        
        public GetTileRequest(GPSapp.terraService2.GetTileRequestBody Body) {
            this.Body = Body;
        }
    }
    
    [System.Diagnostics.DebuggerStepThroughAttribute()]
    [System.CodeDom.Compiler.GeneratedCodeAttribute("System.ServiceModel", "4.0.0.0")]
    [System.ComponentModel.EditorBrowsableAttribute(System.ComponentModel.EditorBrowsableState.Advanced)]
    [System.Runtime.Serialization.DataContractAttribute(Namespace="http://msrmaps.com/")]
    public partial class GetTileRequestBody {
        
        [System.Runtime.Serialization.DataMemberAttribute(EmitDefaultValue=false, Order=0)]
        public GPSapp.terraService2.TileId id;
        
        public GetTileRequestBody() {
        }
        
        public GetTileRequestBody(GPSapp.terraService2.TileId id) {
            this.id = id;
        }
    }
    
    [System.Diagnostics.DebuggerStepThroughAttribute()]
    [System.CodeDom.Compiler.GeneratedCodeAttribute("System.ServiceModel", "4.0.0.0")]
    [System.ComponentModel.EditorBrowsableAttribute(System.ComponentModel.EditorBrowsableState.Advanced)]
    [System.ServiceModel.MessageContractAttribute(IsWrapped=false)]
    public partial class GetTileResponse {
        
        [System.ServiceModel.MessageBodyMemberAttribute(Name="GetTileResponse", Namespace="http://msrmaps.com/", Order=0)]
        public GPSapp.terraService2.GetTileResponseBody Body;
        
        public GetTileResponse() {
        }
        
        public GetTileResponse(GPSapp.terraService2.GetTileResponseBody Body) {
            this.Body = Body;
        }
    }
    
    [System.Diagnostics.DebuggerStepThroughAttribute()]
    [System.CodeDom.Compiler.GeneratedCodeAttribute("System.ServiceModel", "4.0.0.0")]
    [System.ComponentModel.EditorBrowsableAttribute(System.ComponentModel.EditorBrowsableState.Advanced)]
    [System.Runtime.Serialization.DataContractAttribute(Namespace="http://msrmaps.com/")]
    public partial class GetTileResponseBody {
        
        [System.Runtime.Serialization.DataMemberAttribute(EmitDefaultValue=false, Order=0)]
        public byte[] GetTileResult;
        
        public GetTileResponseBody() {
        }
        
        public GetTileResponseBody(byte[] GetTileResult) {
            this.GetTileResult = GetTileResult;
        }
    }
    
    [System.CodeDom.Compiler.GeneratedCodeAttribute("System.ServiceModel", "4.0.0.0")]
    public interface TerraServiceSoapChannel : GPSapp.terraService2.TerraServiceSoap, System.ServiceModel.IClientChannel {
    }
    
    [System.Diagnostics.DebuggerStepThroughAttribute()]
    [System.CodeDom.Compiler.GeneratedCodeAttribute("System.ServiceModel", "4.0.0.0")]
    public partial class ConvertLonLatPtToNearestPlaceCompletedEventArgs : System.ComponentModel.AsyncCompletedEventArgs {
        
        private object[] results;
        
        public ConvertLonLatPtToNearestPlaceCompletedEventArgs(object[] results, System.Exception exception, bool cancelled, object userState) : 
                base(exception, cancelled, userState) {
            this.results = results;
        }
        
        public string Result {
            get {
                base.RaiseExceptionIfNecessary();
                return ((string)(this.results[0]));
            }
        }
    }
    
    [System.Diagnostics.DebuggerStepThroughAttribute()]
    [System.CodeDom.Compiler.GeneratedCodeAttribute("System.ServiceModel", "4.0.0.0")]
    public partial class ConvertLonLatPtToUtmPtCompletedEventArgs : System.ComponentModel.AsyncCompletedEventArgs {
        
        private object[] results;
        
        public ConvertLonLatPtToUtmPtCompletedEventArgs(object[] results, System.Exception exception, bool cancelled, object userState) : 
                base(exception, cancelled, userState) {
            this.results = results;
        }
        
        public GPSapp.terraService2.UtmPt Result {
            get {
                base.RaiseExceptionIfNecessary();
                return ((GPSapp.terraService2.UtmPt)(this.results[0]));
            }
        }
    }
    
    [System.Diagnostics.DebuggerStepThroughAttribute()]
    [System.CodeDom.Compiler.GeneratedCodeAttribute("System.ServiceModel", "4.0.0.0")]
    public partial class ConvertUtmPtToLonLatPtCompletedEventArgs : System.ComponentModel.AsyncCompletedEventArgs {
        
        private object[] results;
        
        public ConvertUtmPtToLonLatPtCompletedEventArgs(object[] results, System.Exception exception, bool cancelled, object userState) : 
                base(exception, cancelled, userState) {
            this.results = results;
        }
        
        public GPSapp.terraService2.LonLatPt Result {
            get {
                base.RaiseExceptionIfNecessary();
                return ((GPSapp.terraService2.LonLatPt)(this.results[0]));
            }
        }
    }
    
    [System.Diagnostics.DebuggerStepThroughAttribute()]
    [System.CodeDom.Compiler.GeneratedCodeAttribute("System.ServiceModel", "4.0.0.0")]
    public partial class ConvertPlaceToLonLatPtCompletedEventArgs : System.ComponentModel.AsyncCompletedEventArgs {
        
        private object[] results;
        
        public ConvertPlaceToLonLatPtCompletedEventArgs(object[] results, System.Exception exception, bool cancelled, object userState) : 
                base(exception, cancelled, userState) {
            this.results = results;
        }
        
        public GPSapp.terraService2.LonLatPt Result {
            get {
                base.RaiseExceptionIfNecessary();
                return ((GPSapp.terraService2.LonLatPt)(this.results[0]));
            }
        }
    }
    
    [System.Diagnostics.DebuggerStepThroughAttribute()]
    [System.CodeDom.Compiler.GeneratedCodeAttribute("System.ServiceModel", "4.0.0.0")]
    public partial class CountPlacesInRectCompletedEventArgs : System.ComponentModel.AsyncCompletedEventArgs {
        
        private object[] results;
        
        public CountPlacesInRectCompletedEventArgs(object[] results, System.Exception exception, bool cancelled, object userState) : 
                base(exception, cancelled, userState) {
            this.results = results;
        }
        
        public int Result {
            get {
                base.RaiseExceptionIfNecessary();
                return ((int)(this.results[0]));
            }
        }
    }
    
    [System.Diagnostics.DebuggerStepThroughAttribute()]
    [System.CodeDom.Compiler.GeneratedCodeAttribute("System.ServiceModel", "4.0.0.0")]
    public partial class GetAreaFromPtCompletedEventArgs : System.ComponentModel.AsyncCompletedEventArgs {
        
        private object[] results;
        
        public GetAreaFromPtCompletedEventArgs(object[] results, System.Exception exception, bool cancelled, object userState) : 
                base(exception, cancelled, userState) {
            this.results = results;
        }
        
        public GPSapp.terraService2.AreaBoundingBox Result {
            get {
                base.RaiseExceptionIfNecessary();
                return ((GPSapp.terraService2.AreaBoundingBox)(this.results[0]));
            }
        }
    }
    
    [System.Diagnostics.DebuggerStepThroughAttribute()]
    [System.CodeDom.Compiler.GeneratedCodeAttribute("System.ServiceModel", "4.0.0.0")]
    public partial class GetAreaFromRectCompletedEventArgs : System.ComponentModel.AsyncCompletedEventArgs {
        
        private object[] results;
        
        public GetAreaFromRectCompletedEventArgs(object[] results, System.Exception exception, bool cancelled, object userState) : 
                base(exception, cancelled, userState) {
            this.results = results;
        }
        
        public GPSapp.terraService2.AreaBoundingBox Result {
            get {
                base.RaiseExceptionIfNecessary();
                return ((GPSapp.terraService2.AreaBoundingBox)(this.results[0]));
            }
        }
    }
    
    [System.Diagnostics.DebuggerStepThroughAttribute()]
    [System.CodeDom.Compiler.GeneratedCodeAttribute("System.ServiceModel", "4.0.0.0")]
    public partial class GetAreaFromTileIdCompletedEventArgs : System.ComponentModel.AsyncCompletedEventArgs {
        
        private object[] results;
        
        public GetAreaFromTileIdCompletedEventArgs(object[] results, System.Exception exception, bool cancelled, object userState) : 
                base(exception, cancelled, userState) {
            this.results = results;
        }
        
        public GPSapp.terraService2.AreaBoundingBox Result {
            get {
                base.RaiseExceptionIfNecessary();
                return ((GPSapp.terraService2.AreaBoundingBox)(this.results[0]));
            }
        }
    }
    
    [System.Diagnostics.DebuggerStepThroughAttribute()]
    [System.CodeDom.Compiler.GeneratedCodeAttribute("System.ServiceModel", "4.0.0.0")]
    public partial class GetLatLonMetricsCompletedEventArgs : System.ComponentModel.AsyncCompletedEventArgs {
        
        private object[] results;
        
        public GetLatLonMetricsCompletedEventArgs(object[] results, System.Exception exception, bool cancelled, object userState) : 
                base(exception, cancelled, userState) {
            this.results = results;
        }
        
        public System.Collections.ObjectModel.ObservableCollection<GPSapp.terraService2.ThemeBoundingBox> Result {
            get {
                base.RaiseExceptionIfNecessary();
                return ((System.Collections.ObjectModel.ObservableCollection<GPSapp.terraService2.ThemeBoundingBox>)(this.results[0]));
            }
        }
    }
    
    [System.Diagnostics.DebuggerStepThroughAttribute()]
    [System.CodeDom.Compiler.GeneratedCodeAttribute("System.ServiceModel", "4.0.0.0")]
    public partial class GetPlaceFactsCompletedEventArgs : System.ComponentModel.AsyncCompletedEventArgs {
        
        private object[] results;
        
        public GetPlaceFactsCompletedEventArgs(object[] results, System.Exception exception, bool cancelled, object userState) : 
                base(exception, cancelled, userState) {
            this.results = results;
        }
        
        public GPSapp.terraService2.PlaceFacts Result {
            get {
                base.RaiseExceptionIfNecessary();
                return ((GPSapp.terraService2.PlaceFacts)(this.results[0]));
            }
        }
    }
    
    [System.Diagnostics.DebuggerStepThroughAttribute()]
    [System.CodeDom.Compiler.GeneratedCodeAttribute("System.ServiceModel", "4.0.0.0")]
    public partial class GetPlaceListCompletedEventArgs : System.ComponentModel.AsyncCompletedEventArgs {
        
        private object[] results;
        
        public GetPlaceListCompletedEventArgs(object[] results, System.Exception exception, bool cancelled, object userState) : 
                base(exception, cancelled, userState) {
            this.results = results;
        }
        
        public System.Collections.ObjectModel.ObservableCollection<GPSapp.terraService2.PlaceFacts> Result {
            get {
                base.RaiseExceptionIfNecessary();
                return ((System.Collections.ObjectModel.ObservableCollection<GPSapp.terraService2.PlaceFacts>)(this.results[0]));
            }
        }
    }
    
    [System.Diagnostics.DebuggerStepThroughAttribute()]
    [System.CodeDom.Compiler.GeneratedCodeAttribute("System.ServiceModel", "4.0.0.0")]
    public partial class GetPlaceListInRectCompletedEventArgs : System.ComponentModel.AsyncCompletedEventArgs {
        
        private object[] results;
        
        public GetPlaceListInRectCompletedEventArgs(object[] results, System.Exception exception, bool cancelled, object userState) : 
                base(exception, cancelled, userState) {
            this.results = results;
        }
        
        public System.Collections.ObjectModel.ObservableCollection<GPSapp.terraService2.PlaceFacts> Result {
            get {
                base.RaiseExceptionIfNecessary();
                return ((System.Collections.ObjectModel.ObservableCollection<GPSapp.terraService2.PlaceFacts>)(this.results[0]));
            }
        }
    }
    
    [System.Diagnostics.DebuggerStepThroughAttribute()]
    [System.CodeDom.Compiler.GeneratedCodeAttribute("System.ServiceModel", "4.0.0.0")]
    public partial class GetThemeCompletedEventArgs : System.ComponentModel.AsyncCompletedEventArgs {
        
        private object[] results;
        
        public GetThemeCompletedEventArgs(object[] results, System.Exception exception, bool cancelled, object userState) : 
                base(exception, cancelled, userState) {
            this.results = results;
        }
        
        public GPSapp.terraService2.ThemeInfo Result {
            get {
                base.RaiseExceptionIfNecessary();
                return ((GPSapp.terraService2.ThemeInfo)(this.results[0]));
            }
        }
    }
    
    [System.Diagnostics.DebuggerStepThroughAttribute()]
    [System.CodeDom.Compiler.GeneratedCodeAttribute("System.ServiceModel", "4.0.0.0")]
    public partial class GetTileMetaFromLonLatPtCompletedEventArgs : System.ComponentModel.AsyncCompletedEventArgs {
        
        private object[] results;
        
        public GetTileMetaFromLonLatPtCompletedEventArgs(object[] results, System.Exception exception, bool cancelled, object userState) : 
                base(exception, cancelled, userState) {
            this.results = results;
        }
        
        public GPSapp.terraService2.TileMeta Result {
            get {
                base.RaiseExceptionIfNecessary();
                return ((GPSapp.terraService2.TileMeta)(this.results[0]));
            }
        }
    }
    
    [System.Diagnostics.DebuggerStepThroughAttribute()]
    [System.CodeDom.Compiler.GeneratedCodeAttribute("System.ServiceModel", "4.0.0.0")]
    public partial class GetTileMetaFromTileIdCompletedEventArgs : System.ComponentModel.AsyncCompletedEventArgs {
        
        private object[] results;
        
        public GetTileMetaFromTileIdCompletedEventArgs(object[] results, System.Exception exception, bool cancelled, object userState) : 
                base(exception, cancelled, userState) {
            this.results = results;
        }
        
        public GPSapp.terraService2.TileMeta Result {
            get {
                base.RaiseExceptionIfNecessary();
                return ((GPSapp.terraService2.TileMeta)(this.results[0]));
            }
        }
    }
    
    [System.Diagnostics.DebuggerStepThroughAttribute()]
    [System.CodeDom.Compiler.GeneratedCodeAttribute("System.ServiceModel", "4.0.0.0")]
    public partial class GetTileCompletedEventArgs : System.ComponentModel.AsyncCompletedEventArgs {
        
        private object[] results;
        
        public GetTileCompletedEventArgs(object[] results, System.Exception exception, bool cancelled, object userState) : 
                base(exception, cancelled, userState) {
            this.results = results;
        }
        
        public byte[] Result {
            get {
                base.RaiseExceptionIfNecessary();
                return ((byte[])(this.results[0]));
            }
        }
    }
    
    [System.Diagnostics.DebuggerStepThroughAttribute()]
    [System.CodeDom.Compiler.GeneratedCodeAttribute("System.ServiceModel", "4.0.0.0")]
    public partial class TerraServiceSoapClient : System.ServiceModel.ClientBase<GPSapp.terraService2.TerraServiceSoap>, GPSapp.terraService2.TerraServiceSoap {
        
        private BeginOperationDelegate onBeginConvertLonLatPtToNearestPlaceDelegate;
        
        private EndOperationDelegate onEndConvertLonLatPtToNearestPlaceDelegate;
        
        private System.Threading.SendOrPostCallback onConvertLonLatPtToNearestPlaceCompletedDelegate;
        
        private BeginOperationDelegate onBeginConvertLonLatPtToUtmPtDelegate;
        
        private EndOperationDelegate onEndConvertLonLatPtToUtmPtDelegate;
        
        private System.Threading.SendOrPostCallback onConvertLonLatPtToUtmPtCompletedDelegate;
        
        private BeginOperationDelegate onBeginConvertUtmPtToLonLatPtDelegate;
        
        private EndOperationDelegate onEndConvertUtmPtToLonLatPtDelegate;
        
        private System.Threading.SendOrPostCallback onConvertUtmPtToLonLatPtCompletedDelegate;
        
        private BeginOperationDelegate onBeginConvertPlaceToLonLatPtDelegate;
        
        private EndOperationDelegate onEndConvertPlaceToLonLatPtDelegate;
        
        private System.Threading.SendOrPostCallback onConvertPlaceToLonLatPtCompletedDelegate;
        
        private BeginOperationDelegate onBeginCountPlacesInRectDelegate;
        
        private EndOperationDelegate onEndCountPlacesInRectDelegate;
        
        private System.Threading.SendOrPostCallback onCountPlacesInRectCompletedDelegate;
        
        private BeginOperationDelegate onBeginGetAreaFromPtDelegate;
        
        private EndOperationDelegate onEndGetAreaFromPtDelegate;
        
        private System.Threading.SendOrPostCallback onGetAreaFromPtCompletedDelegate;
        
        private BeginOperationDelegate onBeginGetAreaFromRectDelegate;
        
        private EndOperationDelegate onEndGetAreaFromRectDelegate;
        
        private System.Threading.SendOrPostCallback onGetAreaFromRectCompletedDelegate;
        
        private BeginOperationDelegate onBeginGetAreaFromTileIdDelegate;
        
        private EndOperationDelegate onEndGetAreaFromTileIdDelegate;
        
        private System.Threading.SendOrPostCallback onGetAreaFromTileIdCompletedDelegate;
        
        private BeginOperationDelegate onBeginGetLatLonMetricsDelegate;
        
        private EndOperationDelegate onEndGetLatLonMetricsDelegate;
        
        private System.Threading.SendOrPostCallback onGetLatLonMetricsCompletedDelegate;
        
        private BeginOperationDelegate onBeginGetPlaceFactsDelegate;
        
        private EndOperationDelegate onEndGetPlaceFactsDelegate;
        
        private System.Threading.SendOrPostCallback onGetPlaceFactsCompletedDelegate;
        
        private BeginOperationDelegate onBeginGetPlaceListDelegate;
        
        private EndOperationDelegate onEndGetPlaceListDelegate;
        
        private System.Threading.SendOrPostCallback onGetPlaceListCompletedDelegate;
        
        private BeginOperationDelegate onBeginGetPlaceListInRectDelegate;
        
        private EndOperationDelegate onEndGetPlaceListInRectDelegate;
        
        private System.Threading.SendOrPostCallback onGetPlaceListInRectCompletedDelegate;
        
        private BeginOperationDelegate onBeginGetThemeDelegate;
        
        private EndOperationDelegate onEndGetThemeDelegate;
        
        private System.Threading.SendOrPostCallback onGetThemeCompletedDelegate;
        
        private BeginOperationDelegate onBeginGetTileMetaFromLonLatPtDelegate;
        
        private EndOperationDelegate onEndGetTileMetaFromLonLatPtDelegate;
        
        private System.Threading.SendOrPostCallback onGetTileMetaFromLonLatPtCompletedDelegate;
        
        private BeginOperationDelegate onBeginGetTileMetaFromTileIdDelegate;
        
        private EndOperationDelegate onEndGetTileMetaFromTileIdDelegate;
        
        private System.Threading.SendOrPostCallback onGetTileMetaFromTileIdCompletedDelegate;
        
        private BeginOperationDelegate onBeginGetTileDelegate;
        
        private EndOperationDelegate onEndGetTileDelegate;
        
        private System.Threading.SendOrPostCallback onGetTileCompletedDelegate;
        
        private BeginOperationDelegate onBeginOpenDelegate;
        
        private EndOperationDelegate onEndOpenDelegate;
        
        private System.Threading.SendOrPostCallback onOpenCompletedDelegate;
        
        private BeginOperationDelegate onBeginCloseDelegate;
        
        private EndOperationDelegate onEndCloseDelegate;
        
        private System.Threading.SendOrPostCallback onCloseCompletedDelegate;
        
        public TerraServiceSoapClient() {
        }
        
        public TerraServiceSoapClient(string endpointConfigurationName) : 
                base(endpointConfigurationName) {
        }
        
        public TerraServiceSoapClient(string endpointConfigurationName, string remoteAddress) : 
                base(endpointConfigurationName, remoteAddress) {
        }
        
        public TerraServiceSoapClient(string endpointConfigurationName, System.ServiceModel.EndpointAddress remoteAddress) : 
                base(endpointConfigurationName, remoteAddress) {
        }
        
        public TerraServiceSoapClient(System.ServiceModel.Channels.Binding binding, System.ServiceModel.EndpointAddress remoteAddress) : 
                base(binding, remoteAddress) {
        }
        
        public System.Net.CookieContainer CookieContainer {
            get {
                System.ServiceModel.Channels.IHttpCookieContainerManager httpCookieContainerManager = this.InnerChannel.GetProperty<System.ServiceModel.Channels.IHttpCookieContainerManager>();
                if ((httpCookieContainerManager != null)) {
                    return httpCookieContainerManager.CookieContainer;
                }
                else {
                    return null;
                }
            }
            set {
                System.ServiceModel.Channels.IHttpCookieContainerManager httpCookieContainerManager = this.InnerChannel.GetProperty<System.ServiceModel.Channels.IHttpCookieContainerManager>();
                if ((httpCookieContainerManager != null)) {
                    httpCookieContainerManager.CookieContainer = value;
                }
                else {
                    throw new System.InvalidOperationException("Unable to set the CookieContainer. Please make sure the binding contains an HttpC" +
                            "ookieContainerBindingElement.");
                }
            }
        }
        
        public event System.EventHandler<ConvertLonLatPtToNearestPlaceCompletedEventArgs> ConvertLonLatPtToNearestPlaceCompleted;
        
        public event System.EventHandler<ConvertLonLatPtToUtmPtCompletedEventArgs> ConvertLonLatPtToUtmPtCompleted;
        
        public event System.EventHandler<ConvertUtmPtToLonLatPtCompletedEventArgs> ConvertUtmPtToLonLatPtCompleted;
        
        public event System.EventHandler<ConvertPlaceToLonLatPtCompletedEventArgs> ConvertPlaceToLonLatPtCompleted;
        
        public event System.EventHandler<CountPlacesInRectCompletedEventArgs> CountPlacesInRectCompleted;
        
        public event System.EventHandler<GetAreaFromPtCompletedEventArgs> GetAreaFromPtCompleted;
        
        public event System.EventHandler<GetAreaFromRectCompletedEventArgs> GetAreaFromRectCompleted;
        
        public event System.EventHandler<GetAreaFromTileIdCompletedEventArgs> GetAreaFromTileIdCompleted;
        
        public event System.EventHandler<GetLatLonMetricsCompletedEventArgs> GetLatLonMetricsCompleted;
        
        public event System.EventHandler<GetPlaceFactsCompletedEventArgs> GetPlaceFactsCompleted;
        
        public event System.EventHandler<GetPlaceListCompletedEventArgs> GetPlaceListCompleted;
        
        public event System.EventHandler<GetPlaceListInRectCompletedEventArgs> GetPlaceListInRectCompleted;
        
        public event System.EventHandler<GetThemeCompletedEventArgs> GetThemeCompleted;
        
        public event System.EventHandler<GetTileMetaFromLonLatPtCompletedEventArgs> GetTileMetaFromLonLatPtCompleted;
        
        public event System.EventHandler<GetTileMetaFromTileIdCompletedEventArgs> GetTileMetaFromTileIdCompleted;
        
        public event System.EventHandler<GetTileCompletedEventArgs> GetTileCompleted;
        
        public event System.EventHandler<System.ComponentModel.AsyncCompletedEventArgs> OpenCompleted;
        
        public event System.EventHandler<System.ComponentModel.AsyncCompletedEventArgs> CloseCompleted;
        
        [System.ComponentModel.EditorBrowsableAttribute(System.ComponentModel.EditorBrowsableState.Advanced)]
        System.IAsyncResult GPSapp.terraService2.TerraServiceSoap.BeginConvertLonLatPtToNearestPlace(GPSapp.terraService2.ConvertLonLatPtToNearestPlaceRequest request, System.AsyncCallback callback, object asyncState) {
            return base.Channel.BeginConvertLonLatPtToNearestPlace(request, callback, asyncState);
        }
        
        [System.ComponentModel.EditorBrowsableAttribute(System.ComponentModel.EditorBrowsableState.Advanced)]
        private System.IAsyncResult BeginConvertLonLatPtToNearestPlace(GPSapp.terraService2.LonLatPt point, System.AsyncCallback callback, object asyncState) {
            GPSapp.terraService2.ConvertLonLatPtToNearestPlaceRequest inValue = new GPSapp.terraService2.ConvertLonLatPtToNearestPlaceRequest();
            inValue.Body = new GPSapp.terraService2.ConvertLonLatPtToNearestPlaceRequestBody();
            inValue.Body.point = point;
            return ((GPSapp.terraService2.TerraServiceSoap)(this)).BeginConvertLonLatPtToNearestPlace(inValue, callback, asyncState);
        }
        
        [System.ComponentModel.EditorBrowsableAttribute(System.ComponentModel.EditorBrowsableState.Advanced)]
        GPSapp.terraService2.ConvertLonLatPtToNearestPlaceResponse GPSapp.terraService2.TerraServiceSoap.EndConvertLonLatPtToNearestPlace(System.IAsyncResult result) {
            return base.Channel.EndConvertLonLatPtToNearestPlace(result);
        }
        
        [System.ComponentModel.EditorBrowsableAttribute(System.ComponentModel.EditorBrowsableState.Advanced)]
        private string EndConvertLonLatPtToNearestPlace(System.IAsyncResult result) {
            GPSapp.terraService2.ConvertLonLatPtToNearestPlaceResponse retVal = ((GPSapp.terraService2.TerraServiceSoap)(this)).EndConvertLonLatPtToNearestPlace(result);
            return retVal.Body.ConvertLonLatPtToNearestPlaceResult;
        }
        
        private System.IAsyncResult OnBeginConvertLonLatPtToNearestPlace(object[] inValues, System.AsyncCallback callback, object asyncState) {
            GPSapp.terraService2.LonLatPt point = ((GPSapp.terraService2.LonLatPt)(inValues[0]));
            return this.BeginConvertLonLatPtToNearestPlace(point, callback, asyncState);
        }
        
        private object[] OnEndConvertLonLatPtToNearestPlace(System.IAsyncResult result) {
            string retVal = this.EndConvertLonLatPtToNearestPlace(result);
            return new object[] {
                    retVal};
        }
        
        private void OnConvertLonLatPtToNearestPlaceCompleted(object state) {
            if ((this.ConvertLonLatPtToNearestPlaceCompleted != null)) {
                InvokeAsyncCompletedEventArgs e = ((InvokeAsyncCompletedEventArgs)(state));
                this.ConvertLonLatPtToNearestPlaceCompleted(this, new ConvertLonLatPtToNearestPlaceCompletedEventArgs(e.Results, e.Error, e.Cancelled, e.UserState));
            }
        }
        
        public void ConvertLonLatPtToNearestPlaceAsync(GPSapp.terraService2.LonLatPt point) {
            this.ConvertLonLatPtToNearestPlaceAsync(point, null);
        }
        
        public void ConvertLonLatPtToNearestPlaceAsync(GPSapp.terraService2.LonLatPt point, object userState) {
            if ((this.onBeginConvertLonLatPtToNearestPlaceDelegate == null)) {
                this.onBeginConvertLonLatPtToNearestPlaceDelegate = new BeginOperationDelegate(this.OnBeginConvertLonLatPtToNearestPlace);
            }
            if ((this.onEndConvertLonLatPtToNearestPlaceDelegate == null)) {
                this.onEndConvertLonLatPtToNearestPlaceDelegate = new EndOperationDelegate(this.OnEndConvertLonLatPtToNearestPlace);
            }
            if ((this.onConvertLonLatPtToNearestPlaceCompletedDelegate == null)) {
                this.onConvertLonLatPtToNearestPlaceCompletedDelegate = new System.Threading.SendOrPostCallback(this.OnConvertLonLatPtToNearestPlaceCompleted);
            }
            base.InvokeAsync(this.onBeginConvertLonLatPtToNearestPlaceDelegate, new object[] {
                        point}, this.onEndConvertLonLatPtToNearestPlaceDelegate, this.onConvertLonLatPtToNearestPlaceCompletedDelegate, userState);
        }
        
        [System.ComponentModel.EditorBrowsableAttribute(System.ComponentModel.EditorBrowsableState.Advanced)]
        System.IAsyncResult GPSapp.terraService2.TerraServiceSoap.BeginConvertLonLatPtToUtmPt(GPSapp.terraService2.ConvertLonLatPtToUtmPtRequest request, System.AsyncCallback callback, object asyncState) {
            return base.Channel.BeginConvertLonLatPtToUtmPt(request, callback, asyncState);
        }
        
        [System.ComponentModel.EditorBrowsableAttribute(System.ComponentModel.EditorBrowsableState.Advanced)]
        private System.IAsyncResult BeginConvertLonLatPtToUtmPt(GPSapp.terraService2.LonLatPt point, System.AsyncCallback callback, object asyncState) {
            GPSapp.terraService2.ConvertLonLatPtToUtmPtRequest inValue = new GPSapp.terraService2.ConvertLonLatPtToUtmPtRequest();
            inValue.Body = new GPSapp.terraService2.ConvertLonLatPtToUtmPtRequestBody();
            inValue.Body.point = point;
            return ((GPSapp.terraService2.TerraServiceSoap)(this)).BeginConvertLonLatPtToUtmPt(inValue, callback, asyncState);
        }
        
        [System.ComponentModel.EditorBrowsableAttribute(System.ComponentModel.EditorBrowsableState.Advanced)]
        GPSapp.terraService2.ConvertLonLatPtToUtmPtResponse GPSapp.terraService2.TerraServiceSoap.EndConvertLonLatPtToUtmPt(System.IAsyncResult result) {
            return base.Channel.EndConvertLonLatPtToUtmPt(result);
        }
        
        [System.ComponentModel.EditorBrowsableAttribute(System.ComponentModel.EditorBrowsableState.Advanced)]
        private GPSapp.terraService2.UtmPt EndConvertLonLatPtToUtmPt(System.IAsyncResult result) {
            GPSapp.terraService2.ConvertLonLatPtToUtmPtResponse retVal = ((GPSapp.terraService2.TerraServiceSoap)(this)).EndConvertLonLatPtToUtmPt(result);
            return retVal.Body.ConvertLonLatPtToUtmPtResult;
        }
        
        private System.IAsyncResult OnBeginConvertLonLatPtToUtmPt(object[] inValues, System.AsyncCallback callback, object asyncState) {
            GPSapp.terraService2.LonLatPt point = ((GPSapp.terraService2.LonLatPt)(inValues[0]));
            return this.BeginConvertLonLatPtToUtmPt(point, callback, asyncState);
        }
        
        private object[] OnEndConvertLonLatPtToUtmPt(System.IAsyncResult result) {
            GPSapp.terraService2.UtmPt retVal = this.EndConvertLonLatPtToUtmPt(result);
            return new object[] {
                    retVal};
        }
        
        private void OnConvertLonLatPtToUtmPtCompleted(object state) {
            if ((this.ConvertLonLatPtToUtmPtCompleted != null)) {
                InvokeAsyncCompletedEventArgs e = ((InvokeAsyncCompletedEventArgs)(state));
                this.ConvertLonLatPtToUtmPtCompleted(this, new ConvertLonLatPtToUtmPtCompletedEventArgs(e.Results, e.Error, e.Cancelled, e.UserState));
            }
        }
        
        public void ConvertLonLatPtToUtmPtAsync(GPSapp.terraService2.LonLatPt point) {
            this.ConvertLonLatPtToUtmPtAsync(point, null);
        }
        
        public void ConvertLonLatPtToUtmPtAsync(GPSapp.terraService2.LonLatPt point, object userState) {
            if ((this.onBeginConvertLonLatPtToUtmPtDelegate == null)) {
                this.onBeginConvertLonLatPtToUtmPtDelegate = new BeginOperationDelegate(this.OnBeginConvertLonLatPtToUtmPt);
            }
            if ((this.onEndConvertLonLatPtToUtmPtDelegate == null)) {
                this.onEndConvertLonLatPtToUtmPtDelegate = new EndOperationDelegate(this.OnEndConvertLonLatPtToUtmPt);
            }
            if ((this.onConvertLonLatPtToUtmPtCompletedDelegate == null)) {
                this.onConvertLonLatPtToUtmPtCompletedDelegate = new System.Threading.SendOrPostCallback(this.OnConvertLonLatPtToUtmPtCompleted);
            }
            base.InvokeAsync(this.onBeginConvertLonLatPtToUtmPtDelegate, new object[] {
                        point}, this.onEndConvertLonLatPtToUtmPtDelegate, this.onConvertLonLatPtToUtmPtCompletedDelegate, userState);
        }
        
        [System.ComponentModel.EditorBrowsableAttribute(System.ComponentModel.EditorBrowsableState.Advanced)]
        System.IAsyncResult GPSapp.terraService2.TerraServiceSoap.BeginConvertUtmPtToLonLatPt(GPSapp.terraService2.ConvertUtmPtToLonLatPtRequest request, System.AsyncCallback callback, object asyncState) {
            return base.Channel.BeginConvertUtmPtToLonLatPt(request, callback, asyncState);
        }
        
        [System.ComponentModel.EditorBrowsableAttribute(System.ComponentModel.EditorBrowsableState.Advanced)]
        private System.IAsyncResult BeginConvertUtmPtToLonLatPt(GPSapp.terraService2.UtmPt utm, System.AsyncCallback callback, object asyncState) {
            GPSapp.terraService2.ConvertUtmPtToLonLatPtRequest inValue = new GPSapp.terraService2.ConvertUtmPtToLonLatPtRequest();
            inValue.Body = new GPSapp.terraService2.ConvertUtmPtToLonLatPtRequestBody();
            inValue.Body.utm = utm;
            return ((GPSapp.terraService2.TerraServiceSoap)(this)).BeginConvertUtmPtToLonLatPt(inValue, callback, asyncState);
        }
        
        [System.ComponentModel.EditorBrowsableAttribute(System.ComponentModel.EditorBrowsableState.Advanced)]
        GPSapp.terraService2.ConvertUtmPtToLonLatPtResponse GPSapp.terraService2.TerraServiceSoap.EndConvertUtmPtToLonLatPt(System.IAsyncResult result) {
            return base.Channel.EndConvertUtmPtToLonLatPt(result);
        }
        
        [System.ComponentModel.EditorBrowsableAttribute(System.ComponentModel.EditorBrowsableState.Advanced)]
        private GPSapp.terraService2.LonLatPt EndConvertUtmPtToLonLatPt(System.IAsyncResult result) {
            GPSapp.terraService2.ConvertUtmPtToLonLatPtResponse retVal = ((GPSapp.terraService2.TerraServiceSoap)(this)).EndConvertUtmPtToLonLatPt(result);
            return retVal.Body.ConvertUtmPtToLonLatPtResult;
        }
        
        private System.IAsyncResult OnBeginConvertUtmPtToLonLatPt(object[] inValues, System.AsyncCallback callback, object asyncState) {
            GPSapp.terraService2.UtmPt utm = ((GPSapp.terraService2.UtmPt)(inValues[0]));
            return this.BeginConvertUtmPtToLonLatPt(utm, callback, asyncState);
        }
        
        private object[] OnEndConvertUtmPtToLonLatPt(System.IAsyncResult result) {
            GPSapp.terraService2.LonLatPt retVal = this.EndConvertUtmPtToLonLatPt(result);
            return new object[] {
                    retVal};
        }
        
        private void OnConvertUtmPtToLonLatPtCompleted(object state) {
            if ((this.ConvertUtmPtToLonLatPtCompleted != null)) {
                InvokeAsyncCompletedEventArgs e = ((InvokeAsyncCompletedEventArgs)(state));
                this.ConvertUtmPtToLonLatPtCompleted(this, new ConvertUtmPtToLonLatPtCompletedEventArgs(e.Results, e.Error, e.Cancelled, e.UserState));
            }
        }
        
        public void ConvertUtmPtToLonLatPtAsync(GPSapp.terraService2.UtmPt utm) {
            this.ConvertUtmPtToLonLatPtAsync(utm, null);
        }
        
        public void ConvertUtmPtToLonLatPtAsync(GPSapp.terraService2.UtmPt utm, object userState) {
            if ((this.onBeginConvertUtmPtToLonLatPtDelegate == null)) {
                this.onBeginConvertUtmPtToLonLatPtDelegate = new BeginOperationDelegate(this.OnBeginConvertUtmPtToLonLatPt);
            }
            if ((this.onEndConvertUtmPtToLonLatPtDelegate == null)) {
                this.onEndConvertUtmPtToLonLatPtDelegate = new EndOperationDelegate(this.OnEndConvertUtmPtToLonLatPt);
            }
            if ((this.onConvertUtmPtToLonLatPtCompletedDelegate == null)) {
                this.onConvertUtmPtToLonLatPtCompletedDelegate = new System.Threading.SendOrPostCallback(this.OnConvertUtmPtToLonLatPtCompleted);
            }
            base.InvokeAsync(this.onBeginConvertUtmPtToLonLatPtDelegate, new object[] {
                        utm}, this.onEndConvertUtmPtToLonLatPtDelegate, this.onConvertUtmPtToLonLatPtCompletedDelegate, userState);
        }
        
        [System.ComponentModel.EditorBrowsableAttribute(System.ComponentModel.EditorBrowsableState.Advanced)]
        System.IAsyncResult GPSapp.terraService2.TerraServiceSoap.BeginConvertPlaceToLonLatPt(GPSapp.terraService2.ConvertPlaceToLonLatPtRequest request, System.AsyncCallback callback, object asyncState) {
            return base.Channel.BeginConvertPlaceToLonLatPt(request, callback, asyncState);
        }
        
        [System.ComponentModel.EditorBrowsableAttribute(System.ComponentModel.EditorBrowsableState.Advanced)]
        private System.IAsyncResult BeginConvertPlaceToLonLatPt(GPSapp.terraService2.Place place, System.AsyncCallback callback, object asyncState) {
            GPSapp.terraService2.ConvertPlaceToLonLatPtRequest inValue = new GPSapp.terraService2.ConvertPlaceToLonLatPtRequest();
            inValue.Body = new GPSapp.terraService2.ConvertPlaceToLonLatPtRequestBody();
            inValue.Body.place = place;
            return ((GPSapp.terraService2.TerraServiceSoap)(this)).BeginConvertPlaceToLonLatPt(inValue, callback, asyncState);
        }
        
        [System.ComponentModel.EditorBrowsableAttribute(System.ComponentModel.EditorBrowsableState.Advanced)]
        GPSapp.terraService2.ConvertPlaceToLonLatPtResponse GPSapp.terraService2.TerraServiceSoap.EndConvertPlaceToLonLatPt(System.IAsyncResult result) {
            return base.Channel.EndConvertPlaceToLonLatPt(result);
        }
        
        [System.ComponentModel.EditorBrowsableAttribute(System.ComponentModel.EditorBrowsableState.Advanced)]
        private GPSapp.terraService2.LonLatPt EndConvertPlaceToLonLatPt(System.IAsyncResult result) {
            GPSapp.terraService2.ConvertPlaceToLonLatPtResponse retVal = ((GPSapp.terraService2.TerraServiceSoap)(this)).EndConvertPlaceToLonLatPt(result);
            return retVal.Body.ConvertPlaceToLonLatPtResult;
        }
        
        private System.IAsyncResult OnBeginConvertPlaceToLonLatPt(object[] inValues, System.AsyncCallback callback, object asyncState) {
            GPSapp.terraService2.Place place = ((GPSapp.terraService2.Place)(inValues[0]));
            return this.BeginConvertPlaceToLonLatPt(place, callback, asyncState);
        }
        
        private object[] OnEndConvertPlaceToLonLatPt(System.IAsyncResult result) {
            GPSapp.terraService2.LonLatPt retVal = this.EndConvertPlaceToLonLatPt(result);
            return new object[] {
                    retVal};
        }
        
        private void OnConvertPlaceToLonLatPtCompleted(object state) {
            if ((this.ConvertPlaceToLonLatPtCompleted != null)) {
                InvokeAsyncCompletedEventArgs e = ((InvokeAsyncCompletedEventArgs)(state));
                this.ConvertPlaceToLonLatPtCompleted(this, new ConvertPlaceToLonLatPtCompletedEventArgs(e.Results, e.Error, e.Cancelled, e.UserState));
            }
        }
        
        public void ConvertPlaceToLonLatPtAsync(GPSapp.terraService2.Place place) {
            this.ConvertPlaceToLonLatPtAsync(place, null);
        }
        
        public void ConvertPlaceToLonLatPtAsync(GPSapp.terraService2.Place place, object userState) {
            if ((this.onBeginConvertPlaceToLonLatPtDelegate == null)) {
                this.onBeginConvertPlaceToLonLatPtDelegate = new BeginOperationDelegate(this.OnBeginConvertPlaceToLonLatPt);
            }
            if ((this.onEndConvertPlaceToLonLatPtDelegate == null)) {
                this.onEndConvertPlaceToLonLatPtDelegate = new EndOperationDelegate(this.OnEndConvertPlaceToLonLatPt);
            }
            if ((this.onConvertPlaceToLonLatPtCompletedDelegate == null)) {
                this.onConvertPlaceToLonLatPtCompletedDelegate = new System.Threading.SendOrPostCallback(this.OnConvertPlaceToLonLatPtCompleted);
            }
            base.InvokeAsync(this.onBeginConvertPlaceToLonLatPtDelegate, new object[] {
                        place}, this.onEndConvertPlaceToLonLatPtDelegate, this.onConvertPlaceToLonLatPtCompletedDelegate, userState);
        }
        
        [System.ComponentModel.EditorBrowsableAttribute(System.ComponentModel.EditorBrowsableState.Advanced)]
        System.IAsyncResult GPSapp.terraService2.TerraServiceSoap.BeginCountPlacesInRect(GPSapp.terraService2.CountPlacesInRectRequest request, System.AsyncCallback callback, object asyncState) {
            return base.Channel.BeginCountPlacesInRect(request, callback, asyncState);
        }
        
        [System.ComponentModel.EditorBrowsableAttribute(System.ComponentModel.EditorBrowsableState.Advanced)]
        private System.IAsyncResult BeginCountPlacesInRect(GPSapp.terraService2.LonLatPt upperleft, GPSapp.terraService2.LonLatPt lowerright, GPSapp.terraService2.PlaceType ptype, System.AsyncCallback callback, object asyncState) {
            GPSapp.terraService2.CountPlacesInRectRequest inValue = new GPSapp.terraService2.CountPlacesInRectRequest();
            inValue.Body = new GPSapp.terraService2.CountPlacesInRectRequestBody();
            inValue.Body.upperleft = upperleft;
            inValue.Body.lowerright = lowerright;
            inValue.Body.ptype = ptype;
            return ((GPSapp.terraService2.TerraServiceSoap)(this)).BeginCountPlacesInRect(inValue, callback, asyncState);
        }
        
        [System.ComponentModel.EditorBrowsableAttribute(System.ComponentModel.EditorBrowsableState.Advanced)]
        GPSapp.terraService2.CountPlacesInRectResponse GPSapp.terraService2.TerraServiceSoap.EndCountPlacesInRect(System.IAsyncResult result) {
            return base.Channel.EndCountPlacesInRect(result);
        }
        
        [System.ComponentModel.EditorBrowsableAttribute(System.ComponentModel.EditorBrowsableState.Advanced)]
        private int EndCountPlacesInRect(System.IAsyncResult result) {
            GPSapp.terraService2.CountPlacesInRectResponse retVal = ((GPSapp.terraService2.TerraServiceSoap)(this)).EndCountPlacesInRect(result);
            return retVal.Body.CountPlacesInRectResult;
        }
        
        private System.IAsyncResult OnBeginCountPlacesInRect(object[] inValues, System.AsyncCallback callback, object asyncState) {
            GPSapp.terraService2.LonLatPt upperleft = ((GPSapp.terraService2.LonLatPt)(inValues[0]));
            GPSapp.terraService2.LonLatPt lowerright = ((GPSapp.terraService2.LonLatPt)(inValues[1]));
            GPSapp.terraService2.PlaceType ptype = ((GPSapp.terraService2.PlaceType)(inValues[2]));
            return this.BeginCountPlacesInRect(upperleft, lowerright, ptype, callback, asyncState);
        }
        
        private object[] OnEndCountPlacesInRect(System.IAsyncResult result) {
            int retVal = this.EndCountPlacesInRect(result);
            return new object[] {
                    retVal};
        }
        
        private void OnCountPlacesInRectCompleted(object state) {
            if ((this.CountPlacesInRectCompleted != null)) {
                InvokeAsyncCompletedEventArgs e = ((InvokeAsyncCompletedEventArgs)(state));
                this.CountPlacesInRectCompleted(this, new CountPlacesInRectCompletedEventArgs(e.Results, e.Error, e.Cancelled, e.UserState));
            }
        }
        
        public void CountPlacesInRectAsync(GPSapp.terraService2.LonLatPt upperleft, GPSapp.terraService2.LonLatPt lowerright, GPSapp.terraService2.PlaceType ptype) {
            this.CountPlacesInRectAsync(upperleft, lowerright, ptype, null);
        }
        
        public void CountPlacesInRectAsync(GPSapp.terraService2.LonLatPt upperleft, GPSapp.terraService2.LonLatPt lowerright, GPSapp.terraService2.PlaceType ptype, object userState) {
            if ((this.onBeginCountPlacesInRectDelegate == null)) {
                this.onBeginCountPlacesInRectDelegate = new BeginOperationDelegate(this.OnBeginCountPlacesInRect);
            }
            if ((this.onEndCountPlacesInRectDelegate == null)) {
                this.onEndCountPlacesInRectDelegate = new EndOperationDelegate(this.OnEndCountPlacesInRect);
            }
            if ((this.onCountPlacesInRectCompletedDelegate == null)) {
                this.onCountPlacesInRectCompletedDelegate = new System.Threading.SendOrPostCallback(this.OnCountPlacesInRectCompleted);
            }
            base.InvokeAsync(this.onBeginCountPlacesInRectDelegate, new object[] {
                        upperleft,
                        lowerright,
                        ptype}, this.onEndCountPlacesInRectDelegate, this.onCountPlacesInRectCompletedDelegate, userState);
        }
        
        [System.ComponentModel.EditorBrowsableAttribute(System.ComponentModel.EditorBrowsableState.Advanced)]
        System.IAsyncResult GPSapp.terraService2.TerraServiceSoap.BeginGetAreaFromPt(GPSapp.terraService2.GetAreaFromPtRequest request, System.AsyncCallback callback, object asyncState) {
            return base.Channel.BeginGetAreaFromPt(request, callback, asyncState);
        }
        
        [System.ComponentModel.EditorBrowsableAttribute(System.ComponentModel.EditorBrowsableState.Advanced)]
        private System.IAsyncResult BeginGetAreaFromPt(GPSapp.terraService2.LonLatPt center, int theme, GPSapp.terraService2.Scale scale, int displayPixWidth, int displayPixHeight, System.AsyncCallback callback, object asyncState) {
            GPSapp.terraService2.GetAreaFromPtRequest inValue = new GPSapp.terraService2.GetAreaFromPtRequest();
            inValue.Body = new GPSapp.terraService2.GetAreaFromPtRequestBody();
            inValue.Body.center = center;
            inValue.Body.theme = theme;
            inValue.Body.scale = scale;
            inValue.Body.displayPixWidth = displayPixWidth;
            inValue.Body.displayPixHeight = displayPixHeight;
            return ((GPSapp.terraService2.TerraServiceSoap)(this)).BeginGetAreaFromPt(inValue, callback, asyncState);
        }
        
        [System.ComponentModel.EditorBrowsableAttribute(System.ComponentModel.EditorBrowsableState.Advanced)]
        GPSapp.terraService2.GetAreaFromPtResponse GPSapp.terraService2.TerraServiceSoap.EndGetAreaFromPt(System.IAsyncResult result) {
            return base.Channel.EndGetAreaFromPt(result);
        }
        
        [System.ComponentModel.EditorBrowsableAttribute(System.ComponentModel.EditorBrowsableState.Advanced)]
        private GPSapp.terraService2.AreaBoundingBox EndGetAreaFromPt(System.IAsyncResult result) {
            GPSapp.terraService2.GetAreaFromPtResponse retVal = ((GPSapp.terraService2.TerraServiceSoap)(this)).EndGetAreaFromPt(result);
            return retVal.Body.GetAreaFromPtResult;
        }
        
        private System.IAsyncResult OnBeginGetAreaFromPt(object[] inValues, System.AsyncCallback callback, object asyncState) {
            GPSapp.terraService2.LonLatPt center = ((GPSapp.terraService2.LonLatPt)(inValues[0]));
            int theme = ((int)(inValues[1]));
            GPSapp.terraService2.Scale scale = ((GPSapp.terraService2.Scale)(inValues[2]));
            int displayPixWidth = ((int)(inValues[3]));
            int displayPixHeight = ((int)(inValues[4]));
            return this.BeginGetAreaFromPt(center, theme, scale, displayPixWidth, displayPixHeight, callback, asyncState);
        }
        
        private object[] OnEndGetAreaFromPt(System.IAsyncResult result) {
            GPSapp.terraService2.AreaBoundingBox retVal = this.EndGetAreaFromPt(result);
            return new object[] {
                    retVal};
        }
        
        private void OnGetAreaFromPtCompleted(object state) {
            if ((this.GetAreaFromPtCompleted != null)) {
                InvokeAsyncCompletedEventArgs e = ((InvokeAsyncCompletedEventArgs)(state));
                this.GetAreaFromPtCompleted(this, new GetAreaFromPtCompletedEventArgs(e.Results, e.Error, e.Cancelled, e.UserState));
            }
        }
        
        public void GetAreaFromPtAsync(GPSapp.terraService2.LonLatPt center, int theme, GPSapp.terraService2.Scale scale, int displayPixWidth, int displayPixHeight) {
            this.GetAreaFromPtAsync(center, theme, scale, displayPixWidth, displayPixHeight, null);
        }
        
        public void GetAreaFromPtAsync(GPSapp.terraService2.LonLatPt center, int theme, GPSapp.terraService2.Scale scale, int displayPixWidth, int displayPixHeight, object userState) {
            if ((this.onBeginGetAreaFromPtDelegate == null)) {
                this.onBeginGetAreaFromPtDelegate = new BeginOperationDelegate(this.OnBeginGetAreaFromPt);
            }
            if ((this.onEndGetAreaFromPtDelegate == null)) {
                this.onEndGetAreaFromPtDelegate = new EndOperationDelegate(this.OnEndGetAreaFromPt);
            }
            if ((this.onGetAreaFromPtCompletedDelegate == null)) {
                this.onGetAreaFromPtCompletedDelegate = new System.Threading.SendOrPostCallback(this.OnGetAreaFromPtCompleted);
            }
            base.InvokeAsync(this.onBeginGetAreaFromPtDelegate, new object[] {
                        center,
                        theme,
                        scale,
                        displayPixWidth,
                        displayPixHeight}, this.onEndGetAreaFromPtDelegate, this.onGetAreaFromPtCompletedDelegate, userState);
        }
        
        [System.ComponentModel.EditorBrowsableAttribute(System.ComponentModel.EditorBrowsableState.Advanced)]
        System.IAsyncResult GPSapp.terraService2.TerraServiceSoap.BeginGetAreaFromRect(GPSapp.terraService2.GetAreaFromRectRequest request, System.AsyncCallback callback, object asyncState) {
            return base.Channel.BeginGetAreaFromRect(request, callback, asyncState);
        }
        
        [System.ComponentModel.EditorBrowsableAttribute(System.ComponentModel.EditorBrowsableState.Advanced)]
        private System.IAsyncResult BeginGetAreaFromRect(GPSapp.terraService2.LonLatPt upperLeft, GPSapp.terraService2.LonLatPt lowerRight, int theme, GPSapp.terraService2.Scale scale, System.AsyncCallback callback, object asyncState) {
            GPSapp.terraService2.GetAreaFromRectRequest inValue = new GPSapp.terraService2.GetAreaFromRectRequest();
            inValue.Body = new GPSapp.terraService2.GetAreaFromRectRequestBody();
            inValue.Body.upperLeft = upperLeft;
            inValue.Body.lowerRight = lowerRight;
            inValue.Body.theme = theme;
            inValue.Body.scale = scale;
            return ((GPSapp.terraService2.TerraServiceSoap)(this)).BeginGetAreaFromRect(inValue, callback, asyncState);
        }
        
        [System.ComponentModel.EditorBrowsableAttribute(System.ComponentModel.EditorBrowsableState.Advanced)]
        GPSapp.terraService2.GetAreaFromRectResponse GPSapp.terraService2.TerraServiceSoap.EndGetAreaFromRect(System.IAsyncResult result) {
            return base.Channel.EndGetAreaFromRect(result);
        }
        
        [System.ComponentModel.EditorBrowsableAttribute(System.ComponentModel.EditorBrowsableState.Advanced)]
        private GPSapp.terraService2.AreaBoundingBox EndGetAreaFromRect(System.IAsyncResult result) {
            GPSapp.terraService2.GetAreaFromRectResponse retVal = ((GPSapp.terraService2.TerraServiceSoap)(this)).EndGetAreaFromRect(result);
            return retVal.Body.GetAreaFromRectResult;
        }
        
        private System.IAsyncResult OnBeginGetAreaFromRect(object[] inValues, System.AsyncCallback callback, object asyncState) {
            GPSapp.terraService2.LonLatPt upperLeft = ((GPSapp.terraService2.LonLatPt)(inValues[0]));
            GPSapp.terraService2.LonLatPt lowerRight = ((GPSapp.terraService2.LonLatPt)(inValues[1]));
            int theme = ((int)(inValues[2]));
            GPSapp.terraService2.Scale scale = ((GPSapp.terraService2.Scale)(inValues[3]));
            return this.BeginGetAreaFromRect(upperLeft, lowerRight, theme, scale, callback, asyncState);
        }
        
        private object[] OnEndGetAreaFromRect(System.IAsyncResult result) {
            GPSapp.terraService2.AreaBoundingBox retVal = this.EndGetAreaFromRect(result);
            return new object[] {
                    retVal};
        }
        
        private void OnGetAreaFromRectCompleted(object state) {
            if ((this.GetAreaFromRectCompleted != null)) {
                InvokeAsyncCompletedEventArgs e = ((InvokeAsyncCompletedEventArgs)(state));
                this.GetAreaFromRectCompleted(this, new GetAreaFromRectCompletedEventArgs(e.Results, e.Error, e.Cancelled, e.UserState));
            }
        }
        
        public void GetAreaFromRectAsync(GPSapp.terraService2.LonLatPt upperLeft, GPSapp.terraService2.LonLatPt lowerRight, int theme, GPSapp.terraService2.Scale scale) {
            this.GetAreaFromRectAsync(upperLeft, lowerRight, theme, scale, null);
        }
        
        public void GetAreaFromRectAsync(GPSapp.terraService2.LonLatPt upperLeft, GPSapp.terraService2.LonLatPt lowerRight, int theme, GPSapp.terraService2.Scale scale, object userState) {
            if ((this.onBeginGetAreaFromRectDelegate == null)) {
                this.onBeginGetAreaFromRectDelegate = new BeginOperationDelegate(this.OnBeginGetAreaFromRect);
            }
            if ((this.onEndGetAreaFromRectDelegate == null)) {
                this.onEndGetAreaFromRectDelegate = new EndOperationDelegate(this.OnEndGetAreaFromRect);
            }
            if ((this.onGetAreaFromRectCompletedDelegate == null)) {
                this.onGetAreaFromRectCompletedDelegate = new System.Threading.SendOrPostCallback(this.OnGetAreaFromRectCompleted);
            }
            base.InvokeAsync(this.onBeginGetAreaFromRectDelegate, new object[] {
                        upperLeft,
                        lowerRight,
                        theme,
                        scale}, this.onEndGetAreaFromRectDelegate, this.onGetAreaFromRectCompletedDelegate, userState);
        }
        
        [System.ComponentModel.EditorBrowsableAttribute(System.ComponentModel.EditorBrowsableState.Advanced)]
        System.IAsyncResult GPSapp.terraService2.TerraServiceSoap.BeginGetAreaFromTileId(GPSapp.terraService2.GetAreaFromTileIdRequest request, System.AsyncCallback callback, object asyncState) {
            return base.Channel.BeginGetAreaFromTileId(request, callback, asyncState);
        }
        
        [System.ComponentModel.EditorBrowsableAttribute(System.ComponentModel.EditorBrowsableState.Advanced)]
        private System.IAsyncResult BeginGetAreaFromTileId(GPSapp.terraService2.TileId id, int displayPixWidth, int displayPixHeight, System.AsyncCallback callback, object asyncState) {
            GPSapp.terraService2.GetAreaFromTileIdRequest inValue = new GPSapp.terraService2.GetAreaFromTileIdRequest();
            inValue.Body = new GPSapp.terraService2.GetAreaFromTileIdRequestBody();
            inValue.Body.id = id;
            inValue.Body.displayPixWidth = displayPixWidth;
            inValue.Body.displayPixHeight = displayPixHeight;
            return ((GPSapp.terraService2.TerraServiceSoap)(this)).BeginGetAreaFromTileId(inValue, callback, asyncState);
        }
        
        [System.ComponentModel.EditorBrowsableAttribute(System.ComponentModel.EditorBrowsableState.Advanced)]
        GPSapp.terraService2.GetAreaFromTileIdResponse GPSapp.terraService2.TerraServiceSoap.EndGetAreaFromTileId(System.IAsyncResult result) {
            return base.Channel.EndGetAreaFromTileId(result);
        }
        
        [System.ComponentModel.EditorBrowsableAttribute(System.ComponentModel.EditorBrowsableState.Advanced)]
        private GPSapp.terraService2.AreaBoundingBox EndGetAreaFromTileId(System.IAsyncResult result) {
            GPSapp.terraService2.GetAreaFromTileIdResponse retVal = ((GPSapp.terraService2.TerraServiceSoap)(this)).EndGetAreaFromTileId(result);
            return retVal.Body.GetAreaFromTileIdResult;
        }
        
        private System.IAsyncResult OnBeginGetAreaFromTileId(object[] inValues, System.AsyncCallback callback, object asyncState) {
            GPSapp.terraService2.TileId id = ((GPSapp.terraService2.TileId)(inValues[0]));
            int displayPixWidth = ((int)(inValues[1]));
            int displayPixHeight = ((int)(inValues[2]));
            return this.BeginGetAreaFromTileId(id, displayPixWidth, displayPixHeight, callback, asyncState);
        }
        
        private object[] OnEndGetAreaFromTileId(System.IAsyncResult result) {
            GPSapp.terraService2.AreaBoundingBox retVal = this.EndGetAreaFromTileId(result);
            return new object[] {
                    retVal};
        }
        
        private void OnGetAreaFromTileIdCompleted(object state) {
            if ((this.GetAreaFromTileIdCompleted != null)) {
                InvokeAsyncCompletedEventArgs e = ((InvokeAsyncCompletedEventArgs)(state));
                this.GetAreaFromTileIdCompleted(this, new GetAreaFromTileIdCompletedEventArgs(e.Results, e.Error, e.Cancelled, e.UserState));
            }
        }
        
        public void GetAreaFromTileIdAsync(GPSapp.terraService2.TileId id, int displayPixWidth, int displayPixHeight) {
            this.GetAreaFromTileIdAsync(id, displayPixWidth, displayPixHeight, null);
        }
        
        public void GetAreaFromTileIdAsync(GPSapp.terraService2.TileId id, int displayPixWidth, int displayPixHeight, object userState) {
            if ((this.onBeginGetAreaFromTileIdDelegate == null)) {
                this.onBeginGetAreaFromTileIdDelegate = new BeginOperationDelegate(this.OnBeginGetAreaFromTileId);
            }
            if ((this.onEndGetAreaFromTileIdDelegate == null)) {
                this.onEndGetAreaFromTileIdDelegate = new EndOperationDelegate(this.OnEndGetAreaFromTileId);
            }
            if ((this.onGetAreaFromTileIdCompletedDelegate == null)) {
                this.onGetAreaFromTileIdCompletedDelegate = new System.Threading.SendOrPostCallback(this.OnGetAreaFromTileIdCompleted);
            }
            base.InvokeAsync(this.onBeginGetAreaFromTileIdDelegate, new object[] {
                        id,
                        displayPixWidth,
                        displayPixHeight}, this.onEndGetAreaFromTileIdDelegate, this.onGetAreaFromTileIdCompletedDelegate, userState);
        }
        
        [System.ComponentModel.EditorBrowsableAttribute(System.ComponentModel.EditorBrowsableState.Advanced)]
        System.IAsyncResult GPSapp.terraService2.TerraServiceSoap.BeginGetLatLonMetrics(GPSapp.terraService2.GetLatLonMetricsRequest request, System.AsyncCallback callback, object asyncState) {
            return base.Channel.BeginGetLatLonMetrics(request, callback, asyncState);
        }
        
        [System.ComponentModel.EditorBrowsableAttribute(System.ComponentModel.EditorBrowsableState.Advanced)]
        private System.IAsyncResult BeginGetLatLonMetrics(GPSapp.terraService2.LonLatPt point, System.AsyncCallback callback, object asyncState) {
            GPSapp.terraService2.GetLatLonMetricsRequest inValue = new GPSapp.terraService2.GetLatLonMetricsRequest();
            inValue.Body = new GPSapp.terraService2.GetLatLonMetricsRequestBody();
            inValue.Body.point = point;
            return ((GPSapp.terraService2.TerraServiceSoap)(this)).BeginGetLatLonMetrics(inValue, callback, asyncState);
        }
        
        [System.ComponentModel.EditorBrowsableAttribute(System.ComponentModel.EditorBrowsableState.Advanced)]
        GPSapp.terraService2.GetLatLonMetricsResponse GPSapp.terraService2.TerraServiceSoap.EndGetLatLonMetrics(System.IAsyncResult result) {
            return base.Channel.EndGetLatLonMetrics(result);
        }
        
        [System.ComponentModel.EditorBrowsableAttribute(System.ComponentModel.EditorBrowsableState.Advanced)]
        private System.Collections.ObjectModel.ObservableCollection<GPSapp.terraService2.ThemeBoundingBox> EndGetLatLonMetrics(System.IAsyncResult result) {
            GPSapp.terraService2.GetLatLonMetricsResponse retVal = ((GPSapp.terraService2.TerraServiceSoap)(this)).EndGetLatLonMetrics(result);
            return retVal.Body.GetLatLonMetricsResult;
        }
        
        private System.IAsyncResult OnBeginGetLatLonMetrics(object[] inValues, System.AsyncCallback callback, object asyncState) {
            GPSapp.terraService2.LonLatPt point = ((GPSapp.terraService2.LonLatPt)(inValues[0]));
            return this.BeginGetLatLonMetrics(point, callback, asyncState);
        }
        
        private object[] OnEndGetLatLonMetrics(System.IAsyncResult result) {
            System.Collections.ObjectModel.ObservableCollection<GPSapp.terraService2.ThemeBoundingBox> retVal = this.EndGetLatLonMetrics(result);
            return new object[] {
                    retVal};
        }
        
        private void OnGetLatLonMetricsCompleted(object state) {
            if ((this.GetLatLonMetricsCompleted != null)) {
                InvokeAsyncCompletedEventArgs e = ((InvokeAsyncCompletedEventArgs)(state));
                this.GetLatLonMetricsCompleted(this, new GetLatLonMetricsCompletedEventArgs(e.Results, e.Error, e.Cancelled, e.UserState));
            }
        }
        
        public void GetLatLonMetricsAsync(GPSapp.terraService2.LonLatPt point) {
            this.GetLatLonMetricsAsync(point, null);
        }
        
        public void GetLatLonMetricsAsync(GPSapp.terraService2.LonLatPt point, object userState) {
            if ((this.onBeginGetLatLonMetricsDelegate == null)) {
                this.onBeginGetLatLonMetricsDelegate = new BeginOperationDelegate(this.OnBeginGetLatLonMetrics);
            }
            if ((this.onEndGetLatLonMetricsDelegate == null)) {
                this.onEndGetLatLonMetricsDelegate = new EndOperationDelegate(this.OnEndGetLatLonMetrics);
            }
            if ((this.onGetLatLonMetricsCompletedDelegate == null)) {
                this.onGetLatLonMetricsCompletedDelegate = new System.Threading.SendOrPostCallback(this.OnGetLatLonMetricsCompleted);
            }
            base.InvokeAsync(this.onBeginGetLatLonMetricsDelegate, new object[] {
                        point}, this.onEndGetLatLonMetricsDelegate, this.onGetLatLonMetricsCompletedDelegate, userState);
        }
        
        [System.ComponentModel.EditorBrowsableAttribute(System.ComponentModel.EditorBrowsableState.Advanced)]
        System.IAsyncResult GPSapp.terraService2.TerraServiceSoap.BeginGetPlaceFacts(GPSapp.terraService2.GetPlaceFactsRequest request, System.AsyncCallback callback, object asyncState) {
            return base.Channel.BeginGetPlaceFacts(request, callback, asyncState);
        }
        
        [System.ComponentModel.EditorBrowsableAttribute(System.ComponentModel.EditorBrowsableState.Advanced)]
        private System.IAsyncResult BeginGetPlaceFacts(GPSapp.terraService2.Place place, System.AsyncCallback callback, object asyncState) {
            GPSapp.terraService2.GetPlaceFactsRequest inValue = new GPSapp.terraService2.GetPlaceFactsRequest();
            inValue.Body = new GPSapp.terraService2.GetPlaceFactsRequestBody();
            inValue.Body.place = place;
            return ((GPSapp.terraService2.TerraServiceSoap)(this)).BeginGetPlaceFacts(inValue, callback, asyncState);
        }
        
        [System.ComponentModel.EditorBrowsableAttribute(System.ComponentModel.EditorBrowsableState.Advanced)]
        GPSapp.terraService2.GetPlaceFactsResponse GPSapp.terraService2.TerraServiceSoap.EndGetPlaceFacts(System.IAsyncResult result) {
            return base.Channel.EndGetPlaceFacts(result);
        }
        
        [System.ComponentModel.EditorBrowsableAttribute(System.ComponentModel.EditorBrowsableState.Advanced)]
        private GPSapp.terraService2.PlaceFacts EndGetPlaceFacts(System.IAsyncResult result) {
            GPSapp.terraService2.GetPlaceFactsResponse retVal = ((GPSapp.terraService2.TerraServiceSoap)(this)).EndGetPlaceFacts(result);
            return retVal.Body.GetPlaceFactsResult;
        }
        
        private System.IAsyncResult OnBeginGetPlaceFacts(object[] inValues, System.AsyncCallback callback, object asyncState) {
            GPSapp.terraService2.Place place = ((GPSapp.terraService2.Place)(inValues[0]));
            return this.BeginGetPlaceFacts(place, callback, asyncState);
        }
        
        private object[] OnEndGetPlaceFacts(System.IAsyncResult result) {
            GPSapp.terraService2.PlaceFacts retVal = this.EndGetPlaceFacts(result);
            return new object[] {
                    retVal};
        }
        
        private void OnGetPlaceFactsCompleted(object state) {
            if ((this.GetPlaceFactsCompleted != null)) {
                InvokeAsyncCompletedEventArgs e = ((InvokeAsyncCompletedEventArgs)(state));
                this.GetPlaceFactsCompleted(this, new GetPlaceFactsCompletedEventArgs(e.Results, e.Error, e.Cancelled, e.UserState));
            }
        }
        
        public void GetPlaceFactsAsync(GPSapp.terraService2.Place place) {
            this.GetPlaceFactsAsync(place, null);
        }
        
        public void GetPlaceFactsAsync(GPSapp.terraService2.Place place, object userState) {
            if ((this.onBeginGetPlaceFactsDelegate == null)) {
                this.onBeginGetPlaceFactsDelegate = new BeginOperationDelegate(this.OnBeginGetPlaceFacts);
            }
            if ((this.onEndGetPlaceFactsDelegate == null)) {
                this.onEndGetPlaceFactsDelegate = new EndOperationDelegate(this.OnEndGetPlaceFacts);
            }
            if ((this.onGetPlaceFactsCompletedDelegate == null)) {
                this.onGetPlaceFactsCompletedDelegate = new System.Threading.SendOrPostCallback(this.OnGetPlaceFactsCompleted);
            }
            base.InvokeAsync(this.onBeginGetPlaceFactsDelegate, new object[] {
                        place}, this.onEndGetPlaceFactsDelegate, this.onGetPlaceFactsCompletedDelegate, userState);
        }
        
        [System.ComponentModel.EditorBrowsableAttribute(System.ComponentModel.EditorBrowsableState.Advanced)]
        System.IAsyncResult GPSapp.terraService2.TerraServiceSoap.BeginGetPlaceList(GPSapp.terraService2.GetPlaceListRequest request, System.AsyncCallback callback, object asyncState) {
            return base.Channel.BeginGetPlaceList(request, callback, asyncState);
        }
        
        [System.ComponentModel.EditorBrowsableAttribute(System.ComponentModel.EditorBrowsableState.Advanced)]
        private System.IAsyncResult BeginGetPlaceList(string placeName, int MaxItems, bool imagePresence, System.AsyncCallback callback, object asyncState) {
            GPSapp.terraService2.GetPlaceListRequest inValue = new GPSapp.terraService2.GetPlaceListRequest();
            inValue.Body = new GPSapp.terraService2.GetPlaceListRequestBody();
            inValue.Body.placeName = placeName;
            inValue.Body.MaxItems = MaxItems;
            inValue.Body.imagePresence = imagePresence;
            return ((GPSapp.terraService2.TerraServiceSoap)(this)).BeginGetPlaceList(inValue, callback, asyncState);
        }
        
        [System.ComponentModel.EditorBrowsableAttribute(System.ComponentModel.EditorBrowsableState.Advanced)]
        GPSapp.terraService2.GetPlaceListResponse GPSapp.terraService2.TerraServiceSoap.EndGetPlaceList(System.IAsyncResult result) {
            return base.Channel.EndGetPlaceList(result);
        }
        
        [System.ComponentModel.EditorBrowsableAttribute(System.ComponentModel.EditorBrowsableState.Advanced)]
        private System.Collections.ObjectModel.ObservableCollection<GPSapp.terraService2.PlaceFacts> EndGetPlaceList(System.IAsyncResult result) {
            GPSapp.terraService2.GetPlaceListResponse retVal = ((GPSapp.terraService2.TerraServiceSoap)(this)).EndGetPlaceList(result);
            return retVal.Body.GetPlaceListResult;
        }
        
        private System.IAsyncResult OnBeginGetPlaceList(object[] inValues, System.AsyncCallback callback, object asyncState) {
            string placeName = ((string)(inValues[0]));
            int MaxItems = ((int)(inValues[1]));
            bool imagePresence = ((bool)(inValues[2]));
            return this.BeginGetPlaceList(placeName, MaxItems, imagePresence, callback, asyncState);
        }
        
        private object[] OnEndGetPlaceList(System.IAsyncResult result) {
            System.Collections.ObjectModel.ObservableCollection<GPSapp.terraService2.PlaceFacts> retVal = this.EndGetPlaceList(result);
            return new object[] {
                    retVal};
        }
        
        private void OnGetPlaceListCompleted(object state) {
            if ((this.GetPlaceListCompleted != null)) {
                InvokeAsyncCompletedEventArgs e = ((InvokeAsyncCompletedEventArgs)(state));
                this.GetPlaceListCompleted(this, new GetPlaceListCompletedEventArgs(e.Results, e.Error, e.Cancelled, e.UserState));
            }
        }
        
        public void GetPlaceListAsync(string placeName, int MaxItems, bool imagePresence) {
            this.GetPlaceListAsync(placeName, MaxItems, imagePresence, null);
        }
        
        public void GetPlaceListAsync(string placeName, int MaxItems, bool imagePresence, object userState) {
            if ((this.onBeginGetPlaceListDelegate == null)) {
                this.onBeginGetPlaceListDelegate = new BeginOperationDelegate(this.OnBeginGetPlaceList);
            }
            if ((this.onEndGetPlaceListDelegate == null)) {
                this.onEndGetPlaceListDelegate = new EndOperationDelegate(this.OnEndGetPlaceList);
            }
            if ((this.onGetPlaceListCompletedDelegate == null)) {
                this.onGetPlaceListCompletedDelegate = new System.Threading.SendOrPostCallback(this.OnGetPlaceListCompleted);
            }
            base.InvokeAsync(this.onBeginGetPlaceListDelegate, new object[] {
                        placeName,
                        MaxItems,
                        imagePresence}, this.onEndGetPlaceListDelegate, this.onGetPlaceListCompletedDelegate, userState);
        }
        
        [System.ComponentModel.EditorBrowsableAttribute(System.ComponentModel.EditorBrowsableState.Advanced)]
        System.IAsyncResult GPSapp.terraService2.TerraServiceSoap.BeginGetPlaceListInRect(GPSapp.terraService2.GetPlaceListInRectRequest request, System.AsyncCallback callback, object asyncState) {
            return base.Channel.BeginGetPlaceListInRect(request, callback, asyncState);
        }
        
        [System.ComponentModel.EditorBrowsableAttribute(System.ComponentModel.EditorBrowsableState.Advanced)]
        private System.IAsyncResult BeginGetPlaceListInRect(GPSapp.terraService2.LonLatPt upperleft, GPSapp.terraService2.LonLatPt lowerright, GPSapp.terraService2.PlaceType ptype, int MaxItems, System.AsyncCallback callback, object asyncState) {
            GPSapp.terraService2.GetPlaceListInRectRequest inValue = new GPSapp.terraService2.GetPlaceListInRectRequest();
            inValue.Body = new GPSapp.terraService2.GetPlaceListInRectRequestBody();
            inValue.Body.upperleft = upperleft;
            inValue.Body.lowerright = lowerright;
            inValue.Body.ptype = ptype;
            inValue.Body.MaxItems = MaxItems;
            return ((GPSapp.terraService2.TerraServiceSoap)(this)).BeginGetPlaceListInRect(inValue, callback, asyncState);
        }
        
        [System.ComponentModel.EditorBrowsableAttribute(System.ComponentModel.EditorBrowsableState.Advanced)]
        GPSapp.terraService2.GetPlaceListInRectResponse GPSapp.terraService2.TerraServiceSoap.EndGetPlaceListInRect(System.IAsyncResult result) {
            return base.Channel.EndGetPlaceListInRect(result);
        }
        
        [System.ComponentModel.EditorBrowsableAttribute(System.ComponentModel.EditorBrowsableState.Advanced)]
        private System.Collections.ObjectModel.ObservableCollection<GPSapp.terraService2.PlaceFacts> EndGetPlaceListInRect(System.IAsyncResult result) {
            GPSapp.terraService2.GetPlaceListInRectResponse retVal = ((GPSapp.terraService2.TerraServiceSoap)(this)).EndGetPlaceListInRect(result);
            return retVal.Body.GetPlaceListInRectResult;
        }
        
        private System.IAsyncResult OnBeginGetPlaceListInRect(object[] inValues, System.AsyncCallback callback, object asyncState) {
            GPSapp.terraService2.LonLatPt upperleft = ((GPSapp.terraService2.LonLatPt)(inValues[0]));
            GPSapp.terraService2.LonLatPt lowerright = ((GPSapp.terraService2.LonLatPt)(inValues[1]));
            GPSapp.terraService2.PlaceType ptype = ((GPSapp.terraService2.PlaceType)(inValues[2]));
            int MaxItems = ((int)(inValues[3]));
            return this.BeginGetPlaceListInRect(upperleft, lowerright, ptype, MaxItems, callback, asyncState);
        }
        
        private object[] OnEndGetPlaceListInRect(System.IAsyncResult result) {
            System.Collections.ObjectModel.ObservableCollection<GPSapp.terraService2.PlaceFacts> retVal = this.EndGetPlaceListInRect(result);
            return new object[] {
                    retVal};
        }
        
        private void OnGetPlaceListInRectCompleted(object state) {
            if ((this.GetPlaceListInRectCompleted != null)) {
                InvokeAsyncCompletedEventArgs e = ((InvokeAsyncCompletedEventArgs)(state));
                this.GetPlaceListInRectCompleted(this, new GetPlaceListInRectCompletedEventArgs(e.Results, e.Error, e.Cancelled, e.UserState));
            }
        }
        
        public void GetPlaceListInRectAsync(GPSapp.terraService2.LonLatPt upperleft, GPSapp.terraService2.LonLatPt lowerright, GPSapp.terraService2.PlaceType ptype, int MaxItems) {
            this.GetPlaceListInRectAsync(upperleft, lowerright, ptype, MaxItems, null);
        }
        
        public void GetPlaceListInRectAsync(GPSapp.terraService2.LonLatPt upperleft, GPSapp.terraService2.LonLatPt lowerright, GPSapp.terraService2.PlaceType ptype, int MaxItems, object userState) {
            if ((this.onBeginGetPlaceListInRectDelegate == null)) {
                this.onBeginGetPlaceListInRectDelegate = new BeginOperationDelegate(this.OnBeginGetPlaceListInRect);
            }
            if ((this.onEndGetPlaceListInRectDelegate == null)) {
                this.onEndGetPlaceListInRectDelegate = new EndOperationDelegate(this.OnEndGetPlaceListInRect);
            }
            if ((this.onGetPlaceListInRectCompletedDelegate == null)) {
                this.onGetPlaceListInRectCompletedDelegate = new System.Threading.SendOrPostCallback(this.OnGetPlaceListInRectCompleted);
            }
            base.InvokeAsync(this.onBeginGetPlaceListInRectDelegate, new object[] {
                        upperleft,
                        lowerright,
                        ptype,
                        MaxItems}, this.onEndGetPlaceListInRectDelegate, this.onGetPlaceListInRectCompletedDelegate, userState);
        }
        
        [System.ComponentModel.EditorBrowsableAttribute(System.ComponentModel.EditorBrowsableState.Advanced)]
        System.IAsyncResult GPSapp.terraService2.TerraServiceSoap.BeginGetTheme(GPSapp.terraService2.GetThemeRequest request, System.AsyncCallback callback, object asyncState) {
            return base.Channel.BeginGetTheme(request, callback, asyncState);
        }
        
        [System.ComponentModel.EditorBrowsableAttribute(System.ComponentModel.EditorBrowsableState.Advanced)]
        private System.IAsyncResult BeginGetTheme(int theme, System.AsyncCallback callback, object asyncState) {
            GPSapp.terraService2.GetThemeRequest inValue = new GPSapp.terraService2.GetThemeRequest();
            inValue.Body = new GPSapp.terraService2.GetThemeRequestBody();
            inValue.Body.theme = theme;
            return ((GPSapp.terraService2.TerraServiceSoap)(this)).BeginGetTheme(inValue, callback, asyncState);
        }
        
        [System.ComponentModel.EditorBrowsableAttribute(System.ComponentModel.EditorBrowsableState.Advanced)]
        GPSapp.terraService2.GetThemeResponse GPSapp.terraService2.TerraServiceSoap.EndGetTheme(System.IAsyncResult result) {
            return base.Channel.EndGetTheme(result);
        }
        
        [System.ComponentModel.EditorBrowsableAttribute(System.ComponentModel.EditorBrowsableState.Advanced)]
        private GPSapp.terraService2.ThemeInfo EndGetTheme(System.IAsyncResult result) {
            GPSapp.terraService2.GetThemeResponse retVal = ((GPSapp.terraService2.TerraServiceSoap)(this)).EndGetTheme(result);
            return retVal.Body.GetThemeResult;
        }
        
        private System.IAsyncResult OnBeginGetTheme(object[] inValues, System.AsyncCallback callback, object asyncState) {
            int theme = ((int)(inValues[0]));
            return this.BeginGetTheme(theme, callback, asyncState);
        }
        
        private object[] OnEndGetTheme(System.IAsyncResult result) {
            GPSapp.terraService2.ThemeInfo retVal = this.EndGetTheme(result);
            return new object[] {
                    retVal};
        }
        
        private void OnGetThemeCompleted(object state) {
            if ((this.GetThemeCompleted != null)) {
                InvokeAsyncCompletedEventArgs e = ((InvokeAsyncCompletedEventArgs)(state));
                this.GetThemeCompleted(this, new GetThemeCompletedEventArgs(e.Results, e.Error, e.Cancelled, e.UserState));
            }
        }
        
        public void GetThemeAsync(int theme) {
            this.GetThemeAsync(theme, null);
        }
        
        public void GetThemeAsync(int theme, object userState) {
            if ((this.onBeginGetThemeDelegate == null)) {
                this.onBeginGetThemeDelegate = new BeginOperationDelegate(this.OnBeginGetTheme);
            }
            if ((this.onEndGetThemeDelegate == null)) {
                this.onEndGetThemeDelegate = new EndOperationDelegate(this.OnEndGetTheme);
            }
            if ((this.onGetThemeCompletedDelegate == null)) {
                this.onGetThemeCompletedDelegate = new System.Threading.SendOrPostCallback(this.OnGetThemeCompleted);
            }
            base.InvokeAsync(this.onBeginGetThemeDelegate, new object[] {
                        theme}, this.onEndGetThemeDelegate, this.onGetThemeCompletedDelegate, userState);
        }
        
        [System.ComponentModel.EditorBrowsableAttribute(System.ComponentModel.EditorBrowsableState.Advanced)]
        System.IAsyncResult GPSapp.terraService2.TerraServiceSoap.BeginGetTileMetaFromLonLatPt(GPSapp.terraService2.GetTileMetaFromLonLatPtRequest request, System.AsyncCallback callback, object asyncState) {
            return base.Channel.BeginGetTileMetaFromLonLatPt(request, callback, asyncState);
        }
        
        [System.ComponentModel.EditorBrowsableAttribute(System.ComponentModel.EditorBrowsableState.Advanced)]
        private System.IAsyncResult BeginGetTileMetaFromLonLatPt(GPSapp.terraService2.LonLatPt point, int theme, GPSapp.terraService2.Scale scale, System.AsyncCallback callback, object asyncState) {
            GPSapp.terraService2.GetTileMetaFromLonLatPtRequest inValue = new GPSapp.terraService2.GetTileMetaFromLonLatPtRequest();
            inValue.Body = new GPSapp.terraService2.GetTileMetaFromLonLatPtRequestBody();
            inValue.Body.point = point;
            inValue.Body.theme = theme;
            inValue.Body.scale = scale;
            return ((GPSapp.terraService2.TerraServiceSoap)(this)).BeginGetTileMetaFromLonLatPt(inValue, callback, asyncState);
        }
        
        [System.ComponentModel.EditorBrowsableAttribute(System.ComponentModel.EditorBrowsableState.Advanced)]
        GPSapp.terraService2.GetTileMetaFromLonLatPtResponse GPSapp.terraService2.TerraServiceSoap.EndGetTileMetaFromLonLatPt(System.IAsyncResult result) {
            return base.Channel.EndGetTileMetaFromLonLatPt(result);
        }
        
        [System.ComponentModel.EditorBrowsableAttribute(System.ComponentModel.EditorBrowsableState.Advanced)]
        private GPSapp.terraService2.TileMeta EndGetTileMetaFromLonLatPt(System.IAsyncResult result) {
            GPSapp.terraService2.GetTileMetaFromLonLatPtResponse retVal = ((GPSapp.terraService2.TerraServiceSoap)(this)).EndGetTileMetaFromLonLatPt(result);
            return retVal.Body.GetTileMetaFromLonLatPtResult;
        }
        
        private System.IAsyncResult OnBeginGetTileMetaFromLonLatPt(object[] inValues, System.AsyncCallback callback, object asyncState) {
            GPSapp.terraService2.LonLatPt point = ((GPSapp.terraService2.LonLatPt)(inValues[0]));
            int theme = ((int)(inValues[1]));
            GPSapp.terraService2.Scale scale = ((GPSapp.terraService2.Scale)(inValues[2]));
            return this.BeginGetTileMetaFromLonLatPt(point, theme, scale, callback, asyncState);
        }
        
        private object[] OnEndGetTileMetaFromLonLatPt(System.IAsyncResult result) {
            GPSapp.terraService2.TileMeta retVal = this.EndGetTileMetaFromLonLatPt(result);
            return new object[] {
                    retVal};
        }
        
        private void OnGetTileMetaFromLonLatPtCompleted(object state) {
            if ((this.GetTileMetaFromLonLatPtCompleted != null)) {
                InvokeAsyncCompletedEventArgs e = ((InvokeAsyncCompletedEventArgs)(state));
                this.GetTileMetaFromLonLatPtCompleted(this, new GetTileMetaFromLonLatPtCompletedEventArgs(e.Results, e.Error, e.Cancelled, e.UserState));
            }
        }
        
        public void GetTileMetaFromLonLatPtAsync(GPSapp.terraService2.LonLatPt point, int theme, GPSapp.terraService2.Scale scale) {
            this.GetTileMetaFromLonLatPtAsync(point, theme, scale, null);
        }
        
        public void GetTileMetaFromLonLatPtAsync(GPSapp.terraService2.LonLatPt point, int theme, GPSapp.terraService2.Scale scale, object userState) {
            if ((this.onBeginGetTileMetaFromLonLatPtDelegate == null)) {
                this.onBeginGetTileMetaFromLonLatPtDelegate = new BeginOperationDelegate(this.OnBeginGetTileMetaFromLonLatPt);
            }
            if ((this.onEndGetTileMetaFromLonLatPtDelegate == null)) {
                this.onEndGetTileMetaFromLonLatPtDelegate = new EndOperationDelegate(this.OnEndGetTileMetaFromLonLatPt);
            }
            if ((this.onGetTileMetaFromLonLatPtCompletedDelegate == null)) {
                this.onGetTileMetaFromLonLatPtCompletedDelegate = new System.Threading.SendOrPostCallback(this.OnGetTileMetaFromLonLatPtCompleted);
            }
            base.InvokeAsync(this.onBeginGetTileMetaFromLonLatPtDelegate, new object[] {
                        point,
                        theme,
                        scale}, this.onEndGetTileMetaFromLonLatPtDelegate, this.onGetTileMetaFromLonLatPtCompletedDelegate, userState);
        }
        
        [System.ComponentModel.EditorBrowsableAttribute(System.ComponentModel.EditorBrowsableState.Advanced)]
        System.IAsyncResult GPSapp.terraService2.TerraServiceSoap.BeginGetTileMetaFromTileId(GPSapp.terraService2.GetTileMetaFromTileIdRequest request, System.AsyncCallback callback, object asyncState) {
            return base.Channel.BeginGetTileMetaFromTileId(request, callback, asyncState);
        }
        
        [System.ComponentModel.EditorBrowsableAttribute(System.ComponentModel.EditorBrowsableState.Advanced)]
        private System.IAsyncResult BeginGetTileMetaFromTileId(GPSapp.terraService2.TileId id, System.AsyncCallback callback, object asyncState) {
            GPSapp.terraService2.GetTileMetaFromTileIdRequest inValue = new GPSapp.terraService2.GetTileMetaFromTileIdRequest();
            inValue.Body = new GPSapp.terraService2.GetTileMetaFromTileIdRequestBody();
            inValue.Body.id = id;
            return ((GPSapp.terraService2.TerraServiceSoap)(this)).BeginGetTileMetaFromTileId(inValue, callback, asyncState);
        }
        
        [System.ComponentModel.EditorBrowsableAttribute(System.ComponentModel.EditorBrowsableState.Advanced)]
        GPSapp.terraService2.GetTileMetaFromTileIdResponse GPSapp.terraService2.TerraServiceSoap.EndGetTileMetaFromTileId(System.IAsyncResult result) {
            return base.Channel.EndGetTileMetaFromTileId(result);
        }
        
        [System.ComponentModel.EditorBrowsableAttribute(System.ComponentModel.EditorBrowsableState.Advanced)]
        private GPSapp.terraService2.TileMeta EndGetTileMetaFromTileId(System.IAsyncResult result) {
            GPSapp.terraService2.GetTileMetaFromTileIdResponse retVal = ((GPSapp.terraService2.TerraServiceSoap)(this)).EndGetTileMetaFromTileId(result);
            return retVal.Body.GetTileMetaFromTileIdResult;
        }
        
        private System.IAsyncResult OnBeginGetTileMetaFromTileId(object[] inValues, System.AsyncCallback callback, object asyncState) {
            GPSapp.terraService2.TileId id = ((GPSapp.terraService2.TileId)(inValues[0]));
            return this.BeginGetTileMetaFromTileId(id, callback, asyncState);
        }
        
        private object[] OnEndGetTileMetaFromTileId(System.IAsyncResult result) {
            GPSapp.terraService2.TileMeta retVal = this.EndGetTileMetaFromTileId(result);
            return new object[] {
                    retVal};
        }
        
        private void OnGetTileMetaFromTileIdCompleted(object state) {
            if ((this.GetTileMetaFromTileIdCompleted != null)) {
                InvokeAsyncCompletedEventArgs e = ((InvokeAsyncCompletedEventArgs)(state));
                this.GetTileMetaFromTileIdCompleted(this, new GetTileMetaFromTileIdCompletedEventArgs(e.Results, e.Error, e.Cancelled, e.UserState));
            }
        }
        
        public void GetTileMetaFromTileIdAsync(GPSapp.terraService2.TileId id) {
            this.GetTileMetaFromTileIdAsync(id, null);
        }
        
        public void GetTileMetaFromTileIdAsync(GPSapp.terraService2.TileId id, object userState) {
            if ((this.onBeginGetTileMetaFromTileIdDelegate == null)) {
                this.onBeginGetTileMetaFromTileIdDelegate = new BeginOperationDelegate(this.OnBeginGetTileMetaFromTileId);
            }
            if ((this.onEndGetTileMetaFromTileIdDelegate == null)) {
                this.onEndGetTileMetaFromTileIdDelegate = new EndOperationDelegate(this.OnEndGetTileMetaFromTileId);
            }
            if ((this.onGetTileMetaFromTileIdCompletedDelegate == null)) {
                this.onGetTileMetaFromTileIdCompletedDelegate = new System.Threading.SendOrPostCallback(this.OnGetTileMetaFromTileIdCompleted);
            }
            base.InvokeAsync(this.onBeginGetTileMetaFromTileIdDelegate, new object[] {
                        id}, this.onEndGetTileMetaFromTileIdDelegate, this.onGetTileMetaFromTileIdCompletedDelegate, userState);
        }
        
        [System.ComponentModel.EditorBrowsableAttribute(System.ComponentModel.EditorBrowsableState.Advanced)]
        System.IAsyncResult GPSapp.terraService2.TerraServiceSoap.BeginGetTile(GPSapp.terraService2.GetTileRequest request, System.AsyncCallback callback, object asyncState) {
            return base.Channel.BeginGetTile(request, callback, asyncState);
        }
        
        [System.ComponentModel.EditorBrowsableAttribute(System.ComponentModel.EditorBrowsableState.Advanced)]
        private System.IAsyncResult BeginGetTile(GPSapp.terraService2.TileId id, System.AsyncCallback callback, object asyncState) {
            GPSapp.terraService2.GetTileRequest inValue = new GPSapp.terraService2.GetTileRequest();
            inValue.Body = new GPSapp.terraService2.GetTileRequestBody();
            inValue.Body.id = id;
            return ((GPSapp.terraService2.TerraServiceSoap)(this)).BeginGetTile(inValue, callback, asyncState);
        }
        
        [System.ComponentModel.EditorBrowsableAttribute(System.ComponentModel.EditorBrowsableState.Advanced)]
        GPSapp.terraService2.GetTileResponse GPSapp.terraService2.TerraServiceSoap.EndGetTile(System.IAsyncResult result) {
            return base.Channel.EndGetTile(result);
        }
        
        [System.ComponentModel.EditorBrowsableAttribute(System.ComponentModel.EditorBrowsableState.Advanced)]
        private byte[] EndGetTile(System.IAsyncResult result) {
            GPSapp.terraService2.GetTileResponse retVal = ((GPSapp.terraService2.TerraServiceSoap)(this)).EndGetTile(result);
            return retVal.Body.GetTileResult;
        }
        
        private System.IAsyncResult OnBeginGetTile(object[] inValues, System.AsyncCallback callback, object asyncState) {
            GPSapp.terraService2.TileId id = ((GPSapp.terraService2.TileId)(inValues[0]));
            return this.BeginGetTile(id, callback, asyncState);
        }
        
        private object[] OnEndGetTile(System.IAsyncResult result) {
            byte[] retVal = this.EndGetTile(result);
            return new object[] {
                    retVal};
        }
        
        private void OnGetTileCompleted(object state) {
            if ((this.GetTileCompleted != null)) {
                InvokeAsyncCompletedEventArgs e = ((InvokeAsyncCompletedEventArgs)(state));
                this.GetTileCompleted(this, new GetTileCompletedEventArgs(e.Results, e.Error, e.Cancelled, e.UserState));
            }
        }
        
        public void GetTileAsync(GPSapp.terraService2.TileId id) {
            this.GetTileAsync(id, null);
        }
        
        public void GetTileAsync(GPSapp.terraService2.TileId id, object userState) {
            if ((this.onBeginGetTileDelegate == null)) {
                this.onBeginGetTileDelegate = new BeginOperationDelegate(this.OnBeginGetTile);
            }
            if ((this.onEndGetTileDelegate == null)) {
                this.onEndGetTileDelegate = new EndOperationDelegate(this.OnEndGetTile);
            }
            if ((this.onGetTileCompletedDelegate == null)) {
                this.onGetTileCompletedDelegate = new System.Threading.SendOrPostCallback(this.OnGetTileCompleted);
            }
            base.InvokeAsync(this.onBeginGetTileDelegate, new object[] {
                        id}, this.onEndGetTileDelegate, this.onGetTileCompletedDelegate, userState);
        }
        
        private System.IAsyncResult OnBeginOpen(object[] inValues, System.AsyncCallback callback, object asyncState) {
            return ((System.ServiceModel.ICommunicationObject)(this)).BeginOpen(callback, asyncState);
        }
        
        private object[] OnEndOpen(System.IAsyncResult result) {
            ((System.ServiceModel.ICommunicationObject)(this)).EndOpen(result);
            return null;
        }
        
        private void OnOpenCompleted(object state) {
            if ((this.OpenCompleted != null)) {
                InvokeAsyncCompletedEventArgs e = ((InvokeAsyncCompletedEventArgs)(state));
                this.OpenCompleted(this, new System.ComponentModel.AsyncCompletedEventArgs(e.Error, e.Cancelled, e.UserState));
            }
        }
        
        public void OpenAsync() {
            this.OpenAsync(null);
        }
        
        public void OpenAsync(object userState) {
            if ((this.onBeginOpenDelegate == null)) {
                this.onBeginOpenDelegate = new BeginOperationDelegate(this.OnBeginOpen);
            }
            if ((this.onEndOpenDelegate == null)) {
                this.onEndOpenDelegate = new EndOperationDelegate(this.OnEndOpen);
            }
            if ((this.onOpenCompletedDelegate == null)) {
                this.onOpenCompletedDelegate = new System.Threading.SendOrPostCallback(this.OnOpenCompleted);
            }
            base.InvokeAsync(this.onBeginOpenDelegate, null, this.onEndOpenDelegate, this.onOpenCompletedDelegate, userState);
        }
        
        private System.IAsyncResult OnBeginClose(object[] inValues, System.AsyncCallback callback, object asyncState) {
            return ((System.ServiceModel.ICommunicationObject)(this)).BeginClose(callback, asyncState);
        }
        
        private object[] OnEndClose(System.IAsyncResult result) {
            ((System.ServiceModel.ICommunicationObject)(this)).EndClose(result);
            return null;
        }
        
        private void OnCloseCompleted(object state) {
            if ((this.CloseCompleted != null)) {
                InvokeAsyncCompletedEventArgs e = ((InvokeAsyncCompletedEventArgs)(state));
                this.CloseCompleted(this, new System.ComponentModel.AsyncCompletedEventArgs(e.Error, e.Cancelled, e.UserState));
            }
        }
        
        public void CloseAsync() {
            this.CloseAsync(null);
        }
        
        public void CloseAsync(object userState) {
            if ((this.onBeginCloseDelegate == null)) {
                this.onBeginCloseDelegate = new BeginOperationDelegate(this.OnBeginClose);
            }
            if ((this.onEndCloseDelegate == null)) {
                this.onEndCloseDelegate = new EndOperationDelegate(this.OnEndClose);
            }
            if ((this.onCloseCompletedDelegate == null)) {
                this.onCloseCompletedDelegate = new System.Threading.SendOrPostCallback(this.OnCloseCompleted);
            }
            base.InvokeAsync(this.onBeginCloseDelegate, null, this.onEndCloseDelegate, this.onCloseCompletedDelegate, userState);
        }
        
        protected override GPSapp.terraService2.TerraServiceSoap CreateChannel() {
            return new TerraServiceSoapClientChannel(this);
        }
        
        private class TerraServiceSoapClientChannel : ChannelBase<GPSapp.terraService2.TerraServiceSoap>, GPSapp.terraService2.TerraServiceSoap {
            
            public TerraServiceSoapClientChannel(System.ServiceModel.ClientBase<GPSapp.terraService2.TerraServiceSoap> client) : 
                    base(client) {
            }
            
            public System.IAsyncResult BeginConvertLonLatPtToNearestPlace(GPSapp.terraService2.ConvertLonLatPtToNearestPlaceRequest request, System.AsyncCallback callback, object asyncState) {
                object[] _args = new object[1];
                _args[0] = request;
                System.IAsyncResult _result = base.BeginInvoke("ConvertLonLatPtToNearestPlace", _args, callback, asyncState);
                return _result;
            }
            
            public GPSapp.terraService2.ConvertLonLatPtToNearestPlaceResponse EndConvertLonLatPtToNearestPlace(System.IAsyncResult result) {
                object[] _args = new object[0];
                GPSapp.terraService2.ConvertLonLatPtToNearestPlaceResponse _result = ((GPSapp.terraService2.ConvertLonLatPtToNearestPlaceResponse)(base.EndInvoke("ConvertLonLatPtToNearestPlace", _args, result)));
                return _result;
            }
            
            public System.IAsyncResult BeginConvertLonLatPtToUtmPt(GPSapp.terraService2.ConvertLonLatPtToUtmPtRequest request, System.AsyncCallback callback, object asyncState) {
                object[] _args = new object[1];
                _args[0] = request;
                System.IAsyncResult _result = base.BeginInvoke("ConvertLonLatPtToUtmPt", _args, callback, asyncState);
                return _result;
            }
            
            public GPSapp.terraService2.ConvertLonLatPtToUtmPtResponse EndConvertLonLatPtToUtmPt(System.IAsyncResult result) {
                object[] _args = new object[0];
                GPSapp.terraService2.ConvertLonLatPtToUtmPtResponse _result = ((GPSapp.terraService2.ConvertLonLatPtToUtmPtResponse)(base.EndInvoke("ConvertLonLatPtToUtmPt", _args, result)));
                return _result;
            }
            
            public System.IAsyncResult BeginConvertUtmPtToLonLatPt(GPSapp.terraService2.ConvertUtmPtToLonLatPtRequest request, System.AsyncCallback callback, object asyncState) {
                object[] _args = new object[1];
                _args[0] = request;
                System.IAsyncResult _result = base.BeginInvoke("ConvertUtmPtToLonLatPt", _args, callback, asyncState);
                return _result;
            }
            
            public GPSapp.terraService2.ConvertUtmPtToLonLatPtResponse EndConvertUtmPtToLonLatPt(System.IAsyncResult result) {
                object[] _args = new object[0];
                GPSapp.terraService2.ConvertUtmPtToLonLatPtResponse _result = ((GPSapp.terraService2.ConvertUtmPtToLonLatPtResponse)(base.EndInvoke("ConvertUtmPtToLonLatPt", _args, result)));
                return _result;
            }
            
            public System.IAsyncResult BeginConvertPlaceToLonLatPt(GPSapp.terraService2.ConvertPlaceToLonLatPtRequest request, System.AsyncCallback callback, object asyncState) {
                object[] _args = new object[1];
                _args[0] = request;
                System.IAsyncResult _result = base.BeginInvoke("ConvertPlaceToLonLatPt", _args, callback, asyncState);
                return _result;
            }
            
            public GPSapp.terraService2.ConvertPlaceToLonLatPtResponse EndConvertPlaceToLonLatPt(System.IAsyncResult result) {
                object[] _args = new object[0];
                GPSapp.terraService2.ConvertPlaceToLonLatPtResponse _result = ((GPSapp.terraService2.ConvertPlaceToLonLatPtResponse)(base.EndInvoke("ConvertPlaceToLonLatPt", _args, result)));
                return _result;
            }
            
            public System.IAsyncResult BeginCountPlacesInRect(GPSapp.terraService2.CountPlacesInRectRequest request, System.AsyncCallback callback, object asyncState) {
                object[] _args = new object[1];
                _args[0] = request;
                System.IAsyncResult _result = base.BeginInvoke("CountPlacesInRect", _args, callback, asyncState);
                return _result;
            }
            
            public GPSapp.terraService2.CountPlacesInRectResponse EndCountPlacesInRect(System.IAsyncResult result) {
                object[] _args = new object[0];
                GPSapp.terraService2.CountPlacesInRectResponse _result = ((GPSapp.terraService2.CountPlacesInRectResponse)(base.EndInvoke("CountPlacesInRect", _args, result)));
                return _result;
            }
            
            public System.IAsyncResult BeginGetAreaFromPt(GPSapp.terraService2.GetAreaFromPtRequest request, System.AsyncCallback callback, object asyncState) {
                object[] _args = new object[1];
                _args[0] = request;
                System.IAsyncResult _result = base.BeginInvoke("GetAreaFromPt", _args, callback, asyncState);
                return _result;
            }
            
            public GPSapp.terraService2.GetAreaFromPtResponse EndGetAreaFromPt(System.IAsyncResult result) {
                object[] _args = new object[0];
                GPSapp.terraService2.GetAreaFromPtResponse _result = ((GPSapp.terraService2.GetAreaFromPtResponse)(base.EndInvoke("GetAreaFromPt", _args, result)));
                return _result;
            }
            
            public System.IAsyncResult BeginGetAreaFromRect(GPSapp.terraService2.GetAreaFromRectRequest request, System.AsyncCallback callback, object asyncState) {
                object[] _args = new object[1];
                _args[0] = request;
                System.IAsyncResult _result = base.BeginInvoke("GetAreaFromRect", _args, callback, asyncState);
                return _result;
            }
            
            public GPSapp.terraService2.GetAreaFromRectResponse EndGetAreaFromRect(System.IAsyncResult result) {
                object[] _args = new object[0];
                GPSapp.terraService2.GetAreaFromRectResponse _result = ((GPSapp.terraService2.GetAreaFromRectResponse)(base.EndInvoke("GetAreaFromRect", _args, result)));
                return _result;
            }
            
            public System.IAsyncResult BeginGetAreaFromTileId(GPSapp.terraService2.GetAreaFromTileIdRequest request, System.AsyncCallback callback, object asyncState) {
                object[] _args = new object[1];
                _args[0] = request;
                System.IAsyncResult _result = base.BeginInvoke("GetAreaFromTileId", _args, callback, asyncState);
                return _result;
            }
            
            public GPSapp.terraService2.GetAreaFromTileIdResponse EndGetAreaFromTileId(System.IAsyncResult result) {
                object[] _args = new object[0];
                GPSapp.terraService2.GetAreaFromTileIdResponse _result = ((GPSapp.terraService2.GetAreaFromTileIdResponse)(base.EndInvoke("GetAreaFromTileId", _args, result)));
                return _result;
            }
            
            public System.IAsyncResult BeginGetLatLonMetrics(GPSapp.terraService2.GetLatLonMetricsRequest request, System.AsyncCallback callback, object asyncState) {
                object[] _args = new object[1];
                _args[0] = request;
                System.IAsyncResult _result = base.BeginInvoke("GetLatLonMetrics", _args, callback, asyncState);
                return _result;
            }
            
            public GPSapp.terraService2.GetLatLonMetricsResponse EndGetLatLonMetrics(System.IAsyncResult result) {
                object[] _args = new object[0];
                GPSapp.terraService2.GetLatLonMetricsResponse _result = ((GPSapp.terraService2.GetLatLonMetricsResponse)(base.EndInvoke("GetLatLonMetrics", _args, result)));
                return _result;
            }
            
            public System.IAsyncResult BeginGetPlaceFacts(GPSapp.terraService2.GetPlaceFactsRequest request, System.AsyncCallback callback, object asyncState) {
                object[] _args = new object[1];
                _args[0] = request;
                System.IAsyncResult _result = base.BeginInvoke("GetPlaceFacts", _args, callback, asyncState);
                return _result;
            }
            
            public GPSapp.terraService2.GetPlaceFactsResponse EndGetPlaceFacts(System.IAsyncResult result) {
                object[] _args = new object[0];
                GPSapp.terraService2.GetPlaceFactsResponse _result = ((GPSapp.terraService2.GetPlaceFactsResponse)(base.EndInvoke("GetPlaceFacts", _args, result)));
                return _result;
            }
            
            public System.IAsyncResult BeginGetPlaceList(GPSapp.terraService2.GetPlaceListRequest request, System.AsyncCallback callback, object asyncState) {
                object[] _args = new object[1];
                _args[0] = request;
                System.IAsyncResult _result = base.BeginInvoke("GetPlaceList", _args, callback, asyncState);
                return _result;
            }
            
            public GPSapp.terraService2.GetPlaceListResponse EndGetPlaceList(System.IAsyncResult result) {
                object[] _args = new object[0];
                GPSapp.terraService2.GetPlaceListResponse _result = ((GPSapp.terraService2.GetPlaceListResponse)(base.EndInvoke("GetPlaceList", _args, result)));
                return _result;
            }
            
            public System.IAsyncResult BeginGetPlaceListInRect(GPSapp.terraService2.GetPlaceListInRectRequest request, System.AsyncCallback callback, object asyncState) {
                object[] _args = new object[1];
                _args[0] = request;
                System.IAsyncResult _result = base.BeginInvoke("GetPlaceListInRect", _args, callback, asyncState);
                return _result;
            }
            
            public GPSapp.terraService2.GetPlaceListInRectResponse EndGetPlaceListInRect(System.IAsyncResult result) {
                object[] _args = new object[0];
                GPSapp.terraService2.GetPlaceListInRectResponse _result = ((GPSapp.terraService2.GetPlaceListInRectResponse)(base.EndInvoke("GetPlaceListInRect", _args, result)));
                return _result;
            }
            
            public System.IAsyncResult BeginGetTheme(GPSapp.terraService2.GetThemeRequest request, System.AsyncCallback callback, object asyncState) {
                object[] _args = new object[1];
                _args[0] = request;
                System.IAsyncResult _result = base.BeginInvoke("GetTheme", _args, callback, asyncState);
                return _result;
            }
            
            public GPSapp.terraService2.GetThemeResponse EndGetTheme(System.IAsyncResult result) {
                object[] _args = new object[0];
                GPSapp.terraService2.GetThemeResponse _result = ((GPSapp.terraService2.GetThemeResponse)(base.EndInvoke("GetTheme", _args, result)));
                return _result;
            }
            
            public System.IAsyncResult BeginGetTileMetaFromLonLatPt(GPSapp.terraService2.GetTileMetaFromLonLatPtRequest request, System.AsyncCallback callback, object asyncState) {
                object[] _args = new object[1];
                _args[0] = request;
                System.IAsyncResult _result = base.BeginInvoke("GetTileMetaFromLonLatPt", _args, callback, asyncState);
                return _result;
            }
            
            public GPSapp.terraService2.GetTileMetaFromLonLatPtResponse EndGetTileMetaFromLonLatPt(System.IAsyncResult result) {
                object[] _args = new object[0];
                GPSapp.terraService2.GetTileMetaFromLonLatPtResponse _result = ((GPSapp.terraService2.GetTileMetaFromLonLatPtResponse)(base.EndInvoke("GetTileMetaFromLonLatPt", _args, result)));
                return _result;
            }
            
            public System.IAsyncResult BeginGetTileMetaFromTileId(GPSapp.terraService2.GetTileMetaFromTileIdRequest request, System.AsyncCallback callback, object asyncState) {
                object[] _args = new object[1];
                _args[0] = request;
                System.IAsyncResult _result = base.BeginInvoke("GetTileMetaFromTileId", _args, callback, asyncState);
                return _result;
            }
            
            public GPSapp.terraService2.GetTileMetaFromTileIdResponse EndGetTileMetaFromTileId(System.IAsyncResult result) {
                object[] _args = new object[0];
                GPSapp.terraService2.GetTileMetaFromTileIdResponse _result = ((GPSapp.terraService2.GetTileMetaFromTileIdResponse)(base.EndInvoke("GetTileMetaFromTileId", _args, result)));
                return _result;
            }
            
            public System.IAsyncResult BeginGetTile(GPSapp.terraService2.GetTileRequest request, System.AsyncCallback callback, object asyncState) {
                object[] _args = new object[1];
                _args[0] = request;
                System.IAsyncResult _result = base.BeginInvoke("GetTile", _args, callback, asyncState);
                return _result;
            }
            
            public GPSapp.terraService2.GetTileResponse EndGetTile(System.IAsyncResult result) {
                object[] _args = new object[0];
                GPSapp.terraService2.GetTileResponse _result = ((GPSapp.terraService2.GetTileResponse)(base.EndInvoke("GetTile", _args, result)));
                return _result;
            }
        }
    }
}
