locked
comment tracer la route entre 2 point predifini dans le bing map RRS feed

  • Question

  • j'ai afficher les points dans la map et j'ai besoin de tracer la route entre ces deux point.

    NB: j'ai essayé avec RouteServiceClient (le client de service web  http://dev.virtualearth.net/webservices/v1/routeservice/routeservice.svc );

    le fait d'instancie ce dernier génere une excepetion au niveau de constructeur

    intitule "EndPoint ......"

    mardi 20 décembre 2011 16:39

Réponses

  • je t'encourage fortement à utiliser l'application Bing native pour cela, tu auras moins de soucis et une meilleure intégration :

    Il suffit de créer une task, de définir tes coordonnées de départ et d'arrivée et le reste est fait par le système

     

    http://msdn.microsoft.com/en-us/library/hh394024(v=vs.92).aspx


    S'il vous plaît n'oublier pas de marquer la ou les réponses qui aident à résoudre votre problème. Pour que la discussion puisse être marquée comme résolue
    • Marqué comme réponse rudyhuynMVP jeudi 22 décembre 2011 09:25
    mardi 20 décembre 2011 18:28
  • oui ce la marche tres bien mais j'ai crée une autre solution

    {

             var routeClient = new RouteServiceClient("BasicHttpBinding_IRouteService");
                            CredentialsProvider crp = new ApplicationIdCredentialsProvider(App.Id);
                            RouteRequest rq = new RouteRequest();

                            rq.Waypoints = lwp;
                            //Credentials crid = new Credentials();
                            rq.Credentials = new Credentials() { ApplicationId = App.Id };
                            routeClient.CalculateRouteAsync(rq);
                           
                            routeClient.CalculateRouteCompleted += new EventHandler<CalculateRouteCompletedEventArgs>(routeClient_CalculateRouteCompleted);

    }

     

     

    void routeClient_CalculateRouteCompleted(object sender, CalculateRouteCompletedEventArgs e)
            {

                RouteLeg rt = e.Result.Result.Legs[0];

                MapPolyline polyline = new MapPolyline();
                polyline.Stroke = new SolidColorBrush(Colors.Blue);
                polyline.StrokeThickness = 10;
                polyline.Opacity = 80;

                var locationsList = new LocationCollection();
                locationsList.Add(new GeoCoordinate(rt.ActualStart.Latitude, rt.ActualStart.Longitude,0));
                foreach (ItineraryItem ite in rt.Itinerary)
                locationsList.Add(new GeoCoordinate(ite.Location.Latitude, ite.Location.Longitude, 0));
                locationsList.Add(new GeoCoordinate(rt.ActualEnd.Latitude, rt.ActualEnd.Longitude, 0));
                polyline.Locations = locationsList;
                map.Children.Add(polyline);
            }

     

    ??

    • Marqué comme réponse rudyhuynMVP jeudi 22 décembre 2011 09:25
    mercredi 21 décembre 2011 11:36

Toutes les réponses

  • je t'encourage fortement à utiliser l'application Bing native pour cela, tu auras moins de soucis et une meilleure intégration :

    Il suffit de créer une task, de définir tes coordonnées de départ et d'arrivée et le reste est fait par le système

     

    http://msdn.microsoft.com/en-us/library/hh394024(v=vs.92).aspx


    S'il vous plaît n'oublier pas de marquer la ou les réponses qui aident à résoudre votre problème. Pour que la discussion puisse être marquée comme résolue
    • Marqué comme réponse rudyhuynMVP jeudi 22 décembre 2011 09:25
    mardi 20 décembre 2011 18:28
  • oui ce la marche tres bien mais j'ai crée une autre solution

    {

             var routeClient = new RouteServiceClient("BasicHttpBinding_IRouteService");
                            CredentialsProvider crp = new ApplicationIdCredentialsProvider(App.Id);
                            RouteRequest rq = new RouteRequest();

                            rq.Waypoints = lwp;
                            //Credentials crid = new Credentials();
                            rq.Credentials = new Credentials() { ApplicationId = App.Id };
                            routeClient.CalculateRouteAsync(rq);
                           
                            routeClient.CalculateRouteCompleted += new EventHandler<CalculateRouteCompletedEventArgs>(routeClient_CalculateRouteCompleted);

    }

     

     

    void routeClient_CalculateRouteCompleted(object sender, CalculateRouteCompletedEventArgs e)
            {

                RouteLeg rt = e.Result.Result.Legs[0];

                MapPolyline polyline = new MapPolyline();
                polyline.Stroke = new SolidColorBrush(Colors.Blue);
                polyline.StrokeThickness = 10;
                polyline.Opacity = 80;

                var locationsList = new LocationCollection();
                locationsList.Add(new GeoCoordinate(rt.ActualStart.Latitude, rt.ActualStart.Longitude,0));
                foreach (ItineraryItem ite in rt.Itinerary)
                locationsList.Add(new GeoCoordinate(ite.Location.Latitude, ite.Location.Longitude, 0));
                locationsList.Add(new GeoCoordinate(rt.ActualEnd.Latitude, rt.ActualEnd.Longitude, 0));
                polyline.Locations = locationsList;
                map.Children.Add(polyline);
            }

     

    ??

    • Marqué comme réponse rudyhuynMVP jeudi 22 décembre 2011 09:25
    mercredi 21 décembre 2011 11:36