WP8地图导航

时间:2014-06-09 10:19:34

标签: c# windows-phone-8 navigation windows-phone maps

我想为Windows手机创建一个简单的导航应用。我希望它能够将用户导航到提供的地址。我正在创建路线,如下所述: http://msdn.microsoft.com/en-us/library/windowsphone/develop/jj244363%28v=vs.105%29.aspx#BKMK_showdirections 但它是一条静态路线,我希望用当前用户位置进行更新。 目前我正在考虑这个解决方案:

在Geolocator的事件中,PositionChanged我将从当前位置计算新路线:

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个路由和地理编码请求

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

1 个答案:

答案 0 :(得分:0)

定义您不应该一直重新计算路线。基本上,一旦你得到第一条路线,检查 Route :: Legs ,看看用户应该如何到达目的地,然后实施一个逻辑来监控用户是否留在选定的路线段 - 通过腿。

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