Skip to main content

calculateRoute / cancel

Low-level async functions for route calculation. These are the primitives that useRouting is built on. Use them directly when you need full control over multiple route alternatives or want to manage state yourself.

Import

import { calculateRoute, cancel } from 'react-native-here-explore';

calculateRoute

Calculates one or more routes between the given waypoints.

Signature

calculateRoute(
waypoints: GeoPolyline,
routeOption: RouteOption
): Promise<OnRouteCalculated>

Parameters

ParameterTypeDescription
waypointsGeoPolylineOrdered list of coordinates. First = origin, last = destination
routeOptionRouteOptionTransport mode

Returns

Promise<OnRouteCalculated>

type OnRouteCalculated = {
routingError?: number; // undefined if success
routes: RouteResultType[];
};

If routingError is defined, the calculation failed and routes will be empty.

Example

import { calculateRoute } from 'react-native-here-explore';

async function getRoute() {
const result = await calculateRoute(
[
{ latitude: 48.8566, longitude: 2.3522 },
{ latitude: 51.5074, longitude: -0.1278 },
],
'CarOptions'
);

if (result.routingError != null) {
console.error('Routing failed with code:', result.routingError);
return;
}

const route = result.routes[0];
console.log('Distance:', route.lengthInMeters, 'm');
console.log('Duration:', route.durationInSeconds, 's');
console.log('Traffic delay:', route.trafficDelayInSeconds, 's');
console.log('Vertices:', route.vertices.length, 'points');
}

All route alternatives

const result = await calculateRoute(waypoints, 'CarOptions');

result.routes.forEach((route, index) => {
console.log(`Route ${index + 1}:`, route.lengthInMeters, 'm');
});

cancel

Cancels any ongoing route calculation.

Signature

cancel(): Promise<boolean>

Returns

Promise<boolean>true if cancellation was successful.

Example

import { calculateRoute, cancel } from 'react-native-here-explore';

// Start a calculation
const promise = calculateRoute(waypoints, 'TruckOptions');

// Cancel it
await cancel();

vs. useRouting

FeaturecalculateRouteuseRouting
State managementManualAutomatic
Pending stateManualisPending
Error stateManualerror
Multiple routesAll alternativesFirst only
Use in componentsAnywhereReact components only

Use calculateRoute when you need multiple alternatives or are working outside React components. Use useRouting for the typical single-route React use case.