WP8地图导航

本文关键字:导航 地图 WP8 | 更新日期: 2023-09-27 18:07:32

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

在地理定位器的事件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个路由和地理编码请求

如果应用程序在每次改变位置时都重新计算路线,那么一次长途旅行就会超过限制。有没有更好的方法?

WP8地图导航

你绝对不应该总是重新计算路由。基本上,一旦你得到了你的第一条路由,检查 route::Legs,看看用户应该如何到达目的地,然后实现一个逻辑来监控用户是否一条腿一条腿地停留在所选的路由上。

只有当用户离开路线时(例如,转向错误的方向),才有逻辑去获取新的路线,并重新开始监控它。