2012-06-01 140 views

回答

1

地址: - http://dev.virtualearth.net/webservices/v1/geocodeservice/geocodeservice.svc

public void Obtainresult() 
    { 
     try 
     { 
      if (location == null) 
       return; 

      ReverseGeocodeRequest reverseGeocodeRequest = new ReverseGeocodeRequest(); 

      // Set the credentials using a valid Bing Maps key 
      reverseGeocodeRequest.Credentials = new GeocodeService.Credentials(); 
      reverseGeocodeRequest.Credentials.ApplicationId = "Your Bing Map Key" 


      // Set the point to use to find a matching address 
      GeocodeService.Location point1 = new GeocodeService.Location(); 
      point1.Latitude = location.Latitude; 
      point1.Longitude = location.Longitude; 

      reverseGeocodeRequest.Location = point1; 

      // Make the reverse geocode request 
      GeocodeServiceClient geocodeService = new GeocodeServiceClient("BasicHttpBinding_IGeocodeService"); 
      geocodeService.ReverseGeocodeCompleted += new EventHandler<ReverseGeocodeCompletedEventArgs>(geocodeService_ReverseGeocodeCompleted); 
      geocodeService.ReverseGeocodeAsync(reverseGeocodeRequest); 
     } 
     catch (Exception ex) 
     { 
      MessageBox.Show(ex.Message); 
     } 
    } 


    void geocodeService_ReverseGeocodeCompleted(object sender, ReverseGeocodeCompletedEventArgs e) 
    { 
     try 
     { 
      // The result is a GeocodeResponse object 
      GeocodeResponse geocodeResponse = e.Result; 

      if (geocodeResponse.Results != null) 
      { 
       var yourresult = geocodeResponse.Results; 
      } 

     } 
     catch (Exception ex) 
     { 
      MessageBox.Show(ex.Message); 
     } 
    } 

让我知道如果你有问题:)

欢呼:)

+0

谢谢。需要你的帮助。我如何通过街道名称,例如纽约,美国,并获得我需要做距离计算的数字格式的GPS结果?谢谢。如果您可以帮助使用BingMap,请致电 – MilkBottle

0
using System; 
using System.Collections.Generic; 
using System.Text; 
using System.Web; 
using System.Net; 
using System.Web.UI; 


namespace GoogleGeocoder 
{ 
    public interface ISpatialCoordinate 
    { 
     decimal Latitude {get; set; } 
     decimal Longitude {get; set; } 
    } 

    /// <summary> 
    /// Coordiate structure. Holds Latitude and Longitude. 
    /// </summary> 
    public struct Coordinate : ISpatialCoordinate 
    { 
     private decimal _latitude; 
     private decimal _longitude; 

     public Coordinate(decimal latitude, decimal longitude) 
     { 
      _latitude = latitude; 
      _longitude = longitude; 
     } 

     #region ISpatialCoordinate Members 

     public decimal Latitude 
     { 
      get 
      { 
       return _latitude; 
      } 
      set 
      { 
       this._latitude = value; 
      } 
     } 

     public decimal Longitude 
     { 
      get 
      { 
       return _longitude; 
      } 
      set 
      { 
       this._longitude = value; 
      } 
     } 

     #endregion 
    } 

    public class Geocode 
    { 
     private const string _googleUri = "http://maps.google.com/maps/geo?q="; 
     private const string _googleKey = "yourkey"; // Get your key from: http://www.google.com/apis/maps/signup.html 
     private const string _outputType = "csv"; // Available options: csv, xml, kml, json 

     private static Uri GetGeocodeUri(string address) 
     { 
      address = HttpUtility.UrlEncode(address); 
      return new Uri(String.Format("{0}{1}&output={2}&key={3}", _googleUri, address, _outputType, _googleKey)); 
     } 

     /// <summary> 
     /// Gets a Coordinate from a address. 
     /// </summary> 
     /// <param name="address">An address. 
     ///  <remarks> 
     ///   <example>1600 Amphitheatre Parkway Mountain View, CA 94043</example> 
     ///  </remarks> 
     /// </param> 
     /// <returns>A spatial coordinate that contains the latitude and longitude of the address.</returns> 
     public static Coordinate GetCoordinates(string address) 
     { 
      WebClient client = new WebClient(); 
      Uri uri = GetGeocodeUri(address); 


      /* The first number is the status code, 
      * the second is the accuracy, 
      * the third is the latitude, 
      * the fourth one is the longitude. 
      */ 
      string[] geocodeInfo = client.DownloadString(uri).Split(','); 

      return new Coordinate(Convert.ToDecimal(geocodeInfo[2]), Convert.ToDecimal(geocodeInfo[3])); 
     } 

    } 
} 
+0

你会在哪里找到状态码值? – Rodney

相关问题