From 8b4463fe6709720658223fe9e7848b8d3a3bb73f Mon Sep 17 00:00:00 2001 From: Cameron Mace Date: Thu, 13 Jul 2017 21:27:27 -0400 Subject: [PATCH 1/3] updated optimization API --- Makefile | 6 + .../v1/MapboxOptimizedTripsRx.java | 4 +- .../v1/OptimizedTripsServiceRx.java | 50 +- .../v5/models/DirectionsWaypoint.java | 31 +- .../v1/MapboxOptimizedTrips.java | 109 +- .../v1/OptimizedTripsService.java | 56 +- .../src/test/fixtures/optimized_trip.json | 72 +- ...json => optimized_trip_distributions.json} | 88 +- .../test/fixtures/optimized_trip_steps.json | 19854 +++++----------- .../v1/MapboxOptimizedTripsTest.java | 110 +- 10 files changed, 6772 insertions(+), 13608 deletions(-) rename mapbox/libjava-services/src/test/fixtures/{optimized_trip_detailed.json => optimized_trip_distributions.json} (60%) diff --git a/Makefile b/Makefile index fba4f5e29..47edc2365 100644 --- a/Makefile +++ b/Makefile @@ -120,3 +120,9 @@ optimized-trips-fixtures: # request an optimized car trip with no additional options curl "https://api.mapbox.com/optimized-trips/v1/mapbox/driving/-122.42,37.78;-122.45,37.91;-122.48,37.73?access_token=$(MAPBOX_ACCESS_TOKEN)" \ -o mapbox/libjava-services/src/test/fixtures/optimized_trip.json + + curl "https://api.mapbox.com/optimized-trips/v1/mapbox/cycling/-122.42,37.78;-122.45,37.91;-122.48,37.73?steps=true&language=sv&access_token=$(MAPBOX_ACCESS_TOKEN)" \ + -o mapbox/libjava-services/src/test/fixtures/optimized_trip_steps.json + + curl "https://api.mapbox.com/optimized-trips/v1/mapbox/driving/13.388860,52.517037;13.397634,52.529407;13.428555,52.523219;13.418555,52.523215?roundtrip=true&distributions=3,1&access_token=$(MAPBOX_ACCESS_TOKEN)" \ + -o mapbox/libjava-services/src/test/fixtures/optimized_trip_distributions.json diff --git a/mapbox/libjava-services-rx/src/main/java/com/mapbox/services/api/rx/optimizedtrips/v1/MapboxOptimizedTripsRx.java b/mapbox/libjava-services-rx/src/main/java/com/mapbox/services/api/rx/optimizedtrips/v1/MapboxOptimizedTripsRx.java index 18f13954f..8dd920d94 100644 --- a/mapbox/libjava-services-rx/src/main/java/com/mapbox/services/api/rx/optimizedtrips/v1/MapboxOptimizedTripsRx.java +++ b/mapbox/libjava-services-rx/src/main/java/com/mapbox/services/api/rx/optimizedtrips/v1/MapboxOptimizedTripsRx.java @@ -72,7 +72,9 @@ public Observable getObservable() { builder.getGeometries(), builder.getAnnotation(), builder.getDestination(), - builder.getSource()); + builder.getSource(), + builder.getLanguage(), + builder.getDistributions()); // Done return observable; diff --git a/mapbox/libjava-services-rx/src/main/java/com/mapbox/services/api/rx/optimizedtrips/v1/OptimizedTripsServiceRx.java b/mapbox/libjava-services-rx/src/main/java/com/mapbox/services/api/rx/optimizedtrips/v1/OptimizedTripsServiceRx.java index e7be79fd7..40cd9ea21 100644 --- a/mapbox/libjava-services-rx/src/main/java/com/mapbox/services/api/rx/optimizedtrips/v1/OptimizedTripsServiceRx.java +++ b/mapbox/libjava-services-rx/src/main/java/com/mapbox/services/api/rx/optimizedtrips/v1/OptimizedTripsServiceRx.java @@ -16,26 +16,28 @@ public interface OptimizedTripsServiceRx { /** - * @param userAgent The user. - * @param user The user. - * @param profile The profile directions should use. - * @param coordinates The coordinates used to calculate the trip. - * @param accessToken Mapbox access token. - * @param roundTrip Returned route is a roundtrip (route returns to first location). Allowed values are: true - * (default) or false. - * @param radiuses Maximum distance in meters that each coordinate is allowed to move when snapped to a nearby - * road segment. There must be as many radiuses as there are coordinates in the request. Values - * can be any number greater than 0 or they can be the string unlimited. If no routable road is - * found within the radius, a NoSegment error is returned. - * @param bearings Used to filter the road segment the waypoint will be placed on by direction and dictates - * the angle of approach - * @param steps Define if you'd like the route steps. - * @param geometries Route geometry. - * @param annotations An annotations object that contains additional details about each line segment along the - * route geometry. Each entry in an annotations field corresponds to a coordinate along the - * route geometry. - * @param destination Returned route ends at any or last coordinate. Allowed values are: any (default) or last. - * @param source Returned route starts at any or first coordinate. Allowed values are: any (default) or first. + * @param userAgent The user. + * @param user The user. + * @param profile The profile directions should use. + * @param coordinates The coordinates used to calculate the trip. + * @param accessToken Mapbox access token. + * @param roundTrip Returned route is a roundtrip (route returns to first location). Allowed values are: true + * (default) or false. + * @param radiuses Maximum distance in meters that each coordinate is allowed to move when snapped to a nearby + * road segment. There must be as many radiuses as there are coordinates in the request. Values + * can be any number greater than 0 or they can be the string unlimited. If no routable road is + * found within the radius, a NoSegment error is returned. + * @param bearings Used to filter the road segment the waypoint will be placed on by direction and dictates + * the angle of approach + * @param steps Define if you'd like the route steps. + * @param geometries Route geometry. + * @param annotations An annotations object that contains additional details about each line segment along the + * route geometry. Each entry in an annotations field corresponds to a coordinate along the + * route geometry. + * @param destination Returned route ends at any or last coordinate. Allowed values are: any (default) or last. + * @param source Returned route starts at any or first coordinate. Allowed values are: any (default) or first. + * @param language Language of returned turn-by-turn text instructions. + * @param distributions Specify pick-up and drop-off locations * @since 2.1.0 */ @GET("optimized-trips/v1/{user}/{profile}/{coordinates}") @@ -46,13 +48,15 @@ Observable getObservable( @Path("coordinates") String coordinates, @Query("access_token") String accessToken, @Query("roundtrip") Boolean roundTrip, - @Query("radiuses") double[] radiuses, - @Query("bearings") double[][] bearings, + @Query("radiuses") String radiuses, + @Query("bearings") String bearings, @Query("steps") Boolean steps, @Query("overview") String overview, @Query("geometries") String geometries, @Query("annotations") String[] annotations, @Query("destination") String destination, - @Query("source") String source + @Query("source") String source, + @Query("language") String language, + @Query("distributions") String distributions ); } \ No newline at end of file diff --git a/mapbox/libjava-services/src/main/java/com/mapbox/services/api/directions/v5/models/DirectionsWaypoint.java b/mapbox/libjava-services/src/main/java/com/mapbox/services/api/directions/v5/models/DirectionsWaypoint.java index 7a673c457..ebf51c03e 100644 --- a/mapbox/libjava-services/src/main/java/com/mapbox/services/api/directions/v5/models/DirectionsWaypoint.java +++ b/mapbox/libjava-services/src/main/java/com/mapbox/services/api/directions/v5/models/DirectionsWaypoint.java @@ -1,5 +1,6 @@ package com.mapbox.services.api.directions.v5.models; +import com.google.gson.annotations.SerializedName; import com.mapbox.services.commons.models.Position; /** @@ -11,6 +12,8 @@ public class DirectionsWaypoint { private String name; private double[] location; + @SerializedName("waypoint_index") + private int waypointIndex; /** * Empty constructor @@ -41,7 +44,7 @@ public void setName(String name) { } /** - * an array with two double values reresenting the maneuver locations coordinate. + * an array with two double values representing the maneuver locations coordinate. * * @return double array of [longitude, latitude] for the snapped coordinate. * @since 1.0.0 @@ -70,4 +73,30 @@ public void setLocation(double[] location) { public Position asPosition() { return Position.fromCoordinates(location[0], location[1]); } + + /** + * Index of the waypoint inside the matched route (MapMatching API) or within the trip (Optimization API). + *

+ * Note: Only used with Optimization and MapMatching APIs. + *

+ * + * @return an integer representing the waypoint position within the trip or matched route + * @since 2.2.0 + */ + public int getWaypointIndex() { + return waypointIndex; + } + + /** + * Set the index of the waypoint inside the matched route (MapMatching API) or within the trip (Optimization API). + *

+ * Note: Only used with Optimization and MapMatching APIs. + *

+ * + * @param waypointIndex an integer representing the waypoint position within the trip or matched route + * @since 2.2.0 + */ + public void setWaypointIndex(int waypointIndex) { + this.waypointIndex = waypointIndex; + } } diff --git a/mapbox/libjava-services/src/main/java/com/mapbox/services/api/optimizedtrips/v1/MapboxOptimizedTrips.java b/mapbox/libjava-services/src/main/java/com/mapbox/services/api/optimizedtrips/v1/MapboxOptimizedTrips.java index 5e49c44a1..bcdc25751 100644 --- a/mapbox/libjava-services/src/main/java/com/mapbox/services/api/optimizedtrips/v1/MapboxOptimizedTrips.java +++ b/mapbox/libjava-services/src/main/java/com/mapbox/services/api/optimizedtrips/v1/MapboxOptimizedTrips.java @@ -85,7 +85,9 @@ private Call getCall() { builder.getGeometries(), builder.getAnnotation(), builder.getDestination(), - builder.getSource()); + builder.getSource(), + builder.getLanguage(), + builder.getDistributions()); // Done return call; @@ -155,6 +157,8 @@ public static class Builder extends MapboxBuilder { private double[][] bearings; private String[] annotation; private String overview; + private String language; + private double[][] distributions; /** * Constructor @@ -376,6 +380,38 @@ public T setClientAppName(String appName) { return (T) this; } + /** + * Optionally set the language of returned turn-by-turn text instructions. The default is {@code en} for English. + * + * @param language The locale in which results should be returned. + * @return Builder + * @see Supported languages + * @since 2.2.0 + */ + public T setLanguage(String language) { + this.language = language; + return (T) this; + } + + /** + * Specify pick-up and drop-off locations for a trip by providing a {@code double[]} each with a number pair that + * correspond with the coordinates list. The first number indicates what place the coordinate of the pick-up + * location is in the coordinates list, and the second number indicates what place the coordinate of the drop-off + * location is in the coordinates list. Each pair must contain exactly two numbers. Pick-up and drop-off locations + * in one pair cannot be the same. The returned solution will visit pick-up locations before visiting drop-off + * locations. The depot (first location) can only be a pick-up location but not a drop-off location. + * + * @param distributions {@code double[]} with two values, first being the pickup coordinate in the coordinates list + * and the second number being the coordinate in the coordinates list which should be the drop + * off location. + * @return Builder + * @since 2.2.0 + */ + public T setDistributions(double[]... distributions) { + this.distributions = distributions; + return (T) this; + } + /* * Getters */ @@ -462,11 +498,24 @@ public String getGeometries() { * Get the maximum distance in meters you have set that each coordinate is allowed to move when snapped to a nearby * road segment. * - * @return double array containing the radiuses defined in unit meters. + * @return String containing the radiuses defined in unit meters. * @since 2.1.0 */ - public double[] getRadiuses() { - return radiuses; + public String getRadiuses() { + if (radiuses == null || radiuses.length == 0) { + return null; + } + + String[] radiusesFormatted = new String[radiuses.length]; + for (int i = 0; i < radiuses.length; i++) { + if (radiuses[i] == Double.POSITIVE_INFINITY) { + radiusesFormatted[i] = "unlimited"; + } else { + radiusesFormatted[i] = String.format(Locale.US, "%s", TextUtils.formatCoordinate(radiuses[i])); + } + } + + return TextUtils.join(";", radiusesFormatted); } /** @@ -502,12 +551,26 @@ public Boolean getSteps() { * Determine whether you are filtering the road segment the waypoint will be placed on by direction and dictating * the angle of approach. * - * @return a double array with two values indicating the angle and the other value indicating the deviating + * @return String with two values indicating the angle and the other value indicating the deviating * range. * @since 2.1.0 */ - public double[][] getBearings() { - return bearings; + public String getBearings() { + if (bearings == null || bearings.length == 0) { + return null; + } + + String[] bearingFormatted = new String[bearings.length]; + for (int i = 0; i < bearings.length; i++) { + if (bearings[i].length == 0) { + bearingFormatted[i] = ""; + } else { + bearingFormatted[i] = String.format(Locale.US, "%s,%s", + TextUtils.formatCoordinate(bearings[i][0]), + TextUtils.formatCoordinate(bearings[i][1])); + } + } + return TextUtils.join(";", bearingFormatted); } /** @@ -531,6 +594,38 @@ public String getAccessToken() { return accessToken; } + /** + * @return The language the turn-by-turn directions will be in. + * @since 2.2.0 + */ + public String getLanguage() { + return language; + } + + /** + * If distribution values are set inside your request, this will return a String containing the given values. + * + * @return String containing the provided distribution values. + * @since 2.2.0 + */ + public String getDistributions() { + if (distributions == null || distributions.length == 0) { + return null; + } + + String[] distributionsFormatted = new String[distributions.length]; + for (int i = 0; i < distributions.length; i++) { + if (distributions[i].length == 0) { + distributionsFormatted[i] = ""; + } else { + distributionsFormatted[i] = String.format(Locale.US, "%s,%s", + TextUtils.formatCoordinate(distributions[i][0]), + TextUtils.formatCoordinate(distributions[i][1])); + } + } + return TextUtils.join(";", distributionsFormatted); + } + /** * Build method * diff --git a/mapbox/libjava-services/src/main/java/com/mapbox/services/api/optimizedtrips/v1/OptimizedTripsService.java b/mapbox/libjava-services/src/main/java/com/mapbox/services/api/optimizedtrips/v1/OptimizedTripsService.java index a1a32cc37..e10fdf37c 100644 --- a/mapbox/libjava-services/src/main/java/com/mapbox/services/api/optimizedtrips/v1/OptimizedTripsService.java +++ b/mapbox/libjava-services/src/main/java/com/mapbox/services/api/optimizedtrips/v1/OptimizedTripsService.java @@ -16,27 +16,29 @@ public interface OptimizedTripsService { /** - * @param userAgent The user. - * @param user The user. - * @param profile The profile directions should use. - * @param coordinates The coordinates used to calculate the trip. - * @param accessToken Mapbox access token. - * @param roundTrip Returned route is a roundtrip (route returns to first location). Allowed values are: true - * (default) or false. - * @param radiuses Maximum distance in meters that each coordinate is allowed to move when snapped to a nearby - * road segment. There must be as many radiuses as there are coordinates in the request. Values - * can be any number greater than 0 or they can be the string unlimited. If no routable road is - * found within the radius, a NoSegment error is returned. - * @param bearings Used to filter the road segment the waypoint will be placed on by direction and dictates - * the angle of approach - * @param steps Define if you'd like the route steps. - * @param overview Route full, simplified, etc. - * @param geometries Route geometry. - * @param annotations An annotations object that contains additional details about each line segment along the - * route geometry. Each entry in an annotations field corresponds to a coordinate along the - * route geometry. - * @param destination Returned route ends at any or last coordinate. Allowed values are: any (default) or last. - * @param source Returned route starts at any or first coordinate. Allowed values are: any (default) or first. + * @param userAgent The user. + * @param user The user. + * @param profile The profile directions should use. + * @param coordinates The coordinates used to calculate the trip. + * @param accessToken Mapbox access token. + * @param roundTrip Returned route is a roundtrip (route returns to first location). Allowed values are: true + * (default) or false. + * @param radiuses Maximum distance in meters that each coordinate is allowed to move when snapped to a nearby + * road segment. There must be as many radiuses as there are coordinates in the request. Values + * can be any number greater than 0 or they can be the string unlimited. If no routable road is + * found within the radius, a NoSegment error is returned. + * @param bearings Used to filter the road segment the waypoint will be placed on by direction and dictates + * the angle of approach + * @param steps Define if you'd like the route steps. + * @param overview Route full, simplified, etc. + * @param geometries Route geometry. + * @param annotations An annotations object that contains additional details about each line segment along the + * route geometry. Each entry in an annotations field corresponds to a coordinate along the + * route geometry. + * @param destination Returned route ends at any or last coordinate. Allowed values are: any (default) or last. + * @param source Returned route starts at any or first coordinate. Allowed values are: any (default) or first. + * @param language Language of returned turn-by-turn text instructions. + * @param distributions Specify pick-up and drop-off locations * @return The {@link OptimizedTripsResponse} in a Call wrapper. * @since 2.1.0 */ @@ -49,15 +51,15 @@ Call getCall( @Path("coordinates") String coordinates, @Query("access_token") String accessToken, @Query("roundtrip") Boolean roundTrip, - @Query("radiuses") double[] radiuses, - @Query("bearings") double[][] bearings, + @Query("radiuses") String radiuses, + @Query("bearings") String bearings, @Query("steps") Boolean steps, @Query("overview") String overview, @Query("geometries") String geometries, @Query("annotations") String[] annotations, @Query("destination") String destination, - @Query("source") String source + @Query("source") String source, + @Query("language") String language, + @Query("distributions") String distributions ); -} - - +} \ No newline at end of file diff --git a/mapbox/libjava-services/src/test/fixtures/optimized_trip.json b/mapbox/libjava-services/src/test/fixtures/optimized_trip.json index 4cbcbcb60..9fc763f25 100644 --- a/mapbox/libjava-services/src/test/fixtures/optimized_trip.json +++ b/mapbox/libjava-services/src/test/fixtures/optimized_trip.json @@ -1,64 +1,64 @@ { - "trips": [ - { - "geometry": "q|qeFbdejV}cCzZrNv|Bi[nj@nIb_AeGvk@s_@pn@gmClSoo@|h@co@[oz@fp@qj@vgAs_AfJ}l@vt@ehCgLlY{wAjU_]ut@kpBnFcU`Oh@eB{R`ZgIuAgj@tAfj@aZfIdBzRaOi@oFbUzs@|pB_Uj[q]fiBvnCoAvi@ks@naAgK~j@ihAdy@kn@vo@E~o@ui@|fCoOhj@mo@j_Ab@zc@|Q~pAqD~F`o@`|F{[nEv^`U_^|vAqRbNwuAeb@yt@iu@qMeYiYiUmdAX{dB{Pgi@ojBuc@kq@hTcl@wE_OzR{ApeA_|@hA", - "legs": [ - { - "steps": [], - "distance": 25785.8, - "duration": 1829.6, - "summary": "", - "weight": 2004.6 - }, - { - "steps": [], - "distance": 28835.6, - "duration": 2124.4, - "summary": "", - "weight": 2231.1 - }, - { - "steps": [], - "distance": 16067.5, - "duration": 1317, - "summary": "", - "weight": 1381.1 - } - ], - "distance": 70688.9, - "duration": 5271, - "weight_name": "routability", - "weight": 5616.799999999999 - } - ], + "code": "Ok", "waypoints": [ { - "waypoint_index": 0, "location": [ -122.420019, 37.780091 ], "name": "McAllister Street", + "waypoint_index": 0, "trips_index": 0 }, { - "waypoint_index": 1, "location": [ -122.461997, 37.89621 ], "name": "Playa Verde", + "waypoint_index": 1, "trips_index": 0 }, { - "waypoint_index": 2, "location": [ -122.480005, 37.730039 ], "name": "", + "waypoint_index": 2, "trips_index": 0 } ], - "code": "Ok" + "trips": [ + { + "legs": [ + { + "steps": [], + "weight": 4297.1, + "distance": 25785.8, + "summary": "", + "duration": 2206.1 + }, + { + "steps": [], + "weight": 4957.5, + "distance": 28835.6, + "summary": "", + "duration": 2526.6 + }, + { + "steps": [], + "weight": 2336.3, + "distance": 16096.4, + "summary": "", + "duration": 1201.1 + } + ], + "weight_name": "routability", + "geometry": "q|qeFbdejV}cCzZrNv|Bi[nj@nIb_AeGvk@s_@pn@gmClSoo@|h@co@[oz@fp@qj@vgAs_AfJ}l@vt@ehCgLlY{wAjU_]ut@kpBnFcU`Oh@eB{R`ZgIuAgj@tAfj@aZfIdBzRaOi@oFbUzs@|pB_Uj[q]fiBvnCoAvi@ks@naAgK~j@ihAdy@kn@vo@E~o@ui@|fCoOhj@mo@j_Ab@zc@|Q~pAqD~F`o@`|F{[nEv^bQiIh@yS`h@bAnp@qT~MuzAmc@_q@mr@uKyYiX}UkdAb@ybBmQcm@ojBuc@kq@hTcl@wE_OzR{ApeA_|@hA", + "weight": 11590.900000000001, + "distance": 70717.79999999999, + "duration": 5933.799999999999 + } + ] } diff --git a/mapbox/libjava-services/src/test/fixtures/optimized_trip_detailed.json b/mapbox/libjava-services/src/test/fixtures/optimized_trip_distributions.json similarity index 60% rename from mapbox/libjava-services/src/test/fixtures/optimized_trip_detailed.json rename to mapbox/libjava-services/src/test/fixtures/optimized_trip_distributions.json index 74fb06bbd..c5422aae8 100644 --- a/mapbox/libjava-services/src/test/fixtures/optimized_trip_detailed.json +++ b/mapbox/libjava-services/src/test/fixtures/optimized_trip_distributions.json @@ -1,80 +1,80 @@ { - "trips": [ - { - "geometry": "mfp_I__vpA\\E}@cZc@D?dBu[fEsDQaTmJoK~EoFo_@w@md@rGqo@bDiQrEgKbH_VuRmWVyBIeBb@e@pE_NbJkPt@InHpCD`FFpL[rD}BzK{GnUzOrQbCpB\\q@_DoDPi@kCuCk@m@Of@{@w@iGyHa@rAt\\r]lBjDhG~PlIhLsDvFmAjDcCxB_FnHlF~KrFtTlArc@d@|[ZC", - "legs": [ - { - "steps": [], - "distance": 1995.4, - "duration": 390.1, - "summary": "", - "weight": 393.7 - }, - { - "steps": [], - "distance": 2947.2, - "duration": 434.6, - "summary": "", - "weight": 434.6 - }, - { - "steps": [], - "distance": 1343.5, - "duration": 227.1, - "summary": "", - "weight": 276.8 - }, - { - "steps": [], - "distance": 3133.5, - "duration": 509, - "summary": "", - "weight": 529.1 - } - ], - "distance": 9419.6, - "duration": 1560.8, - "weight_name": "routability", - "weight": 1634.1999999999998 - } - ], + "code": "Ok", "waypoints": [ { - "waypoint_index": 0, "location": [ 13.3888, 52.517033 ], "name": "Friedrichstraße", + "waypoint_index": 0, "trips_index": 0 }, { - "waypoint_index": 1, "location": [ 13.397631, 52.529432 ], "name": "Torstraße", + "waypoint_index": 3, "trips_index": 0 }, { - "waypoint_index": 2, "location": [ 13.428554, 52.523239 ], "name": "Platz der Vereinten Nationen", + "waypoint_index": 2, "trips_index": 0 }, { - "waypoint_index": 3, "location": [ 13.418364, 52.523292 ], "name": "", + "waypoint_index": 1, "trips_index": 0 } ], - "code": "Ok" + "trips": [ + { + "legs": [ + { + "steps": [], + "weight": 646.1, + "distance": 2442.4, + "summary": "", + "duration": 347.5 + }, + { + "steps": [], + "weight": 407.3, + "distance": 1502.1, + "summary": "", + "duration": 222.6 + }, + { + "steps": [], + "weight": 544.6, + "distance": 2285.4, + "summary": "", + "duration": 286.2 + }, + { + "steps": [], + "weight": 491.8, + "distance": 1901.5, + "summary": "", + "duration": 264.6 + } + ], + "weight_name": "routability", + "geometry": "mfp_I__vpA\\EU{J{Bgr@[oCcIuX_Skf@oGkLxK_Z_DoDPi@kCuCk@m@Of@{@w@{EaGnBsGfGiZLeDImRtJf@Pg@mLs@FnGB~MqAlIqHrX_Mf_@eF|WgGtn@HxJn@vH\\vNtDxVrGvi@d~@kJ", + "weight": 2089.8, + "distance": 8131.4, + "duration": 1120.9 + } + ] } diff --git a/mapbox/libjava-services/src/test/fixtures/optimized_trip_steps.json b/mapbox/libjava-services/src/test/fixtures/optimized_trip_steps.json index eda81ee61..fb1bb9b3d 100644 --- a/mapbox/libjava-services/src/test/fixtures/optimized_trip_steps.json +++ b/mapbox/libjava-services/src/test/fixtures/optimized_trip_steps.json @@ -1,219 +1,36 @@ { + "code": "Ok", + "waypoints": [ + { + "location": [ + -122.420019, + 37.780091 + ], + "name": "McAllister Street", + "waypoint_index": 0, + "trips_index": 0 + }, + { + "location": [ + -122.446226, + 37.913053 + ], + "name": "San Francisco - Larkspur Ferry", + "waypoint_index": 1, + "trips_index": 0 + }, + { + "location": [ + -122.480005, + 37.730039 + ], + "name": "", + "waypoint_index": 2, + "trips_index": 0 + } + ], "trips": [ { - "geometry": { - "coordinates": [ - [ - -122.420019, - 37.780091 - ], - [ - -122.411604, - 37.781219 - ], - [ - -122.392454, - 37.794947 - ], - [ - -122.387441, - 37.806978 - ], - [ - -122.388771, - 37.823726 - ], - [ - -122.400273, - 37.866427 - ], - [ - -122.405079, - 37.875777 - ], - [ - -122.410744, - 37.884177 - ], - [ - -122.446226, - 37.913053 - ], - [ - -122.469066, - 37.929043 - ], - [ - -122.490361, - 37.933883 - ], - [ - -122.510487, - 37.945777 - ], - [ - -122.514291, - 37.944406 - ], - [ - -122.515668, - 37.935805 - ], - [ - -122.518604, - 37.934943 - ], - [ - -122.518697, - 37.925148 - ], - [ - -122.522306, - 37.925336 - ], - [ - -122.522892, - 37.91931 - ], - [ - -122.520079, - 37.914942 - ], - [ - -122.524855, - 37.91052 - ], - [ - -122.527003, - 37.902384 - ], - [ - -122.524454, - 37.887393 - ], - [ - -122.504334, - 37.871775 - ], - [ - -122.497461, - 37.86366 - ], - [ - -122.482415, - 37.858231 - ], - [ - -122.478956, - 37.854914 - ], - [ - -122.480806, - 37.847291 - ], - [ - -122.478183, - 37.846227 - ], - [ - -122.477579, - 37.841019 - ], - [ - -122.482523, - 37.839365 - ], - [ - -122.483854, - 37.83512 - ], - [ - -122.479782, - 37.831016 - ], - [ - -122.477207, - 37.809448 - ], - [ - -122.475021, - 37.807486 - ], - [ - -122.482197, - 37.788921 - ], - [ - -122.485295, - 37.787616 - ], - [ - -122.48424, - 37.772361 - ], - [ - -122.480381, - 37.771027 - ], - [ - -122.478275, - 37.765925 - ], - [ - -122.475376, - 37.737459 - ], - [ - -122.47493, - 37.731084 - ], - [ - -122.480005, - 37.730039 - ], - [ - -122.475969, - 37.730082 - ], - [ - -122.476195, - 37.734574 - ], - [ - -122.471557, - 37.734725 - ], - [ - -122.465565, - 37.739494 - ], - [ - -122.443836, - 37.746889 - ], - [ - -122.442503, - 37.752599 - ], - [ - -122.437769, - 37.755541 - ], - [ - -122.438377, - 37.761677 - ], - [ - -122.419329, - 37.775112 - ], - [ - -122.420019, - 37.780091 - ] - ], - "type": "LineString" - }, "legs": [ { "steps": [ @@ -224,16289 +41,9528 @@ "entry": [ true ], - "bearings": [ - 81 - ], "location": [ -122.420019, 37.780091 - ] - }, - { - "out": 0, - "location": [ - -122.419823, - 37.780116 ], "bearings": [ - 75, - 165, - 255 - ], + 261 + ] + } + ], + "geometry": "q|qeFbdejV@J?T", + "duration": 9.6, + "distance": 15, + "name": "McAllister Street", + "weight": 11.1, + "mode": "cycling", + "maneuver": { + "bearing_after": 261, + "location": [ + -122.420019, + 37.780091 + ], + "type": "depart", + "bearing_before": 0, + "modifier": "left", + "instruction": "Kör åt väster på McAllister Street" + } + }, + { + "intersections": [ + { + "out": 3, + "in": 0, "entry": [ + false, + false, true, - true, - false + true ], - "in": 2 - }, - { - "out": 0, "location": [ - -122.41901, - 37.780221 + -122.420189, + 37.780081 ], "bearings": [ - 75, + 90, 165, - 255 - ], + 270, + 345 + ] + }, + { + "out": 3, + "in": 1, "entry": [ true, + false, true, - false + true ], - "in": 2 - }, - { - "out": 0, "location": [ - -122.418615, - 37.780272 + -122.420383, + 37.781042 ], "bearings": [ 75, - 135, 165, 255, 345 - ], + ] + }, + { + "out": 3, + "in": 1, "entry": [ - true, - true, true, false, + true, true ], - "in": 3 - }, - { - "out": 0, "location": [ - -122.418082, - 37.78034 + -122.420572, + 37.781972 ], "bearings": [ 75, - 150, - 255 - ], + 165, + 255, + 345 + ] + } + ], + "maneuver": { + "bearing_after": 350, + "location": [ + -122.420189, + 37.780081 + ], + "type": "turn", + "bearing_before": 262, + "modifier": "right", + "instruction": "Sväng höger in på Van Ness Avenue (US 101)" + }, + "duration": 86.4, + "distance": 318.3, + "name": "Van Ness Avenue (US 101)", + "geometry": "o|qeFdeejVUBmANkANO@QBkAN[DYBWDM@OBeCXe@F", + "ref": "US 101", + "weight": 86.4, + "mode": "cycling" + }, + { + "intersections": [ + { + "out": 0, + "in": 1, "entry": [ true, + false, true, - false + true ], - "in": 2 - }, - { - "out": 1, "location": [ - -122.417118, - 37.780464 + -122.42076, + 37.782907 ], "bearings": [ - 0, 75, - 180, - 255 - ], + 165, + 255, + 345 + ] + }, + { + "out": 0, + "in": 2, "entry": [ true, true, - true, - false + false, + true ], - "in": 3 - }, - { - "out": 1, "location": [ - -122.41699, - 37.780499 + -122.419192, + 37.783106 ], "bearings": [ - 0, 75, - 180, - 255 - ], + 165, + 255, + 345 + ] + }, + { + "out": 0, + "in": 2, "entry": [ true, true, - true, - false + false, + true ], - "in": 3 - }, - { - "out": 0, "location": [ - -122.416866, - 37.780532 + -122.417548, + 37.783315 ], "bearings": [ 75, 165, 255, 345 - ], + ] + }, + { + "out": 0, + "in": 2, "entry": [ true, true, false, true ], - "in": 2 - }, - { - "out": 0, "location": [ - -122.416164, - 37.780622 + -122.415903, + 37.783524 ], "bearings": [ 75, + 165, 255, 345 - ], + ] + }, + { + "out": 0, + "in": 2, "entry": [ + true, true, false, true ], - "in": 1 - }, - { - "out": 0, "location": [ - -122.415985, - 37.780644 + -122.414258, + 37.783734 ], "bearings": [ 75, + 165, 255, 345 - ], + ] + }, + { + "out": 0, + "in": 2, "entry": [ + true, true, false, true ], - "in": 1 - }, - { - "out": 0, "location": [ - -122.415339, - 37.780726 + -122.412615, + 37.783943 ], "bearings": [ 75, 165, 255, 345 - ], + ] + }, + { + "out": 0, + "in": 2, "entry": [ true, true, false, true ], - "in": 2 - }, - { - "out": 0, "location": [ - -122.413693, - 37.780933 + -122.410972, + 37.784152 ], "bearings": [ 75, + 165, 255, 345 - ], - "entry": [ - true, - false, - true - ], - "in": 1 + ] }, { "out": 0, - "location": [ - -122.413581, - 37.780947 - ], - "bearings": [ - 75, - 180, - 255 - ], + "in": 2, "entry": [ true, true, - false + false, + true ], - "in": 2 - }, - { - "out": 0, "location": [ - -122.41315, - 37.781002 + -122.409327, + 37.784361 ], "bearings": [ 75, - 135, - 255 - ], + 165, + 255, + 345 + ] + } + ], + "geometry": "enreFvhejVg@yHi@gIg@iIi@gIY_EOgCOsBYuEi@gIOyBCe@", + "duration": 275.7, + "distance": 1088.7, + "name": "Eddy Street", + "weight": 275.7, + "mode": "cycling", + "maneuver": { + "bearing_after": 80, + "location": [ + -122.42076, + 37.782907 + ], + "type": "turn", + "bearing_before": 350, + "modifier": "right", + "instruction": "Sväng höger in på Eddy Street" + } + }, + { + "intersections": [ + { + "out": 1, + "in": 2, "entry": [ true, true, false ], - "in": 2 - }, - { - "out": 0, "location": [ - -122.41214, - 37.781128 + -122.408532, + 37.784462 ], "bearings": [ - 60, + 0, 165, 255 - ], - "entry": [ - true, - true, - false - ], - "in": 2 + ] } ], - "geometry": { - "coordinates": [ - [ - -122.420019, - 37.780091 - ], - [ - -122.419823, - 37.780116 - ], - [ - -122.419529, - 37.780154 - ], - [ - -122.41901, - 37.780221 - ], - [ - -122.418746, - 37.780255 - ], - [ - -122.418615, - 37.780272 - ], - [ - -122.418483, - 37.780289 - ], - [ - -122.418082, - 37.78034 - ], - [ - -122.417564, - 37.780407 - ], - [ - -122.417362, - 37.780433 - ], - [ - -122.417118, - 37.780464 - ], - [ - -122.417075, - 37.780473 - ], - [ - -122.41699, - 37.780499 - ], - [ - -122.416918, - 37.780521 - ], - [ - -122.416866, - 37.780532 - ], - [ - -122.416164, - 37.780622 - ], - [ - -122.415985, - 37.780644 - ], - [ - -122.415339, - 37.780726 - ], - [ - -122.413693, - 37.780933 - ], - [ - -122.413648, - 37.780939 - ], - [ - -122.413581, - 37.780947 - ], - [ - -122.413288, - 37.780984 - ], - [ - -122.41315, - 37.781002 - ], - [ - -122.41214, - 37.781128 - ], - [ - -122.412056, - 37.781163 - ] - ], - "type": "LineString" - }, + "geometry": "{wreFh|bjVF?DADABCj@u@PYBC", + "duration": 26.4, + "distance": 66.1, + "name": "Cyril Magnin Street", + "weight": 33.1, "mode": "cycling", - "duration": 179.1, "maneuver": { - "bearing_after": 81, - "type": "depart", - "modifier": "right", - "bearing_before": 0, + "bearing_after": 170, "location": [ - -122.420019, - 37.780091 + -122.408532, + 37.784462 ], - "instruction": "Head east on McAllister Street" - }, - "weight": 179.1, - "distance": 710.9, - "name": "McAllister Street" + "type": "end of road", + "bearing_before": 80, + "modifier": "right", + "instruction": "Sväng höger in på Cyril Magnin Street" + } }, { "intersections": [ { "out": 0, - "location": [ - -122.412056, - 37.781163 - ], - "bearings": [ - 75, - 165, - 240, - 345 - ], + "in": 3, "entry": [ true, true, - false, - true + true, + false ], - "in": 2 - }, - { - "out": 0, "location": [ - -122.411921, - 37.78118 + -122.408071, + 37.784013 ], "bearings": [ - 75, - 165, - 255 - ], + 45, + 135, + 225, + 315 + ] + }, + { + "out": 0, + "in": 2, "entry": [ true, true, - false + false, + true ], - "in": 2 - }, - { - "out": 1, "location": [ - -122.411717, - 37.781205 + -122.405916, + 37.785714 ], "bearings": [ 45, - 75, + 90, 225, - 255 - ], + 270 + ] + }, + { + "out": 0, + "in": 2, "entry": [ true, true, - true, - false - ], - "in": 3 - } - ], - "geometry": { - "coordinates": [ - [ - -122.412056, - 37.781163 - ], - [ - -122.411962, - 37.781175 - ], - [ - -122.411921, - 37.78118 - ], - [ - -122.411717, - 37.781205 + false, + true ], - [ - -122.411642, - 37.781214 + "location": [ + -122.403436, + 37.787676 ], - [ - -122.411604, - 37.781219 + "bearings": [ + 45, + 180, + 225, + 345 ] - ], - "type": "LineString" - }, - "mode": "pushing bike", - "duration": 29.400000000000002, - "maneuver": { - "bearing_after": 80, - "type": "notification", - "modifier": "straight", - "bearing_before": 61, - "location": [ - -122.412056, - 37.781163 - ], - "instruction": "Continue straight onto McAllister Street" - }, - "weight": 29.400000000000002, - "distance": 40.2, - "name": "McAllister Street" - }, - { - "intersections": [ + }, { "out": 0, + "in": 1, + "entry": [ + true, + false, + true + ], "location": [ - -122.411604, - 37.781219 + -122.402984, + 37.788031 ], "bearings": [ 45, 225, 255 - ], + ] + }, + { + "out": 1, + "in": 3, "entry": [ + true, true, true, false ], - "in": 2 - }, - { - "out": 0, "location": [ - -122.410356, - 37.782207 + -122.402008, + 37.788802 ], "bearings": [ + 0, 45, - 120, - 224, - 225, - 250, - 282, - 303 - ], + 165, + 225 + ] + }, + { + "out": 0, + "in": 2, "entry": [ true, true, - true, - false, - true, - true, - true + false ], - "in": 2 - }, - { - "out": 0, "location": [ - -122.409099, - 37.783201 + -122.401398, + 37.789284 ], "bearings": [ 45, - 225, - 345 - ], + 135, + 225 + ] + }, + { + "out": 0, + "in": 1, "entry": [ true, false, true ], - "in": 1 - }, - { - "out": 0, "location": [ - -122.408711, - 37.783509 + -122.400097, + 37.790312 ], "bearings": [ 45, 225, 255 - ], + ] + }, + { + "out": 1, + "in": 2, "entry": [ true, - false, - true + true, + false ], - "in": 1 - }, - { - "out": 0, "location": [ - -122.408398, - 37.783756 + -122.399572, + 37.790727 ], "bearings": [ + 0, 45, - 225, - 315 - ], + 225 + ] + }, + { + "out": 0, + "in": 2, "entry": [ + true, true, false, true ], - "in": 1 - }, - { - "out": 0, "location": [ - -122.408071, - 37.784013 + -122.399163, + 37.791051 ], "bearings": [ 45, 135, 225, 315 - ], - "entry": [ - true, - true, - false, - true - ], - "in": 2 - }, - { - "out": 0, - "location": [ - -122.407357, - 37.784577 - ], - "bearings": [ - 45, - 225, - 300 - ], - "entry": [ - true, - false, - true - ], - "in": 1 + ] }, { "out": 0, - "location": [ - -122.405916, - 37.785714 - ], - "bearings": [ - 45, - 90, - 225, - 270 - ], + "in": 2, "entry": [ true, true, false, true ], - "in": 2 - }, - { - "out": 0, "location": [ - -122.405079, - 37.786376 + -122.398298, + 37.791734 ], "bearings": [ 45, 135, - 225 - ], - "entry": [ - true, - true, - false - ], - "in": 2 - }, - { - "out": 0, - "location": [ - -122.404606, - 37.78675 - ], - "bearings": [ - 45, 225, 300 - ], - "entry": [ - true, - false, - true - ], - "in": 1 + ] }, { "out": 0, - "location": [ - -122.403436, - 37.787676 - ], - "bearings": [ - 45, - 180, - 225, - 345 - ], + "in": 2, "entry": [ true, true, false, - true - ], - "in": 2 - }, - { - "out": 0, - "location": [ - -122.402984, - 37.788031 - ], - "bearings": [ - 45, - 225, - 255 - ], - "entry": [ true, - false, true ], - "in": 1 - }, - { - "out": 0, - "location": [ - -122.402906, - 37.788094 - ], - "bearings": [ - 45, - 135, - 225 - ], - "entry": [ - true, - true, - false - ], - "in": 2 - }, - { - "out": 0, "location": [ - -122.402129, - 37.788706 + -122.397404, + 37.79244 ], "bearings": [ 45, - 165, + 150, 225, + 300, 345 - ], - "entry": [ - true, - true, - false, - true - ], - "in": 2 - }, + ] + } + ], + "geometry": "aureFlybjVUY{AsBaF_HeCgDiA}AyDiFeA{AKM{B{CQWW]gA{AaDkEk@w@Y_@y@iAg@q@W_@SWe@o@mAcBmCsDiCkD", + "duration": 360.09999999999997, + "distance": 1433.5, + "name": "Market Street", + "weight": 507.69999999999993, + "mode": "cycling", + "maneuver": { + "bearing_after": 43, + "location": [ + -122.408071, + 37.784013 + ], + "type": "turn", + "bearing_before": 133, + "modifier": "left", + "instruction": "Sväng vänster in på Market Street" + } + }, + { + "intersections": [ { - "out": 1, - "location": [ - -122.402008, - 37.788802 - ], - "bearings": [ - 0, - 45, - 165, - 225 - ], + "out": 2, + "in": 4, "entry": [ true, true, true, + true, false ], - "in": 3 - }, - { - "out": 1, "location": [ - -122.401864, - 37.788917 + -122.396537, + 37.793125 ], "bearings": [ - 0, + 15, + 30, 45, - 165, + 135, 225 - ], + ] + }, + { + "out": 0, + "in": 2, "entry": [ - true, true, true, false ], - "in": 3 - }, - { - "out": 0, "location": [ - -122.401398, - 37.789284 + -122.395694, + 37.793826 ], "bearings": [ 45, 135, 225 - ], + ] + } + ], + "geometry": "anteFjq`jVo@u@OQkAaBsBsCACAAAGAE", + "duration": 53.2, + "distance": 210.3, + "name": "Market Street", + "weight": 74.69999999999999, + "mode": "cycling", + "maneuver": { + "bearing_after": 40, + "location": [ + -122.396537, + 37.793125 + ], + "type": "continue", + "bearing_before": 45, + "modifier": "straight", + "instruction": "Fortsätt in på Market Street" + } + }, + { + "intersections": [ + { + "out": 0, + "in": 2, "entry": [ true, true, false ], - "in": 2 - }, - { - "out": 0, "location": [ - -122.400097, - 37.790312 + -122.394845, + 37.79445 ], "bearings": [ 45, - 225, + 120, 255 - ], + ] + }, + { + "out": 0, + "in": 2, "entry": [ + true, true, false, true ], - "in": 1 - }, - { - "out": 0, "location": [ - -122.39994, - 37.790436 + -122.394717, + 37.794552 ], "bearings": [ 45, 135, - 225 - ], - "entry": [ - true, - true, - false - ], - "in": 2 + 225, + 315 + ] }, { - "out": 1, - "location": [ - -122.399572, - 37.790727 - ], - "bearings": [ - 0, - 45, - 225 - ], + "out": 0, + "in": 2, "entry": [ true, true, - false + false, + true ], - "in": 2 - }, - { - "out": 0, "location": [ - -122.399316, - 37.790929 + -122.394576, + 37.794663 ], "bearings": [ 45, 135, 225, 315 - ], + ] + }, + { + "out": 0, + "in": 2, "entry": [ true, true, false, true ], - "in": 2 - }, - { - "out": 0, "location": [ - -122.399163, - 37.791051 + -122.394447, + 37.794764 ], "bearings": [ 45, 135, 225, 315 - ], + ] + }, + { + "out": 0, + "in": 2, "entry": [ true, true, false, true ], - "in": 2 - }, - { - "out": 0, "location": [ - -122.399042, - 37.791146 + -122.394436, + 37.794773 ], "bearings": [ 45, 135, 225, 315 - ], + ] + }, + { + "out": 0, + "in": 1, "entry": [ - true, true, false, true ], - "in": 2 - }, - { - "out": 0, "location": [ - -122.398795, - 37.791341 + -122.394415, + 37.79479 ], "bearings": [ 45, - 135, - 225 - ], + 225, + 315 + ] + } + ], + "geometry": "ivteFxf`jVEIMOU[SYAACCOSKK", + "duration": 49.3, + "distance": 74.1, + "name": "", + "weight": 49.3, + "mode": "pushing bike", + "maneuver": { + "bearing_after": 45, + "location": [ + -122.394845, + 37.79445 + ], + "type": "turn", + "bearing_before": 68, + "modifier": "slight left", + "instruction": "Sväng åt lätt vänster" + } + }, + { + "intersections": [ + { + "out": 1, + "in": 2, "entry": [ true, true, - false + false, + true ], - "in": 2 - }, - { - "out": 0, "location": [ - -122.398298, - 37.791734 + -122.394256, + 37.794926 ], "bearings": [ 45, 135, 225, - 300 - ], + 330 + ] + } + ], + "geometry": "iyteFbc`jVPSPUNU`@u@", + "duration": 17, + "distance": 70.7, + "name": "The Embarcadero", + "weight": 24.4, + "mode": "cycling", + "maneuver": { + "bearing_after": 137, + "location": [ + -122.394256, + 37.794926 + ], + "type": "turn", + "bearing_before": 40, + "modifier": "right", + "instruction": "Sväng höger in på The Embarcadero" + } + }, + { + "intersections": [ + { + "out": 0, + "in": 2, "entry": [ true, true, - false, - true + false ], - "in": 2 - }, - { - "out": 0, "location": [ - -122.397404, - 37.79244 + -122.393666, + 37.794497 ], "bearings": [ - 45, - 150, - 225, - 300, - 345 - ], + 120, + 135, + 315 + ] + } + ], + "geometry": "svteFl_`jVT}@", + "duration": 7.1, + "distance": 29.3, + "name": "", + "weight": 10.1, + "mode": "cycling", + "maneuver": { + "bearing_after": 113, + "location": [ + -122.393666, + 37.794497 + ], + "type": "turn", + "bearing_before": 126, + "modifier": "slight left", + "instruction": "Sväng åt lätt vänster" + } + }, + { + "intersections": [ + { + "out": 1, + "in": 4, "entry": [ true, true, - false, true, - true + true, + false ], - "in": 2 - }, - { - "out": 2, "location": [ - -122.396537, - 37.793125 + -122.393364, + 37.794386 ], "bearings": [ - 15, 30, - 45, - 135, - 225 - ], + 105, + 120, + 210, + 300 + ] + } + ], + "geometry": "}uteFn}_jVBKAC?C?CCCACEAEAK?", + "duration": 8.5, + "distance": 29.6, + "name": "", + "weight": 11.7, + "mode": "cycling", + "maneuver": { + "bearing_after": 104, + "location": [ + -122.393364, + 37.794386 + ], + "type": "fork", + "bearing_before": 113, + "modifier": "slight left", + "instruction": "Håll till vänster där vägen delar sig" + } + }, + { + "intersections": [ + { + "out": 0, + "in": 2, "entry": [ true, true, + false, true, - true, - false + true ], - "in": 4 - }, - { - "out": 0, "location": [ - -122.395694, - 37.793826 + -122.393179, + 37.794531 ], "bearings": [ 45, 135, - 225 - ], + 180, + 225, + 315 + ] + } + ], + "geometry": "yvteFj|_jVGK", + "duration": 4.3, + "distance": 6.9, + "name": "", + "weight": 4.3, + "mode": "pushing bike", + "maneuver": { + "bearing_after": 50, + "location": [ + -122.393179, + 37.794531 + ], + "type": "turn", + "bearing_before": 357, + "modifier": "right", + "instruction": "Sväng höger" + } + }, + { + "intersections": [ + { + "out": 0, + "in": 1, "entry": [ - true, true, false ], - "in": 2 - }, - { - "out": 0, "location": [ - -122.394931, - 37.794424 + -122.393118, + 37.79457 ], "bearings": [ 75, - 135, - 225, - 315 - ], + 225 + ] + }, + { + "out": 0, + "in": 2, "entry": [ true, true, false, true ], - "in": 2 - } - ], - "geometry": { - "coordinates": [ - [ - -122.411604, - 37.781219 - ], - [ - -122.410356, - 37.782207 - ], - [ - -122.409099, - 37.783201 - ], - [ - -122.408711, - 37.783509 - ], - [ - -122.408398, - 37.783756 - ], - [ - -122.408071, - 37.784013 - ], - [ - -122.407935, - 37.784123 + "location": [ + -122.393064, + 37.794585 ], - [ - -122.407357, - 37.784577 + "bearings": [ + 60, + 120, + 255, + 330 + ] + }, + { + "out": 0, + "in": 2, + "entry": [ + true, + true, + false ], - [ - -122.405916, - 37.785714 + "location": [ + -122.392548, + 37.794885 ], - [ - -122.405079, - 37.786376 + "bearings": [ + 45, + 150, + 225 + ] + } + ], + "geometry": "awteF~{_jVCK?GKWo@eAKSqBhB", + "duration": 41.3, + "distance": 151.6, + "name": "", + "weight": 41.3, + "mode": "cycling", + "maneuver": { + "bearing_after": 70, + "location": [ + -122.393118, + 37.79457 + ], + "type": "notification", + "bearing_before": 50, + "modifier": "straight", + "instruction": "Fortsätt rakt fram" + } + }, + { + "intersections": [ + { + "out": 0, + "in": 1, + "entry": [ + true, + false, + true ], - [ - -122.404606, - 37.78675 + "location": [ + -122.392977, + 37.795524 ], - [ - -122.403436, - 37.787676 - ], - [ - -122.402984, - 37.788031 - ], - [ - -122.402906, - 37.788094 - ], - [ - -122.402129, - 37.788706 - ], - [ - -122.402008, - 37.788802 - ], - [ - -122.401864, - 37.788917 - ], - [ - -122.401398, - 37.789284 - ], - [ - -122.40038, - 37.790089 - ], - [ - -122.400097, - 37.790312 - ], - [ - -122.39994, - 37.790436 - ], - [ - -122.399572, - 37.790727 - ], - [ - -122.399316, - 37.790929 - ], - [ - -122.399163, - 37.791051 - ], - [ - -122.399042, - 37.791146 - ], - [ - -122.398795, - 37.791341 - ], - [ - -122.398298, - 37.791734 - ], - [ - -122.397404, - 37.79244 - ], - [ - -122.396537, - 37.793125 - ], - [ - -122.396273, - 37.793365 - ], - [ - -122.396177, - 37.793446 - ], - [ - -122.395694, - 37.793826 - ], - [ - -122.394953, - 37.79441 - ], - [ - -122.394931, - 37.794424 - ], - [ - -122.39492, - 37.794431 - ], - [ - -122.394883, - 37.794443 - ], - [ - -122.394845, - 37.79445 + "bearings": [ + 60, + 150, + 330 ] - ], - "type": "LineString" - }, + } + ], + "geometry": "_}teFb{_jVq@oBMH", + "duration": 16.5, + "distance": 65.8, + "name": "", + "weight": 16.5, "mode": "cycling", - "duration": 526.7, "maneuver": { - "bearing_after": 43, - "type": "turn", - "modifier": "slight left", - "bearing_before": 80, + "bearing_after": 60, "location": [ - -122.411604, - 37.781219 + -122.392977, + 37.795524 ], - "instruction": "Make a slight left onto Market Street" - }, - "weight": 526.7, - "distance": 2083.2, - "name": "Market Street" + "type": "turn", + "bearing_before": 323, + "modifier": "right", + "instruction": "Sväng höger" + } }, { "intersections": [ { "out": 0, - "location": [ - -122.394845, - 37.79445 - ], - "bearings": [ - 45, - 120, - 255 - ], + "in": 2, "entry": [ true, true, false ], - "in": 2 - }, - { - "out": 0, "location": [ - -122.394717, - 37.794552 + -122.392474, + 37.795841 ], "bearings": [ - 45, - 135, - 225, - 315 - ], + 0, + 15, + 150 + ] + } + ], + "geometry": "__ueF|w_jV_@CYQaDaE}GaGgC_B_CaAgUwEoOmByEk@}KGiSr@ePp@gu@jD_gAfQsx@~MqtAtWur@|Lmy@`]os@jb@oh@fn@}p@`{@i^vg@yf@lq@{PhV", + "duration": 10600.8, + "distance": 14723.5, + "name": "San Francisco - Larkspur Ferry", + "weight": 10600.8, + "mode": "ferry", + "maneuver": { + "bearing_after": 7, + "location": [ + -122.392474, + 37.795841 + ], + "type": "turn", + "bearing_before": 330, + "modifier": "slight right", + "instruction": "Ta färjan på San Francisco - Larkspur Ferry" + } + }, + { + "intersections": [ + { + "in": 0, "entry": [ - true, - true, - false, true ], - "in": 2 - }, + "location": [ + -122.446226, + 37.913053 + ], + "bearings": [ + 134 + ] + } + ], + "geometry": "q{kfF|gjjV", + "duration": 0, + "distance": 0, + "name": "San Francisco - Larkspur Ferry", + "weight": 0, + "mode": "ferry", + "maneuver": { + "bearing_after": 0, + "bearing_before": 314, + "type": "arrive", + "location": [ + -122.446226, + 37.913053 + ], + "instruction": "Ta färjan på San Francisco - Larkspur Ferry" + } + } + ], + "weight": 11747.1, + "distance": 18283.4, + "summary": "Market Street, San Francisco - Larkspur Ferry", + "duration": 11556.2 + }, + { + "steps": [ + { + "intersections": [ { "out": 0, + "entry": [ + true + ], "location": [ - -122.394576, - 37.794663 + -122.446226, + 37.913053 ], "bearings": [ - 45, - 135, - 225, - 315 - ], + 314 + ] + } + ], + "geometry": "q{kfF|gjjV}NtSwa@bm@g]hh@_Rra@eIt[yBzOoFxp@wGtd@oTrm@eK`LiI`KaF`KgHjPuAxCqCpCENAN@NBLHR", + "duration": 4793.8, + "distance": 6657.9, + "name": "San Francisco - Larkspur Ferry", + "weight": 4793.8, + "mode": "ferry", + "maneuver": { + "bearing_after": 314, + "bearing_before": 0, + "type": "depart", + "location": [ + -122.446226, + 37.913053 + ], + "instruction": "Ta färjan på San Francisco - Larkspur Ferry" + } + }, + { + "intersections": [ + { + "out": 1, + "in": 0, "entry": [ - true, - true, false, true ], - "in": 2 - }, - { - "out": 0, "location": [ - -122.394447, - 37.794764 + -122.508457, + 37.94465 ], "bearings": [ - 45, - 135, - 225, - 315 - ], + 60, + 225 + ] + }, + { + "out": 2, + "in": 0, "entry": [ + false, true, true, - false, true ], - "in": 2 - }, - { - "out": 0, "location": [ - -122.394436, - 37.794773 + -122.508486, + 37.944629 ], "bearings": [ 45, 135, - 225, + 270, 315 - ], + ] + }, + { + "out": 3, + "in": 1, "entry": [ - true, true, false, + true, true ], - "in": 2 - }, - { - "out": 0, "location": [ - -122.394415, - 37.79479 + -122.508847, + 37.944634 ], "bearings": [ - 45, - 225, - 315 - ], + 15, + 90, + 195, + 270 + ] + } + ], + "geometry": "aarfFzlvjVBD?fACH@V", + "duration": 32.900000000000006, + "distance": 50.9, + "name": "", + "weight": 32.900000000000006, + "mode": "pushing bike", + "maneuver": { + "bearing_after": 226, + "location": [ + -122.508457, + 37.94465 + ], + "type": "notification", + "bearing_before": 236, + "modifier": "slight right", + "instruction": "Fortsätt lätt höger" + } + }, + { + "intersections": [ + { + "out": 5, + "in": 1, "entry": [ true, false, + true, + true, + true, true ], - "in": 1 - } - ], - "geometry": { - "coordinates": [ - [ - -122.394845, - 37.79445 - ], - [ - -122.394801, - 37.794482 - ], - [ - -122.394717, - 37.794552 - ], - [ - -122.394576, - 37.794663 - ], - [ - -122.394447, - 37.794764 - ], - [ - -122.394436, - 37.794773 - ], - [ - -122.394415, - 37.79479 - ], - [ - -122.394324, - 37.794867 + "location": [ + -122.509024, + 37.94464 ], - [ - -122.394256, - 37.794926 + "bearings": [ + 45, + 90, + 180, + 210, + 270, + 315 ] - ], - "type": "LineString" - }, - "mode": "pushing bike", - "duration": 49.300000000000004, - "maneuver": { - "bearing_after": 45, - "type": "continue", - "modifier": "slight left", - "bearing_before": 68, - "location": [ - -122.394845, - 37.79445 - ], - "instruction": "Continue slightly left" - }, - "weight": 49.300000000000004, - "distance": 74.1, - "name": "" - }, - { - "intersections": [ + }, { - "out": 1, + "out": 2, + "in": 0, + "entry": [ + false, + true, + true + ], "location": [ - -122.394256, - 37.794926 + -122.509259, + 37.944842 ], "bearings": [ - 60, 135, - 225, - 330 - ], + 255, + 315 + ] + }, + { + "out": 2, + "in": 0, "entry": [ - true, - true, false, + true, true ], - "in": 2 - } - ], - "geometry": { - "coordinates": [ - [ - -122.394256, - 37.794926 - ], - [ - -122.394156, - 37.794836 - ], - [ - -122.394051, - 37.794749 - ], - [ - -122.393944, - 37.794667 - ], - [ - -122.393666, - 37.794497 - ] - ], - "type": "LineString" - }, - "mode": "cycling", - "duration": 17, - "maneuver": { - "bearing_after": 137, - "type": "turn", - "modifier": "right", - "bearing_before": 40, - "location": [ - -122.394256, - 37.794926 - ], - "instruction": "Turn right onto The Embarcadero" - }, - "weight": 17, - "distance": 70.7, - "name": "The Embarcadero" - }, - { - "intersections": [ - { - "out": 0, "location": [ - -122.393666, - 37.794497 + -122.509388, + 37.944948 ], "bearings": [ - 120, 135, + 255, 315 - ], + ] + }, + { + "out": 2, + "in": 0, "entry": [ + false, true, - true, - false + true ], - "in": 2 - } - ], - "geometry": { - "coordinates": [ - [ - -122.393666, - 37.794497 + "location": [ + -122.509531, + 37.945065 ], - [ - -122.393364, - 37.794386 + "bearings": [ + 135, + 255, + 315 ] - ], - "type": "LineString" - }, - "mode": "cycling", - "duration": 7.1, - "maneuver": { - "bearing_after": 113, - "type": "turn", - "modifier": "slight left", - "bearing_before": 126, - "location": [ - -122.393666, - 37.794497 - ], - "instruction": "Make a slight left" - }, - "weight": 7.1, - "distance": 29.3, - "name": "" - }, - { - "intersections": [ + }, { - "out": 1, + "out": 2, + "in": 1, + "entry": [ + true, + false, + true + ], "location": [ - -122.393364, - 37.794386 + -122.509597, + 37.945119 ], "bearings": [ - 30, - 105, - 120, - 210, - 300 - ], + 90, + 135, + 315 + ] + }, + { + "out": 3, + "in": 1, "entry": [ true, + false, true, - true, - true, - false - ], - "in": 4 - } - ], - "geometry": { - "coordinates": [ - [ - -122.393364, - 37.794386 - ], - [ - -122.393302, - 37.794374 - ], - [ - -122.39328, - 37.794376 - ], - [ - -122.393258, - 37.794377 - ], - [ - -122.393241, - 37.794383 - ], - [ - -122.39322, - 37.794395 - ], - [ - -122.393203, - 37.794409 - ], - [ - -122.393185, - 37.794435 - ], - [ - -122.393178, - 37.794466 + true ], - [ - -122.393179, - 37.794531 - ] - ], - "type": "LineString" - }, - "mode": "cycling", - "duration": 8.5, - "maneuver": { - "bearing_after": 104, - "type": "fork", - "modifier": "slight left", - "bearing_before": 113, - "location": [ - -122.393364, - 37.794386 - ], - "instruction": "Keep left at the fork" - }, - "weight": 8.5, - "distance": 29.6, - "name": "" - }, - { - "intersections": [ - { - "out": 0, "location": [ - -122.393179, - 37.794531 + -122.509628, + 37.945143 ], "bearings": [ - 45, + 60, 135, - 180, 225, 315 - ], + ] + }, + { + "out": 2, + "in": 0, "entry": [ - true, - true, false, true, true ], - "in": 2 - } - ], - "geometry": { - "coordinates": [ - [ - -122.393179, - 37.794531 + "location": [ + -122.509676, + 37.94518 ], - [ - -122.393118, - 37.79457 + "bearings": [ + 135, + 255, + 315 ] - ], - "type": "LineString" - }, - "mode": "pushing bike", - "duration": 4.3, - "maneuver": { - "bearing_after": 50, - "type": "turn", - "modifier": "right", - "bearing_before": 357, - "location": [ - -122.393179, - 37.794531 - ], - "instruction": "Turn right" - }, - "weight": 4.3, - "distance": 6.9, - "name": "" - }, - { - "intersections": [ + }, { - "out": 0, + "out": 2, + "in": 0, + "entry": [ + false, + true, + true + ], "location": [ - -122.393118, - 37.79457 + -122.509821, + 37.945299 ], "bearings": [ - 75, - 225 - ], + 135, + 255, + 315 + ] + }, + { + "out": 2, + "in": 0, "entry": [ + false, true, - false + true ], - "in": 1 - }, - { - "out": 0, "location": [ - -122.393064, - 37.794585 + -122.509977, + 37.945425 ], "bearings": [ - 60, - 120, + 135, 255, - 330 - ], + 315 + ] + }, + { + "out": 2, + "in": 0, "entry": [ - true, - true, false, + true, true ], - "in": 2 - }, - { - "out": 0, "location": [ - -122.392548, - 37.794885 + -122.510126, + 37.945544 ], "bearings": [ - 45, - 150, - 225 - ], + 135, + 255, + 315 + ] + }, + { + "out": 2, + "in": 0, "entry": [ + false, true, - true, - false - ], - "in": 2 - } - ], - "geometry": { - "coordinates": [ - [ - -122.393118, - 37.79457 - ], - [ - -122.393064, - 37.794585 - ], - [ - -122.393018, - 37.794591 - ], - [ - -122.392896, - 37.794654 - ], - [ - -122.392548, - 37.794885 + true ], - [ - -122.392454, - 37.794947 + "location": [ + -122.510275, + 37.945664 ], - [ - -122.392977, - 37.795524 + "bearings": [ + 135, + 255, + 315 ] - ], - "type": "LineString" - }, + } + ], + "geometry": "_arfFjpvjVY\\MPUXSXC@ILCDGHWZY^U\\W\\MN", + "duration": 40.9, + "distance": 168.5, + "name": "", + "weight": 40.9, "mode": "cycling", - "duration": 41.3, "maneuver": { - "bearing_after": 70, - "type": "notification", - "modifier": "slight right", - "bearing_before": 50, + "bearing_after": 317, "location": [ - -122.393118, - 37.79457 + -122.509024, + 37.94464 ], - "instruction": "Continue slight right" - }, - "weight": 41.3, - "distance": 151.6, - "name": "" + "type": "turn", + "bearing_before": 264, + "modifier": "right", + "instruction": "Sväng höger" + } }, { "intersections": [ { - "out": 0, + "out": 1, + "in": 0, + "entry": [ + false, + true, + true + ], "location": [ - -122.392977, - 37.795524 + -122.510357, + 37.94573 ], "bearings": [ - 60, - 150, + 135, + 300, 330 - ], + ] + }, + { + "out": 1, + "in": 0, "entry": [ - true, false, + true, true ], - "in": 1 + "location": [ + -122.510768, + 37.945759 + ], + "bearings": [ + 75, + 255, + 345 + ] } ], - "geometry": { - "coordinates": [ - [ - -122.392977, - 37.795524 + "geometry": "ygrfFvxvjVIX?\\BXJfA", + "duration": 16.9, + "distance": 70, + "name": "", + "weight": 16.9, + "mode": "cycling", + "maneuver": { + "bearing_after": 293, + "location": [ + -122.510357, + 37.94573 + ], + "type": "fork", + "bearing_before": 315, + "modifier": "slight left", + "instruction": "Håll till vänster där vägen delar sig" + } + }, + { + "intersections": [ + { + "out": 2, + "in": 0, + "entry": [ + false, + true, + true ], - [ - -122.392416, - 37.795769 + "location": [ + -122.51113, + 37.945696 ], - [ - -122.392474, - 37.795841 + "bearings": [ + 75, + 225, + 270 ] - ], - "type": "LineString" - }, + } + ], + "geometry": "sgrfFp}vjV?RGR", + "duration": 7.9, + "distance": 18, + "name": "", + "weight": 7.9, "mode": "cycling", - "duration": 16.5, "maneuver": { - "bearing_after": 60, - "type": "turn", - "modifier": "right", - "bearing_before": 323, + "bearing_after": 275, "location": [ - -122.392977, - 37.795524 + -122.51113, + 37.945696 ], - "instruction": "Turn right" - }, - "weight": 16.5, - "distance": 65.8, - "name": "" + "type": "fork", + "bearing_before": 257, + "modifier": "slight right", + "instruction": "Håll till höger där vägen delar sig" + } }, { "intersections": [ { - "out": 0, + "out": 2, + "in": 1, + "entry": [ + true, + false, + true, + true + ], "location": [ - -122.392474, - 37.795841 + -122.511326, + 37.945735 ], "bearings": [ - 0, - 15, - 150 - ], + 60, + 120, + 240, + 300 + ] + }, + { + "out": 2, + "in": 0, "entry": [ + false, true, true, - false + true ], - "in": 2 - } - ], - "geometry": { - "coordinates": [ - [ - -122.392474, - 37.795841 + "location": [ + -122.511473, + 37.945648 ], - [ - -122.392447, - 37.796002 - ], - [ - -122.392359, - 37.796128 - ], - [ - -122.391389, - 37.796941 - ], - [ - -122.390102, - 37.798366 - ], - [ - -122.389616, - 37.799052 - ], - [ - -122.389286, - 37.799688 - ], - [ - -122.388214, - 37.803249 - ], - [ - -122.387656, - 37.805893 - ], - [ - -122.387441, - 37.806978 - ], - [ - -122.387398, - 37.809047 - ], - [ - -122.387656, - 37.812302 - ], - [ - -122.387913, - 37.815048 - ], - [ - -122.388771, - 37.823726 - ], - [ - -122.39169, - 37.835251 - ], - [ - -122.394093, - 37.84447 - ], - [ - -122.398041, - 37.85816 + "bearings": [ + 60, + 150, + 225, + 330 + ] + }, + { + "out": 2, + "in": 0, + "entry": [ + false, + true, + true, + true ], - [ - -122.400273, - 37.866427 + "location": [ + -122.511605, + 37.94556 ], - [ - -122.405079, - 37.875777 + "bearings": [ + 45, + 120, + 225, + 270 + ] + }, + { + "out": 2, + "in": 0, + "entry": [ + false, + true, + true ], - [ - -122.410744, - 37.884177 + "location": [ + -122.512183, + 37.945234 ], - [ - -122.418297, - 37.890816 + "bearings": [ + 60, + 150, + 240 + ] + }, + { + "out": 2, + "in": 0, + "entry": [ + false, + true, + true, + true ], - [ - -122.42791, - 37.898808 + "location": [ + -122.512724, + 37.944974 ], - [ - -122.434433, - 37.90382 + "bearings": [ + 60, + 150, + 240, + 330 + ] + }, + { + "out": 2, + "in": 0, + "entry": [ + false, + true, + true ], - [ - -122.442501, - 37.910186 + "location": [ + -122.513799, + 37.944646 ], - [ - -122.446226, - 37.913053 + "bearings": [ + 75, + 180, + 240 ] - ], - "type": "LineString" - }, - "mode": "ferry", - "duration": 10600.8, + } + ], + "geometry": "{grfFx~vjVPZPZLPr@~ATn@Vl@DLJ^XfAJdALh@BJ", + "duration": 67.1, + "distance": 256.7, + "name": "", + "weight": 67.1, + "mode": "cycling", "maneuver": { - "bearing_after": 7, - "type": "turn", - "modifier": "slight right", - "bearing_before": 330, + "bearing_after": 232, "location": [ - -122.392474, - 37.795841 + -122.511326, + 37.945735 ], - "instruction": "Take the ferry San Francisco - Larkspur Ferry" - }, - "weight": 10600.8, - "distance": 14723.5, - "name": "San Francisco - Larkspur Ferry" + "type": "turn", + "bearing_before": 292, + "modifier": "left", + "instruction": "Sväng vänster" + } }, { "intersections": [ { + "out": 1, "in": 0, "entry": [ + false, + true, true ], - "bearings": [ - 134 - ], "location": [ - -122.446226, - 37.913053 + -122.51386, + 37.944626 + ], + "bearings": [ + 60, + 180, + 240 ] } ], - "geometry": { - "coordinates": [ - [ - -122.446226, - 37.913053 - ], - [ - -122.446226, - 37.913053 - ] - ], - "type": "LineString" - }, - "mode": "ferry", - "duration": 0, + "geometry": "}`rfFrnwjVHA`@AJAb@^h@jAC\\Cd@KVORENAT?PDP^`ApAxBj@x@HT", + "duration": 83.4, + "distance": 335.1, + "name": "", + "weight": 83.4, + "mode": "cycling", "maneuver": { - "bearing_after": 0, + "bearing_after": 174, "location": [ - -122.446226, - 37.913053 + -122.51386, + 37.944626 ], - "bearing_before": 314, - "type": "arrive", - "instruction": "Take the ferry San Francisco - Larkspur Ferry" - }, - "weight": 0, - "distance": 0, - "name": "San Francisco - Larkspur Ferry" - } - ], - "distance": 17985.8, - "duration": 11480, - "summary": "Market Street, San Francisco - Larkspur Ferry", - "weight": 11480 - }, - { - "steps": [ + "type": "turn", + "bearing_before": 246, + "modifier": "left", + "instruction": "Sväng vänster" + } + }, { "intersections": [ { - "out": 0, + "out": 2, + "in": 0, "entry": [ + false, + true, true ], - "bearings": [ - 314 - ], "location": [ - -122.446226, - 37.913053 + -122.516635, + 37.943314 + ], + "bearings": [ + 60, + 225, + 315 ] } ], - "geometry": { - "coordinates": [ - [ - -122.446226, - 37.913053 - ], - [ - -122.44954, - 37.915603 - ], - [ - -122.456921, - 37.921155 - ], - [ - -122.46353, - 37.925996 - ], - [ - -122.469066, - 37.929043 - ], - [ - -122.473658, - 37.930668 - ], - [ - -122.476362, - 37.931277 - ], - [ - -122.484327, - 37.932475 - ], - [ - -122.490361, - 37.933883 - ], - [ - -122.497819, - 37.937322 - ], - [ - -122.499905, - 37.939272 - ], - [ - -122.501836, - 37.940917 - ], - [ - -122.503767, - 37.942054 - ], - [ - -122.50655, - 37.943529 - ], - [ - -122.507317, - 37.94396 - ], - [ - -122.508053, - 37.944694 - ], - [ - -122.508125, - 37.944723 - ], - [ - -122.50821, - 37.944729 - ], - [ - -122.508294, - 37.944722 - ], - [ - -122.508357, - 37.944702 - ], - [ - -122.508457, - 37.94465 - ] - ], - "type": "LineString" - }, - "mode": "ferry", - "duration": 4793.8, + "geometry": "uxqfF~_xjVc@f@a@n@Y`@_@f@gAzA", + "duration": 44.8, + "distance": 157.3, + "name": "", + "weight": 44.8, + "mode": "cycling", "maneuver": { - "bearing_after": 314, + "bearing_after": 316, "location": [ - -122.446226, - 37.913053 + -122.516635, + 37.943314 ], - "bearing_before": 0, - "type": "depart", - "instruction": "Take the ferry San Francisco - Larkspur Ferry" - }, - "weight": 4793.8, - "distance": 6657.9, - "name": "San Francisco - Larkspur Ferry" + "type": "turn", + "bearing_before": 240, + "modifier": "right", + "instruction": "Sväng höger" + } }, { "intersections": [ { - "out": 1, - "location": [ - -122.508457, - 37.94465 - ], - "bearings": [ - 60, - 225 - ], + "out": 0, + "in": 1, "entry": [ + true, false, true ], - "in": 0 - }, - { - "out": 2, "location": [ - -122.508486, - 37.944629 + -122.517912, + 37.944306 ], "bearings": [ - 45, + 75, 135, - 270, 315 - ], + ] + }, + { + "out": 2, + "in": 0, "entry": [ false, true, - true, true ], - "in": 0 - }, - { - "out": 3, "location": [ - -122.508847, - 37.944634 + -122.51627, + 37.940935 ], "bearings": [ 15, - 90, - 195, - 270 - ], + 180, + 195 + ] + }, + { + "out": 2, + "in": 0, "entry": [ - true, false, true, true ], - "in": 1 - } - ], - "geometry": { - "coordinates": [ - [ - -122.508457, - 37.94465 - ], - [ - -122.508486, - 37.944629 - ], - [ - -122.508847, - 37.944634 - ], - [ - -122.508904, - 37.944648 + "location": [ + -122.517252, + 37.939881 ], - [ - -122.509024, - 37.94464 + "bearings": [ + 45, + 135, + 240 ] - ], - "type": "LineString" - }, - "mode": "pushing bike", - "duration": 32.900000000000006, + } + ], + "geometry": "}~qfF|gxjVCGAQD[FUVk@JWJULULSLSPQNONMPMPKRMRKPIRITGRGTGPCPCPCTCRCR?N?X@`@B\\BlANFLLJXJv@ZXLLHJNfB~Bp@zAb@~@HPh@dA", + "duration": 185.2, + "distance": 742.9, + "name": "", + "weight": 185.2, + "mode": "cycling", "maneuver": { - "bearing_after": 226, - "type": "notification", - "modifier": "straight", - "bearing_before": 236, + "bearing_after": 70, "location": [ - -122.508457, - 37.94465 + -122.517912, + 37.944306 ], - "instruction": "Continue straight" - }, - "weight": 32.900000000000006, - "distance": 50.9, - "name": "" + "type": "turn", + "bearing_before": 313, + "modifier": "right", + "instruction": "Sväng höger" + } }, { "intersections": [ { - "out": 5, - "location": [ - -122.509024, - 37.94464 - ], - "bearings": [ - 45, - 90, - 180, - 210, - 270, - 315 - ], + "out": 1, + "in": 0, "entry": [ - true, false, true, - true, - true, true ], - "in": 1 - }, - { - "out": 2, "location": [ - -122.509259, - 37.944842 + -122.518474, + 37.93919 ], "bearings": [ - 135, - 255, - 315 - ], + 60, + 150, + 240 + ] + } + ], + "geometry": "}~pfFlkxjVt@c@`Bh@X^", + "duration": 30.5, + "distance": 111.6, + "name": "", + "weight": 30.5, + "mode": "cycling", + "maneuver": { + "bearing_after": 151, + "location": [ + -122.518474, + 37.93919 + ], + "type": "turn", + "bearing_before": 233, + "modifier": "left", + "instruction": "Sväng vänster" + } + }, + { + "intersections": [ + { + "out": 2, + "in": 0, "entry": [ false, true, + true, true ], - "in": 0 - }, - { - "out": 2, "location": [ - -122.509388, - 37.944948 + -122.518664, + 37.938304 ], "bearings": [ - 135, - 255, - 315 - ], - "entry": [ - false, - true, - true - ], - "in": 0 + 45, + 105, + 180, + 285 + ] }, { "out": 2, - "location": [ - -122.509531, - 37.945065 - ], - "bearings": [ - 135, - 255, - 315 - ], + "in": 4, "entry": [ - false, true, - true + true, + true, + true, + false ], - "in": 0 - }, - { - "out": 2, "location": [ - -122.509597, - 37.945119 + -122.518604, + 37.934943 ], "bearings": [ + 75, 90, - 135, - 315 - ], + 165, + 255, + 345 + ] + }, + { + "out": 0, + "in": 2, "entry": [ true, - false, - true + true, + false ], - "in": 1 - }, - { - "out": 3, "location": [ - -122.509628, - 37.945143 + -122.518541, + 37.934747 ], "bearings": [ - 60, - 135, - 225, - 315 - ], + 165, + 255, + 345 + ] + }, + { + "out": 0, + "in": 2, "entry": [ true, - false, true, - true + false ], - "in": 1 - }, - { - "out": 2, "location": [ - -122.509676, - 37.94518 + -122.518165, + 37.933318 ], "bearings": [ - 135, + 165, 255, - 315 - ], + 345 + ] + }, + { + "out": 0, + "in": 2, "entry": [ - false, true, - true + true, + false ], - "in": 0 - }, - { - "out": 2, "location": [ - -122.509821, - 37.945299 + -122.518081, + 37.932876 ], "bearings": [ - 135, - 255, - 315 - ], + 180, + 270, + 345 + ] + }, + { + "out": 1, + "in": 0, "entry": [ false, true, true ], - "in": 0 - }, - { - "out": 2, "location": [ - -122.509977, - 37.945425 + -122.517912, + 37.931696 ], "bearings": [ - 135, - 255, - 315 - ], + 0, + 180, + 270 + ] + }, + { + "out": 2, + "in": 0, "entry": [ false, true, + true, true ], - "in": 0 - }, - { - "out": 2, "location": [ - -122.510126, - 37.945544 + -122.517994, + 37.929863 ], "bearings": [ - 135, - 255, - 315 - ], + 15, + 120, + 210, + 300 + ] + } + ], + "geometry": "kypfFrlxjVtBN`@DP@R@tBFH@D?VAD?hACzAMdBOp@Kd@KhASb@Iz@OZGvASvAQh@EVC`@CrAKr@G~CSn@@v@FfBX^P", + "duration": 236.2, + "distance": 968.3, + "name": "Tamal Vista Boulevard", + "weight": 335.9, + "mode": "cycling", + "maneuver": { + "bearing_after": 185, + "location": [ + -122.518664, + 37.938304 + ], + "type": "turn", + "bearing_before": 226, + "modifier": "left", + "instruction": "Sväng vänster in på Tamal Vista Boulevard" + } + }, + { + "intersections": [ + { + "out": 2, + "in": 0, "entry": [ false, true, true ], - "in": 0 - }, - { - "out": 2, "location": [ - -122.510275, - 37.945664 + -122.518083, + 37.929697 ], "bearings": [ - 135, - 255, - 315 - ], - "entry": [ - false, - true, - true - ], - "in": 0 + 30, + 210, + 255 + ] } ], - "geometry": { - "coordinates": [ - [ - -122.509024, - 37.94464 - ], - [ - -122.509173, - 37.944772 - ], - [ - -122.509259, - 37.944842 - ], - [ - -122.509388, - 37.944948 - ], - [ - -122.509515, - 37.945052 - ], - [ - -122.509531, - 37.945065 - ], - [ - -122.509597, - 37.945119 - ], - [ - -122.509628, - 37.945143 - ], - [ - -122.509676, - 37.94518 - ], - [ - -122.509821, - 37.945299 - ], - [ - -122.509977, - 37.945425 - ], - [ - -122.510126, - 37.945544 - ], - [ - -122.510275, - 37.945664 - ], - [ - -122.510357, - 37.94573 - ] - ], - "type": "LineString" - }, + "geometry": "scofF~hxjVB\\TTvAdAjAd@d@FVAFCLW", + "duration": 45.6, + "distance": 184, + "name": "", + "weight": 45.6, "mode": "cycling", - "duration": 40.9, "maneuver": { - "bearing_after": 317, - "type": "turn", - "modifier": "right", - "bearing_before": 264, + "bearing_after": 261, "location": [ - -122.509024, - 37.94464 + -122.518083, + 37.929697 ], - "instruction": "Turn right" - }, - "weight": 40.9, - "distance": 168.5, - "name": "" + "type": "turn", + "bearing_before": 202, + "modifier": "right", + "instruction": "Sväng höger" + } }, { "intersections": [ { "out": 1, - "location": [ - -122.510357, - 37.94573 - ], - "bearings": [ - 135, - 300, - 330 - ], + "in": 2, "entry": [ - false, true, - true + true, + false ], - "in": 0 - }, - { - "out": 1, "location": [ - -122.510768, - 37.945759 + -122.518774, + 37.928332 ], "bearings": [ - 75, - 255, - 345 - ], - "entry": [ - false, - true, - true - ], - "in": 0 + 0, + 180, + 315 + ] } ], - "geometry": { - "coordinates": [ - [ - -122.510357, - 37.94573 - ], - [ - -122.510487, - 37.945777 - ], - [ - -122.51064, - 37.945782 - ], - [ - -122.510768, - 37.945759 - ], - [ - -122.51113, - 37.945696 - ] - ], - "type": "LineString" - }, + "geometry": "a{nfFhmxjVR@", + "duration": 7.1, + "distance": 11.7, + "name": "Madera Boulevard", + "weight": 8.3, "mode": "cycling", - "duration": 16.9, "maneuver": { - "bearing_after": 293, - "type": "fork", - "modifier": "straight", - "bearing_before": 315, + "bearing_after": 181, "location": [ - -122.510357, - 37.94573 + -122.518774, + 37.928332 ], - "instruction": "Keep straight at the fork" - }, - "weight": 16.9, - "distance": 70, - "name": "" + "type": "turn", + "bearing_before": 127, + "modifier": "right", + "instruction": "Sväng höger in på Madera Boulevard" + } }, { "intersections": [ { "out": 2, + "in": 0, + "entry": [ + false, + true, + true + ], "location": [ - -122.51113, - 37.945696 + -122.518778, + 37.928227 ], "bearings": [ - 75, - 225, + 0, + 180, 270 - ], + ] + }, + { + "out": 2, + "in": 0, "entry": [ false, true, true ], - "in": 0 - } - ], - "geometry": { - "coordinates": [ - [ - -122.51113, - 37.945696 - ], - [ - -122.511226, - 37.945701 + "location": [ + -122.519894, + 37.92827 ], - [ - -122.511326, - 37.945735 + "bearings": [ + 90, + 180, + 270 ] - ], - "type": "LineString" - }, + } + ], + "geometry": "mznfFjmxjVG|EKtD", + "duration": 52.6, + "distance": 178, + "name": "Monona Drive", + "weight": 52.6, "mode": "cycling", - "duration": 7.9, "maneuver": { - "bearing_after": 275, - "type": "fork", - "modifier": "slight right", - "bearing_before": 257, + "bearing_after": 271, "location": [ - -122.51113, - 37.945696 + -122.518778, + 37.928227 ], - "instruction": "Keep right at the fork" - }, - "weight": 7.9, - "distance": 18, - "name": "" + "type": "turn", + "bearing_before": 181, + "modifier": "right", + "instruction": "Sväng höger in på Monona Drive" + } }, { "intersections": [ { "out": 2, - "location": [ - -122.511326, - 37.945735 - ], - "bearings": [ - 60, - 120, - 240, - 300 - ], + "in": 1, "entry": [ true, false, true, true ], - "in": 1 - }, - { - "out": 2, "location": [ - -122.511473, - 37.945648 + -122.520802, + 37.928331 ], "bearings": [ - 60, - 150, - 225, - 330 - ], - "entry": [ - false, - true, - true, - true - ], - "in": 0 + 15, + 90, + 180, + 270 + ] }, { "out": 2, - "location": [ - -122.511605, - 37.94556 - ], - "bearings": [ - 45, - 120, - 225, - 270 - ], + "in": 0, "entry": [ false, true, true, true ], - "in": 0 - }, - { - "out": 2, "location": [ - -122.512183, - 37.945234 + -122.52064, + 37.926013 ], "bearings": [ - 60, - 150, - 240 - ], + 0, + 90, + 180, + 270 + ] + } + ], + "geometry": "a{nfF~yxjVnM_@rCF", + "duration": 86.2, + "distance": 341.2, + "name": "Lakeside Drive", + "weight": 86.2, + "mode": "cycling", + "maneuver": { + "bearing_after": 175, + "location": [ + -122.520802, + 37.928331 + ], + "type": "turn", + "bearing_before": 274, + "modifier": "left", + "instruction": "Sväng vänster in på Lakeside Drive" + } + }, + { + "intersections": [ + { + "out": 3, + "in": 0, "entry": [ false, true, + true, true ], - "in": 0 - }, - { - "out": 2, "location": [ - -122.512724, - 37.944974 + -122.520683, + 37.925268 ], "bearings": [ - 60, - 150, - 240, - 330 - ], + 0, + 90, + 180, + 270 + ] + } + ], + "geometry": "}gnfFfyxjVKlHAV", + "duration": 42.4, + "distance": 142.6, + "name": "Tamalpais Drive", + "weight": 57.1, + "mode": "cycling", + "maneuver": { + "bearing_after": 272, + "location": [ + -122.520683, + 37.925268 + ], + "type": "turn", + "bearing_before": 181, + "modifier": "right", + "instruction": "Sväng höger in på Tamalpais Drive" + } + }, + { + "intersections": [ + { + "out": 3, + "in": 1, "entry": [ + true, false, true, true, true ], - "in": 0 + "location": [ + -122.522306, + 37.925336 + ], + "bearings": [ + 0, + 90, + 120, + 180, + 270 + ] }, { "out": 2, + "in": 0, + "entry": [ + false, + true, + true, + true + ], "location": [ - -122.513799, - 37.944646 + -122.522387, + 37.924439 ], "bearings": [ - 75, + 0, + 90, 180, - 240 - ], + 270 + ] + }, + { + "out": 1, + "in": 0, "entry": [ false, true, true ], - "in": 0 - }, - { - "out": 2, "location": [ - -122.51386, - 37.944626 + -122.522459, + 37.923635 ], "bearings": [ - 60, + 0, 180, - 240 - ], + 270 + ] + }, + { + "out": 2, + "in": 0, "entry": [ false, true, true ], - "in": 0 - } - ], - "geometry": { - "coordinates": [ - [ - -122.511326, - 37.945735 - ], - [ - -122.511473, - 37.945648 - ], - [ - -122.511605, - 37.94556 - ], - [ - -122.5117, - 37.945491 - ], - [ - -122.512183, - 37.945234 - ], - [ - -122.512419, - 37.945119 - ], - [ - -122.512652, - 37.945003 - ], - [ - -122.512724, - 37.944974 - ], - [ - -122.512877, - 37.94491 - ], - [ - -122.513242, - 37.944777 - ], - [ - -122.513591, - 37.944715 - ], - [ - -122.513799, - 37.944646 - ], - [ - -122.51386, - 37.944626 - ], - [ - -122.513941, - 37.944596 - ], - [ - -122.51406, - 37.944534 - ], - [ - -122.51421, - 37.944451 - ], - [ - -122.514291, - 37.944406 + "location": [ + -122.522473, + 37.923478 ], - [ - -122.51433, - 37.944345 + "bearings": [ + 0, + 90, + 180 ] - ], - "type": "LineString" - }, + } + ], + "geometry": "khnfFlcyjV~AFrAF~CL^@pGZ", + "duration": 88.30000000000001, + "distance": 359.7, + "name": "Sausalito Street", + "weight": 88.30000000000001, "mode": "cycling", - "duration": 74.39999999999999, "maneuver": { - "bearing_after": 232, - "type": "continue", - "modifier": "left", - "bearing_before": 292, + "bearing_after": 182, "location": [ - -122.511326, - 37.945735 + -122.522306, + 37.925336 ], - "instruction": "Continue left" - }, - "weight": 74.39999999999999, - "distance": 309.5, - "name": "" + "type": "turn", + "bearing_before": 272, + "modifier": "left", + "instruction": "Sväng vänster in på Sausalito Street" + } }, { "intersections": [ { "out": 1, - "location": [ - -122.51433, - 37.944345 - ], - "bearings": [ - 30, - 195 - ], + "in": 0, "entry": [ false, + true, true ], - "in": 0 - } - ], - "geometry": { - "coordinates": [ - [ - -122.51433, - 37.944345 - ], - [ - -122.514369, - 37.94424 - ], - [ - -122.514414, - 37.944087 - ], - [ - -122.514511, - 37.943693 - ], - [ - -122.514578, - 37.943404 - ], - [ - -122.514639, - 37.943205 - ], - [ - -122.514733, - 37.943015 - ], - [ - -122.514862, - 37.942702 - ], - [ - -122.515063, - 37.942252 - ], - [ - -122.515149, - 37.942075 + "location": [ + -122.522612, + 37.922111 ], - [ - -122.515186, - 37.94195 + "bearings": [ + 0, + 135, + 315 ] - ], - "type": "LineString" - }, - "mode": "pushing bike", - "duration": 171.2, + } + ], + "geometry": "etmfFheyjVX[", + "duration": 5.3, + "distance": 19.1, + "name": "Buena Vista Avenue", + "weight": 5.3, + "mode": "cycling", "maneuver": { - "bearing_after": 195, - "type": "notification", - "modifier": "straight", - "bearing_before": 206, + "bearing_after": 139, "location": [ - -122.51433, - 37.944345 + -122.522612, + 37.922111 ], - "instruction": "Continue straight" - }, - "weight": 171.2, - "distance": 277.4, - "name": "" + "type": "turn", + "bearing_before": 184, + "modifier": "left", + "instruction": "Sväng vänster in på Buena Vista Avenue" + } }, { "intersections": [ { "out": 1, + "in": 2, + "entry": [ + true, + true, + false + ], "location": [ - -122.515186, - 37.94195 + -122.522472, + 37.921979 ], "bearings": [ - 15, - 120 - ], + 90, + 180, + 315 + ] + } + ], + "geometry": "ksmfFldyjVzDK", + "duration": 27, + "distance": 105.1, + "name": "Sausalito Street", + "weight": 27, + "mode": "cycling", + "maneuver": { + "bearing_after": 175, + "location": [ + -122.522472, + 37.921979 + ], + "type": "turn", + "bearing_before": 139, + "modifier": "slight right", + "instruction": "Sväng åt lätt höger in på Sausalito Street" + } + }, + { + "intersections": [ + { + "out": 2, + "in": 0, "entry": [ false, + true, true ], - "in": 0 - }, - { - "out": 2, "location": [ - -122.515255, - 37.941313 + -122.522413, + 37.921035 ], "bearings": [ 0, - 45, - 195 - ], + 120, + 240 + ] + }, + { + "out": 1, + "in": 0, "entry": [ false, true, true ], - "in": 0 - }, - { - "out": 2, "location": [ - -122.515331, - 37.941122 + -122.522892, + 37.91931 ], "bearings": [ - 15, - 60, - 195 - ], + 30, + 165, + 285 + ] + }, + { + "out": 1, + "in": 2, "entry": [ - false, true, - true + true, + false ], - "in": 0 - }, - { - "out": 2, "location": [ - -122.515409, - 37.940856 + -122.52274, + 37.918956 ], "bearings": [ - 15, - 105, - 195 - ], + 75, + 150, + 345 + ] + }, + { + "out": 1, + "in": 2, "entry": [ - false, true, - true + true, + false ], - "in": 0 - }, - { - "out": 2, "location": [ - -122.515534, - 37.940423 + -122.520376, + 37.91782 ], "bearings": [ - 15, - 90, - 195 - ], + 75, + 135, + 315 + ] + }, + { + "out": 1, + "in": 0, "entry": [ false, true, true ], - "in": 0 - }, - { - "out": 2, "location": [ - -122.5158, - 37.939503 + -122.520152, + 37.917127 ], "bearings": [ 15, - 90, - 180 - ], + 195, + 315 + ] + }, + { + "out": 2, + "in": 0, "entry": [ false, true, true ], - "in": 0 - }, - { - "out": 1, "location": [ - -122.515777, - 37.938874 + -122.520106, + 37.915159 ], "bearings": [ 0, - 180, - 270 - ], + 120, + 180 + ] + }, + { + "out": 2, + "in": 0, "entry": [ false, true, true ], - "in": 0 - }, - { - "out": 2, "location": [ - -122.515775, - 37.938722 + -122.520079, + 37.914942 ], "bearings": [ 0, - 90, - 195 - ], - "entry": [ - false, - true, - true - ], - "in": 0 + 75, + 210 + ] }, { "out": 2, - "location": [ - -122.515892, - 37.938213 - ], - "bearings": [ - 15, - 105, - 195 - ], + "in": 0, "entry": [ false, true, + true, true ], - "in": 0 - }, - { - "out": 2, "location": [ - -122.516113, - 37.937503 + -122.521213, + 37.913815 ], "bearings": [ - 15, - 105, - 195 - ], + 45, + 150, + 210, + 315 + ] + }, + { + "out": 2, + "in": 0, "entry": [ false, true, true ], - "in": 0 - } - ], - "geometry": { - "coordinates": [ - [ - -122.515186, - 37.94195 - ], - [ - -122.515116, - 37.941911 - ], - [ - -122.515246, - 37.941451 - ], - [ - -122.515255, - 37.941313 - ], - [ - -122.515289, - 37.941256 - ], - [ - -122.515331, - 37.941122 - ], - [ - -122.515409, - 37.940856 - ], - [ - -122.515534, - 37.940423 - ], - [ - -122.515719, - 37.93981 - ], - [ - -122.5158, - 37.939503 - ], - [ - -122.515819, - 37.939322 - ], - [ - -122.51582, - 37.939138 - ], - [ - -122.515778, - 37.938996 - ], - [ - -122.515777, - 37.938874 - ], - [ - -122.515775, - 37.938722 - ], - [ - -122.515875, - 37.938306 - ], - [ - -122.515892, - 37.938213 - ], - [ - -122.516113, - 37.937503 - ], - [ - -122.516192, - 37.937204 - ], - [ - -122.516214, - 37.936952 - ], - [ - -122.516184, - 37.936785 - ], - [ - -122.516097, - 37.936565 - ], - [ - -122.515714, - 37.93594 + "location": [ + -122.521365, + 37.913649 ], - [ - -122.515668, - 37.935805 + "bearings": [ + 30, + 150, + 210 ] - ], - "type": "LineString" - }, + } + ], + "geometry": "ommfF`dyjV^z@Xb@d@Pp@GtAIh@[ZBj@VdA]XOPe@LwAJwAh@gB`@e@pAcB^g@HSPKV@t@VPFpBv@F@V@bAITGl@c@l@KTGXAj@Ef@d@FNFb@FNJJp@V^Vd@\\Z\\`@^NLh@`ARp@Pl@bAjAd@h@bA`@", + "duration": 325.5, + "distance": 1264.9, + "name": "Sausalito Street", + "weight": 325.5, "mode": "cycling", - "duration": 179.1, "maneuver": { - "bearing_after": 125, - "type": "notification", - "modifier": "left", - "bearing_before": 192, + "bearing_after": 236, "location": [ - -122.515186, - 37.94195 + -122.522413, + 37.921035 ], - "instruction": "Continue left" - }, - "weight": 179.1, - "distance": 707.8, - "name": "" + "type": "turn", + "bearing_before": 175, + "modifier": "right", + "instruction": "Sväng höger in på Sausalito Street" + } }, { "intersections": [ { "out": 2, - "location": [ - -122.515668, - 37.935805 - ], - "bearings": [ - 135, - 165, - 270, - 345 - ], + "in": 0, "entry": [ + false, true, - true, - true, - false + true ], - "in": 3 - }, - { - "out": 1, "location": [ - -122.517056, - 37.935357 + -122.523013, + 37.9123 ], "bearings": [ - 60, - 240, - 315 - ], - "entry": [ - false, - true, - true - ], - "in": 0 + 15, + 135, + 210 + ] } ], - "geometry": { - "coordinates": [ - [ - -122.515668, - 37.935805 - ], - [ - -122.515796, - 37.935793 - ], - [ - -122.516006, - 37.935741 - ], - [ - -122.516325, - 37.935646 - ], - [ - -122.517056, - 37.935357 - ], - [ - -122.51736, - 37.935206 - ], - [ - -122.517574, - 37.93514 - ], - [ - -122.517924, - 37.935054 - ], - [ - -122.518604, - 37.934943 - ] - ], - "type": "LineString" - }, + "geometry": "{vkfFxgyjVn@b@", + "duration": 9.9, + "distance": 30.6, + "name": "", + "weight": 9.9, "mode": "cycling", - "duration": 77.2, "maneuver": { - "bearing_after": 261, - "type": "turn", - "modifier": "right", - "bearing_before": 164, + "bearing_after": 209, "location": [ - -122.515668, - 37.935805 + -122.523013, + 37.9123 ], - "instruction": "Turn right onto Wornum Drive" - }, - "weight": 77.2, - "distance": 277, - "name": "Wornum Drive" + "type": "turn", + "bearing_before": 201, + "modifier": "straight", + "instruction": "Kör rakt fram" + } }, { "intersections": [ { "out": 2, - "location": [ - -122.518604, - 37.934943 - ], - "bearings": [ - 75, - 90, - 165, - 255, - 345 - ], + "in": 0, "entry": [ false, true, - true, - true, true ], - "in": 0 - }, - { - "out": 0, "location": [ - -122.518541, - 37.934747 + -122.523185, + 37.912061 ], "bearings": [ - 165, - 255, - 345 - ], + 30, + 135, + 255 + ] + } + ], + "geometry": "kukfF|hyjVTfAx@d@vA?x@^l@XvARVR", + "duration": 79.8, + "distance": 248.7, + "name": "", + "weight": 79.8, + "mode": "cycling", + "maneuver": { + "bearing_after": 247, + "location": [ + -122.523185, + 37.912061 + ], + "type": "turn", + "bearing_before": 209, + "modifier": "slight right", + "instruction": "Sväng åt lätt höger" + } + }, + { + "intersections": [ + { + "out": 2, + "in": 0, "entry": [ + false, true, - true, - false + true ], - "in": 2 - }, - { - "out": 1, "location": [ - -122.518438, - 37.934375 + -122.524228, + 37.910137 ], "bearings": [ - 75, - 165, - 345 - ], - "entry": [ - true, - true, - false - ], - "in": 2 - }, - { - "out": 1, - "location": [ - -122.518389, - 37.9342 - ], - "bearings": [ - 75, - 165, - 345 - ], - "entry": [ - true, - true, - false - ], - "in": 2 - }, + 30, + 135, + 315 + ] + } + ], + "geometry": "kikfFloyjVaAzAI`@", + "duration": 25.5, + "distance": 70.4, + "name": "Vasco Court", + "weight": 25.5, + "mode": "cycling", + "maneuver": { + "bearing_after": 312, + "location": [ + -122.524228, + 37.910137 + ], + "type": "turn", + "bearing_before": 212, + "modifier": "right", + "instruction": "Sväng höger in på Vasco Court" + } + }, + { + "intersections": [ { "out": 1, - "location": [ - -122.518273, - 37.933762 - ], - "bearings": [ - 75, - 165, - 345 - ], - "entry": [ - true, - true, - false - ], - "in": 2 - }, - { - "out": 0, - "location": [ - -122.518165, - 37.933318 - ], - "bearings": [ - 165, - 255, - 345 - ], + "in": 0, "entry": [ + false, true, - true, - false + true ], - "in": 2 - }, - { - "out": 0, "location": [ - -122.518081, - 37.932876 + -122.524855, + 37.91052 ], "bearings": [ - 180, - 270, - 345 - ], - "entry": [ - true, - true, - false - ], - "in": 2 + 105, + 195, + 270 + ] }, { "out": 1, - "location": [ - -122.517912, - 37.931696 - ], - "bearings": [ - 0, - 180, - 270 - ], + "in": 0, "entry": [ false, true, true ], - "in": 0 - }, - { - "out": 2, "location": [ - -122.517994, - 37.929863 + -122.525615, + 37.90844 ], "bearings": [ 15, - 120, - 210, - 300 - ], + 180, + 285 + ] + }, + { + "out": 2, + "in": 0, "entry": [ false, true, - true, true ], - "in": 0 - }, - { - "out": 1, "location": [ - -122.518083, - 37.929697 + -122.525762, + 37.907496 ], "bearings": [ - 30, - 210, - 255 - ], - "entry": [ - false, - true, - true - ], - "in": 0 + 0, + 45, + 180 + ] }, { "out": 2, - "location": [ - -122.518121, - 37.929626 - ], - "bearings": [ - 30, - 60, - 210 - ], + "in": 0, "entry": [ false, true, true ], - "in": 0 - }, - { - "out": 1, "location": [ - -122.518774, - 37.928332 + -122.525774, + 37.907415 ], "bearings": [ 0, - 180, - 315 - ], - "entry": [ - false, - true, - true - ], - "in": 0 + 90, + 180 + ] }, { "out": 1, - "location": [ - -122.518778, - 37.928227 - ], - "bearings": [ - 0, - 180, - 270 - ], + "in": 0, "entry": [ false, true, true ], - "in": 0 - }, - { - "out": 1, "location": [ - -122.518772, - 37.928051 + -122.526161, + 37.904754 ], "bearings": [ 0, - 180, - 240 - ], + 195, + 255 + ] + }, + { + "out": 2, + "in": 0, "entry": [ false, true, true ], - "in": 0 - }, - { - "out": 2, "location": [ - -122.518749, - 37.927325 + -122.5262, + 37.904546 ], "bearings": [ - 0, + 15, 90, - 180 - ], - "entry": [ - false, - true, - true - ], - "in": 0 + 195 + ] }, { "out": 1, - "location": [ - -122.518712, - 37.92614 - ], - "bearings": [ - 0, - 180, - 315 - ], + "in": 3, "entry": [ - false, true, - true + true, + true, + false ], - "in": 0 - }, - { - "out": 2, "location": [ - -122.518706, - 37.925936 + -122.526716, + 37.900797 ], "bearings": [ - 0, - 90, - 180, - 270 - ], + 60, + 150, + 240, + 330 + ] + }, + { + "out": 1, + "in": 3, "entry": [ - false, true, true, - true + true, + false + ], + "location": [ + -122.526647, + 37.900695 ], - "in": 0 + "bearings": [ + 60, + 165, + 240, + 330 + ] } ], - "geometry": { - "coordinates": [ - [ - -122.518604, - 37.934943 - ], - [ - -122.518541, - 37.934747 - ], - [ - -122.518438, - 37.934375 - ], - [ - -122.518389, - 37.9342 - ], - [ - -122.518305, - 37.933897 - ], - [ - -122.518273, - 37.933762 - ], - [ - -122.518165, - 37.933318 - ], - [ - -122.518081, - 37.932876 - ], - [ - -122.517912, - 37.931696 - ], - [ - -122.51781, - 37.930898 - ], - [ - -122.517816, - 37.930656 - ], - [ - -122.517857, - 37.93038 - ], - [ - -122.517994, - 37.929863 - ], - [ - -122.518083, - 37.929697 - ], - [ - -122.518121, - 37.929626 - ], - [ - -122.518276, - 37.929423 - ], - [ - -122.51841, - 37.92925 - ], - [ - -122.518582, - 37.929047 - ], - [ - -122.518694, - 37.928831 - ], - [ - -122.518764, - 37.928645 - ], - [ - -122.518774, - 37.928332 - ], - [ - -122.518778, - 37.928227 - ], - [ - -122.518772, - 37.928051 - ], - [ - -122.518749, - 37.927325 - ], - [ - -122.518712, - 37.92614 - ], - [ - -122.518706, - 37.925936 - ], - [ - -122.518697, - 37.925148 - ] - ], - "type": "LineString" - }, + "geometry": "wkkfFjsyjVpDnAvBh@tB\\zDZN@v@FpDT|BTlDXf@F|FhBbAZx@Nt@Hl@Bx@CvAMvAQTMLIRMNGJV", + "duration": 277.50000000000006, + "distance": 1143.6, + "name": "Mill Valley - Sausalito Path", + "weight": 277.50000000000006, "mode": "cycling", - "duration": 274, "maneuver": { - "bearing_after": 164, - "type": "turn", - "modifier": "left", - "bearing_before": 257, + "bearing_after": 198, "location": [ - -122.518604, - 37.934943 + -122.524855, + 37.91052 ], - "instruction": "Turn left onto Tamal Vista Boulevard" - }, - "weight": 274, - "distance": 1113.7, - "name": "Tamal Vista Boulevard" + "type": "turn", + "bearing_before": 289, + "modifier": "left", + "instruction": "Sväng vänster in på Mill Valley - Sausalito Path" + } }, { "intersections": [ { - "out": 3, - "location": [ - -122.518697, - 37.925148 - ], - "bearings": [ - 0, - 90, - 180, - 270 - ], + "out": 1, + "in": 0, "entry": [ false, true, - true, true ], - "in": 0 - }, - { - "out": 3, "location": [ - -122.520683, - 37.925268 + -122.52673, + 37.900559 ], "bearings": [ - 0, - 90, + 60, 180, - 270 - ], - "entry": [ - true, - false, - true, - true - ], - "in": 1 - }, - { - "out": 2, - "location": [ - -122.522193, - 37.925331 - ], - "bearings": [ - 0, - 90, - 270 - ], - "entry": [ - true, - false, - true - ], - "in": 1 + 240 + ] } ], - "geometry": { - "coordinates": [ - [ - -122.518697, - 37.925148 - ], - [ - -122.520683, - 37.925268 - ], - [ - -122.522193, - 37.925331 - ], - [ - -122.522306, - 37.925336 - ] - ], - "type": "LineString" - }, + "geometry": "omifF`_zjVd@BlIw@jDY`AEf@GNEx@]B?V@", + "duration": 105.7, + "distance": 423.4, + "name": "Mill Valley - Sausalito Path", + "weight": 105.7, "mode": "cycling", - "duration": 84.3, "maneuver": { - "bearing_after": 274, - "type": "turn", - "modifier": "right", - "bearing_before": 178, + "bearing_after": 182, "location": [ - -122.518697, - 37.925148 + -122.52673, + 37.900559 ], - "instruction": "Turn right onto Tamalpais Drive" - }, - "weight": 84.3, - "distance": 317.4, - "name": "Tamalpais Drive" + "type": "continue", + "bearing_before": 239, + "modifier": "left", + "instruction": "Fortsätt vänster in på Mill Valley - Sausalito Path" + } }, { "intersections": [ { "out": 2, - "location": [ - -122.522306, - 37.925336 - ], - "bearings": [ - 90, - 120, - 180, - 270 - ], + "in": 0, "entry": [ false, - true, - true, + false, true ], - "in": 0 - }, - { - "out": 1, "location": [ - -122.522349, - 37.924856 + -122.526097, + 37.896802 ], "bearings": [ 0, - 180, + 105, 270 - ], + ] + }, + { + "out": 1, + "in": 0, "entry": [ false, true, true ], - "in": 0 - }, - { - "out": 2, "location": [ - -122.522387, - 37.924439 + -122.526216, + 37.896732 ], "bearings": [ - 0, - 90, + 15, 180, 270 - ], + ] + }, + { + "out": 1, + "in": 2, "entry": [ - false, true, true, - true + false + ], + "location": [ + -122.526087, + 37.896645 ], - "in": 0 + "bearings": [ + 60, + 180, + 255 + ] }, { "out": 1, + "in": 2, + "entry": [ + true, + true, + false + ], "location": [ - -122.522459, - 37.923635 + -122.525399, + 37.892204 ], "bearings": [ - 0, + 75, 180, - 270 - ], + 345 + ] + }, + { + "out": 0, + "in": 2, "entry": [ - false, true, - true + true, + false ], - "in": 0 - }, - { - "out": 2, "location": [ - -122.522473, - 37.923478 + -122.524454, + 37.887393 ], "bearings": [ - 0, - 90, - 180 - ], + 165, + 255, + 345 + ] + }, + { + "out": 0, + "in": 2, "entry": [ - false, true, - true - ], - "in": 0 - } - ], - "geometry": { - "coordinates": [ - [ - -122.522306, - 37.925336 - ], - [ - -122.522349, - 37.924856 + true, + false ], - [ - -122.522387, - 37.924439 + "location": [ + -122.518872, + 37.88265 ], - [ - -122.522459, - 37.923635 + "bearings": [ + 135, + 210, + 315 + ] + }, + { + "out": 0, + "in": 2, + "entry": [ + true, + true, + false ], - [ - -122.522473, - 37.923478 + "location": [ + -122.515603, + 37.880169 ], - [ - -122.522612, - 37.922111 + "bearings": [ + 135, + 210, + 315 ] - ], - "type": "LineString" - }, - "mode": "cycling", - "duration": 88.30000000000001, - "maneuver": { - "bearing_after": 182, - "type": "turn", - "modifier": "left", - "bearing_before": 272, - "location": [ - -122.522306, - 37.925336 - ], - "instruction": "Turn left onto Sausalito Street" - }, - "weight": 88.30000000000001, - "distance": 359.7, - "name": "Sausalito Street" - }, - { - "intersections": [ + }, { "out": 1, + "in": 3, + "entry": [ + true, + true, + true, + false + ], "location": [ - -122.522612, - 37.922111 + -122.514952, + 37.879554 ], "bearings": [ - 0, + 45, 135, - 315 + 240, + 330 + ] + }, + { + "out": 1, + "in": 2, + "entry": [ + true, + true, + false ], + "location": [ + -122.505727, + 37.872757 + ], + "bearings": [ + 30, + 120, + 300 + ] + }, + { + "out": 1, + "in": 3, "entry": [ - false, true, - true + true, + true, + false ], - "in": 0 - } - ], - "geometry": { - "coordinates": [ - [ - -122.522612, - 37.922111 + "location": [ + -122.505574, + 37.872674 ], - [ - -122.522472, - 37.921979 + "bearings": [ + 30, + 120, + 210, + 300 ] - ], - "type": "LineString" - }, + } + ], + "geometry": "_vhfFb{yjV?D@D@DBBD@BADABC@E@EAEVANBP?dGm@jE]lJ_AVCx@G~Hu@nAKrEa@pEw@x@UfAe@`BqAh@m@z@gAnG_J`B_CLQPYtEsGz@mAxGuJtEwGdAyANONETQTa@F]fA}AfHaKfDyErDgFnIyLzBcDbAwArA{CP_@j@iAbA}A`AoA^_@hAu@|@c@XG", + "duration": 889.8, + "distance": 3682.9, + "name": "Mill Valley - Sausalito Path", + "weight": 889.8, "mode": "cycling", - "duration": 5.3, "maneuver": { - "bearing_after": 139, - "type": "turn", - "modifier": "left", - "bearing_before": 184, + "exit": 2, + "bearing_after": 270, "location": [ - -122.522612, - 37.922111 + -122.526097, + 37.896802 ], - "instruction": "Turn left onto Buena Vista Avenue" - }, - "weight": 5.3, - "distance": 19.1, - "name": "Buena Vista Avenue" + "type": "roundabout turn", + "bearing_before": 181, + "modifier": "straight", + "instruction": "Vid rondellen fortsätt rakt fram in på Mill Valley - Sausalito Path" + } }, { "intersections": [ { "out": 1, + "in": 3, + "entry": [ + true, + true, + true, + false + ], "location": [ - -122.522472, - 37.921979 + -122.503675, + 37.870811 ], "bearings": [ 90, - 180, - 315 + 165, + 300, + 345 + ] + }, + { + "out": 1, + "in": 3, + "entry": [ + true, + true, + true, + false + ], + "location": [ + -122.50364, + 37.870703 ], + "bearings": [ + 45, + 165, + 225, + 345 + ] + }, + { + "out": 1, + "in": 3, "entry": [ + true, true, true, false ], - "in": 2 - } - ], - "geometry": { - "coordinates": [ - [ - -122.522472, - 37.921979 + "location": [ + -122.502489, + 37.86861 ], - [ - -122.522413, - 37.921035 + "bearings": [ + 45, + 150, + 195, + 330 ] - ], - "type": "LineString" - }, + } + ], + "geometry": "qscfF~nujVTGx@WfAa@jC_AbCaBNIrAmAbBiBtAyA|@cA", + "duration": 130.7, + "distance": 505, + "name": "Mill Valley - Sausalito Path", + "weight": 130.7, "mode": "cycling", - "duration": 27, "maneuver": { - "bearing_after": 175, - "type": "turn", - "modifier": "slight right", - "bearing_before": 139, + "bearing_after": 164, "location": [ - -122.522472, - 37.921979 + -122.503675, + 37.870811 ], - "instruction": "Make a slight right onto Sausalito Street" - }, - "weight": 27, - "distance": 105.1, - "name": "Sausalito Street" + "type": "continue", + "bearing_before": 164, + "modifier": "straight", + "instruction": "Fortsätt in på Mill Valley - Sausalito Path" + } }, { "intersections": [ { - "out": 2, - "location": [ - -122.522413, - 37.921035 - ], - "bearings": [ - 0, - 120, - 240 - ], + "out": 0, + "in": 2, "entry": [ - false, true, - true + true, + false ], - "in": 0 - }, - { - "out": 1, "location": [ - -122.522892, - 37.91931 + -122.500781, + 37.866951 ], "bearings": [ - 30, - 165, - 285 - ], - "entry": [ - false, - true, - true - ], - "in": 0 - }, + 45, + 225, + 315 + ] + } + ], + "geometry": "m{bfFz|tjVe@o@", + "duration": 11.9, + "distance": 29.9, + "name": "Harbor Drive", + "weight": 11.9, + "mode": "cycling", + "maneuver": { + "bearing_after": 43, + "location": [ + -122.500781, + 37.866951 + ], + "type": "end of road", + "bearing_before": 139, + "modifier": "left", + "instruction": "Sväng vänster in på Harbor Drive" + } + }, + { + "intersections": [ { "out": 1, - "location": [ - -122.52274, - 37.918956 - ], - "bearings": [ - 75, - 150, - 345 - ], + "in": 2, "entry": [ true, true, false ], - "in": 2 - }, - { - "out": 1, "location": [ - -122.520376, - 37.91782 + -122.500542, + 37.867143 ], "bearings": [ - 75, + 45, 135, - 315 - ], + 225 + ] + }, + { + "out": 1, + "in": 2, "entry": [ true, true, false ], - "in": 2 - }, - { - "out": 0, "location": [ - -122.520175, - 37.917664 + -122.499554, + 37.866217 ], "bearings": [ - 120, + 45, + 135, 315 - ], + ] + }, + { + "out": 0, + "in": 1, "entry": [ true, false ], - "in": 1 - }, - { - "out": 1, "location": [ - -122.520152, - 37.917127 - ], - "bearings": [ - 15, - 195, - 315 - ], - "entry": [ - false, - true, - true - ], - "in": 0 - }, - { - "out": 2, - "location": [ - -122.520106, - 37.915159 + -122.497301, + 37.864288 ], "bearings": [ - 0, - 120, - 180 - ], - "entry": [ - false, - true, - true - ], - "in": 0 + 45, + 240 + ] } ], - "geometry": { - "coordinates": [ - [ - -122.522413, - 37.921035 - ], - [ - -122.52271, - 37.920882 - ], - [ - -122.522892, - 37.920745 - ], - [ - -122.522975, - 37.920556 - ], - [ - -122.522935, - 37.920313 - ], - [ - -122.522892, - 37.919875 - ], - [ - -122.52275, - 37.919674 - ], - [ - -122.522769, - 37.919532 - ], - [ - -122.522892, - 37.91931 - ], - [ - -122.52274, - 37.918956 - ], - [ - -122.522661, - 37.918834 - ], - [ - -122.522466, - 37.918741 - ], - [ - -122.522034, - 37.918673 - ], - [ - -122.521586, - 37.91861 - ], - [ - -122.521066, - 37.918396 - ], - [ - -122.520884, - 37.918233 - ], - [ - -122.520376, - 37.91782 - ], - [ - -122.520175, - 37.917664 - ], - [ - -122.520079, - 37.917611 - ], - [ - -122.52002, - 37.917518 - ], - [ - -122.520029, - 37.917398 - ], - [ - -122.520152, - 37.917127 - ], - [ - -122.52019, - 37.917042 - ], - [ - -122.520469, - 37.916474 - ], - [ - -122.520484, - 37.916426 - ], - [ - -122.520489, - 37.916309 - ], - [ - -122.520438, - 37.915967 - ], - [ - -122.520398, - 37.915861 - ], - [ - -122.520223, - 37.915626 - ], - [ - -122.520156, - 37.915402 - ], - [ - -122.520122, - 37.915287 - ], - [ - -122.520106, - 37.915159 - ], - [ - -122.520079, - 37.914942 - ] - ], - "type": "LineString" - }, + "geometry": "s|bfFj{tjVd@i@Z]Z_@xA}AdBkBtB}Bh@GhCaD@KOa@g@o@", + "duration": 119, + "distance": 476.2, + "name": "Marinship Way", + "weight": 119, "mode": "cycling", - "duration": 228.7, "maneuver": { - "bearing_after": 236, - "type": "turn", - "modifier": "right", - "bearing_before": 175, + "bearing_after": 137, "location": [ - -122.522413, - 37.921035 + -122.500542, + 37.867143 ], - "instruction": "Turn right onto Sausalito Street" - }, - "weight": 228.7, - "distance": 861.5, - "name": "Sausalito Street" + "type": "turn", + "bearing_before": 43, + "modifier": "right", + "instruction": "Sväng höger in på Marinship Way" + } }, { "intersections": [ { - "out": 2, + "out": 1, + "in": 2, + "entry": [ + true, + true, + false + ], "location": [ - -122.520079, - 37.914942 + -122.497062, + 37.864493 ], "bearings": [ - 0, - 75, - 210 - ], + 60, + 135, + 225 + ] + }, + { + "out": 1, + "in": 2, "entry": [ - false, true, - true + true, + false ], - "in": 0 - }, - { - "out": 2, "location": [ - -122.521213, - 37.913815 + -122.494477, + 37.862334 ], "bearings": [ 45, - 150, - 210, + 135, 315 - ], + ] + }, + { + "out": 1, + "in": 3, "entry": [ - false, true, true, - true + true, + false ], - "in": 0 - }, - { - "out": 2, "location": [ - -122.523013, - 37.9123 + -122.493722, + 37.86194 ], "bearings": [ - 15, - 135, - 210 - ], - "entry": [ - false, - true, - true - ], - "in": 0 + 90, + 195, + 270, + 345 + ] } ], - "geometry": { - "coordinates": [ - [ - -122.520079, - 37.914942 - ], - [ - -122.520265, - 37.914735 - ], - [ - -122.520348, - 37.914699 - ], - [ - -122.520532, - 37.91466 - ], - [ - -122.520611, - 37.914619 - ], - [ - -122.520665, - 37.914558 - ], - [ - -122.520793, - 37.914313 - ], - [ - -122.520906, - 37.914148 - ], - [ - -122.521062, - 37.913958 - ], - [ - -122.521213, - 37.913815 - ], - [ - -122.521437, - 37.91357 - ], - [ - -122.521767, - 37.91336 - ], - [ - -122.522019, - 37.913262 - ], - [ - -122.522245, - 37.913171 - ], - [ - -122.522629, - 37.912831 - ], - [ - -122.522841, - 37.912643 - ], - [ - -122.523013, - 37.9123 - ], - [ - -122.523185, - 37.912061 - ] - ], - "type": "LineString" - }, + "geometry": "albfFretjVZa@dDeEjCgDdAsAZ_@NYBKHe@J]BIDMBGFGDCBAB?JB", + "duration": 103.7, + "distance": 419.9, + "name": "Marinship Way", + "weight": 103.7, "mode": "cycling", - "duration": 106.7, "maneuver": { - "bearing_after": 215, - "type": "turn", - "modifier": "slight right", - "bearing_before": 174, + "bearing_after": 136, "location": [ - -122.520079, - 37.914942 + -122.497062, + 37.864493 ], - "instruction": "Make a slight right onto Coach Road" - }, - "weight": 106.7, - "distance": 434, - "name": "Coach Road" + "type": "turn", + "bearing_before": 42, + "modifier": "right", + "instruction": "Sväng höger in på Marinship Way" + } }, { "intersections": [ { - "out": 2, + "out": 1, + "in": 0, + "entry": [ + false, + true + ], "location": [ - -122.523185, - 37.912061 + -122.493735, + 37.861883 ], "bearings": [ - 30, - 135, - 255 - ], + 15, + 210 + ] + }, + { + "out": 2, + "in": 0, "entry": [ false, true, + true, true ], - "in": 0 - } - ], - "geometry": { - "coordinates": [ - [ - -122.523185, - 37.912061 - ], - [ - -122.523549, - 37.911951 - ], - [ - -122.523743, - 37.911655 - ], - [ - -122.523743, - 37.911223 - ], - [ - -122.523903, - 37.910927 - ], - [ - -122.524032, - 37.910698 - ], - [ - -122.524129, - 37.910258 + "location": [ + -122.493759, + 37.861843 ], - [ - -122.524228, - 37.910137 + "bearings": [ + 30, + 90, + 210, + 285 ] - ], - "type": "LineString" - }, + } + ], + "geometry": "w{afFzpsjVFBPH", + "duration": 17.7, + "distance": 15.9, + "name": "Easterby Street", + "weight": 17.7, "mode": "cycling", - "duration": 79.8, "maneuver": { - "bearing_after": 247, - "type": "turn", - "modifier": "slight right", - "bearing_before": 209, + "bearing_after": 205, "location": [ - -122.523185, - 37.912061 + -122.493735, + 37.861883 ], - "instruction": "Make a slight right" - }, - "weight": 79.8, - "distance": 248.7, - "name": "" + "type": "turn", + "bearing_before": 189, + "modifier": "right", + "instruction": "Sväng höger in på Easterby Street" + } }, { "intersections": [ { - "out": 2, - "location": [ - -122.524228, - 37.910137 - ], - "bearings": [ - 30, - 135, - 315 - ], + "out": 1, + "in": 0, "entry": [ false, true, true ], - "in": 0 - } - ], - "geometry": { - "coordinates": [ - [ - -122.524228, - 37.910137 - ], - [ - -122.524691, - 37.910471 - ], - [ - -122.524855, - 37.91052 - ] - ], - "type": "LineString" - }, - "mode": "cycling", - "duration": 25.5, - "maneuver": { - "bearing_after": 312, - "type": "turn", - "modifier": "right", - "bearing_before": 212, - "location": [ - -122.524228, - 37.910137 - ], - "instruction": "Turn right onto Vasco Court" - }, - "weight": 25.5, - "distance": 70.4, - "name": "Vasco Court" - }, - { - "intersections": [ - { - "out": 1, "location": [ - -122.524855, - 37.91052 + -122.493812, + 37.861754 ], "bearings": [ + 30, 105, - 195, - 270 - ], + 210 + ] + }, + { + "out": 0, + "in": 2, "entry": [ - false, true, - true + true, + false ], - "in": 0 - }, - { - "out": 1, "location": [ - -122.525615, - 37.90844 + -122.491922, + 37.860749 ], "bearings": [ - 15, - 180, + 60, + 255, 285 - ], + ] + }, + { + "out": 1, + "in": 2, "entry": [ - false, true, - true + true, + false ], - "in": 0 - }, - { - "out": 2, "location": [ - -122.525762, - 37.907496 + -122.491042, + 37.860727 ], "bearings": [ - 0, 45, - 180 - ], + 165, + 330 + ] + }, + { + "out": 1, + "in": 2, "entry": [ - false, true, - true + true, + false ], - "in": 0 - }, - { - "out": 2, "location": [ - -122.525774, - 37.907415 + -122.490776, + 37.85959 ], "bearings": [ - 0, - 90, - 180 - ], + 30, + 135, + 330 + ] + } + ], + "geometry": "}zafFhqsjVNwCB[B_@DIFKJMJGNCv@ULGHIHKHKHQFWBKUu@EWCK?OBW@IDIFKJIBCJCHAJ?F@LFRDL?RAHCHE`Bq@|@iA", + "duration": 120.49999999999999, + "distance": 491.7, + "name": "Filbert Avenue", + "weight": 120.49999999999999, + "mode": "cycling", + "maneuver": { + "bearing_after": 97, + "location": [ + -122.493812, + 37.861754 + ], + "type": "turn", + "bearing_before": 203, + "modifier": "left", + "instruction": "Sväng vänster in på Filbert Avenue" + } + }, + { + "intersections": [ + { + "out": 0, + "in": 2, "entry": [ - false, true, - true + true, + false + ], + "location": [ + -122.490411, + 37.859281 ], - "in": 0 + "bearings": [ + 135, + 180, + 315 + ] }, { "out": 1, + "in": 2, + "entry": [ + true, + true, + false + ], "location": [ - -122.526161, - 37.904754 + -122.490046, + 37.858982 ], "bearings": [ - 0, - 195, - 255 - ], + 30, + 135, + 315 + ] + } + ], + "geometry": "okafF`|rjVz@gAb@i@Dm@WgC", + "duration": 39.2, + "distance": 155.1, + "name": "Girard Avenue", + "weight": 39.2, + "mode": "cycling", + "maneuver": { + "bearing_after": 135, + "location": [ + -122.490411, + 37.859281 + ], + "type": "turn", + "bearing_before": 136, + "modifier": "straight", + "instruction": "Kör rakt fram in på Girard Avenue" + } + }, + { + "intersections": [ + { + "out": 0, + "in": 3, "entry": [ - false, true, - true + true, + true, + false ], - "in": 0 - }, - { - "out": 2, "location": [ - -122.5262, - 37.904546 + -122.488925, + 37.858893 ], "bearings": [ - 15, - 90, - 195 - ], + 30, + 120, + 225, + 255 + ] + } + ], + "geometry": "aiafFxrrjVMK", + "duration": 6.5, + "distance": 9, + "name": "Litho Street", + "weight": 6.5, + "mode": "cycling", + "maneuver": { + "bearing_after": 33, + "location": [ + -122.488925, + 37.858893 + ], + "type": "turn", + "bearing_before": 77, + "modifier": "left", + "instruction": "Sväng vänster in på Litho Street" + } + }, + { + "intersections": [ + { + "out": 1, + "in": 2, "entry": [ - false, true, + true, + false, true ], - "in": 0 - }, - { - "out": 1, "location": [ - -122.526716, - 37.900797 + -122.488867, + 37.85896 ], "bearings": [ - 60, - 150, - 240, - 330 - ], + 30, + 120, + 210, + 300 + ] + }, + { + "out": 1, + "in": 3, "entry": [ true, true, true, false ], - "in": 3 + "location": [ + -122.487991, + 37.858484 + ], + "bearings": [ + 30, + 120, + 210, + 300 + ] }, { "out": 1, + "in": 3, + "entry": [ + true, + true, + true, + false + ], "location": [ - -122.526647, - 37.900695 + -122.487136, + 37.858033 ], "bearings": [ - 60, - 165, - 240, - 330 - ], + 30, + 120, + 210, + 300 + ] + }, + { + "out": 1, + "in": 3, "entry": [ true, true, true, false ], - "in": 3 + "location": [ + -122.486281, + 37.857581 + ], + "bearings": [ + 30, + 120, + 210, + 300 + ] } ], - "geometry": { - "coordinates": [ - [ - -122.524855, - 37.91052 + "geometry": "oiafFlrrjV~AoDxAiDxAkDzAmD", + "duration": 92.19999999999999, + "distance": 366.2, + "name": "Bonita Street", + "weight": 92.19999999999999, + "mode": "cycling", + "maneuver": { + "bearing_after": 123, + "location": [ + -122.488867, + 37.85896 + ], + "type": "turn", + "bearing_before": 33, + "modifier": "right", + "instruction": "Sväng höger in på Bonita Street" + } + }, + { + "intersections": [ + { + "out": 1, + "in": 2, + "entry": [ + true, + true, + false ], - [ - -122.525255, - 37.909633 + "location": [ + -122.485407, + 37.857122 ], - [ - -122.525474, - 37.909027 - ], - [ - -122.525615, - 37.90844 - ], - [ - -122.525762, - 37.907496 - ], - [ - -122.525774, - 37.907415 - ], - [ - -122.525807, - 37.907142 - ], - [ - -122.525919, - 37.906254 - ], - [ - -122.526031, - 37.905618 - ], - [ - -122.526161, - 37.904754 - ], - [ - -122.5262, - 37.904546 - ], - [ - -122.526726, - 37.903281 - ], - [ - -122.526866, - 37.902939 - ], - [ - -122.526952, - 37.902648 - ], - [ - -122.527003, - 37.902384 - ], - [ - -122.52702, - 37.902153 - ], - [ - -122.527003, - 37.901855 - ], - [ - -122.526934, - 37.901415 - ], - [ - -122.52684, - 37.900982 - ], - [ - -122.526772, - 37.900873 - ], - [ - -122.526716, - 37.900797 - ], - [ - -122.526647, - 37.900695 - ], - [ - -122.526608, - 37.900616 - ], - [ - -122.52673, - 37.900559 + "bearings": [ + 30, + 210, + 300 ] - ], - "type": "LineString" - }, - "mode": "cycling", - "duration": 277.5, - "maneuver": { - "bearing_after": 198, - "type": "turn", - "modifier": "left", - "bearing_before": 289, - "location": [ - -122.524855, - 37.91052 - ], - "instruction": "Turn left onto Mill Valley - Sausalito Path" - }, - "weight": 277.5, - "distance": 1143.6, - "name": "Mill Valley - Sausalito Path" - }, - { - "intersections": [ + }, { "out": 1, - "location": [ - -122.52673, - 37.900559 - ], - "bearings": [ - 60, - 180, - 240 - ], + "in": 0, "entry": [ false, true, true ], - "in": 0 - } - ], - "geometry": { - "coordinates": [ - [ - -122.52673, - 37.900559 - ], - [ - -122.526746, - 37.900372 - ], - [ - -122.52647, - 37.898698 - ], - [ - -122.526341, - 37.897843 - ], - [ - -122.526305, - 37.897513 - ], - [ - -122.526269, - 37.897305 - ], - [ - -122.526239, - 37.897229 - ], - [ - -122.526093, - 37.896938 - ], - [ - -122.526091, - 37.896924 + "location": [ + -122.486075, + 37.856348 ], - [ - -122.526097, - 37.896802 + "bearings": [ + 30, + 210, + 300 ] - ], - "type": "LineString" - }, + } + ], + "geometry": "_~`fFx|qjVxCdCLJ", + "duration": 44.6, + "distance": 113, + "name": "Johnson Street", + "weight": 44.6, "mode": "cycling", - "duration": 105.7, "maneuver": { - "bearing_after": 182, - "type": "new name", - "modifier": "straight", - "bearing_before": 239, + "bearing_after": 213, "location": [ - -122.52673, - 37.900559 + -122.485407, + 37.857122 ], - "instruction": "Continue straight onto Mill Valley - Sausalito Path" - }, - "weight": 105.7, - "distance": 423.4, - "name": "Mill Valley - Sausalito Path" + "type": "end of road", + "bearing_before": 122, + "modifier": "right", + "instruction": "Sväng höger in på Johnson Street" + } }, { "intersections": [ { - "out": 2, - "location": [ - -122.526097, - 37.896802 - ], - "bearings": [ - 0, - 105, - 270 - ], + "out": 1, + "in": 0, "entry": [ false, - false, + true, true ], - "in": 0 - }, - { - "out": 1, "location": [ - -122.526216, - 37.896732 + -122.486135, + 37.856284 ], "bearings": [ - 15, - 180, + 30, + 90, 270 - ], - "entry": [ - false, - true, - true - ], - "in": 0 + ] }, { - "out": 1, - "location": [ - -122.526087, - 37.896645 - ], - "bearings": [ - 60, - 180, - 255 - ], + "out": 0, + "in": 2, "entry": [ true, true, false ], - "in": 2 - }, - { - "out": 1, "location": [ - -122.525399, - 37.892204 + -122.485526, + 37.856313 ], "bearings": [ - 75, - 180, - 345 - ], - "entry": [ - true, - true, - false - ], - "in": 2 + 105, + 210, + 270 + ] }, { "out": 0, - "location": [ - -122.524454, - 37.887393 - ], - "bearings": [ - 165, - 255, - 345 - ], + "in": 2, "entry": [ true, true, false ], - "in": 2 - }, - { - "out": 0, "location": [ - -122.518872, - 37.88265 + -122.485217, + 37.856217 ], "bearings": [ - 135, + 90, 210, - 315 - ], + 300 + ] + } + ], + "geometry": "wx`fFjarjVEyBDc@JYB{A[s@o@s@", + "duration": 45.7, + "distance": 186.2, + "name": "Glen Drive", + "weight": 45.7, + "mode": "cycling", + "maneuver": { + "bearing_after": 85, + "location": [ + -122.486135, + 37.856284 + ], + "type": "turn", + "bearing_before": 215, + "modifier": "sharp left", + "instruction": "Sväng åt skarp vänster in på Glen Drive" + } + }, + { + "intersections": [ + { + "out": 2, + "in": 4, "entry": [ true, true, - false - ], - "in": 2 - }, - { - "out": 0, - "location": [ - -122.515603, - 37.880169 - ], - "bearings": [ - 135, - 210, - 315 - ], - "entry": [ true, true, false ], - "in": 2 - }, - { - "out": 1, "location": [ - -122.514952, - 37.879554 + -122.484238, + 37.856579 ], "bearings": [ + 0, + 30, 45, - 135, - 240, - 330 - ], + 180, + 225 + ] + } + ], + "geometry": "sz`fFnuqjVg@_AKc@Iq@Aw@Lw@Vq@^w@`@_@f@[t@U", + "duration": 63.1, + "distance": 262.3, + "name": "Harrison Avenue", + "weight": 63.1, + "mode": "cycling", + "maneuver": { + "bearing_after": 50, + "location": [ + -122.484238, + 37.856579 + ], + "type": "fork", + "bearing_before": 39, + "modifier": "slight right", + "instruction": "Håll till höger in på Harrison Avenue" + } + }, + { + "intersections": [ + { + "out": 1, + "in": 3, "entry": [ true, true, true, false ], - "in": 3 - }, - { - "out": 1, "location": [ - -122.505727, - 37.872757 + -122.481987, + 37.855912 ], "bearings": [ - 30, - 120, - 300 - ], - "entry": [ - true, - true, - false - ], - "in": 2 - }, - { - "out": 1, - "location": [ - -122.505574, - 37.872674 - ], - "bearings": [ - 30, - 120, + 15, + 180, 210, - 300 - ], - "entry": [ - true, - true, - true, - false - ], - "in": 3 - }, - { - "out": 1, - "location": [ - -122.503675, - 37.870811 - ], - "bearings": [ - 90, - 165, - 300, - 345 - ], - "entry": [ - true, - true, - true, - false - ], - "in": 3 - }, - { - "out": 1, - "location": [ - -122.50364, - 37.870703 - ], - "bearings": [ - 45, - 165, - 225, 345 - ], - "entry": [ - true, - true, - true, - false - ], - "in": 3 + ] } ], - "geometry": { - "coordinates": [ - [ - -122.526097, - 37.896802 - ], - [ - -122.52613, - 37.896802 - ], - [ - -122.526162, - 37.896794 - ], - [ - -122.526188, - 37.896778 - ], - [ - -122.526207, - 37.896757 - ], - [ - -122.526216, - 37.896732 - ], - [ - -122.526214, - 37.896706 - ], - [ - -122.526202, - 37.896681 - ], - [ - -122.52618, - 37.896661 - ], - [ - -122.526152, - 37.896648 - ], - [ - -122.52612, - 37.896642 - ], - [ - -122.526087, - 37.896645 - ], - [ - -122.526079, - 37.896528 - ], - [ - -122.526096, - 37.896448 - ], - [ - -122.526102, - 37.896357 - ], - [ - -122.525873, - 37.895049 - ], - [ - -122.525717, - 37.894026 - ], - [ - -122.525399, - 37.892204 - ], - [ - -122.525384, - 37.892078 - ], - [ - -122.525335, - 37.891794 - ], - [ - -122.52507, - 37.890193 - ], - [ - -122.525005, - 37.88979 - ], - [ - -122.524836, - 37.888731 - ], - [ - -122.524563, - 37.887683 - ], - [ - -122.524454, - 37.887393 - ], - [ - -122.524263, - 37.887025 - ], - [ - -122.523853, - 37.886538 - ], - [ - -122.523618, - 37.886329 - ], - [ - -122.523259, - 37.886032 - ], - [ - -122.521495, - 37.884674 - ], - [ - -122.520855, - 37.884175 - ], - [ - -122.520768, - 37.884106 - ], - [ - -122.52064, - 37.884016 - ], - [ - -122.519255, - 37.88295 - ], - [ - -122.518872, - 37.88265 - ], - [ - -122.516997, - 37.881235 - ], - [ - -122.515603, - 37.880169 - ], - [ - -122.515147, - 37.87982 - ], - [ - -122.515068, - 37.879742 - ], - [ - -122.515039, - 37.879655 - ], - [ - -122.514952, - 37.879554 - ], - [ - -122.514776, - 37.879439 - ], - [ - -122.514633, - 37.879404 - ], - [ - -122.514159, - 37.879039 - ], - [ - -122.512232, - 37.877558 - ], - [ - -122.51114, - 37.876724 - ], - [ - -122.509979, - 37.875817 - ], - [ - -122.507774, - 37.874135 - ], - [ - -122.506945, - 37.873518 - ], - [ - -122.506509, - 37.873182 - ], - [ - -122.505727, - 37.872757 - ], - [ - -122.505574, - 37.872674 - ], - [ - -122.5052, - 37.872449 - ], - [ - -122.504728, - 37.872112 - ], - [ - -122.504334, - 37.871775 - ], - [ - -122.504168, - 37.871618 - ], - [ - -122.503899, - 37.871254 - ], - [ - -122.503717, - 37.870937 - ], - [ - -122.503675, - 37.870811 - ], - [ - -122.50364, - 37.870703 - ], - [ - -122.503515, - 37.870414 - ], - [ - -122.503349, - 37.87005 - ], - [ - -122.503027, - 37.869351 - ], - [ - -122.502544, - 37.86869 - ], - [ - -122.502489, - 37.86861 - ] - ], - "type": "LineString" - }, + "geometry": "mv`fFlgqjVhBMbAOj@KvBm@Ja@ZgBNQLIl@DjAD^?", + "duration": 90.7, + "distance": 363.8, + "name": "San Carlos Avenue", + "weight": 90.7, "mode": "cycling", - "duration": 954.9, "maneuver": { - "exit": 1, - "bearing_after": 270, - "type": "roundabout turn", - "modifier": "straight", - "bearing_before": 181, + "bearing_after": 174, "location": [ - -122.526097, - 37.896802 + -122.481987, + 37.855912 ], - "instruction": "At the roundabout continue straight onto Mill Valley - Sausalito Path" - }, - "weight": 954.9, - "distance": 3950.1, - "name": "Mill Valley - Sausalito Path" + "type": "new name", + "bearing_before": 160, + "modifier": "straight", + "instruction": "Fortsätt rakt fram på San Carlos Avenue" + } }, { "intersections": [ { - "out": 2, - "location": [ - -122.502489, - 37.86861 - ], - "bearings": [ - 45, - 150, - 195, - 330 - ], + "out": 1, + "in": 0, "entry": [ + false, true, - true, - true, - false + true ], - "in": 3 - }, - { - "out": 2, "location": [ - -122.502513, - 37.868534 + -122.480778, + 37.8531 ], "bearings": [ - 15, - 150, - 210, - 330 - ], - "entry": [ - false, - true, - true, - true - ], - "in": 0 + 0, + 120, + 195 + ] } ], - "geometry": { - "coordinates": [ - [ - -122.502489, - 37.86861 - ], - [ - -122.502513, - 37.868534 - ], - [ - -122.50258, - 37.868442 - ] - ], - "type": "LineString" - }, + "geometry": "{d`fFz_qjVVm@\\qAXc@h@W", + "duration": 26.7, + "distance": 110.6, + "name": "Harrison Avenue", + "weight": 26.7, "mode": "cycling", - "duration": 13.7, "maneuver": { - "bearing_after": 192, - "type": "turn", - "modifier": "right", - "bearing_before": 150, + "bearing_after": 122, "location": [ - -122.502489, - 37.86861 + -122.480778, + 37.8531 ], - "instruction": "Turn right onto Coloma Street" - }, - "weight": 13.7, - "distance": 20.5, - "name": "Coloma Street" + "type": "turn", + "bearing_before": 180, + "modifier": "left", + "instruction": "Sväng vänster in på Harrison Avenue" + } }, { "intersections": [ { "out": 1, - "location": [ - -122.50258, - 37.868442 - ], - "bearings": [ - 30, - 150, - 225, - 330 - ], - "entry": [ - false, - true, - true, - true - ], - "in": 0 - }, - { - "out": 1, - "location": [ - -122.500904, - 37.866795 - ], - "bearings": [ - 30, - 135, - 225, - 315 - ], - "entry": [ - true, - true, - true, - false - ], - "in": 3 - }, - { - "out": 1, - "location": [ - -122.499256, - 37.865243 - ], - "bearings": [ - 45, - 135, - 225, - 315 - ], + "in": 2, "entry": [ true, true, - true, - false - ], - "in": 3 - }, - { - "out": 1, - "location": [ - -122.495621, - 37.862539 - ], - "bearings": [ - 30, - 120, - 210, - 300 - ], - "entry": [ - true, - true, - true, - false - ], - "in": 3 - }, - { - "out": 1, - "location": [ - -122.494756, - 37.862095 - ], - "bearings": [ - 30, - 120, - 210, - 300 - ], - "entry": [ - true, - true, - true, - false - ], - "in": 3 - }, - { - "out": 0, - "location": [ - -122.494634, - 37.862037 - ], - "bearings": [ - 120, - 150, - 300 - ], - "entry": [ - true, - true, - false - ], - "in": 2 - }, - { - "out": 1, - "location": [ - -122.493759, - 37.861843 - ], - "bearings": [ - 30, - 90, - 210, - 285 - ], - "entry": [ - true, - true, - true, - false - ], - "in": 3 - }, - { - "out": 0, - "location": [ - -122.490468, - 37.861589 - ], - "bearings": [ - 105, - 120, - 285 - ], - "entry": [ - true, - true, - false - ], - "in": 2 - }, - { - "out": 1, - "location": [ - -122.489412, - 37.86124 - ], - "bearings": [ - 31, - 120, - 214, - 294, - 305 - ], - "entry": [ - true, - true, - true, - false, - true - ], - "in": 3 - }, - { - "out": 0, - "location": [ - -122.488532, - 37.860834 - ], - "bearings": [ - 120, - 210, - 300 - ], - "entry": [ - true, - true, - false - ], - "in": 2 - }, - { - "out": 0, - "location": [ - -122.487646, - 37.860393 - ], - "bearings": [ - 120, - 210, - 300 - ], - "entry": [ - true, - true, - false - ], - "in": 2 - }, - { - "out": 1, - "location": [ - -122.486726, - 37.859999 - ], - "bearings": [ - 30, - 120, - 210, - 300 - ], - "entry": [ - true, - true, - true, - false - ], - "in": 3 - }, - { - "out": 1, - "location": [ - -122.485819, - 37.85958 - ], - "bearings": [ - 30, - 120, - 210, - 300 - ], - "entry": [ - true, - true, - true, - false - ], - "in": 3 - }, - { - "out": 1, - "location": [ - -122.484921, - 37.859165 - ], - "bearings": [ - 30, - 120, - 210, - 300 - ], - "entry": [ - true, - true, - true, - false - ], - "in": 3 - }, - { - "out": 1, - "location": [ - -122.484016, - 37.85877 - ], - "bearings": [ - 30, - 120, - 210, - 300 - ], - "entry": [ - true, - true, - true, - false - ], - "in": 3 - }, - { - "out": 1, - "location": [ - -122.483069, - 37.858429 - ], - "bearings": [ - 30, - 105, - 240, - 300 - ], - "entry": [ - true, - true, - true, - false - ], - "in": 3 - }, - { - "out": 1, - "location": [ - -122.480533, - 37.856978 - ], - "bearings": [ - 30, - 135, - 315 - ], - "entry": [ - true, - true, - false - ], - "in": 2 - }, - { - "out": 0, - "location": [ - -122.480462, - 37.856923 - ], - "bearings": [ - 135, - 210, - 315 - ], - "entry": [ - true, - true, - false - ], - "in": 2 - }, - { - "out": 2, - "location": [ - -122.479915, - 37.856473 - ], - "bearings": [ - 30, - 90, - 150, - 330 - ], - "entry": [ - true, - true, - true, - false - ], - "in": 3 - }, - { - "out": 0, - "location": [ - -122.479596, - 37.855993 - ], - "bearings": [ - 150, - 240, - 330 - ], - "entry": [ - true, - true, - false - ], - "in": 2 - }, - { - "out": 1, - "location": [ - -122.47949, - 37.855848 - ], - "bearings": [ - 90, - 150, - 330 - ], - "entry": [ - true, - true, - false - ], - "in": 2 - }, - { - "out": 0, - "location": [ - -122.479142, - 37.855228 - ], - "bearings": [ - 150, - 210, - 330 - ], - "entry": [ - true, - true, - false - ], - "in": 2 - } - ], - "geometry": { - "coordinates": [ - [ - -122.50258, - 37.868442 - ], - [ - -122.502253, - 37.868105 - ], - [ - -122.500904, - 37.866795 - ], - [ - -122.500771, - 37.866706 - ], - [ - -122.500457, - 37.866405 - ], - [ - -122.499256, - 37.865243 - ], - [ - -122.498321, - 37.864382 - ], - [ - -122.49773, - 37.863876 - ], - [ - -122.497461, - 37.86366 - ], - [ - -122.49722, - 37.863493 - ], - [ - -122.496973, - 37.863333 - ], - [ - -122.496465, - 37.863031 - ], - [ - -122.495621, - 37.862539 - ], - [ - -122.494756, - 37.862095 - ], - [ - -122.494634, - 37.862037 - ], - [ - -122.494477, - 37.86198 - ], - [ - -122.494254, - 37.861919 - ], - [ - -122.493759, - 37.861843 - ], - [ - -122.492455, - 37.861812 - ], - [ - -122.491563, - 37.861754 - ], - [ - -122.490869, - 37.86167 - ], - [ - -122.490468, - 37.861589 - ], - [ - -122.490312, - 37.861547 - ], - [ - -122.48993, - 37.861422 - ], - [ - -122.489412, - 37.86124 - ], - [ - -122.488532, - 37.860834 - ], - [ - -122.487646, - 37.860393 - ], - [ - -122.486726, - 37.859999 - ], - [ - -122.485819, - 37.85958 - ], - [ - -122.484921, - 37.859165 - ], - [ - -122.484016, - 37.85877 - ], - [ - -122.483069, - 37.858429 - ], - [ - -122.48263, - 37.858314 - ], - [ - -122.482415, - 37.858231 - ], - [ - -122.482159, - 37.858109 - ], - [ - -122.481813, - 37.857905 - ], - [ - -122.480533, - 37.856978 - ], - [ - -122.480462, - 37.856923 - ], - [ - -122.480082, - 37.856673 - ], - [ - -122.479915, - 37.856473 - ], - [ - -122.479851, - 37.856374 - ], - [ - -122.479596, - 37.855993 - ], - [ - -122.47949, - 37.855848 - ], - [ - -122.479142, - 37.855228 - ], - [ - -122.478956, - 37.854914 - ], - [ - -122.478941, - 37.851573 - ], - [ - -122.479134, - 37.851178 - ], - [ - -122.479337, - 37.850825 - ], - [ - -122.479531, - 37.850549 - ], - [ - -122.479672, - 37.850331 - ], - [ - -122.47984, - 37.849967 - ], - [ - -122.479961, - 37.849886 - ] - ], - "type": "LineString" - }, - "mode": "cycling", - "duration": 793.3000000000001, - "maneuver": { - "bearing_after": 142, - "type": "turn", - "modifier": "left", - "bearing_before": 209, - "location": [ - -122.50258, - 37.868442 - ], - "instruction": "Turn left onto Bridgeway" - }, - "weight": 793.3000000000001, - "distance": 3246.6, - "name": "Bridgeway" - }, - { - "intersections": [ - { - "out": 2, - "location": [ - -122.479961, - 37.849886 - ], - "bearings": [ - 45, - 135, - 255 - ], - "entry": [ - false, - true, - true - ], - "in": 0 - } - ], - "geometry": { - "coordinates": [ - [ - -122.479961, - 37.849886 - ], - [ - -122.480092, - 37.849863 - ], - [ - -122.480741, - 37.849874 - ] - ], - "type": "LineString" - }, - "mode": "cycling", - "duration": 24.9, - "maneuver": { - "bearing_after": 255, - "type": "new name", - "modifier": "slight right", - "bearing_before": 229, - "location": [ - -122.479961, - 37.849886 - ], - "instruction": "Continue slightly right onto Richardson Street" - }, - "weight": 24.9, - "distance": 68.8, - "name": "Richardson Street" - }, - { - "intersections": [ - { - "out": 2, - "location": [ - -122.480741, - 37.849874 - ], - "bearings": [ - 0, - 90, - 180, - 270 - ], - "entry": [ - true, - false, - true, - true - ], - "in": 1 - }, - { - "out": 1, - "location": [ - -122.480748, - 37.849594 - ], - "bearings": [ - 0, - 180, - 270 - ], - "entry": [ - false, - true, - true - ], - "in": 0 - }, - { - "out": 1, - "location": [ - -122.480751, - 37.849452 - ], - "bearings": [ - 0, - 180, - 270 - ], - "entry": [ - false, - true, - true - ], - "in": 0 - }, - { - "out": 2, - "location": [ - -122.480763, - 37.848915 - ], - "bearings": [ - 0, - 90, - 180, - 270 - ], - "entry": [ - false, - true, - true, - true - ], - "in": 0 - }, - { - "out": 1, - "location": [ - -122.480778, - 37.84844 - ], - "bearings": [ - 0, - 180, - 270 - ], - "entry": [ - false, - true, - true - ], - "in": 0 - }, - { - "out": 2, - "location": [ - -122.480795, - 37.847947 - ], - "bearings": [ - 0, - 90, - 180, - 270 - ], - "entry": [ - false, - true, - true, - true - ], - "in": 0 - }, - { - "out": 1, - "location": [ - -122.480806, - 37.847291 - ], - "bearings": [ - 0, - 165, - 270 - ], - "entry": [ - false, - true, - true - ], - "in": 0 - } - ], - "geometry": { - "coordinates": [ - [ - -122.480741, - 37.849874 - ], - [ - -122.480748, - 37.849594 - ], - [ - -122.480751, - 37.849452 - ], - [ - -122.480763, - 37.848915 - ], - [ - -122.480778, - 37.84844 - ], - [ - -122.480795, - 37.847947 - ], - [ - -122.480806, - 37.847291 - ], - [ - -122.480732, - 37.84703 - ] - ], - "type": "LineString" - }, - "mode": "cycling", - "duration": 78.4, - "maneuver": { - "bearing_after": 180, - "type": "turn", - "modifier": "left", - "bearing_before": 270, - "location": [ - -122.480741, - 37.849874 - ], - "instruction": "Turn left onto 2nd Street" - }, - "weight": 78.4, - "distance": 317.1, - "name": "2nd Street" - }, - { - "intersections": [ - { - "out": 0, - "location": [ - -122.480732, - 37.84703 - ], - "bearings": [ - 120, - 240, - 345 - ], - "entry": [ - true, - true, - false - ], - "in": 2 - }, - { - "out": 1, - "location": [ - -122.479928, - 37.846982 - ], - "bearings": [ - 30, - 90, - 270 - ], - "entry": [ - true, - true, - false - ], - "in": 2 - } - ], - "geometry": { - "coordinates": [ - [ - -122.480732, - 37.84703 - ], - [ - -122.480633, - 37.846984 - ], - [ - -122.480509, - 37.84697 - ], - [ - -122.479928, - 37.846982 - ], - [ - -122.479127, - 37.846984 - ], - [ - -122.478939, - 37.84695 - ] - ], - "type": "LineString" - }, - "mode": "cycling", - "duration": 38.400000000000006, - "maneuver": { - "bearing_after": 119, - "type": "turn", - "modifier": "left", - "bearing_before": 167, - "location": [ - -122.480732, - 37.84703 - ], - "instruction": "Turn left onto South Street" - }, - "weight": 38.400000000000006, - "distance": 159.4, - "name": "South Street" - }, - { - "intersections": [ - { - "out": 0, - "location": [ - -122.478939, - 37.84695 - ], - "bearings": [ - 120, - 285 - ], - "entry": [ - true, - false - ], - "in": 1 - }, - { - "out": 1, - "location": [ - -122.478269, - 37.846367 - ], - "bearings": [ - 105, - 150, - 315 - ], - "entry": [ - true, - true, - false - ], - "in": 2 - }, - { - "out": 0, - "location": [ - -122.478183, - 37.846227 - ], - "bearings": [ - 165, - 285, - 330 - ], - "entry": [ - true, - true, - false - ], - "in": 2 - }, - { - "out": 2, - "location": [ - -122.477854, - 37.84467 - ], - "bearings": [ - 0, - 135, - 195 - ], - "entry": [ - false, - true, - true - ], - "in": 0 - }, - { - "out": 1, - "location": [ - -122.478008, - 37.844211 - ], - "bearings": [ - 15, - 195, - 240 - ], - "entry": [ - false, - true, - true - ], - "in": 0 - }, - { - "out": 2, - "location": [ - -122.478741, - 37.839901 - ], - "bearings": [ - 60, - 150, - 255 - ], - "entry": [ - false, - true, - true - ], - "in": 0 - }, - { - "out": 1, - "location": [ - -122.483029, - 37.838117 - ], - "bearings": [ - 0, - 180, - 195 - ], - "entry": [ - false, - true, - true - ], - "in": 0 - }, - { - "out": 1, - "location": [ - -122.483009, - 37.837461 - ], - "bearings": [ - 0, - 180, - 345 - ], - "entry": [ - false, - true, - true - ], - "in": 0 - } - ], - "geometry": { - "coordinates": [ - [ - -122.478939, - 37.84695 - ], - [ - -122.478793, - 37.846889 - ], - [ - -122.478269, - 37.846367 - ], - [ - -122.478183, - 37.846227 - ], - [ - -122.478077, - 37.846007 - ], - [ - -122.478, - 37.845763 - ], - [ - -122.477879, - 37.845316 - ], - [ - -122.477854, - 37.84467 - ], - [ - -122.478008, - 37.844211 - ], - [ - -122.478111, - 37.843913 - ], - [ - -122.478223, - 37.843628 - ], - [ - -122.478274, - 37.843391 - ], - [ - -122.478291, - 37.843154 - ], - [ - -122.47824, - 37.842855 - ], - [ - -122.478094, - 37.84255 - ], - [ - -122.477914, - 37.842184 - ], - [ - -122.477733, - 37.841832 - ], - [ - -122.477613, - 37.841554 - ], - [ - -122.47757, - 37.841303 - ], - [ - -122.477579, - 37.841019 - ], - [ - -122.477702, - 37.84068 - ], - [ - -122.477845, - 37.840442 - ], - [ - -122.478017, - 37.840266 - ], - [ - -122.478283, - 37.840097 - ], - [ - -122.478575, - 37.839961 - ], - [ - -122.478741, - 37.839901 - ], - [ - -122.478909, - 37.839873 - ], - [ - -122.479158, - 37.839846 - ], - [ - -122.479416, - 37.839839 - ], - [ - -122.480832, - 37.839866 - ], - [ - -122.481124, - 37.839859 - ], - [ - -122.481433, - 37.839832 - ], - [ - -122.481699, - 37.839792 - ], - [ - -122.481913, - 37.839724 - ], - [ - -122.482119, - 37.839629 - ], - [ - -122.482334, - 37.8395 - ], - [ - -122.482523, - 37.839365 - ], - [ - -122.48272, - 37.839154 - ], - [ - -122.482883, - 37.838917 - ], - [ - -122.482978, - 37.8387 - ], - [ - -122.483029, - 37.83845 - ], - [ - -122.483029, - 37.838117 - ], - [ - -122.483026, - 37.837827 - ], - [ - -122.483009, - 37.837461 - ], - [ - -122.482986, - 37.837223 - ], - [ - -122.483055, - 37.836943 - ], - [ - -122.483136, - 37.83675 - ], - [ - -122.483273, - 37.836546 - ], - [ - -122.483395, - 37.836385 - ], - [ - -122.483647, - 37.836202 - ], - [ - -122.483877, - 37.836082 - ] - ], - "type": "LineString" - }, - "mode": "cycling", - "duration": 398.5, - "maneuver": { - "bearing_after": 116, - "type": "new name", - "modifier": "straight", - "bearing_before": 102, - "location": [ - -122.478939, - 37.84695 - ], - "instruction": "Continue straight onto Alexander Avenue" - }, - "weight": 398.5, - "distance": 1626.5, - "name": "Alexander Avenue" - }, - { - "intersections": [ - { - "out": 1, - "location": [ - -122.483877, - 37.836082 - ], - "bearings": [ - 60, - 150, - 240 - ], - "entry": [ - false, - true, - true - ], - "in": 0 - } - ], - "geometry": { - "coordinates": [ - [ - -122.483877, - 37.836082 - ], - [ - -122.483719, - 37.835878 - ], - [ - -122.483694, - 37.83585 - ], - [ - -122.483824, - 37.83561 - ], - [ - -122.483854, - 37.835457 - ], - [ - -122.483854, - 37.83512 - ], - [ - -122.4838, - 37.834847 - ], - [ - -122.483696, - 37.834606 - ], - [ - -122.483484, - 37.834319 - ], - [ - -122.483375, - 37.8342 - ], - [ - -122.483181, - 37.834028 - ], - [ - -122.482775, - 37.833735 - ], - [ - -122.482395, - 37.833494 - ], - [ - -122.482067, - 37.833325 - ], - [ - -122.481925, - 37.833268 - ], - [ - -122.481877, - 37.833249 - ], - [ - -122.481669, - 37.833237 - ] - ], - "type": "LineString" - }, - "mode": "cycling", - "duration": 100.1, - "maneuver": { - "bearing_after": 147, - "type": "turn", - "modifier": "left", - "bearing_before": 236, - "location": [ - -122.483877, - 37.836082 - ], - "instruction": "Turn left" - }, - "weight": 100.1, - "distance": 414.7, - "name": "" - }, - { - "intersections": [ - { - "out": 1, - "location": [ - -122.481669, - 37.833237 - ], - "bearings": [ - 30, - 75, - 270 - ], - "entry": [ - true, - true, - false - ], - "in": 2 - } - ], - "geometry": { - "coordinates": [ - [ - -122.481669, - 37.833237 - ], - [ - -122.481612, - 37.833245 - ], - [ - -122.481567, - 37.833264 - ], - [ - -122.481505, - 37.833311 - ], - [ - -122.48144, - 37.833343 - ], - [ - -122.481363, - 37.833356 - ], - [ - -122.481089, - 37.833351 - ], - [ - -122.480867, - 37.833322 - ] - ], - "type": "LineString" - }, - "mode": "cycling", - "duration": 23.3, - "maneuver": { - "bearing_after": 70, - "type": "turn", - "modifier": "slight left", - "bearing_before": 92, - "location": [ - -122.481669, - 37.833237 - ], - "instruction": "Make a slight left" - }, - "weight": 23.3, - "distance": 74.6, - "name": "" - }, - { - "intersections": [ - { - "out": 1, - "location": [ - -122.480867, - 37.833322 - ], - "bearings": [ - 90, - 195, - 285 - ], - "entry": [ - true, - true, - false - ], - "in": 2 - }, - { - "out": 2, - "location": [ - -122.480895, - 37.833264 - ], - "bearings": [ - 15, - 105, - 210 - ], - "entry": [ - false, - true, - true - ], - "in": 0 - }, - { - "out": 2, - "location": [ - -122.481008, - 37.833106 - ], - "bearings": [ - 30, - 135, - 225 - ], - "entry": [ - false, - true, - true - ], - "in": 0 - } - ], - "geometry": { - "coordinates": [ - [ - -122.480867, - 37.833322 - ], - [ - -122.480895, - 37.833264 - ], - [ - -122.480913, - 37.833226 - ], - [ - -122.480973, - 37.833133 - ], - [ - -122.481008, - 37.833106 - ], - [ - -122.481045, - 37.833071 - ] - ], - "type": "LineString" - }, - "mode": "cycling", - "duration": 9.100000000000001, - "maneuver": { - "bearing_after": 199, - "type": "continue", - "modifier": "right", - "bearing_before": 98, - "location": [ - -122.480867, - 37.833322 - ], - "instruction": "Continue right" - }, - "weight": 9.100000000000001, - "distance": 32.4, - "name": "" - }, - { - "intersections": [ - { - "out": 2, - "location": [ - -122.481045, - 37.833071 - ], - "bearings": [ - 45, - 165, - 180 - ], - "entry": [ - false, - true, - true - ], - "in": 0 - } - ], - "geometry": { - "coordinates": [ - [ - -122.481045, - 37.833071 - ], - [ - -122.481067, - 37.833008 - ], - [ - -122.481033, - 37.832953 - ], - [ - -122.480833, - 37.832731 - ], - [ - -122.480822, - 37.832703 - ], - [ - -122.480844, - 37.832607 - ], - [ - -122.480816, - 37.832562 - ], - [ - -122.480731, - 37.832482 - ], - [ - -122.480678, - 37.832456 - ] - ], - "type": "LineString" - }, - "mode": "cycling", - "duration": 19.8, - "maneuver": { - "bearing_after": 182, - "type": "turn", - "modifier": "slight left", - "bearing_before": 219, - "location": [ - -122.481045, - 37.833071 - ], - "instruction": "Make a slight left" - }, - "weight": 19.8, - "distance": 81.2, - "name": "" - }, - { - "intersections": [ - { - "out": 0, - "location": [ - -122.480678, - 37.832456 - ], - "bearings": [ - 165, - 315, - 330 - ], - "entry": [ - true, - false, - true - ], - "in": 1 - }, - { - "out": 1, - "location": [ - -122.480608, - 37.83234 - ], - "bearings": [ - 45, - 135, - 255, - 330 - ], - "entry": [ - true, - true, - true, - false - ], - "in": 3 - }, - { - "out": 0, - "location": [ - -122.476411, - 37.808171 - ], - "bearings": [ - 135, - 315 - ], - "entry": [ - true, - false - ], - "in": 1 - }, - { - "out": 1, - "location": [ - -122.476341, - 37.808107 - ], - "bearings": [ - 45, - 135, - 315 - ], - "entry": [ - true, - true, - false - ], - "in": 2 - }, - { - "out": 2, - "location": [ - -122.476291, - 37.808067 - ], - "bearings": [ - 30, - 60, - 135, - 315 - ], - "entry": [ - true, - true, - true, - false - ], - "in": 3 - }, - { - "out": 1, - "location": [ - -122.475937, - 37.807863 - ], - "bearings": [ - 75, - 120, - 300, - 330 - ], - "entry": [ - true, - true, - false, - true - ], - "in": 2 - } - ], - "geometry": { - "coordinates": [ - [ - -122.480678, - 37.832456 - ], - [ - -122.480656, - 37.832395 - ], - [ - -122.480608, - 37.83234 - ], - [ - -122.48054, - 37.832276 - ], - [ - -122.480432, - 37.832162 - ], - [ - -122.480331, - 37.832051 - ], - [ - -122.480239, - 37.831933 - ], - [ - -122.480151, - 37.83181 - ], - [ - -122.480062, - 37.831668 - ], - [ - -122.479993, - 37.831542 - ], - [ - -122.47993, - 37.83141 - ], - [ - -122.479878, - 37.831281 - ], - [ - -122.479827, - 37.831149 - ], - [ - -122.479782, - 37.831016 - ], - [ - -122.479746, - 37.830875 - ], - [ - -122.479718, - 37.830742 - ], - [ - -122.479698, - 37.830604 - ], - [ - -122.479677, - 37.830444 - ], - [ - -122.479659, - 37.830295 - ], - [ - -122.477244, - 37.809655 - ], - [ - -122.477228, - 37.809552 - ], - [ - -122.477207, - 37.809448 - ], - [ - -122.477181, - 37.809343 - ], - [ - -122.47715, - 37.809246 - ], - [ - -122.477114, - 37.809147 - ], - [ - -122.477065, - 37.809038 - ], - [ - -122.477004, - 37.808917 - ], - [ - -122.476942, - 37.808807 - ], - [ - -122.476872, - 37.808697 - ], - [ - -122.476798, - 37.808594 - ], - [ - -122.476717, - 37.808491 - ], - [ - -122.476619, - 37.808379 - ], - [ - -122.476521, - 37.808278 - ], - [ - -122.476411, - 37.808171 - ], - [ - -122.476341, - 37.808107 - ], - [ - -122.476291, - 37.808067 - ], - [ - -122.47622, - 37.80802 - ], - [ - -122.476148, - 37.807973 - ], - [ - -122.476079, - 37.807932 - ], - [ - -122.476003, - 37.807887 - ], - [ - -122.47597, - 37.807874 - ], - [ - -122.475937, - 37.807863 - ], - [ - -122.475914, - 37.807857 - ], - [ - -122.475894, - 37.807848 - ], - [ - -122.475871, - 37.807841 - ] - ], - "type": "LineString" - }, - "mode": "cycling", - "duration": 688.4999999999999, - "maneuver": { - "bearing_after": 157, - "type": "turn", - "modifier": "slight right", - "bearing_before": 129, - "location": [ - -122.480678, - 37.832456 - ], - "instruction": "Make a slight right onto Golden Gate Bridge" - }, - "weight": 688.4999999999999, - "distance": 2810.8, - "name": "Golden Gate Bridge" - }, - { - "intersections": [ - { - "out": 0, - "location": [ - -122.475871, - 37.807841 - ], - "bearings": [ - 60, - 135, - 300, - 330 - ], - "entry": [ - true, - true, - false, - true - ], - "in": 2 - }, - { - "out": 1, - "location": [ - -122.475456, - 37.807778 - ], - "bearings": [ - 45, - 135, - 225, - 315 - ], - "entry": [ - true, - true, - true, - false - ], - "in": 3 - }, - { - "out": 1, - "location": [ - -122.475237, - 37.807655 - ], - "bearings": [ - 0, - 120, - 165, - 300 - ], - "entry": [ - true, - true, - true, - false - ], - "in": 3 - }, - { - "out": 1, - "location": [ - -122.475214, - 37.807644 - ], - "bearings": [ - 45, - 135, - 300 - ], - "entry": [ - true, - true, - false - ], - "in": 2 - }, - { - "out": 1, - "location": [ - -122.47505, - 37.807514 - ], - "bearings": [ - 45, - 135, - 225, - 315 - ], - "entry": [ - true, - true, - true, - false - ], - "in": 3 - } - ], - "geometry": { - "coordinates": [ - [ - -122.475871, - 37.807841 - ], - [ - -122.475764, - 37.807886 - ], - [ - -122.47573, - 37.8079 - ], - [ - -122.475695, - 37.807906 - ], - [ - -122.475661, - 37.807905 - ], - [ - -122.475625, - 37.807898 - ], - [ - -122.475588, - 37.807883 - ], - [ - -122.475556, - 37.807859 - ], - [ - -122.475507, - 37.807818 - ], - [ - -122.475456, - 37.807778 - ], - [ - -122.475403, - 37.807742 - ], - [ - -122.475344, - 37.807708 - ], - [ - -122.47528, - 37.807675 - ], - [ - -122.475237, - 37.807655 - ], - [ - -122.475214, - 37.807644 - ], - [ - -122.475169, - 37.807618 - ], - [ - -122.475124, - 37.807582 - ], - [ - -122.475068, - 37.807531 - ], - [ - -122.47505, - 37.807514 - ], - [ - -122.475021, - 37.807486 - ] - ], - "type": "LineString" - }, - "mode": "cycling", - "duration": 46.2, - "maneuver": { - "bearing_after": 61, - "type": "turn", - "modifier": "left", - "bearing_before": 112, - "location": [ - -122.475871, - 37.807841 - ], - "instruction": "Turn left" - }, - "weight": 46.2, - "distance": 94.1, - "name": "" - }, - { - "intersections": [ - { - "out": 1, - "location": [ - -122.475021, - 37.807486 - ], - "bearings": [ - 45, - 225, - 315 - ], - "entry": [ - true, - true, - false - ], - "in": 2 - }, - { - "out": 1, - "location": [ - -122.475563, - 37.806469 - ], - "bearings": [ - 45, - 135, - 315 - ], - "entry": [ - true, - true, - false - ], - "in": 2 - }, - { - "out": 1, - "location": [ - -122.475492, - 37.806403 - ], - "bearings": [ - 60, - 135, - 225, - 315 - ], - "entry": [ - true, - true, - true, - false - ], - "in": 3 - } - ], - "geometry": { - "coordinates": [ - [ - -122.475021, - 37.807486 - ], - [ - -122.475136, - 37.807409 - ], - [ - -122.475626, - 37.807076 - ], - [ - -122.475679, - 37.807035 - ], - [ - -122.475724, - 37.806994 - ], - [ - -122.475871, - 37.806845 - ], - [ - -122.475888, - 37.806825 - ], - [ - -122.475896, - 37.806801 - ], - [ - -122.475892, - 37.806775 - ], - [ - -122.475563, - 37.806469 - ], - [ - -122.475492, - 37.806403 - ], - [ - -122.475419, - 37.806334 - ] - ], - "type": "LineString" - }, - "mode": "cycling", - "duration": 46.3, - "maneuver": { - "bearing_after": 227, - "type": "end of road", - "modifier": "right", - "bearing_before": 140, - "location": [ - -122.475021, - 37.807486 - ], - "instruction": "Turn right" - }, - "weight": 46.3, - "distance": 176.3, - "name": "" - }, - { - "intersections": [ - { - "out": 0, - "location": [ - -122.475419, - 37.806334 - ], - "bearings": [ - 225, - 315 - ], - "entry": [ - true, - false - ], - "in": 1 - }, - { - "out": 1, - "location": [ - -122.475585, - 37.806217 - ], - "bearings": [ - 45, - 225, - 315 - ], - "entry": [ - false, - true, - true - ], - "in": 0 - }, - { - "out": 1, - "location": [ - -122.475745, - 37.806094 - ], - "bearings": [ - 45, - 210, - 315 - ], - "entry": [ - false, - true, - true - ], - "in": 0 - }, - { - "out": 2, - "location": [ - -122.475782, - 37.806049 - ], - "bearings": [ - 30, - 150, - 195, - 300 - ], - "entry": [ - false, - true, - true, - true - ], - "in": 0 - }, - { - "out": 1, - "location": [ - -122.475831, - 37.805932 - ], - "bearings": [ - 15, - 195, - 315 - ], - "entry": [ - false, - true, - true - ], - "in": 0 - }, - { - "out": 2, - "location": [ - -122.47585, - 37.80582 - ], - "bearings": [ - 15, - 90, - 195 - ], - "entry": [ - false, - true, - true - ], - "in": 0 - }, - { - "out": 1, - "location": [ - -122.475912, - 37.805645 - ], - "bearings": [ - 15, - 210, - 300 - ], - "entry": [ - false, - true, - true - ], - "in": 0 - }, - { - "out": 1, - "location": [ - -122.476167, - 37.805264 - ], - "bearings": [ - 30, - 210, - 300 - ], - "entry": [ - false, - true, - true - ], - "in": 0 - }, - { - "out": 0, - "location": [ - -122.476272, - 37.804755 - ], - "bearings": [ - 165, - 255, - 345 - ], - "entry": [ - true, - true, - false - ], - "in": 2 - }, - { - "out": 1, - "location": [ - -122.475781, - 37.804417 - ], - "bearings": [ - 0, - 90, - 180, - 270 - ], - "entry": [ - true, - true, - true, - false - ], - "in": 3 - } - ], - "geometry": { - "coordinates": [ - [ - -122.475419, - 37.806334 - ], - [ - -122.475585, - 37.806217 - ], - [ - -122.475646, - 37.806174 - ], - [ - -122.475701, - 37.806133 - ], - [ - -122.475745, - 37.806094 - ], - [ - -122.475782, - 37.806049 - ], - [ - -122.475805, - 37.806011 - ], - [ - -122.475821, - 37.805972 - ], - [ - -122.475831, - 37.805932 - ], - [ - -122.47585, - 37.80582 - ], - [ - -122.475854, - 37.805797 - ], - [ - -122.475867, - 37.80575 - ], - [ - -122.475886, - 37.805698 - ], - [ - -122.475912, - 37.805645 - ], - [ - -122.475942, - 37.80559 - ], - [ - -122.475977, - 37.805534 - ], - [ - -122.476167, - 37.805264 - ], - [ - -122.476239, - 37.805161 - ], - [ - -122.476265, - 37.805119 - ], - [ - -122.476285, - 37.805072 - ], - [ - -122.476297, - 37.805023 - ], - [ - -122.476304, - 37.804974 - ], - [ - -122.476306, - 37.804914 - ], - [ - -122.4763, - 37.804852 - ], - [ - -122.476288, - 37.804803 - ], - [ - -122.476272, - 37.804755 - ], - [ - -122.476247, - 37.804702 - ], - [ - -122.476215, - 37.804648 - ], - [ - -122.47618, - 37.804603 - ], - [ - -122.476132, - 37.804556 - ], - [ - -122.476079, - 37.804512 - ], - [ - -122.476024, - 37.804476 - ], - [ - -122.475971, - 37.804452 - ], - [ - -122.475916, - 37.804435 - ], - [ - -122.475859, - 37.804423 - ], - [ - -122.475812, - 37.804418 - ], - [ - -122.475781, - 37.804417 - ], - [ - -122.475661, - 37.804415 - ] - ], - "type": "LineString" - }, - "mode": "cycling", - "duration": 69.2, - "maneuver": { - "bearing_after": 227, - "type": "turn", - "modifier": "right", - "bearing_before": 139, - "location": [ - -122.475419, - 37.806334 - ], - "instruction": "Turn right onto Merchant Road" - }, - "weight": 69.2, - "distance": 271, - "name": "Merchant Road" - }, - { - "intersections": [ - { - "out": 2, - "location": [ - -122.475661, - 37.804415 - ], - "bearings": [ - 0, - 90, - 180, - 270 - ], - "entry": [ - true, - true, - true, - false - ], - "in": 3 - }, - { - "out": 2, - "location": [ - -122.475663, - 37.804326 - ], - "bearings": [ - 0, - 90, - 180, - 270 - ], - "entry": [ - false, - true, - true, - true - ], - "in": 0 - }, - { - "out": 2, - "location": [ - -122.475707, - 37.803909 - ], - "bearings": [ - 0, - 90, - 195 - ], - "entry": [ - false, - true, - true - ], - "in": 0 - }, - { - "out": 2, - "location": [ - -122.475822, - 37.803634 - ], - "bearings": [ - 15, - 120, - 210 - ], - "entry": [ - false, - true, - true - ], - "in": 0 - }, - { - "out": 2, - "location": [ - -122.476091, - 37.803207 - ], - "bearings": [ - 30, - 120, - 210, - 300 - ], - "entry": [ - false, - true, - true, - true - ], - "in": 0 - }, - { - "out": 2, - "location": [ - -122.476147, - 37.80312 - ], - "bearings": [ - 30, - 90, - 210, - 300 - ], - "entry": [ - false, - true, - true, - true - ], - "in": 0 - }, - { - "out": 2, - "location": [ - -122.476509, - 37.802554 - ], - "bearings": [ - 30, - 120, - 210 - ], - "entry": [ - false, - true, - true - ], - "in": 0 - }, - { - "out": 2, - "location": [ - -122.478116, - 37.800389 - ], - "bearings": [ - 30, - 135, - 210, - 300 - ], - "entry": [ - false, - true, - true, - true - ], - "in": 0 - }, - { - "out": 2, - "location": [ - -122.478155, - 37.800335 - ], - "bearings": [ - 30, - 135, - 210 - ], - "entry": [ - false, - true, - true - ], - "in": 0 - }, - { - "out": 2, - "location": [ - -122.478703, - 37.79881 - ], - "bearings": [ - 15, - 120, - 195 - ], - "entry": [ - false, - true, - true - ], - "in": 0 - }, - { - "out": 2, - "location": [ - -122.478931, - 37.79831 - ], - "bearings": [ - 15, - 30, - 180 - ], - "entry": [ - false, - true, - true - ], - "in": 0 - }, - { - "out": 2, - "location": [ - -122.479473, - 37.796505 - ], - "bearings": [ - 30, - 120, - 195, - 285 - ], - "entry": [ - false, - true, - true, - true - ], - "in": 0 - }, - { - "out": 1, - "location": [ - -122.480281, - 37.795423 - ], - "bearings": [ - 60, - 225, - 330 - ], - "entry": [ - false, - true, - true - ], - "in": 0 - }, - { - "out": 2, - "location": [ - -122.480423, - 37.794299 - ], - "bearings": [ - 0, - 90, - 180 - ], - "entry": [ - false, - true, - true - ], - "in": 0 - }, - { - "out": 2, - "location": [ - -122.480728, - 37.793394 - ], - "bearings": [ - 30, - 120, - 210 - ], - "entry": [ - false, - true, - true - ], - "in": 0 - }, - { - "out": 2, - "location": [ - -122.481019, - 37.792332 - ], - "bearings": [ - 0, - 90, - 195, - 225 - ], - "entry": [ - false, - true, - true, - true - ], - "in": 0 - }, - { - "out": 2, - "location": [ - -122.48157, - 37.790689 - ], - "bearings": [ - 15, - 105, - 195 - ], - "entry": [ - false, - true, - true - ], - "in": 0 - } - ], - "geometry": { - "coordinates": [ - [ - -122.475661, - 37.804415 - ], - [ - -122.475663, - 37.804326 - ], - [ - -122.475665, - 37.804193 - ], - [ - -122.475668, - 37.804126 - ], - [ - -122.475677, - 37.804052 - ], - [ - -122.475689, - 37.803981 - ], - [ - -122.475707, - 37.803909 - ], - [ - -122.475729, - 37.803839 - ], - [ - -122.475755, - 37.80377 - ], - [ - -122.475785, - 37.803702 - ], - [ - -122.475822, - 37.803634 - ], - [ - -122.475869, - 37.803555 - ], - [ - -122.475916, - 37.80348 - ], - [ - -122.475934, - 37.803453 - ], - [ - -122.476046, - 37.803277 - ], - [ - -122.476091, - 37.803207 - ], - [ - -122.476147, - 37.80312 - ], - [ - -122.476509, - 37.802554 - ], - [ - -122.476581, - 37.802445 - ], - [ - -122.476651, - 37.802344 - ], - [ - -122.476716, - 37.802259 - ], - [ - -122.476771, - 37.802197 - ], - [ - -122.476838, - 37.802134 - ], - [ - -122.476907, - 37.802075 - ], - [ - -122.476995, - 37.802008 - ], - [ - -122.477076, - 37.801945 - ], - [ - -122.477142, - 37.801887 - ], - [ - -122.477201, - 37.80183 - ], - [ - -122.477255, - 37.801772 - ], - [ - -122.477298, - 37.801715 - ], - [ - -122.477345, - 37.801647 - ], - [ - -122.477386, - 37.801578 - ], - [ - -122.477424, - 37.801503 - ], - [ - -122.477457, - 37.801425 - ], - [ - -122.477558, - 37.801179 - ], - [ - -122.477599, - 37.801089 - ], - [ - -122.477635, - 37.80102 - ], - [ - -122.477673, - 37.800955 - ], - [ - -122.477714, - 37.80089 - ], - [ - -122.477762, - 37.80082 - ], - [ - -122.477809, - 37.800758 - ], - [ - -122.477875, - 37.800675 - ], - [ - -122.47805, - 37.800471 - ], - [ - -122.478101, - 37.800408 - ], - [ - -122.478116, - 37.800389 - ], - [ - -122.478155, - 37.800335 - ], - [ - -122.478209, - 37.800254 - ], - [ - -122.478237, - 37.800197 - ], - [ - -122.478263, - 37.800135 - ], - [ - -122.478282, - 37.800073 - ], - [ - -122.478297, - 37.800003 - ], - [ - -122.478305, - 37.799926 - ], - [ - -122.478309, - 37.799846 - ], - [ - -122.478316, - 37.799769 - ], - [ - -122.478325, - 37.79969 - ], - [ - -122.478339, - 37.799615 - ], - [ - -122.478359, - 37.799538 - ], - [ - -122.478382, - 37.799462 - ], - [ - -122.478407, - 37.799389 - ], - [ - -122.478435, - 37.799319 - ], - [ - -122.47847, - 37.799248 - ], - [ - -122.478634, - 37.798942 - ], - [ - -122.478703, - 37.79881 - ], - [ - -122.478881, - 37.798448 - ], - [ - -122.478899, - 37.798404 - ], - [ - -122.478917, - 37.798357 - ], - [ - -122.478931, - 37.79831 - ], - [ - -122.47894, - 37.798254 - ], - [ - -122.478941, - 37.798208 - ], - [ - -122.478935, - 37.79816 - ], - [ - -122.478922, - 37.79811 - ], - [ - -122.478905, - 37.798062 - ], - [ - -122.47882, - 37.797849 - ], - [ - -122.478771, - 37.797742 - ], - [ - -122.478719, - 37.79764 - ], - [ - -122.478629, - 37.797493 - ], - [ - -122.478607, - 37.797408 - ], - [ - -122.478612, - 37.797321 - ], - [ - -122.478636, - 37.797242 - ], - [ - -122.47869, - 37.79716 - ], - [ - -122.478803, - 37.797086 - ], - [ - -122.47912, - 37.796943 - ], - [ - -122.479224, - 37.796885 - ], - [ - -122.479282, - 37.796831 - ], - [ - -122.479349, - 37.796735 - ], - [ - -122.479473, - 37.796505 - ], - [ - -122.479517, - 37.79641 - ], - [ - -122.479633, - 37.796139 - ], - [ - -122.479667, - 37.796021 - ], - [ - -122.479699, - 37.795858 - ], - [ - -122.479715, - 37.795804 - ], - [ - -122.479742, - 37.79575 - ], - [ - -122.479778, - 37.795702 - ], - [ - -122.479838, - 37.795655 - ], - [ - -122.480061, - 37.795539 - ], - [ - -122.480199, - 37.795469 - ], - [ - -122.480281, - 37.795423 - ], - [ - -122.480374, - 37.795365 - ], - [ - -122.480435, - 37.795314 - ], - [ - -122.480471, - 37.795265 - ], - [ - -122.480498, - 37.795221 - ], - [ - -122.480515, - 37.79517 - ], - [ - -122.480527, - 37.795111 - ], - [ - -122.480525, - 37.795012 - ], - [ - -122.480423, - 37.794299 - ], - [ - -122.480415, - 37.794184 - ], - [ - -122.48042, - 37.794066 - ], - [ - -122.480443, - 37.793942 - ], - [ - -122.480474, - 37.793837 - ], - [ - -122.480522, - 37.793726 - ], - [ - -122.480623, - 37.793561 - ], - [ - -122.480728, - 37.793394 - ], - [ - -122.480794, - 37.793299 - ], - [ - -122.480847, - 37.793192 - ], - [ - -122.480884, - 37.793108 - ], - [ - -122.480907, - 37.793023 - ], - [ - -122.48095, - 37.79285 - ], - [ - -122.480982, - 37.792588 - ], - [ - -122.481019, - 37.792332 - ], - [ - -122.481083, - 37.792137 - ], - [ - -122.481191, - 37.791809 - ], - [ - -122.48157, - 37.790689 - ], - [ - -122.482014, - 37.789377 - ], - [ - -122.482059, - 37.789245 - ], - [ - -122.482089, - 37.789161 - ], - [ - -122.482118, - 37.789086 - ], - [ - -122.482152, - 37.789009 - ], - [ - -122.482197, - 37.788921 - ], - [ - -122.482251, - 37.788832 - ], - [ - -122.482314, - 37.788733 - ] - ], - "type": "LineString" - }, - "mode": "cycling", - "duration": 459.40000000000003, - "maneuver": { - "bearing_after": 180, - "type": "turn", - "modifier": "right", - "bearing_before": 90, - "location": [ - -122.475661, - 37.804415 - ], - "instruction": "Turn right onto Lincoln Boulevard" - }, - "weight": 459.40000000000003, - "distance": 1913.7, - "name": "Lincoln Boulevard" - }, - { - "intersections": [ - { - "out": 2, - "location": [ - -122.482314, - 37.788733 - ], - "bearings": [ - 30, - 135, - 210, - 330 - ], - "entry": [ - false, - true, - true, - true - ], - "in": 0 - } - ], - "geometry": { - "coordinates": [ - [ - -122.482314, - 37.788733 - ], - [ - -122.482379, - 37.788643 - ], - [ - -122.482439, - 37.788568 - ], - [ - -122.4825, - 37.788496 - ], - [ - -122.48257, - 37.788419 - ], - [ - -122.482644, - 37.788346 - ], - [ - -122.482731, - 37.788269 - ], - [ - -122.482827, - 37.788196 - ], - [ - -122.482923, - 37.78813 - ], - [ - -122.483031, - 37.788063 - ], - [ - -122.483144, - 37.787999 - ], - [ - -122.483254, - 37.787944 - ], - [ - -122.483371, - 37.787891 - ], - [ - -122.483493, - 37.787843 - ], - [ - -122.483611, - 37.787802 - ], - [ - -122.483736, - 37.787765 - ], - [ - -122.483869, - 37.787731 - ], - [ - -122.483998, - 37.787704 - ], - [ - -122.484138, - 37.787683 - ], - [ - -122.484274, - 37.787668 - ], - [ - -122.484407, - 37.787657 - ], - [ - -122.484559, - 37.787649 + false ], - [ - -122.484711, - 37.787642 + "location": [ + -122.479837, + 37.852492 ], - [ - -122.485295, - 37.787616 + "bearings": [ + 0, + 180, + 330 ] - ], - "type": "LineString" - }, + } + ], + "geometry": "aa`fF~ypjV|AGJ?dA?NF", + "duration": 25.9, + "distance": 107.9, + "name": "Atwood Avenue", + "weight": 25.9, "mode": "cycling", - "duration": 82, "maneuver": { - "bearing_after": 213, - "type": "new name", - "modifier": "straight", - "bearing_before": 202, + "bearing_after": 175, "location": [ - -122.482314, - 37.788733 + -122.479837, + 37.852492 ], - "instruction": "Continue straight onto El Camino del Mar" - }, - "weight": 82, - "distance": 307.5, - "name": "El Camino del Mar" + "type": "new name", + "bearing_before": 153, + "modifier": "slight right", + "instruction": "Fortsätt med lätt högersväng in på Atwood Avenue" + } }, { "intersections": [ { - "out": 2, - "location": [ - -122.485295, - 37.787616 - ], - "bearings": [ - 0, - 90, - 180, - 270 - ], + "out": 1, + "in": 0, "entry": [ - true, false, true, true ], - "in": 1 - }, - { - "out": 2, "location": [ - -122.48516, - 37.785754 + -122.47984, + 37.851529 ], "bearings": [ - 0, - 90, - 180, - 270 - ], + 15, + 195, + 225 + ] + }, + { + "out": 1, + "in": 0, "entry": [ false, - true, - true, true ], - "in": 0 - }, - { - "out": 2, "location": [ - -122.485026, - 37.78389 + -122.48013, + 37.850828 ], "bearings": [ - 0, - 90, - 180, + 30, 270 - ], + ] + } + ], + "geometry": "a{_fF~ypjVl@Jj@P^LPL?xB", + "duration": 42.7, + "distance": 135.7, + "name": "Josephine Street", + "weight": 42.7, + "mode": "cycling", + "maneuver": { + "bearing_after": 191, + "location": [ + -122.47984, + 37.851529 + ], + "type": "fork", + "bearing_before": 199, + "modifier": "slight left", + "instruction": "Håll till vänster in på Josephine Street" + } + }, + { + "intersections": [ + { + "out": 1, + "in": 0, "entry": [ false, true, - true, true ], - "in": 0 - }, - { - "out": 2, "location": [ - -122.484891, - 37.782022 + -122.480735, + 37.85083 ], "bearings": [ - 0, 90, 180, 270 - ], + ] + } + ], + "geometry": "uv_fFr_qjVfA?", + "duration": 24.1, + "distance": 40.2, + "name": "2nd Street Path", + "weight": 24.1, + "mode": "pushing bike", + "maneuver": { + "bearing_after": 180, + "location": [ + -122.480735, + 37.85083 + ], + "type": "turn", + "bearing_before": 270, + "modifier": "left", + "instruction": "Sväng vänster in på 2nd Street Path" + } + }, + { + "intersections": [ + { + "out": 1, + "in": 0, "entry": [ false, - true, - true, true ], - "in": 0 - }, - { - "out": 2, "location": [ - -122.484756, - 37.780162 + -122.480738, + 37.850469 ], "bearings": [ 0, - 90, - 180, - 270 - ], + 180 + ] + }, + { + "out": 2, + "in": 0, "entry": [ false, true, true, true ], - "in": 0 - }, - { - "out": 2, "location": [ - -122.484747, - 37.780035 + -122.480741, + 37.849874 ], "bearings": [ 0, 90, 180, 270 - ], + ] + }, + { + "out": 2, + "in": 0, "entry": [ false, true, true, true ], - "in": 0 - }, - { - "out": 2, "location": [ - -122.484612, - 37.778173 + -122.480763, + 37.848915 ], "bearings": [ 0, 90, 180, 270 - ], + ] + }, + { + "out": 2, + "in": 0, "entry": [ false, true, true, true ], - "in": 0 - }, - { - "out": 2, "location": [ - -122.484477, - 37.776306 + -122.480795, + 37.847947 ], "bearings": [ 0, 90, 180, 270 - ], + ] + }, + { + "out": 1, + "in": 0, "entry": [ false, true, - true, true ], - "in": 0 - }, - { - "out": 2, "location": [ - -122.484343, - 37.77444 + -122.480806, + 37.847291 ], "bearings": [ 0, - 90, - 180, + 165, 270 - ], - "entry": [ - false, - true, - true, - true - ], - "in": 0 + ] } ], - "geometry": { - "coordinates": [ - [ - -122.485295, - 37.787616 - ], - [ - -122.48516, - 37.785754 - ], - [ - -122.485026, - 37.78389 - ], - [ - -122.485008, - 37.783642 - ], - [ - -122.48491, - 37.782292 - ], - [ - -122.484891, - 37.782022 - ], - [ - -122.484868, - 37.781714 - ], - [ - -122.484862, - 37.781631 - ], - [ - -122.48478, - 37.780497 - ], - [ - -122.484756, - 37.780162 - ], - [ - -122.484747, - 37.780035 - ], - [ - -122.484729, - 37.779786 - ], - [ - -122.484631, - 37.778425 - ], - [ - -122.484612, - 37.778173 - ], - [ - -122.484594, - 37.777924 - ], - [ - -122.484495, - 37.776554 - ], - [ - -122.484477, - 37.776306 - ], - [ - -122.48446, - 37.776064 - ], - [ - -122.484361, - 37.774695 - ], - [ - -122.484343, - 37.77444 - ], - [ - -122.484324, - 37.774186 - ], - [ - -122.484208, - 37.772572 - ] - ], - "type": "LineString" - }, + "geometry": "mt_fFr_qjVvB?v@@Z?hB@~AB`BBbC@r@O", + "duration": 94.3, + "distance": 383.3, + "name": "2nd Street", + "weight": 126.9, "mode": "cycling", - "duration": 421.0999999999999, "maneuver": { - "bearing_after": 175, - "type": "turn", - "modifier": "left", - "bearing_before": 265, + "bearing_after": 180, "location": [ - -122.485295, - 37.787616 + -122.480738, + 37.850469 ], - "instruction": "Turn left onto 25th Avenue" - }, - "weight": 421.0999999999999, - "distance": 1676, - "name": "25th Avenue" + "type": "notification", + "bearing_before": 180, + "modifier": "straight", + "instruction": "Fortsätt rakt fram på 2nd Street" + } }, { "intersections": [ { - "out": 3, - "location": [ - -122.484208, - 37.772572 - ], - "bearings": [ - 0, - 90, - 150, - 225, - 270 - ], + "out": 0, + "in": 2, "entry": [ - false, - true, true, true, - true + false ], - "in": 0 - }, - { - "out": 0, "location": [ - -122.484141, - 37.772159 + -122.480732, + 37.84703 ], "bearings": [ - 150, - 225, - 330 - ], - "entry": [ - true, - true, - false - ], - "in": 2 + 120, + 240, + 345 + ] } ], - "geometry": { - "coordinates": [ - [ - -122.484208, - 37.772572 - ], - [ - -122.484237, - 37.772544 - ], - [ - -122.484255, - 37.772514 - ], - [ - -122.484259, - 37.772482 - ], - [ - -122.484253, - 37.77242 - ], - [ - -122.48424, - 37.772361 - ], - [ - -122.484216, - 37.772293 - ], - [ - -122.484185, - 37.772226 - ], - [ - -122.484141, - 37.772159 - ], - [ - -122.484087, - 37.772101 - ], - [ - -122.484012, - 37.77204 - ], - [ - -122.483931, - 37.771989 - ], - [ - -122.483846, - 37.771951 - ], - [ - -122.483753, - 37.771921 - ], - [ - -122.483657, - 37.7719 - ], - [ - -122.483554, - 37.771889 - ], - [ - -122.483449, - 37.77189 - ], - [ - -122.483046, - 37.771903 - ], - [ - -122.482886, - 37.771908 - ], - [ - -122.482701, - 37.771907 - ], - [ - -122.482539, - 37.771903 - ] - ], - "type": "LineString" - }, + "geometry": "}~~eFp_qjVHS@WAsB?_DDe@", + "duration": 38.4, + "distance": 159.4, + "name": "South Street", + "weight": 54.8, "mode": "cycling", - "duration": 48.199999999999996, "maneuver": { - "bearing_after": 217, - "type": "turn", - "modifier": "slight right", - "bearing_before": 175, + "bearing_after": 119, "location": [ - -122.484208, - 37.772572 + -122.480732, + 37.84703 ], - "instruction": "Make a slight right onto Crossover Drive" - }, - "weight": 48.199999999999996, - "distance": 200.2, - "name": "Crossover Drive" + "type": "new name", + "bearing_before": 167, + "modifier": "left", + "instruction": "Fortsätt vänster på South Street" + } }, { "intersections": [ { - "out": 1, - "location": [ - -122.482539, - 37.771903 - ], - "bearings": [ - 90, - 105, - 270 - ], + "out": 0, + "in": 1, "entry": [ - true, true, false ], - "in": 2 - }, - { - "out": 0, "location": [ - -122.481514, - 37.771622 + -122.478939, + 37.84695 ], "bearings": [ - 115, - 293, - 297 - ], - "entry": [ - true, - false, - true - ], - "in": 1 + 120, + 285 + ] }, { - "out": 1, - "location": [ - -122.481251, - 37.771523 - ], - "bearings": [ - 45, - 120, - 225, - 300 - ], + "out": 0, + "in": 2, "entry": [ - true, true, true, false ], - "in": 3 - }, - { - "out": 1, "location": [ - -122.480007, - 37.770587 + -122.478183, + 37.846227 ], "bearings": [ - 75, - 150, - 255, + 165, + 285, 330 - ], + ] + }, + { + "out": 2, + "in": 0, "entry": [ + false, true, - true, - true, - false + true ], - "in": 3 - }, - { - "out": 1, "location": [ - -122.479924, - 37.770497 + -122.477854, + 37.84467 ], "bearings": [ - 60, - 150, - 240, - 330 - ], - "entry": [ - true, - true, - true, - false - ], - "in": 3 + 0, + 135, + 195 + ] }, { "out": 1, - "location": [ - -122.479837, - 37.770393 - ], - "bearings": [ - 60, - 150, - 240, - 330 - ], + "in": 0, "entry": [ + false, true, - true, - true, - false + true ], - "in": 3 - }, - { - "out": 0, "location": [ - -122.479533, - 37.769947 + -122.478008, + 37.844211 ], "bearings": [ - 150, - 270, - 330 - ], - "entry": [ - true, - true, - false - ], - "in": 2 + 15, + 195, + 240 + ] }, { "out": 1, - "location": [ - -122.479666, - 37.767777 - ], - "bearings": [ - 15, - 165, - 315 - ], + "in": 0, "entry": [ false, true, true ], - "in": 0 - }, - { - "out": 1, "location": [ - -122.478514, - 37.766168 + -122.483029, + 37.838117 ], "bearings": [ - 120, - 135, - 315 - ], + 0, + 180, + 195 + ] + }, + { + "out": 1, + "in": 0, "entry": [ + false, true, - true, - false - ], - "in": 2 - } - ], - "geometry": { - "coordinates": [ - [ - -122.482539, - 37.771903 - ], - [ - -122.482356, - 37.771874 - ], - [ - -122.482275, - 37.771859 - ], - [ - -122.482198, - 37.771842 - ], - [ - -122.482114, - 37.771819 - ], - [ - -122.482029, - 37.771793 - ], - [ - -122.48178, - 37.7717 - ], - [ - -122.481683, - 37.771669 - ], - [ - -122.481605, - 37.771646 - ], - [ - -122.481514, - 37.771622 - ], - [ - -122.481251, - 37.771523 - ], - [ - -122.481143, - 37.771484 - ], - [ - -122.481027, - 37.771438 - ], - [ - -122.480915, - 37.771388 - ], - [ - -122.480822, - 37.771341 - ], - [ - -122.480749, - 37.771302 - ], - [ - -122.480675, - 37.77126 - ], - [ - -122.480613, - 37.771223 - ], - [ - -122.480552, - 37.77118 - ], - [ - -122.480495, - 37.771134 - ], - [ - -122.480433, - 37.771078 - ], - [ - -122.480381, - 37.771027 - ], - [ - -122.480325, - 37.770967 - ], - [ - -122.480271, - 37.770907 - ], - [ - -122.480217, - 37.770843 - ], - [ - -122.480028, - 37.770612 - ], - [ - -122.480007, - 37.770587 - ], - [ - -122.479924, - 37.770497 - ], - [ - -122.479872, - 37.770438 - ], - [ - -122.479837, - 37.770393 - ], - [ - -122.479744, - 37.770259 - ], - [ - -122.479658, - 37.77013 - ], - [ - -122.479533, - 37.769947 - ], - [ - -122.479403, - 37.769761 - ], - [ - -122.479352, - 37.769685 - ], - [ - -122.479302, - 37.769604 - ], - [ - -122.479256, - 37.769528 - ], - [ - -122.47921, - 37.769448 - ], - [ - -122.479167, - 37.769367 - ], - [ - -122.479132, - 37.769284 - ], - [ - -122.479109, - 37.76921 - ], - [ - -122.479093, - 37.769137 - ], - [ - -122.479082, - 37.769061 - ], - [ - -122.479082, - 37.768992 - ], - [ - -122.479086, - 37.768928 - ], - [ - -122.479098, - 37.768866 - ], - [ - -122.479119, - 37.768791 - ], - [ - -122.479147, - 37.768718 - ], - [ - -122.479181, - 37.768645 - ], - [ - -122.479228, - 37.768559 - ], - [ - -122.479276, - 37.768478 - ], - [ - -122.479568, - 37.768012 - ], - [ - -122.479609, - 37.767945 - ], - [ - -122.479637, - 37.767891 - ], - [ - -122.479657, - 37.767835 - ], - [ - -122.479666, - 37.767777 - ], - [ - -122.479662, - 37.767721 - ], - [ - -122.479649, - 37.767663 - ], - [ - -122.479626, - 37.767609 - ], - [ - -122.479584, - 37.767532 - ], - [ - -122.47951, - 37.767405 - ], - [ - -122.479438, - 37.767285 - ], - [ - -122.479377, - 37.767185 - ], - [ - -122.479312, - 37.767089 - ], - [ - -122.479241, - 37.766988 - ], - [ - -122.479157, - 37.766869 - ], - [ - -122.479073, - 37.76676 - ], - [ - -122.478985, - 37.766649 - ], - [ - -122.478879, - 37.766525 - ], - [ - -122.47882, - 37.766453 - ], - [ - -122.478767, - 37.766392 - ], - [ - -122.478718, - 37.766339 - ], - [ - -122.478663, - 37.766288 - ], - [ - -122.478597, - 37.766232 - ], - [ - -122.478514, - 37.766168 - ], - [ - -122.478369, - 37.766065 - ], - [ - -122.478347, - 37.766046 + true ], - [ - -122.478328, - 37.766022 + "location": [ + -122.483009, + 37.837461 ], - [ - -122.478312, - 37.765997 + "bearings": [ + 0, + 180, + 345 ] - ], - "type": "LineString" - }, + } + ], + "geometry": "m~~eFjtpjVJ]fBgBZQj@Sp@OvAW`CEzA^z@Rv@Tn@Hn@Bx@I|@]hAc@dAc@v@Wp@Gv@@bAVn@\\`@`@`@r@Zz@J^D`@Bp@@r@ExG@x@D|@Ft@Lh@Ph@Xh@Xd@j@f@l@^j@Rp@H`A?x@?hACn@Cv@Ld@Nf@X^Xd@p@Vl@", + "duration": 398.5, + "distance": 1626.5, + "name": "Alexander Avenue", + "weight": 566.2, "mode": "cycling", - "duration": 205.59999999999997, "maneuver": { - "bearing_after": 101, - "type": "turn", - "modifier": "slight right", - "bearing_before": 91, + "bearing_after": 116, "location": [ - -122.482539, - 37.771903 + -122.478939, + 37.84695 ], - "instruction": "Make a slight right" - }, - "weight": 205.59999999999997, - "distance": 853, - "name": "" + "type": "new name", + "bearing_before": 102, + "modifier": "straight", + "instruction": "Fortsätt rakt fram på Alexander Avenue" + } }, { "intersections": [ { "out": 1, - "location": [ - -122.478312, - 37.765997 - ], - "bearings": [ - 75, - 165, - 255, - 315 - ], + "in": 0, "entry": [ + false, true, - true, - true, - false + true ], - "in": 3 - } - ], - "geometry": { - "coordinates": [ - [ - -122.478312, - 37.765997 + "location": [ + -122.483877, + 37.836082 ], - [ - -122.478275, - 37.765925 + "bearings": [ + 60, + 150, + 240 ] - ], - "type": "LineString" - }, + } + ], + "geometry": "oz|eFfsqjVf@_@DEn@X\\DbA?t@In@Sx@k@VS`@g@x@oAp@kA^aAJ[BI@i@", + "duration": 100.1, + "distance": 414.7, + "name": "", + "weight": 100.1, "mode": "cycling", - "duration": 7.3, "maneuver": { - "bearing_after": 157, - "type": "turn", - "modifier": "slight right", - "bearing_before": 136, + "bearing_after": 147, "location": [ - -122.478312, - 37.765997 + -122.483877, + 37.836082 ], - "instruction": "Make a slight right onto Transverse Drive" - }, - "weight": 7.3, - "distance": 8.6, - "name": "Transverse Drive" + "type": "turn", + "bearing_before": 236, + "modifier": "left", + "instruction": "Sväng vänster" + } }, { "intersections": [ { "out": 1, - "location": [ - -122.478275, - 37.765925 - ], - "bearings": [ - 75, - 255, - 345 - ], + "in": 2, "entry": [ true, true, false ], - "in": 2 - } - ], - "geometry": { - "coordinates": [ - [ - -122.478275, - 37.765925 + "location": [ + -122.481669, + 37.833237 ], - [ - -122.478392, - 37.765905 + "bearings": [ + 30, + 75, + 270 ] - ], - "type": "LineString" - }, + } + ], + "geometry": "wh|eFleqjVAKAGIKEMCO@u@Dk@", + "duration": 23.3, + "distance": 74.6, + "name": "", + "weight": 23.3, "mode": "cycling", - "duration": 13.1, "maneuver": { - "bearing_after": 257, - "type": "turn", - "modifier": "right", - "bearing_before": 157, + "bearing_after": 70, "location": [ - -122.478275, - 37.765925 + -122.481669, + 37.833237 ], - "instruction": "Turn right onto Martin Luther King Jr Drive" - }, - "weight": 13.1, - "distance": 10.5, - "name": "Martin Luther King Jr Drive" + "type": "turn", + "bearing_before": 92, + "modifier": "slight left", + "instruction": "Sväng åt lätt vänster" + } }, { "intersections": [ { "out": 1, + "in": 2, + "entry": [ + true, + true, + false + ], "location": [ - -122.478392, - 37.765905 + -122.480867, + 37.833322 ], "bearings": [ - 75, - 150, - 255, - 330 - ], + 90, + 195, + 285 + ] + }, + { + "out": 2, + "in": 0, "entry": [ false, true, - true, true ], - "in": 0 - } - ], - "geometry": { - "coordinates": [ - [ - -122.478392, - 37.765905 - ], - [ - -122.478362, - 37.76585 - ] - ], - "type": "LineString" - }, - "mode": "pushing bike", - "duration": 4.1, - "maneuver": { - "bearing_after": 156, - "type": "turn", - "modifier": "left", - "bearing_before": 257, - "location": [ - -122.478392, - 37.765905 - ], - "instruction": "Turn left" - }, - "weight": 4.1, - "distance": 6.7, - "name": "" - }, - { - "intersections": [ - { - "out": 0, "location": [ - -122.478362, - 37.76585 + -122.480895, + 37.833264 ], "bearings": [ - 180, - 330 - ], - "entry": [ - true, - false - ], - "in": 1 + 15, + 105, + 210 + ] }, { "out": 2, - "location": [ - -122.478348, - 37.76571 - ], - "bearings": [ - 0, - 60, - 180, - 255 - ], + "in": 0, "entry": [ false, true, - true, true ], - "in": 0 - } - ], - "geometry": { - "coordinates": [ - [ - -122.478362, - 37.76585 - ], - [ - -122.478348, - 37.76571 - ], - [ - -122.478321, - 37.765504 + "location": [ + -122.481008, + 37.833106 ], - [ - -122.478412, - 37.765499 + "bearings": [ + 30, + 135, + 225 ] - ], - "type": "LineString" - }, + } + ], + "geometry": "gi|eFl`qjVJDD@RJBFFF", + "duration": 9.100000000000001, + "distance": 32.4, + "name": "", + "weight": 9.100000000000001, "mode": "cycling", - "duration": 17.4, "maneuver": { - "bearing_after": 174, - "type": "notification", - "modifier": "slight right", - "bearing_before": 156, + "bearing_after": 199, "location": [ - -122.478362, - 37.76585 + -122.480867, + 37.833322 ], - "instruction": "Continue slight right" - }, - "weight": 17.4, - "distance": 46.7, - "name": "" + "type": "turn", + "bearing_before": 98, + "modifier": "right", + "instruction": "Sväng höger" + } }, { "intersections": [ { - "out": 1, - "location": [ - -122.478412, - 37.765499 - ], - "bearings": [ - 90, - 195 - ], + "out": 2, + "in": 0, "entry": [ false, + true, true ], - "in": 0 - } - ], - "geometry": { - "coordinates": [ - [ - -122.478412, - 37.765499 - ], - [ - -122.478422, - 37.765439 - ] - ], - "type": "LineString" - }, - "mode": "pushing bike", - "duration": 9.2, - "maneuver": { - "bearing_after": 187, - "type": "notification", - "modifier": "left", - "bearing_before": 265, - "location": [ - -122.478412, - 37.765499 - ], - "instruction": "Continue left" - }, - "weight": 9.2, - "distance": 6.7, - "name": "" - }, - { - "intersections": [ - { - "out": 1, "location": [ - -122.478422, - 37.765439 + -122.481045, + 37.833071 ], "bearings": [ - 15, - 120, - 195, - 270 - ], + 45, + 165, + 180 + ] + }, + { + "out": 0, + "in": 1, "entry": [ - false, - true, true, + false, true ], - "in": 0 - } - ], - "geometry": { - "coordinates": [ - [ - -122.478422, - 37.765439 - ], - [ - -122.478391, - 37.765431 - ], - [ - -122.478364, - 37.765421 + "location": [ + -122.480678, + 37.832456 ], - [ - -122.47834, - 37.765407 + "bearings": [ + 165, + 315, + 330 ] - ], - "type": "LineString" - }, - "mode": "pushing bike", - "duration": 8.9, + } + ], + "geometry": "ug|eFpaqjVJBJGj@g@DAPBHCNQBIJCJI", + "duration": 23.3, + "distance": 95.7, + "name": "", + "weight": 23.3, + "mode": "cycling", "maneuver": { - "bearing_after": 115, - "type": "turn", - "modifier": "left", - "bearing_before": 187, + "bearing_after": 182, "location": [ - -122.478422, - 37.765439 + -122.481045, + 37.833071 ], - "instruction": "Turn left onto Lincoln Way" - }, - "weight": 8.9, - "distance": 8.1, - "name": "Lincoln Way" + "type": "turn", + "bearing_before": 219, + "modifier": "slight left", + "instruction": "Sväng åt lätt vänster" + } }, { "intersections": [ { "out": 1, - "location": [ - -122.47834, - 37.765407 - ], - "bearings": [ - 90, - 180, - 240, - 300 - ], + "in": 3, "entry": [ true, true, true, false ], - "in": 3 - }, - { - "out": 1, "location": [ - -122.478246, - 37.763931 + -122.480608, + 37.83234 ], "bearings": [ - 0, - 180, - 270 - ], - "entry": [ - false, - true, - true - ], - "in": 0 + 45, + 135, + 255, + 330 + ] }, { - "out": 2, - "location": [ - -122.478218, - 37.763525 - ], - "bearings": [ - 0, - 90, - 180, - 270 - ], + "out": 1, + "in": 2, "entry": [ - false, true, true, - true + false ], - "in": 0 - }, - { - "out": 2, "location": [ - -122.478088, - 37.761659 + -122.476341, + 37.808107 ], "bearings": [ - 0, - 90, - 180, - 270 - ], + 45, + 135, + 315 + ] + }, + { + "out": 2, + "in": 3, "entry": [ - false, true, true, - true + true, + false ], - "in": 0 - }, - { - "out": 2, "location": [ - -122.477957, - 37.759793 + -122.476291, + 37.808067 ], "bearings": [ - 0, - 90, - 180, - 270 - ], + 30, + 60, + 135, + 315 + ] + }, + { + "out": 1, + "in": 2, "entry": [ - false, true, true, + false, true ], - "in": 0 - }, - { - "out": 2, "location": [ - -122.477827, - 37.757929 + -122.475937, + 37.807863 ], "bearings": [ - 0, - 90, - 180, - 270 - ], + 75, + 120, + 300, + 330 + ] + } + ], + "geometry": "cc|eFx~pjVJMVUTSVQVQZQXMXKXIXIXIZEZEZC^CZC~_CcNTARCTEPERGTGVMTKTMTMROTSRSTUJMFIHMHMFMFOBE@E?E@C@C", + "duration": 684.9999999999999, + "distance": 2796.4, + "name": "Golden Gate Bridge", + "weight": 684.9999999999999, + "mode": "cycling", + "maneuver": { + "bearing_after": 139, + "location": [ + -122.480608, + 37.83234 + ], + "type": "turn", + "bearing_before": 149, + "modifier": "slight right", + "instruction": "Sväng åt lätt höger in på Golden Gate Bridge" + } + }, + { + "intersections": [ + { + "out": 0, + "in": 2, "entry": [ - false, true, true, + false, true ], - "in": 0 - }, - { - "out": 2, "location": [ - -122.477743, - 37.756724 + -122.475871, + 37.807841 ], "bearings": [ - 0, - 90, - 180 - ], + 60, + 135, + 300, + 330 + ] + }, + { + "out": 1, + "in": 3, "entry": [ - false, true, - true + true, + true, + false ], - "in": 0 - }, - { - "out": 2, "location": [ - -122.477697, - 37.756066 + -122.475456, + 37.807778 ], "bearings": [ - 0, - 90, - 180, - 270 - ], + 45, + 135, + 225, + 315 + ] + }, + { + "out": 1, + "in": 3, "entry": [ - false, true, true, - true + true, + false ], - "in": 0 - }, - { - "out": 2, "location": [ - -122.477635, - 37.755175 + -122.475237, + 37.807655 ], "bearings": [ 0, - 90, - 180 - ], + 120, + 165, + 300 + ] + }, + { + "out": 1, + "in": 2, "entry": [ - false, true, - true + true, + false ], - "in": 0 - }, - { - "out": 2, "location": [ - -122.477566, - 37.754195 + -122.475214, + 37.807644 ], "bearings": [ - 0, - 90, - 180, - 270 - ], + 45, + 135, + 300 + ] + }, + { + "out": 1, + "in": 3, "entry": [ - false, true, true, - true + true, + false ], - "in": 0 - }, - { - "out": 2, "location": [ - -122.477436, - 37.752331 + -122.47505, + 37.807514 ], "bearings": [ - 0, - 90, - 180, - 270 - ], + 45, + 135, + 225, + 315 + ] + } + ], + "geometry": "_jweFdapjVIUAEAE?G@EBGBEFIFIFKDKDKBGBEBGFIHIBCBE", + "duration": 46.199999999999996, + "distance": 94.1, + "name": "", + "weight": 46.199999999999996, + "mode": "cycling", + "maneuver": { + "bearing_after": 61, + "location": [ + -122.475871, + 37.807841 + ], + "type": "turn", + "bearing_before": 112, + "modifier": "left", + "instruction": "Sväng vänster" + } + }, + { + "intersections": [ + { + "out": 1, + "in": 2, "entry": [ - false, true, true, - true + false ], - "in": 0 - }, - { - "out": 2, "location": [ - -122.477306, - 37.75047 + -122.475021, + 37.807486 ], "bearings": [ - 0, - 90, - 180, - 270 - ], + 45, + 225, + 315 + ] + }, + { + "out": 1, + "in": 2, "entry": [ - false, true, true, - true + false ], - "in": 0 - }, - { - "out": 2, "location": [ - -122.477176, - 37.748604 + -122.475563, + 37.806469 ], "bearings": [ - 0, - 90, - 180, - 270 - ], + 45, + 135, + 315 + ] + }, + { + "out": 1, + "in": 3, "entry": [ - false, true, true, - true + true, + false ], - "in": 0 - }, - { - "out": 2, "location": [ - -122.477046, - 37.746738 + -122.475492, + 37.806403 ], "bearings": [ - 0, - 90, - 180, - 270 - ], + 60, + 135, + 225, + 315 + ] + } + ], + "geometry": "ygweFz{ojVNV`A`BFHHFZ\\BBD@BA|@aALMLM", + "duration": 46.3, + "distance": 176.3, + "name": "", + "weight": 46.3, + "mode": "cycling", + "maneuver": { + "bearing_after": 227, + "location": [ + -122.475021, + 37.807486 + ], + "type": "end of road", + "bearing_before": 140, + "modifier": "right", + "instruction": "Sväng höger" + } + }, + { + "intersections": [ + { + "out": 0, + "in": 1, "entry": [ - false, true, - true, - true + false ], - "in": 0 - }, - { - "out": 2, "location": [ - -122.476915, - 37.744871 + -122.475419, + 37.806334 ], "bearings": [ - 0, - 90, - 180, - 270 - ], + 225, + 315 + ] + } + ], + "geometry": "q`weFj~ojVT`@HJFHFHFDFDF@F@TBB?HBHBHBJDJFt@d@RLFDHBH@H?J@JAHAFCJCHEHGFIHIDKDI@IBK?I?E?W", + "duration": 69.2, + "distance": 271, + "name": "Merchant Road", + "weight": 97.8, + "mode": "cycling", + "maneuver": { + "bearing_after": 227, + "location": [ + -122.475419, + 37.806334 + ], + "type": "new name", + "bearing_before": 139, + "modifier": "right", + "instruction": "Fortsätt höger på Merchant Road" + } + }, + { + "intersections": [ + { + "out": 2, + "in": 3, "entry": [ - false, true, true, - true + true, + false ], - "in": 0 - }, - { - "out": 2, "location": [ - -122.476785, - 37.743008 + -122.475661, + 37.804415 ], "bearings": [ 0, 90, 180, 270 - ], - "entry": [ - false, - true, - true, - true - ], - "in": 0 + ] }, { "out": 2, - "location": [ - -122.476655, - 37.741143 - ], - "bearings": [ - 0, - 90, - 180, - 270 - ], + "in": 0, "entry": [ false, true, - true, true ], - "in": 0 - }, - { - "out": 3, "location": [ - -122.476525, - 37.739278 + -122.475707, + 37.803909 ], "bearings": [ 0, 90, - 135, - 180, - 270 - ], - "entry": [ - false, - true, - true, - true, - true - ], - "in": 0 + 195 + ] } ], - "geometry": { - "coordinates": [ - [ - -122.47834, - 37.765407 - ], - [ - -122.478342, - 37.765299 - ], - [ - -122.478246, - 37.763931 - ], - [ - -122.478244, - 37.763895 - ], - [ - -122.478218, - 37.763525 - ], - [ - -122.478089, - 37.761673 - ], - [ - -122.478088, - 37.761659 - ], - [ - -122.478087, - 37.761645 - ], - [ - -122.477957, - 37.759793 - ], - [ - -122.477827, - 37.757929 - ], - [ - -122.477815, - 37.757753 - ], - [ - -122.477743, - 37.756724 - ], - [ - -122.477697, - 37.756066 - ], - [ - -122.477635, - 37.755175 - ], - [ - -122.477566, - 37.754195 - ], - [ - -122.477436, - 37.752331 - ], - [ - -122.477306, - 37.75047 - ], - [ - -122.477176, - 37.748604 - ], - [ - -122.477046, - 37.746738 - ], - [ - -122.476915, - 37.744871 - ], - [ - -122.476785, - 37.743008 - ], - [ - -122.476655, - 37.741143 - ], - [ - -122.476525, - 37.739278 - ], - [ - -122.476395, - 37.737416 - ] - ], - "type": "LineString" - }, + "geometry": "stveFz_pjVP?Z@J?N@L@LBLBLDLDLD", + "duration": 28, + "distance": 88.8, + "name": "Lincoln Boulevard", + "weight": 37, "mode": "cycling", - "duration": 756.7999999999998, "maneuver": { - "bearing_after": 177, - "type": "turn", - "modifier": "right", - "bearing_before": 115, + "bearing_after": 180, "location": [ - -122.47834, - 37.765407 + -122.475661, + 37.804415 ], - "instruction": "Turn right onto 20th Avenue" - }, - "weight": 756.7999999999998, - "distance": 3118.1, - "name": "20th Avenue" + "type": "turn", + "bearing_before": 90, + "modifier": "right", + "instruction": "Sväng höger in på Lincoln Boulevard" + } }, { "intersections": [ { "out": 1, + "in": 0, + "entry": [ + false, + true, + true + ], "location": [ - -122.476395, - 37.737416 + -122.475822, + 37.803634 ], "bearings": [ - 0, - 90, - 180, - 270 - ], + 15, + 120, + 210 + ] + }, + { + "out": 1, + "in": 0, "entry": [ false, true, - true, true ], - "in": 0 - } - ], - "geometry": { - "coordinates": [ - [ - -122.476395, - 37.737416 + "location": [ + -122.475569, + 37.803258 ], - [ - -122.475376, - 37.737459 + "bearings": [ + 0, + 180, + 270 ] - ], - "type": "LineString" - }, + } + ], + "geometry": "uoveFz`pjVNg@LIj@?lE?lB?f@FhAPvABd@Ib@Q\\_@R]Pw@", + "duration": 112.5, + "distance": 450.8, + "name": "Ralston Avenue", + "weight": 112.5, "mode": "cycling", - "duration": 27.9, "maneuver": { - "bearing_after": 85, - "type": "turn", - "modifier": "left", - "bearing_before": 175, + "bearing_after": 118, "location": [ - -122.476395, - 37.737416 + -122.475822, + 37.803634 ], - "instruction": "Turn left onto Wawona Street" - }, - "weight": 27.9, - "distance": 89.8, - "name": "Wawona Street" + "type": "turn", + "bearing_before": 198, + "modifier": "left", + "instruction": "Sväng vänster in på Ralston Avenue" + } }, { "intersections": [ { "out": 2, + "in": 3, + "entry": [ + true, + true, + true, + false + ], "location": [ - -122.475376, - 37.737459 + -122.474991, + 37.799961 ], "bearings": [ - 0, - 90, - 180, - 270 - ], + 15, + 105, + 210, + 285 + ] + }, + { + "out": 1, + "in": 2, "entry": [ - false, true, true, false ], - "in": 3 - }, + "location": [ + -122.47501, + 37.799198 + ], + "bearings": [ + 90, + 165, + 345 + ] + } + ], + "geometry": "wxueFt{ojVXNb@J^Ax@UREp@U", + "duration": 38.3, + "distance": 129.3, + "name": "Greenough Avenue", + "weight": 38.3, + "mode": "cycling", + "maneuver": { + "bearing_after": 202, + "location": [ + -122.474991, + 37.799961 + ], + "type": "turn", + "bearing_before": 111, + "modifier": "right", + "instruction": "Sväng höger in på Greenough Avenue" + } + }, + { + "intersections": [ { "out": 1, + "in": 2, + "entry": [ + true, + true, + false + ], "location": [ - -122.475309, - 37.73601 + -122.474869, + 37.798848 ], "bearings": [ - 0, - 180, - 270 - ], + 120, + 285, + 345 + ] + } + ], + "geometry": "yqueF|zojV[tE", + "duration": 29.9, + "distance": 95.3, + "name": "Kobbe Avenue", + "weight": 29.9, + "mode": "cycling", + "maneuver": { + "bearing_after": 278, + "location": [ + -122.474869, + 37.798848 + ], + "type": "turn", + "bearing_before": 161, + "modifier": "right", + "instruction": "Sväng höger in på Kobbe Avenue" + } + }, + { + "intersections": [ + { + "out": 1, + "in": 0, "entry": [ false, true, true ], - "in": 0 - }, - { - "out": 2, "location": [ - -122.47523, - 37.734812 + -122.475938, + 37.798994 ], "bearings": [ - 0, - 90, - 165, - 240 - ], + 105, + 195, + 300 + ] + }, + { + "out": 2, + "in": 0, "entry": [ false, true, - true, true ], - "in": 0 - }, - { - "out": 1, "location": [ - -122.475215, - 37.734722 + -122.476159, + 37.798541 ], "bearings": [ - 90, - 165, - 270, - 345 - ], + 30, + 105, + 195 + ] + } + ], + "geometry": "urueFrapjV^Jx@^bBn@jA`@DDDFFJ", + "duration": 44.5, + "distance": 174.4, + "name": "Harrison Boulevard", + "weight": 44.5, + "mode": "cycling", + "maneuver": { + "bearing_after": 196, + "location": [ + -122.475938, + 37.798994 + ], + "type": "turn", + "bearing_before": 278, + "modifier": "left", + "instruction": "Sväng vänster in på Harrison Boulevard" + } + }, + { + "intersections": [ + { + "out": 2, + "in": 0, "entry": [ + false, true, true, - true, - false + true ], - "in": 3 - }, - { - "out": 1, "location": [ - -122.475187, - 37.734558 + -122.476697, + 37.797558 ], "bearings": [ - 90, - 165, - 270, + 45, + 120, + 180, 345 - ], + ] + }, + { + "out": 1, + "in": 2, "entry": [ - true, true, true, false ], - "in": 3 - }, - { - "out": 1, "location": [ - -122.475172, - 37.734474 + -122.475859, + 37.794251 ], "bearings": [ - 90, + 15, 180, - 285, - 345 - ], + 315 + ] + } + ], + "geometry": "wiueFjfpjVJAJ@XB\\HZLTPNJfAhAh@n@LJLFHBF?L?LALATITIROn@q@lAsBd@o@tAuBV?b@Q\\SP]Fk@", + "duration": 138.1, + "distance": 552.7, + "name": "Washington Boulevard", + "weight": 195, + "mode": "cycling", + "maneuver": { + "bearing_after": 175, + "location": [ + -122.476697, + 37.797558 + ], + "type": "turn", + "bearing_before": 226, + "modifier": "left", + "instruction": "Sväng vänster in på Washington Boulevard" + } + }, + { + "intersections": [ + { + "out": 1, + "in": 2, "entry": [ - true, true, true, false ], - "in": 3 - }, - { - "out": 2, "location": [ - -122.475021, - 37.732488 + -122.475302, + 37.793666 ], "bearings": [ - 0, - 120, + 75, 180, - 300 - ], + 285 + ] + }, + { + "out": 2, + "in": 0, "entry": [ false, true, - true, true ], - "in": 0 - } - ], - "geometry": { - "coordinates": [ - [ - -122.475376, - 37.737459 - ], - [ - -122.475375, - 37.737369 - ], - [ - -122.475366, - 37.737053 - ], - [ - -122.475361, - 37.73692 - ], - [ - -122.475355, - 37.736785 - ], - [ - -122.475347, - 37.736659 - ], - [ - -122.475309, - 37.73601 - ], - [ - -122.47524, - 37.734908 - ], - [ - -122.47523, - 37.734812 - ], - [ - -122.475215, - 37.734722 - ], - [ - -122.475187, - 37.734558 - ], - [ - -122.475172, - 37.734474 - ], - [ - -122.475166, - 37.734429 - ], - [ - -122.475021, - 37.732488 + "location": [ + -122.475749, + 37.790063 ], - [ - -122.47493, - 37.731084 + "bearings": [ + 0, + 90, + 180 ] - ], - "type": "LineString" - }, + } + ], + "geometry": "mqteFr}ojVtAFh@BT?RATADADAVCnCg@HAJAJ?H?J@HBJBJDHDt@b@`Aj@JFHDJBHBHBH@H?v@BD?F?D?VA", + "duration": 106.3, + "distance": 441.2, + "name": "Battery Caulfield Road", + "weight": 106.3, "mode": "cycling", - "duration": 183.00000000000003, "maneuver": { - "bearing_after": 178, - "type": "turn", - "modifier": "right", - "bearing_before": 85, + "bearing_after": 184, "location": [ - -122.475376, - 37.737459 + -122.475302, + 37.793666 ], - "instruction": "Turn right onto 19th Avenue (CA 1)" - }, - "ref": "CA 1", - "weight": 183.00000000000003, - "distance": 710.3, - "name": "19th Avenue (CA 1)" + "type": "turn", + "bearing_before": 105, + "modifier": "right", + "instruction": "Sväng höger in på Battery Caulfield Road" + } }, { "intersections": [ { - "out": 3, - "location": [ - -122.47493, - 37.731084 - ], - "bearings": [ - 0, - 90, - 180, - 270 - ], + "out": 2, + "in": 0, "entry": [ false, true, - true, true ], - "in": 0 - }, - { - "out": 2, "location": [ - -122.475481, - 37.731081 + -122.475735, + 37.789836 ], "bearings": [ 0, 90, - 270 - ], + 180 + ] + }, + { + "out": 1, + "in": 3, "entry": [ true, - false, - true - ], - "in": 1 - } - ], - "geometry": { - "coordinates": [ - [ - -122.47493, - 37.731084 - ], - [ - -122.475031, - 37.731077 - ], - [ - -122.475481, - 37.731081 - ], - [ - -122.475855, - 37.731084 + true, + true, + false ], - [ - -122.475902, - 37.731088 + "location": [ + -122.475586, + 37.788624 ], - [ - -122.475951, - 37.731099 + "bearings": [ + 30, + 150, + 240, + 345 ] - ], - "type": "LineString" - }, + } + ], + "geometry": "oyseFj`pjVpDQB?D?D?@?RAFAHCHCFGJEVQVOh@[FEFCDEDEDIBGDI@K@I@K?I?GAE?M", + "duration": 69.8, + "distance": 271.5, + "name": "Wedemeyer Street", + "weight": 69.8, "mode": "cycling", - "duration": 27, "maneuver": { - "bearing_after": 268, - "type": "turn", - "modifier": "right", - "bearing_before": 175, + "bearing_after": 174, "location": [ - -122.47493, - 37.731084 + -122.475735, + 37.789836 ], - "instruction": "Turn right onto Eucalyptus Drive" - }, - "weight": 27, - "distance": 90, - "name": "Eucalyptus Drive" + "type": "turn", + "bearing_before": 172, + "modifier": "straight", + "instruction": "Kör rakt fram in på Wedemeyer Street" + } }, { "intersections": [ { - "out": 3, + "out": 2, + "in": 3, + "entry": [ + true, + true, + true, + false + ], "location": [ - -122.475951, - 37.731099 + -122.474596, + 37.787833 ], "bearings": [ 0, 90, - 165, - 195, + 180, 270 - ], - "entry": [ - true, - false, - true, - true, - true - ], - "in": 1 + ] } ], - "geometry": { - "coordinates": [ - [ - -122.475951, - 37.731099 - ], - [ - -122.475973, - 37.731075 - ], - [ - -122.475989, - 37.731034 - ], - [ - -122.475998, - 37.730234 - ], - [ - -122.475982, - 37.730197 - ], - [ - -122.475965, - 37.730157 - ] - ], - "type": "LineString" - }, + "geometry": "}lseFfyojVPAJAH?HC`@ILCFCF?HAT?NA", + "duration": 22.1, + "distance": 92.3, + "name": "North 15th Avenue", + "weight": 22.1, "mode": "cycling", - "duration": 31.3, "maneuver": { - "bearing_after": 199, - "type": "turn", - "modifier": "left", - "bearing_before": 271, + "bearing_after": 175, "location": [ - -122.475951, - 37.731099 + -122.474596, + 37.787833 ], - "instruction": "Turn left onto 20th Avenue" - }, - "weight": 31.3, - "distance": 106.1, - "name": "20th Avenue" + "type": "turn", + "bearing_before": 82, + "modifier": "right", + "instruction": "Sväng höger in på North 15th Avenue" + } }, { "intersections": [ { - "out": 2, + "out": 1, + "in": 0, + "entry": [ + false, + true + ], "location": [ - -122.475965, - 37.730157 + -122.474451, + 37.787015 ], "bearings": [ - 15, - 180, - 270, - 345 - ], + 0, + 180 + ] + }, + { + "out": 2, + "in": 0, "entry": [ + false, true, true, - true, - false + true + ], + "location": [ + -122.474395, + 37.786241 ], - "in": 3 + "bearings": [ + 0, + 90, + 180, + 270 + ] }, { "out": 2, + "in": 0, + "entry": [ + false, + true, + true, + true + ], "location": [ - -122.477355, - 37.730142 + -122.474261, + 37.784379 ], "bearings": [ + 0, 90, 180, 270 - ], + ] + }, + { + "out": 2, + "in": 0, "entry": [ false, true, + true, true ], - "in": 0 - } - ], - "geometry": { - "coordinates": [ - [ - -122.475965, - 37.730157 - ], - [ - -122.476088, - 37.73016 - ], - [ - -122.476729, - 37.730146 - ], - [ - -122.477076, - 37.730143 - ], - [ - -122.477355, - 37.730142 - ], - [ - -122.478156, - 37.730152 - ], - [ - -122.478245, - 37.730148 - ], - [ - -122.478324, - 37.730132 - ], - [ - -122.478401, - 37.730102 + "location": [ + -122.474126, + 37.782514 ], - [ - -122.478476, - 37.730059 + "bearings": [ + 0, + 90, + 180, + 270 + ] + }, + { + "out": 1, + "in": 0, + "entry": [ + false, + true, + true ], - [ - -122.478525, - 37.730014 + "location": [ + -122.474076, + 37.781821 ], - [ - -122.47855, - 37.729977 + "bearings": [ + 0, + 180, + 270 ] - ], - "type": "LineString" - }, - "mode": "cycling", - "duration": 59.1, - "maneuver": { - "bearing_after": 268, - "type": "turn", - "modifier": "right", - "bearing_before": 163, - "location": [ - -122.475965, - 37.730157 - ], - "instruction": "Turn right onto Buckingham Way" - }, - "weight": 59.1, - "distance": 234.8, - "name": "Buckingham Way" - }, - { - "intersections": [ + }, { - "out": 3, + "out": 2, + "in": 0, + "entry": [ + false, + true, + true, + true + ], "location": [ - -122.47855, - 37.729977 + -122.473992, + 37.78065 ], "bearings": [ 0, - 30, - 195, - 285 - ], + 90, + 180, + 270 + ] + }, + { + "out": 2, + "in": 0, "entry": [ - true, false, true, + true, true ], - "in": 1 - }, - { - "out": 2, "location": [ - -122.478701, - 37.730005 + -122.473983, + 37.780527 ], "bearings": [ 0, - 105, + 90, + 180, 270 - ], + ] + }, + { + "out": 2, + "in": 0, "entry": [ - true, false, + true, + true, true ], - "in": 1 - }, - { - "out": 2, "location": [ - -122.478766, - 37.730002 + -122.473849, + 37.778663 ], "bearings": [ + 0, 90, 180, 270 - ], + ] + }, + { + "out": 2, + "in": 0, "entry": [ false, true, + true, true ], - "in": 0 - }, - { - "out": 2, "location": [ - -122.478884, - 37.729995 + -122.473714, + 37.776794 ], "bearings": [ 0, 90, + 180, 270 - ], - "entry": [ - true, - false, - true - ], - "in": 1 + ] } ], - "geometry": { - "coordinates": [ - [ - -122.47855, - 37.729977 - ], - [ - -122.478658, - 37.730007 - ], - [ - -122.478701, - 37.730005 - ], - [ - -122.478766, - 37.730002 - ], - [ - -122.478884, - 37.729995 - ], - [ - -122.479081, - 37.729985 - ] - ], - "type": "LineString" - }, + "geometry": "{gseFhxojVdCIT?TA|IYtJYhCIpCKvAEVAtJYtJ[rJY", + "duration": 331.20000000000005, + "distance": 1346.3, + "name": "15th Avenue", + "weight": 331.20000000000005, "mode": "cycling", - "duration": 15.9, "maneuver": { - "bearing_after": 288, - "type": "continue", - "modifier": "right", - "bearing_before": 213, + "bearing_after": 175, "location": [ - -122.47855, - 37.729977 + -122.474451, + 37.787015 ], - "instruction": "Continue right" - }, - "weight": 15.9, - "distance": 47.4, - "name": "" + "type": "new name", + "bearing_before": 177, + "modifier": "straight", + "instruction": "Fortsätt rakt fram på 15th Avenue" + } }, { "intersections": [ { - "out": 0, + "out": 3, + "in": 0, + "entry": [ + false, + true, + true, + true + ], "location": [ - -122.479081, - 37.729985 + -122.47358, + 37.77493 ], "bearings": [ 0, 90, + 180, 270 - ], + ] + }, + { + "out": 3, + "in": 1, "entry": [ true, false, + true, true ], - "in": 1 - } - ], - "geometry": { - "coordinates": [ - [ - -122.479081, - 37.729985 + "location": [ + -122.474704, + 37.774879 ], - [ - -122.479088, - 37.730109 + "bearings": [ + 0, + 90, + 180, + 270 ] - ], - "type": "LineString" - }, - "mode": "cycling", - "duration": 12.2, - "maneuver": { - "bearing_after": 357, - "type": "turn", - "modifier": "right", - "bearing_before": 265, - "location": [ - -122.479081, - 37.729985 - ], - "instruction": "Turn right" - }, - "weight": 12.2, - "distance": 13.8, - "name": "" - }, - { - "intersections": [ + }, { - "out": 2, + "out": 3, + "in": 1, + "entry": [ + true, + false, + true, + true + ], "location": [ - -122.479088, - 37.730109 + -122.475774, + 37.77483 ], "bearings": [ 0, + 90, 180, 270 - ], + ] + }, + { + "out": 3, + "in": 1, "entry": [ true, false, + true, true ], - "in": 1 - } - ], - "geometry": { - "coordinates": [ - [ - -122.479088, - 37.730109 + "location": [ + -122.476847, + 37.774781 ], - [ - -122.480005, - 37.730039 + "bearings": [ + 0, + 90, + 180, + 270 ] - ], - "type": "LineString" - }, - "mode": "cycling", - "duration": 19.5, - "maneuver": { - "bearing_after": 264, - "type": "turn", - "modifier": "left", - "bearing_before": 357, - "location": [ - -122.479088, - 37.730109 - ], - "instruction": "Turn left" - }, - "weight": 19.5, - "distance": 81, - "name": "" - }, - { - "intersections": [ + }, { - "in": 0, + "out": 3, + "in": 1, "entry": [ + true, + false, + true, true ], + "location": [ + -122.477916, + 37.774733 + ], "bearings": [ - 84 + 0, + 90, + 180, + 270 + ] + }, + { + "out": 3, + "in": 1, + "entry": [ + true, + false, + true, + true ], "location": [ - -122.480005, - 37.730039 + -122.478987, + 37.774684 + ], + "bearings": [ + 0, + 90, + 180, + 270 ] } ], - "geometry": { - "coordinates": [ - [ - -122.480005, - 37.730039 - ], - [ - -122.480005, - 37.730039 - ] - ], - "type": "LineString" - }, + "geometry": "i|peFzrojVH~EHtEHvEHtEHtEFtE", + "duration": 145.20000000000002, + "distance": 570.5, + "name": "Cabrillo Street", + "weight": 145.20000000000002, "mode": "cycling", - "duration": 0, "maneuver": { - "bearing_after": 0, + "bearing_after": 265, "location": [ - -122.480005, - 37.730039 + -122.47358, + 37.77493 ], - "bearing_before": 264, - "type": "arrive", - "instruction": "You have arrived at your destination" - }, - "weight": 0, - "distance": 0, - "name": "" - } - ], - "distance": 36506.6, - "duration": 12410.7, - "summary": "San Francisco - Larkspur Ferry, Mill Valley - Sausalito Path", - "weight": 12410.7 - }, - { - "steps": [ + "type": "turn", + "bearing_before": 175, + "modifier": "right", + "instruction": "Sväng höger in på Cabrillo Street" + } + }, { "intersections": [ { - "out": 0, + "out": 2, + "in": 1, "entry": [ + true, + false, + true, true ], - "bearings": [ - 84 - ], "location": [ - -122.480005, - 37.730039 - ] - } - ], - "geometry": { - "coordinates": [ - [ - -122.480005, - 37.730039 + -122.480058, + 37.774635 ], - [ - -122.479088, - 37.730109 - ] - ], - "type": "LineString" - }, + "bearings": [ + 0, + 90, + 180, + 270 + ] + } + ], + "geometry": "ozpeFj{pjVtJ[", + "duration": 54.1, + "distance": 208.1, + "name": "21st Avenue", + "weight": 54.1, "mode": "cycling", - "duration": 24, "maneuver": { - "bearing_after": 84, + "bearing_after": 175, "location": [ - -122.480005, - 37.730039 + -122.480058, + 37.774635 ], - "bearing_before": 0, - "type": "depart", - "instruction": "Head east" - }, - "weight": 24, - "distance": 81, - "name": "" + "type": "turn", + "bearing_before": 265, + "modifier": "left", + "instruction": "Sväng vänster in på 21st Avenue" + } }, { "intersections": [ { - "out": 1, + "out": 2, + "in": 0, + "entry": [ + false, + true, + true + ], "location": [ - -122.479088, - 37.730109 + -122.479923, + 37.772767 ], "bearings": [ 0, - 180, + 90, 270 - ], - "entry": [ - true, - true, - false - ], - "in": 2 + ] } ], - "geometry": { - "coordinates": [ - [ - -122.479088, - 37.730109 - ], - [ - -122.479081, - 37.729985 - ] - ], - "type": "LineString" - }, + "geometry": "ynpeFnzpjVF`D", + "duration": 26, + "distance": 71, + "name": "Fulton Street", + "weight": 33.3, "mode": "cycling", - "duration": 11.9, "maneuver": { - "bearing_after": 177, - "type": "turn", - "modifier": "right", - "bearing_before": 84, + "bearing_after": 265, "location": [ - -122.479088, - 37.730109 + -122.479923, + 37.772767 ], - "instruction": "Turn right" - }, - "weight": 11.9, - "distance": 13.8, - "name": "" + "type": "turn", + "bearing_before": 175, + "modifier": "right", + "instruction": "Sväng höger in på Fulton Street" + } }, { "intersections": [ { "out": 1, + "in": 0, + "entry": [ + false, + true, + true + ], "location": [ - -122.479081, - 37.729985 + -122.480729, + 37.77273 ], "bearings": [ - 0, 90, + 180, 270 - ], + ] + }, + { + "out": 2, + "in": 0, "entry": [ false, true, true ], - "in": 0 - }, - { - "out": 1, "location": [ - -122.478884, - 37.729995 + -122.48096, + 37.77193 ], "bearings": [ - 0, - 90, - 270 - ], + 30, + 75, + 195 + ] + }, + { + "out": 2, + "in": 0, "entry": [ + false, true, true, - false + true ], - "in": 2 - }, - { - "out": 0, "location": [ - -122.478766, - 37.730002 + -122.480992, + 37.771862 ], "bearings": [ + 15, 90, - 180, + 195, 270 - ], + ] + }, + { + "out": 2, + "in": 0, "entry": [ + false, true, true, - false + true ], - "in": 2 - }, - { - "out": 1, "location": [ - -122.478701, - 37.730005 + -122.481034, + 37.771773 ], "bearings": [ - 0, - 105, + 15, + 90, + 210, 270 - ], - "entry": [ - true, - true, - false - ], - "in": 2 + ] } ], - "geometry": { - "coordinates": [ - [ - -122.479081, - 37.729985 - ], - [ - -122.478884, - 37.729995 - ], - [ - -122.478766, - 37.730002 - ], - [ - -122.478701, - 37.730005 - ], - [ - -122.478658, - 37.730007 - ], - [ - -122.47855, - 37.729977 - ] - ], - "type": "LineString" - }, + "geometry": "qnpeFp_qjVz@GF?D@D@z@d@HFHBB@HBPFFBHFFFHDDFFH", + "duration": 47.2, + "distance": 147.3, + "name": "", + "weight": 47.2, "mode": "cycling", - "duration": 15.1, "maneuver": { - "bearing_after": 85, - "type": "turn", - "modifier": "left", - "bearing_before": 177, + "bearing_after": 172, "location": [ - -122.479081, - 37.729985 + -122.480729, + 37.77273 ], - "instruction": "Turn left" - }, - "weight": 15.1, - "distance": 47.4, - "name": "" + "type": "turn", + "bearing_before": 265, + "modifier": "left", + "instruction": "Sväng vänster" + } }, { "intersections": [ { - "out": 2, + "out": 1, + "in": 0, + "entry": [ + false, + true, + true, + true + ], "location": [ - -122.47855, - 37.729977 + -122.481251, + 37.771523 ], "bearings": [ - 0, - 30, - 195, - 285 - ], + 45, + 120, + 225, + 300 + ] + }, + { + "out": 1, + "in": 3, "entry": [ true, true, true, false ], - "in": 3 - }, - { - "out": 1, "location": [ - -122.478591, - 37.729818 + -122.479924, + 37.770497 ], "bearings": [ - 15, - 180, - 270 - ], + 60, + 150, + 240, + 330 + ] + }, + { + "out": 1, + "in": 0, "entry": [ false, true, true ], - "in": 0 - }, - { - "out": 1, "location": [ - -122.478584, - 37.729701 + -122.479666, + 37.767777 ], "bearings": [ - 0, - 180, - 270 - ], + 15, + 165, + 315 + ] + } + ], + "geometry": "_gpeFxbqjVFUFUHUHSFMFMFMFKHIHMHIJIJKLIl@e@BCPQJIHEXSXOb@Yd@YLIPILGNINGPGLCLCNAL?J@J@NBLDLDPHNH|Ax@JFJDHBJ@JAJAHCNIVMVMRKRMRMVOTQTOVUNKJIHIHKJKJQ", + "duration": 170, + "distance": 705.4, + "name": "Transverse Drive", + "weight": 170, + "mode": "cycling", + "maneuver": { + "bearing_after": 118, + "location": [ + -122.481251, + 37.771523 + ], + "type": "turn", + "bearing_before": 225, + "modifier": "left", + "instruction": "Sväng vänster in på Transverse Drive" + } + }, + { + "intersections": [ + { + "out": 1, + "in": 2, "entry": [ - false, true, - true + true, + false + ], + "location": [ + -122.478514, + 37.766168 ], - "in": 0 + "bearings": [ + 120, + 135, + 315 + ] } ], - "geometry": { - "coordinates": [ - [ - -122.47855, - 37.729977 - ], - [ - -122.478564, - 37.729955 - ], - [ - -122.478585, - 37.729892 - ], - [ - -122.478591, - 37.729828 - ], - [ - -122.478591, - 37.729818 + "geometry": "qeoeFtqpjVR[BCDCBCLE", + "duration": 13.8, + "distance": 34.9, + "name": "Transverse Drive", + "weight": 13.8, + "mode": "cycling", + "maneuver": { + "bearing_after": 130, + "location": [ + -122.478514, + 37.766168 + ], + "type": "continue", + "bearing_before": 133, + "modifier": "straight", + "instruction": "Fortsätt in på Transverse Drive" + } + }, + { + "intersections": [ + { + "out": 1, + "in": 2, + "entry": [ + true, + true, + false ], - [ - -122.478584, - 37.729701 + "location": [ + -122.478275, + 37.765925 ], - [ - -122.478572, - 37.729514 + "bearings": [ + 75, + 255, + 345 ] - ], - "type": "LineString" - }, + } + ], + "geometry": "adoeFfppjVBT", + "duration": 11.8, + "distance": 10.5, + "name": "Martin Luther King Jr Drive", + "weight": 12.9, "mode": "cycling", - "duration": 20.1, "maneuver": { - "bearing_after": 191, - "type": "turn", - "modifier": "right", - "bearing_before": 108, + "bearing_after": 257, "location": [ - -122.47855, - 37.729977 + -122.478275, + 37.765925 ], - "instruction": "Turn right onto Buckingham Way" - }, - "weight": 20.1, - "distance": 52.1, - "name": "Buckingham Way" + "type": "turn", + "bearing_before": 157, + "modifier": "right", + "instruction": "Sväng höger in på Martin Luther King Jr Drive" + } }, { "intersections": [ { "out": 1, + "in": 0, + "entry": [ + false, + true, + true, + true + ], "location": [ - -122.478572, - 37.729514 + -122.478392, + 37.765905 ], "bearings": [ - 0, - 90, - 180, - 270 - ], + 75, + 165, + 255, + 330 + ] + }, + { + "out": 2, + "in": 0, "entry": [ false, true, true, true ], - "in": 0 - }, - { - "out": 0, "location": [ - -122.478473, - 37.729511 + -122.478348, + 37.76571 ], "bearings": [ 0, - 90, + 60, 180, - 270 - ], - "entry": [ - true, - true, - true, - false - ], - "in": 3 + 255 + ] }, { "out": 1, + "in": 0, + "entry": [ + false, + true, + true + ], "location": [ - -122.477359, - 37.730064 + -122.478321, + 37.765504 ], "bearings": [ 0, - 90, - 180, + 195, 270 - ], - "entry": [ - true, - true, - true, - false - ], - "in": 3 + ] } ], - "geometry": { - "coordinates": [ - [ - -122.478572, - 37.729514 - ], - [ - -122.478473, - 37.729511 - ], - [ - -122.478494, - 37.729827 - ], - [ - -122.478489, - 37.729879 - ], - [ - -122.478473, - 37.729927 - ], - [ - -122.478444, - 37.72997 - ], - [ - -122.478409, - 37.730002 - ], - [ - -122.478351, - 37.730036 - ], - [ - -122.47829, - 37.730059 - ], - [ - -122.47823, - 37.730072 - ], - [ - -122.478154, - 37.730075 - ], - [ - -122.477359, - 37.730064 - ], - [ - -122.476727, - 37.730072 - ], - [ - -122.47609, - 37.730084 - ], - [ - -122.475969, - 37.730082 - ] - ], - "type": "LineString" - }, + "geometry": "}coeF|ppjVJEZAh@EPB", + "duration": 15.599999999999998, + "distance": 56.2, + "name": "", + "weight": 15.599999999999998, "mode": "cycling", - "duration": 84.6, "maneuver": { - "bearing_after": 91, - "type": "continue", - "modifier": "uturn", - "bearing_before": 175, + "bearing_after": 161, "location": [ - -122.478572, - 37.729514 + -122.478392, + 37.765905 ], - "instruction": "Make a U-turn onto Buckingham Way" - }, - "weight": 84.6, - "distance": 282.1, - "name": "Buckingham Way" + "type": "turn", + "bearing_before": 257, + "modifier": "left", + "instruction": "Sväng vänster" + } }, { "intersections": [ { - "out": 0, - "location": [ - -122.475969, - 37.730082 - ], - "bearings": [ - 0, - 90, - 180, - 270 - ], + "out": 2, + "in": 0, "entry": [ + false, true, true, true, - false + true ], - "in": 3 - }, - { - "out": 0, "location": [ - -122.475965, - 37.730157 + -122.47834, + 37.765407 ], "bearings": [ 15, + 90, 180, - 270, - 345 - ], - "entry": [ - true, - false, - true, - true - ], - "in": 1 + 240, + 300 + ] }, { - "out": 0, - "location": [ - -122.475902, - 37.730599 - ], - "bearings": [ - 0, - 90, - 180 - ], + "out": 2, + "in": 0, "entry": [ + false, true, true, - false + true ], - "in": 2 - }, - { - "out": 0, "location": [ - -122.475951, - 37.731099 + -122.478218, + 37.763525 ], "bearings": [ 0, 90, - 165, - 195, + 180, 270 - ], + ] + }, + { + "out": 2, + "in": 0, "entry": [ - true, - true, false, true, + true, true ], - "in": 2 - }, - { - "out": 0, "location": [ - -122.476063, - 37.732693 + -122.478088, + 37.761659 ], "bearings": [ 0, 90, 180, 270 - ], - "entry": [ - true, - true, - false, - true - ], - "in": 2 - } - ], - "geometry": { - "coordinates": [ - [ - -122.475969, - 37.730082 - ], - [ - -122.475965, - 37.730157 - ], - [ - -122.475923, - 37.730188 - ], - [ - -122.475906, - 37.730232 - ], - [ - -122.475902, - 37.730599 - ], - [ - -122.475897, - 37.731022 - ], - [ - -122.475909, - 37.731071 - ], - [ - -122.475951, - 37.731099 - ], - [ - -122.476063, - 37.732693 - ], - [ - -122.476195, - 37.734574 ] - ], - "type": "LineString" - }, - "mode": "cycling", - "duration": 125.6, - "maneuver": { - "bearing_after": 1, - "type": "turn", - "modifier": "left", - "bearing_before": 88, - "location": [ - -122.475969, - 37.730082 - ], - "instruction": "Turn left onto 20th Avenue" - }, - "weight": 125.6, - "distance": 503.9, - "name": "20th Avenue" - }, - { - "intersections": [ + }, { - "out": 0, + "out": 2, + "in": 0, + "entry": [ + false, + true, + true, + true + ], "location": [ - -122.476195, - 37.734574 + -122.477957, + 37.759793 ], "bearings": [ + 0, 90, 180, 270 - ], + ] + }, + { + "out": 2, + "in": 0, "entry": [ - true, false, + true, + true, true ], - "in": 1 - }, - { - "out": 0, "location": [ - -122.475726, - 37.734569 + -122.477827, + 37.757929 ], "bearings": [ + 0, 90, 180, 270 - ], + ] + }, + { + "out": 2, + "in": 0, "entry": [ + false, true, - true, - false + true ], - "in": 2 - }, - { - "out": 1, "location": [ - -122.475279, - 37.734558 + -122.477743, + 37.756724 ], "bearings": [ 0, 90, - 165, - 270 - ], + 180 + ] + }, + { + "out": 2, + "in": 0, "entry": [ + false, true, true, - true, - false + true + ], + "location": [ + -122.477697, + 37.756066 ], - "in": 3 + "bearings": [ + 0, + 90, + 180, + 270 + ] }, { - "out": 0, + "out": 2, + "in": 0, + "entry": [ + false, + true, + true + ], "location": [ - -122.475187, - 37.734558 + -122.477635, + 37.755175 ], "bearings": [ + 0, 90, - 165, - 270, - 345 - ], + 180 + ] + }, + { + "out": 2, + "in": 0, "entry": [ + false, true, true, - false, - false + true ], - "in": 2 - }, - { - "out": 1, "location": [ - -122.475052, - 37.73456 + -122.477566, + 37.754195 ], "bearings": [ 0, 90, 180, 270 - ], + ] + }, + { + "out": 2, + "in": 0, "entry": [ + false, true, true, - false, - false + true ], - "in": 3 - }, - { - "out": 1, "location": [ - -122.474941, - 37.734563 + -122.477436, + 37.752331 ], "bearings": [ 0, 90, 180, 270 - ], + ] + }, + { + "out": 2, + "in": 0, "entry": [ + false, true, true, - true, - false + true ], - "in": 3 - }, - { - "out": 0, "location": [ - -122.474586, - 37.734573 + -122.477306, + 37.75047 ], "bearings": [ + 0, 90, 180, 270 - ], + ] + }, + { + "out": 2, + "in": 0, "entry": [ + false, true, true, - false + true ], - "in": 2 - }, - { - "out": 0, "location": [ - -122.474134, - 37.734585 + -122.477176, + 37.748604 ], "bearings": [ + 0, 90, 180, 270 - ], + ] + }, + { + "out": 2, + "in": 0, "entry": [ + false, true, true, - false + true ], - "in": 2 - }, - { - "out": 1, "location": [ - -122.474078, - 37.734587 + -122.477046, + 37.746738 ], "bearings": [ 0, 90, 180, 270 - ], + ] + }, + { + "out": 2, + "in": 0, "entry": [ + false, true, true, - true, - false + true ], - "in": 3 - }, - { - "out": 0, "location": [ - -122.473252, - 37.734609 + -122.476915, + 37.744871 ], "bearings": [ + 0, 90, 180, 270 - ], + ] + }, + { + "out": 2, + "in": 0, "entry": [ + false, true, true, - false + true + ], + "location": [ + -122.476785, + 37.743008 ], - "in": 2 + "bearings": [ + 0, + 90, + 180, + 270 + ] }, { - "out": 0, + "out": 2, + "in": 0, + "entry": [ + false, + true, + true, + true + ], "location": [ - -122.472416, - 37.734658 + -122.476655, + 37.741143 ], "bearings": [ + 0, 90, - 105, 180, 270 - ], + ] + }, + { + "out": 3, + "in": 0, "entry": [ + false, true, true, true, - false + true + ], + "location": [ + -122.476525, + 37.739278 ], - "in": 3 + "bearings": [ + 0, + 90, + 135, + 180, + 270 + ] } ], - "geometry": { - "coordinates": [ - [ - -122.476195, - 37.734574 - ], - [ - -122.476038, - 37.734575 - ], - [ - -122.475877, - 37.734572 - ], - [ - -122.475726, - 37.734569 - ], - [ - -122.475589, - 37.734565 - ], - [ - -122.475279, - 37.734558 - ], - [ - -122.475187, - 37.734558 - ], - [ - -122.475052, - 37.73456 - ], - [ - -122.474941, - 37.734563 - ], - [ - -122.474586, - 37.734573 - ], - [ - -122.474134, - 37.734585 - ], - [ - -122.474078, - 37.734587 - ], - [ - -122.473252, - 37.734609 - ], - [ - -122.473169, - 37.734613 - ], - [ - -122.472918, - 37.734639 - ], - [ - -122.472416, - 37.734658 + "geometry": "y`oeFrppjVT?pGQDAhACrJY@?@?rJYrJYb@AlEO`CGpDKbEMtJYrJYtJYrJYtJYrJYtJYrJYrJY", + "duration": 758.7999999999998, + "distance": 3118.1, + "name": "20th Avenue", + "weight": 758.7999999999998, + "mode": "cycling", + "maneuver": { + "bearing_after": 177, + "location": [ + -122.47834, + 37.765407 + ], + "type": "new name", + "bearing_before": 188, + "modifier": "straight", + "instruction": "Fortsätt rakt fram på 20th Avenue" + } + }, + { + "intersections": [ + { + "out": 1, + "in": 0, + "entry": [ + false, + true, + true, + true ], - [ - -122.47215, - 37.73467 + "location": [ + -122.476395, + 37.737416 ], - [ - -122.471837, - 37.734682 + "bearings": [ + 0, + 90, + 180, + 270 ] - ], - "type": "LineString" - }, + } + ], + "geometry": "{qieFndpjVGkE", + "duration": 27.9, + "distance": 89.8, + "name": "Wawona Street", + "weight": 27.9, "mode": "cycling", - "duration": 95.9, "maneuver": { - "bearing_after": 90, - "type": "end of road", - "modifier": "right", - "bearing_before": 355, + "bearing_after": 85, "location": [ - -122.476195, - 37.734574 + -122.476395, + 37.737416 ], - "instruction": "Turn right onto Sloat Boulevard (CA 35)" - }, - "ref": "CA 35", - "weight": 95.9, - "distance": 383.8, - "name": "Sloat Boulevard (CA 35)" + "type": "turn", + "bearing_before": 175, + "modifier": "left", + "instruction": "Sväng vänster in på Wawona Street" + } }, { "intersections": [ { - "out": 1, + "out": 2, + "in": 3, + "entry": [ + false, + true, + true, + false + ], "location": [ - -122.471837, - 37.734682 + -122.475376, + 37.737459 ], "bearings": [ 0, - 75, 90, 180, 270 - ], + ] + }, + { + "out": 1, + "in": 3, "entry": [ true, true, true, - true, false ], - "in": 4 - }, - { - "out": 1, "location": [ - -122.471616, - 37.734709 + -122.475215, + 37.734722 ], "bearings": [ - 45, - 60, - 225, - 255 - ], + 90, + 165, + 270, + 345 + ] + }, + { + "out": 1, + "in": 3, "entry": [ true, true, true, false ], - "in": 3 - }, - { - "out": 1, "location": [ - -122.471431, - 37.734782 + -122.475187, + 37.734558 ], "bearings": [ - 0, - 45, - 195, - 240 - ], + 90, + 165, + 270, + 345 + ] + }, + { + "out": 2, + "in": 0, "entry": [ + false, true, true, - true, - false + true ], - "in": 3 - }, - { - "out": 0, "location": [ - -122.47141, - 37.734801 + -122.475021, + 37.732488 ], "bearings": [ - 45, - 90, - 225, - 270 - ], + 0, + 120, + 180, + 300 + ] + } + ], + "maneuver": { + "bearing_after": 178, + "location": [ + -122.475376, + 37.737459 + ], + "type": "turn", + "bearing_before": 85, + "modifier": "right", + "instruction": "Sväng höger in på 19th Avenue (CA 1)" + }, + "duration": 183, + "distance": 710.3, + "name": "19th Avenue (CA 1)", + "geometry": "crieFb~ojVP?~@AXAX?XA`CGzEMRAPA^EPCF?bK]xGQ", + "ref": "CA 1", + "weight": 183, + "mode": "cycling" + }, + { + "intersections": [ + { + "out": 3, + "in": 0, "entry": [ + false, true, true, - false, true ], - "in": 2 - }, - { - "out": 0, "location": [ - -122.471321, - 37.734888 + -122.47493, + 37.731084 ], "bearings": [ - 45, - 210, - 225 - ], + 0, + 90, + 180, + 270 + ] + } + ], + "geometry": "gjheFh{ojV?R?xA?jAAFAH", + "duration": 27, + "distance": 90, + "name": "Eucalyptus Drive", + "weight": 27, + "mode": "cycling", + "maneuver": { + "bearing_after": 268, + "location": [ + -122.47493, + 37.731084 + ], + "type": "turn", + "bearing_before": 175, + "modifier": "right", + "instruction": "Sväng höger in på Eucalyptus Drive" + } + }, + { + "intersections": [ + { + "out": 3, + "in": 1, "entry": [ true, + false, true, - false + true, + true ], - "in": 1 - }, - { - "out": 0, "location": [ - -122.471213, - 37.734996 + -122.475951, + 37.731099 ], "bearings": [ - 45, - 135, + 0, + 90, 165, - 225, - 315 - ], + 195, + 270 + ] + } + ], + "geometry": "kjheFtapjVBBHB~C@DCFA", + "duration": 31.3, + "distance": 106.1, + "name": "20th Avenue", + "weight": 31.3, + "mode": "cycling", + "maneuver": { + "bearing_after": 199, + "location": [ + -122.475951, + 37.731099 + ], + "type": "turn", + "bearing_before": 271, + "modifier": "left", + "instruction": "Sväng vänster in på 20th Avenue" + } + }, + { + "intersections": [ + { + "out": 2, + "in": 3, "entry": [ true, true, true, - false, - true + false ], - "in": 3 - }, - { - "out": 0, "location": [ - -122.46989, - 37.736136 + -122.475965, + 37.730157 ], "bearings": [ - 45, - 150, - 225 - ], + 15, + 180, + 270, + 345 + ] + } + ], + "geometry": "odheFxapjV?V@~B@dA?v@A~C?PBLDNFNHHDB", + "duration": 59.1, + "distance": 234.8, + "name": "Buckingham Way", + "weight": 59.1, + "mode": "cycling", + "maneuver": { + "bearing_after": 268, + "location": [ + -122.475965, + 37.730157 + ], + "type": "turn", + "bearing_before": 163, + "modifier": "right", + "instruction": "Sväng höger in på Buckingham Way" + } + }, + { + "intersections": [ + { + "out": 3, + "in": 1, "entry": [ true, + false, true, - false + true ], - "in": 2 - }, - { - "out": 0, "location": [ - -122.469259, - 37.736665 + -122.47855, + 37.729977 ], "bearings": [ - 45, - 150, - 225 - ], + 0, + 30, + 195, + 285 + ] + }, + { + "out": 2, + "in": 1, "entry": [ true, - true, - false + false, + true ], - "in": 2 - }, - { - "out": 0, "location": [ - -122.468282, - 37.737391 + -122.478701, + 37.730005 ], "bearings": [ - 45, + 0, 105, - 165, - 225, - 315 - ], + 270 + ] + }, + { + "out": 2, + "in": 0, "entry": [ - true, - true, - true, false, + true, true ], - "in": 3 - }, - { - "out": 0, "location": [ - -122.467541, - 37.737958 + -122.478766, + 37.730002 ], "bearings": [ - 45, - 105, - 225 - ], + 90, + 180, + 270 + ] + }, + { + "out": 2, + "in": 1, "entry": [ true, - true, - false + false, + true ], - "in": 2 - }, - { - "out": 0, "location": [ - -122.466175, - 37.739154 + -122.478884, + 37.729995 ], "bearings": [ - 45, - 165, - 225, - 330 - ], + 0, + 90, + 270 + ] + } + ], + "geometry": "kcheF|qpjVET?F@L?T@f@", + "duration": 15.9, + "distance": 47.4, + "name": "", + "weight": 15.9, + "mode": "cycling", + "maneuver": { + "bearing_after": 288, + "location": [ + -122.47855, + 37.729977 + ], + "type": "turn", + "bearing_before": 213, + "modifier": "right", + "instruction": "Sväng höger" + } + }, + { + "intersections": [ + { + "out": 0, + "in": 1, "entry": [ - true, true, false, true ], - "in": 2 - }, - { - "out": 0, "location": [ - -122.465246, - 37.739628 + -122.479081, + 37.729985 ], "bearings": [ - 75, + 0, 90, - 240, - 345 - ], + 270 + ] + } + ], + "geometry": "mcheFfupjVW@", + "duration": 12.2, + "distance": 13.8, + "name": "", + "weight": 12.2, + "mode": "cycling", + "maneuver": { + "bearing_after": 357, + "location": [ + -122.479081, + 37.729985 + ], + "type": "turn", + "bearing_before": 265, + "modifier": "right", + "instruction": "Sväng höger" + } + }, + { + "intersections": [ + { + "out": 2, + "in": 1, "entry": [ - true, true, false, true ], - "in": 2 - }, - { - "out": 0, "location": [ - -122.464083, - 37.739926 + -122.479088, + 37.730109 ], "bearings": [ - 75, + 0, 180, - 255 - ], + 270 + ] + } + ], + "geometry": "edheFhupjVLvD", + "duration": 19.5, + "distance": 81, + "name": "", + "weight": 19.5, + "mode": "cycling", + "maneuver": { + "bearing_after": 264, + "location": [ + -122.479088, + 37.730109 + ], + "type": "turn", + "bearing_before": 357, + "modifier": "left", + "instruction": "Sväng vänster" + } + }, + { + "intersections": [ + { + "in": 0, "entry": [ - true, - true, - false + true ], - "in": 2 - }, + "location": [ + -122.480005, + 37.730039 + ], + "bearings": [ + 84 + ] + } + ], + "geometry": "wcheF`{pjV", + "duration": 0, + "distance": 0, + "name": "", + "weight": 0, + "mode": "cycling", + "maneuver": { + "bearing_after": 0, + "bearing_before": 264, + "type": "arrive", + "location": [ + -122.480005, + 37.730039 + ], + "instruction": "Du är framme vid din destination" + } + } + ], + "weight": 13120.7, + "distance": 37593.6, + "summary": "San Francisco - Larkspur Ferry, Mill Valley - Sausalito Path", + "duration": 12685.5 + }, + { + "steps": [ + { + "intersections": [ { "out": 0, + "entry": [ + true + ], "location": [ - -122.462927, - 37.740055 + -122.480005, + 37.730039 ], "bearings": [ - 75, - 180, - 255 - ], + 84 + ] + } + ], + "geometry": "wcheF`{pjVMwD", + "duration": 24, + "distance": 81, + "name": "", + "weight": 24, + "mode": "cycling", + "maneuver": { + "bearing_after": 84, + "bearing_before": 0, + "type": "depart", + "location": [ + -122.480005, + 37.730039 + ], + "instruction": "Kör åt öster" + } + }, + { + "intersections": [ + { + "out": 1, + "in": 2, "entry": [ true, true, false ], - "in": 2 - }, + "location": [ + -122.479088, + 37.730109 + ], + "bearings": [ + 0, + 180, + 270 + ] + } + ], + "geometry": "edheFhupjVVA", + "duration": 11.9, + "distance": 13.8, + "name": "", + "weight": 11.9, + "mode": "cycling", + "maneuver": { + "bearing_after": 177, + "location": [ + -122.479088, + 37.730109 + ], + "type": "turn", + "bearing_before": 84, + "modifier": "right", + "instruction": "Sväng höger" + } + }, + { + "intersections": [ { - "out": 0, + "out": 1, + "in": 0, + "entry": [ + false, + true, + true + ], "location": [ - -122.461417, - 37.740215 + -122.479081, + 37.729985 ], "bearings": [ + 0, 90, - 120, - 255 - ], + 270 + ] + }, + { + "out": 1, + "in": 2, "entry": [ true, true, false ], - "in": 2 - }, - { - "out": 0, "location": [ - -122.461214, - 37.740236 + -122.478884, + 37.729995 ], "bearings": [ + 0, 90, - 165, - 270, - 345 - ], + 270 + ] + }, + { + "out": 0, + "in": 2, "entry": [ true, true, - false, - true + false ], - "in": 2 - }, - { - "out": 0, "location": [ - -122.461097, - 37.740248 + -122.478766, + 37.730002 ], "bearings": [ - 75, + 90, 180, - 270, - 345 - ], + 270 + ] + }, + { + "out": 1, + "in": 2, "entry": [ true, true, - false, - true + false ], - "in": 2 - }, - { - "out": 0, "location": [ - -122.460408, - 37.740321 + -122.478701, + 37.730005 ], "bearings": [ - 82, - 248, - 262 - ], + 0, + 105, + 270 + ] + } + ], + "geometry": "mcheFfupjVAg@?UAM?GDU", + "duration": 15.1, + "distance": 47.4, + "name": "", + "weight": 15.1, + "mode": "cycling", + "maneuver": { + "bearing_after": 85, + "location": [ + -122.479081, + 37.729985 + ], + "type": "turn", + "bearing_before": 177, + "modifier": "left", + "instruction": "Sväng vänster" + } + }, + { + "intersections": [ + { + "out": 2, + "in": 3, "entry": [ + true, true, true, false ], - "in": 2 - }, - { - "out": 1, "location": [ - -122.458856, - 37.740501 + -122.47855, + 37.729977 ], "bearings": [ - 45, - 75, - 165, - 210, - 255, - 315 - ], + 0, + 30, + 195, + 285 + ] + } + ], + "geometry": "kcheF|qpjVB@LDJ?@?VAd@A", + "duration": 20.1, + "distance": 52.1, + "name": "Buckingham Way", + "weight": 20.1, + "mode": "cycling", + "maneuver": { + "bearing_after": 191, + "location": [ + -122.47855, + 37.729977 + ], + "type": "turn", + "bearing_before": 108, + "modifier": "right", + "instruction": "Sväng höger in på Buckingham Way" + } + }, + { + "intersections": [ + { + "out": 1, + "in": 0, "entry": [ + false, true, true, - true, - true, - false, true ], - "in": 4 - }, - { - "out": 0, "location": [ - -122.457996, - 37.740745 + -122.478572, + 37.729514 ], "bearings": [ - 60, - 225, - 240 - ], + 0, + 90, + 180, + 270 + ] + }, + { + "out": 0, + "in": 3, "entry": [ + true, true, true, false ], - "in": 2 - }, - { - "out": 0, "location": [ - -122.4575, - 37.740977 + -122.478473, + 37.729511 ], "bearings": [ - 60, - 150, - 240 - ], + 0, + 90, + 180, + 270 + ] + } + ], + "geometry": "m`heF`rpjV?S_ABI?ICGEEEGKCKAKAOB}CA}BA_C?W", + "duration": 84.60000000000001, + "distance": 282.1, + "name": "Buckingham Way", + "weight": 84.60000000000001, + "mode": "cycling", + "maneuver": { + "bearing_after": 91, + "location": [ + -122.478572, + 37.729514 + ], + "type": "continue", + "bearing_before": 175, + "modifier": "uturn", + "instruction": "Gör en U-sväng in på Buckingham Way" + } + }, + { + "intersections": [ + { + "out": 0, + "in": 3, "entry": [ + true, true, true, false ], - "in": 2 - }, - { - "out": 0, "location": [ - -122.45578, - 37.742092 + -122.475969, + 37.730082 ], "bearings": [ - 30, - 120, - 210 - ], + 0, + 90, + 180, + 270 + ] + }, + { + "out": 0, + "in": 1, "entry": [ true, + false, true, - false + true ], - "in": 2 - }, - { - "out": 0, "location": [ - -122.455206, - 37.743014 + -122.475965, + 37.730157 ], "bearings": [ - 30, - 210, - 315 - ], + 15, + 180, + 270, + 345 + ] + } + ], + "geometry": "_dheFxapjVO?EIGAiAAsA?I@EF", + "duration": 34.1, + "distance": 116.8, + "name": "20th Avenue", + "weight": 34.1, + "mode": "cycling", + "maneuver": { + "bearing_after": 1, + "location": [ + -122.475969, + 37.730082 + ], + "type": "turn", + "bearing_before": 88, + "modifier": "left", + "instruction": "Sväng vänster in på 20th Avenue" + } + }, + { + "intersections": [ + { + "out": 1, + "in": 2, "entry": [ + true, true, false, + true, true ], - "in": 1 - }, - { - "out": 0, "location": [ - -122.454486, - 37.743727 + -122.475951, + 37.731099 ], "bearings": [ - 45, - 135, - 225 - ], + 0, + 90, + 165, + 195, + 270 + ] + }, + { + "out": 1, + "in": 3, "entry": [ + false, true, true, false ], - "in": 2 - }, - { - "out": 0, "location": [ - -122.454196, - 37.743959 + -122.47493, + 37.731084 ], "bearings": [ - 45, - 135, - 225, - 315 - ], + 0, + 90, + 180, + 270 + ] + } + ], + "geometry": "kjheFtapjV@I@G?kA?yA?SAW", + "duration": 36.1, + "distance": 101, + "name": "Eucalyptus Drive", + "weight": 36.1, + "mode": "cycling", + "maneuver": { + "bearing_after": 91, + "location": [ + -122.475951, + 37.731099 + ], + "type": "turn", + "bearing_before": 344, + "modifier": "right", + "instruction": "Sväng höger in på Eucalyptus Drive" + } + }, + { + "intersections": [ + { + "out": 0, + "in": 3, "entry": [ true, true, false, - true + false ], - "in": 2 - }, - { - "out": 0, "location": [ - -122.453471, - 37.744475 + -122.474806, + 37.731093 ], "bearings": [ - 60, - 135, - 225, - 315 - ], + 0, + 90, + 180, + 270 + ] + }, + { + "out": 0, + "in": 2, "entry": [ true, true, false, true ], - "in": 2 - }, - { - "out": 1, "location": [ - -122.453346, - 37.744548 + -122.474884, + 37.732424 ], "bearings": [ 0, - 60, - 135, - 240, + 120, + 180, 300 - ], + ] + }, + { + "out": 0, + "in": 2, "entry": [ - true, true, true, false, true ], - "in": 3 - }, - { - "out": 0, "location": [ - -122.452292, - 37.745184 + -122.475052, + 37.73456 ], "bearings": [ - 60, - 150, - 240 - ], - "entry": [ - true, - true, - false - ], - "in": 2 + 0, + 90, + 180, + 270 + ] }, { "out": 0, - "location": [ - -122.45164, - 37.74547 - ], - "bearings": [ - 60, - 135, - 240, - 300 - ], + "in": 2, "entry": [ true, true, false, true ], - "in": 2 - }, - { - "out": 0, "location": [ - -122.451556, - 37.745498 + -122.475063, + 37.734723 ], "bearings": [ - 60, - 150, - 240, - 315 - ], - "entry": [ - true, - true, - false, - true - ], - "in": 2 + 0, + 90, + 180, + 270 + ] }, { "out": 0, - "location": [ - -122.451222, - 37.74561 - ], - "bearings": [ - 60, - 75, - 225, - 240 - ], + "in": 2, "entry": [ - true, true, true, false ], - "in": 3 - }, - { - "out": 0, "location": [ - -122.450474, - 37.745835 + -122.475151, + 37.736018 ], "bearings": [ - 75, - 255, - 300 - ], + 0, + 90, + 180 + ] + }, + { + "out": 0, + "in": 1, "entry": [ true, false, true ], - "in": 1 - }, - { - "out": 0, "location": [ - -122.449457, - 37.745988 + -122.47524, + 37.737465 ], "bearings": [ - 75, - 165, - 255 - ], - "entry": [ - true, - true, - false - ], - "in": 2 + 0, + 180, + 270 + ] }, { "out": 0, - "location": [ - -122.447749, - 37.746378 - ], - "bearings": [ - 75, - 135, - 180, - 255, - 345 - ], + "in": 2, "entry": [ - true, true, true, false, true ], - "in": 3 + "location": [ + -122.47537, + 37.739328 + ], + "bearings": [ + 0, + 90, + 180, + 270 + ] } ], - "geometry": { - "coordinates": [ - [ - -122.471837, - 37.734682 - ], - [ - -122.47174, - 37.734692 - ], - [ - -122.471694, - 37.734697 - ], - [ - -122.471675, - 37.734699 - ], - [ - -122.471624, - 37.734708 - ], - [ - -122.471616, - 37.734709 - ], - [ - -122.471557, - 37.734725 - ], - [ - -122.471502, - 37.734745 - ], - [ - -122.471459, - 37.734766 - ], - [ - -122.471431, - 37.734782 - ], - [ - -122.47141, - 37.734801 - ], - [ - -122.471321, - 37.734888 - ], - [ - -122.471213, - 37.734996 - ], - [ - -122.471062, - 37.735137 - ], - [ - -122.470917, - 37.735269 - ], - [ - -122.470758, - 37.735407 - ], - [ - -122.46989, - 37.736136 - ], - [ - -122.469259, - 37.736665 - ], - [ - -122.469156, - 37.736752 - ], - [ - -122.468998, - 37.736882 - ], - [ - -122.468829, - 37.737014 - ], - [ - -122.468666, - 37.737135 - ], - [ - -122.468494, - 37.737258 - ], - [ - -122.468282, - 37.737391 - ], - [ - -122.468097, - 37.737522 - ], - [ - -122.467888, - 37.737676 - ], - [ - -122.467713, - 37.737814 - ], - [ - -122.467541, - 37.737958 - ], - [ - -122.467368, - 37.738108 - ], - [ - -122.467193, - 37.738263 - ], - [ - -122.466645, - 37.738773 - ], - [ - -122.466534, - 37.738873 - ], - [ - -122.466425, - 37.738965 - ], - [ - -122.466302, - 37.739062 - ], - [ - -122.466175, - 37.739154 - ], - [ - -122.466016, - 37.739257 - ], - [ - -122.465865, - 37.739344 - ], - [ - -122.465717, - 37.739422 - ], - [ - -122.465565, - 37.739494 - ], - [ - -122.465399, - 37.739567 - ], - [ - -122.465246, - 37.739628 - ], - [ - -122.4651, - 37.739682 - ], - [ - -122.464949, - 37.73973 - ], - [ - -122.464802, - 37.739774 - ], - [ - -122.464655, - 37.739813 - ], - [ - -122.464496, - 37.739851 - ], - [ - -122.464343, - 37.739882 - ], - [ - -122.464219, - 37.739904 - ], - [ - -122.464083, - 37.739926 - ], - [ - -122.463903, - 37.739949 - ], - [ - -122.46371, - 37.739972 - ], - [ - -122.462927, - 37.740055 - ], - [ - -122.461417, - 37.740215 - ], - [ - -122.461214, - 37.740236 - ], - [ - -122.461097, - 37.740248 - ], - [ - -122.460408, - 37.740321 - ], - [ - -122.460108, - 37.740353 - ], - [ - -122.459184, - 37.740451 - ], - [ - -122.45902, - 37.740472 - ], - [ - -122.458856, - 37.740501 - ], - [ - -122.458664, - 37.740541 - ], - [ - -122.458474, - 37.740588 - ], - [ - -122.458287, - 37.740643 - ], - [ - -122.457996, - 37.740745 - ], - [ - -122.457778, - 37.740842 - ], - [ - -122.4575, - 37.740977 - ], - [ - -122.45633, - 37.741609 - ], - [ - -122.456179, - 37.7417 - ], - [ - -122.456049, - 37.741795 - ], - [ - -122.45595, - 37.741883 - ], - [ - -122.455858, - 37.741987 - ], - [ - -122.45578, - 37.742092 - ], - [ - -122.455714, - 37.742196 - ], - [ - -122.455541, - 37.742502 - ], - [ - -122.455454, - 37.742644 - ], - [ - -122.455379, - 37.742768 - ], - [ - -122.455303, - 37.742883 - ], - [ - -122.455253, - 37.742953 - ], - [ - -122.455206, - 37.743014 - ], - [ - -122.455118, - 37.743122 - ], - [ - -122.455027, - 37.743222 - ], - [ - -122.454927, - 37.743326 - ], - [ - -122.454819, - 37.743434 - ], - [ - -122.454718, - 37.743529 - ], - [ - -122.454601, - 37.743631 - ], - [ - -122.454486, - 37.743727 - ], - [ - -122.45434, - 37.743845 - ], - [ - -122.454196, - 37.743959 - ], - [ - -122.45406, - 37.744069 - ], - [ - -122.453895, - 37.744193 - ], - [ - -122.453728, - 37.744309 - ], - [ - -122.453556, - 37.74442 - ], - [ - -122.453471, - 37.744475 - ], - [ - -122.453346, - 37.744548 - ], - [ - -122.452292, - 37.745184 - ], - [ - -122.452173, - 37.74525 - ], - [ - -122.452039, - 37.745315 - ], - [ - -122.451899, - 37.745377 - ], - [ - -122.45176, - 37.74543 - ], - [ - -122.45164, - 37.74547 - ], - [ - -122.451556, - 37.745498 - ], - [ - -122.451491, - 37.745521 - ], - [ - -122.451222, - 37.74561 - ], - [ - -122.450753, - 37.745761 - ], - [ - -122.450474, - 37.745835 - ], - [ - -122.450195, - 37.745895 - ], - [ - -122.449959, - 37.745931 - ], - [ - -122.449457, - 37.745988 - ], - [ - -122.449175, - 37.746035 - ], - [ - -122.448891, - 37.746096 - ], - [ - -122.448223, - 37.746279 - ], - [ - -122.447749, - 37.746378 + "maneuver": { + "bearing_after": 357, + "location": [ + -122.474806, + 37.731093 + ], + "type": "turn", + "bearing_before": 84, + "modifier": "left", + "instruction": "Sväng vänster in på 19th Avenue (CA 1)" + }, + "duration": 286.20000000000005, + "distance": 1125.2, + "name": "19th Avenue (CA 1)", + "geometry": "ijheFpzojViGL{K`@O?_@@SBoFLoGNQ@U@}IVsJX", + "ref": "CA 1", + "weight": 286.20000000000005, + "mode": "cycling" + }, + { + "intersections": [ + { + "out": 1, + "in": 2, + "entry": [ + true, + true, + false, + true ], - [ - -122.447016, - 37.746565 + "location": [ + -122.475499, + 37.741194 ], - [ - -122.446753, - 37.746633 + "bearings": [ + 0, + 90, + 180, + 270 + ] + }, + { + "out": 1, + "in": 3, + "entry": [ + true, + true, + true, + false ], - [ - -122.446499, - 37.74669 + "location": [ + -122.474511, + 37.741237 ], - [ - -122.44622, - 37.746741 + "bearings": [ + 0, + 90, + 180, + 270 ] - ], - "type": "LineString" - }, + } + ], + "geometry": "mijeFz~ojVIeEGuE", + "duration": 51.8, + "distance": 181.1, + "name": "Ulloa Street", + "weight": 51.8, "mode": "cycling", - "duration": 676.4, "maneuver": { - "bearing_after": 80, - "type": "fork", - "modifier": "slight left", - "bearing_before": 87, + "bearing_after": 85, "location": [ - -122.471837, - 37.734682 + -122.475499, + 37.741194 ], - "instruction": "Keep left at the fork onto Portola Drive" - }, - "weight": 676.4, - "distance": 2741, - "name": "Portola Drive" + "type": "turn", + "bearing_before": 355, + "modifier": "right", + "instruction": "Sväng höger in på Ulloa Street" + } }, { "intersections": [ { - "out": 1, + "out": 0, + "in": 3, + "entry": [ + true, + true, + true, + false + ], "location": [ - -122.44622, - 37.746741 + -122.473443, + 37.741284 ], "bearings": [ - 75, + 0, 90, - 255 - ], + 180, + 270 + ] + }, + { + "out": 0, + "in": 2, "entry": [ true, true, - false + false, + true + ], + "location": [ + -122.473573, + 37.74315 ], - "in": 2 + "bearings": [ + 0, + 90, + 180, + 270 + ] }, { "out": 0, + "in": 2, + "entry": [ + true, + true, + false, + true + ], "location": [ - -122.444711, - 37.746631 + -122.473702, + 37.745012 ], "bearings": [ - 80, - 286, - 292 - ], + 0, + 90, + 180, + 270 + ] + }, + { + "out": 0, + "in": 2, "entry": [ + true, true, false, true ], - "in": 1 + "location": [ + -122.473833, + 37.74688 + ], + "bearings": [ + 0, + 90, + 180, + 270 + ] }, { - "out": 1, + "out": 0, + "in": 2, + "entry": [ + true, + true, + false, + true + ], "location": [ - -122.444361, - 37.746665 + -122.473963, + 37.748745 ], "bearings": [ - 45, - 75, + 0, 90, - 255, - 285 - ], + 180, + 270 + ] + }, + { + "out": 0, + "in": 2, "entry": [ - true, true, true, false, true ], - "in": 3 + "location": [ + -122.474093, + 37.750612 + ], + "bearings": [ + 0, + 90, + 180, + 270 + ] }, { "out": 0, + "in": 2, + "entry": [ + true, + true, + false, + true + ], "location": [ - -122.443998, - 37.746777 + -122.474223, + 37.752473 ], "bearings": [ - 45, - 120, - 165, - 240 - ], + 0, + 90, + 180, + 270 + ] + }, + { + "out": 0, + "in": 3, "entry": [ true, true, true, - false - ], - "in": 3 - } - ], - "geometry": { - "coordinates": [ - [ - -122.44622, - 37.746741 - ], - [ - -122.445624, - 37.746787 - ], - [ - -122.44554, - 37.746788 - ], - [ - -122.445452, - 37.746785 - ], - [ - -122.44536, - 37.746775 - ], - [ - -122.445266, - 37.746757 - ], - [ - -122.445159, - 37.746733 - ], - [ - -122.445051, - 37.746706 - ], - [ - -122.444898, - 37.746663 - ], - [ - -122.444828, - 37.746648 - ], - [ - -122.444711, - 37.746631 - ], - [ - -122.444646, - 37.746623 - ], - [ - -122.444589, - 37.746625 - ], - [ - -122.444528, - 37.746633 - ], - [ - -122.444361, - 37.746665 - ], - [ - -122.444267, - 37.746681 - ], - [ - -122.444167, - 37.746705 - ], - [ - -122.444074, - 37.746738 - ], - [ - -122.443998, - 37.746777 - ], - [ - -122.443909, - 37.746834 - ], - [ - -122.443836, - 37.746889 - ], - [ - -122.443754, - 37.746959 - ], - [ - -122.443497, - 37.747202 + false, + true ], - [ - -122.443071, - 37.747645 + "location": [ + -122.474353, + 37.754338 ], - [ - -122.442692, - 37.748013 + "bearings": [ + 0, + 60, + 105, + 180, + 270 + ] + }, + { + "out": 0, + "in": 3, + "entry": [ + true, + true, + true, + false, + true ], - [ - -122.442604, - 37.748091 + "location": [ + -122.474483, + 37.756205 ], - [ - -122.442514, - 37.748165 + "bearings": [ + 0, + 60, + 120, + 180, + 270 ] - ], - "type": "LineString" - }, - "mode": "cycling", - "duration": 99.4, - "maneuver": { - "bearing_after": 84, - "type": "turn", - "modifier": "straight", - "bearing_before": 75, - "location": [ - -122.44622, - 37.746741 - ], - "instruction": "Go straight onto Clipper Street" - }, - "weight": 99.4, - "distance": 403.8, - "name": "Clipper Street" - }, - { - "intersections": [ + }, { "out": 0, + "in": 3, + "entry": [ + true, + true, + true, + false, + true + ], "location": [ - -122.442514, - 37.748165 + -122.474613, + 37.758071 ], "bearings": [ 0, - 45, - 225, - 255 - ], + 60, + 120, + 180, + 270 + ] + }, + { + "out": 0, + "in": 2, "entry": [ true, true, false, true ], - "in": 2 + "location": [ + -122.474743, + 37.759935 + ], + "bearings": [ + 0, + 90, + 180, + 270 + ] }, { "out": 0, + "in": 2, + "entry": [ + true, + true, + false, + true + ], "location": [ - -122.442598, - 37.749175 + -122.474869, + 37.761739 ], "bearings": [ 0, 90, 180, 270 - ], + ] + }, + { + "out": 0, + "in": 2, "entry": [ true, true, false, true ], - "in": 2 - }, + "location": [ + -122.474878, + 37.761865 + ], + "bearings": [ + 0, + 90, + 180, + 270 + ] + } + ], + "geometry": "_jjeF~qojVkHTeABC?C?{@DS?_HRuJXuJXsJXsJXuJXuJXsJXuJXgJXI?E?I@gJV", + "duration": 602.5999999999999, + "distance": 2493.4, + "name": "17th Avenue", + "weight": 602.5999999999999, + "mode": "cycling", + "maneuver": { + "bearing_after": 355, + "location": [ + -122.473443, + 37.741284 + ], + "type": "turn", + "bearing_before": 85, + "modifier": "left", + "instruction": "Sväng vänster in på 17th Avenue" + } + }, + { + "intersections": [ { - "out": 2, - "location": [ - -122.442719, - 37.750525 - ], - "bearings": [ - 165, - 270, - 345 - ], + "out": 1, + "in": 2, "entry": [ - false, true, + true, + false, true ], - "in": 0 - }, - { - "out": 0, "location": [ - -122.442796, - 37.750772 + -122.475003, + 37.763667 ], "bearings": [ 0, 90, - 165 - ], + 180, + 270 + ] + }, + { + "out": 1, + "in": 3, "entry": [ + true, true, true, false ], - "in": 2 - }, - { - "out": 0, "location": [ - -122.442747, - 37.751556 + -122.473933, + 37.763714 ], "bearings": [ - 45, + 0, 90, - 210 - ], + 180, + 270 + ] + }, + { + "out": 1, + "in": 3, "entry": [ + true, true, true, false ], - "in": 2 - }, - { - "out": 0, "location": [ - -122.442492, - 37.75188 + -122.472812, + 37.763763 ], "bearings": [ - 15, - 195, - 300 - ], + 0, + 90, + 180, + 270 + ] + }, + { + "out": 1, + "in": 3, "entry": [ true, - false, - true + true, + true, + false ], - "in": 1 - }, - { - "out": 0, "location": [ - -122.442539, - 37.752395 + -122.471683, + 37.763813 ], "bearings": [ 0, 90, - 165 - ], + 180, + 270 + ] + }, + { + "out": 1, + "in": 3, "entry": [ + true, true, true, false ], - "in": 2 - }, - { - "out": 0, "location": [ - -122.441983, - 37.753236 + -122.470615, + 37.76386 ], "bearings": [ - 30, + 0, 90, - 210 - ], + 180, + 270 + ] + }, + { + "out": 1, + "in": 3, "entry": [ + true, true, true, false ], - "in": 2 - }, - { - "out": 0, "location": [ - -122.441887, - 37.753363 + -122.469546, + 37.763908 ], "bearings": [ - 30, - 210, - 315 - ], + 0, + 90, + 180, + 270 + ] + }, + { + "out": 1, + "in": 3, "entry": [ true, - false, - true + true, + true, + false ], - "in": 1 - }, - { - "out": 0, "location": [ - -122.441163, - 37.75409 + -122.468473, + 37.763955 ], "bearings": [ - 30, + 0, 90, - 210 - ], + 180, + 270 + ] + }, + { + "out": 1, + "in": 3, "entry": [ + true, true, true, false ], - "in": 2 - }, - { - "out": 0, "location": [ - -122.440948, - 37.754404 + -122.467404, + 37.764002 ], "bearings": [ - 30, + 0, + 90, 180, - 210 - ], + 270 + ] + }, + { + "out": 1, + "in": 3, "entry": [ + true, true, true, false ], - "in": 2 - } - ], - "geometry": { - "coordinates": [ - [ - -122.442514, - 37.748165 - ], - [ - -122.442521, - 37.748208 - ], - [ - -122.442598, - 37.749175 - ], - [ - -122.44268, - 37.750409 - ], - [ - -122.442719, - 37.750525 - ], - [ - -122.442763, - 37.750619 - ], - [ - -122.442782, - 37.750695 - ], - [ - -122.442796, - 37.750772 - ], - [ - -122.442838, - 37.751386 - ], - [ - -122.442822, - 37.75145 - ], - [ - -122.442795, - 37.751507 - ], - [ - -122.442747, - 37.751556 - ], - [ - -122.442637, - 37.751639 - ], - [ - -122.44257, - 37.751707 - ], - [ - -122.442527, - 37.751781 - ], - [ - -122.442492, - 37.75188 - ], - [ - -122.442473, - 37.75198 - ], - [ - -122.442476, - 37.752069 - ], - [ - -122.442487, - 37.752152 - ], - [ - -122.442539, - 37.752395 - ], - [ - -122.442548, - 37.752468 - ], - [ - -122.442532, - 37.752536 - ], - [ - -122.442503, - 37.752599 - ], - [ - -122.442433, - 37.752669 - ], - [ - -122.442259, - 37.752816 - ], - [ - -122.442178, - 37.752905 - ], - [ - -122.441983, - 37.753236 - ], - [ - -122.441887, - 37.753363 - ], - [ - -122.441806, - 37.753479 - ], - [ - -122.441307, - 37.75388 - ], - [ - -122.441163, - 37.75409 - ], - [ - -122.440948, - 37.754404 + "location": [ + -122.466333, + 37.764049 ], - [ - -122.440848, - 37.754593 + "bearings": [ + 0, + 90, + 180, + 270 ] - ], - "type": "LineString" - }, - "mode": "cycling", - "duration": 186.10000000000002, - "maneuver": { - "bearing_after": 355, - "type": "turn", - "modifier": "left", - "bearing_before": 39, - "location": [ - -122.442514, - 37.748165 - ], - "instruction": "Turn left onto Grand View Avenue" - }, - "weight": 186.10000000000002, - "distance": 773.7, - "name": "Grand View Avenue" - }, - { - "intersections": [ + }, { "out": 1, - "location": [ - -122.440848, - 37.754593 - ], - "bearings": [ - 15, - 45, - 210 - ], + "in": 3, "entry": [ + true, true, true, false ], - "in": 2 - } - ], - "geometry": { - "coordinates": [ - [ - -122.440848, - 37.754593 - ], - [ - -122.440724, - 37.754677 + "location": [ + -122.46526, + 37.764097 ], - [ - -122.440454, - 37.755079 + "bearings": [ + 0, + 90, + 180, + 270 ] - ], - "type": "LineString" - }, - "mode": "cycling", - "duration": 16.2, - "maneuver": { - "bearing_after": 49, - "type": "turn", - "modifier": "straight", - "bearing_before": 22, - "location": [ - -122.440848, - 37.754593 - ], - "instruction": "Go straight onto Grand View Avenue" - }, - "weight": 16.2, - "distance": 65, - "name": "Grand View Avenue" - }, - { - "intersections": [ + }, { "out": 1, - "location": [ - -122.440454, - 37.755079 - ], - "bearings": [ - 30, - 60, - 210 - ], + "in": 3, "entry": [ + true, true, true, false ], - "in": 2 - }, - { - "out": 0, "location": [ - -122.440055, - 37.755227 + -122.464191, + 37.764144 ], "bearings": [ - 75, - 255, - 285 - ], + 0, + 90, + 180, + 270 + ] + }, + { + "out": 1, + "in": 3, "entry": [ true, - false, - true + true, + true, + false ], - "in": 1 - }, - { - "out": 0, "location": [ - -122.439969, - 37.755254 + -122.463119, + 37.764191 ], "bearings": [ - 75, + 0, + 90, 180, - 255 - ], + 270 + ] + }, + { + "out": 1, + "in": 3, "entry": [ + true, true, true, false ], - "in": 2 - }, - { - "out": 1, "location": [ - -122.438887, - 37.755413 + -122.462055, + 37.764243 ], "bearings": [ - 15, - 75, + 0, + 90, 180, - 255, - 345 - ], + 270 + ] + }, + { + "out": 1, + "in": 3, "entry": [ true, true, true, - false, - true - ], - "in": 3 - } - ], - "geometry": { - "coordinates": [ - [ - -122.440454, - 37.755079 - ], - [ - -122.440245, - 37.755167 - ], - [ - -122.440055, - 37.755227 - ], - [ - -122.439969, - 37.755254 - ], - [ - -122.439647, - 37.75532 - ], - [ - -122.438887, - 37.755413 + false ], - [ - -122.43877, - 37.755445 + "location": [ + -122.460977, + 37.764286 ], - [ - -122.437769, - 37.755541 + "bearings": [ + 0, + 90, + 180, + 270 ] - ], - "type": "LineString" - }, + } + ], + "geometry": "}uneFv{ojVGuEI_FIaFIsEIuEIwEGuEIuE?QIcEGuEIuEIsEIwEA}@EwC", + "duration": 329.49999999999994, + "distance": 1329.4, + "name": "Irving Street", + "weight": 329.49999999999994, "mode": "cycling", - "duration": 66.4, "maneuver": { - "bearing_after": 61, - "type": "turn", - "modifier": "slight right", - "bearing_before": 26, + "bearing_after": 85, "location": [ - -122.440454, - 37.755079 + -122.475003, + 37.763667 ], - "instruction": "Make a slight right onto 21st Street" - }, - "weight": 66.4, - "distance": 243.4, - "name": "21st Street" + "type": "turn", + "bearing_before": 355, + "modifier": "right", + "instruction": "Sväng höger in på Irving Street" + } }, { "intersections": [ { "out": 0, + "in": 3, + "entry": [ + true, + true, + true, + false + ], "location": [ - -122.437769, - 37.755541 + -122.459908, + 37.764333 ], "bearings": [ 0, + 90, 180, 270 - ], + ] + }, + { + "out": 0, + "in": 2, "entry": [ true, true, - false + false, + true ], - "in": 2 - }, - { - "out": 0, "location": [ - -122.437805, - 37.755898 + -122.459973, + 37.765262 ], "bearings": [ 0, 90, - 180 - ], + 180, + 270 + ] + } + ], + "geometry": "azneFl}ljVC?uDJ_DJE?CACCCE?EAE", + "duration": 53.8, + "distance": 209.1, + "name": "3rd Avenue", + "weight": 53.8, + "mode": "cycling", + "maneuver": { + "bearing_after": 355, + "location": [ + -122.459908, + 37.764333 + ], + "type": "turn", + "bearing_before": 85, + "modifier": "left", + "instruction": "Sväng vänster in på 3rd Avenue" + } + }, + { + "intersections": [ + { + "out": 0, + "in": 3, "entry": [ + true, true, true, false ], - "in": 2 - }, - { - "out": 0, "location": [ - -122.437972, - 37.757493 + -122.459914, + 37.766161 ], "bearings": [ - 0, + 15, 90, - 180, - 270 - ], + 195, + 240 + ] + }, + { + "out": 0, + "in": 2, "entry": [ true, true, false, true ], - "in": 2 - }, - { - "out": 0, "location": [ - -122.438112, - 37.759093 + -122.459891, + 37.766232 ], "bearings": [ - 0, + 30, 90, - 180, - 270 - ], + 195, + 240 + ] + }, + { + "out": 0, + "in": 2, "entry": [ true, true, false, true ], - "in": 2 + "location": [ + -122.4598, + 37.766339 + ], + "bearings": [ + 45, + 120, + 225, + 285 + ] }, { "out": 0, + "in": 1, + "entry": [ + true, + false, + true + ], "location": [ - -122.43828, - 37.760694 + -122.459735, + 37.766386 ], "bearings": [ - 0, - 90, - 180, - 270 - ], + 45, + 225, + 315 + ] + }, + { + "out": 0, + "in": 1, "entry": [ - true, true, false, true ], - "in": 2 - } - ], - "geometry": { - "coordinates": [ - [ - -122.437769, - 37.755541 - ], - [ - -122.437805, - 37.755898 - ], - [ - -122.437972, - 37.757493 + "location": [ + -122.458701, + 37.767069 ], - [ - -122.438112, - 37.759093 + "bearings": [ + 60, + 240, + 330 + ] + }, + { + "out": 0, + "in": 3, + "entry": [ + true, + true, + true, + false ], - [ - -122.43828, - 37.760694 + "location": [ + -122.458602, + 37.767107 ], - [ - -122.438377, - 37.761677 + "bearings": [ + 60, + 150, + 225, + 240 ] - ], - "type": "LineString" - }, + } + ], + "geometry": "oeoeFl}ljVMCKCIMIKg@y@a@k@]e@Q_@Mc@GSAG", + "duration": 51.599999999999994, + "distance": 163.7, + "name": "", + "weight": 51.599999999999994, "mode": "cycling", - "duration": 169.8, "maneuver": { - "bearing_after": 354, - "type": "end of road", - "modifier": "left", - "bearing_before": 82, + "bearing_after": 14, "location": [ - -122.437769, - 37.755541 + -122.459914, + 37.766161 ], - "instruction": "Turn left onto Eureka Street" - }, - "weight": 169.8, - "distance": 684.6, - "name": "Eureka Street" + "type": "turn", + "bearing_before": 57, + "modifier": "left", + "instruction": "Sväng vänster" + } }, { "intersections": [ { - "out": 1, + "out": 0, + "in": 2, + "entry": [ + true, + true, + false + ], "location": [ - -122.438377, - 37.761677 + -122.458561, + 37.767123 ], "bearings": [ 0, - 75, - 180, - 255 - ], + 60, + 240 + ] + }, + { + "out": 0, + "in": 2, "entry": [ true, true, false, true ], - "in": 2 - }, - { - "out": 1, "location": [ - -122.437298, - 37.761863 + -122.458562, + 37.767206 ], "bearings": [ 0, - 75, + 60, 180, 255 - ], + ] + }, + { + "out": 0, + "in": 2, "entry": [ true, true, - true, - false + false, + true ], - "in": 3 - }, - { - "out": 0, "location": [ - -122.436093, - 37.762165 + -122.458564, + 37.767278 ], "bearings": [ - 60, - 225, - 240 - ], + 0, + 75, + 180, + 255 + ] + } + ], + "geometry": "okoeF~tljVQ?M?I?", + "duration": 15.600000000000001, + "distance": 22.8, + "name": "", + "weight": 15.600000000000001, + "mode": "pushing bike", + "maneuver": { + "bearing_after": 358, + "location": [ + -122.458561, + 37.767123 + ], + "type": "turn", + "bearing_before": 63, + "modifier": "left", + "instruction": "Sväng vänster" + } + }, + { + "intersections": [ + { + "out": 0, + "in": 1, "entry": [ true, - true, - false + false, + true ], - "in": 2 - }, - { - "out": 0, "location": [ - -122.435359, - 37.762512 + -122.458564, + 37.767328 ], "bearings": [ 60, - 165, - 240, - 345 - ], + 180, + 285 + ] + } + ], + "geometry": "yloeF~tljVGQcAgFeAoFYyAQg@Ok@SWSMWIc@Ek@ASB", + "duration": 100.9, + "distance": 412.6, + "name": "", + "weight": 100.9, + "mode": "cycling", + "maneuver": { + "bearing_after": 61, + "location": [ + -122.458564, + 37.767328 + ], + "type": "end of road", + "bearing_before": 0, + "modifier": "right", + "instruction": "Sväng höger" + } + }, + { + "intersections": [ + { + "out": 0, + "in": 1, "entry": [ - true, true, false, + true, true ], - "in": 2 - }, - { - "out": 1, "location": [ - -122.435192, - 37.762597 + -122.454977, + 37.769182 ], "bearings": [ - 0, 60, 180, - 240 - ], + 270, + 345 + ] + }, + { + "out": 0, + "in": 2, "entry": [ true, true, - true, - false + false, + true ], - "in": 3 - }, - { - "out": 0, "location": [ - -122.43497, - 37.762723 + -122.454914, + 37.76922 ], "bearings": [ - 45, - 150, + 75, + 165, 240, - 330 - ], + 345 + ] + }, + { + "out": 0, + "in": 2, "entry": [ true, true, false, true ], - "in": 2 + "location": [ + -122.454838, + 37.769237 + ], + "bearings": [ + 75, + 165, + 255, + 345 + ] }, { "out": 0, + "in": 2, + "entry": [ + true, + true, + false + ], "location": [ - -122.433291, - 37.763966 + -122.454657, + 37.769278 ], "bearings": [ - 45, - 105, - 225, - 300 - ], + 60, + 210, + 255 + ] + }, + { + "out": 0, + "in": 2, "entry": [ true, true, false, true ], - "in": 2 - }, - { - "out": 1, "location": [ - -122.433094, - 37.764128 + -122.454253, + 37.76942 ], "bearings": [ - 0, 45, 180, - 225 - ], + 255, + 345 + ] + } + ], + "geometry": "kxoeFr~kjVGMCMGc@IWQy@GK", + "duration": 19.9, + "distance": 76.3, + "name": "", + "weight": 19.9, + "mode": "cycling", + "maneuver": { + "bearing_after": 52, + "location": [ + -122.454977, + 37.769182 + ], + "type": "turn", + "bearing_before": 352, + "modifier": "right", + "instruction": "Sväng höger" + } + }, + { + "intersections": [ + { + "out": 0, + "in": 2, "entry": [ - true, true, true, false ], - "in": 3 - }, - { - "out": 0, "location": [ - -122.43296, - 37.764241 + -122.454192, + 37.769458 ], "bearings": [ - 45, + 15, 90, - 225, - 270 - ], + 225 + ] + } + ], + "geometry": "czoeFtykjVa@O", + "duration": 5.8, + "distance": 20.2, + "name": "", + "weight": 5.8, + "mode": "cycling", + "maneuver": { + "bearing_after": 19, + "location": [ + -122.454192, + 37.769458 + ], + "type": "turn", + "bearing_before": 50, + "modifier": "slight left", + "instruction": "Sväng åt lätt vänster" + } + }, + { + "intersections": [ + { + "out": 0, + "in": 1, "entry": [ - true, true, false, true ], - "in": 2 - }, - { - "out": 0, "location": [ - -122.432751, - 37.764415 + -122.45411, + 37.769628 ], "bearings": [ - 45, - 120, - 225, + 60, + 195, 300 - ], + ] + } + ], + "geometry": "e{oeFdykjVK[", + "duration": 8.9, + "distance": 14.2, + "name": "", + "weight": 8.9, + "mode": "cycling", + "maneuver": { + "bearing_after": 61, + "location": [ + -122.45411, + 37.769628 + ], + "type": "turn", + "bearing_before": 19, + "modifier": "right", + "instruction": "Sväng höger" + } + }, + { + "intersections": [ + { + "out": 2, + "in": 1, "entry": [ - true, true, false, true ], - "in": 2 - }, - { - "out": 0, "location": [ - -122.43116, - 37.765647 + -122.453966, + 37.769686 ], "bearings": [ - 45, 165, - 225, + 240, 345 - ], + ] + } + ], + "geometry": "q{oeFhxkjViAN", + "duration": 14.2, + "distance": 42.1, + "name": "", + "weight": 14.2, + "mode": "cycling", + "maneuver": { + "bearing_after": 348, + "location": [ + -122.453966, + 37.769686 + ], + "type": "turn", + "bearing_before": 61, + "modifier": "left", + "instruction": "Sväng vänster" + } + }, + { + "intersections": [ + { + "out": 0, + "in": 1, "entry": [ - true, true, false, + true, true ], - "in": 2 - }, - { - "out": 1, "location": [ - -122.431032, - 37.765771 + -122.454048, + 37.770059 ], "bearings": [ - 0, - 45, - 180, - 225 - ], + 75, + 165, + 270, + 345 + ] + }, + { + "out": 1, + "in": 3, "entry": [ true, true, true, false ], - "in": 3 - }, - { - "out": 0, "location": [ - -122.430716, - 37.766025 + -122.453876, + 37.770086 ], "bearings": [ - 45, - 90, - 225, - 270 - ], - "entry": [ - true, - true, - false, - true - ], - "in": 2 - }, + 30, + 75, + 135, + 255 + ] + } + ], + "geometry": "{}oeFxxkjVEa@C[", + "duration": 8.600000000000001, + "distance": 27.3, + "name": "", + "weight": 8.600000000000001, + "mode": "cycling", + "maneuver": { + "bearing_after": 78, + "location": [ + -122.454048, + 37.770059 + ], + "type": "turn", + "bearing_before": 348, + "modifier": "right", + "instruction": "Sväng höger" + } + }, + { + "intersections": [ { "out": 0, - "location": [ - -122.430245, - 37.7664 - ], - "bearings": [ - 45, - 225, - 315 - ], + "in": 2, "entry": [ + true, true, false, true ], - "in": 1 - }, - { - "out": 1, - "location": [ - -122.429086, - 37.767291 - ], - "bearings": [ - 0, - 45, - 225 - ], - "entry": [ - true, - true, - false - ], - "in": 2 - }, - { - "out": 1, "location": [ - -122.428956, - 37.767403 + -122.453743, + 37.770107 ], "bearings": [ - 0, - 45, - 180, - 225 - ], - "entry": [ - true, - true, - true, - false - ], - "in": 3 + 75, + 165, + 255, + 345 + ] }, { "out": 0, - "location": [ - -122.428578, - 37.767714 - ], - "bearings": [ - 45, - 225, - 315 - ], + "in": 2, "entry": [ + true, true, false, true ], - "in": 1 - }, - { - "out": 0, "location": [ - -122.428516, - 37.767762 + -122.452072, + 37.77032 ], "bearings": [ - 45, - 90, - 225, - 270 - ], + 75, + 165, + 255, + 345 + ] + }, + { + "out": 0, + "in": 2, "entry": [ true, true, false, true ], - "in": 2 - }, - { - "out": 1, "location": [ - -122.427635, - 37.76847 + -122.450427, + 37.77053 ], "bearings": [ - 30, - 45, - 225 - ], - "entry": [ - true, - true, - false - ], - "in": 2 + 75, + 165, + 255, + 345 + ] }, { "out": 0, - "location": [ - -122.427074, - 37.768884 - ], - "bearings": [ - 45, - 225, - 315 - ], + "in": 2, "entry": [ + true, true, false, true ], - "in": 1 - }, - { - "out": 1, "location": [ - -122.426906, - 37.769028 + -122.448783, + 37.770739 ], "bearings": [ - 0, - 45, - 180, - 225 - ], + 75, + 165, + 255, + 345 + ] + }, + { + "out": 0, + "in": 2, "entry": [ true, true, - true, - false + false, + true ], - "in": 3 - }, - { - "out": 0, "location": [ - -122.426731, - 37.769176 + -122.44714, + 37.770948 ], "bearings": [ - 45, - 180, - 225 - ], + 75, + 165, + 255, + 345 + ] + }, + { + "out": 0, + "in": 2, "entry": [ true, true, - false + false, + true ], - "in": 2 - }, - { - "out": 0, "location": [ - -122.426132, - 37.76965 + -122.44555, + 37.771151 ], "bearings": [ - 45, - 90, - 225, - 270 - ], + 75, + 165, + 255, + 345 + ] + }, + { + "out": 0, + "in": 2, "entry": [ true, true, false, true ], - "in": 2 - }, - { - "out": 0, "location": [ - -122.426035, - 37.769728 + -122.443849, + 37.771367 ], "bearings": [ - 45, - 225, - 270 - ], + 75, + 165, + 255, + 345 + ] + }, + { + "out": 0, + "in": 2, "entry": [ + true, true, false, true ], - "in": 1 - }, - { - "out": 0, "location": [ - -122.424915, - 37.770583 + -122.442211, + 37.771576 ], "bearings": [ - 45, - 225, - 300 - ], + 75, + 165, + 255, + 345 + ] + }, + { + "out": 0, + "in": 2, "entry": [ + true, true, false, true ], - "in": 1 - }, - { - "out": 0, "location": [ - -122.424769, - 37.770714 + -122.440561, + 37.771786 ], "bearings": [ - 45, - 120, + 75, 165, - 225, - 285 - ], + 255, + 345 + ] + }, + { + "out": 0, + "in": 2, "entry": [ - true, true, true, false, true ], - "in": 3 - }, - { - "out": 0, "location": [ - -122.424589, - 37.770867 + -122.438921, + 37.771995 ], "bearings": [ - 45, - 225, - 300 - ], + 75, + 165, + 255, + 345 + ] + }, + { + "out": 0, + "in": 2, "entry": [ + true, true, false, true ], - "in": 1 - }, - { - "out": 0, "location": [ - -122.423981, - 37.771348 + -122.437299, + 37.772202 ], "bearings": [ - 45, - 180, - 225 - ], + 75, + 165, + 255, + 345 + ] + }, + { + "out": 0, + "in": 2, "entry": [ true, true, - false + false, + true ], - "in": 2 - }, - { - "out": 0, "location": [ - -122.423745, - 37.771535 + -122.437207, + 37.772213 ], "bearings": [ - 45, - 120, - 225 - ], + 75, + 165, + 255, + 345 + ] + }, + { + "out": 0, + "in": 2, "entry": [ true, true, - false + false, + true ], - "in": 2 - }, - { - "out": 0, "location": [ - -122.423503, - 37.771727 + -122.435584, + 37.77242 ], "bearings": [ - 45, - 225, - 330 - ], + 75, + 165, + 255, + 345 + ] + }, + { + "out": 0, + "in": 2, "entry": [ + true, true, false, true ], - "in": 1 - }, - { - "out": 0, "location": [ - -122.423484, - 37.771742 + -122.43394, + 37.772629 ], "bearings": [ - 45, - 180, - 225, + 75, + 165, + 255, 345 - ], + ] + }, + { + "out": 0, + "in": 2, "entry": [ true, true, false, true ], - "in": 2 - }, - { - "out": 0, "location": [ - -122.423406, - 37.771799 + -122.432298, + 37.772838 ], "bearings": [ - 45, - 225, - 330 - ], + 75, + 165, + 255, + 345 + ] + }, + { + "out": 0, + "in": 2, "entry": [ + true, true, false, true ], - "in": 1 - }, - { - "out": 0, "location": [ - -122.423322, - 37.771858 + -122.430651, + 37.773048 ], "bearings": [ - 45, - 90, - 225, - 330 - ], + 75, + 165, + 255, + 345 + ] + }, + { + "out": 0, + "in": 2, "entry": [ true, true, false, true ], - "in": 2 - }, - { - "out": 0, "location": [ - -122.4232, - 37.771944 + -122.429007, + 37.773258 ], "bearings": [ - 45, - 225, - 315 - ], + 75, + 165, + 255, + 345 + ] + }, + { + "out": 0, + "in": 2, "entry": [ + true, true, false, true ], - "in": 1 - }, - { - "out": 0, "location": [ - -122.42284, - 37.772213 + -122.427364, + 37.773467 ], "bearings": [ - 45, - 225, - 315 - ], + 75, + 165, + 255, + 345 + ] + }, + { + "out": 0, + "in": 2, "entry": [ + true, true, false, true ], - "in": 1 - }, - { - "out": 1, "location": [ - -122.422633, - 37.772372 + -122.425723, + 37.773673 ], "bearings": [ - 0, - 45, - 180, - 225 - ], - "entry": [ - true, - true, - true, - false - ], - "in": 3 + 75, + 165, + 255, + 345 + ] }, { "out": 0, - "location": [ - -122.4219, - 37.772944 - ], - "bearings": [ - 30, - 135, - 225, - 315 - ], + "in": 2, "entry": [ true, true, false, true ], - "in": 2 - }, - { - "out": 0, "location": [ - -122.421838, - 37.773013 + -122.424118, + 37.773877 ], "bearings": [ - 45, - 135, - 210 - ], - "entry": [ - true, - true, - false - ], - "in": 2 + 75, + 165, + 255, + 345 + ] }, { "out": 0, - "location": [ - -122.421218, - 37.773524 - ], - "bearings": [ - 45, - 135, - 225 - ], + "in": 2, "entry": [ true, true, - false + false, + true ], - "in": 2 - }, - { - "out": 1, "location": [ - -122.420717, - 37.773925 + -122.424022, + 37.773889 ], "bearings": [ - 0, - 45, - 225 - ], + 75, + 165, + 255, + 345 + ] + }, + { + "out": 0, + "in": 2, "entry": [ true, true, - false + false, + true ], - "in": 2 - }, - { - "out": 0, "location": [ - -122.420491, - 37.774114 + -122.423912, + 37.773903 ], "bearings": [ - 45, - 225, - 315 - ], + 75, + 165, + 255, + 345 + ] + }, + { + "out": 0, + "in": 2, "entry": [ + true, true, false, true ], - "in": 1 - }, - { - "out": 0, "location": [ - -122.420238, - 37.774339 + -122.423815, + 37.773915 ], "bearings": [ - 45, - 135, - 225, - 270 - ], + 75, + 165, + 255, + 345 + ] + }, + { + "out": 0, + "in": 2, "entry": [ true, true, false, true ], - "in": 2 - }, - { - "out": 0, "location": [ - -122.419868, - 37.774686 + -122.422431, + 37.774091 ], "bearings": [ - 45, - 225, - 240 - ], + 75, + 165, + 255, + 345 + ] + }, + { + "out": 0, + "in": 2, "entry": [ + true, true, false, true ], - "in": 1 - }, - { - "out": 0, "location": [ - -122.419329, - 37.775112 + -122.420787, + 37.774302 ], "bearings": [ - 30, - 45, + 90, 165, - 225, + 255, 345 - ], + ] + }, + { + "out": 1, + "in": 3, "entry": [ true, true, true, - false, false ], - "in": 3 - } - ], - "geometry": { - "coordinates": [ - [ - -122.438377, - 37.761677 - ], - [ - -122.437298, - 37.761863 - ], - [ - -122.436585, - 37.762005 - ], - [ - -122.436397, - 37.762052 - ], - [ - -122.436248, - 37.762103 - ], - [ - -122.436093, - 37.762165 - ], - [ - -122.43541, - 37.762487 - ], - [ - -122.435359, - 37.762512 - ], - [ - -122.435292, - 37.762545 - ], - [ - -122.435192, - 37.762597 - ], - [ - -122.435004, - 37.762703 - ], - [ - -122.43497, - 37.762723 - ], - [ - -122.434868, - 37.762785 - ], - [ - -122.434742, - 37.762869 - ], - [ - -122.434615, - 37.762957 - ], - [ - -122.434416, - 37.763112 - ], - [ - -122.433955, - 37.763481 - ], - [ - -122.433873, - 37.76354 - ], - [ - -122.433628, - 37.763705 - ], - [ - -122.433548, - 37.763763 - ], - [ - -122.433291, - 37.763966 - ], - [ - -122.433132, - 37.764097 - ], - [ - -122.433094, - 37.764128 - ], - [ - -122.43296, - 37.764241 - ], - [ - -122.432751, - 37.764415 - ], - [ - -122.431716, - 37.765233 - ], - [ - -122.43164, - 37.76529 - ], - [ - -122.43149, - 37.76539 - ], - [ - -122.43141, - 37.765448 - ], - [ - -122.43116, - 37.765647 - ], - [ - -122.431107, - 37.765698 - ], - [ - -122.431032, - 37.765771 - ], - [ - -122.430966, - 37.765829 - ], - [ - -122.430716, - 37.766025 - ], - [ - -122.430245, - 37.7664 - ], - [ - -122.429528, - 37.766968 - ], - [ - -122.42945, - 37.767025 - ], - [ - -122.42934, - 37.767094 - ], - [ - -122.429259, - 37.767153 - ], - [ - -122.429086, - 37.767291 - ], - [ - -122.428973, - 37.767388 - ], - [ - -122.428956, - 37.767403 - ], - [ - -122.428938, - 37.767418 - ], - [ - -122.428838, - 37.767509 - ], - [ - -122.428578, - 37.767714 - ], - [ - -122.428516, - 37.767762 - ], - [ - -122.427635, - 37.76847 - ], - [ - -122.427519, - 37.76856 - ], - [ - -122.427366, - 37.768664 - ], - [ - -122.427273, - 37.768728 - ], - [ - -122.427074, - 37.768884 - ], - [ - -122.427054, - 37.768899 - ], - [ - -122.426906, - 37.769028 - ], - [ - -122.426731, - 37.769176 - ], - [ - -122.426463, - 37.769388 - ], - [ - -122.426249, - 37.769558 - ], - [ - -122.426132, - 37.76965 - ], - [ - -122.426035, - 37.769728 - ], - [ - -122.426003, - 37.769753 - ], - [ - -122.425473, - 37.770169 - ], - [ - -122.425413, - 37.770211 - ], - [ - -122.4253, - 37.770283 - ], - [ - -122.425233, - 37.770331 - ], - [ - -122.424915, - 37.770583 - ], - [ - -122.424893, - 37.770601 - ], - [ - -122.424769, - 37.770714 - ], - [ - -122.424609, - 37.770851 - ], - [ - -122.424589, - 37.770867 - ], - [ - -122.424012, - 37.771326 - ], - [ - -122.423981, - 37.771348 - ], - [ - -122.423745, - 37.771535 - ], - [ - -122.423503, - 37.771727 - ], - [ - -122.423484, - 37.771742 - ], - [ - -122.423406, - 37.771799 - ], - [ - -122.423322, - 37.771858 - ], - [ - -122.4232, - 37.771944 - ], - [ - -122.423162, - 37.771971 - ], - [ - -122.423037, - 37.772063 - ], - [ - -122.42284, - 37.772213 - ], - [ - -122.422799, - 37.772243 - ], - [ - -122.422633, - 37.772372 - ], - [ - -122.422506, - 37.77247 - ], - [ - -122.422411, - 37.772539 - ], - [ - -122.422303, - 37.772614 - ], - [ - -122.421963, - 37.772893 - ], - [ - -122.4219, - 37.772944 - ], - [ - -122.421838, - 37.773013 - ], - [ - -122.42179, - 37.773063 - ], - [ - -122.421723, - 37.773125 - ], - [ - -122.421702, - 37.773141 - ], - [ - -122.421632, - 37.773196 - ], - [ - -122.421218, - 37.773524 - ], - [ - -122.420717, - 37.773925 - ], - [ - -122.420544, - 37.774068 + "location": [ + -122.420457, + 37.774336 ], - [ - -122.420491, - 37.774114 + "bearings": [ + 60, + 90, + 225, + 270 + ] + } + ], + "geometry": "e~oeFzvkjVAWe@aHASAQe@cHAQASe@aHASAQe@aHASAQO{BQuCCYC[g@wHi@gIi@iIi@gIg@cIAQGy@Ce@]eFi@gIi@gIi@iIi@gIi@iIg@gIG_AE_@[_FASAUCQa@uGi@gIGaA?k@", + "duration": 736.5000000000001, + "distance": 2983.3, + "name": "Page Street", + "weight": 736.5000000000001, + "mode": "cycling", + "maneuver": { + "bearing_after": 80, + "location": [ + -122.453743, + 37.770107 + ], + "type": "new name", + "bearing_before": 77, + "modifier": "straight", + "instruction": "Fortsätt rakt fram på Page Street" + } + }, + { + "intersections": [ + { + "out": 0, + "in": 3, + "entry": [ + true, + true, + true, + false ], - [ + "location": [ -122.420238, 37.774339 ], - [ + "bearings": [ + 45, + 135, + 225, + 270 + ] + }, + { + "out": 0, + "in": 1, + "entry": [ + true, + false, + true + ], + "location": [ -122.419868, 37.774686 ], - [ + "bearings": [ + 45, + 225, + 240 + ] + }, + { + "out": 0, + "in": 3, + "entry": [ + true, + true, + true, + false, + false + ], + "location": [ -122.419329, 37.775112 ], - [ - -122.419222, - 37.775235 + "bearings": [ + 30, + 45, + 165, + 225, + 345 ] - ], - "type": "LineString" - }, + } + ], + "geometry": "sxpeFneejVeAiAsAkBYU", + "duration": 34.2, + "distance": 134.1, + "name": "Market Street", + "weight": 48, "mode": "cycling", - "duration": 591.7, "maneuver": { - "bearing_after": 77, - "type": "turn", - "modifier": "right", - "bearing_before": 354, + "bearing_after": 39, "location": [ - -122.438377, - 37.761677 + -122.420238, + 37.774339 ], - "instruction": "Turn right onto Market Street" - }, - "weight": 591.7, - "distance": 2290.3, - "name": "Market Street" + "type": "turn", + "bearing_before": 88, + "modifier": "left", + "instruction": "Sväng vänster in på Market Street" + } }, { "intersections": [ { "out": 3, + "in": 2, + "entry": [ + true, + false, + false, + true + ], "location": [ -122.419222, 37.775235 @@ -16516,17 +9572,17 @@ 165, 210, 345 - ], + ] + }, + { + "out": 3, + "in": 1, "entry": [ true, false, - false, + true, true ], - "in": 2 - }, - { - "out": 3, "location": [ -122.419419, 37.776389 @@ -16536,17 +9592,17 @@ 180, 255, 345 - ], + ] + }, + { + "out": 3, + "in": 1, "entry": [ true, false, true, true ], - "in": 1 - }, - { - "out": 3, "location": [ -122.419609, 37.777317 @@ -16556,17 +9612,16 @@ 165, 255, 345 - ], + ] + }, + { + "out": 2, + "in": 1, "entry": [ true, false, - true, true ], - "in": 1 - }, - { - "out": 2, "location": [ -122.419725, 37.777782 @@ -16575,16 +9630,17 @@ 75, 165, 345 - ], + ] + }, + { + "out": 3, + "in": 1, "entry": [ true, false, + true, true ], - "in": 1 - }, - { - "out": 3, "location": [ -122.419826, 37.778279 @@ -16594,99 +9650,39 @@ 165, 255, 345 - ], - "entry": [ - true, - false, - true, - true - ], - "in": 1 + ] } ], - "geometry": { - "coordinates": [ - [ - -122.419222, - 37.775235 - ], - [ - -122.419251, - 37.775366 - ], - [ - -122.419389, - 37.776105 - ], - [ - -122.419419, - 37.776389 - ], - [ - -122.419425, - 37.776467 - ], - [ - -122.41953, - 37.77696 - ], - [ - -122.419609, - 37.777317 - ], - [ - -122.419725, - 37.777782 - ], - [ - -122.419748, - 37.777895 - ], - [ - -122.419803, - 37.778169 - ], - [ - -122.419826, - 37.778279 - ], - [ - -122.419853, - 37.778415 - ], - [ - -122.420161, - 37.779941 - ], - [ - -122.420189, - 37.780081 - ] - ], - "type": "LineString" - }, - "mode": "cycling", - "duration": 143.60000000000002, "maneuver": { "bearing_after": 350, - "type": "turn", - "modifier": "left", - "bearing_before": 33, "location": [ -122.419222, 37.775235 ], - "instruction": "Turn left onto Van Ness Avenue (US 101)" + "type": "turn", + "bearing_before": 33, + "modifier": "left", + "instruction": "Sväng vänster in på Van Ness Avenue (US 101)" }, + "duration": 143.60000000000002, + "distance": 545.8, + "name": "Van Ness Avenue (US 101)", + "geometry": "g~peFb_ejVYDsCZw@DO@aBRgAN{AVWBu@HUD[BoH|@[D", "ref": "US 101", "weight": 143.60000000000002, - "distance": 545.8, - "name": "Van Ness Avenue (US 101)" + "mode": "cycling" }, { "intersections": [ { "out": 0, + "in": 1, + "entry": [ + true, + false, + true, + true + ], "location": [ -122.420189, 37.780081 @@ -16696,49 +9692,26 @@ 165, 270, 345 - ], - "entry": [ - true, - false, - true, - true - ], - "in": 1 + ] } ], - "geometry": { - "coordinates": [ - [ - -122.420189, - 37.780081 - ], - [ - -122.420075, - 37.780084 - ], - [ - -122.420019, - 37.780091 - ] - ], - "type": "LineString" - }, - "mode": "cycling", + "geometry": "o|qeFdeejV?UAK", "duration": 3.6, + "distance": 15, + "name": "McAllister Street", + "weight": 5.1, + "mode": "cycling", "maneuver": { "bearing_after": 82, - "type": "turn", - "modifier": "right", - "bearing_before": 350, "location": [ -122.420189, 37.780081 ], - "instruction": "Turn right onto McAllister Street" - }, - "weight": 3.6, - "distance": 15, - "name": "McAllister Street" + "type": "turn", + "bearing_before": 350, + "modifier": "right", + "instruction": "Sväng höger in på McAllister Street" + } }, { "intersections": [ @@ -16747,86 +9720,45 @@ "entry": [ true ], - "bearings": [ - 261 - ], "location": [ -122.420019, 37.780091 + ], + "bearings": [ + 261 ] } ], - "geometry": { - "coordinates": [ - [ - -122.420019, - 37.780091 - ], - [ - -122.420019, - 37.780091 - ] - ], - "type": "LineString" - }, - "mode": "cycling", + "geometry": "q|qeFbdejV", "duration": 0, + "distance": 0, + "name": "McAllister Street", + "weight": 0, + "mode": "cycling", "maneuver": { "bearing_after": 0, - "type": "arrive", - "modifier": "right", - "bearing_before": 81, "location": [ -122.420019, 37.780091 ], - "instruction": "You have arrived at your destination, on the right" - }, - "weight": 0, - "distance": 0, - "name": "McAllister Street" + "type": "arrive", + "bearing_before": 81, + "modifier": "right", + "instruction": "Du är framme vid din destination, till höger" + } } ], - "distance": 9126.6, - "duration": 2330.4, - "summary": "Portola Drive, Market Street", - "weight": 2330.4 + "weight": 2708.5, + "distance": 10489.8, + "summary": "17th Avenue, Page Street", + "duration": 2693.2 } ], - "distance": 63618.99999999999, - "duration": 26221.100000000002, - "weight_name": "duration", - "weight": 26221.100000000002 - } - ], - "waypoints": [ - { - "waypoint_index": 0, - "location": [ - -122.420019, - 37.780091 - ], - "name": "McAllister Street", - "trips_index": 0 - }, - { - "waypoint_index": 1, - "location": [ - -122.446226, - 37.913053 - ], - "name": "San Francisco - Larkspur Ferry", - "trips_index": 0 - }, - { - "waypoint_index": 2, - "location": [ - -122.480005, - 37.730039 - ], - "name": "", - "trips_index": 0 + "weight_name": "cyclability", + "geometry": "q|qeFbdejVsPrC{EinAkcAs`BejAi^ugBhG{iGzfAmy@`]os@jb@msDx|E}bBvmCg]`dCkiAx|BdHjm@xLgKvV|Onp@_DxKjQpo@rLbb@cQrZz\\zq@jLt|A}NxoCggDrp@efAu@kVjX_Oba@pDtIyPn]EtEd\\pSnGr^sXxeCaOfKuL~t@]`QxPhMcNbtBwIx@ng@nRlF|a@qQxxE}SnEv^qEo_@sjEd@cCi}Ayb@sc@wYirE}b@k@", + "weight": 27576.300000000003, + "distance": 66366.8, + "duration": 26934.9 } - ], - "code": "Ok" + ] } diff --git a/mapbox/libjava-services/src/test/java/com/mapbox/services/api/optimizedtrips/v1/MapboxOptimizedTripsTest.java b/mapbox/libjava-services/src/test/java/com/mapbox/services/api/optimizedtrips/v1/MapboxOptimizedTripsTest.java index c60c0d29e..b974ab6ef 100644 --- a/mapbox/libjava-services/src/test/java/com/mapbox/services/api/optimizedtrips/v1/MapboxOptimizedTripsTest.java +++ b/mapbox/libjava-services/src/test/java/com/mapbox/services/api/optimizedtrips/v1/MapboxOptimizedTripsTest.java @@ -33,9 +33,10 @@ public class MapboxOptimizedTripsTest extends BaseTest { - public static final String OPTIMIZED_TRIP_FIXTURE = "src/test/fixtures/optimized_trip.json"; - public static final String OPTIMIZED_TRIP_STEP_FIXTURE = "src/test/fixtures/optimized_trip_step.json"; - public static final String OPTIMIZED_TRIP_DETAILED_FIXTURE = "src/test/fixtures/optimized_trip_detailed.json"; + private static final String OPTIMIZED_TRIP_FIXTURE = "src/test/fixtures/optimized_trip.json"; + private static final String OPTIMIZED_TRIP_STEP_FIXTURE = "src/test/fixtures/optimized_trip_steps.json"; + private static final String OPTIMIZED_TRIP_DISTRIBUTIONS_FIXTURE + = "src/test/fixtures/optimized_trip_distributions.json"; private static final String ACCESS_TOKEN = "pk.XXX"; @@ -55,8 +56,16 @@ public void setUp() throws IOException { @Override public MockResponse dispatch(RecordedRequest request) throws InterruptedException { + + String resource = OPTIMIZED_TRIP_FIXTURE; + if (request.getPath().contains("language=sv")) { + resource = OPTIMIZED_TRIP_STEP_FIXTURE; + } else if (request.getPath().contains("distributions")) { + resource = OPTIMIZED_TRIP_DISTRIBUTIONS_FIXTURE; + } + try { - String body = new String(Files.readAllBytes(Paths.get(OPTIMIZED_TRIP_FIXTURE)), Charset.forName("utf-8")); + String body = new String(Files.readAllBytes(Paths.get(resource)), Charset.forName("utf-8")); return new MockResponse().setBody(body); } catch (IOException ioException) { throw new RuntimeException(ioException); @@ -173,15 +182,100 @@ public void simpleOptimizedTripCalled() throws IOException { assertEquals(trip.getTrips().size(), 1); // Test entire route - assertEquals(trip.getTrips().get(0).getDistance(), 70688.9, DELTA); - assertEquals(trip.getTrips().get(0).getDuration(), 5271, DELTA); + assertEquals(trip.getTrips().get(0).getDistance(), 70717.79999999999, DELTA); + assertEquals(trip.getTrips().get(0).getDuration(), 5933.799999999999, DELTA); + assertTrue(trip.getTrips().get(0).getGeometry().contains("q|qeFbdejV}cCzZrNv|Bi[nj@nIb_AeGvk@s_@pn@gm")); // Test leg returned - assertTrue(trip.getTrips().get(0).getGeometry().contains("q|qeFbdejV}cCzZrNv|Bi[nj@nIb_AeGvk@s_@pn@gmCl")); assertEquals(trip.getTrips().get(0).getLegs().get(0).getDistance(), 25785.8, DELTA); - assertEquals(trip.getTrips().get(0).getLegs().get(0).getDuration(), 1829.6, DELTA); + assertEquals(trip.getTrips().get(0).getLegs().get(0).getDuration(), 2206.1, DELTA); assertEquals(trip.getWaypoints().size(), 3); assertTrue(trip.getWaypoints().get(0).getName().contains("McAllister Street")); } + + @Test + public void setLanguage_urlDoesContainLangaugeParam() throws IOException { + List coords = new ArrayList<>(); + coords.add(Position.fromCoordinates(-122.42, 37.78)); + coords.add(Position.fromCoordinates(-122.45, 37.91)); + coords.add(Position.fromCoordinates(-122.48, 37.73)); + + MapboxOptimizedTrips client = new MapboxOptimizedTrips.Builder() + .setAccessToken("pk.XXX") + .setProfile(DirectionsCriteria.PROFILE_DRIVING) + .setBaseUrl(mockUrl.toString()) + .setCoordinates(coords) + .setLanguage("sv") + .setAnnotation(DirectionsCriteria.ANNOTATION_DURATION) + .build(); + + String callUrl = client.executeCall().raw().request().url().toString(); + assertTrue( + callUrl.contains("language=sv") + ); + } + + @Test + public void setLanguage_doesReturnCorrectTurnInstructionLanguage() throws IOException { + List coords = new ArrayList<>(); + coords.add(Position.fromCoordinates(-122.42, 37.78)); + coords.add(Position.fromCoordinates(-122.45, 37.91)); + coords.add(Position.fromCoordinates(-122.48, 37.73)); + + MapboxOptimizedTrips client = new MapboxOptimizedTrips.Builder() + .setAccessToken("pk.XXX") + .setCoordinates(coords) + .setProfile(DirectionsCriteria.PROFILE_DRIVING) + .setBaseUrl(mockUrl.toString()) + .setLanguage("sv") + .setAnnotation(DirectionsCriteria.ANNOTATION_DURATION) + .build(); + + Response response = client.executeCall(); + assertTrue(response.body().getTrips().get(0).getLegs().get(0) + .getSteps().get(0).getManeuver().getInstruction().contains("Kör åt väster på McAllister Street")); + } + + @Test + public void setDistribution_urlDoesContainDistributionParam() throws IOException { + List coords = new ArrayList<>(); + coords.add(Position.fromCoordinates(13.388860, 52.517037)); + coords.add(Position.fromCoordinates(13.397634, 52.529407)); + coords.add(Position.fromCoordinates(13.428555, 52.523219)); + coords.add(Position.fromCoordinates(13.418555, 52.523215)); + + MapboxOptimizedTrips client = new MapboxOptimizedTrips.Builder() + .setAccessToken("pk.XXX") + .setProfile(DirectionsCriteria.PROFILE_DRIVING) + .setBaseUrl(mockUrl.toString()) + .setCoordinates(coords) + .setRoundTrip(true) + .setDistributions(new double[] {3, 1}) + .build(); + + String callUrl = client.executeCall().raw().request().url().toString(); + assertTrue( + callUrl.contains("distributions=3,1") + ); + } + + @Test + public void optimizationResult_doesContainWaypointIndex() throws IOException { + List coords = new ArrayList<>(); + coords.add(Position.fromCoordinates(13.388860, 52.517037)); + coords.add(Position.fromCoordinates(13.397634, 52.529407)); + coords.add(Position.fromCoordinates(13.428555, 52.523219)); + coords.add(Position.fromCoordinates(13.418555, 52.523215)); + + MapboxOptimizedTrips client = new MapboxOptimizedTrips.Builder() + .setAccessToken("pk.XXX") + .setProfile(DirectionsCriteria.PROFILE_DRIVING) + .setBaseUrl(mockUrl.toString()) + .setCoordinates(coords) + .build(); + + Response response = client.executeCall(); + assertEquals(response.body().getWaypoints().get(1).getWaypointIndex(), 1); + } } From c8494711911efb0d6fa1a693dfac0e39ddca640f Mon Sep 17 00:00:00 2001 From: Cameron Mace Date: Fri, 14 Jul 2017 14:21:44 -0400 Subject: [PATCH 2/3] deprecated misspelled method --- .../v1/MapboxOptimizedTrips.java | 45 ++++++++++++++++--- .../v1/MapboxOptimizedTripsTest.java | 4 +- 2 files changed, 40 insertions(+), 9 deletions(-) diff --git a/mapbox/libjava-services/src/main/java/com/mapbox/services/api/optimizedtrips/v1/MapboxOptimizedTrips.java b/mapbox/libjava-services/src/main/java/com/mapbox/services/api/optimizedtrips/v1/MapboxOptimizedTrips.java index bcdc25751..15d189ee7 100644 --- a/mapbox/libjava-services/src/main/java/com/mapbox/services/api/optimizedtrips/v1/MapboxOptimizedTrips.java +++ b/mapbox/libjava-services/src/main/java/com/mapbox/services/api/optimizedtrips/v1/MapboxOptimizedTrips.java @@ -155,7 +155,7 @@ public static class Builder extends MapboxBuilder { private double[] radiuses; private Boolean steps; private double[][] bearings; - private String[] annotation; + private String[] annotations; private String overview; private String language; private double[][] distributions; @@ -344,15 +344,32 @@ public T setBearings(double[]... bearings) { /** * Whether or not to return additional metadata along the route. Possible values are: * {@link DirectionsCriteria#ANNOTATION_DISTANCE}, {@link DirectionsCriteria#ANNOTATION_DURATION}, and - * {@link DirectionsCriteria#ANNOTATION_SPEED}. Several annotation can be used by separating them with {@code ,}. + * {@link DirectionsCriteria#ANNOTATION_SPEED}. Several annotations can be used by separating them with {@code ,}. * - * @param annotation String referencing one of the annotation direction criteria's. + * @param annotation String referencing one of the annotations direction criteria's. * @return Builder * @see RouteLeg object documentation * @since 2.1.0 + * @deprecated use {@link Builder#getAnnotations()} instead */ + @Deprecated public T setAnnotation(String... annotation) { - this.annotation = annotation; + this.annotations = annotation; + return (T) this; + } + + /** + * Whether or not to return additional metadata along the route. Possible values are: + * {@link DirectionsCriteria#ANNOTATION_DISTANCE}, {@link DirectionsCriteria#ANNOTATION_DURATION}, and + * {@link DirectionsCriteria#ANNOTATION_SPEED}. Several annotations can be used by separating them with {@code ,}. + * + * @param annotation String referencing one of the annotations direction criteria's. + * @return Builder + * @see RouteLeg object documentation + * @since 2.1.0 + */ + public T setAnnotations(String... annotation) { + this.annotations = annotation; return (T) this; } @@ -576,13 +593,27 @@ public String getBearings() { /** * Determine whether or not you are currently requesting additional metadata along the route. Possible values are: * {@link DirectionsCriteria#ANNOTATION_DISTANCE}, {@link DirectionsCriteria#ANNOTATION_DURATION}, and - * {@link DirectionsCriteria#ANNOTATION_SPEED}. Several annotation can be used by separating them with {@code ,}. + * {@link DirectionsCriteria#ANNOTATION_SPEED}. Several annotations can be used by separating them with {@code ,}. * - * @return String referencing one of the annotation direction criteria's. + * @return String referencing one of the annotations direction criteria's. * @since 2.1.0 + * @deprecated Use {@link Builder#getAnnotations()} */ + @Deprecated public String[] getAnnotation() { - return annotation; + return annotations; + } + + /** + * Determine whether or not you are currently requesting additional metadata along the route. Possible values are: + * {@link DirectionsCriteria#ANNOTATION_DISTANCE}, {@link DirectionsCriteria#ANNOTATION_DURATION}, and + * {@link DirectionsCriteria#ANNOTATION_SPEED}. Several annotations can be used by separating them with {@code ,}. + * + * @return String referencing one of the annotations direction criteria's. + * @since 2.1.0 + */ + public String[] getAnnotations() { + return annotations; } /** diff --git a/mapbox/libjava-services/src/test/java/com/mapbox/services/api/optimizedtrips/v1/MapboxOptimizedTripsTest.java b/mapbox/libjava-services/src/test/java/com/mapbox/services/api/optimizedtrips/v1/MapboxOptimizedTripsTest.java index b974ab6ef..caaed442b 100644 --- a/mapbox/libjava-services/src/test/java/com/mapbox/services/api/optimizedtrips/v1/MapboxOptimizedTripsTest.java +++ b/mapbox/libjava-services/src/test/java/com/mapbox/services/api/optimizedtrips/v1/MapboxOptimizedTripsTest.java @@ -207,7 +207,7 @@ public void setLanguage_urlDoesContainLangaugeParam() throws IOException { .setBaseUrl(mockUrl.toString()) .setCoordinates(coords) .setLanguage("sv") - .setAnnotation(DirectionsCriteria.ANNOTATION_DURATION) + .setAnnotations(DirectionsCriteria.ANNOTATION_DURATION) .build(); String callUrl = client.executeCall().raw().request().url().toString(); @@ -229,7 +229,7 @@ public void setLanguage_doesReturnCorrectTurnInstructionLanguage() throws IOExce .setProfile(DirectionsCriteria.PROFILE_DRIVING) .setBaseUrl(mockUrl.toString()) .setLanguage("sv") - .setAnnotation(DirectionsCriteria.ANNOTATION_DURATION) + .setAnnotations(DirectionsCriteria.ANNOTATION_DURATION) .build(); Response response = client.executeCall(); From a7a00330b0fe9ea21ccb55ebc6cd00fb829c5793 Mon Sep 17 00:00:00 2001 From: Cameron Mace Date: Tue, 18 Jul 2017 12:05:51 -0400 Subject: [PATCH 3/3] fixed up optimization waypoint object --- .../v5/models/DirectionsWaypoint.java | 29 -------- .../v5/models/MapMatchingTracepoint.java | 6 ++ .../v1/models/OptimizationWaypoint.java | 72 +++++++++++++++++++ .../v1/models/OptimizedTripsResponse.java | 16 ++--- 4 files changed, 86 insertions(+), 37 deletions(-) create mode 100644 mapbox/libjava-services/src/main/java/com/mapbox/services/api/optimizedtrips/v1/models/OptimizationWaypoint.java diff --git a/mapbox/libjava-services/src/main/java/com/mapbox/services/api/directions/v5/models/DirectionsWaypoint.java b/mapbox/libjava-services/src/main/java/com/mapbox/services/api/directions/v5/models/DirectionsWaypoint.java index ebf51c03e..a3c8ffdbf 100644 --- a/mapbox/libjava-services/src/main/java/com/mapbox/services/api/directions/v5/models/DirectionsWaypoint.java +++ b/mapbox/libjava-services/src/main/java/com/mapbox/services/api/directions/v5/models/DirectionsWaypoint.java @@ -1,6 +1,5 @@ package com.mapbox.services.api.directions.v5.models; -import com.google.gson.annotations.SerializedName; import com.mapbox.services.commons.models.Position; /** @@ -12,8 +11,6 @@ public class DirectionsWaypoint { private String name; private double[] location; - @SerializedName("waypoint_index") - private int waypointIndex; /** * Empty constructor @@ -73,30 +70,4 @@ public void setLocation(double[] location) { public Position asPosition() { return Position.fromCoordinates(location[0], location[1]); } - - /** - * Index of the waypoint inside the matched route (MapMatching API) or within the trip (Optimization API). - *

- * Note: Only used with Optimization and MapMatching APIs. - *

- * - * @return an integer representing the waypoint position within the trip or matched route - * @since 2.2.0 - */ - public int getWaypointIndex() { - return waypointIndex; - } - - /** - * Set the index of the waypoint inside the matched route (MapMatching API) or within the trip (Optimization API). - *

- * Note: Only used with Optimization and MapMatching APIs. - *

- * - * @param waypointIndex an integer representing the waypoint position within the trip or matched route - * @since 2.2.0 - */ - public void setWaypointIndex(int waypointIndex) { - this.waypointIndex = waypointIndex; - } } diff --git a/mapbox/libjava-services/src/main/java/com/mapbox/services/api/mapmatching/v5/models/MapMatchingTracepoint.java b/mapbox/libjava-services/src/main/java/com/mapbox/services/api/mapmatching/v5/models/MapMatchingTracepoint.java index 96c24b315..e42088c5c 100644 --- a/mapbox/libjava-services/src/main/java/com/mapbox/services/api/mapmatching/v5/models/MapMatchingTracepoint.java +++ b/mapbox/libjava-services/src/main/java/com/mapbox/services/api/mapmatching/v5/models/MapMatchingTracepoint.java @@ -15,6 +15,9 @@ public class MapMatchingTracepoint extends DirectionsWaypoint { @SerializedName("waypoint_index") private int waypointIndex; + /** + * Public constructor + */ public MapMatchingTracepoint() { } @@ -28,6 +31,7 @@ public MapMatchingTracepoint(int matchingsIndex, int alternativesCount, int wayp * Index to the match object in matchings the sub-trace was matched to. * * @return index value + * @since 2.2.0 */ public int getMatchingsIndex() { return matchingsIndex; @@ -37,6 +41,7 @@ public int getMatchingsIndex() { * Index value * * @param matchingsIndex value + * @since 2.2.0 */ public void setMatchingsIndex(int matchingsIndex) { this.matchingsIndex = matchingsIndex; @@ -46,6 +51,7 @@ public void setMatchingsIndex(int matchingsIndex) { * Index of the waypoint inside the matched route. * * @return index value + * @since 2.2.0 */ public int getWaypointIndex() { return waypointIndex; diff --git a/mapbox/libjava-services/src/main/java/com/mapbox/services/api/optimizedtrips/v1/models/OptimizationWaypoint.java b/mapbox/libjava-services/src/main/java/com/mapbox/services/api/optimizedtrips/v1/models/OptimizationWaypoint.java new file mode 100644 index 000000000..4666fdc6d --- /dev/null +++ b/mapbox/libjava-services/src/main/java/com/mapbox/services/api/optimizedtrips/v1/models/OptimizationWaypoint.java @@ -0,0 +1,72 @@ +package com.mapbox.services.api.optimizedtrips.v1.models; + +import com.google.gson.annotations.SerializedName; +import com.mapbox.services.api.directions.v5.models.DirectionsWaypoint; + +public class OptimizationWaypoint extends DirectionsWaypoint { + + @SerializedName("waypoint_index") + private int waypointIndex; + @SerializedName("trips_index") + private int tripsIndex; + + /** + * Empty constructor + * + * @since 2.2.0 + */ + public OptimizationWaypoint() { + } + + /** + * Construct an OptimizationWaypoint object. + * + * @param waypointIndex index of position of the waypoint within the trip + * @param tripsIndex index to the trip object in the trips array that contains this waypoint + * @since 2.2.0 + */ + public OptimizationWaypoint(int waypointIndex, int tripsIndex) { + this.waypointIndex = waypointIndex; + this.tripsIndex = tripsIndex; + } + + /** + * Index of the waypoint inside the optimization route. + * + * @return index value + * @since 2.2.0 + */ + public int getWaypointIndex() { + return waypointIndex; + } + + /** + * Index value + * + * @param waypointIndex value + * @since 2.2.0 + */ + public void setWaypointIndex(int waypointIndex) { + this.waypointIndex = waypointIndex; + } + + /** + * Index to the trip object in the trips array that contains this waypoint. + * + * @return index value + * @since 2.2.0 + */ + public int getTripsIndex() { + return tripsIndex; + } + + /** + * Index to the trip object in the trips array that contains this waypoint. + * + * @param tripsIndex index value + * @since 2.2.0 + */ + public void setTripsIndex(int tripsIndex) { + this.tripsIndex = tripsIndex; + } +} diff --git a/mapbox/libjava-services/src/main/java/com/mapbox/services/api/optimizedtrips/v1/models/OptimizedTripsResponse.java b/mapbox/libjava-services/src/main/java/com/mapbox/services/api/optimizedtrips/v1/models/OptimizedTripsResponse.java index 157d29fb6..d520ed0ee 100644 --- a/mapbox/libjava-services/src/main/java/com/mapbox/services/api/optimizedtrips/v1/models/OptimizedTripsResponse.java +++ b/mapbox/libjava-services/src/main/java/com/mapbox/services/api/optimizedtrips/v1/models/OptimizedTripsResponse.java @@ -8,7 +8,7 @@ public class OptimizedTripsResponse { private String code; - private List waypoints; + private List waypoints; private List trips; /** @@ -27,7 +27,7 @@ public OptimizedTripsResponse() { * want the waypoints to match the ones making up the directions route. * @since 2.1.0 */ - public OptimizedTripsResponse(List trips, List waypoints) { + public OptimizedTripsResponse(List trips, List waypoints) { this.trips = trips; this.waypoints = waypoints; } @@ -71,24 +71,24 @@ public void setCode(String code) { } /** - * List of {@link DirectionsWaypoint} objects. Each waypoint is an input coordinate snapped to the road and path + * List of {@link OptimizationWaypoint} objects. Each waypoint is an input coordinate snapped to the road and path * network. The waypoints appear in the list in the order of the input coordinates. * - * @return a list of {@link DirectionsWaypoint}s in the order of the input coordinates. + * @return a list of {@link OptimizationWaypoint}s in the order of the input coordinates. * @since 2.1.0 */ - public List getWaypoints() { + public List getWaypoints() { return waypoints; } /** - * List of {@link DirectionsWaypoint} objects. Each waypoint should be an input coordinate snapped to the road and + * List of {@link OptimizationWaypoint} objects. Each waypoint should be an input coordinate snapped to the road and * path network. The waypoints should appear in the list in the order of the input coordinates. * - * @param waypoints a list of {@link DirectionsWaypoint}s in the order of the input coordinates. + * @param waypoints a list of {@link OptimizationWaypoint}s in the order of the input coordinates. * @since 2.1.0 */ - public void setWaypoints(List waypoints) { + public void setWaypoints(List waypoints) { this.waypoints = waypoints; }