From 93e27e5b046783983c53bcf8c9d4911b29a1fe19 Mon Sep 17 00:00:00 2001 From: MKergall Date: Sat, 24 Apr 2021 11:14:41 +0200 Subject: [PATCH] OSRM changes: default root url, user agent, option to set the mean of transportation. See issue #406 --- .../bonuspack/routing/OSRMRoadManager.java | 25 +++++++++++-------- .../osmbonuspacktuto/MainActivity.java | 5 ++-- OSMNavigator/build.gradle | 4 +-- .../java/com/osmnavigator/MapActivity.java | 6 ++--- 4 files changed, 20 insertions(+), 20 deletions(-) diff --git a/OSMBonusPack/src/main/java/org/osmdroid/bonuspack/routing/OSRMRoadManager.java b/OSMBonusPack/src/main/java/org/osmdroid/bonuspack/routing/OSRMRoadManager.java index dcf2f41b..635dde24 100644 --- a/OSMBonusPack/src/main/java/org/osmdroid/bonuspack/routing/OSRMRoadManager.java +++ b/OSMBonusPack/src/main/java/org/osmdroid/bonuspack/routing/OSRMRoadManager.java @@ -28,9 +28,13 @@ */ public class OSRMRoadManager extends RoadManager { - static final String SERVICE = "https://router.project-osrm.org/route/v1/driving/"; + static final String DEFAULT_SERVICE = "https://routing.openstreetmap.de/"; + public static final String MEAN_BY_CAR = "routed-car/route/v1/driving/"; + public static final String MEAN_BY_BIKE = "routed-bike/route/v1/driving/"; + public static final String MEAN_BY_FOOT = "routed-foot/route/v1/driving/"; private final Context mContext; protected String mServiceUrl; + protected String mMeanUrl; protected String mUserAgent; /** @@ -113,11 +117,12 @@ public class OSRMRoadManager extends RoadManager { DIRECTIONS.put(34, R.string.osmbonuspack_directions_34); } - public OSRMRoadManager(Context context){ + public OSRMRoadManager(Context context, String userAgent){ super(); mContext = context; - mServiceUrl = SERVICE; - mUserAgent = BonusPackHelper.DEFAULT_USER_AGENT; //set user agent to the default one. + mUserAgent = userAgent; + mServiceUrl = DEFAULT_SERVICE; + mMeanUrl = MEAN_BY_CAR; } /** allows to request on an other site than OSRM demo site */ @@ -125,15 +130,13 @@ public void setService(String serviceUrl){ mServiceUrl = serviceUrl; } - /** allows to send to OSRM service a user agent specific to the app, - * instead of the default user agent of OSMBonusPack lib. - */ - public void setUserAgent(String userAgent){ - mUserAgent = userAgent; + /** to switch to another mean of transportation */ + public void setMean(String meanUrl){ + mMeanUrl = meanUrl; } - + protected String getUrl(ArrayList waypoints, boolean getAlternate) { - StringBuilder urlString = new StringBuilder(mServiceUrl); + StringBuilder urlString = new StringBuilder(mServiceUrl+mMeanUrl); for (int i=0; i0) diff --git a/OSMBonusPackTuto/src/main/java/com/example/osmbonuspacktuto/MainActivity.java b/OSMBonusPackTuto/src/main/java/com/example/osmbonuspacktuto/MainActivity.java index 931a96e8..66750ba0 100644 --- a/OSMBonusPackTuto/src/main/java/com/example/osmbonuspacktuto/MainActivity.java +++ b/OSMBonusPackTuto/src/main/java/com/example/osmbonuspacktuto/MainActivity.java @@ -107,10 +107,9 @@ public class MainActivity extends Activity implements MapEventsReceiver, MapView map.getOverlays().add(startMarker); //1. "Hello, Routing World" - RoadManager roadManager = new OSRMRoadManager(this); + RoadManager roadManager = new OSRMRoadManager(this, "OBP_Tuto/1.0"); //2. Playing with the RoadManager - //roadManager roadManager = new MapQuestRoadManager("YOUR_API_KEY"); - //roadManager.addRequestOption("routeType=bicycle"); + //((OSRMRoadManager)roadManager).setMean(OSRMRoadManager.MEAN_BY_BIKE); ArrayList waypoints = new ArrayList(); waypoints.add(startPoint); GeoPoint endPoint = new GeoPoint(48.4, -1.9); diff --git a/OSMNavigator/build.gradle b/OSMNavigator/build.gradle index 28ee775f..aad4da55 100644 --- a/OSMNavigator/build.gradle +++ b/OSMNavigator/build.gradle @@ -7,8 +7,8 @@ android { applicationId "com.osmnavigator" minSdkVersion 16 targetSdkVersion 28 - versionCode 22 - versionName "2.2" + versionCode 23 + versionName "2.3" } buildTypes { release { diff --git a/OSMNavigator/src/main/java/com/osmnavigator/MapActivity.java b/OSMNavigator/src/main/java/com/osmnavigator/MapActivity.java index 7f13a312..e8694bd2 100644 --- a/OSMNavigator/src/main/java/com/osmnavigator/MapActivity.java +++ b/OSMNavigator/src/main/java/com/osmnavigator/MapActivity.java @@ -175,7 +175,7 @@ public class MapActivity extends Activity implements MapEventsReceiver, Location OnlineTileSourceBase MAPBOXSATELLITELABELLED; boolean mNightMode; - static final String userAgent = "OsmNavigator/2.2"; + static final String userAgent = "OsmNavigator/2.3"; static String graphHopperApiKey; static String flickrApiKey; @@ -973,9 +973,7 @@ protected Road[] doInBackground(ArrayList... params) { Locale locale = Locale.getDefault(); switch (mWhichRouteProvider){ case OSRM: - roadManager = new OSRMRoadManager(mContext); - // TEST TEST TEST of MapQuest API V2: - //roadManager = new MapQuestRoadManager("Fmjtd|luubn10zn9,8s=o5-90rnq6"); + roadManager = new OSRMRoadManager(mContext, userAgent); break; case GRAPHHOPPER_FASTEST: roadManager = new GraphHopperRoadManager(graphHopperApiKey, false);