2014-02-15 1 views
0

Я использую Bing Maps Api для расчета маршрута между двумя точками. Я использую службы отдыха в сочетании с библиотекой RestSharp. Проблема в том, что я не знаю, как я могу получить доступ к результатам маршрута.Bing Maps Api: Результат Deserialise Json

Результаты типа Ресурс. Маршрут получает ресурс. Класс Resource украшен атрибутом KnownType. FYI Использую данные JSON datacontracts от 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

Я переключил апи из Bing в Google Maps. Апи намного проще в использовании, и это дало мне правильные результаты.

С Bing У меня было изменение 9/10, чтобы получить ошибку «Not_found», протестированную с этим же адресом! Так иногда работает (шанс 1/10). С помощью Google я получаю правильный результат при каждой попытке ...

Не делайте ту же ошибку, что и я, если вы хотите найти адрес на другом языке, кроме английского, используйте API Карт Google.

+0

попробуйте новые Bing Maps v8, намного лучше – juFo