package org.androad.sys.ors.rs.cloudmade;
import java.util.List;
import junit.framework.Assert;
import org.osmdroid.util.GeoPoint;
import org.androad.sys.ors.adt.rs.DirectionsLanguage;
import org.androad.sys.ors.adt.rs.RoutePreferenceType;
import org.androad.sys.ors.util.constants.ORSXMLConstants;
public class CloudmadeRSRequestComposer implements ORSXMLConstants {
/**
*
* @param ctx
* @param nat
* @param start
* @param vias
* @param end
* @return
*/
public static String create(final DirectionsLanguage nat, final GeoPoint start, final List<GeoPoint> vias, final GeoPoint end, final RoutePreferenceType pRoutePreference){
Assert.assertNotNull(start);
Assert.assertNotNull(end);
Assert.assertNotNull(pRoutePreference);
final StringBuilder sb = new StringBuilder();
sb.append(start.getLatitudeE6() / 1E6).append(",").append(start.getLongitudeE6() / 1E6);
if(vias != null && vias.size() > 0){
sb.append(",[");
for (int i = 0; i < vias.size(); i++) {
final GeoPoint via = vias.get(i);
sb.append(via.getLatitudeE6() / 1E6).append(",").append(via.getLongitudeE6() / 1E6);
if (i + 1 != vias.size()) {
sb.append(",");
}
}
sb.append("]");
}
sb.append(",").append(end.getLatitudeE6() / 1E6).append(",").append(end.getLongitudeE6() / 1E6).append("/");
if (pRoutePreference.mDefinedName.equals(RoutePreferenceType.PEDESTRIAN.mDefinedName)) {
sb.append("foot");
} else if (pRoutePreference.mDefinedName.equals(RoutePreferenceType.BICYCLE.mDefinedName)) {
sb.append("bicycle");
} else {
sb.append("car/fastest");
}
sb.append(".gpx?lang=").append(nat.ID).append("&units=km");
return sb.toString();
}
}