EV Charging Stations Availability
The EV Charging Stations Availability service provides real-time information about electric vehicle charging points, including availability status, connector types, power levels, and charging network details.
Basic Usage
import { getPlacesWithEVAvailability } from '@tomtom-org/maps-sdk/services';import { search } from '@tomtom-org/maps-sdk/services';
// First, search for EV charging stationsconst chargingStations = await search({ query: 'EV charging', position: [4.9041, 52.3676], // Amsterdam categorySet: ['ELECTRIC_VEHICLE_STATION'], limit: 10});
// Fetch real-time availability dataconst stationsWithAvailability = await getPlacesWithEVAvailability(chargingStations);Individual Station Availability
Get availability for a specific charging station:
import { getPlaceWithEVAvailability } from '@tomtom-org/maps-sdk/services';
// Get a specific charging station (from search results)const station = chargingStations.features[0];
// Get detailed availability informationconst stationWithAvailability = await getPlaceWithEVAvailability(station);
// Access availability dataconst availability = stationWithAvailability.properties.evChargingStationAvailability;if (availability) { console.log(`Total connectors: ${availability.totalConnectors}`); console.log(`Available connectors: ${availability.availableConnectors}`);
// Check individual connector types availability.connectorAvailability.forEach(connector => { console.log(`${connector.connectorType}: ${connector.availableConnectors}/${connector.totalConnectors} available`); });}Understanding Availability Data
The availability response includes comprehensive charging station information:
const stationWithAvailability = await getPlaceWithEVAvailability(station);const evData = stationWithAvailability.properties.evChargingStationAvailability;
if (evData) { // Overall availability console.log(`Station Status: ${evData.availabilityStatus}`); // 'Available', 'Busy', 'OutOfService' console.log(`Total Connectors: ${evData.totalConnectors}`); console.log(`Available Connectors: ${evData.availableConnectors}`);
// Connector-specific availability evData.connectorAvailability.forEach(connector => { console.log(`Connector Type: ${connector.connectorType}`); // 'Type2', 'CCS', 'CHAdeMO', etc. console.log(`Power Level: ${connector.powerKW} kW`); console.log(`Available: ${connector.availableConnectors}/${connector.totalConnectors}`); console.log(`Status: ${connector.status}`); // 'Available', 'Occupied', 'OutOfOrder' });
// Charging park information if (evData.chargingPark) { console.log(`Charging Park: ${evData.chargingPark.name}`); console.log(`Operator: ${evData.chargingPark.operator}`); }}Integration with Map Display
Display charging stations with availability indicators on your map:
import { PlacesModule } from '@tomtom-org/maps-sdk/map';
// Search and get availability dataconst stations = await search({ query: 'EV charging', position: [4.9041, 52.3676], categorySet: ['ELECTRIC_VEHICLE_STATION'], limit: 20});
const stationsWithAvailability = await getPlacesWithEVAvailability(stations);
// Display on map with custom styling based on availabilityconst placesModule = await PlacesModule.get(map, { iconConfig: { customIcons: [ { category: 'ELECTRIC_VEHICLE_STATION', iconFunction: (place) => { const availability = place.properties.evChargingStationAvailability;
if (!availability) return 'ev-charging-default';
switch (availability.availabilityStatus) { case 'Available': return 'ev-charging-available'; // Green icon case 'Busy': return 'ev-charging-busy'; // Red icon case 'OutOfService': return 'ev-charging-offline'; // Gray icon default: return 'ev-charging-default'; } } } ] }});
placesModule.show(stationsWithAvailability);Filtering by Connector Type
Filter stations by specific connector types:
const filterByConnectorType = (stationsWithAvailability, connectorTypes) => { return { ...stationsWithAvailability, features: stationsWithAvailability.features.filter(station => { const availability = station.properties.evChargingStationAvailability;
if (!availability) return false;
return availability.connectorAvailability.some(connector => connectorTypes.includes(connector.connectorType) && connector.availableConnectors > 0 ); }) };};
// Find stations with available Type2 or CCS connectorsconst compatibleStations = filterByConnectorType(stationsWithAvailability, ['Type2', 'CCS']);Related Guides and Examples
Related Guides
- Places Search - Find EV charging stations using category filters
- Map Places - Display charging stations with custom availability icons
- Long Distance EV Routing - Plan routes with charging stops
Related Examples
- EV Charging Stations Playground - Interactive exploration of charging station availability
- POI Filters - Filter places by categories including EV stations
- Places Customize - Custom styling for different availability states
Related Services
- Places Search - Primary method for discovering EV charging locations
- Route Planning Parameters - Comprehensive route planning with configuration options