【问题标题】:Bing Maps GetRoute gives '0x8004231C' errorBing Maps GetRoute 给出“0x8004231C”错误
【发布时间】:2014-04-22 11:38:15
【问题描述】:

我正在尝试在 bing-maps 上显示从点到点的路线(在真实设备上进行测试)。我已经输入了 2 个航路点(GeoCoordinate),我正在尝试使用 await query.GetRouteAsync() 通过 Windows PhoneToolKit 获取路线。不幸的是,我收到了一个未知错误:

异步调用的结果:

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

内部异常:

Exception from HRESULT: 0x8004231C

我检查了MSDN website 并注意到此错误代码未列在错误列表中...

相关代码如下。我使用了与 Windows Phone Toolkit 示例集完全相同的代码,但删除了与获取路由无关的内容:

    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。开发预览

【问题讨论】:

  • 你找到答案了吗?我正在浏览有关创建跑步跟踪应用程序的教程,但遇到了同样的错误。
  • 不幸的是没有...在 MSDN 网站上我也没有收到任何回复。 ATM 等到8.1正式发布并推送到所有8.0手机上,希望能解决。

标签: c# windows-phone-8 bing-maps windows-phone-toolkit


【解决方案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);
            }

        }

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多