How to call distance matrix google api through c# code using XML

问题描述 投票:0回答:0

所以我有以下 2 段代码,第一个使用 GeoCode 并且有效,第二个使用距离矩阵但没有。我究竟做错了什么?我删除了我的 api 密钥和所有地址。提前致谢!

片段A(工作)

class Calculator
{
    public static string DoOperation(string address)
    {
      
string requestUri = string.Format("https://maps.googleapis.com/maps/api/geocode/xml?key={1}&address={0}&sensor=false", Uri.EscapeDataString(address), "MY-API-KEY");

WebRequest request = WebRequest.Create(requestUri);
WebResponse response = request.GetResponse();
XDocument xdoc = XDocument.Load(response.GetResponseStream());
XElement result = xdoc.Element("GeocodeResponse").Element("result");
XElement locationElement = result.Element("geometry").Element("location");
XElement lat = locationElement.Element("lat");
XElement lng = locationElement.Element("lng");
  string lat12 = ((string)lat);
      return lat12;
    }
}

class Program {
  public static void Main (string[] args) {
    Console.WriteLine ("Hello World");
    string address1 = "RANDOM ADDRESS";
    Console.WriteLine(Calculator.DoOperation(address1));
            
  }
}

片段 B(不工作)

class Calculator
{
    public static string DoOperation(string address, string address2)
    {
string requestUri = string.Format("https://maps.googleapis.com/maps/api/geocode/xml?key={2}&destinations={0}&origins={1}&units=imperial&sensor=false", Uri.EscapeDataString(address), Uri.EscapeDataString(address2), "MY-API-KEY");

WebRequest request = WebRequest.Create(requestUri);
WebResponse response = request.GetResponse();
XDocument xdoc = XDocument.Load(response.GetResponseStream());
XElement result = xdoc.Element("DistanceMatrixResponse").Element("row").Element("element");
XElement locationElement = result.Element("distance");
XElement lat = locationElement.Element("text");
  string lat12 = ((string)lat);
      return lat12;
    }
}

class Program {
  public static void Main (string[] args) {
    Console.WriteLine ("Hello World");
    string address1 = "RANDOM ADDRESS 1";
    string address2 = "RANDOM ADDRESS 2";
    Console.WriteLine(Calculator.DoOperation(address1, address2));
            
  }
}

我期待它返回类似的东西

“50 英里”

c# xml google-maps geocode google-distancematrix-api
© www.soinside.com 2019 - 2024. All rights reserved.