public Route Walk(GeoPoint from, GeoPoint to) { if (string.IsNullOrEmpty(_token)) { throw new ArgumentException("No Mapbox token"); } var coords = Uri.EscapeDataString($"{from.AsString(',', true)};{to.AsString(',', true)}"); var fullUrl = $"{_url}walking/{coords}?alternatives=false&geometries=geojson&steps=false&access_token={_token}"; var response = Utils.GetRequest(fullUrl, _logger); try { var data = JsonConvert.DeserializeObject <MapboxResult>(response, Utils.ConverterSettings); var route = data.Routes.First(); return(new Route { Distance = (int)Math.Round(route.Distance), Time = (int)Math.Round(route.Duration), Points = route.Geometry.Coordinates .Select(c => new GeoPoint(c[1], c[0])) .ToArray() }); } catch (Exception _) { _logger?.LogError(response); return(null); } }
public string Construct(GeoPoint boundsLower, GeoPoint boundsHigher) { var bounds = $"({boundsLower.AsString(',')},{boundsHigher.AsString(',')})"; var q = ""; if ((_elementType & ElementType.Node) > 0) { q += $"node{TagsToString()}{bounds};"; } if ((_elementType & ElementType.Way) > 0) { q += $"way{TagsToString()}{bounds};"; } if ((_elementType & ElementType.Relation) > 0) { q += $"relation{TagsToString()}{bounds};"; } return(q); }