2014-04-22 2 views
1

빙 표 (실제 장치에서 테스트 중)에서 지점 간 경로를 표시하려고합니다. 2 웨이 포인트 (GeoCoordinate)를 입력 했으므로 await query.GetRouteAsync()을 사용하여 Windows PhoneToolKit을 통해 경로를 얻으려고합니다. 불행하게도, 내가 알 수없는 오류를 받고 있어요 :Bing Maps GetRoute에서 '0x8004231C'오류가 발생합니다.

비동기 호출의 결과는 :

'e.Result' threw an exception of type 'System.Reflection.TargetInvocationException' 

내부 예외 : 내가하고 MSDN website을 확인했습니다

Exception from HRESULT: 0x8004231C 

이 에러 코드 것으로 나타났습니다 오류 목록에 나열되지 않았습니다 ...

관련 코드는 아래에 있습니다. 나는 윈도우 폰 도구 키트 세트 샘플에서와 동일한 코드를 사용하지만 경로를 얻기와는 아무 상관이없는 것을 제거했습니다

private async void BtnShowRoute_Tap(object sender, System.Windows.Input.GestureEventArgs e) 
    { 
     try 
     { 
      RouteQuery query = new RouteQuery(); 
      List<GeoCoordinate> wayPoints = new List<GeoCoordinate>(); 

      wayPoints.Add(new GeoCoordinate(47.23449, -121.172447)); 
      wayPoints.Add(new GeoCoordinate(47.062638, -120.691795)); 

      query.Waypoints = wayPoints; 

      Route route = await query.GetRouteAsync(); 

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

내가 잘못 여기에 무슨 일이 일어나고 있는지 아무 생각합니다. 다른 사람이이 문제를 경험 했습니까? 그렇다면 해결 했습니까? 그리고 어떻게?

참고 : Windows Phone 8.1을 실행하고 있습니다. 개발자가 미리보기

+0

답변을 찾았습니까? 실행 추적 응용 프로그램을 만드는 방법에 대한 자습서를보고 있는데 같은 오류가 발생합니다. – tmoore82

+0

불행히도 ... MSDN 웹 사이트에서도 응답을받지 못했습니다. ATM 8.1이 공식적으로 출시되고 모든 8.0 휴대 전화로 밀려 나서 해결 될 때까지 기다리고 있습니다. –

답변

1

쿼리를 완료하기 전에 기본 서비스 호출 시간이 초과 될 때 발생합니다. 다행히도 다음 버전에서 수정 될 예정이지만 다음 코드를 사용할 수 있습니다.

private async void BtnShowRoute_Tap(object sender, System.Windows.Input.GestureEventArgs e) 
    { 
      RouteQuery query = new RouteQuery(); 
      List<GeoCoordinate> wayPoints = new List<GeoCoordinate>(); 

      wayPoints.Add(new GeoCoordinate(47.23449, -121.172447)); 
      wayPoints.Add(new GeoCoordinate(47.062638, -120.691795)); 

      query.Waypoints = wayPoints; 
    query .QueryCompleted += geoQ_QueryCompleted; 
      query.GetRouteAsync(); 


    } 
private void geoQ_QueryCompleted(object sender, QueryCompletedEventArgs<Route> e) 
     { 
      try 
      { 
       Route myRoute = e.Result; 
      } 
      catch (TargetInvocationException) 
      { 
       Thread.Sleep(1000); // waiting for completing the query 
        geoQ_QueryCompleted(sender, e); 
      } 

     }