%s: | ",translate_html_total[0]);
fprintf(htmlfile,translate_html_total[1],
distance_to_km(cum_distance),duration_to_minutes(cum_duration));
fprintf(htmlfile,"\n");
}
}
if(gpxroutefile)
{
if(!waynameraw)
{
waynameraw=WayName(ways,resultway);
if(!*waynameraw)
waynameraw=translate_highway[HIGHWAY(resultway->type)];
}
if(!waynamexml)
waynamexml=ParseXML_Encode_Safe_XML(waynameraw);
if(!bearing_str)
{
bearing_int=bearing_angle(nodes,resultsegment,result->node);
bearing_str=translate_heading[(4+(22+bearing_int)/45)%8];
}
fprintf(gpxroutefile,"");
fprintf(gpxroutefile,translate_gpx_step,
bearing_str,
waynamexml,
distance_to_km(junc_distance),duration_to_minutes(junc_duration));
fprintf(gpxroutefile,"\n");
if(!nextresult)
{
fprintf(gpxroutefile,"%s\n",
radians_to_degrees(finish_lat),radians_to_degrees(finish_lon),
translate_gpx_finish);
fprintf(gpxroutefile,"");
fprintf(gpxroutefile,translate_gpx_final,
distance_to_km(cum_distance),duration_to_minutes(cum_duration));
fprintf(gpxroutefile,"\n");
}
else if(important==10)
fprintf(gpxroutefile,"%s%d\n",
radians_to_degrees(latitude),radians_to_degrees(longitude),
translate_gpx_inter,++segment_count);
else
fprintf(gpxroutefile,"%s%03d\n",
radians_to_degrees(latitude),radians_to_degrees(longitude),
translate_gpx_trip,++route_count);
}
if(textfile)
{
char *type;
if(important==10)
type="Waypt";
else
type="Junct";
if(!wayname)
{
wayname=WayName(ways,resultway);
if(!*wayname)
wayname=HighwayName(HIGHWAY(resultway->type));
}
if(nextresult)
{
if(!turn_str)
{
turn_int=turn_angle(nodes,resultsegment,nextresultsegment,result->node);
turn_str=translate_turn[(4+(22+turn_int)/45)%8];
}
if(!bearing_next_str)
{
bearing_next_int=bearing_angle(nodes,nextresultsegment,nextresult->node);
bearing_next_str=translate_heading[(4+(22+bearing_next_int)/45)%8];
}
fprintf(textfile,"%10.6f\t%11.6f\t%6.3f km\t%4.1f min\t%5.1f km\t%4.0f min\t%s\t %+d\t %+d\t%s\n",
radians_to_degrees(latitude),radians_to_degrees(longitude),
distance_to_km(junc_distance),duration_to_minutes(junc_duration),
distance_to_km(cum_distance),duration_to_minutes(cum_duration),
type,
(22+turn_int)/45,
((22+bearing_next_int)/45+4)%8-4,
wayname);
}
else
fprintf(textfile,"%10.6f\t%11.6f\t%6.3f km\t%4.1f min\t%5.1f km\t%4.0f min\t%s\t\t\t%s\n",
radians_to_degrees(latitude),radians_to_degrees(longitude),
distance_to_km(junc_distance),duration_to_minutes(junc_duration),
distance_to_km(cum_distance),duration_to_minutes(cum_duration),
type,
wayname);
}
junc_distance=0;
junc_duration=0;
}
/* Print out all of the results */
if(textallfile)
{
char *type;
if(important==10)
type="Waypt";
else if(important==2)
type="Change";
else if(important>=1)
type="Junct";
else
type="Inter";
if(!wayname)
{
wayname=WayName(ways,resultway);
if(!*wayname)
wayname=HighwayName(HIGHWAY(resultway->type));
}
if(!bearing_str)
{
bearing_int=bearing_angle(nodes,resultsegment,result->node);
bearing_str=translate_heading[(4+(22+bearing_int)/45)%8];
}
fprintf(textallfile,"%10.6f\t%11.6f\t%8d%c\t%s\t%5.3f\t%5.2f\t%5.2f\t%5.1f\t%3d\t%4d\t%s\n",
radians_to_degrees(latitude),radians_to_degrees(longitude),
IsFakeNode(result->node)?(NODE_FAKE-result->node):result->node,
(!IsFakeNode(result->node) && IsSuperNode(nodes,result->node))?'*':' ',type,
distance_to_km(seg_distance),duration_to_minutes(seg_duration),
distance_to_km(cum_distance),duration_to_minutes(cum_duration),
profile->speed[HIGHWAY(resultway->type)],
bearing_int,
wayname);
}
if(waynamexml && waynamexml!=waynameraw)
free(waynamexml);
}
else if(!cum_distance)
{
int bearing_next_int=bearing_angle(nodes,nextresultsegment,nextresult->node);
char *bearing_next_str=translate_heading[(4+(22+bearing_next_int)/45)%8];
/* Print out the very first start point */
if(htmlfile)
{
fprintf(htmlfile," | %.6f %.6f\n",
radians_to_degrees(latitude),radians_to_degrees(longitude));
fprintf(htmlfile," | %s: | ",translate_html_start[0]);
fprintf(htmlfile,translate_html_start[1],
translate_html_waypoint,
bearing_next_str);
fprintf(htmlfile,"\n");
}
if(gpxroutefile)
fprintf(gpxroutefile,"%s\n",
radians_to_degrees(latitude),radians_to_degrees(longitude),
translate_gpx_start);
if(textfile)
fprintf(textfile,"%10.6f\t%11.6f\t%6.3f km\t%4.1f min\t%5.1f km\t%4.0f min\t%s\t\t +%d\t\n",
radians_to_degrees(latitude),radians_to_degrees(longitude),
0.0,0.0,0.0,0.0,
"Waypt",
(22+bearing_next_int)/45);
if(textallfile)
fprintf(textallfile,"%10.6f\t%11.6f\t%8d%c\t%s\t%5.3f\t%5.2f\t%5.2f\t%5.1f\t\t\t\n",
radians_to_degrees(latitude),radians_to_degrees(longitude),
IsFakeNode(result->node)?(NODE_FAKE-result->node):result->node,
(!IsFakeNode(result->node) && IsSuperNode(nodes,result->node))?'*':' ',"Waypt",
0.0,0.0,0.0,0.0);
}
result=nextresult;
}
while(point==nextpoint);
if(gpxtrackfile)
fprintf(gpxtrackfile,"\n");
point=nextpoint;
}
/* Print the tail of the files */
if(htmlfile)
{
fprintf(htmlfile," | |