+ /**
+ * Generate a url for routing with GraphHopper
+ * @param inTrackInfo track information
+ * @return URL
+ */
+ private static String generateGraphHopperUrl(TrackInfo inTrackInfo)
+ {
+ // Check if any data to display
+ if (inTrackInfo != null && inTrackInfo.getTrack() != null && inTrackInfo.getTrack().getNumPoints() >= 2)
+ {
+ if (inTrackInfo.getTrack().getNumPoints() == 2)
+ {
+ // Use first and last point of track
+ return generateGraphHopperUrl(inTrackInfo.getTrack().getPoint(0),
+ inTrackInfo.getTrack().getPoint(1));
+ }
+ else if (inTrackInfo.getSelection().hasRangeSelected())
+ {
+ // Use first and last point of selection
+ final int startIndex = inTrackInfo.getSelection().getStart();
+ final int endIndex = inTrackInfo.getSelection().getEnd();
+ return generateGraphHopperUrl(inTrackInfo.getTrack().getPoint(startIndex),
+ inTrackInfo.getTrack().getPoint(endIndex));
+ }
+ }
+ return null;
+ }
+
+ /**
+ * Generate a url for routing with GraphHopper
+ * @param inStartPoint start point of routing
+ * @param inEndPoint end point of routing
+ * @return URL
+ */
+ private static String generateGraphHopperUrl(DataPoint inStartPoint, DataPoint inEndPoint)
+ {
+ final String url = "https://graphhopper.com/maps/"
+ + "?point=" + FIVE_DP.format(inStartPoint.getLatitude().getDouble())
+ + "%2C" + FIVE_DP.format(inStartPoint.getLongitude().getDouble())
+ + "&point=" + FIVE_DP.format(inEndPoint.getLatitude().getDouble())
+ + "%2C" + FIVE_DP.format(inEndPoint.getLongitude().getDouble())
+ + "&locale=" + I18nManager.getText("wikipedia.lang")
+ + "&elevation=true&weighting=fastest";
+ return url;
+ }
+