2014-02-15 120 views
0

我使用Bing Maps Api来计算两点之间的路线。 我将Rest Services与RestSharp库结合使用。 问题是我不知道如何访问路线结果。Bing Maps Api:Deserialise Json结果

结果属于Resource类型。资源的路线派生。 Resource类使用KnownType属性进行装饰。 仅供参考我使用JSON数据合同msdn

有人可以帮助我吗?

这里是我的代码来计算路线:

public static double CalculateDistanceKm(string street, string postalCode, string city, string country) 
    { 
     var client = new RestClient(BingMapsApiUrl); 
     var request = new RestRequest("Routes/Driving", Method.GET); 
     request.AddParameter("wp.0", Address); 
     request.AddParameter("wp.1", String.Format("{0},{1} {2},{3}", street, postalCode, city, country)); 
     request.AddParameter("ul", "50.7541313,4.2486601"); 
     request.AddParameter("key", BingMapsApiKey); 

     var response = client.Execute(request); 
     if (response.ResponseStatus == ResponseStatus.Completed) 
     { 
      var result = JsonConvert.DeserializeObject<Response>(response.Content); 
      if (result != null && result.StatusCode == 200 & result.ResourceSets.Any() && result.ResourceSets[0].Resources.Any()) 
      { 
       //How to get to the Route instead of just Resource... 
       var test = result.ResourceSets.First().Resources.First(); 
      } 
     } 

     return 0; 
    } 

回答

1

我切换了API从冰到谷歌地图。 api使用起来更容易,它给了我正确的结果。

随着我有一个9/10的变化,以获得“Not_found”错误,测试与同一地址! 所以有时候它有效(1/10的机会)。 与谷歌我每次尝试得到一个正确的结果...

不要犯同样的错误,如果你想查找另一种语言的地址比英语,然后使用谷歌地图API。

+0

尝试新的Bing Maps v8,好多了 – juFo