## Calculate an isochrone from a point `routing().isochronePost(RoutingIsochronePostParamsparams, RequestOptionsrequestOptions = RequestOptions.none()) : RoutingIsochronePostResponse` **post** `/api/v1/isochrone` Calculate an isochrone from a point ### Parameters - `params: RoutingIsochronePostParams` - `lat: Double` Latitude - `lng: Double` Longitude - `time: Double` Travel time in seconds (1-7200) - `format: Optional` Response format: json (default), geojson, csv, ndjson - `mode: Optional` Travel mode (auto, foot, bicycle) - `outputFields: Optional` Comma-separated property fields to include - `outputGeometry: Optional` Include geometry (default true) - `outputInclude: Optional` Extra computed fields: bbox, center - `outputPrecision: Optional` Coordinate decimal precision (1-15, default 7) - `outputSimplify: Optional` Simplify geometry tolerance in meters ### Returns - `class RoutingIsochronePostResponse:` GeoJSON Feature or FeatureCollection representing isochrone polygons — areas reachable within the specified travel time(s). Single time value returns a Feature; comma-separated times return a FeatureCollection with one polygon per contour. - `features: Optional>` Array of isochrone polygon Features (multi-contour only) - `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. - `List` - `List>` - `List>>` - `List>>>` - `type: Type` Geometry type - `POINT("Point")` - `LINE_STRING("LineString")` - `POLYGON("Polygon")` - `MULTI_POINT("MultiPoint")` - `MULTI_LINE_STRING("MultiLineString")` - `MULTI_POLYGON("MultiPolygon")` - `properties: Properties` OSM tags flattened as key-value pairs, plus `@type` (node/way/relation) and `@id` (OSM ID) metadata fields. May include `distance_m` for proximity queries. - `type: Type` Always `Feature` - `FEATURE("Feature")` - `id: Optional` Compound identifier in `type/osm_id` format - `geometry: Optional` GeoJSON Geometry object per RFC 7946. Coordinates use [longitude, latitude] order. 3D coordinates [lng, lat, elevation] are used for elevation endpoints. - `properties: Optional` Isochrone metadata - `areaM2: Optional` Area of the isochrone polygon in square meters (multi-contour features only) - `maxCostS: Optional` Maximum actual travel cost in seconds to the isochrone boundary (single contour only) - `mode: Optional` Travel mode used for the isochrone calculation - `AUTO("auto")` - `FOOT("foot")` - `BICYCLE("bicycle")` - `timeSeconds: Optional` Travel time budget in seconds - `verticesReached: Optional` Number of road network vertices within the isochrone - `type: Optional` `Feature` for single contour, `FeatureCollection` for multiple contours - `FEATURE("Feature")` - `FEATURE_COLLECTION("FeatureCollection")` ### Example ```kotlin package com.plazafyi.example import com.plazafyi.client.PlazaClient import com.plazafyi.client.okhttp.PlazaOkHttpClient import com.plazafyi.models.routing.RoutingIsochronePostParams import com.plazafyi.models.routing.RoutingIsochronePostResponse fun main() { val client: PlazaClient = PlazaOkHttpClient.fromEnv() val params: RoutingIsochronePostParams = RoutingIsochronePostParams.builder() .lat(0.0) .lng(0.0) .time(0.0) .build() val response: RoutingIsochronePostResponse = client.routing().isochronePost(params) } ``` #### Response ```json { "features": [ { "geometry": { "coordinates": [ 2.3522, 48.8566 ], "type": "Point" }, "properties": { "@id": "bar", "@type": "bar", "amenity": "bar", "cuisine": "bar", "name": "bar" }, "type": "Feature", "id": "node/21154906" } ], "geometry": { "coordinates": [ 2.3522, 48.8566 ], "type": "Point" }, "properties": { "area_m2": 0, "max_cost_s": 0, "mode": "auto", "time_seconds": 0, "vertices_reached": 0 }, "type": "Feature" } ```