Skip to content

Commit

Permalink
Merge pull request #634 from afischerdev/engine-mode
Browse files Browse the repository at this point in the history
Update new parameter collector for BRouter app
  • Loading branch information
afischerdev committed Nov 17, 2023
2 parents 109782d + 890e7f9 commit c647305
Show file tree
Hide file tree
Showing 6 changed files with 117 additions and 503 deletions.
51 changes: 35 additions & 16 deletions brouter-core/src/main/java/btools/router/RoutingParamCollector.java
Expand Up @@ -14,8 +14,9 @@ public class RoutingParamCollector {

/**
* get a list of points and optional extra info for the points
* @param lonLats - linked list separated by ';' or '|'
* @return - a list
*
* @param lonLats linked list separated by ';' or '|'
* @return a list
*/
public List<OsmNodeNamed> getWayPointList(String lonLats) {
if (lonLats == null) throw new IllegalArgumentException("lonlats parameter not set");
Expand Down Expand Up @@ -49,9 +50,10 @@ public List<OsmNodeNamed> getWayPointList(String lonLats) {

/**
* get a list of points (old style, positions only)
* @param lons - array with longitudes
* @param lats - array with latitudes
* @return - a list
*
* @param lons array with longitudes
* @param lats array with latitudes
* @return a list
*/
public List<OsmNodeNamed> readPositions(double[] lons, double[] lats) {
List<OsmNodeNamed> wplist = new ArrayList<>();
Expand Down Expand Up @@ -93,9 +95,10 @@ private OsmNodeNamed readPosition(double lon, double lat, String name) {

/**
* read a url like parameter list linked with '&'
* @param url - parameter list
* @return - a hashmap of the parameter
* @throws UnsupportedEncodingException
*
* @param url parameter list
* @return a hashmap of the parameter
* @throws UnsupportedEncodingException
*/
public Map<String, String> getUrlParams(String url) throws UnsupportedEncodingException {
HashMap<String, String> params = new HashMap<>();
Expand All @@ -117,9 +120,10 @@ public Map<String, String> getUrlParams(String url) throws UnsupportedEncodingEx

/**
* fill a parameter map into the routing context
* @param rctx - the context
* @param wplist - the list of way points needed for 'straight' parameter
* @param params - the list of parameters
*
* @param rctx the context
* @param wplist the list of way points needed for 'straight' parameter
* @param params the list of parameters
*/
public void setParams(RoutingContext rctx, List<OsmNodeNamed> wplist, Map<String, String> params) {
if (params != null) {
Expand All @@ -129,11 +133,15 @@ public void setParams(RoutingContext rctx, List<OsmNodeNamed> wplist, Map<String
if (params.containsKey("profile")) {
rctx.localFunction = params.get("profile");
}
if (params.containsKey("nogoLats")) {
if (params.containsKey("nogoLats") && params.get("nogoLats").length() > 0) {
List<OsmNodeNamed> nogoList = readNogos(params.get("nogoLons"), params.get("nogoLats"), params.get("nogoRadi"));
if (nogoList != null) {
RoutingContext.prepareNogoPoints(nogoList);
rctx.nogopoints = nogoList;
if (rctx.nogopoints == null) {
rctx.nogopoints = nogoList;
} else {
rctx.nogopoints.addAll(nogoList);
}
}
params.remove("nogoLats");
params.remove("nogoLons");
Expand All @@ -143,7 +151,11 @@ public void setParams(RoutingContext rctx, List<OsmNodeNamed> wplist, Map<String
List<OsmNodeNamed> nogoList = readNogoList(params.get("nogos"));
if (nogoList != null) {
RoutingContext.prepareNogoPoints(nogoList);
rctx.nogopoints = nogoList;
if (rctx.nogopoints == null) {
rctx.nogopoints = nogoList;
} else {
rctx.nogopoints.addAll(nogoList);
}
}
params.remove("nogos");
}
Expand Down Expand Up @@ -196,6 +208,12 @@ public void setParams(RoutingContext rctx, List<OsmNodeNamed> wplist, Map<String
rctx.turnInstructionMode = Integer.parseInt(value);
} else if (key.equals("timode")) {
rctx.turnInstructionMode = Integer.parseInt(value);
} else if (key.equals("turnInstructionFormat")) {
if ("osmand".equalsIgnoreCase(value)) {
rctx.turnInstructionMode = 3;
} else if ("locus".equalsIgnoreCase(value)) {
rctx.turnInstructionMode = 2;
}
} else if (key.equals("exportWaypoints")) {
rctx.exportWaypoints = (Integer.parseInt(value) == 1);
} else if (key.equals("format")) {
Expand All @@ -213,8 +231,9 @@ public void setParams(RoutingContext rctx, List<OsmNodeNamed> wplist, Map<String

/**
* fill profile parameter list
* @param rctx - the routing context
* @param params - the list of parameters
*
* @param rctx the routing context
* @param params the list of parameters
*/
public void setProfileParams(RoutingContext rctx, Map<String, String> params) {
if (params != null) {
Expand Down
Expand Up @@ -19,6 +19,7 @@
import java.io.OutputStream;
import java.nio.charset.Charset;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.List;
import java.util.zip.GZIPOutputStream;

Expand All @@ -39,10 +40,6 @@ public String getTrackFromParams(Bundle params) throws RemoteException {

BRouterWorker worker = new BRouterWorker();

for (String key : params.keySet()) {
// Log.d("BS", "income " + key + " = " + params.get(key));
}

int engineMode = 0;
if (params.containsKey("engineMode")) {
engineMode = params.getInt("engineMode", 0);
Expand Down Expand Up @@ -277,8 +274,13 @@ private String checkForTestDummy(String baseDir) {
private void logBundle(Bundle params) {
if (AppLogger.isLogging()) {
for (String k : params.keySet()) {
Object val = "remoteProfile".equals(k) ? "<..cut..>" : params.getString(k);
String desc = "key=" + k + (val == null ? "" : " class=" + val.getClass() + " val=" + val.toString());
Object val = "remoteProfile".equals(k) ? "<..cut..>" : params.get(k);
String desc = "key=" + k + (val == null ? "" : " class=" + val.getClass() + " val=");
if (val instanceof double[]) {
desc += Arrays.toString(params.getDoubleArray(k));
} else {
desc += val.toString();
}
AppLogger.log(desc);
}
}
Expand Down

0 comments on commit c647305

Please sign in to comment.