Skip to content
GuidesBlogPlaygroundDashboard

Calculate a route between two points

routing().route(RoutingRouteParamsparams, RequestOptionsrequestOptions = RequestOptions.none()) : RouteResult
POST/api/v1/route

Calculate a route between two points

ParametersExpand Collapse
params: RoutingRouteParams
format: Optional<String>

Response format for alternatives: json (default), geojson, csv, ndjson

routeRequest: RouteRequest

Request body for route calculation. Origin and destination are lat/lng coordinate objects. Supports optional waypoints, alternative routes, turn-by-turn steps, and EV routing parameters.

ReturnsExpand Collapse
class RouteResult:

GeoJSON Feature representing a calculated route. The geometry is a LineString or MultiLineString of the route path. When alternatives > 0, the response is a FeatureCollection containing multiple route Features.

geometry: GeoJsonGeometry

GeoJSON Geometry object per RFC 7946. Coordinates use [longitude, latitude] order. 3D coordinates [lng, lat, elevation] are used for elevation endpoints.

coordinates: Coordinates

Coordinates array. Nesting depth varies by geometry type: Point = [lng, lat], LineString = [[lng, lat], ...], Polygon = [[[lng, lat], ...], ...], etc.

One of the following:
List<Double>
List<List<Double>>
List<List<List<Double>>>
List<List<List<List<Double>>>>
type: Type

Geometry type

One of the following:
POINT("Point")
LINE_STRING("LineString")
POLYGON("Polygon")
MULTI_POINT("MultiPoint")
MULTI_LINE_STRING("MultiLineString")
MULTI_POLYGON("MultiPolygon")
properties: Properties

Route metadata

distanceM: Double

Total route distance in meters

durationS: Double

Estimated travel duration in seconds

annotations: Optional<Annotations>

Per-edge annotations (present when annotations: true in request)

chargeProfile: Optional<List<List<Double>>>

Battery charge level at route waypoints as [distance_fraction, charge_pct] pairs (EV routes only)

chargingStops: Optional<List<ChargingStop>>

Recommended charging stops along the route (EV routes only)

edges: Optional<List<Edge>>

Edge-level route details (present when annotations: true)

energyUsedWh: Optional<Double>

Total energy consumed in watt-hours (EV routes only)

type: Type

Calculate a route between two points

package com.plazafyi.example

import com.plazafyi.client.PlazaClient
import com.plazafyi.client.okhttp.PlazaOkHttpClient
import com.plazafyi.models.routing.RouteRequest
import com.plazafyi.models.routing.RouteResult
import com.plazafyi.models.routing.RoutingRouteParams

fun main() {
    val client: PlazaClient = PlazaOkHttpClient.fromEnv()

    val params: RouteRequest = RouteRequest.builder()
        .destination(RouteRequest.Destination.builder()
            .lat(48.8584)
            .lng(2.2945)
            .build())
        .origin(RouteRequest.Origin.builder()
            .lat(48.8566)
            .lng(2.3522)
            .build())
        .build()
    val routeResult: RouteResult = client.routing().route(params)
}
{
  "geometry": {
    "coordinates": [
      2.3522,
      48.8566
    ],
    "type": "Point"
  },
  "properties": {
    "distance_m": 4523.7,
    "duration_s": 847.2,
    "annotations": {
      "foo": "bar"
    },
    "charge_profile": [
      [
        0
      ]
    ],
    "charging_stops": [
      {
        "foo": "bar"
      }
    ],
    "edges": [
      {
        "foo": "bar"
      }
    ],
    "energy_used_wh": 0
  },
  "type": "Feature"
}
Returns Examples
{
  "geometry": {
    "coordinates": [
      2.3522,
      48.8566
    ],
    "type": "Point"
  },
  "properties": {
    "distance_m": 4523.7,
    "duration_s": 847.2,
    "annotations": {
      "foo": "bar"
    },
    "charge_profile": [
      [
        0
      ]
    ],
    "charging_stops": [
      {
        "foo": "bar"
      }
    ],
    "edges": [
      {
        "foo": "bar"
      }
    ],
    "energy_used_wh": 0
  },
  "type": "Feature"
}