void RealtimeAltRoutes_OnTripRouteResults (NavigateRouteRC rc, int num_res, const NavigateRouteResult *res){ int i; if (num_res > MAX_ROUTES) num_res = MAX_ROUTES; if (rc != route_succeeded){ roadmap_log(ROADMAP_ERROR,"RealtimeAltRoutes_OnTripRouteResults failed rc=%d", rc ); return; } roadmap_log (ROADMAP_DEBUG,"RealtimeAltRoutes_OnRouteResults %d", num_res); altRoutesTrips.altRoutTrip[0].iNumRoutes = num_res; for (i = 0; i < num_res ; i++){ altRoutesTrips.altRoutTrip[0].pRouteResults[i] = *(res+i); } altRoutesTrips.altRoutTrip[0].iTripLenght = altRoutesTrips.altRoutTrip[0].pRouteResults[0].total_time; altRoutesTrips.altRoutTrip[0].iTripDistance = altRoutesTrips.altRoutTrip[0].pRouteResults[0].total_length; roadmap_trip_set_point ("Destination", &altRoutesTrips.altRoutTrip[0].destPosition); roadmap_trip_set_point ("Departure", &altRoutesTrips.altRoutTrip[0].srcPosition); roadmap_alternative_routes_suggest_route_dialog(); roadmap_screen_refresh(); }
static int on_alt_routes_btn_cb(SsdWidget widget, const char *new_value){ const RoadMapPosition *from; RoadMapPosition to; AltRouteTrip route; RealtimeAltRoutes_Clear(); from =navigate_main_get_src_position (); navigate_get_waypoint(-1, &to); ssd_progress_msg_dialog_show( roadmap_lang_get( "Calculating alternative routes, please wait..." ) ); RealtimeAltRoutes_Init_Record(&route); route.srcPosition = *from; route.destPosition = to; route.iTripId = -1; navigate_main_stop_navigation(); roadmap_trip_set_point ("Destination", &route.destPosition); roadmap_trip_set_point ("Departure", &route.srcPosition); RealtimeAltRoutes_Add_Route(&route); RealtimeAltRoutes_Route_Request (-1, from, &to, MAX_ROUTES); return 1; }
static void roadmap_address_done (RoadMapGeocode *selected, RoadMapAddressDialog *context, address_info_ptr ai) { PluginStreet street; PluginLine line; RoadMapPosition from; RoadMapPosition to; roadmap_locator_activate (selected->fips); roadmap_log (ROADMAP_DEBUG, "selected address at %d.%06d %c, %d.%06d %c", abs(selected->position.longitude)/1000000, abs(selected->position.longitude)%1000000, selected->position.longitude >= 0 ? 'E' : 'W', abs(selected->position.latitude)/1000000, abs(selected->position.latitude)%1000000, selected->position.latitude >= 0 ? 'N' : 'S'); roadmap_math_adjust_zoom (selected->square); roadmap_plugin_set_line (&line, ROADMAP_PLUGIN_ID, selected->line, -1, selected->square, selected->fips); roadmap_trip_set_point ("Selection", &selected->position); roadmap_trip_set_point ("Address", &selected->position); if (!context->navigate || !RoadMapAddressNavigate) { roadmap_trip_set_focus ("Address"); roadmap_display_activate ("Selected Street", &line, &selected->position, &street); roadmap_street_extend_line_ends (&line, &from, &to, FLAG_EXTEND_BOTH, NULL, NULL); roadmap_display_update_points ("Selected Street", &from, &to); roadmap_screen_refresh (); } else { if ((*RoadMapAddressNavigate) (&selected->position, &line, 0, ai) != -1) { } } }