2014-04-08 4 views
0

Как именно вы используете BING REST api (в частности, часть ROUTES), чтобы получить расстояние в пути в ASP.NET.Как работать с BING REST Api

Я искал высоко и низко Google для этого ответа, и никто не собирается.

я нашел строки URL, такие как:

http://dev.virtualearth.net/REST/v1/Routes/Driving?waypoint.0=redmond&heading=90&waypoint.1=seattle&du=mi&key=BingMapsKey 

Это здорово! Но как назвать это из ASP?

Я также нашел этот код:

private void GetResponse(Uri uri, Action<HttpResponse> callback) 
    { 
     WebClient wc = new WebClient(); 
     wc.OpenReadCompleted += (o, a) => 
     { 
      if (callback != null) 
      { 
       DataContractJsonSerializer ser = new DataContractJsonSerializer(typeof(HttpResponse)); 
       callback(ser.ReadObject(a.Result) as HttpResponse); 
      } 
     }; 
     wc.OpenReadAsync(uri); 
    } 

который является «универсальным методом, чтобы сделать веб-запросы». Но, как вы это называете? Я сбиваю с толку, что для него не требуется тип возврата.

Для того, чтобы вызвать его, я нашел такой код:

string key = "YOUR_BING_MAPS_KEY or SESSION_KEY"; 
    string query = "1 Microsoft Way, Redmond, WA"; 

    Uri geocodeRequest = new Uri(string.Format("http://dev.virtualearth.net/REST/v1/Locations?q={0}&key={1}", query, key)); 
    GetResponse(geocodeRequest, (x) => 
    { 
     Console.WriteLine(x.ResourceSets[0].Resources.Length + " result(s) found."); 
     Console.ReadLine(); 
    }); 

Но когда я добавить это в проект, я получаю каждую ошибку под солнцем идет вверх. Итак, я застрял.

Я являюсь новичком ASP и не нашел никакой онлайн-документации никакой помощи вообще.

p.s. У меня есть ключ BI и я использую его в коде выше.

ответ

1

Я не эксперт в этом, но ниже компилируется для меня. Кроме того, убедитесь, чтобы добавить конструкции данных, как указано в документации БИНГ:

protected void Page_Load(object sender, EventArgs e) 
{ 
    string key = "YOUR KEY"; 
    string query = "ADDRESS"; 

    Uri geocodeRequest = new Uri(string.Format("http://dev.virtualearth.net/REST/v1/Locations?q={0}&key={1}", query, key)); 

    GetResponse(geocodeRequest, (x) => 
    { 
     Console.WriteLine(x.ResourceSets[0].Resources.Length + " result(s) found."); 
     Console.ReadLine(); 
    }); 

} 

Цитирование из другой StackOverflow вопрос:


В нижней части документации, которую вы используете указывает на данные стягивается вам нужно для служб REST, которые доступны здесь: http://msdn.microsoft.com/en-us/library/jj870778.aspx

Просто создайте пустой файл C# и скопируйте его в виде Контрактов данных C#. Затем добавить пространство имен в этом классе:

using BingMapsRESTService.Common.JSON; 
+0

Просто, чтобы добавить некоторые разъяснения, вам необходимо создать класс и заполнить его с контрактами данных, а затем ссылаться, что новый класс, где вы делаете Геокодировать звонки – gruff

Смежные вопросы