Sorry, you need to enable JavaScript to visit this website.

Long Distance EV Routing

Long Distance EV Routing

Plan a route between a given origin and destination that automatically includes charging stops along the way with the Long Distance EV Routing API available in the Maps SDK. Long Distance EV Routing automatically adds charging stops to your route based on a number of parameters specific for your electric car and driving behavior. Have a look at the Long Distance EV Routing detailed documentation.

Long Distance EV Routing can be used in variety of use cases that will help users of your app to plan routes for their electric cars to avoid car charging anxiety and enjoy peaceful driving. We prepared a few examples of such use cases.

Sample use case: You would like to plan a long route for your electric car that will take into consideration charging stops. Thanks to that, you will know in advance when you need to stop to charge your car. Also, you will be able to estimate how much energy will be consumed during the trip. Using TomTom Long Distance EV Routing you will also be provided with an energy-efficient route with accurate battery consumption calculations, that also considers the route profile and expected traffic.

Sample use case: You would like to see how much battery you have left when arriving at a stop so that you can find out what the options are if you need an alternative charger.

In order to plan an EV route, you need to set the vehicle parameters in your app such as vehicle weight, vehicle length, vehicle height, and others. For your convenience we have created predefined examples of vehicle objects representing a prototypical EV with different ranges defining how far they will actually go on a single charge. This will help you to easily try out Long Distance EV Routing functionality without specifying all the detailed parameters defining the particular vehicle model.

Use the following code snippets to try this in your app:

Example showing a possible vehicle definition for a short range vehicle

_

ElectricVehicleDescriptor evDescriptor = new ElectricVehicleDescriptor.Builder(
        new ElectricVehicleConsumption(
                40.0,
                20.0,
                auxiliaryPowerInKw,
                speedConsumptionInKwhPer100Km
        )
).build();

ChargingDescriptor chargingDescriptor = new ChargingDescriptor(
        minChargeAtDestinationInKwh,
        minChargeAtChargingStopsInKwh,
        Collections.singletonList(
                new ChargingMode(
                        Collections.singletonList(
                                new ChargingConnection(
                                        FacilityType.CHARGE_380_TO_480V_3_PHASE_AT_32A,
                                        PlugType.IEC_62196_TYPE_2_OUTLET
                                )
                        ),
                        Arrays.asList(
                                new ChargingCurveSupportPoint(6.0, 360),
                                new ChargingCurveSupportPoint(40.0, 4680)
                        )
                )
        )
);
EvRouteSpecification evRouteSpecification = new EvRouteSpecification.Builder(
        Locations.AMSTERDAM_LOCATION,
        Locations.EINDHOVEN_LOCATION,
        evDescriptor,
        chargingDescriptor
).build();
val evDescriptor = ElectricVehicleDescriptor.Builder(
    ElectricVehicleConsumption(
        40.0,
        20.0,
        AUXILIARY_POWER_IN_KW,
        SPEED_CONSUMPTION_IN_KWH_PER_100_KM
    )
).build()

val chargingDescriptor = ChargingDescriptor(
    MIN_CHARGE_AT_DESTINATION_IN_KWH,
    MIN_CHARGE_AT_CHARGING_STOPS_IN_KWH,
    listOf(
        ChargingMode(
            listOf(
                ChargingConnection(
                    FacilityType.CHARGE_380_TO_480V_3_PHASE_AT_32A,
                    PlugType.IEC_62196_TYPE_2_OUTLET
                )
            ),
            listOf(
                ChargingCurveSupportPoint(6.0, 360),
                ChargingCurveSupportPoint(40.0, 4680)
            )
        )
    )
)
val evRouteSpecification =
    EvRouteSpecification.Builder(Locations.AMSTERDAM, Locations.BERLIN, evDescriptor, chargingDescriptor)
        .build()
return routingApi.planRoute(evRouteSpecification, evRouteCallback)

 

Example showing a possible vehicle definition for a long range vehicle

_

ElectricVehicleDescriptor evDescriptor = new ElectricVehicleDescriptor.Builder(
        new ElectricVehicleConsumption(
                80.0,
                40.0,
                auxiliaryPowerInKw,
                speedConsumptionInKwhPer100Km
        )
).build();

ChargingDescriptor chargingDescriptor = new ChargingDescriptor(
        minChargeAtDestinationInKwh,
        minChargeAtChargingStopsInKwh,
        Collections.singletonList(
                new ChargingMode(
                        Collections.singletonList(
                                new ChargingConnection(
                                        FacilityType.CHARGE_380_TO_480V_3_PHASE_AT_32A,
                                        PlugType.IEC_62196_TYPE_2_OUTLET
                                )
                        ),
                        Arrays.asList(
                                new ChargingCurveSupportPoint(6.0, 360),
                                new ChargingCurveSupportPoint(80.0, 6680)
                        )
                )
        )
);
EvRouteSpecification evRouteSpecification = new EvRouteSpecification.Builder(
        Locations.AMSTERDAM_LOCATION,
        Locations.EINDHOVEN_LOCATION,
        evDescriptor,
        chargingDescriptor
).build();
val evDescriptor = ElectricVehicleDescriptor.Builder(
    ElectricVehicleConsumption(
        80.0,
        40.0,
        AUXILIARY_POWER_IN_KW,
        SPEED_CONSUMPTION_IN_KWH_PER_100_KM
    )
).build()

val chargingDescriptor = ChargingDescriptor(
    MIN_CHARGE_AT_DESTINATION_IN_KWH,
    MIN_CHARGE_AT_CHARGING_STOPS_IN_KWH,
    listOf(
        ChargingMode(
            listOf(
                ChargingConnection(
                    FacilityType.CHARGE_380_TO_480V_3_PHASE_AT_32A,
                    PlugType.IEC_62196_TYPE_2_OUTLET
                )
            ),
            listOf(
                ChargingCurveSupportPoint(6.0, 360),
                ChargingCurveSupportPoint(80.0, 6680)
            )
        )
    )
)
val evRouteSpecification =
    EvRouteSpecification.Builder(Locations.AMSTERDAM, Locations.BERLIN, evDescriptor, chargingDescriptor)
        .build()
return routingApi.planRoute(evRouteSpecification, evRouteCallback)

 

image

EV route with short range vehicle

image

EV route with long range vehicle