C# WP8地图导航

C# WP8地图导航,c#,windows-phone-8,navigation,windows-phone,maps,C#,Windows Phone 8,Navigation,Windows Phone,Maps,我想为windows phone创建一个简单的导航应用程序。我希望它将用户导航到提供的地址。我正在创建路线,如下所述: 但这是一个静态的路线,我希望它与当前的用户位置更新。 目前我正在考虑这个解决方案: 在地理定位器的事件位置更改时,我将从当前位置计算新路线: void Instance_GeolocatorGeopositionReadingChanged(object sender, ReadingValueChanged<Geoposition> e) {

我想为windows phone创建一个简单的导航应用程序。我希望它将用户导航到提供的地址。我正在创建路线,如下所述: 但这是一个静态的路线,我希望它与当前的用户位置更新。 目前我正在考虑这个解决方案:

在地理定位器的事件位置更改时,我将从当前位置计算新路线:

void Instance_GeolocatorGeopositionReadingChanged(object sender, ReadingValueChanged<Geoposition> e)
    {
        RouteQuery query = new RouteQuery()
        {
            TravelMode = TravelMode.Driving,
            Waypoints = new List<GeoCoordinate>()
            {
                e.NewReading.Coordinate.ToGeoCordinate(),
                this.target 
            }
        };
        query.QueryCompleted += routeQuery_QueryCompleted;
        query.QueryAsync();
    }
但我不确定这是否是一个好方法,因为就MS地图的使用而言,您可能不会: 一个应用程序在24小时内超过25000个路由和地理编码请求

如果应用程序会重新计算每一个位置改变的路线,一次长途旅行将超过限制。
有更好的方法吗?

当然,你不应该一直重新计算路线。基本上,一旦您获得了第一条路线,请检查route::Legs以了解用户应该如何到达目的地,然后实现一个逻辑来监视用户是否一条腿一条腿地停留在所选路线上

只有当用户离开路线,例如,转向错误的方向,然后有逻辑去获得新的路线,并再次开始监控它