@tomtom-org/maps-sdk 0.29.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +10 -0
- package/LICENSE.txt +164 -0
- package/README.md +154 -0
- package/core/dist/THIRD_PARTY.txt +61 -0
- package/core/dist/core.cjs.js +515 -0
- package/core/dist/core.cjs.js.map +1 -0
- package/core/dist/core.cjs.min.js +2 -0
- package/core/dist/core.cjs.min.js.map +1 -0
- package/core/dist/core.es.js +2 -0
- package/core/dist/core.es.js.map +1 -0
- package/core/dist/index.d.ts +4674 -0
- package/core/main.js +6 -0
- package/core/package.json +50 -0
- package/map/dist/THIRD_PARTY.txt +346 -0
- package/map/dist/index.d.ts +8511 -0
- package/map/dist/map.cjs.js +7346 -0
- package/map/dist/map.cjs.js.map +1 -0
- package/map/dist/map.cjs.min.js +2 -0
- package/map/dist/map.cjs.min.js.map +1 -0
- package/map/dist/map.es.js +2 -0
- package/map/dist/map.es.js.map +1 -0
- package/map/main.js +6 -0
- package/map/package.json +53 -0
- package/package.json +87 -0
- package/sdk-examples-collage.png +0 -0
- package/services/dist/THIRD_PARTY.txt +96 -0
- package/services/dist/index.d.ts +6985 -0
- package/services/dist/services.cjs.js +5009 -0
- package/services/dist/services.cjs.js.map +1 -0
- package/services/dist/services.cjs.min.js +2 -0
- package/services/dist/services.cjs.min.js.map +1 -0
- package/services/dist/services.es.js +2 -0
- package/services/dist/services.es.js.map +1 -0
- package/services/main.js +6 -0
- package/services/package.json +51 -0
- package/tomtom-logo-big.svg +6 -0
|
@@ -0,0 +1,4674 @@
|
|
|
1
|
+
import { BBox } from 'geojson';
|
|
2
|
+
import { Feature } from 'geojson';
|
|
3
|
+
import { FeatureCollection } from 'geojson';
|
|
4
|
+
import { GeoJsonObject } from 'geojson';
|
|
5
|
+
import { GeoJsonProperties } from 'geojson';
|
|
6
|
+
import { Geometry } from 'geojson';
|
|
7
|
+
import { LineString } from 'geojson';
|
|
8
|
+
import { MultiPolygon } from 'geojson';
|
|
9
|
+
import { Point } from 'geojson';
|
|
10
|
+
import { Polygon } from 'geojson';
|
|
11
|
+
import { Position } from 'geojson';
|
|
12
|
+
|
|
13
|
+
/**
|
|
14
|
+
* Structured address components for a place.
|
|
15
|
+
*
|
|
16
|
+
* Provides hierarchical address information from building number up to country level.
|
|
17
|
+
* Not all components are present for every place; availability depends on the location
|
|
18
|
+
* and data coverage.
|
|
19
|
+
*
|
|
20
|
+
* @example
|
|
21
|
+
* ```typescript
|
|
22
|
+
* const address: AddressProperties = {
|
|
23
|
+
* freeformAddress: '1600 Pennsylvania Avenue NW, Washington, DC 20500, USA',
|
|
24
|
+
* streetNumber: '1600',
|
|
25
|
+
* streetName: 'Pennsylvania Avenue NW',
|
|
26
|
+
* municipality: 'Washington',
|
|
27
|
+
* countrySubdivision: 'DC',
|
|
28
|
+
* postalCode: '20500',
|
|
29
|
+
* countryCode: 'US',
|
|
30
|
+
* country: 'United States',
|
|
31
|
+
* countryCodeISO3: 'USA'
|
|
32
|
+
* };
|
|
33
|
+
* ```
|
|
34
|
+
*
|
|
35
|
+
* @group Place
|
|
36
|
+
*/
|
|
37
|
+
export declare type AddressProperties = {
|
|
38
|
+
/**
|
|
39
|
+
* Complete formatted address string.
|
|
40
|
+
*
|
|
41
|
+
* Follows the formatting conventions of the result's country of origin.
|
|
42
|
+
* For countries, this is the full country name.
|
|
43
|
+
*/
|
|
44
|
+
freeformAddress: string;
|
|
45
|
+
/**
|
|
46
|
+
* Building or house number on the street.
|
|
47
|
+
*/
|
|
48
|
+
streetNumber?: string;
|
|
49
|
+
/**
|
|
50
|
+
* Street name without the building number.
|
|
51
|
+
*/
|
|
52
|
+
streetName?: string;
|
|
53
|
+
/**
|
|
54
|
+
* Subdivision of a municipality (sub-city or super-city area).
|
|
55
|
+
*/
|
|
56
|
+
municipalitySubdivision?: string;
|
|
57
|
+
/**
|
|
58
|
+
* City or town name.
|
|
59
|
+
*/
|
|
60
|
+
municipality?: string;
|
|
61
|
+
/**
|
|
62
|
+
* County or second-level administrative subdivision.
|
|
63
|
+
*/
|
|
64
|
+
countrySecondarySubdivision?: string;
|
|
65
|
+
/**
|
|
66
|
+
* Named area or third-level administrative subdivision.
|
|
67
|
+
*/
|
|
68
|
+
countryTertiarySubdivision?: string;
|
|
69
|
+
/**
|
|
70
|
+
* State or province (first-level administrative subdivision).
|
|
71
|
+
*/
|
|
72
|
+
countrySubdivision?: string;
|
|
73
|
+
/**
|
|
74
|
+
* Postal code or ZIP code.
|
|
75
|
+
*/
|
|
76
|
+
postalCode?: string;
|
|
77
|
+
/**
|
|
78
|
+
* Extended postal code.
|
|
79
|
+
*
|
|
80
|
+
* Availability depends on region. More precise than standard postal code.
|
|
81
|
+
*/
|
|
82
|
+
extendedPostalCode?: string;
|
|
83
|
+
/**
|
|
84
|
+
* Two-letter ISO 3166-1 alpha-2 country code.
|
|
85
|
+
*
|
|
86
|
+
* Examples: 'US', 'GB', 'NL', 'DE'
|
|
87
|
+
*/
|
|
88
|
+
countryCode?: string;
|
|
89
|
+
/**
|
|
90
|
+
* Full country name.
|
|
91
|
+
*/
|
|
92
|
+
country?: string;
|
|
93
|
+
/**
|
|
94
|
+
* Three-letter ISO 3166-1 alpha-3 country code.
|
|
95
|
+
*
|
|
96
|
+
* Examples: 'USA', 'GBR', 'NLD', 'DEU'
|
|
97
|
+
*
|
|
98
|
+
* @see [ISO 3166-1 alpha-3 codes](https://en.wikipedia.org/wiki/ISO_3166-1_alpha-3)
|
|
99
|
+
*/
|
|
100
|
+
countryCodeISO3?: string;
|
|
101
|
+
/**
|
|
102
|
+
* Full name of the first-level administrative subdivision.
|
|
103
|
+
*
|
|
104
|
+
* Present when countrySubdivision is abbreviated. Supported for USA, Canada, and Great Britain.
|
|
105
|
+
* Example: "California" when countrySubdivision is "CA"
|
|
106
|
+
*/
|
|
107
|
+
countrySubdivisionName?: string;
|
|
108
|
+
/**
|
|
109
|
+
* Local area or locality name.
|
|
110
|
+
*
|
|
111
|
+
* Represents a named geographic area that groups addressable objects
|
|
112
|
+
* without being an official administrative unit.
|
|
113
|
+
*/
|
|
114
|
+
localName?: string;
|
|
115
|
+
};
|
|
116
|
+
|
|
117
|
+
/**
|
|
118
|
+
* Address range information for a street segment.
|
|
119
|
+
*
|
|
120
|
+
* Used for Address Range type results to indicate ranges of addresses
|
|
121
|
+
* along a street segment.
|
|
122
|
+
*
|
|
123
|
+
* @group Place
|
|
124
|
+
*/
|
|
125
|
+
export declare type AddressRanges = {
|
|
126
|
+
/**
|
|
127
|
+
* Address range on the left side of the street.
|
|
128
|
+
*
|
|
129
|
+
* Looking from the 'from' point toward the 'to' point.
|
|
130
|
+
*/
|
|
131
|
+
rangeLeft: string;
|
|
132
|
+
/**
|
|
133
|
+
* Address range on the right side of the street.
|
|
134
|
+
*
|
|
135
|
+
* Looking from the 'from' point toward the 'to' point.
|
|
136
|
+
*/
|
|
137
|
+
rangeRight: string;
|
|
138
|
+
/**
|
|
139
|
+
* Starting coordinates of the street segment [longitude, latitude].
|
|
140
|
+
*/
|
|
141
|
+
from: Position;
|
|
142
|
+
/**
|
|
143
|
+
* Ending coordinates of the street segment [longitude, latitude].
|
|
144
|
+
*/
|
|
145
|
+
to: Position;
|
|
146
|
+
};
|
|
147
|
+
|
|
148
|
+
/**
|
|
149
|
+
* Generic object type with string keys and unknown values.
|
|
150
|
+
*
|
|
151
|
+
* Used as a flexible type constraint for objects where the shape is not predetermined.
|
|
152
|
+
* Useful for extensible property objects or when accepting arbitrary user data.
|
|
153
|
+
*
|
|
154
|
+
* @example
|
|
155
|
+
* ```typescript
|
|
156
|
+
* function processCustomData(data: Anything) {
|
|
157
|
+
* // Access properties dynamically
|
|
158
|
+
* console.log(data['customField']);
|
|
159
|
+
* }
|
|
160
|
+
* ```
|
|
161
|
+
*
|
|
162
|
+
* @group Shared
|
|
163
|
+
*/
|
|
164
|
+
export declare type Anything = {
|
|
165
|
+
[x: string]: unknown;
|
|
166
|
+
};
|
|
167
|
+
|
|
168
|
+
/**
|
|
169
|
+
* Creates a soft waypoint with a flexible radius for route calculation.
|
|
170
|
+
*
|
|
171
|
+
* A soft waypoint allows the routing algorithm to find the optimal path within
|
|
172
|
+
* a specified radius of the target location, rather than forcing the route to
|
|
173
|
+
* pass through the exact point. This is useful for:
|
|
174
|
+
* - Allowing the router to stay on major roads instead of detouring
|
|
175
|
+
* - Creating more efficient routes when exact location isn't critical
|
|
176
|
+
* - Simulating "pass near" behavior in route planning
|
|
177
|
+
*
|
|
178
|
+
* The resulting waypoint is a GeoJSON Point Feature with a `radiusMeters` property
|
|
179
|
+
* that the routing service uses to optimize the path.
|
|
180
|
+
*
|
|
181
|
+
* @param hasLngLat The location to extract coordinates from. Can be a coordinate array,
|
|
182
|
+
* Point geometry, or Point Feature.
|
|
183
|
+
* @param radiusMeters The radius in meters within which the route can pass.
|
|
184
|
+
* The routing service will find the optimal point within this radius.
|
|
185
|
+
* @returns A waypoint Feature with the radiusMeters property set.
|
|
186
|
+
*
|
|
187
|
+
* @example
|
|
188
|
+
* ```typescript
|
|
189
|
+
* // Create a soft waypoint from coordinates
|
|
190
|
+
* // Route can pass anywhere within 500m of this point
|
|
191
|
+
* const softWaypoint = asSoftWaypoint([4.9, 52.3], 500);
|
|
192
|
+
*
|
|
193
|
+
* // Use in route calculation
|
|
194
|
+
* const route = await calculateRoute({
|
|
195
|
+
* key: 'your-api-key',
|
|
196
|
+
* locations: [
|
|
197
|
+
* [4.9, 52.3], // Hard waypoint (exact location)
|
|
198
|
+
* asSoftWaypoint([5.1, 52.5], 1000), // Soft waypoint (within 1km)
|
|
199
|
+
* [5.3, 52.7] // Hard waypoint (exact location)
|
|
200
|
+
* ]
|
|
201
|
+
* });
|
|
202
|
+
*
|
|
203
|
+
* // Create soft waypoint from a Place Feature
|
|
204
|
+
* const place = await geocode({ key: 'your-api-key', query: 'Amsterdam' });
|
|
205
|
+
* const softPlace = asSoftWaypoint(place, 2000);
|
|
206
|
+
* // Route will pass within 2km of Amsterdam center
|
|
207
|
+
* ```
|
|
208
|
+
*
|
|
209
|
+
* @see [Waypoints Guide](https://docs.tomtom.com/maps-sdk-js/guides/services/routing/waypoints-and-custom-routes)
|
|
210
|
+
*
|
|
211
|
+
* @group Route
|
|
212
|
+
*/
|
|
213
|
+
export declare const asSoftWaypoint: (hasLngLat: HasLngLat, radiusMeters: number) => Waypoint;
|
|
214
|
+
|
|
215
|
+
/**
|
|
216
|
+
* Route features that the routing engine will attempt to avoid when calculating routes.
|
|
217
|
+
*
|
|
218
|
+
* Use these options to customize routes based on vehicle capabilities, user preferences,
|
|
219
|
+
* or regulatory requirements. Note that avoidance is not guaranteed if no alternative route exists.
|
|
220
|
+
*
|
|
221
|
+
* @remarks
|
|
222
|
+
* Available avoidance options:
|
|
223
|
+
* - `tollRoads`: Avoids roads requiring toll payments
|
|
224
|
+
* - `motorways`: Avoids high-speed limited-access highways (useful for scenic routes or vehicle restrictions)
|
|
225
|
+
* - `ferries`: Avoids water crossings requiring ferry transport
|
|
226
|
+
* - `unpavedRoads`: Avoids unpaved/dirt roads (recommended for standard vehicles)
|
|
227
|
+
* - `carpools`: Avoids carpool/HOV (High Occupancy Vehicle) lanes
|
|
228
|
+
* - `alreadyUsedRoads`: Prevents using the same road segment multiple times (useful for delivery routes)
|
|
229
|
+
* - `borderCrossings`: Avoids crossing international borders (useful for customs/visa considerations)
|
|
230
|
+
* - `tunnels`: Avoids underground tunnels (useful for vehicles carrying hazardous materials)
|
|
231
|
+
* - `carTrains`: Avoids car train transport segments
|
|
232
|
+
* - `lowEmissionZones`: Avoids zones with vehicle emission restrictions
|
|
233
|
+
*
|
|
234
|
+
* @example
|
|
235
|
+
* ```typescript
|
|
236
|
+
* // Avoid tolls and motorways for a scenic route
|
|
237
|
+
* const avoid: Avoidable[] = ['tollRoads', 'motorways'];
|
|
238
|
+
*
|
|
239
|
+
* // Avoid unpaved roads for a standard car
|
|
240
|
+
* const avoid: Avoidable[] = ['unpavedRoads'];
|
|
241
|
+
* ```
|
|
242
|
+
*
|
|
243
|
+
* @group Route
|
|
244
|
+
*/
|
|
245
|
+
export declare type Avoidable = (typeof avoidableTypes)[number];
|
|
246
|
+
|
|
247
|
+
/**
|
|
248
|
+
* Array of all available route avoidance options.
|
|
249
|
+
*
|
|
250
|
+
* This constant defines the complete set of road/route features that can be avoided
|
|
251
|
+
* during route calculation. Use this to derive the {@link Avoidable} type or to validate
|
|
252
|
+
* user input against supported avoidance options.
|
|
253
|
+
*
|
|
254
|
+
* @remarks
|
|
255
|
+
* This is a readonly tuple used as the source of truth for valid avoidance types.
|
|
256
|
+
* The {@link Avoidable} type is derived from this array to ensure type safety.
|
|
257
|
+
*
|
|
258
|
+
* @example
|
|
259
|
+
* ```typescript
|
|
260
|
+
* // Check if a string is a valid avoidance type
|
|
261
|
+
* const userInput = 'tollRoads';
|
|
262
|
+
* if (avoidableTypes.includes(userInput as Avoidable)) {
|
|
263
|
+
* // userInput is valid
|
|
264
|
+
* }
|
|
265
|
+
*
|
|
266
|
+
* // Iterate over all available options
|
|
267
|
+
* avoidableTypes.forEach(type => {
|
|
268
|
+
* console.log(`Available option: ${type}`);
|
|
269
|
+
* });
|
|
270
|
+
* ```
|
|
271
|
+
*
|
|
272
|
+
* @group Route
|
|
273
|
+
*/
|
|
274
|
+
export declare const avoidableTypes: readonly ["tollRoads", "motorways", "ferries", "unpavedRoads", "carpools", "alreadyUsedRoads", "borderCrossings", "tunnels", "carTrains", "lowEmissionZones"];
|
|
275
|
+
|
|
276
|
+
/**
|
|
277
|
+
* Calculate the center of bbox
|
|
278
|
+
* @ignore
|
|
279
|
+
* @param bbox
|
|
280
|
+
* */
|
|
281
|
+
export declare const bboxCenter: (bbox: BBox) => Position;
|
|
282
|
+
|
|
283
|
+
/**
|
|
284
|
+
* @ignore
|
|
285
|
+
* @param bboxToContain
|
|
286
|
+
* @param bboxToExpand
|
|
287
|
+
*/
|
|
288
|
+
export declare const bboxExpandedWithBBox: (bboxToContain: OptionalBBox, bboxToExpand?: BBox) => OptionalBBox;
|
|
289
|
+
|
|
290
|
+
/**
|
|
291
|
+
* Expands the given bounding box with the given GeoJSON.
|
|
292
|
+
* * If the feature has also a bounding box, the latter is considered instead.
|
|
293
|
+
* * If the given bounding box is undefined, the given point is considered alone.
|
|
294
|
+
* This results in a zero-sized bounding box or the point bbox if it exists.
|
|
295
|
+
* @ignore
|
|
296
|
+
* @param geoJson
|
|
297
|
+
* @param bboxToExpand
|
|
298
|
+
*/
|
|
299
|
+
export declare const bboxExpandedWithGeoJSON: (geoJson: GeoJsonObject, bboxToExpand?: BBox) => OptionalBBox;
|
|
300
|
+
|
|
301
|
+
/**
|
|
302
|
+
* Expands the given bounding box with the given position.
|
|
303
|
+
* * If the given bounding box is undefined, the given position is considered alone.
|
|
304
|
+
* This results in a zero-sized bounding box.
|
|
305
|
+
* @ignore
|
|
306
|
+
* @param positionToContain
|
|
307
|
+
* @param bboxToExpand
|
|
308
|
+
*/
|
|
309
|
+
export declare const bboxExpandedWithPosition: (positionToContain: Position, bboxToExpand?: BBox) => OptionalBBox;
|
|
310
|
+
|
|
311
|
+
/**
|
|
312
|
+
* Calculates the bounding box which contains all the given bounding boxes.
|
|
313
|
+
* @ignore
|
|
314
|
+
* @param bboxes
|
|
315
|
+
*/
|
|
316
|
+
export declare const bboxFromBBoxes: (bboxes: OptionalBBox[]) => OptionalBBox;
|
|
317
|
+
|
|
318
|
+
/**
|
|
319
|
+
* Calculates a bounding box from an array of coordinates.
|
|
320
|
+
* * If the array is beyond a certain size, it doesn't scan it fully,
|
|
321
|
+
* for performance, but still ensures a decent accuracy.
|
|
322
|
+
*
|
|
323
|
+
* @ignore
|
|
324
|
+
* @param coordinates Should always be passed, but undefined is also supported, resulting in undefined bbox.
|
|
325
|
+
*/
|
|
326
|
+
export declare const bboxFromCoordsArray: (coordinates: Position[] | undefined) => OptionalBBox;
|
|
327
|
+
|
|
328
|
+
/**
|
|
329
|
+
* Extracts or calculates a bounding box from GeoJSON objects.
|
|
330
|
+
*
|
|
331
|
+
* This utility function handles various GeoJSON types and automatically determines
|
|
332
|
+
* the best approach to obtain a bounding box:
|
|
333
|
+
* - Uses existing `bbox` properties when available (fastest)
|
|
334
|
+
* - Calculates from geometry coordinates when needed
|
|
335
|
+
* - Aggregates bounding boxes from collections
|
|
336
|
+
* - Optimizes large geometries by sampling points for performance
|
|
337
|
+
*
|
|
338
|
+
* The function prioritizes existing bbox fields over geometry calculations, which is
|
|
339
|
+
* important for Point features from TomTom services that may have bbox representing
|
|
340
|
+
* a broader area than just the point location.
|
|
341
|
+
*
|
|
342
|
+
* @param hasBBox A GeoJSON object (Feature, FeatureCollection, Geometry, etc.) or array of such objects
|
|
343
|
+
* @returns The bounding box as `[minLng, minLat, maxLng, maxLat]`, or `undefined` if input is invalid
|
|
344
|
+
*
|
|
345
|
+
* @example
|
|
346
|
+
* ```typescript
|
|
347
|
+
* // From a Feature with existing bbox
|
|
348
|
+
* const place = await geocode({ key: 'key', query: 'Amsterdam' });
|
|
349
|
+
* const bbox = bboxFromGeoJSON(place);
|
|
350
|
+
* // Returns the bbox that came with the place
|
|
351
|
+
*
|
|
352
|
+
* // From a Polygon geometry (calculates bbox)
|
|
353
|
+
* const polygon = {
|
|
354
|
+
* type: 'Polygon',
|
|
355
|
+
* coordinates: [[
|
|
356
|
+
* [4.88, 52.36],
|
|
357
|
+
* [4.90, 52.36],
|
|
358
|
+
* [4.90, 52.38],
|
|
359
|
+
* [4.88, 52.38],
|
|
360
|
+
* [4.88, 52.36]
|
|
361
|
+
* ]]
|
|
362
|
+
* };
|
|
363
|
+
* const polyBbox = bboxFromGeoJSON(polygon);
|
|
364
|
+
* // Returns: [4.88, 52.36, 4.90, 52.38]
|
|
365
|
+
*
|
|
366
|
+
* // From a FeatureCollection (aggregates all features)
|
|
367
|
+
* const places = await search({ key: 'key', query: 'coffee' });
|
|
368
|
+
* const collectionBbox = bboxFromGeoJSON(places);
|
|
369
|
+
* // Returns bbox encompassing all search results
|
|
370
|
+
*
|
|
371
|
+
* // From a LineString (calculates from coordinates)
|
|
372
|
+
* const route = await calculateRoute({
|
|
373
|
+
* key: 'key',
|
|
374
|
+
* locations: [[4.9, 52.3], [4.5, 51.9]]
|
|
375
|
+
* });
|
|
376
|
+
* const routeBbox = bboxFromGeoJSON(route.routes[0].geometry);
|
|
377
|
+
* // Returns bbox containing the entire route
|
|
378
|
+
*
|
|
379
|
+
* // From an array of GeoJSON objects
|
|
380
|
+
* const multiBbox = bboxFromGeoJSON([place1, place2, place3]);
|
|
381
|
+
* // Returns bbox encompassing all three places
|
|
382
|
+
* ```
|
|
383
|
+
*
|
|
384
|
+
* @group Shared
|
|
385
|
+
*/
|
|
386
|
+
export declare const bboxFromGeoJSON: (hasBBox: HasBBox) => OptionalBBox;
|
|
387
|
+
|
|
388
|
+
/**
|
|
389
|
+
* Returns the given bbox if it has area, or undefined otherwise.
|
|
390
|
+
* @ignore
|
|
391
|
+
* @param bbox The BBox to verify. If undefined, undefined is returned.
|
|
392
|
+
*/
|
|
393
|
+
export declare const bboxOnlyIfWithArea: (bbox: OptionalBBox) => OptionalBBox;
|
|
394
|
+
|
|
395
|
+
/**
|
|
396
|
+
* Brand information for a POI.
|
|
397
|
+
*
|
|
398
|
+
* Identifies the commercial brand or chain associated with a location.
|
|
399
|
+
* Useful for finding specific franchise locations or filtering by brand.
|
|
400
|
+
*
|
|
401
|
+
* @example
|
|
402
|
+
* ```typescript
|
|
403
|
+
* const brand: Brand = {
|
|
404
|
+
* name: 'Starbucks'
|
|
405
|
+
* };
|
|
406
|
+
* ```
|
|
407
|
+
*
|
|
408
|
+
* @group Place
|
|
409
|
+
*/
|
|
410
|
+
export declare type Brand = {
|
|
411
|
+
/**
|
|
412
|
+
* Brand name.
|
|
413
|
+
*
|
|
414
|
+
* The commercial or franchise name (e.g., 'McDonald\'s', 'Shell', 'Hilton').
|
|
415
|
+
*/
|
|
416
|
+
name: string;
|
|
417
|
+
};
|
|
418
|
+
|
|
419
|
+
/**
|
|
420
|
+
* Traffic incident cause based on TPEG2-TEC standard.
|
|
421
|
+
*
|
|
422
|
+
* TPEG (Transport Protocol Experts Group) codes provide standardized
|
|
423
|
+
* classification of traffic incident causes.
|
|
424
|
+
*
|
|
425
|
+
* @see [TPEG2-TEC Standard](https://www.iso.org/standard/59231.html)
|
|
426
|
+
*
|
|
427
|
+
* @group Route
|
|
428
|
+
*/
|
|
429
|
+
export declare type CauseTEC = {
|
|
430
|
+
/**
|
|
431
|
+
* Main cause code from TPEG2-TEC standard.
|
|
432
|
+
*
|
|
433
|
+
* Primary classification of what caused the incident.
|
|
434
|
+
*/
|
|
435
|
+
mainCauseCode: number;
|
|
436
|
+
/**
|
|
437
|
+
* Optional sub-cause code from TPEG2-TEC standard.
|
|
438
|
+
*
|
|
439
|
+
* More specific classification under the main cause.
|
|
440
|
+
*/
|
|
441
|
+
subCauseCode?: number;
|
|
442
|
+
};
|
|
443
|
+
|
|
444
|
+
/**
|
|
445
|
+
* Data source reference for EV charging availability.
|
|
446
|
+
*
|
|
447
|
+
* @example
|
|
448
|
+
* ```typescript
|
|
449
|
+
* // Use this ID with the EV Charging Stations Availability service
|
|
450
|
+
* const dataSource: ChargingAvailabilityDataSource = {
|
|
451
|
+
* id: 'charging-park-123'
|
|
452
|
+
* };
|
|
453
|
+
* ```
|
|
454
|
+
*
|
|
455
|
+
* @group Place
|
|
456
|
+
*/
|
|
457
|
+
export declare type ChargingAvailabilityDataSource = {
|
|
458
|
+
/**
|
|
459
|
+
* Charging availability ID for the EV Charging Stations Availability service.
|
|
460
|
+
*
|
|
461
|
+
* Pass this value as the chargingAvailability parameter to fetch
|
|
462
|
+
* real-time status of charging points and connectors.
|
|
463
|
+
*/
|
|
464
|
+
id?: string;
|
|
465
|
+
};
|
|
466
|
+
|
|
467
|
+
/**
|
|
468
|
+
* Information about a specific charging connection at a charging point.
|
|
469
|
+
*
|
|
470
|
+
* Describes the technical specifications of a charging connector including
|
|
471
|
+
* plug type, voltage, current, and power ratings.
|
|
472
|
+
*
|
|
473
|
+
* @group Route
|
|
474
|
+
*/
|
|
475
|
+
export declare type ChargingConnectionInfo = {
|
|
476
|
+
/**
|
|
477
|
+
* The plug type for this charging connection.
|
|
478
|
+
*
|
|
479
|
+
* Must be compatible with the vehicle's charging port.
|
|
480
|
+
*/
|
|
481
|
+
plugType: PlugType;
|
|
482
|
+
/**
|
|
483
|
+
* The rated voltage in volts (V) of the charging process.
|
|
484
|
+
*
|
|
485
|
+
* Common values: 120V, 240V (AC), 400V, 800V (DC)
|
|
486
|
+
*/
|
|
487
|
+
voltageInV?: number;
|
|
488
|
+
/**
|
|
489
|
+
* The rated current in amperes (A) of the charging process.
|
|
490
|
+
*
|
|
491
|
+
* Determines the charging speed along with voltage.
|
|
492
|
+
*/
|
|
493
|
+
currentInA?: number;
|
|
494
|
+
/**
|
|
495
|
+
* The current type (AC/DC) for this charging connection.
|
|
496
|
+
*
|
|
497
|
+
* - AC: Alternating current (slower charging, 1-phase or 3-phase)
|
|
498
|
+
* - DC: Direct current (fast charging)
|
|
499
|
+
*/
|
|
500
|
+
currentType?: CurrentType;
|
|
501
|
+
/**
|
|
502
|
+
* The rated maximum power in kilowatts (kW) of the charging connection.
|
|
503
|
+
*
|
|
504
|
+
* Indicates the maximum charging speed. Common values:
|
|
505
|
+
* - 3-7 kW: Level 1/2 AC charging
|
|
506
|
+
* - 7-22 kW: Level 2 AC charging
|
|
507
|
+
* - 50-350 kW: DC fast charging
|
|
508
|
+
*/
|
|
509
|
+
chargingPowerInkW?: number;
|
|
510
|
+
/**
|
|
511
|
+
* The charging speed classification of this charging connection.
|
|
512
|
+
*
|
|
513
|
+
* @remarks
|
|
514
|
+
* - `slow`: Typically up to 12 kW (Level 1 AC charging)
|
|
515
|
+
* - `regular`: Typically between 12 kW and 50 kW (Level 2 AC charging)
|
|
516
|
+
* - `fast`: Typically between 50 kW and 150 kW (DC fast charging)
|
|
517
|
+
* - `ultra-fast`: Typically above 150 kW (High-power DC fast charging)
|
|
518
|
+
*/
|
|
519
|
+
chargingSpeed?: ChargingSpeed;
|
|
520
|
+
};
|
|
521
|
+
|
|
522
|
+
/**
|
|
523
|
+
* Information about an EV charging park.
|
|
524
|
+
*
|
|
525
|
+
* Describes the charging infrastructure at a location, including available
|
|
526
|
+
* connector types and counts. This is static information about the facility.
|
|
527
|
+
*
|
|
528
|
+
* @example
|
|
529
|
+
* ```typescript
|
|
530
|
+
* const chargingPark: ChargingPark = {
|
|
531
|
+
* connectors: [
|
|
532
|
+
* { id: 'c1', type: 'IEC62196Type2CCS', ratedPowerKW: 150, ... },
|
|
533
|
+
* { id: 'c2', type: 'Chademo', ratedPowerKW: 50, ... }
|
|
534
|
+
* ],
|
|
535
|
+
* connectorCounts: [
|
|
536
|
+
* { connector: {...}, count: 4, statusCounts: {} },
|
|
537
|
+
* { connector: {...}, count: 2, statusCounts: {} }
|
|
538
|
+
* ]
|
|
539
|
+
* };
|
|
540
|
+
* ```
|
|
541
|
+
*
|
|
542
|
+
* @group Place
|
|
543
|
+
*/
|
|
544
|
+
export declare type ChargingPark = {
|
|
545
|
+
/**
|
|
546
|
+
* Array of all unique connector types offered at this charging park.
|
|
547
|
+
*
|
|
548
|
+
* Each connector represents a different charging standard available.
|
|
549
|
+
* Use this to determine compatibility with your vehicle.
|
|
550
|
+
*/
|
|
551
|
+
connectors: Connector[];
|
|
552
|
+
/**
|
|
553
|
+
* Count of connectors grouped by type and power level.
|
|
554
|
+
*
|
|
555
|
+
* Provides aggregate counts without real-time availability status.
|
|
556
|
+
* This is static infrastructure information about how many of each
|
|
557
|
+
* connector type exist at the location.
|
|
558
|
+
*
|
|
559
|
+
* @remarks
|
|
560
|
+
* For real-time availability, use the availability property instead.
|
|
561
|
+
* This field shows total counts regardless of current operational status.
|
|
562
|
+
*/
|
|
563
|
+
connectorCounts: Omit<ConnectorAvailability, 'statusCounts'>[];
|
|
564
|
+
};
|
|
565
|
+
|
|
566
|
+
/**
|
|
567
|
+
* Charging park with optional real-time availability data.
|
|
568
|
+
*
|
|
569
|
+
* Combines static infrastructure information with dynamic availability status
|
|
570
|
+
* when available from the EV Charging Station Availability service.
|
|
571
|
+
*
|
|
572
|
+
* @example
|
|
573
|
+
* ```typescript
|
|
574
|
+
* const parkWithAvailability: ChargingParkWithAvailability = {
|
|
575
|
+
* connectors: [...],
|
|
576
|
+
* connectorCounts: [...],
|
|
577
|
+
* availability: {
|
|
578
|
+
* id: 'park-123',
|
|
579
|
+
* chargingStations: [...],
|
|
580
|
+
* chargingPointAvailability: { count: 10, statusCounts: {...} },
|
|
581
|
+
* // ... real-time status data
|
|
582
|
+
* }
|
|
583
|
+
* };
|
|
584
|
+
* ```
|
|
585
|
+
*
|
|
586
|
+
* @group Place
|
|
587
|
+
*/
|
|
588
|
+
export declare type ChargingParkWithAvailability = ChargingPark & {
|
|
589
|
+
/**
|
|
590
|
+
* Real-time availability information for this charging park.
|
|
591
|
+
*
|
|
592
|
+
* Present only if availability data has been fetched from the
|
|
593
|
+
* EV Charging Station Availability service. Contains current
|
|
594
|
+
* operational status for all charging points and connectors.
|
|
595
|
+
*
|
|
596
|
+
* @remarks
|
|
597
|
+
* To get availability data:
|
|
598
|
+
* 1. Extract the chargingAvailability ID from place.dataSources
|
|
599
|
+
* 2. Call the EV Charging Stations Availability service
|
|
600
|
+
* 3. Merge the result into this property
|
|
601
|
+
*/
|
|
602
|
+
availability?: ChargingStationsAvailability;
|
|
603
|
+
};
|
|
604
|
+
|
|
605
|
+
/**
|
|
606
|
+
* Payment option configuration for a charging station.
|
|
607
|
+
*
|
|
608
|
+
* Describes a specific payment method and associated payment brands/networks
|
|
609
|
+
* accepted at a charging location.
|
|
610
|
+
*
|
|
611
|
+
* @remarks
|
|
612
|
+
* The `brands` array may include specific payment network names or provider brands
|
|
613
|
+
* that are accepted when using the specified payment method.
|
|
614
|
+
*
|
|
615
|
+
* @example
|
|
616
|
+
* ```typescript
|
|
617
|
+
* // Credit card payment with specific brands
|
|
618
|
+
* const paymentOption: ChargingPaymentOption = {
|
|
619
|
+
* method: 'Direct',
|
|
620
|
+
* brands: ['Visa', 'Mastercard', 'American Express']
|
|
621
|
+
* };
|
|
622
|
+
*
|
|
623
|
+
* // Subscription-based payment
|
|
624
|
+
* const subscriptionOption: ChargingPaymentOption = {
|
|
625
|
+
* method: 'Subscription',
|
|
626
|
+
* brands: ['ChargePoint', 'EVgo']
|
|
627
|
+
* };
|
|
628
|
+
* ```
|
|
629
|
+
*
|
|
630
|
+
* @group Route
|
|
631
|
+
*/
|
|
632
|
+
export declare type ChargingPaymentOption = {
|
|
633
|
+
/**
|
|
634
|
+
* The payment method type accepted at this charging station.
|
|
635
|
+
*/
|
|
636
|
+
method: PaymentMethod;
|
|
637
|
+
/**
|
|
638
|
+
* Optional list of specific payment brands or networks accepted.
|
|
639
|
+
*
|
|
640
|
+
* Examples: credit card brands (Visa, Mastercard), charging networks
|
|
641
|
+
* (ChargePoint, EVgo), or payment apps (Apple Pay, Google Pay).
|
|
642
|
+
*/
|
|
643
|
+
brands?: string[];
|
|
644
|
+
};
|
|
645
|
+
|
|
646
|
+
/**
|
|
647
|
+
* Individual charging point (EVSE - Electric Vehicle Supply Equipment).
|
|
648
|
+
*
|
|
649
|
+
* Represents a single charging unit with one or more connectors.
|
|
650
|
+
*
|
|
651
|
+
* @remarks
|
|
652
|
+
* A charging station typically contains multiple charging points.
|
|
653
|
+
* Each charging point can have multiple connectors of different types.
|
|
654
|
+
*
|
|
655
|
+
* @example
|
|
656
|
+
* ```typescript
|
|
657
|
+
* const chargingPoint: ChargingPoint = {
|
|
658
|
+
* evseId: 'EVSE-001',
|
|
659
|
+
* status: 'Available',
|
|
660
|
+
* capabilities: ['CreditCardPayable', 'RemoteStartStopCapable', 'PlugAndCharge'],
|
|
661
|
+
* restrictions: ['EvOnly'],
|
|
662
|
+
* connectors: [
|
|
663
|
+
* { id: 'conn-1', type: 'IEC62196Type2CCS', ratedPowerKW: 150, ... }
|
|
664
|
+
* ]
|
|
665
|
+
* };
|
|
666
|
+
* ```
|
|
667
|
+
*
|
|
668
|
+
* @group Place
|
|
669
|
+
*/
|
|
670
|
+
export declare type ChargingPoint = {
|
|
671
|
+
/**
|
|
672
|
+
* Unique identifier for this charging point (EVSE ID).
|
|
673
|
+
*
|
|
674
|
+
* Often follows international standards like ISO 15118.
|
|
675
|
+
*/
|
|
676
|
+
evseId: string;
|
|
677
|
+
/**
|
|
678
|
+
* Capabilities and features of this charging point.
|
|
679
|
+
*
|
|
680
|
+
* Indicates payment options, remote control, and advanced features.
|
|
681
|
+
*/
|
|
682
|
+
capabilities: ChargingPointCapability[];
|
|
683
|
+
/**
|
|
684
|
+
* Usage or parking restrictions for this charging point.
|
|
685
|
+
*
|
|
686
|
+
* Specifies who can use the charger or special parking rules.
|
|
687
|
+
*/
|
|
688
|
+
restrictions: ChargingPointRestriction[];
|
|
689
|
+
/**
|
|
690
|
+
* Real-time operational status of this charging point.
|
|
691
|
+
*
|
|
692
|
+
* Indicates if the charger is available, occupied, or out of service.
|
|
693
|
+
*/
|
|
694
|
+
status: ChargingPointStatus;
|
|
695
|
+
/**
|
|
696
|
+
* Physical connectors available at this charging point.
|
|
697
|
+
*
|
|
698
|
+
* Each connector represents a different plug type and charging capability.
|
|
699
|
+
*/
|
|
700
|
+
connectors?: Connector[];
|
|
701
|
+
};
|
|
702
|
+
|
|
703
|
+
/**
|
|
704
|
+
* Aggregated availability count for charging points or connectors.
|
|
705
|
+
*
|
|
706
|
+
* Provides a summary of how many units are in each operational status.
|
|
707
|
+
*
|
|
708
|
+
* @example
|
|
709
|
+
* ```typescript
|
|
710
|
+
* const availability: ChargingPointAvailability = {
|
|
711
|
+
* count: 10, // Total of 10 charging points
|
|
712
|
+
* statusCounts: {
|
|
713
|
+
* Available: 6,
|
|
714
|
+
* Occupied: 3,
|
|
715
|
+
* OutOfService: 1
|
|
716
|
+
* }
|
|
717
|
+
* };
|
|
718
|
+
* ```
|
|
719
|
+
*
|
|
720
|
+
* @group Place
|
|
721
|
+
*/
|
|
722
|
+
export declare type ChargingPointAvailability = {
|
|
723
|
+
/**
|
|
724
|
+
* Total number of charging points or connectors.
|
|
725
|
+
*
|
|
726
|
+
* Depends on context:
|
|
727
|
+
* - For ChargingPointAvailability: total number of charging points
|
|
728
|
+
* - For ConnectorAvailability: total number of connectors of this type
|
|
729
|
+
*/
|
|
730
|
+
count: number;
|
|
731
|
+
/**
|
|
732
|
+
* Breakdown of units by operational status.
|
|
733
|
+
*
|
|
734
|
+
* Maps each status to the number of units in that status.
|
|
735
|
+
* Only includes statuses that have at least one unit.
|
|
736
|
+
*
|
|
737
|
+
* @example
|
|
738
|
+
* ```typescript
|
|
739
|
+
* statusCounts: {
|
|
740
|
+
* Available: 5,
|
|
741
|
+
* Occupied: 2,
|
|
742
|
+
* OutOfService: 1
|
|
743
|
+
* }
|
|
744
|
+
* ```
|
|
745
|
+
*/
|
|
746
|
+
statusCounts: Partial<Record<ChargingPointStatus, number>>;
|
|
747
|
+
};
|
|
748
|
+
|
|
749
|
+
/**
|
|
750
|
+
* Possible capabilities for a charging point.
|
|
751
|
+
* @group Place
|
|
752
|
+
*/
|
|
753
|
+
export declare const chargingPointCapabilities: readonly ["ChargingProfileCapable", "ChargingPreferencesCapable", "ChipCardSupport", "ContactlessCardSupport", "CreditCardPayable", "DebitCardPayable", "PedTerminal", "RemoteStartStopCapable", "Reservable", "RfidReader", "StartSessionConnectorRequired", "TokenGroupCapable", "UnlockCapable", "PlugAndCharge", "Unknown"];
|
|
754
|
+
|
|
755
|
+
/**
|
|
756
|
+
* Capability of a charging point.
|
|
757
|
+
*
|
|
758
|
+
* Describes features and payment options available at the charging point.
|
|
759
|
+
*
|
|
760
|
+
* @remarks
|
|
761
|
+
* - `ChargingProfileCapable`: Supports custom charging profiles
|
|
762
|
+
* - `ChargingPreferencesCapable`: Supports charging preferences
|
|
763
|
+
* - `ChipCardSupport`: Payment terminal accepts chip cards
|
|
764
|
+
* - `ContactlessCardSupport`: Payment terminal accepts contactless cards
|
|
765
|
+
* - `CreditCardPayable`: Accepts credit card payments
|
|
766
|
+
* - `DebitCardPayable`: Accepts debit card payments
|
|
767
|
+
* - `PedTerminal`: Has PIN entry device for payments
|
|
768
|
+
* - `RemoteStartStopCapable`: Can be started/stopped remotely
|
|
769
|
+
* - `Reservable`: Supports reservations
|
|
770
|
+
* - `RfidReader`: Supports RFID token authorization
|
|
771
|
+
* - `StartSessionConnectorRequired`: Requires connector ID to start session
|
|
772
|
+
* - `TokenGroupCapable`: Supports token groups for start/stop with different tokens
|
|
773
|
+
* - `UnlockCapable`: Connector can be remotely unlocked
|
|
774
|
+
* - `PlugAndCharge`: Supports ISO 15118 Plug & Charge (automatic authentication)
|
|
775
|
+
* - `Unknown`: Capability not specified
|
|
776
|
+
*
|
|
777
|
+
* @example
|
|
778
|
+
* ```typescript
|
|
779
|
+
* // Check for specific capabilities
|
|
780
|
+
* const capabilities: ChargingPointCapability[] = [
|
|
781
|
+
* 'CreditCardPayable',
|
|
782
|
+
* 'Reservable',
|
|
783
|
+
* 'RemoteStartStopCapable'
|
|
784
|
+
* ];
|
|
785
|
+
* ```
|
|
786
|
+
*
|
|
787
|
+
* @group Place
|
|
788
|
+
*/
|
|
789
|
+
export declare type ChargingPointCapability = (typeof chargingPointCapabilities)[number];
|
|
790
|
+
|
|
791
|
+
/**
|
|
792
|
+
* Parking or usage restrictions for a charging point.
|
|
793
|
+
*
|
|
794
|
+
* Indicates special requirements or limitations for using the charging location.
|
|
795
|
+
*
|
|
796
|
+
* @remarks
|
|
797
|
+
* - `EvOnly`: Reserved parking spot for electric vehicles only
|
|
798
|
+
* - `Plugged`: Parking allowed only while actively charging
|
|
799
|
+
* - `Disabled`: Reserved for disabled persons with valid identification
|
|
800
|
+
* - `Customers`: For customers/guests only (e.g., hotel, shop)
|
|
801
|
+
* - `Motorcycles`: Suitable only for electric motorcycles or scooters
|
|
802
|
+
*
|
|
803
|
+
* @example
|
|
804
|
+
* ```typescript
|
|
805
|
+
* const restrictions: ChargingPointRestriction[] = ['EvOnly', 'Customers'];
|
|
806
|
+
* ```
|
|
807
|
+
*
|
|
808
|
+
* @group Place
|
|
809
|
+
*/
|
|
810
|
+
export declare type ChargingPointRestriction = (typeof chargingPointRestrictions)[number];
|
|
811
|
+
|
|
812
|
+
/**
|
|
813
|
+
* @group Place
|
|
814
|
+
*/
|
|
815
|
+
export declare const chargingPointRestrictions: readonly ["EvOnly", "Plugged", "Disabled", "Customers", "Motorcycles"];
|
|
816
|
+
|
|
817
|
+
/**
|
|
818
|
+
* Real-time operational status of a charging point.
|
|
819
|
+
*
|
|
820
|
+
* @remarks
|
|
821
|
+
* - `Available`: Ready for use, not currently occupied
|
|
822
|
+
* - `Reserved`: Reserved by another user
|
|
823
|
+
* - `Occupied`: Currently in use
|
|
824
|
+
* - `OutOfService`: Not operational (maintenance or malfunction)
|
|
825
|
+
* - `Unknown`: Status information unavailable
|
|
826
|
+
*
|
|
827
|
+
* @example
|
|
828
|
+
* ```typescript
|
|
829
|
+
* const status: ChargingPointStatus = 'Available';
|
|
830
|
+
* ```
|
|
831
|
+
*
|
|
832
|
+
* @group Place
|
|
833
|
+
*/
|
|
834
|
+
export declare type ChargingPointStatus = (typeof chargingPointStatus)[number];
|
|
835
|
+
|
|
836
|
+
/**
|
|
837
|
+
* @group Place
|
|
838
|
+
*/
|
|
839
|
+
export declare const chargingPointStatus: readonly ["Available", "Reserved", "Occupied", "OutOfService", "Unknown"];
|
|
840
|
+
|
|
841
|
+
/**
|
|
842
|
+
* @group Route
|
|
843
|
+
*/
|
|
844
|
+
export declare type ChargingSpeed = 'slow' | 'regular' | 'fast' | 'ultra-fast';
|
|
845
|
+
|
|
846
|
+
/**
|
|
847
|
+
* Electric vehicle charging station.
|
|
848
|
+
*
|
|
849
|
+
* Represents a complete charging station facility with one or more charging points.
|
|
850
|
+
* A station is typically at a single location but may have multiple charging units.
|
|
851
|
+
*
|
|
852
|
+
* @example
|
|
853
|
+
* ```typescript
|
|
854
|
+
* const station: ChargingStation = {
|
|
855
|
+
* id: 'station-123',
|
|
856
|
+
* chargingPoints: [
|
|
857
|
+
* { evseId: 'EVSE-001', status: 'Available', ... },
|
|
858
|
+
* { evseId: 'EVSE-002', status: 'Occupied', ... }
|
|
859
|
+
* ]
|
|
860
|
+
* };
|
|
861
|
+
* ```
|
|
862
|
+
*
|
|
863
|
+
* @group Place
|
|
864
|
+
*/
|
|
865
|
+
export declare type ChargingStation = {
|
|
866
|
+
/**
|
|
867
|
+
* Unique identifier for the charging station.
|
|
868
|
+
*/
|
|
869
|
+
id: string;
|
|
870
|
+
/**
|
|
871
|
+
* Array of charging points available at this station.
|
|
872
|
+
*
|
|
873
|
+
* Each charging point can serve one vehicle at a time.
|
|
874
|
+
*/
|
|
875
|
+
chargingPoints: ChargingPoint[];
|
|
876
|
+
};
|
|
877
|
+
|
|
878
|
+
/**
|
|
879
|
+
* @group Place
|
|
880
|
+
*/
|
|
881
|
+
export declare const chargingStationAccessTypes: readonly ["Public", "Authorized", "Restricted", "Private", "Unknown"];
|
|
882
|
+
|
|
883
|
+
/**
|
|
884
|
+
* Access type for EV charging stations.
|
|
885
|
+
*
|
|
886
|
+
* Indicates who can use the charging station.
|
|
887
|
+
*
|
|
888
|
+
* @remarks
|
|
889
|
+
* - `Public`: Open to all electric vehicle drivers
|
|
890
|
+
* - `Authorized`: Requires membership, subscription, or authorization
|
|
891
|
+
* - `Restricted`: Limited access (e.g., hotel guests, employees only)
|
|
892
|
+
* - `Private`: Private use only, not available to public
|
|
893
|
+
* - `Unknown`: Access type not specified
|
|
894
|
+
*
|
|
895
|
+
* @example
|
|
896
|
+
* ```typescript
|
|
897
|
+
* const accessType: ChargingStationsAccessType = 'Public';
|
|
898
|
+
* ```
|
|
899
|
+
*
|
|
900
|
+
* @group Place
|
|
901
|
+
*/
|
|
902
|
+
export declare type ChargingStationsAccessType = (typeof chargingStationAccessTypes)[number];
|
|
903
|
+
|
|
904
|
+
/**
|
|
905
|
+
* Real-time availability information for EV charging stations.
|
|
906
|
+
*
|
|
907
|
+
* Provides comprehensive status information including individual charging points,
|
|
908
|
+
* aggregated availability by connector type, and access information.
|
|
909
|
+
*
|
|
910
|
+
* @remarks
|
|
911
|
+
* This data is typically retrieved from the EV Charging Stations Availability service
|
|
912
|
+
* and provides real-time operational status. Use this to:
|
|
913
|
+
* - Display available charging points on a map
|
|
914
|
+
* - Filter by connector type and status
|
|
915
|
+
* - Show aggregated availability statistics
|
|
916
|
+
* - Check if a station is accessible and open
|
|
917
|
+
*
|
|
918
|
+
* @example
|
|
919
|
+
* ```typescript
|
|
920
|
+
* const availability: ChargingStationsAvailability = {
|
|
921
|
+
* id: 'charging-park-123',
|
|
922
|
+
* chargingStations: [...], // Individual stations with detailed status
|
|
923
|
+
* chargingPointAvailability: {
|
|
924
|
+
* count: 10,
|
|
925
|
+
* statusCounts: { Available: 7, Occupied: 3 }
|
|
926
|
+
* },
|
|
927
|
+
* connectorAvailabilities: [
|
|
928
|
+
* { connector: { type: 'IEC62196Type2CCS', ratedPowerKW: 150, ... }, count: 4, ... },
|
|
929
|
+
* { connector: { type: 'Chademo', ratedPowerKW: 50, ... }, count: 2, ... }
|
|
930
|
+
* ],
|
|
931
|
+
* accessType: 'Public',
|
|
932
|
+
* openingHours: { mode: 'nextSevenDays', ... }
|
|
933
|
+
* };
|
|
934
|
+
* ```
|
|
935
|
+
*
|
|
936
|
+
* @group Place
|
|
937
|
+
*/
|
|
938
|
+
export declare type ChargingStationsAvailability = {
|
|
939
|
+
/**
|
|
940
|
+
* Unique identifier for the charging park or facility.
|
|
941
|
+
*
|
|
942
|
+
* Matches the ID used to request availability information.
|
|
943
|
+
*/
|
|
944
|
+
id: string;
|
|
945
|
+
/**
|
|
946
|
+
* Array of charging stations with detailed point-level status.
|
|
947
|
+
*
|
|
948
|
+
* Each station contains individual charging points with real-time status,
|
|
949
|
+
* capabilities, and connector information. Use this for detailed views
|
|
950
|
+
* showing the status of each charging point.
|
|
951
|
+
*/
|
|
952
|
+
chargingStations: ChargingStation[];
|
|
953
|
+
/**
|
|
954
|
+
* Aggregated availability counts across all charging points.
|
|
955
|
+
*
|
|
956
|
+
* Provides a quick summary of total charging points and their statuses.
|
|
957
|
+
* Useful for displaying overall availability without iterating through
|
|
958
|
+
* individual stations and points.
|
|
959
|
+
*
|
|
960
|
+
* @example
|
|
961
|
+
* ```typescript
|
|
962
|
+
* // Display: "7 of 10 chargers available"
|
|
963
|
+
* const total = chargingPointAvailability.count;
|
|
964
|
+
* const available = chargingPointAvailability.statusCounts.Available || 0;
|
|
965
|
+
* ```
|
|
966
|
+
*/
|
|
967
|
+
chargingPointAvailability: ChargingPointAvailability;
|
|
968
|
+
/**
|
|
969
|
+
* Availability grouped by connector type and power level.
|
|
970
|
+
*
|
|
971
|
+
* Useful for displaying connector-specific availability, allowing users
|
|
972
|
+
* to quickly see if their required connector type is available.
|
|
973
|
+
*
|
|
974
|
+
* @example
|
|
975
|
+
* ```typescript
|
|
976
|
+
* // Find availability for CCS Type 2 connectors
|
|
977
|
+
* const ccsAvailability = connectorAvailabilities.find(
|
|
978
|
+
* ca => ca.connector.type === 'IEC62196Type2CCS'
|
|
979
|
+
* );
|
|
980
|
+
* ```
|
|
981
|
+
*/
|
|
982
|
+
connectorAvailabilities: ConnectorAvailability[];
|
|
983
|
+
/**
|
|
984
|
+
* Access level for these charging stations.
|
|
985
|
+
*
|
|
986
|
+
* Indicates if stations are public, require authorization, or have restrictions.
|
|
987
|
+
*/
|
|
988
|
+
accessType: ChargingStationsAccessType;
|
|
989
|
+
/**
|
|
990
|
+
* Operating hours for the charging facility.
|
|
991
|
+
*
|
|
992
|
+
* Indicates when the charging park is accessible. Note that even if chargers
|
|
993
|
+
* are available 24/7, the facility itself may have restricted access hours.
|
|
994
|
+
*/
|
|
995
|
+
openingHours?: OpeningHours;
|
|
996
|
+
};
|
|
997
|
+
|
|
998
|
+
/**
|
|
999
|
+
* Information about a battery charging stop along an electric vehicle route.
|
|
1000
|
+
*
|
|
1001
|
+
* A GeoJSON Feature representing a charging location where an EV needs to stop
|
|
1002
|
+
* and recharge during a long-distance journey (LDEVR - Long Distance EV Routing).
|
|
1003
|
+
*
|
|
1004
|
+
* @remarks
|
|
1005
|
+
* **Structure:**
|
|
1006
|
+
* - Extends {@link Place} (GeoJSON Feature with Point geometry)
|
|
1007
|
+
* - Includes all {@link CommonPlaceProps} (type, address, poi, chargingPark, etc.)
|
|
1008
|
+
* - Adds charging-specific properties from {@link ChargingStopProps}
|
|
1009
|
+
*
|
|
1010
|
+
* **When Provided:**
|
|
1011
|
+
* - For EV routes where charging is needed to reach the destination
|
|
1012
|
+
* - At the end of route legs where battery charge is insufficient for the next leg
|
|
1013
|
+
* - Contains both required and optional charging stop details
|
|
1014
|
+
*
|
|
1015
|
+
* **Key Properties:**
|
|
1016
|
+
* - `id`: Unique string identifier for this feature, corresponds to charging park ID.
|
|
1017
|
+
* - `type`: Always 'Feature' (GeoJSON)
|
|
1018
|
+
* - `geometry`: Point geometry with charging park coordinates [longitude, latitude]
|
|
1019
|
+
* - `properties`: Combined common place properties and charging-specific details
|
|
1020
|
+
* - Standard place info: `type`, `address`, `poi`, `chargingPark`
|
|
1021
|
+
* - Charging details: `chargingParkId`, `chargingParkUuid`, `chargingConnections`
|
|
1022
|
+
* - Route planning: `chargingTimeInSeconds`, `targetChargeInkWh`, `targetChargeInPCT`
|
|
1023
|
+
* - Metadata: `chargingParkName`, `chargingParkOperatorName`, `chargingParkPowerInkW`
|
|
1024
|
+
*
|
|
1025
|
+
* @example
|
|
1026
|
+
* ```typescript
|
|
1027
|
+
* const chargingStop: ChargingStop = {
|
|
1028
|
+
* id: 'charging-stop-1',
|
|
1029
|
+
* type: 'Feature',
|
|
1030
|
+
* geometry: {
|
|
1031
|
+
* type: 'Point',
|
|
1032
|
+
* coordinates: [4.8945, 52.3667]
|
|
1033
|
+
* },
|
|
1034
|
+
* properties: {
|
|
1035
|
+
* // CommonPlaceProps
|
|
1036
|
+
* type: 'POI',
|
|
1037
|
+
* address: {
|
|
1038
|
+
* freeformAddress: 'Amsterdam Central Station',
|
|
1039
|
+
* municipality: 'Amsterdam',
|
|
1040
|
+
* country: 'Netherlands'
|
|
1041
|
+
* },
|
|
1042
|
+
* // ChargingStopProps
|
|
1043
|
+
* chargingParkId: 'park123',
|
|
1044
|
+
* chargingParkUuid: 'uuid-123-456',
|
|
1045
|
+
* chargingParkName: 'Amsterdam Central Station - North Side',
|
|
1046
|
+
* chargingParkOperatorName: 'Ionity',
|
|
1047
|
+
* chargingConnections: [{
|
|
1048
|
+
* plugType: 'IEC_62196_Type_2_Connector_Cable_Attached',
|
|
1049
|
+
* chargingPowerInkW: 150,
|
|
1050
|
+
* currentType: 'DC'
|
|
1051
|
+
* }],
|
|
1052
|
+
* chargingTimeInSeconds: 1200,
|
|
1053
|
+
* chargingParkPowerInkW: 150,
|
|
1054
|
+
* chargingStopType: 'Auto_Generated',
|
|
1055
|
+
* targetChargeInkWh: 75,
|
|
1056
|
+
* targetChargeInPCT: 75
|
|
1057
|
+
* }
|
|
1058
|
+
* };
|
|
1059
|
+
* ```
|
|
1060
|
+
*
|
|
1061
|
+
* @group Route
|
|
1062
|
+
*/
|
|
1063
|
+
export declare type ChargingStop = Place<ChargingStopProps>;
|
|
1064
|
+
|
|
1065
|
+
/**
|
|
1066
|
+
* Properties specific to charging stops in electric vehicle routes.
|
|
1067
|
+
*
|
|
1068
|
+
* These properties are combined with {@link CommonPlaceProps} to form
|
|
1069
|
+
* a complete {@link ChargingStop} object.
|
|
1070
|
+
*
|
|
1071
|
+
* @group Route
|
|
1072
|
+
*/
|
|
1073
|
+
export declare type ChargingStopProps = CommonPlaceProps & {
|
|
1074
|
+
/**
|
|
1075
|
+
* Unique identifier for the charging park.
|
|
1076
|
+
*/
|
|
1077
|
+
chargingParkId: string;
|
|
1078
|
+
/**
|
|
1079
|
+
* Array of available charging connections at this park.
|
|
1080
|
+
*
|
|
1081
|
+
* Each connection specifies plug type, power ratings, and current type.
|
|
1082
|
+
*/
|
|
1083
|
+
chargingConnections: ChargingConnectionInfo[];
|
|
1084
|
+
/**
|
|
1085
|
+
* Estimated time in seconds required to charge the battery at this stop.
|
|
1086
|
+
*
|
|
1087
|
+
* Calculated based on:
|
|
1088
|
+
* - Current battery charge level
|
|
1089
|
+
* - Target charge level for next leg
|
|
1090
|
+
* - Charging power of the selected connector
|
|
1091
|
+
* - Battery charging curve characteristics
|
|
1092
|
+
*/
|
|
1093
|
+
chargingTimeInSeconds: number;
|
|
1094
|
+
/**
|
|
1095
|
+
* The unique UUID identifier of this charging park.
|
|
1096
|
+
*
|
|
1097
|
+
* This universally unique identifier can be used to:
|
|
1098
|
+
* - Check real-time availability of charging stations
|
|
1099
|
+
* - Query detailed charging park information
|
|
1100
|
+
* - Track charging park status and updates
|
|
1101
|
+
* - Cross-reference with TomTom EV Charging Stations API
|
|
1102
|
+
*
|
|
1103
|
+
* @remarks
|
|
1104
|
+
* Use this UUID with the EV Charging Stations Availability API to get
|
|
1105
|
+
* real-time connector availability before arriving at the charging stop.
|
|
1106
|
+
*
|
|
1107
|
+
* @example
|
|
1108
|
+
* ```typescript
|
|
1109
|
+
* // Use UUID to check availability
|
|
1110
|
+
* const availability = await evChargingAvailability.get({
|
|
1111
|
+
* chargingAvailability: chargingStop.chargingParkUuid
|
|
1112
|
+
* });
|
|
1113
|
+
* ```
|
|
1114
|
+
*/
|
|
1115
|
+
chargingParkUuid: string;
|
|
1116
|
+
/**
|
|
1117
|
+
* Detailed information about the recommended charging connection for this stop.
|
|
1118
|
+
*
|
|
1119
|
+
* Specifies which connector type, power level, and charging specifications
|
|
1120
|
+
* should be used at this charging park for optimal charging.
|
|
1121
|
+
*
|
|
1122
|
+
* @remarks
|
|
1123
|
+
* This is typically the best connector available that matches:
|
|
1124
|
+
* - Vehicle's charging capabilities
|
|
1125
|
+
* - Required charging speed for the journey
|
|
1126
|
+
* - Availability at the charging park
|
|
1127
|
+
*/
|
|
1128
|
+
chargingConnectionInfo?: ChargingConnectionInfo;
|
|
1129
|
+
/**
|
|
1130
|
+
* The common name of this charging park.
|
|
1131
|
+
*
|
|
1132
|
+
* A human-readable name for the charging location, often including nearby
|
|
1133
|
+
* landmarks, business names, or descriptive identifiers.
|
|
1134
|
+
*
|
|
1135
|
+
* @example
|
|
1136
|
+
* ```typescript
|
|
1137
|
+
* chargingParkName: "Amsterdam Central Station - North Side"
|
|
1138
|
+
* chargingParkName: "Shell Recharge - Highway A2"
|
|
1139
|
+
* ```
|
|
1140
|
+
*/
|
|
1141
|
+
chargingParkName?: string;
|
|
1142
|
+
/**
|
|
1143
|
+
* The charging network operator or provider name.
|
|
1144
|
+
*
|
|
1145
|
+
* Identifies the company or organization that operates this charging park.
|
|
1146
|
+
*
|
|
1147
|
+
* @remarks
|
|
1148
|
+
* Common operators include: Shell Recharge, Ionity, ChargePoint, EVgo,
|
|
1149
|
+
* Tesla Supercharger, Fastned, etc.
|
|
1150
|
+
*
|
|
1151
|
+
* @example
|
|
1152
|
+
* ```typescript
|
|
1153
|
+
* chargingParkOperatorName: "Ionity"
|
|
1154
|
+
* chargingParkOperatorName: "Shell Recharge"
|
|
1155
|
+
* ```
|
|
1156
|
+
*/
|
|
1157
|
+
chargingParkOperatorName?: string;
|
|
1158
|
+
/**
|
|
1159
|
+
* Maximum available charging power at this charging park in kilowatts (kW).
|
|
1160
|
+
*
|
|
1161
|
+
* Represents the highest power output available across all charging connections
|
|
1162
|
+
* at this location. Actual charging power may be lower depending on:
|
|
1163
|
+
* - Vehicle capabilities
|
|
1164
|
+
* - Selected connector type
|
|
1165
|
+
* - Battery state of charge
|
|
1166
|
+
* - Grid conditions
|
|
1167
|
+
*
|
|
1168
|
+
* @remarks
|
|
1169
|
+
* This is typically the power of the fastest charger at the park.
|
|
1170
|
+
*
|
|
1171
|
+
* @example
|
|
1172
|
+
* ```typescript
|
|
1173
|
+
* // A charging park with multiple chargers
|
|
1174
|
+
* chargingParkPowerInkW: 150 // Has at least one 150kW charger
|
|
1175
|
+
* ```
|
|
1176
|
+
*/
|
|
1177
|
+
chargingParkPowerInkW?: number;
|
|
1178
|
+
/**
|
|
1179
|
+
* The best charging speed classification of this charging park amongst its connectors.
|
|
1180
|
+
*
|
|
1181
|
+
* @remarks
|
|
1182
|
+
* - `slow`: Typically up to 12 kW (Level 1 AC charging)
|
|
1183
|
+
* - `regular`: Typically between 12 kW and 50 kW (Level 2 AC charging)
|
|
1184
|
+
* - `fast`: Typically between 50 kW and 150 kW (DC fast charging)
|
|
1185
|
+
* - `ultra-fast`: Typically above 150 kW (High-power DC fast charging)
|
|
1186
|
+
*/
|
|
1187
|
+
chargingParkSpeed?: ChargingSpeed;
|
|
1188
|
+
/**
|
|
1189
|
+
* The source of the charging stop at the end of this leg.
|
|
1190
|
+
*
|
|
1191
|
+
* Indicates whether the charging stop was automatically calculated by the
|
|
1192
|
+
* routing engine or explicitly specified by the user.
|
|
1193
|
+
*
|
|
1194
|
+
* @remarks
|
|
1195
|
+
* - `Auto_Generated`: The routing engine selected this charging stop to optimize the route
|
|
1196
|
+
* - `User_Defined`: The user explicitly requested a charging stop at this location
|
|
1197
|
+
*/
|
|
1198
|
+
chargingStopType?: 'Auto_Generated' | 'User_Defined';
|
|
1199
|
+
/**
|
|
1200
|
+
* Available payment options at this charging park.
|
|
1201
|
+
*
|
|
1202
|
+
* Lists the payment methods accepted at this charging location.
|
|
1203
|
+
* Multiple options may be available.
|
|
1204
|
+
*/
|
|
1205
|
+
chargingParkPaymentOptions?: ChargingPaymentOption[];
|
|
1206
|
+
/**
|
|
1207
|
+
* Target battery charge level in kilowatt-hours (kWh) after charging.
|
|
1208
|
+
*
|
|
1209
|
+
* The routing engine determines the optimal charge level to minimize
|
|
1210
|
+
* total journey time while ensuring the vehicle can reach the next stop.
|
|
1211
|
+
*/
|
|
1212
|
+
targetChargeInkWh: number;
|
|
1213
|
+
/**
|
|
1214
|
+
* Target battery charge level as a percentage of maximum capacity.
|
|
1215
|
+
*
|
|
1216
|
+
* Derived from targetChargeInkWh and the vehicle's maximum battery capacity.
|
|
1217
|
+
*
|
|
1218
|
+
* @example
|
|
1219
|
+
* ```typescript
|
|
1220
|
+
* // If maxChargeInkWh is 100 and targetChargeInkWh is 80
|
|
1221
|
+
* targetChargeInPCT // 80
|
|
1222
|
+
* ```
|
|
1223
|
+
*/
|
|
1224
|
+
targetChargeInPCT?: number;
|
|
1225
|
+
};
|
|
1226
|
+
|
|
1227
|
+
/**
|
|
1228
|
+
* POI category classification with localized names.
|
|
1229
|
+
*
|
|
1230
|
+
* Provides both a standardized category code and human-readable names
|
|
1231
|
+
* in multiple languages for displaying POI types.
|
|
1232
|
+
*
|
|
1233
|
+
* @example
|
|
1234
|
+
* ```typescript
|
|
1235
|
+
* const classification: Classification = {
|
|
1236
|
+
* code: 'RESTAURANT',
|
|
1237
|
+
* names: [
|
|
1238
|
+
* { nameLocale: 'en-US', name: 'Restaurant' },
|
|
1239
|
+
* { nameLocale: 'fr-FR', name: 'Restaurant' },
|
|
1240
|
+
* { nameLocale: 'de-DE', name: 'Restaurant' }
|
|
1241
|
+
* ]
|
|
1242
|
+
* };
|
|
1243
|
+
* ```
|
|
1244
|
+
*
|
|
1245
|
+
* @group Place
|
|
1246
|
+
*/
|
|
1247
|
+
export declare type Classification = {
|
|
1248
|
+
/**
|
|
1249
|
+
* Standardized category code.
|
|
1250
|
+
*
|
|
1251
|
+
* Use this for programmatic filtering and identification of POI types.
|
|
1252
|
+
* See {@link POICategory} for available codes.
|
|
1253
|
+
*/
|
|
1254
|
+
code: POICategory;
|
|
1255
|
+
/**
|
|
1256
|
+
* Localized names for this category.
|
|
1257
|
+
*
|
|
1258
|
+
* Array of names in different languages/locales for internationalization support.
|
|
1259
|
+
*/
|
|
1260
|
+
names: LocalizedName[];
|
|
1261
|
+
};
|
|
1262
|
+
|
|
1263
|
+
/**
|
|
1264
|
+
* Summary information for routes using combustion engine vehicles.
|
|
1265
|
+
*
|
|
1266
|
+
* Extends the base summary with fuel consumption estimates.
|
|
1267
|
+
*
|
|
1268
|
+
* @group Route
|
|
1269
|
+
*/
|
|
1270
|
+
export declare type CombustionSummary = SummaryBase & {
|
|
1271
|
+
/**
|
|
1272
|
+
* Estimated fuel consumption in liters for the route or leg.
|
|
1273
|
+
*
|
|
1274
|
+
* Calculated using the Combustion Consumption Model based on:
|
|
1275
|
+
* - Vehicle speed-to-consumption rates
|
|
1276
|
+
* - Route characteristics (elevation, road types)
|
|
1277
|
+
* - Driving conditions
|
|
1278
|
+
*
|
|
1279
|
+
* @remarks
|
|
1280
|
+
* Included only if:
|
|
1281
|
+
* - Vehicle engine type is set to combustion
|
|
1282
|
+
* - Speed-to-consumption rates are specified in the request
|
|
1283
|
+
*
|
|
1284
|
+
* The value is always positive (no fuel recuperation).
|
|
1285
|
+
*
|
|
1286
|
+
* @example
|
|
1287
|
+
* ```typescript
|
|
1288
|
+
* // A 100km route might consume
|
|
1289
|
+
* fuelConsumptionInLiters: 7.5 // 7.5 liters
|
|
1290
|
+
* ```
|
|
1291
|
+
*/
|
|
1292
|
+
fuelConsumptionInLiters?: number;
|
|
1293
|
+
};
|
|
1294
|
+
|
|
1295
|
+
/**
|
|
1296
|
+
* Common properties shared by all place types.
|
|
1297
|
+
*
|
|
1298
|
+
* Provides the base structure for place information including address,
|
|
1299
|
+
* entry points, POI details, and data source references.
|
|
1300
|
+
*
|
|
1301
|
+
* @group Place
|
|
1302
|
+
*/
|
|
1303
|
+
export declare type CommonPlaceProps = {
|
|
1304
|
+
/**
|
|
1305
|
+
* Type classification of this place.
|
|
1306
|
+
*/
|
|
1307
|
+
type: PlaceType;
|
|
1308
|
+
/**
|
|
1309
|
+
* Structured address components.
|
|
1310
|
+
*/
|
|
1311
|
+
address: AddressProperties;
|
|
1312
|
+
/**
|
|
1313
|
+
* Geographic entity type(s).
|
|
1314
|
+
*
|
|
1315
|
+
* Present only when type === 'Geography'.
|
|
1316
|
+
* Array can contain multiple types for areas with multiple administrative roles.
|
|
1317
|
+
*/
|
|
1318
|
+
geographyType?: GeographyType[];
|
|
1319
|
+
/**
|
|
1320
|
+
* Mapcode representations of this location.
|
|
1321
|
+
*
|
|
1322
|
+
* Alternative location codes that can be used instead of coordinates.
|
|
1323
|
+
*/
|
|
1324
|
+
mapcodes?: Mapcode[];
|
|
1325
|
+
/**
|
|
1326
|
+
* Physical entry points (entrances) to the place.
|
|
1327
|
+
*
|
|
1328
|
+
* Useful for navigation to direct users to the correct entrance.
|
|
1329
|
+
*/
|
|
1330
|
+
entryPoints?: EntryPoint[];
|
|
1331
|
+
/**
|
|
1332
|
+
* Address ranges along a street segment.
|
|
1333
|
+
*
|
|
1334
|
+
* Present only when type === 'Address Range'.
|
|
1335
|
+
*/
|
|
1336
|
+
addressRanges?: AddressRanges;
|
|
1337
|
+
/**
|
|
1338
|
+
* Point of Interest information.
|
|
1339
|
+
*
|
|
1340
|
+
* Present only when type === 'POI'. Contains business details, categories, hours, etc.
|
|
1341
|
+
*/
|
|
1342
|
+
poi?: POI;
|
|
1343
|
+
/**
|
|
1344
|
+
* Related Points of Interest.
|
|
1345
|
+
*
|
|
1346
|
+
* Parent or child POIs (e.g., stores within a mall, a mall containing stores).
|
|
1347
|
+
*/
|
|
1348
|
+
relatedPois?: RelatedPOI[];
|
|
1349
|
+
/**
|
|
1350
|
+
* EV charging infrastructure information.
|
|
1351
|
+
*
|
|
1352
|
+
* Present only for Electric Vehicle charging station POIs.
|
|
1353
|
+
*/
|
|
1354
|
+
chargingPark?: ChargingPark;
|
|
1355
|
+
/**
|
|
1356
|
+
* References to additional data sources.
|
|
1357
|
+
*
|
|
1358
|
+
* IDs for fetching more detailed information from other services
|
|
1359
|
+
* (geometry, availability, POI details).
|
|
1360
|
+
*/
|
|
1361
|
+
dataSources?: PlaceDataSources;
|
|
1362
|
+
};
|
|
1363
|
+
|
|
1364
|
+
/**
|
|
1365
|
+
* Electric vehicle charging connector with specifications.
|
|
1366
|
+
*
|
|
1367
|
+
* Describes a specific charging connector available at a charging point,
|
|
1368
|
+
* including its technical specifications and capabilities.
|
|
1369
|
+
*
|
|
1370
|
+
* @example
|
|
1371
|
+
* ```typescript
|
|
1372
|
+
* const connector: Connector = {
|
|
1373
|
+
* id: 'connector-1',
|
|
1374
|
+
* type: 'IEC62196Type2CCS',
|
|
1375
|
+
* ratedPowerKW: 150,
|
|
1376
|
+
* voltageV: 400,
|
|
1377
|
+
* currentA: 375,
|
|
1378
|
+
* currentType: 'DC'
|
|
1379
|
+
* };
|
|
1380
|
+
* ```
|
|
1381
|
+
*
|
|
1382
|
+
* @group Place
|
|
1383
|
+
*/
|
|
1384
|
+
export declare type Connector = {
|
|
1385
|
+
/**
|
|
1386
|
+
* Unique identifier for this connector.
|
|
1387
|
+
*/
|
|
1388
|
+
id: string;
|
|
1389
|
+
/**
|
|
1390
|
+
* Physical connector type/standard.
|
|
1391
|
+
*
|
|
1392
|
+
* Must match the vehicle's charging port for compatibility.
|
|
1393
|
+
*/
|
|
1394
|
+
type: ConnectorType;
|
|
1395
|
+
/**
|
|
1396
|
+
* Rated charging power in kilowatts (kW).
|
|
1397
|
+
*
|
|
1398
|
+
* Indicates the maximum charging speed. Common values:
|
|
1399
|
+
* - 3-7 kW: Level 1/2 AC charging
|
|
1400
|
+
* - 7-22 kW: Level 2 AC charging
|
|
1401
|
+
* - 50-150 kW: DC fast charging
|
|
1402
|
+
* - 150-350 kW: DC ultra-fast charging
|
|
1403
|
+
*/
|
|
1404
|
+
ratedPowerKW: number;
|
|
1405
|
+
/**
|
|
1406
|
+
* Voltage in volts (V).
|
|
1407
|
+
*
|
|
1408
|
+
* Operating voltage for this connector.
|
|
1409
|
+
* Common values: 120V, 240V (AC), 400V, 800V (DC)
|
|
1410
|
+
*/
|
|
1411
|
+
voltageV: number;
|
|
1412
|
+
/**
|
|
1413
|
+
* Current in amperes (A).
|
|
1414
|
+
*
|
|
1415
|
+
* Maximum current capacity for this connector.
|
|
1416
|
+
*/
|
|
1417
|
+
currentA: number;
|
|
1418
|
+
/**
|
|
1419
|
+
* Type of electrical current (AC or DC).
|
|
1420
|
+
*/
|
|
1421
|
+
currentType: CurrentType;
|
|
1422
|
+
};
|
|
1423
|
+
|
|
1424
|
+
/**
|
|
1425
|
+
* Availability information for a specific connector type.
|
|
1426
|
+
*
|
|
1427
|
+
* Extends ChargingPointAvailability with connector specifications,
|
|
1428
|
+
* useful for displaying available connectors grouped by type and power.
|
|
1429
|
+
*
|
|
1430
|
+
* @example
|
|
1431
|
+
* ```typescript
|
|
1432
|
+
* const connectorAvailability: ConnectorAvailability = {
|
|
1433
|
+
* connector: {
|
|
1434
|
+
* type: 'IEC62196Type2CCS',
|
|
1435
|
+
* ratedPowerKW: 150,
|
|
1436
|
+
* // ... other connector properties
|
|
1437
|
+
* },
|
|
1438
|
+
* count: 4,
|
|
1439
|
+
* statusCounts: {
|
|
1440
|
+
* Available: 3,
|
|
1441
|
+
* Occupied: 1
|
|
1442
|
+
* }
|
|
1443
|
+
* };
|
|
1444
|
+
* ```
|
|
1445
|
+
*
|
|
1446
|
+
* @group Place
|
|
1447
|
+
*/
|
|
1448
|
+
export declare type ConnectorAvailability = ChargingPointAvailability & {
|
|
1449
|
+
/**
|
|
1450
|
+
* Connector specifications for this availability group.
|
|
1451
|
+
*
|
|
1452
|
+
* All connectors in this availability group share these specifications
|
|
1453
|
+
* (same type, power rating, voltage, etc.).
|
|
1454
|
+
*/
|
|
1455
|
+
connector: Connector;
|
|
1456
|
+
};
|
|
1457
|
+
|
|
1458
|
+
/**
|
|
1459
|
+
* Electric vehicle charging connector type.
|
|
1460
|
+
*
|
|
1461
|
+
* Defines the physical connector standard used for EV charging.
|
|
1462
|
+
* Different regions and vehicle manufacturers use different connector types.
|
|
1463
|
+
*
|
|
1464
|
+
* @remarks
|
|
1465
|
+
* Common connector types:
|
|
1466
|
+
* - `IEC62196Type1`: SAE J1772 (North America, Japan)
|
|
1467
|
+
* - `IEC62196Type2CableAttached`: Mennekes/Type 2 (Europe)
|
|
1468
|
+
* - `IEC62196Type1CCS`: CCS Type 1 (Combined Charging System)
|
|
1469
|
+
* - `IEC62196Type2CCS`: CCS Type 2 (Combined Charging System)
|
|
1470
|
+
* - `Chademo`: CHAdeMO (Japan, DC fast charging)
|
|
1471
|
+
* - `Tesla`: Tesla proprietary connector
|
|
1472
|
+
* - `GBT20234Part2/3`: Chinese GB/T standard
|
|
1473
|
+
*
|
|
1474
|
+
* @example
|
|
1475
|
+
* ```typescript
|
|
1476
|
+
* const connectorType: ConnectorType = 'IEC62196Type2CCS';
|
|
1477
|
+
* ```
|
|
1478
|
+
*
|
|
1479
|
+
* @group Place
|
|
1480
|
+
*/
|
|
1481
|
+
export declare type ConnectorType = (typeof connectorTypes)[number];
|
|
1482
|
+
|
|
1483
|
+
/**
|
|
1484
|
+
* @group Place
|
|
1485
|
+
*/
|
|
1486
|
+
export declare const connectorTypes: readonly ["StandardHouseholdCountrySpecific", "IEC62196Type1", "IEC62196Type1CCS", "IEC62196Type2CableAttached", "IEC62196Type2Outlet", "IEC62196Type2CCS", "IEC62196Type3", "Chademo", "GBT20234Part2", "GBT20234Part3", "IEC60309AC3PhaseRed", "IEC60309AC1PhaseBlue", "IEC60309DCWhite", "Tesla"];
|
|
1487
|
+
|
|
1488
|
+
/**
|
|
1489
|
+
* Route section representing passage through a country.
|
|
1490
|
+
*
|
|
1491
|
+
* Used to identify which countries the route traverses, useful for:
|
|
1492
|
+
* - Border crossing planning
|
|
1493
|
+
* - International routing costs
|
|
1494
|
+
* - Regulatory requirements
|
|
1495
|
+
*
|
|
1496
|
+
* @example
|
|
1497
|
+
* ```typescript
|
|
1498
|
+
* const countrySection: CountrySectionProps = {
|
|
1499
|
+
* id: 'country-section-1',
|
|
1500
|
+
* startPointIndex: 0,
|
|
1501
|
+
* endPointIndex: 150,
|
|
1502
|
+
* countryCodeISO3: 'NLD', // Netherlands
|
|
1503
|
+
* lengthInMeters: 25000
|
|
1504
|
+
* };
|
|
1505
|
+
* ```
|
|
1506
|
+
*
|
|
1507
|
+
* @group Route
|
|
1508
|
+
*/
|
|
1509
|
+
export declare type CountrySectionProps = SectionProps & {
|
|
1510
|
+
/**
|
|
1511
|
+
* Three-letter ISO 3166-1 alpha-3 country code.
|
|
1512
|
+
*
|
|
1513
|
+
* Examples: 'USA', 'GBR', 'NLD', 'DEU', 'FRA'
|
|
1514
|
+
*
|
|
1515
|
+
* @see [ISO 3166-1 alpha-3 codes](https://en.wikipedia.org/wiki/ISO_3166-1_alpha-3)
|
|
1516
|
+
*/
|
|
1517
|
+
countryCodeISO3: string;
|
|
1518
|
+
};
|
|
1519
|
+
|
|
1520
|
+
/**
|
|
1521
|
+
* Current type for electric vehicle charging.
|
|
1522
|
+
*
|
|
1523
|
+
* Specifies the type of electrical current used for charging.
|
|
1524
|
+
*
|
|
1525
|
+
* @remarks
|
|
1526
|
+
* - `AC1`: Alternating Current, single-phase (slower charging, typically 3-7 kW)
|
|
1527
|
+
* - `AC3`: Alternating Current, three-phase (faster AC charging, up to 22 kW)
|
|
1528
|
+
* - `DC`: Direct Current (DC fast charging, 50-350+ kW)
|
|
1529
|
+
*
|
|
1530
|
+
* @example
|
|
1531
|
+
* ```typescript
|
|
1532
|
+
* const currentType: CurrentType = 'DC'; // DC fast charging
|
|
1533
|
+
* ```
|
|
1534
|
+
*
|
|
1535
|
+
* @group Place
|
|
1536
|
+
*/
|
|
1537
|
+
export declare type CurrentType = (typeof currentTypes)[number];
|
|
1538
|
+
|
|
1539
|
+
/**
|
|
1540
|
+
* @group Place
|
|
1541
|
+
*/
|
|
1542
|
+
export declare const currentTypes: readonly ["AC1", "AC3", "DC"];
|
|
1543
|
+
|
|
1544
|
+
/**
|
|
1545
|
+
* Default global configuration values.
|
|
1546
|
+
*
|
|
1547
|
+
* Provides sensible defaults for the global configuration.
|
|
1548
|
+
* The API key must be set before using SDK features.
|
|
1549
|
+
*
|
|
1550
|
+
* @group Configuration
|
|
1551
|
+
*/
|
|
1552
|
+
export declare const defaultConfig: GlobalConfig;
|
|
1553
|
+
|
|
1554
|
+
/**
|
|
1555
|
+
* Severity of the traffic delay.
|
|
1556
|
+
*
|
|
1557
|
+
* @remarks
|
|
1558
|
+
* - `unknown`: Delay magnitude cannot be determined
|
|
1559
|
+
* - `minor`: Small delay (few minutes)
|
|
1560
|
+
* - `moderate`: Noticeable delay (several minutes to ~15 minutes)
|
|
1561
|
+
* - `major`: Significant delay (15+ minutes)
|
|
1562
|
+
* - `indefinite`: Unknown or extremely long delay (e.g., road closure)
|
|
1563
|
+
*
|
|
1564
|
+
* @group Route
|
|
1565
|
+
*/
|
|
1566
|
+
export declare type DelayMagnitude = 'unknown' | 'minor' | 'moderate' | 'major' | 'indefinite';
|
|
1567
|
+
|
|
1568
|
+
/**
|
|
1569
|
+
* Display unit configuration for time and distance.
|
|
1570
|
+
*
|
|
1571
|
+
* Used by formatting utilities and map information displays to present
|
|
1572
|
+
* durations and distances with custom labels.
|
|
1573
|
+
*
|
|
1574
|
+
* @group Configuration
|
|
1575
|
+
*/
|
|
1576
|
+
export declare type DisplayUnits = {
|
|
1577
|
+
/**
|
|
1578
|
+
* Distance unit configuration.
|
|
1579
|
+
*
|
|
1580
|
+
* Controls how distances are displayed throughout the SDK.
|
|
1581
|
+
*/
|
|
1582
|
+
distance?: DistanceDisplayUnits;
|
|
1583
|
+
/**
|
|
1584
|
+
* Time unit configuration.
|
|
1585
|
+
*
|
|
1586
|
+
* Controls how durations are displayed throughout the SDK.
|
|
1587
|
+
*/
|
|
1588
|
+
time?: TimeDisplayUnits;
|
|
1589
|
+
};
|
|
1590
|
+
|
|
1591
|
+
/**
|
|
1592
|
+
* Configuration for displaying distance-based units.
|
|
1593
|
+
*
|
|
1594
|
+
* Allows customization of distance unit labels and the unit system
|
|
1595
|
+
* (metric or imperial) used throughout the SDK.
|
|
1596
|
+
*
|
|
1597
|
+
* @group Configuration
|
|
1598
|
+
*/
|
|
1599
|
+
export declare type DistanceDisplayUnits = {
|
|
1600
|
+
/**
|
|
1601
|
+
* Type of distance unit system.
|
|
1602
|
+
*
|
|
1603
|
+
* Determines whether to use metric (meters, kilometers) or
|
|
1604
|
+
* imperial (feet, miles, yards) units.
|
|
1605
|
+
*/
|
|
1606
|
+
type?: DistanceUnitsType;
|
|
1607
|
+
/**
|
|
1608
|
+
* Custom label for kilometer units.
|
|
1609
|
+
*
|
|
1610
|
+
* @default "km"
|
|
1611
|
+
*/
|
|
1612
|
+
kilometers?: string;
|
|
1613
|
+
/**
|
|
1614
|
+
* Custom label for meter units.
|
|
1615
|
+
*
|
|
1616
|
+
* @default "m"
|
|
1617
|
+
*/
|
|
1618
|
+
meters?: string;
|
|
1619
|
+
/**
|
|
1620
|
+
* Custom label for mile units.
|
|
1621
|
+
*
|
|
1622
|
+
* @default "mi"
|
|
1623
|
+
*/
|
|
1624
|
+
miles?: string;
|
|
1625
|
+
/**
|
|
1626
|
+
* Custom label for feet units.
|
|
1627
|
+
*
|
|
1628
|
+
* @default "ft"
|
|
1629
|
+
*/
|
|
1630
|
+
feet?: string;
|
|
1631
|
+
/**
|
|
1632
|
+
* Custom label for yard units.
|
|
1633
|
+
*
|
|
1634
|
+
* @default "yd"
|
|
1635
|
+
*/
|
|
1636
|
+
yards?: string;
|
|
1637
|
+
};
|
|
1638
|
+
|
|
1639
|
+
/**
|
|
1640
|
+
* Distance unit system types supported by the SDK formatters.
|
|
1641
|
+
*
|
|
1642
|
+
* Defines which measurement system to use when formatting distances.
|
|
1643
|
+
* Each system uses region-appropriate units and conventions.
|
|
1644
|
+
*
|
|
1645
|
+
* @remarks
|
|
1646
|
+
* **Unit Systems:**
|
|
1647
|
+
*
|
|
1648
|
+
* - `metric`: International System (SI)
|
|
1649
|
+
* - Units: meters (m), kilometers (km)
|
|
1650
|
+
* - Used in: Most of the world (Europe, Asia, Africa, South America, Australia)
|
|
1651
|
+
* - Decimal-based, no fractions
|
|
1652
|
+
*
|
|
1653
|
+
* - `imperial_us`: United States customary units
|
|
1654
|
+
* - Units: feet (ft), miles (mi)
|
|
1655
|
+
* - Used in: United States
|
|
1656
|
+
* - Uses fractions for miles (¼, ½, ¾)
|
|
1657
|
+
* - Feet for short distances (< 0.125 mi)
|
|
1658
|
+
*
|
|
1659
|
+
* - `imperial_uk`: United Kingdom imperial units
|
|
1660
|
+
* - Units: yards (yd), miles (mi)
|
|
1661
|
+
* - Used in: United Kingdom
|
|
1662
|
+
* - Uses fractions for miles (¼, ½, ¾)
|
|
1663
|
+
* - Yards for short distances (< 0.125 mi)
|
|
1664
|
+
*
|
|
1665
|
+
* **Differences:**
|
|
1666
|
+
* - US uses feet for short distances
|
|
1667
|
+
* - UK uses yards for short distances
|
|
1668
|
+
* - Both use miles with fractions for medium/long distances
|
|
1669
|
+
*
|
|
1670
|
+
* @example
|
|
1671
|
+
* ```typescript
|
|
1672
|
+
* const system: DistanceUnitsType = 'metric'; // International
|
|
1673
|
+
* const usSystem: DistanceUnitsType = 'imperial_us'; // United States
|
|
1674
|
+
* const ukSystem: DistanceUnitsType = 'imperial_uk'; // United Kingdom
|
|
1675
|
+
* ```
|
|
1676
|
+
*
|
|
1677
|
+
* @group Shared
|
|
1678
|
+
*/
|
|
1679
|
+
export declare type DistanceUnitsType = 'metric' | 'imperial_us' | 'imperial_uk';
|
|
1680
|
+
|
|
1681
|
+
/**
|
|
1682
|
+
* Indicates left-hand vs. right-hand side driving at the point of the maneuver.
|
|
1683
|
+
* @group Route
|
|
1684
|
+
*/
|
|
1685
|
+
export declare type DrivingSide = 'LEFT' | 'RIGHT';
|
|
1686
|
+
|
|
1687
|
+
/**
|
|
1688
|
+
* Summary information for routes using electric vehicles.
|
|
1689
|
+
*
|
|
1690
|
+
* Extends the base summary with battery consumption and charge level estimates.
|
|
1691
|
+
*
|
|
1692
|
+
* @group Route
|
|
1693
|
+
*/
|
|
1694
|
+
export declare type ElectricSummary = SummaryBase & {
|
|
1695
|
+
/**
|
|
1696
|
+
* Estimated electric energy consumption in kilowatt-hours (kWh).
|
|
1697
|
+
*
|
|
1698
|
+
* Calculated using the Electric Consumption Model based on:
|
|
1699
|
+
* - Vehicle speed-to-consumption rates
|
|
1700
|
+
* - Route characteristics (elevation changes)
|
|
1701
|
+
* - Recuperation (regenerative braking)
|
|
1702
|
+
*
|
|
1703
|
+
* @remarks
|
|
1704
|
+
* Included only if:
|
|
1705
|
+
* - Vehicle engine type is set to electric
|
|
1706
|
+
* - Speed-to-consumption rates are specified in the request
|
|
1707
|
+
*
|
|
1708
|
+
* This value includes recuperated energy and can be negative (indicating net energy gain),
|
|
1709
|
+
* such as when descending a long hill. If maxChargeInkWh is specified, recuperation is
|
|
1710
|
+
* capped to prevent exceeding maximum battery capacity.
|
|
1711
|
+
*
|
|
1712
|
+
* @example
|
|
1713
|
+
* ```typescript
|
|
1714
|
+
* batteryConsumptionInkWh: 15.5 // Consumed 15.5 kWh
|
|
1715
|
+
* batteryConsumptionInkWh: -2.3 // Gained 2.3 kWh (downhill with recuperation)
|
|
1716
|
+
* ```
|
|
1717
|
+
*/
|
|
1718
|
+
batteryConsumptionInkWh?: number;
|
|
1719
|
+
/**
|
|
1720
|
+
* Estimated battery consumption as a percentage of maximum capacity.
|
|
1721
|
+
*
|
|
1722
|
+
* Only present if maxChargeInkWh was specified in the request and
|
|
1723
|
+
* batteryConsumptionInkWh is available.
|
|
1724
|
+
*
|
|
1725
|
+
* @example
|
|
1726
|
+
* ```typescript
|
|
1727
|
+
* // If maxChargeInkWh is 100 and batteryConsumptionInkWh is 15.5
|
|
1728
|
+
* batteryConsumptionInPCT: 15.5 // 15.5% of battery capacity
|
|
1729
|
+
* ```
|
|
1730
|
+
*/
|
|
1731
|
+
batteryConsumptionInPCT?: number;
|
|
1732
|
+
/**
|
|
1733
|
+
* Estimated battery charge in kWh upon arrival at the destination.
|
|
1734
|
+
*
|
|
1735
|
+
* Available only for Long Distance EV Routing (LDEVR) with charging stops.
|
|
1736
|
+
* Calculated as: currentChargeInkWh - batteryConsumptionInkWh + chargingEnergy
|
|
1737
|
+
*/
|
|
1738
|
+
remainingChargeAtArrivalInkWh?: number;
|
|
1739
|
+
/**
|
|
1740
|
+
* Estimated battery charge as percentage of capacity upon arrival.
|
|
1741
|
+
*
|
|
1742
|
+
* Available only for Long Distance EV Routing (LDEVR) with charging stops.
|
|
1743
|
+
* Derived from remainingChargeAtArrivalInkWh and maxChargeInkWh.
|
|
1744
|
+
*/
|
|
1745
|
+
remainingChargeAtArrivalInPCT?: number;
|
|
1746
|
+
};
|
|
1747
|
+
|
|
1748
|
+
/**
|
|
1749
|
+
* Entry point (entrance) for a place.
|
|
1750
|
+
*
|
|
1751
|
+
* Represents a physical access point to a building or facility,
|
|
1752
|
+
* useful for routing to ensure users are directed to the correct entrance.
|
|
1753
|
+
*
|
|
1754
|
+
* @example
|
|
1755
|
+
* ```typescript
|
|
1756
|
+
* const entryPoint: EntryPoint = {
|
|
1757
|
+
* type: 'main',
|
|
1758
|
+
* functions: ['FrontDoor'],
|
|
1759
|
+
* position: [4.9041, 52.3676]
|
|
1760
|
+
* };
|
|
1761
|
+
* ```
|
|
1762
|
+
*
|
|
1763
|
+
* @group Place
|
|
1764
|
+
*/
|
|
1765
|
+
export declare type EntryPoint = {
|
|
1766
|
+
/**
|
|
1767
|
+
* Type of entry point (main or minor).
|
|
1768
|
+
*/
|
|
1769
|
+
type: EntryPointType;
|
|
1770
|
+
/**
|
|
1771
|
+
* Functional description of the entry point.
|
|
1772
|
+
*
|
|
1773
|
+
* Examples: 'FrontDoor', 'ServiceEntrance', 'ParkingGarage'
|
|
1774
|
+
*/
|
|
1775
|
+
functions?: string[];
|
|
1776
|
+
/**
|
|
1777
|
+
* Geographic coordinates of the entry point [longitude, latitude].
|
|
1778
|
+
*/
|
|
1779
|
+
position: Position;
|
|
1780
|
+
};
|
|
1781
|
+
|
|
1782
|
+
/**
|
|
1783
|
+
* Type of entry point for a place.
|
|
1784
|
+
*
|
|
1785
|
+
* @remarks
|
|
1786
|
+
* - `main`: Primary entrance (at most one per place)
|
|
1787
|
+
* - `minor`: Secondary or alternative entrance (can have multiple)
|
|
1788
|
+
*
|
|
1789
|
+
* @group Place
|
|
1790
|
+
*/
|
|
1791
|
+
export declare type EntryPointType = 'main' | 'minor';
|
|
1792
|
+
|
|
1793
|
+
/**
|
|
1794
|
+
* Properties for an EV charging station place.
|
|
1795
|
+
*
|
|
1796
|
+
* Extends common place properties with EV-specific charging park information.
|
|
1797
|
+
* Use this type for places that are EV charging locations.
|
|
1798
|
+
*
|
|
1799
|
+
* @example
|
|
1800
|
+
* ```typescript
|
|
1801
|
+
* const evPlace: EVChargingStationPlaceProps = {
|
|
1802
|
+
* // Common place properties
|
|
1803
|
+
* id: 'place-123',
|
|
1804
|
+
* type: 'POI',
|
|
1805
|
+
* address: {...},
|
|
1806
|
+
* position: [4.9, 52.3],
|
|
1807
|
+
* // EV-specific properties
|
|
1808
|
+
* chargingPark: {
|
|
1809
|
+
* connectors: [...],
|
|
1810
|
+
* connectorCounts: [...],
|
|
1811
|
+
* availability: {...}
|
|
1812
|
+
* }
|
|
1813
|
+
* };
|
|
1814
|
+
* ```
|
|
1815
|
+
*
|
|
1816
|
+
* @group Place
|
|
1817
|
+
*/
|
|
1818
|
+
export declare type EVChargingStationPlaceProps = Omit<CommonPlaceProps, 'chargingPark'> & {
|
|
1819
|
+
/**
|
|
1820
|
+
* Charging infrastructure and availability information.
|
|
1821
|
+
*
|
|
1822
|
+
* Contains details about available connectors, counts, and optionally
|
|
1823
|
+
* real-time availability status if fetched from the availability service.
|
|
1824
|
+
*/
|
|
1825
|
+
chargingPark?: ChargingParkWithAvailability;
|
|
1826
|
+
};
|
|
1827
|
+
|
|
1828
|
+
/**
|
|
1829
|
+
* Extended GeoJSON FeatureCollection with additional properties at the collection level.
|
|
1830
|
+
*
|
|
1831
|
+
* This type extends the standard GeoJSON FeatureCollection by adding an optional `properties` field
|
|
1832
|
+
* at the collection level (in addition to properties on individual features).
|
|
1833
|
+
*
|
|
1834
|
+
* @typeParam G - The geometry type for features in the collection (defaults to Geometry)
|
|
1835
|
+
* @typeParam P - The type of properties for individual features (defaults to GeoJsonProperties)
|
|
1836
|
+
* @typeParam FeatureCollectionProps - The type of properties for the collection itself (defaults to unknown)
|
|
1837
|
+
*
|
|
1838
|
+
* @example
|
|
1839
|
+
* ```typescript
|
|
1840
|
+
* // Collection of routes with summary properties at the collection level
|
|
1841
|
+
* const routeCollection: FeatureCollectionWithProperties<LineString, RouteProps, { totalDistance: number }> = {
|
|
1842
|
+
* type: 'FeatureCollection',
|
|
1843
|
+
* features: [...],
|
|
1844
|
+
* properties: { totalDistance: 1000 }
|
|
1845
|
+
* };
|
|
1846
|
+
* ```
|
|
1847
|
+
*
|
|
1848
|
+
* @group Shared
|
|
1849
|
+
*/
|
|
1850
|
+
export declare interface FeatureCollectionWithProperties<G extends Geometry | null = Geometry, P = GeoJsonProperties, FeatureCollectionProps = unknown> extends FeatureCollection<G, P> {
|
|
1851
|
+
/**
|
|
1852
|
+
* Optional properties for the entire feature collection.
|
|
1853
|
+
* This allows metadata to be attached at the collection level.
|
|
1854
|
+
*/
|
|
1855
|
+
properties?: FeatureCollectionProps;
|
|
1856
|
+
}
|
|
1857
|
+
|
|
1858
|
+
/**
|
|
1859
|
+
* Formatting is based on the number of meters passed and unit type. Less meters more precision.
|
|
1860
|
+
* @example
|
|
1861
|
+
* ```ts
|
|
1862
|
+
* (null, METRIC) -> ""
|
|
1863
|
+
* (0, METRIC) -> "0 m"
|
|
1864
|
+
* (2, METRIC) -> "2 m"
|
|
1865
|
+
* (237, METRIC) -> "240 m"
|
|
1866
|
+
* (730, METRIC) -> "700 m"
|
|
1867
|
+
* (950, METRIC) -> "1 km"
|
|
1868
|
+
* (-999, METRIC) -> "-1 km"
|
|
1869
|
+
* (2850, METRIC) -> "2.9 km"
|
|
1870
|
+
* (283520, METRIC) -> "284 km"
|
|
1871
|
+
* (2, IMPERIAL_US) -> "7 ft"
|
|
1872
|
+
* (100, IMPERIAL_US) -> "330 ft"
|
|
1873
|
+
* (182.88, IMPERIAL_US) -> "600 ft"
|
|
1874
|
+
* (205.95, IMPERIAL_US) -> "¼ mi"
|
|
1875
|
+
* (1205.95, IMPERIAL_US) -> "¾ mi"
|
|
1876
|
+
* (5309.7, IMPERIAL_US) -> "3½ mi"
|
|
1877
|
+
* (-18181.7, IMPERIAL_US) -> "-11 mi"
|
|
1878
|
+
* (2, IMPERIAL_UK) -> "2 yd"
|
|
1879
|
+
* (150.88, IMPERIAL_UK) -> "170 yd"
|
|
1880
|
+
* (4344.3, IMPERIAL_UK) -> "2¾ mi"
|
|
1881
|
+
* (21753.68, IMPERIAL_UK) -> "14 mi"
|
|
1882
|
+
* ```
|
|
1883
|
+
* @param meters
|
|
1884
|
+
* @param options Options for the display units, including their type and custom ways to display them.
|
|
1885
|
+
* @group Shared
|
|
1886
|
+
*/
|
|
1887
|
+
export declare const formatDistance: (meters: number, options?: DistanceDisplayUnits) => string;
|
|
1888
|
+
|
|
1889
|
+
/**
|
|
1890
|
+
* Formats a duration in seconds into a human-readable time string.
|
|
1891
|
+
*
|
|
1892
|
+
* Converts raw seconds into a display-friendly format using hours and minutes,
|
|
1893
|
+
* with intelligent rounding and formatting based on the duration length.
|
|
1894
|
+
*
|
|
1895
|
+
* @param seconds The duration to format, given in seconds. Returns `undefined` for values < 30 seconds.
|
|
1896
|
+
* @param options Optional custom display units for hours and minutes text.
|
|
1897
|
+
*
|
|
1898
|
+
* @returns Formatted time string (e.g., "1 hr 30 min", "45 min"), or `undefined` if duration is too short.
|
|
1899
|
+
*
|
|
1900
|
+
* @remarks
|
|
1901
|
+
* **Rounding Behavior:**
|
|
1902
|
+
* - Durations under 30 seconds return `undefined`
|
|
1903
|
+
* - 30-59 seconds round to "1 min"
|
|
1904
|
+
* - Minutes are rounded to nearest minute
|
|
1905
|
+
* - Hours are displayed when duration ≥ 1 hour
|
|
1906
|
+
*
|
|
1907
|
+
* **Format Patterns:**
|
|
1908
|
+
* - Short duration: "15 min"
|
|
1909
|
+
* - Long duration: "2 hr 30 min"
|
|
1910
|
+
* - Exact hours: "3 hr 00 min"
|
|
1911
|
+
*
|
|
1912
|
+
* **Customization:**
|
|
1913
|
+
* Override default units via `options` or global {@link TomTomConfig}
|
|
1914
|
+
*
|
|
1915
|
+
* @example
|
|
1916
|
+
* ```typescript
|
|
1917
|
+
* // Basic usage
|
|
1918
|
+
* formatDuration(0); // undefined (too short)
|
|
1919
|
+
* formatDuration(20); // undefined (too short)
|
|
1920
|
+
* formatDuration(30); // "1 min"
|
|
1921
|
+
* formatDuration(60); // "1 min"
|
|
1922
|
+
* formatDuration(100); // "2 min"
|
|
1923
|
+
* formatDuration(1800); // "30 min"
|
|
1924
|
+
* formatDuration(3599); // "1 hr 00 min"
|
|
1925
|
+
* formatDuration(3660); // "1 hr 01 min"
|
|
1926
|
+
* formatDuration(7200); // "2 hr 00 min"
|
|
1927
|
+
* formatDuration(36120); // "10 hr 02 min"
|
|
1928
|
+
*
|
|
1929
|
+
* // Custom units
|
|
1930
|
+
* formatDuration(3660, { hours: 'h', minutes: 'm' });
|
|
1931
|
+
* // Returns: "1 h 01 m"
|
|
1932
|
+
*
|
|
1933
|
+
* // Route travel time
|
|
1934
|
+
* const route = await calculateRoute({ ... });
|
|
1935
|
+
* const travelTime = formatDuration(route.routes[0].summary.travelTimeInSeconds);
|
|
1936
|
+
* console.log(`Estimated time: ${travelTime}`);
|
|
1937
|
+
* // Output: "Estimated time: 2 hr 15 min"
|
|
1938
|
+
* ```
|
|
1939
|
+
*
|
|
1940
|
+
* @group Shared
|
|
1941
|
+
*/
|
|
1942
|
+
export declare const formatDuration: (seconds: number | undefined, options?: TimeDisplayUnits) => string | undefined;
|
|
1943
|
+
|
|
1944
|
+
/**
|
|
1945
|
+
* Fuel types available at gas stations and refueling points.
|
|
1946
|
+
*
|
|
1947
|
+
* Identifies the types of fuel offered at a location. Use this to find
|
|
1948
|
+
* stations with specific fuel types or filter search results.
|
|
1949
|
+
*
|
|
1950
|
+
* @remarks
|
|
1951
|
+
* Common fuel types:
|
|
1952
|
+
* - `Petrol` / `Diesel`: Traditional fossil fuels
|
|
1953
|
+
* - `E85`: 85% ethanol blend
|
|
1954
|
+
* - `LPG`: Liquefied petroleum gas (propane)
|
|
1955
|
+
* - `CNG`: Compressed natural gas
|
|
1956
|
+
* - `LNG`: Liquefied natural gas
|
|
1957
|
+
* - `Hydrogen`: Fuel cell hydrogen
|
|
1958
|
+
* - `Biodiesel`: Renewable diesel
|
|
1959
|
+
* - `AdBlue`: Diesel exhaust fluid (DEF)
|
|
1960
|
+
*
|
|
1961
|
+
* @example
|
|
1962
|
+
* ```typescript
|
|
1963
|
+
* // Station with multiple fuel types
|
|
1964
|
+
* const fuels: Fuel[] = ['Petrol', 'Diesel', 'LPG'];
|
|
1965
|
+
*
|
|
1966
|
+
* // Hydrogen fuel cell station
|
|
1967
|
+
* const fuels: Fuel[] = ['Hydrogen'];
|
|
1968
|
+
* ```
|
|
1969
|
+
*
|
|
1970
|
+
* @group Place
|
|
1971
|
+
*/
|
|
1972
|
+
export declare type Fuel = 'Petrol' | 'LPG' | 'Diesel' | 'Biodiesel' | 'DieselForCommercialVehicles' | 'E85' | 'LNG' | 'CNG' | 'Hydrogen' | 'AdBlue';
|
|
1973
|
+
|
|
1974
|
+
/**
|
|
1975
|
+
* Generate random id for layers
|
|
1976
|
+
* @ignore
|
|
1977
|
+
*/
|
|
1978
|
+
export declare const generateId: () => string;
|
|
1979
|
+
|
|
1980
|
+
/**
|
|
1981
|
+
* Generates an object with TomTom custom header values for the given common parameters.
|
|
1982
|
+
*
|
|
1983
|
+
* @ignore
|
|
1984
|
+
* @param params Global SDK configuration
|
|
1985
|
+
*/
|
|
1986
|
+
export declare const generateTomTomHeaders: (params: Partial<GlobalConfig>) => TomTomHeaders;
|
|
1987
|
+
|
|
1988
|
+
/**
|
|
1989
|
+
* Type of geographic administrative entity.
|
|
1990
|
+
*
|
|
1991
|
+
* Defines the hierarchical level of an administrative area or postal region.
|
|
1992
|
+
*
|
|
1993
|
+
* @remarks
|
|
1994
|
+
* Geographic hierarchy from largest to smallest:
|
|
1995
|
+
* - `Country`: Sovereign nation
|
|
1996
|
+
* - `CountrySubdivision`: State, province, or first-level admin division
|
|
1997
|
+
* - `CountrySecondarySubdivision`: County or second-level admin division
|
|
1998
|
+
* - `CountryTertiarySubdivision`: Third-level admin division
|
|
1999
|
+
* - `Municipality`: City or town
|
|
2000
|
+
* - `MunicipalitySubdivision`: District within a city
|
|
2001
|
+
* - `Neighbourhood`: Named neighborhood or area within a city
|
|
2002
|
+
* - `PostalCodeArea`: Area defined by postal/ZIP code
|
|
2003
|
+
*
|
|
2004
|
+
* @example
|
|
2005
|
+
* ```typescript
|
|
2006
|
+
* const geographyType: GeographyType = 'Municipality'; // City level
|
|
2007
|
+
* ```
|
|
2008
|
+
*
|
|
2009
|
+
* @group Place
|
|
2010
|
+
*/
|
|
2011
|
+
export declare type GeographyType = (typeof geographyTypes)[number];
|
|
2012
|
+
|
|
2013
|
+
/**
|
|
2014
|
+
* @group Place
|
|
2015
|
+
*/
|
|
2016
|
+
export declare const geographyTypes: readonly ["Country", "CountrySubdivision", "CountrySecondarySubdivision", "CountryTertiarySubdivision", "Municipality", "MunicipalitySubdivision", "Neighbourhood", "PostalCodeArea"];
|
|
2017
|
+
|
|
2018
|
+
/**
|
|
2019
|
+
* Data source reference for geometric shape data.
|
|
2020
|
+
*
|
|
2021
|
+
* @example
|
|
2022
|
+
* ```typescript
|
|
2023
|
+
* // Use this ID with the Geometry Data service
|
|
2024
|
+
* const dataSource: GeometryDataSource = {
|
|
2025
|
+
* id: 'geom-abc123'
|
|
2026
|
+
* };
|
|
2027
|
+
* ```
|
|
2028
|
+
*
|
|
2029
|
+
* @group Place
|
|
2030
|
+
*/
|
|
2031
|
+
export declare type GeometryDataSource = {
|
|
2032
|
+
/**
|
|
2033
|
+
* Geometry ID for the Geometry Data service.
|
|
2034
|
+
*
|
|
2035
|
+
* Pass this value to fetch the geometric boundary (polygon or multipolygon)
|
|
2036
|
+
* representing the place's shape on the map.
|
|
2037
|
+
*/
|
|
2038
|
+
id: string;
|
|
2039
|
+
};
|
|
2040
|
+
|
|
2041
|
+
/**
|
|
2042
|
+
* Extracts the lng-lat position from various input formats.
|
|
2043
|
+
*
|
|
2044
|
+
* This utility function accepts multiple formats and normalizes them to a standard
|
|
2045
|
+
* GeoJSON Position (lng-lat coordinate array). It handles:
|
|
2046
|
+
* - Raw coordinate arrays `[lng, lat]`
|
|
2047
|
+
* - GeoJSON Point geometries
|
|
2048
|
+
* - GeoJSON Point Features (including Places with entry points)
|
|
2049
|
+
*
|
|
2050
|
+
* @param hasLngLat An object which either is or contains a lng-lat position.
|
|
2051
|
+
* @param options Additional options to control how we extract the position.
|
|
2052
|
+
* @returns The extracted position as `[longitude, latitude]`, or `null` if the input is invalid.
|
|
2053
|
+
*
|
|
2054
|
+
* @example
|
|
2055
|
+
* ```typescript
|
|
2056
|
+
* // From coordinate array
|
|
2057
|
+
* getPosition([4.9, 52.3]); // Returns: [4.9, 52.3]
|
|
2058
|
+
*
|
|
2059
|
+
* // From Point geometry
|
|
2060
|
+
* getPosition({
|
|
2061
|
+
* type: 'Point',
|
|
2062
|
+
* coordinates: [4.9, 52.3]
|
|
2063
|
+
* }); // Returns: [4.9, 52.3]
|
|
2064
|
+
*
|
|
2065
|
+
* // From Point Feature
|
|
2066
|
+
* getPosition({
|
|
2067
|
+
* type: 'Feature',
|
|
2068
|
+
* geometry: { type: 'Point', coordinates: [4.9, 52.3] },
|
|
2069
|
+
* properties: {}
|
|
2070
|
+
* }); // Returns: [4.9, 52.3]
|
|
2071
|
+
*
|
|
2072
|
+
* // From Place with entry point
|
|
2073
|
+
* const place = {
|
|
2074
|
+
* type: 'Feature',
|
|
2075
|
+
* geometry: { type: 'Point', coordinates: [4.9, 52.3] },
|
|
2076
|
+
* properties: {
|
|
2077
|
+
* entryPoints: [
|
|
2078
|
+
* { type: 'main', position: [4.901, 52.301] }
|
|
2079
|
+
* ]
|
|
2080
|
+
* }
|
|
2081
|
+
* };
|
|
2082
|
+
* getPosition(place, { useEntryPoint: 'main-when-available' });
|
|
2083
|
+
* // Returns: [4.901, 52.301] (entry point instead of geometry)
|
|
2084
|
+
*
|
|
2085
|
+
* // Invalid input
|
|
2086
|
+
* getPosition(undefined); // Returns: null
|
|
2087
|
+
* ```
|
|
2088
|
+
*
|
|
2089
|
+
* @group Shared
|
|
2090
|
+
*/
|
|
2091
|
+
export declare const getPosition: (hasLngLat: HasLngLat | undefined, options?: GetPositionOptions) => Position | null;
|
|
2092
|
+
|
|
2093
|
+
/**
|
|
2094
|
+
* Specifies how to handle entry points when extracting a position from a place.
|
|
2095
|
+
*
|
|
2096
|
+
* Entry points represent specific access locations for a place (e.g., building entrances, parking lot entries).
|
|
2097
|
+
*
|
|
2098
|
+
* @remarks
|
|
2099
|
+
* - `main-when-available`: Returns the main entry point position if available, otherwise falls back to the default place position.
|
|
2100
|
+
* This is useful for routing to ensure vehicles are directed to the correct entrance.
|
|
2101
|
+
* - `ignore`: Always returns the default position of the place (typically the center point).
|
|
2102
|
+
*
|
|
2103
|
+
* @example
|
|
2104
|
+
* ```typescript
|
|
2105
|
+
* // Get position preferring entry point for routing
|
|
2106
|
+
* const position = getPosition(place, { useEntryPoint: 'main-when-available' });
|
|
2107
|
+
*
|
|
2108
|
+
* // Get center position ignoring entry points
|
|
2109
|
+
* const centerPos = getPosition(place, { useEntryPoint: 'ignore' });
|
|
2110
|
+
* ```
|
|
2111
|
+
*
|
|
2112
|
+
* @group Shared
|
|
2113
|
+
*/
|
|
2114
|
+
export declare type GetPositionEntryPointOption = 'main-when-available' | 'ignore';
|
|
2115
|
+
|
|
2116
|
+
/**
|
|
2117
|
+
* Configuration options for extracting position coordinates from a place.
|
|
2118
|
+
*
|
|
2119
|
+
* @group Shared
|
|
2120
|
+
*/
|
|
2121
|
+
export declare type GetPositionOptions = {
|
|
2122
|
+
/**
|
|
2123
|
+
* Controls whether to use entry point positions when available.
|
|
2124
|
+
*
|
|
2125
|
+
* When set to `'main-when-available'`, the main entry point coordinates will be returned
|
|
2126
|
+
* if they exist, otherwise the default place position is used. This is particularly useful
|
|
2127
|
+
* for routing applications where you want to direct users to the correct entrance.
|
|
2128
|
+
*
|
|
2129
|
+
* @default 'ignore'
|
|
2130
|
+
*
|
|
2131
|
+
* @example
|
|
2132
|
+
* ```typescript
|
|
2133
|
+
* // For routing to a specific entrance
|
|
2134
|
+
* { useEntryPoint: 'main-when-available' }
|
|
2135
|
+
*
|
|
2136
|
+
* // For displaying place center on map
|
|
2137
|
+
* { useEntryPoint: 'ignore' }
|
|
2138
|
+
* ```
|
|
2139
|
+
*/
|
|
2140
|
+
useEntryPoint?: GetPositionEntryPointOption;
|
|
2141
|
+
};
|
|
2142
|
+
|
|
2143
|
+
/**
|
|
2144
|
+
* Extracts the lng-lat position from various input formats (strict version).
|
|
2145
|
+
*
|
|
2146
|
+
* Similar to {@link getPosition}, but throws an error if the input doesn't contain
|
|
2147
|
+
* a valid position. Use this when you expect the input to always be valid and want
|
|
2148
|
+
* to fail fast on invalid data.
|
|
2149
|
+
*
|
|
2150
|
+
* @param hasLngLat An object which either is or contains a lng-lat position.
|
|
2151
|
+
* @param options Additional options to control how we extract the position.
|
|
2152
|
+
* @returns The extracted position as `[longitude, latitude]`.
|
|
2153
|
+
* @throws Error if the input object is undefined or does not contain a lng-lat position.
|
|
2154
|
+
*
|
|
2155
|
+
* @example
|
|
2156
|
+
* ```typescript
|
|
2157
|
+
* // Valid input
|
|
2158
|
+
* getPositionStrict([4.9, 52.3]); // Returns: [4.9, 52.3]
|
|
2159
|
+
*
|
|
2160
|
+
* // Invalid input throws error
|
|
2161
|
+
* try {
|
|
2162
|
+
* getPositionStrict(undefined);
|
|
2163
|
+
* } catch (error) {
|
|
2164
|
+
* console.error(error);
|
|
2165
|
+
* // Error: The received object does not have lng-lat coordinates: undefined
|
|
2166
|
+
* }
|
|
2167
|
+
*
|
|
2168
|
+
* // Invalid object throws error
|
|
2169
|
+
* try {
|
|
2170
|
+
* getPositionStrict({ invalid: 'object' });
|
|
2171
|
+
* } catch (error) {
|
|
2172
|
+
* console.error(error);
|
|
2173
|
+
* // Error: The received object does not have lng-lat coordinates: {"invalid":"object"}
|
|
2174
|
+
* }
|
|
2175
|
+
* ```
|
|
2176
|
+
*
|
|
2177
|
+
* @group Shared
|
|
2178
|
+
*/
|
|
2179
|
+
export declare const getPositionStrict: (hasLngLat: HasLngLat, options?: GetPositionOptions) => Position;
|
|
2180
|
+
|
|
2181
|
+
/**
|
|
2182
|
+
* Determines the type of geographic input (waypoint or path).
|
|
2183
|
+
*
|
|
2184
|
+
* This function inspects the structure of a RoutePlanningLocation to classify it as either:
|
|
2185
|
+
* - **waypoint**: A single point location (coordinate pair, Point geometry, or Point Feature)
|
|
2186
|
+
* - **path**: A line or route (array of coordinates, LineString geometry, or LineString Feature)
|
|
2187
|
+
*
|
|
2188
|
+
* @param routePlanningLocation The geographic input to classify. Can be coordinates, GeoJSON geometry, or GeoJSON Feature.
|
|
2189
|
+
* @returns The type of the input: 'waypoint' for point locations or 'path' for line geometries.
|
|
2190
|
+
*
|
|
2191
|
+
* @example
|
|
2192
|
+
* ```typescript
|
|
2193
|
+
* // Waypoint as coordinate array
|
|
2194
|
+
* getRoutePlanningLocationType([4.9, 52.3]); // Returns: 'waypoint'
|
|
2195
|
+
*
|
|
2196
|
+
* // Path as array of coordinates
|
|
2197
|
+
* getRoutePlanningLocationType([[4.9, 52.3], [4.5, 51.9]]); // Returns: 'path'
|
|
2198
|
+
*
|
|
2199
|
+
* // Waypoint as Point Feature
|
|
2200
|
+
* getRoutePlanningLocationType({
|
|
2201
|
+
* type: 'Feature',
|
|
2202
|
+
* geometry: { type: 'Point', coordinates: [4.9, 52.3] },
|
|
2203
|
+
* properties: {}
|
|
2204
|
+
* }); // Returns: 'waypoint'
|
|
2205
|
+
*
|
|
2206
|
+
* // Path as LineString Feature
|
|
2207
|
+
* getRoutePlanningLocationType({
|
|
2208
|
+
* type: 'Feature',
|
|
2209
|
+
* geometry: { type: 'LineString', coordinates: [[4.9, 52.3], [4.5, 51.9]] },
|
|
2210
|
+
* properties: {}
|
|
2211
|
+
* }); // Returns: 'path'
|
|
2212
|
+
* ```
|
|
2213
|
+
*
|
|
2214
|
+
* @group Route
|
|
2215
|
+
*/
|
|
2216
|
+
export declare const getRoutePlanningLocationType: (routePlanningLocation: RoutePlanningLocation) => RoutePlanningLocationType;
|
|
2217
|
+
|
|
2218
|
+
/**
|
|
2219
|
+
* Global configuration for the TomTom Maps SDK.
|
|
2220
|
+
*
|
|
2221
|
+
* Contains essential parameters like API keys, language settings, and display preferences
|
|
2222
|
+
* that apply across all SDK services and map functionality.
|
|
2223
|
+
*
|
|
2224
|
+
* @remarks
|
|
2225
|
+
* This configuration can be set globally using {@link TomTomConfig} and will be merged
|
|
2226
|
+
* with service-specific configurations, with service configs taking precedence.
|
|
2227
|
+
*
|
|
2228
|
+
* @example
|
|
2229
|
+
* ```typescript
|
|
2230
|
+
* const config: GlobalConfig = {
|
|
2231
|
+
* apiKey: 'your-api-key',
|
|
2232
|
+
* apiVersion: 1,
|
|
2233
|
+
* commonBaseURL: 'https://api.tomtom.com',
|
|
2234
|
+
* language: 'en-US',
|
|
2235
|
+
* displayUnits: {
|
|
2236
|
+
* distance: { type: 'metric' },
|
|
2237
|
+
* time: { hours: 'hrs', minutes: 'mins' }
|
|
2238
|
+
* }
|
|
2239
|
+
* };
|
|
2240
|
+
* ```
|
|
2241
|
+
*
|
|
2242
|
+
* @group Configuration
|
|
2243
|
+
*/
|
|
2244
|
+
export declare type GlobalConfig = {
|
|
2245
|
+
/**
|
|
2246
|
+
* TomTom API key for authentication.
|
|
2247
|
+
*
|
|
2248
|
+
* Required for all SDK features. Obtain an API key from the
|
|
2249
|
+
* [TomTom Developer Portal](https://developer.tomtom.com/).
|
|
2250
|
+
*
|
|
2251
|
+
* @default None (required)
|
|
2252
|
+
*/
|
|
2253
|
+
apiKey: string;
|
|
2254
|
+
/**
|
|
2255
|
+
* An experimental alternative to the API Key which enables oauth2 access to APIs.
|
|
2256
|
+
* * If provided, then the API key parameter will be ignored.
|
|
2257
|
+
* @experimental
|
|
2258
|
+
*/
|
|
2259
|
+
/**
|
|
2260
|
+
* API version number for service endpoints.
|
|
2261
|
+
*
|
|
2262
|
+
* Each service may have its own default version. Consult the specific
|
|
2263
|
+
* service documentation for available versions.
|
|
2264
|
+
*
|
|
2265
|
+
* @default 1 (but each service can override)
|
|
2266
|
+
*/
|
|
2267
|
+
apiVersion: number;
|
|
2268
|
+
/**
|
|
2269
|
+
* Request identifier for tracing and support.
|
|
2270
|
+
*
|
|
2271
|
+
* Must match the pattern: `^[a-zA-Z0-9-]{1,100}$`
|
|
2272
|
+
*
|
|
2273
|
+
* Recommended format is UUID (e.g., `9ac68072-c7a4-11e8-a8d5-f2801f1b9fd1`).
|
|
2274
|
+
* When specified, it's included in the `Tracking-ID` response header.
|
|
2275
|
+
* This is solely for support purposes and does not involve user tracking.
|
|
2276
|
+
*
|
|
2277
|
+
* @see {@link https://docs.tomtom.com/search-api/documentation/search-service/fuzzy-search#trackingid-response | Tracking-ID documentation}
|
|
2278
|
+
*/
|
|
2279
|
+
trackingId?: string;
|
|
2280
|
+
/**
|
|
2281
|
+
* Include TomTom-User-Agent header in requests.
|
|
2282
|
+
*
|
|
2283
|
+
* When enabled, adds a header containing the SDK name and version.
|
|
2284
|
+
* Note that enabling this may trigger CORS preflight requests.
|
|
2285
|
+
*
|
|
2286
|
+
* @default false
|
|
2287
|
+
*/
|
|
2288
|
+
tomtomUserAgent?: boolean;
|
|
2289
|
+
/**
|
|
2290
|
+
* Language code for SDK services and map content.
|
|
2291
|
+
*
|
|
2292
|
+
* Accepts IETF language codes (case-insensitive). Affects search results,
|
|
2293
|
+
* routing instructions, and map labels.
|
|
2294
|
+
*
|
|
2295
|
+
* @default "NGT" (Neutral Ground Truth - uses local language for each location)
|
|
2296
|
+
*
|
|
2297
|
+
* @see {@link https://docs.tomtom.com/search-api/documentation/product-information/supported-languages | Search supported languages}
|
|
2298
|
+
* @see {@link https://docs.tomtom.com/routing-api/documentation/product-information/supported-languages | Routing supported languages}
|
|
2299
|
+
*/
|
|
2300
|
+
language?: Language;
|
|
2301
|
+
/**
|
|
2302
|
+
* Base URL for all TomTom API services.
|
|
2303
|
+
*
|
|
2304
|
+
* Individual services can override this with their own base URLs.
|
|
2305
|
+
* Typically only changed for testing or enterprise deployments.
|
|
2306
|
+
*
|
|
2307
|
+
* @default "https://api.tomtom.com"
|
|
2308
|
+
*/
|
|
2309
|
+
commonBaseURL: string;
|
|
2310
|
+
/**
|
|
2311
|
+
* Custom display units for time and distance.
|
|
2312
|
+
*
|
|
2313
|
+
* Applied to {@link formatDistance} and {@link formatDuration} utilities,
|
|
2314
|
+
* which are used throughout the SDK for displaying map information.
|
|
2315
|
+
* If not provided, default unit labels are used.
|
|
2316
|
+
*/
|
|
2317
|
+
displayUnits?: DisplayUnits;
|
|
2318
|
+
};
|
|
2319
|
+
|
|
2320
|
+
/**
|
|
2321
|
+
* Contains guidance related elements. This field is present only when guidance was requested and is available.
|
|
2322
|
+
* @group Route
|
|
2323
|
+
*/
|
|
2324
|
+
export declare type Guidance = {
|
|
2325
|
+
/**
|
|
2326
|
+
* Main ordered list of instructions to follow.
|
|
2327
|
+
*/
|
|
2328
|
+
instructions: Instruction[];
|
|
2329
|
+
};
|
|
2330
|
+
|
|
2331
|
+
/**
|
|
2332
|
+
* Input type representing a geographic bounding box or an object from which a bounding box can be derived.
|
|
2333
|
+
*
|
|
2334
|
+
* Accepts various formats:
|
|
2335
|
+
* - `BBox`: Direct GeoJSON bounding box array `[west, south, east, north]`
|
|
2336
|
+
* - `GeoJsonObject`: Any GeoJSON object with a `bbox` property or from which bounds can be calculated
|
|
2337
|
+
* - `GeoJsonObject[]`: Array of GeoJSON objects (convenience extension to standard GeoJSON)
|
|
2338
|
+
*
|
|
2339
|
+
* @remarks
|
|
2340
|
+
* Bounding boxes follow the format: `[minLon, minLat, maxLon, maxLat]` or `[west, south, east, north]`
|
|
2341
|
+
*
|
|
2342
|
+
* @example
|
|
2343
|
+
* ```typescript
|
|
2344
|
+
* // Direct BBox array
|
|
2345
|
+
* const bbox1: HasBBox = [4.8, 52.3, 5.0, 52.4];
|
|
2346
|
+
*
|
|
2347
|
+
* // Feature with bbox property
|
|
2348
|
+
* const bbox2: HasBBox = {
|
|
2349
|
+
* type: 'Feature',
|
|
2350
|
+
* bbox: [4.8, 52.3, 5.0, 52.4],
|
|
2351
|
+
* geometry: { type: 'Polygon', coordinates: [...] },
|
|
2352
|
+
* properties: {}
|
|
2353
|
+
* };
|
|
2354
|
+
*
|
|
2355
|
+
* // Array of features to derive bounds from
|
|
2356
|
+
* const bbox3: HasBBox = [feature1, feature2, feature3];
|
|
2357
|
+
* ```
|
|
2358
|
+
*
|
|
2359
|
+
* @group Shared
|
|
2360
|
+
*/
|
|
2361
|
+
export declare type HasBBox = BBox | GeoJsonObject | GeoJsonObject[];
|
|
2362
|
+
|
|
2363
|
+
/**
|
|
2364
|
+
* Input type representing a geographic point location.
|
|
2365
|
+
*
|
|
2366
|
+
* Accepts various formats for specifying a point location:
|
|
2367
|
+
* - `Position`: Raw coordinate array `[longitude, latitude]`
|
|
2368
|
+
* - `Point`: GeoJSON Point geometry
|
|
2369
|
+
* - `Feature<Point>`: GeoJSON Feature containing a Point geometry
|
|
2370
|
+
*
|
|
2371
|
+
* @remarks
|
|
2372
|
+
* Note: Coordinates follow GeoJSON standard with longitude first, then latitude: `[lng, lat]`
|
|
2373
|
+
*
|
|
2374
|
+
* @example
|
|
2375
|
+
* ```typescript
|
|
2376
|
+
* // As Position array
|
|
2377
|
+
* const pos1: HasLngLat = [4.9041, 52.3676];
|
|
2378
|
+
*
|
|
2379
|
+
* // As Point geometry
|
|
2380
|
+
* const pos2: HasLngLat = { type: 'Point', coordinates: [4.9041, 52.3676] };
|
|
2381
|
+
*
|
|
2382
|
+
* // As Feature
|
|
2383
|
+
* const pos3: HasLngLat = {
|
|
2384
|
+
* type: 'Feature',
|
|
2385
|
+
* geometry: { type: 'Point', coordinates: [4.9041, 52.3676] },
|
|
2386
|
+
* properties: {}
|
|
2387
|
+
* };
|
|
2388
|
+
* ```
|
|
2389
|
+
*
|
|
2390
|
+
* @group Shared
|
|
2391
|
+
*/
|
|
2392
|
+
export declare type HasLngLat = Position | Point | Feature<Point>;
|
|
2393
|
+
|
|
2394
|
+
/**
|
|
2395
|
+
* Sections with important stretches of road information.
|
|
2396
|
+
*
|
|
2397
|
+
* * It provides a set of street names and/or a set of road numbers that allow the driver to identify and distinguish the course of the route (from other potential routes).
|
|
2398
|
+
*
|
|
2399
|
+
* @group Route
|
|
2400
|
+
*/
|
|
2401
|
+
export declare type ImportantRoadStretchProps = SectionProps & {
|
|
2402
|
+
/**
|
|
2403
|
+
* The integer value of importance. The index starts from 0, and a lower value means higher importance. The index is needed for two reasons:
|
|
2404
|
+
* * To understand which stretch is the most important (for example, if it is necessary to display a smaller number of stretches).
|
|
2405
|
+
* * To group different sections that belong to the same stretch (since there may be gaps in one stretch for various reasons).
|
|
2406
|
+
*/
|
|
2407
|
+
index: number;
|
|
2408
|
+
/**
|
|
2409
|
+
* The street name of the important road stretch.
|
|
2410
|
+
*/
|
|
2411
|
+
streetName?: string;
|
|
2412
|
+
/**
|
|
2413
|
+
* A set of road numbers that identify the important road stretch.
|
|
2414
|
+
*
|
|
2415
|
+
* @remarks
|
|
2416
|
+
* The road numbers are sorted in descending order of display priority.
|
|
2417
|
+
*/
|
|
2418
|
+
roadNumbers?: string[];
|
|
2419
|
+
};
|
|
2420
|
+
|
|
2421
|
+
/**
|
|
2422
|
+
* @ignore
|
|
2423
|
+
*/
|
|
2424
|
+
export declare const indexedMagnitudes: DelayMagnitude[];
|
|
2425
|
+
|
|
2426
|
+
/**
|
|
2427
|
+
* Route calculation request section types so they can be included in response.
|
|
2428
|
+
* @group Route
|
|
2429
|
+
*/
|
|
2430
|
+
export declare const inputSectionTypes: SectionType[];
|
|
2431
|
+
|
|
2432
|
+
/**
|
|
2433
|
+
* Route calculation request section types, including guidance-related ones, so they can be included in response.
|
|
2434
|
+
* @group Route
|
|
2435
|
+
*/
|
|
2436
|
+
export declare const inputSectionTypesWithGuidance: SectionType[];
|
|
2437
|
+
|
|
2438
|
+
/**
|
|
2439
|
+
* A set of attributes describing a maneuver, e.g., "Turn right", "Keep left", "Take the ferry", "Take the motorway", "Arrive".
|
|
2440
|
+
* @group Route
|
|
2441
|
+
*/
|
|
2442
|
+
export declare type Instruction = {
|
|
2443
|
+
/**
|
|
2444
|
+
* The index of the point on the route path where the maneuver takes place.
|
|
2445
|
+
* * maneuverPoint is expected to be equal to the path point at this index.
|
|
2446
|
+
*/
|
|
2447
|
+
pathPointIndex: number;
|
|
2448
|
+
/**
|
|
2449
|
+
* Location of the maneuver.
|
|
2450
|
+
*/
|
|
2451
|
+
maneuverPoint: Position;
|
|
2452
|
+
/**
|
|
2453
|
+
* The distance from the start of the route to the point of the instruction.
|
|
2454
|
+
*/
|
|
2455
|
+
routeOffsetInMeters: number;
|
|
2456
|
+
/**
|
|
2457
|
+
* A code identifying the maneuver (e.g., "Turn right").
|
|
2458
|
+
*/
|
|
2459
|
+
maneuver: Maneuver;
|
|
2460
|
+
/**
|
|
2461
|
+
* A maneuver can occupy more than one point. For such a maneuver, this field will contain a sequence of all the points it occupies on the map.
|
|
2462
|
+
* For maneuvers that only occupy a single point, this field will contain a single array item, with a point value equal to maneuverPoint.
|
|
2463
|
+
*/
|
|
2464
|
+
routePath: RoutePathPoint[];
|
|
2465
|
+
/**
|
|
2466
|
+
* Provides information about the road in the link before the maneuver.
|
|
2467
|
+
*/
|
|
2468
|
+
previousRoadInfo: RoadInformation;
|
|
2469
|
+
/**
|
|
2470
|
+
* Provides information about the road we are heading to (past the maneuver).
|
|
2471
|
+
* The source of this information is either the road past the maneuver or the signpost at the maneuver if such exists.
|
|
2472
|
+
*/
|
|
2473
|
+
nextRoadInfo: RoadInformation;
|
|
2474
|
+
/**
|
|
2475
|
+
* Included if a signpost is available for this maneuver.
|
|
2476
|
+
* Provides the information displayed in the signpost indicating the direction on route.
|
|
2477
|
+
*/
|
|
2478
|
+
signpost?: Signpost;
|
|
2479
|
+
/**
|
|
2480
|
+
* Name of the intersection at which the maneuver must be performed.
|
|
2481
|
+
* Included if intersection name is available for this maneuver.
|
|
2482
|
+
*/
|
|
2483
|
+
intersectionName?: TextWithPhonetics;
|
|
2484
|
+
/**
|
|
2485
|
+
* Indicates left-hand vs. right-hand side driving at the point of the maneuver.
|
|
2486
|
+
*/
|
|
2487
|
+
drivingSide?: DrivingSide;
|
|
2488
|
+
/**
|
|
2489
|
+
* Included if instruction has a landmark.
|
|
2490
|
+
*/
|
|
2491
|
+
landmark?: Landmark;
|
|
2492
|
+
/**
|
|
2493
|
+
* Included if the landmark is AT_TRAFFIC_LIGHT, and a maneuver takes place at the second traffic light (out of two consequent traffic lights).
|
|
2494
|
+
* In such case this attribute represents the distance on the route (in meters) between those traffic lights.
|
|
2495
|
+
*/
|
|
2496
|
+
trafficLightOffsetInMeters?: number;
|
|
2497
|
+
/**
|
|
2498
|
+
* List of roads connected to the route but not part of it, right before the maneuver.
|
|
2499
|
+
* These are roads which the driver can accidentally take based on the instruction without considering the dynamic restriction of the route like time or vehicle profile dependent restriction.
|
|
2500
|
+
* Dual-carriageway roads might be represented as a single or several side roads, depending on how the driver might perceive them.
|
|
2501
|
+
* The list will be empty if no road is crossing the route before the maneuver.
|
|
2502
|
+
* This information can be used to allow a richer graphical presentation of the maneuver and visualize connected roads preceding it in proximity.
|
|
2503
|
+
* The list is ordered in ascending order of offset on route.
|
|
2504
|
+
* Included if there are side roads within a reasonable distance before the maneuver.
|
|
2505
|
+
*/
|
|
2506
|
+
sideRoads?: SideRoad[];
|
|
2507
|
+
/**
|
|
2508
|
+
* The base URL of the Road Shields service to fetch the road shield atlas and metadata resources.
|
|
2509
|
+
* Currently available resources are:
|
|
2510
|
+
* sprite.png
|
|
2511
|
+
* sprite.json
|
|
2512
|
+
* We recommend to cache the sprite atlas (sprite.png) and metadata (sprite.json) as it changes infrequently and is large compared to a typical road shield description.
|
|
2513
|
+
*/
|
|
2514
|
+
roadShieldAtlasReference?: string;
|
|
2515
|
+
/**
|
|
2516
|
+
* List of road shield references to be shown for the instruction.
|
|
2517
|
+
*/
|
|
2518
|
+
roadShieldReferences?: RoadShieldReference[];
|
|
2519
|
+
/**
|
|
2520
|
+
* List of road shield references to be shown for the signpost.
|
|
2521
|
+
*/
|
|
2522
|
+
signpostRoadShieldReferences?: RoadShieldReference[];
|
|
2523
|
+
/**
|
|
2524
|
+
* Marks this maneuver as obligatory. For example, when a driver reaches a T-junction, where one option is drivable, while the other is not.
|
|
2525
|
+
* Included if the maneuver is a turn maneuver, i.e., maneuver is one of the following:
|
|
2526
|
+
* SLIGHT_RIGHT
|
|
2527
|
+
* TURN_RIGHT
|
|
2528
|
+
* SHARP_RIGHT
|
|
2529
|
+
* SLIGHT_LEFT
|
|
2530
|
+
* TURN_LEFT
|
|
2531
|
+
* SHARP_LEFT
|
|
2532
|
+
* MAKE_UTURN
|
|
2533
|
+
*/
|
|
2534
|
+
isManeuverObligatory?: boolean;
|
|
2535
|
+
/**
|
|
2536
|
+
* Gives the total change of angle (in degrees) from the entry until the exit of the maneuver, in the range [-180,180). For example, -90 means "forks off to the left in a perpendicular angle".
|
|
2537
|
+
* At complex junctions, the angle is relative to the entry road.
|
|
2538
|
+
* Included if the maneuver is a turn or roundabout maneuver, i.e., maneuver is one of the following:
|
|
2539
|
+
* STRAIGHT
|
|
2540
|
+
* SLIGHT_RIGHT
|
|
2541
|
+
* TURN_RIGHT
|
|
2542
|
+
* SHARP_RIGHT
|
|
2543
|
+
* SLIGHT_LEFT
|
|
2544
|
+
* TURN_LEFT
|
|
2545
|
+
* SHARP_LEFT
|
|
2546
|
+
* MAKE_UTURN
|
|
2547
|
+
* ROUNDABOUT_STRAIGHT
|
|
2548
|
+
* ROUNDABOUT_SLIGHT_RIGHT
|
|
2549
|
+
* ROUNDABOUT_RIGHT
|
|
2550
|
+
* ROUNDABOUT_SHARP_RIGHT
|
|
2551
|
+
* ROUNDABOUT_SLIGHT_LEFT
|
|
2552
|
+
* ROUNDABOUT_LEFT
|
|
2553
|
+
* ROUNDABOUT_SHARP_LEFT
|
|
2554
|
+
* ROUNDABOUT_BACK
|
|
2555
|
+
*/
|
|
2556
|
+
changeOfAngleInDegrees?: number;
|
|
2557
|
+
/**
|
|
2558
|
+
* Included if current maneuver is an exit, and there is another exit before the current maneuver within reasonable distance, which may cause ambiguity.
|
|
2559
|
+
* In such case there might be a need to resolve the ambiguity on client side, and compose an instruction like "Take the 2nd exit".
|
|
2560
|
+
* Represents the offset (on route) of the ambiguous exit from the maneuver point (represented by maneuverPoint), in meters.
|
|
2561
|
+
* The offset is absolute, i.e., it is a positive integer despite the ambiguous exit being located before the maneuver on the route.
|
|
2562
|
+
* Applicable for maneuvers where maneuver is one of the following values:
|
|
2563
|
+
* EXIT_ROUNDABOUT
|
|
2564
|
+
* EXIT_MOTORWAY_LEFT
|
|
2565
|
+
* EXIT_MOTORWAY_RIGHT
|
|
2566
|
+
* SWITCH_MOTORWAY_LEFT
|
|
2567
|
+
* SWITCH_MOTORWAY_RIGHT
|
|
2568
|
+
*/
|
|
2569
|
+
offsetOfAmbiguousExitFromManeuverInMeters?: number;
|
|
2570
|
+
/**
|
|
2571
|
+
* The ordinal number of the exit to take at a roundabout, e.g., "take the first/second exit".
|
|
2572
|
+
* Included if the maneuver is a roundabout maneuver, i.e., maneuver is one of the following:
|
|
2573
|
+
* ROUNDABOUT_STRAIGHT
|
|
2574
|
+
* ROUNDABOUT_SLIGHT_RIGHT
|
|
2575
|
+
* ROUNDABOUT_RIGHT
|
|
2576
|
+
* ROUNDABOUT_SHARP_RIGHT
|
|
2577
|
+
* ROUNDABOUT_SLIGHT_LEFT
|
|
2578
|
+
* ROUNDABOUT_LEFT
|
|
2579
|
+
* ROUNDABOUT_SHARP_LEFT
|
|
2580
|
+
* ROUNDABOUT_BACK
|
|
2581
|
+
*/
|
|
2582
|
+
roundaboutExitNumber?: number;
|
|
2583
|
+
/**
|
|
2584
|
+
* The name of the tollgate, if available.
|
|
2585
|
+
* Included if the maneuver is a tollgate maneuver, i.e., maneuver is TOLLGATE.
|
|
2586
|
+
*/
|
|
2587
|
+
tollgateName?: TextWithPhonetics;
|
|
2588
|
+
/**
|
|
2589
|
+
* Included if the maneuver is a tollgate maneuver, i.e., maneuver is TOLLGATE.
|
|
2590
|
+
* Array containing one or more available toll payment options for this tollgate.
|
|
2591
|
+
*/
|
|
2592
|
+
tollPaymentTypes?: TollPaymentType[];
|
|
2593
|
+
/**
|
|
2594
|
+
* The name of the country the border crossing occurs from.
|
|
2595
|
+
* Included if the maneuver is a border crossing maneuver, or leads to a border crossing, i.e., maneuver is one of:
|
|
2596
|
+
* CROSS_BORDER
|
|
2597
|
+
* TAKE_SHIP_FERRY
|
|
2598
|
+
* TAKE_CAR_TRAIN
|
|
2599
|
+
* LEAVE_SHIP_FERRY
|
|
2600
|
+
* LEAVE_CAR_TRAIN
|
|
2601
|
+
*/
|
|
2602
|
+
countryCrossingFromName?: TextWithPhonetics;
|
|
2603
|
+
/**
|
|
2604
|
+
* The code (ISO 3166-1 alpha-3) of the country the border crossing occurs from.
|
|
2605
|
+
* Included if the maneuver is a border crossing maneuver, i.e., maneuver is one of:
|
|
2606
|
+
* CROSS_BORDER
|
|
2607
|
+
* TAKE_SHIP_FERRY
|
|
2608
|
+
* TAKE_CAR_TRAIN
|
|
2609
|
+
* LEAVE_SHIP_FERRY
|
|
2610
|
+
* LEAVE_CAR_TRAIN
|
|
2611
|
+
*/
|
|
2612
|
+
countryCrossingFromCode?: string;
|
|
2613
|
+
/**
|
|
2614
|
+
* The name of the country the border crossing occurs to.
|
|
2615
|
+
* Included if the maneuver is a border crossing maneuver, or leads to a border crossing, i.e., maneuver is one of:
|
|
2616
|
+
* CROSS_BORDER
|
|
2617
|
+
* TAKE_SHIP_FERRY
|
|
2618
|
+
* TAKE_CAR_TRAIN
|
|
2619
|
+
* LEAVE_SHIP_FERRY
|
|
2620
|
+
* LEAVE_CAR_TRAIN
|
|
2621
|
+
*/
|
|
2622
|
+
countryCrossingToName?: TextWithPhonetics;
|
|
2623
|
+
/**
|
|
2624
|
+
* The code (ISO 3166-1 alpha-3) of the country the border crossing occurs to.
|
|
2625
|
+
* Included if the maneuver is a border crossing maneuver, i.e., maneuver is one of:
|
|
2626
|
+
* CROSS_BORDER
|
|
2627
|
+
* TAKE_SHIP_FERRY
|
|
2628
|
+
* TAKE_CAR_TRAIN
|
|
2629
|
+
* LEAVE_SHIP_FERRY
|
|
2630
|
+
* LEAVE_CAR_TRAIN
|
|
2631
|
+
*/
|
|
2632
|
+
countryCrossingToCode?: string;
|
|
2633
|
+
};
|
|
2634
|
+
|
|
2635
|
+
/**
|
|
2636
|
+
* Calculates whether the given bbox has area (width and height).
|
|
2637
|
+
* @ignore
|
|
2638
|
+
* @param bbox The BBox to verify. If undefined, false is returned.
|
|
2639
|
+
*/
|
|
2640
|
+
export declare const isBBoxWithArea: (bbox: OptionalBBox) => boolean;
|
|
2641
|
+
|
|
2642
|
+
/**
|
|
2643
|
+
* Type of landmarks that can be used in instructions.
|
|
2644
|
+
* @group Route
|
|
2645
|
+
*/
|
|
2646
|
+
export declare type Landmark = 'END_OF_ROAD' | 'AT_TRAFFIC_LIGHT' | 'ON_TO_BRIDGE' | 'ON_BRIDGE' | 'AFTER_BRIDGE' | 'INTO_TUNNEL' | 'INSIDE_TUNNEL' | 'AFTER_TUNNEL';
|
|
2647
|
+
|
|
2648
|
+
/**
|
|
2649
|
+
* Lane guidance information.
|
|
2650
|
+
*
|
|
2651
|
+
* Describes possible directions for a lane and which direction to follow.
|
|
2652
|
+
* Used for lane-level navigation guidance.
|
|
2653
|
+
*
|
|
2654
|
+
* @example
|
|
2655
|
+
* ```typescript
|
|
2656
|
+
* // Left lane allows left turn or straight
|
|
2657
|
+
* const laneDirection: LaneDirection = {
|
|
2658
|
+
* directions: ['LEFT', 'STRAIGHT'],
|
|
2659
|
+
* follow: 'LEFT' // Follow the left turn
|
|
2660
|
+
* };
|
|
2661
|
+
* ```
|
|
2662
|
+
*
|
|
2663
|
+
* @group Route
|
|
2664
|
+
*/
|
|
2665
|
+
export declare type LaneDirection = {
|
|
2666
|
+
/**
|
|
2667
|
+
* All possible directions this lane leads to.
|
|
2668
|
+
*
|
|
2669
|
+
* A lane may allow multiple directions (e.g., straight and turn).
|
|
2670
|
+
*/
|
|
2671
|
+
directions: PossibleLaneDirection[];
|
|
2672
|
+
/**
|
|
2673
|
+
* The direction to follow in this lane for the route.
|
|
2674
|
+
*
|
|
2675
|
+
* Present when guidance indicates which direction to take.
|
|
2676
|
+
*/
|
|
2677
|
+
follow?: PossibleLaneDirection;
|
|
2678
|
+
};
|
|
2679
|
+
|
|
2680
|
+
/**
|
|
2681
|
+
* Section representing a lane configuration.
|
|
2682
|
+
* @group Route
|
|
2683
|
+
*/
|
|
2684
|
+
export declare type LaneSectionProps = SectionProps & {
|
|
2685
|
+
/**
|
|
2686
|
+
* The lane directions for this lane section.
|
|
2687
|
+
*/
|
|
2688
|
+
lanes: LaneDirection[];
|
|
2689
|
+
/**
|
|
2690
|
+
* The lane separators for this lane section.
|
|
2691
|
+
*/
|
|
2692
|
+
laneSeparators: PossibleLaneSeparator[];
|
|
2693
|
+
/**
|
|
2694
|
+
* Properties of the lane section, as a possible combination of several values. This field is optional.
|
|
2695
|
+
* Possible values:
|
|
2696
|
+
* IS_MANEUVER: whether the lane section contains a maneuver point, that is, there exists a guidance instruction
|
|
2697
|
+
* with a maneuverPoint that falls into this section. The section describes the lane configuration for that
|
|
2698
|
+
* particular instruction.
|
|
2699
|
+
* It is possible that more values will be added to the API in the future.
|
|
2700
|
+
*/
|
|
2701
|
+
properties?: string[];
|
|
2702
|
+
};
|
|
2703
|
+
|
|
2704
|
+
/**
|
|
2705
|
+
* Language code for map display and service responses.
|
|
2706
|
+
*
|
|
2707
|
+
* Determines the language used for:
|
|
2708
|
+
* - Map labels and text on vector tiles
|
|
2709
|
+
* - Place names, addresses, and other textual content in service responses
|
|
2710
|
+
*
|
|
2711
|
+
* Supports various locales with region-specific variants (e.g., `en-US`, `en-GB`).
|
|
2712
|
+
* Special codes like `ngt` (Neutral Ground Truth) and `ngt-Latn` provide language-neutral
|
|
2713
|
+
* or Latin script alternatives.
|
|
2714
|
+
*
|
|
2715
|
+
* @see [Supported languages documentation](https://docs.tomtom.com/map-display-api/documentation/vector/content-v2#list-of-supported-languages)
|
|
2716
|
+
*
|
|
2717
|
+
* @example
|
|
2718
|
+
* ```typescript
|
|
2719
|
+
* // Use US English
|
|
2720
|
+
* const language: Language = 'en-US';
|
|
2721
|
+
*
|
|
2722
|
+
* // Use simplified Chinese
|
|
2723
|
+
* const language: Language = 'zh-Hans';
|
|
2724
|
+
*
|
|
2725
|
+
* // Use neutral ground truth (no translation)
|
|
2726
|
+
* const language: Language = 'ngt';
|
|
2727
|
+
* ```
|
|
2728
|
+
*
|
|
2729
|
+
* @group Shared
|
|
2730
|
+
*/
|
|
2731
|
+
export declare type Language = (typeof languages)[number];
|
|
2732
|
+
|
|
2733
|
+
/**
|
|
2734
|
+
* Array of all supported language codes for map display and service responses.
|
|
2735
|
+
*
|
|
2736
|
+
* This constant array contains all valid language codes that can be used to configure
|
|
2737
|
+
* the language for map labels, place names, addresses, and other textual content.
|
|
2738
|
+
*
|
|
2739
|
+
* The array includes:
|
|
2740
|
+
* - Region-specific language variants (e.g., `en-US`, `en-GB`, `pt-BR`, `pt-PT`)
|
|
2741
|
+
* - Script-specific variants (e.g., `zh-Hans` for Simplified Chinese, `zh-Hant` for Traditional Chinese)
|
|
2742
|
+
* - Special codes like `ngt` (Neutral Ground Truth) for language-neutral content
|
|
2743
|
+
* - Latin script alternatives (e.g., `ngt-Latn`, `ko-Latn-KR`, `ru-Latn-RU`)
|
|
2744
|
+
* - Cyrillic script variants (e.g., `ru-Cyrl-RU`)
|
|
2745
|
+
*
|
|
2746
|
+
* Use this array to:
|
|
2747
|
+
* - Validate user-provided language codes
|
|
2748
|
+
* - Generate language selection UI components
|
|
2749
|
+
* - Iterate over all available language options
|
|
2750
|
+
* - Check if a language code is supported
|
|
2751
|
+
*
|
|
2752
|
+
* @see {@link Language} - The type derived from this array
|
|
2753
|
+
* @see [Supported languages documentation](https://docs.tomtom.com/map-display-api/documentation/vector/content-v2#list-of-supported-languages)
|
|
2754
|
+
*
|
|
2755
|
+
* @example
|
|
2756
|
+
* ```typescript
|
|
2757
|
+
* // Validate a language code
|
|
2758
|
+
* const userLanguage = 'en-US';
|
|
2759
|
+
* if (languages.includes(userLanguage)) {
|
|
2760
|
+
* console.log('Language is supported');
|
|
2761
|
+
* }
|
|
2762
|
+
*
|
|
2763
|
+
* // Create a language selector
|
|
2764
|
+
* languages.forEach(lang => {
|
|
2765
|
+
* console.log(`Available language: ${lang}`);
|
|
2766
|
+
* });
|
|
2767
|
+
*
|
|
2768
|
+
* // Check total number of supported languages
|
|
2769
|
+
* console.log(`Total languages: ${languages.length}`);
|
|
2770
|
+
* ```
|
|
2771
|
+
*
|
|
2772
|
+
* @group Shared
|
|
2773
|
+
*/
|
|
2774
|
+
export declare const languages: readonly ["ngt", "ngt-Latn", "ar", "bg-BG", "zh-Hant", "zh-Hans", "cs-CZ", "da-DK", "nl-NL", "en-AU", "en-CA", "en-GB", "en-NZ", "en-US", "fi-FI", "fr-FR", "de-DE", "el-GR", "hu-HU", "id-ID", "it-IT", "ko-KR", "ko-Latn-KR", "lt-LT", "ms-MY", "nb-NO", "pl-PL", "pt-BR", "pt-PT", "ru-RU", "ru-Latn-RU", "ru-Cyrl-RU", "sk-SK", "sl-SI", "es-ES", "es-MX", "sv-SE", "th-TH", "tr-TR"];
|
|
2775
|
+
|
|
2776
|
+
/**
|
|
2777
|
+
* Route section representing a leg between waypoints.
|
|
2778
|
+
*
|
|
2779
|
+
* A leg is the portion of route between two consecutive non-circle waypoints.
|
|
2780
|
+
* This is a top-level section that encompasses the entire journey segment.
|
|
2781
|
+
*
|
|
2782
|
+
* @remarks
|
|
2783
|
+
* Leg examples:
|
|
2784
|
+
* - A→B route: 1 leg (A to B)
|
|
2785
|
+
* - A→B→C route: 2 legs (A to B, then B to C)
|
|
2786
|
+
* - A→B→(circle)→C route: 2 legs (A to B, then B to C) - circle waypoint doesn't create a leg
|
|
2787
|
+
*
|
|
2788
|
+
* @example
|
|
2789
|
+
* ```typescript
|
|
2790
|
+
* const leg: LegSectionProps = {
|
|
2791
|
+
* id: 'leg-1',
|
|
2792
|
+
* summary: {
|
|
2793
|
+
* departureTime: new Date(),
|
|
2794
|
+
* arrivalTime: new Date(),
|
|
2795
|
+
* lengthInMeters: 50000,
|
|
2796
|
+
* travelTimeInSeconds: 3600,
|
|
2797
|
+
* // ... other summary fields
|
|
2798
|
+
* },
|
|
2799
|
+
* startPointIndex: 0,
|
|
2800
|
+
* endPointIndex: 250
|
|
2801
|
+
* };
|
|
2802
|
+
* ```
|
|
2803
|
+
*
|
|
2804
|
+
* @group Route
|
|
2805
|
+
*/
|
|
2806
|
+
export declare type LegSectionProps = Omit<SectionProps, 'startPointIndex' | 'endPointIndex'> & {
|
|
2807
|
+
/**
|
|
2808
|
+
* Index where this leg starts in the route coordinates.
|
|
2809
|
+
*
|
|
2810
|
+
* Only present if the route polyline geometry is available.
|
|
2811
|
+
*/
|
|
2812
|
+
startPointIndex?: number;
|
|
2813
|
+
/**
|
|
2814
|
+
* Index where this leg ends in the route coordinates.
|
|
2815
|
+
*
|
|
2816
|
+
* Only present if the route polyline geometry is available.
|
|
2817
|
+
*/
|
|
2818
|
+
endPointIndex?: number;
|
|
2819
|
+
/**
|
|
2820
|
+
* Summary statistics for this leg.
|
|
2821
|
+
*
|
|
2822
|
+
* Contains departure/arrival times, distances, durations, and consumption
|
|
2823
|
+
* estimates specifically for this leg of the journey.
|
|
2824
|
+
*/
|
|
2825
|
+
summary: LegSummary;
|
|
2826
|
+
};
|
|
2827
|
+
|
|
2828
|
+
/**
|
|
2829
|
+
* Summary information for a single route leg.
|
|
2830
|
+
*
|
|
2831
|
+
* A leg is the portion of the route between two consecutive waypoints.
|
|
2832
|
+
*
|
|
2833
|
+
* @remarks
|
|
2834
|
+
* - An A→B route has 1 leg
|
|
2835
|
+
* - An A→B→C route has 2 legs (A→B, B→C)
|
|
2836
|
+
* - Circle waypoints don't create new legs
|
|
2837
|
+
*
|
|
2838
|
+
* @group Route
|
|
2839
|
+
*/
|
|
2840
|
+
export declare type LegSummary = SummaryWithConsumption & {
|
|
2841
|
+
/**
|
|
2842
|
+
* Charging information at the end of this leg.
|
|
2843
|
+
*
|
|
2844
|
+
* Present only if this leg ends at a charging stop, indicating the vehicle
|
|
2845
|
+
* will charge at this waypoint before continuing to the next leg.
|
|
2846
|
+
*
|
|
2847
|
+
* @remarks
|
|
2848
|
+
* Contains details about:
|
|
2849
|
+
* - Charging park location and facilities
|
|
2850
|
+
* - Required charging time
|
|
2851
|
+
* - Target charge level after charging
|
|
2852
|
+
*
|
|
2853
|
+
* @example
|
|
2854
|
+
* ```typescript
|
|
2855
|
+
* chargingInformationAtEndOfLeg: {
|
|
2856
|
+
* chargingParkId: 'park-123',
|
|
2857
|
+
* chargingTimeInSeconds: 1200, // 20 minutes
|
|
2858
|
+
* targetChargeInkWh: 80,
|
|
2859
|
+
* targetChargeInPCT: 80
|
|
2860
|
+
* }
|
|
2861
|
+
* ```
|
|
2862
|
+
*/
|
|
2863
|
+
chargingInformationAtEndOfLeg?: ChargingStop;
|
|
2864
|
+
};
|
|
2865
|
+
|
|
2866
|
+
/**
|
|
2867
|
+
* Localized name for a POI category.
|
|
2868
|
+
*
|
|
2869
|
+
* Provides the category name in a specific language/locale.
|
|
2870
|
+
*
|
|
2871
|
+
* @example
|
|
2872
|
+
* ```typescript
|
|
2873
|
+
* const localizedName: LocalizedName = {
|
|
2874
|
+
* nameLocale: 'en-US',
|
|
2875
|
+
* name: 'Restaurant'
|
|
2876
|
+
* };
|
|
2877
|
+
* ```
|
|
2878
|
+
*
|
|
2879
|
+
* @group Place
|
|
2880
|
+
*/
|
|
2881
|
+
export declare type LocalizedName = {
|
|
2882
|
+
/**
|
|
2883
|
+
* Language/locale code for this name.
|
|
2884
|
+
*
|
|
2885
|
+
* Uses IETF language tags (e.g., 'en-US', 'fr-FR', 'de-DE').
|
|
2886
|
+
*/
|
|
2887
|
+
nameLocale: string;
|
|
2888
|
+
/**
|
|
2889
|
+
* Category name in the specified locale.
|
|
2890
|
+
*
|
|
2891
|
+
* Human-readable, localized category text.
|
|
2892
|
+
*/
|
|
2893
|
+
name: string;
|
|
2894
|
+
};
|
|
2895
|
+
|
|
2896
|
+
/**
|
|
2897
|
+
* Description of the maneuver, for example: arrive or turn right.
|
|
2898
|
+
* @see https://docs.tomtom.com/routing-api/documentation/routing/calculate-route#maneuver-codes
|
|
2899
|
+
* @group Route
|
|
2900
|
+
*/
|
|
2901
|
+
export declare type Maneuver = 'DEPART' | 'WAYPOINT_LEFT' | 'WAYPOINT_RIGHT' | 'WAYPOINT_REACHED' | 'WAYPOINT_AHEAD' | 'ARRIVE' | 'ARRIVE_LEFT' | 'ARRIVE_RIGHT' | 'ARRIVE_AHEAD' | 'STRAIGHT' | 'KEEP_LEFT' | 'KEEP_RIGHT' | 'SLIGHT_RIGHT' | 'TURN_RIGHT' | 'SHARP_RIGHT' | 'SLIGHT_LEFT' | 'TURN_LEFT' | 'SHARP_LEFT' | 'MAKE_UTURN' | 'ROUNDABOUT_STRAIGHT' | 'ROUNDABOUT_SHARP_RIGHT' | 'ROUNDABOUT_RIGHT' | 'ROUNDABOUT_SLIGHT_RIGHT' | 'ROUNDABOUT_SLIGHT_LEFT' | 'ROUNDABOUT_LEFT' | 'ROUNDABOUT_SHARP_LEFT' | 'ROUNDABOUT_BACK' | 'EXIT_ROUNDABOUT' | 'EXIT_MOTORWAY_LEFT' | 'EXIT_MOTORWAY_RIGHT' | 'SWITCH_MOTORWAY_LEFT' | 'SWITCH_MOTORWAY_RIGHT' | 'ENTER_CARPOOL_LANE_LEFT' | 'ENTER_CARPOOL_LANE_RIGHT' | 'EXIT_CARPOOL_LANE_LEFT' | 'EXIT_CARPOOL_LANE_RIGHT' | 'MERGE_LEFT_LANE' | 'MERGE_RIGHT_LANE' | 'TAKE_SHIP_FERRY' | 'TAKE_CAR_TRAIN' | 'LEAVE_SHIP_FERRY' | 'LEAVE_CAR_TRAIN' | 'CROSS_BORDER' | 'TOLLGATE';
|
|
2902
|
+
|
|
2903
|
+
/**
|
|
2904
|
+
* Mapcode representation of a location.
|
|
2905
|
+
*
|
|
2906
|
+
* A mapcode is a short, memorable code representing a geographic location,
|
|
2907
|
+
* designed as an alternative to coordinates.
|
|
2908
|
+
*
|
|
2909
|
+
* @example
|
|
2910
|
+
* ```typescript
|
|
2911
|
+
* // Local mapcode (requires territory)
|
|
2912
|
+
* const localMapcode: Mapcode = {
|
|
2913
|
+
* type: 'Local',
|
|
2914
|
+
* fullMapcode: 'NLD 4J.P2',
|
|
2915
|
+
* territory: 'NLD',
|
|
2916
|
+
* code: '4J.P2'
|
|
2917
|
+
* };
|
|
2918
|
+
*
|
|
2919
|
+
* // International mapcode (no territory needed)
|
|
2920
|
+
* const intlMapcode: Mapcode = {
|
|
2921
|
+
* type: 'International',
|
|
2922
|
+
* fullMapcode: 'VHXGB.4J9W',
|
|
2923
|
+
* code: 'VHXGB.4J9W'
|
|
2924
|
+
* };
|
|
2925
|
+
* ```
|
|
2926
|
+
*
|
|
2927
|
+
* @group Place
|
|
2928
|
+
*/
|
|
2929
|
+
export declare type Mapcode = {
|
|
2930
|
+
/**
|
|
2931
|
+
* The type of mapcode (Local, International, or Alternative).
|
|
2932
|
+
*/
|
|
2933
|
+
type: MapcodeType;
|
|
2934
|
+
/**
|
|
2935
|
+
* Complete mapcode including territory if applicable.
|
|
2936
|
+
*
|
|
2937
|
+
* Always unambiguous. Format: "TERRITORY CODE" for local, just "CODE" for international.
|
|
2938
|
+
*/
|
|
2939
|
+
fullMapcode: string;
|
|
2940
|
+
/**
|
|
2941
|
+
* Territory code for local mapcodes.
|
|
2942
|
+
*
|
|
2943
|
+
* Present only for Local and Alternative mapcodes. Uses Latin alphabet.
|
|
2944
|
+
* Not present for International mapcodes.
|
|
2945
|
+
*/
|
|
2946
|
+
territory?: string;
|
|
2947
|
+
/**
|
|
2948
|
+
* The mapcode without territory.
|
|
2949
|
+
*
|
|
2950
|
+
* Two groups of letters/digits separated by a dot (e.g., "4J.P2").
|
|
2951
|
+
* Uses the response language/alphabet. Not present for International mapcodes.
|
|
2952
|
+
*/
|
|
2953
|
+
code?: string;
|
|
2954
|
+
};
|
|
2955
|
+
|
|
2956
|
+
/**
|
|
2957
|
+
* Type of mapcode.
|
|
2958
|
+
*
|
|
2959
|
+
* Mapcodes are short location codes that can be used as an alternative to coordinates.
|
|
2960
|
+
*
|
|
2961
|
+
* @remarks
|
|
2962
|
+
* - `Local`: Shortest mapcode, requires territory context (e.g., "4J.P2" for Eiffel Tower in FRA)
|
|
2963
|
+
* - `International`: Unambiguous worldwide, no territory needed but longer
|
|
2964
|
+
* - `Alternative`: Alternative local encoding pointing to slightly different coordinates
|
|
2965
|
+
*
|
|
2966
|
+
* @see [Mapcode documentation](https://www.mapcode.com)
|
|
2967
|
+
*
|
|
2968
|
+
* @group Place
|
|
2969
|
+
*/
|
|
2970
|
+
export declare type MapcodeType = 'Local' | 'International' | 'Alternative';
|
|
2971
|
+
|
|
2972
|
+
/**
|
|
2973
|
+
* Merges the global configuration into the given one, with the latter having priority.
|
|
2974
|
+
* @ignore
|
|
2975
|
+
*/
|
|
2976
|
+
export declare const mergeFromGlobal: <T extends Partial<GlobalConfig>>(givenConfig?: T) => T;
|
|
2977
|
+
|
|
2978
|
+
/**
|
|
2979
|
+
* Date and time with convenient derived properties.
|
|
2980
|
+
*
|
|
2981
|
+
* Represents a specific moment in time with pre-calculated components
|
|
2982
|
+
* for easy access without additional date parsing.
|
|
2983
|
+
*
|
|
2984
|
+
* @example
|
|
2985
|
+
* ```typescript
|
|
2986
|
+
* const moment: Moment = {
|
|
2987
|
+
* date: new Date('2025-10-20T09:30:00Z'),
|
|
2988
|
+
* dateYYYYMMDD: '2025-10-20',
|
|
2989
|
+
* year: 2025,
|
|
2990
|
+
* month: 10,
|
|
2991
|
+
* day: 20,
|
|
2992
|
+
* hour: 9,
|
|
2993
|
+
* minute: 30
|
|
2994
|
+
* };
|
|
2995
|
+
* ```
|
|
2996
|
+
*
|
|
2997
|
+
* @group Place
|
|
2998
|
+
*/
|
|
2999
|
+
export declare type Moment = {
|
|
3000
|
+
/**
|
|
3001
|
+
* JavaScript Date object representing this moment.
|
|
3002
|
+
*/
|
|
3003
|
+
date: Date;
|
|
3004
|
+
/**
|
|
3005
|
+
* Date formatted as YYYY-MM-DD string.
|
|
3006
|
+
*
|
|
3007
|
+
* Useful for display or comparison without time components.
|
|
3008
|
+
*/
|
|
3009
|
+
dateYYYYMMDD: string;
|
|
3010
|
+
/**
|
|
3011
|
+
* Four-digit year (e.g., 2025).
|
|
3012
|
+
*/
|
|
3013
|
+
year: number;
|
|
3014
|
+
/**
|
|
3015
|
+
* Month number (1-12).
|
|
3016
|
+
*
|
|
3017
|
+
* Note: Unlike JavaScript Date.getMonth(), this is 1-based (January = 1).
|
|
3018
|
+
*/
|
|
3019
|
+
month: number;
|
|
3020
|
+
/**
|
|
3021
|
+
* Day of month (1-31).
|
|
3022
|
+
*/
|
|
3023
|
+
day: number;
|
|
3024
|
+
/**
|
|
3025
|
+
* Hour in 24-hour format (0-23).
|
|
3026
|
+
*/
|
|
3027
|
+
hour: number;
|
|
3028
|
+
/**
|
|
3029
|
+
* Minute (0-59).
|
|
3030
|
+
*/
|
|
3031
|
+
minute: number;
|
|
3032
|
+
};
|
|
3033
|
+
|
|
3034
|
+
/**
|
|
3035
|
+
* Operating hours information for a POI.
|
|
3036
|
+
*
|
|
3037
|
+
* Describes when a location is open for business, including:
|
|
3038
|
+
* - Regular daily schedules
|
|
3039
|
+
* - Split shifts (e.g., lunch break closures)
|
|
3040
|
+
* - Overnight hours
|
|
3041
|
+
* - 24/7 operation
|
|
3042
|
+
*
|
|
3043
|
+
* @remarks
|
|
3044
|
+
* Use this to:
|
|
3045
|
+
* - Display "Open now" / "Closed" status
|
|
3046
|
+
* - Show upcoming hours
|
|
3047
|
+
* - Determine if a location is open at a specific time
|
|
3048
|
+
* - Plan visits during operating hours
|
|
3049
|
+
*
|
|
3050
|
+
* @example
|
|
3051
|
+
* ```typescript
|
|
3052
|
+
* const openingHours: OpeningHours = {
|
|
3053
|
+
* mode: 'nextSevenDays',
|
|
3054
|
+
* timeRanges: [
|
|
3055
|
+
* { start: {...}, end: {...} }, // Monday
|
|
3056
|
+
* { start: {...}, end: {...} } // Tuesday
|
|
3057
|
+
* ],
|
|
3058
|
+
* alwaysOpenThisPeriod: false
|
|
3059
|
+
* };
|
|
3060
|
+
*
|
|
3061
|
+
* // 24/7 location
|
|
3062
|
+
* const alwaysOpen: OpeningHours = {
|
|
3063
|
+
* mode: 'nextSevenDays',
|
|
3064
|
+
* timeRanges: [],
|
|
3065
|
+
* alwaysOpenThisPeriod: true
|
|
3066
|
+
* };
|
|
3067
|
+
* ```
|
|
3068
|
+
*
|
|
3069
|
+
* @group Place
|
|
3070
|
+
*/
|
|
3071
|
+
export declare type OpeningHours = {
|
|
3072
|
+
/**
|
|
3073
|
+
* Time period mode for the provided hours.
|
|
3074
|
+
*
|
|
3075
|
+
* Currently always 'nextSevenDays'.
|
|
3076
|
+
*/
|
|
3077
|
+
mode: OpeningHoursMode;
|
|
3078
|
+
/**
|
|
3079
|
+
* Array of time ranges when the POI is open.
|
|
3080
|
+
*
|
|
3081
|
+
* Each time range represents one opening period. Multiple ranges per day
|
|
3082
|
+
* indicate split shifts (e.g., closed for lunch).
|
|
3083
|
+
*
|
|
3084
|
+
* Empty array if alwaysOpenThisPeriod is true.
|
|
3085
|
+
*/
|
|
3086
|
+
timeRanges: TimeRange[];
|
|
3087
|
+
/**
|
|
3088
|
+
* Indicates if the POI is always open during the requested period.
|
|
3089
|
+
*
|
|
3090
|
+
* When true, the location operates 24/7 and timeRanges will be empty.
|
|
3091
|
+
* When false, refer to timeRanges for specific open hours.
|
|
3092
|
+
*/
|
|
3093
|
+
alwaysOpenThisPeriod: boolean;
|
|
3094
|
+
};
|
|
3095
|
+
|
|
3096
|
+
/**
|
|
3097
|
+
* Operating hours mode specifying the time period covered.
|
|
3098
|
+
*
|
|
3099
|
+
* Currently only 'nextSevenDays' is supported, providing operating hours
|
|
3100
|
+
* for the upcoming week.
|
|
3101
|
+
*
|
|
3102
|
+
* @group Place
|
|
3103
|
+
*/
|
|
3104
|
+
export declare type OpeningHoursMode = 'nextSevenDays';
|
|
3105
|
+
|
|
3106
|
+
/**
|
|
3107
|
+
* Optional bounding box value.
|
|
3108
|
+
*
|
|
3109
|
+
* @group Shared
|
|
3110
|
+
*/
|
|
3111
|
+
export declare type OptionalBBox = BBox | undefined;
|
|
3112
|
+
|
|
3113
|
+
/**
|
|
3114
|
+
* Input representing a path or route to follow.
|
|
3115
|
+
*
|
|
3116
|
+
* Used for route reconstruction or when you want the calculated route to follow
|
|
3117
|
+
* a specific path rather than calculating a new one.
|
|
3118
|
+
*
|
|
3119
|
+
* @remarks
|
|
3120
|
+
* - `Position[]`: Array of coordinate points defining the path
|
|
3121
|
+
* - `Route`: Complete route object (for route reconstruction scenarios)
|
|
3122
|
+
*
|
|
3123
|
+
* @example
|
|
3124
|
+
* ```typescript
|
|
3125
|
+
* // As coordinate array
|
|
3126
|
+
* const path1: PathLike = [
|
|
3127
|
+
* [4.9, 52.3],
|
|
3128
|
+
* [4.91, 52.31],
|
|
3129
|
+
* [4.92, 52.32]
|
|
3130
|
+
* ];
|
|
3131
|
+
*
|
|
3132
|
+
* // As existing route
|
|
3133
|
+
* const path2: PathLike = existingRoute;
|
|
3134
|
+
* ```
|
|
3135
|
+
*
|
|
3136
|
+
* @group Route
|
|
3137
|
+
*/
|
|
3138
|
+
export declare type PathLike = Position[] | Route;
|
|
3139
|
+
|
|
3140
|
+
/**
|
|
3141
|
+
* Payment method type for electric vehicle charging stations.
|
|
3142
|
+
*
|
|
3143
|
+
* Specifies how users can pay for charging services at a particular station.
|
|
3144
|
+
*
|
|
3145
|
+
* @example
|
|
3146
|
+
* ```typescript
|
|
3147
|
+
* const method: PaymentMethod = 'Subscription';
|
|
3148
|
+
* ```
|
|
3149
|
+
*
|
|
3150
|
+
* @group Route
|
|
3151
|
+
*/
|
|
3152
|
+
export declare type PaymentMethod = (typeof paymentMethods)[number];
|
|
3153
|
+
|
|
3154
|
+
/**
|
|
3155
|
+
* Available payment methods for electric vehicle charging stations.
|
|
3156
|
+
*
|
|
3157
|
+
* Defines the types of payment accepted at charging locations.
|
|
3158
|
+
*
|
|
3159
|
+
* @remarks
|
|
3160
|
+
* - `No_Payment`: Free charging, no payment required
|
|
3161
|
+
* - `Subscription`: Requires a subscription or membership plan
|
|
3162
|
+
* - `Direct`: Pay-per-use, direct payment (credit card, app, etc.)
|
|
3163
|
+
*
|
|
3164
|
+
* @group Route
|
|
3165
|
+
*/
|
|
3166
|
+
export declare const paymentMethods: readonly ["No_Payment", "Subscription", "Direct"];
|
|
3167
|
+
|
|
3168
|
+
/**
|
|
3169
|
+
* GeoJSON Feature representing a place.
|
|
3170
|
+
*
|
|
3171
|
+
* A place is a Point feature with comprehensive location information
|
|
3172
|
+
* including address, coordinates, and metadata.
|
|
3173
|
+
*
|
|
3174
|
+
* @typeParam P - Type of the place properties (defaults to CommonPlaceProps)
|
|
3175
|
+
*
|
|
3176
|
+
* @example
|
|
3177
|
+
* ```typescript
|
|
3178
|
+
* const place: Place<SearchPlaceProps> = {
|
|
3179
|
+
* type: 'Feature',
|
|
3180
|
+
* id: 'place-123',
|
|
3181
|
+
* geometry: { type: 'Point', coordinates: [4.9041, 52.3676] },
|
|
3182
|
+
* properties: {
|
|
3183
|
+
* type: 'POI',
|
|
3184
|
+
* address: { freeformAddress: 'Dam, Amsterdam', ... },
|
|
3185
|
+
* poi: { name: 'Dam Square', ... },
|
|
3186
|
+
* score: 0.95
|
|
3187
|
+
* }
|
|
3188
|
+
* };
|
|
3189
|
+
* ```
|
|
3190
|
+
*
|
|
3191
|
+
* @group Place
|
|
3192
|
+
*/
|
|
3193
|
+
export declare type Place<P extends CommonPlaceProps = CommonPlaceProps> = Omit<Feature<Point, P>, 'id'> & {
|
|
3194
|
+
/**
|
|
3195
|
+
* Unique identifier for this place.
|
|
3196
|
+
*
|
|
3197
|
+
* Required string ID (stricter than GeoJSON Feature's optional id).
|
|
3198
|
+
*/
|
|
3199
|
+
id: string;
|
|
3200
|
+
};
|
|
3201
|
+
|
|
3202
|
+
/**
|
|
3203
|
+
* Data sources for fetching additional place information.
|
|
3204
|
+
*
|
|
3205
|
+
* Provides IDs that can be used with various services to retrieve
|
|
3206
|
+
* detailed or real-time information about a place.
|
|
3207
|
+
*
|
|
3208
|
+
* @remarks
|
|
3209
|
+
* This object acts as a navigation aid, telling you which additional
|
|
3210
|
+
* data is available for a place and providing the IDs needed to fetch it.
|
|
3211
|
+
*
|
|
3212
|
+
* @example
|
|
3213
|
+
* ```typescript
|
|
3214
|
+
* const dataSources: PlaceDataSources = {
|
|
3215
|
+
* chargingAvailability: { id: 'charging-123' },
|
|
3216
|
+
* geometry: { id: 'geom-456' },
|
|
3217
|
+
* poiDetails: { id: 'poi-789', sourceName: 'TomTom' }
|
|
3218
|
+
* };
|
|
3219
|
+
* ```
|
|
3220
|
+
*
|
|
3221
|
+
* @group Place
|
|
3222
|
+
*/
|
|
3223
|
+
export declare type PlaceDataSources = {
|
|
3224
|
+
/**
|
|
3225
|
+
* Data source for EV charging station availability.
|
|
3226
|
+
*
|
|
3227
|
+
* Present only for places that are EV charging stations (type === POI).
|
|
3228
|
+
* Use the ID to fetch real-time availability from the
|
|
3229
|
+
* EV Charging Stations Availability service.
|
|
3230
|
+
*/
|
|
3231
|
+
chargingAvailability?: ChargingAvailabilityDataSource;
|
|
3232
|
+
/**
|
|
3233
|
+
* Data source for geometric shape information.
|
|
3234
|
+
*
|
|
3235
|
+
* Present for places with geometric representations (type === Geography or POI).
|
|
3236
|
+
* Use the ID to fetch boundary polygons from the Geometry Data service.
|
|
3237
|
+
*
|
|
3238
|
+
* @remarks
|
|
3239
|
+
* Useful for:
|
|
3240
|
+
* - Displaying administrative boundaries
|
|
3241
|
+
* - Showing building footprints
|
|
3242
|
+
* - Visualizing area coverage
|
|
3243
|
+
*/
|
|
3244
|
+
geometry?: GeometryDataSource;
|
|
3245
|
+
/**
|
|
3246
|
+
* Data source for detailed POI information.
|
|
3247
|
+
*
|
|
3248
|
+
* Present only for POI places (type === POI).
|
|
3249
|
+
* Use the ID to fetch extended details from the Points of Interest Details service.
|
|
3250
|
+
*/
|
|
3251
|
+
poiDetails?: PoiDetailsDataSource;
|
|
3252
|
+
};
|
|
3253
|
+
|
|
3254
|
+
/**
|
|
3255
|
+
* GeoJSON FeatureCollection containing multiple places.
|
|
3256
|
+
*
|
|
3257
|
+
* Collection of place results from search or geocoding operations.
|
|
3258
|
+
*
|
|
3259
|
+
* @typeParam P - Type of individual place properties (defaults to CommonPlaceProps)
|
|
3260
|
+
* @typeParam FeatureCollectionProps - Type of collection-level properties
|
|
3261
|
+
*
|
|
3262
|
+
* @example
|
|
3263
|
+
* ```typescript
|
|
3264
|
+
* const places: Places<SearchPlaceProps> = {
|
|
3265
|
+
* type: 'FeatureCollection',
|
|
3266
|
+
* features: [
|
|
3267
|
+
* { id: '1', type: 'Feature', geometry: {...}, properties: {...} },
|
|
3268
|
+
* { id: '2', type: 'Feature', geometry: {...}, properties: {...} }
|
|
3269
|
+
* ]
|
|
3270
|
+
* };
|
|
3271
|
+
* ```
|
|
3272
|
+
*
|
|
3273
|
+
* @group Place
|
|
3274
|
+
*/
|
|
3275
|
+
export declare type Places<P extends CommonPlaceProps = CommonPlaceProps, FeatureCollectionProps = unknown> = Omit<FeatureCollectionWithProperties<Point, P, FeatureCollectionProps>, 'features'> & {
|
|
3276
|
+
/**
|
|
3277
|
+
* Array of place features.
|
|
3278
|
+
*
|
|
3279
|
+
* Each place has a required string ID.
|
|
3280
|
+
*/
|
|
3281
|
+
features: Place<P>[];
|
|
3282
|
+
};
|
|
3283
|
+
|
|
3284
|
+
/**
|
|
3285
|
+
* Type of place result.
|
|
3286
|
+
*
|
|
3287
|
+
* Categorizes the kind of location returned by search or geocoding services.
|
|
3288
|
+
*
|
|
3289
|
+
* @remarks
|
|
3290
|
+
* - `POI`: Point of Interest (business, landmark, facility)
|
|
3291
|
+
* - `Street`: A named street
|
|
3292
|
+
* - `Geography`: Administrative area (city, state, country, etc.)
|
|
3293
|
+
* - `Point Address`: Specific street address with building number
|
|
3294
|
+
* - `Address Range`: Range of addresses along a street segment
|
|
3295
|
+
* - `Cross Street`: Intersection of two streets
|
|
3296
|
+
*
|
|
3297
|
+
* @example
|
|
3298
|
+
* ```typescript
|
|
3299
|
+
* const placeType: PlaceType = 'POI';
|
|
3300
|
+
* ```
|
|
3301
|
+
*
|
|
3302
|
+
* @group Place
|
|
3303
|
+
*/
|
|
3304
|
+
export declare type PlaceType = (typeof placeTypes)[number];
|
|
3305
|
+
|
|
3306
|
+
/**
|
|
3307
|
+
* @group Place
|
|
3308
|
+
*/
|
|
3309
|
+
export declare const placeTypes: readonly ["POI", "Street", "Geography", "Point Address", "Address Range", "Cross Street"];
|
|
3310
|
+
|
|
3311
|
+
/**
|
|
3312
|
+
* Standard plug/connector type for electric vehicle charging.
|
|
3313
|
+
*
|
|
3314
|
+
* Defines the physical connector type used for charging, which must match
|
|
3315
|
+
* the vehicle's charging port. Different regions and manufacturers use different standards.
|
|
3316
|
+
*
|
|
3317
|
+
* @remarks
|
|
3318
|
+
* Common standards include:
|
|
3319
|
+
* - **IEC 62196 Types**: European and international standards (Type 1, Type 2, Type 3)
|
|
3320
|
+
* - **CHAdeMO**: Japanese DC fast charging standard
|
|
3321
|
+
* - **CCS (Combo)**: Combined charging system (AC + DC)
|
|
3322
|
+
* - **Tesla_Connector**: Tesla proprietary connector
|
|
3323
|
+
* - **SAE_J1772**: North American standard for AC charging
|
|
3324
|
+
* - **China_GB**: Chinese national standard
|
|
3325
|
+
* - **NEMA**: North American standard household outlets
|
|
3326
|
+
*
|
|
3327
|
+
* Different vehicles support different plug types, and charging stations may have multiple
|
|
3328
|
+
* connector types available.
|
|
3329
|
+
*
|
|
3330
|
+
* @example
|
|
3331
|
+
* ```typescript
|
|
3332
|
+
* // Common connector types
|
|
3333
|
+
* const type2: PlugType = 'IEC_62196_Type_2_Connector_Cable_Attached'; // Common in Europe
|
|
3334
|
+
* const chademo: PlugType = 'CHAdeMO'; // Japanese standard
|
|
3335
|
+
* const ccs: PlugType = 'Combo_to_IEC_62196_Type_2_Base'; // CCS Combo 2
|
|
3336
|
+
* const tesla: PlugType = 'Tesla_Connector'; // Tesla vehicles
|
|
3337
|
+
* ```
|
|
3338
|
+
*
|
|
3339
|
+
* @group Route
|
|
3340
|
+
*/
|
|
3341
|
+
export declare type PlugType = (typeof plugTypes)[number];
|
|
3342
|
+
|
|
3343
|
+
/**
|
|
3344
|
+
* Available plug types for EV charging.
|
|
3345
|
+
* @group Route
|
|
3346
|
+
*/
|
|
3347
|
+
export declare const plugTypes: readonly ["Small_Paddle_Inductive", "Large_Paddle_Inductive", "IEC_60309_1_Phase", "IEC_60309_3_Phase", "IEC_62196_Type_1_Outlet", "IEC_62196_Type_2_Outlet", "IEC_62196_Type_3_Outlet", "IEC_62196_Type_1_Connector_Cable_Attached", "IEC_62196_Type_2_Connector_Cable_Attached", "IEC_62196_Type_3_Connector_Cable_Attached", "Combo_to_IEC_62196_Type_1_Base", "Combo_to_IEC_62196_Type_2_Base", "Type_E_French_Standard_CEE_7_5", "Type_F_Schuko_CEE_7_4", "Type_G_British_Standard_BS_1363", "Type_J_Swiss_Standard_SEV_1011", "China_GB_Part_2", "China_GB_Part_3", "IEC_309_DC_Plug", "AVCON_Connector", "Tesla_Connector", "NEMA_5_20", "CHAdeMO", "SAE_J1772", "TEPCO", "Better_Place_Socket", "Marechal_Socket", "Standard_Household_Country_Specific"];
|
|
3348
|
+
|
|
3349
|
+
/**
|
|
3350
|
+
* Point of Interest (POI) information.
|
|
3351
|
+
*
|
|
3352
|
+
* Contains detailed information about a place such as a business, landmark, or facility.
|
|
3353
|
+
* This data enriches basic place information with operational details and categorization.
|
|
3354
|
+
*
|
|
3355
|
+
* @example
|
|
3356
|
+
* ```typescript
|
|
3357
|
+
* const poi: POI = {
|
|
3358
|
+
* name: 'Central Station Café',
|
|
3359
|
+
* phone: '+31 20 123 4567',
|
|
3360
|
+
* brands: ['Starbucks'],
|
|
3361
|
+
* categoryIds: [7315025],
|
|
3362
|
+
* categories: ['Café'],
|
|
3363
|
+
* url: 'https://example.com',
|
|
3364
|
+
* openingHours: { mode: 'nextSevenDays', timeRanges: [...], alwaysOpenThisPeriod: false }
|
|
3365
|
+
* };
|
|
3366
|
+
* ```
|
|
3367
|
+
*
|
|
3368
|
+
* @group Place
|
|
3369
|
+
*/
|
|
3370
|
+
export declare type POI = {
|
|
3371
|
+
/**
|
|
3372
|
+
* Name of the point of interest.
|
|
3373
|
+
*
|
|
3374
|
+
* The primary display name, localized according to the request language.
|
|
3375
|
+
*/
|
|
3376
|
+
name: string;
|
|
3377
|
+
/**
|
|
3378
|
+
* Contact phone number for the POI.
|
|
3379
|
+
*
|
|
3380
|
+
* Typically includes country code (e.g., '+31 20 123 4567').
|
|
3381
|
+
*/
|
|
3382
|
+
phone?: string;
|
|
3383
|
+
/**
|
|
3384
|
+
* Brand names associated with this POI.
|
|
3385
|
+
*
|
|
3386
|
+
* For chain locations, identifies the brand (e.g., 'Starbucks', 'Shell', 'Marriott').
|
|
3387
|
+
*/
|
|
3388
|
+
brands?: string[];
|
|
3389
|
+
/**
|
|
3390
|
+
* Website URL for the POI.
|
|
3391
|
+
*
|
|
3392
|
+
* Official website or online presence for the business or location.
|
|
3393
|
+
*/
|
|
3394
|
+
url?: string;
|
|
3395
|
+
/**
|
|
3396
|
+
* Category identifiers for the POI.
|
|
3397
|
+
*
|
|
3398
|
+
* Numeric IDs corresponding to the POI category classification system.
|
|
3399
|
+
* Use these for filtering or identifying POI types programmatically.
|
|
3400
|
+
*/
|
|
3401
|
+
categoryIds?: number[];
|
|
3402
|
+
/**
|
|
3403
|
+
* Human-readable category names for the POI.
|
|
3404
|
+
*
|
|
3405
|
+
* Localized text descriptions of the POI categories (e.g., 'Restaurant', 'Gas Station', 'Hotel').
|
|
3406
|
+
*/
|
|
3407
|
+
categories?: string[];
|
|
3408
|
+
/**
|
|
3409
|
+
* Operating hours information.
|
|
3410
|
+
*
|
|
3411
|
+
* Specifies when the POI is open, including daily schedules and special hours.
|
|
3412
|
+
* Useful for determining if a location is currently open or planning visits.
|
|
3413
|
+
*/
|
|
3414
|
+
openingHours?: OpeningHours;
|
|
3415
|
+
/**
|
|
3416
|
+
* Detailed category classifications with localized names.
|
|
3417
|
+
*
|
|
3418
|
+
* Provides category information in multiple languages and includes standardized codes.
|
|
3419
|
+
*/
|
|
3420
|
+
classifications?: Classification[];
|
|
3421
|
+
/**
|
|
3422
|
+
* Time zone of the POI location.
|
|
3423
|
+
*
|
|
3424
|
+
* Used for interpreting opening hours and scheduling visits across time zones.
|
|
3425
|
+
*/
|
|
3426
|
+
timeZone?: TimeZone;
|
|
3427
|
+
};
|
|
3428
|
+
|
|
3429
|
+
/**
|
|
3430
|
+
* @group Place
|
|
3431
|
+
*/
|
|
3432
|
+
export declare type POICategory = 'ACCESS_GATEWAY' | 'ADVENTURE_SPORTS_FACILITY' | 'ADVENTURE_SPORTS_VENUE' | 'ADVENTURE_VEHICLE_TRAIL' | 'ADVERTISING_COMPANY' | 'AFGHAN_RESTAURANT' | 'AFRICAN_RESTAURANT' | 'AGRICULTURE' | 'AGRICULTURAL_BUSINESS' | 'AGRICULTURAL_SUPPLIES' | 'AGRICULTURAL_TECHNOLOGY' | 'AIRFIELD' | 'AIRLINE_ACCESS' | 'AIRLINE_COMPANY' | 'AIRPORT' | 'ALGERIAN_RESTAURANT' | 'AMBULANCE_UNIT' | 'AMERICAN_RESTAURANT' | 'AMPHITHEATER' | 'AMUSEMENT_ARCADE' | 'AMUSEMENT_PARK' | 'AMUSEMENT_PLACE' | 'ANIMAL_SERVICES' | 'ANIMAL_SHELTER' | 'ANTIQUE_ART_SHOP' | 'APARTMENT_RENTAL' | 'AQUATIC_ZOO' | 'ARABIAN_RESTAURANT' | 'ARCH' | 'ARGENTINIAN_RESTAURANT' | 'ARMENIAN_RESTAURANT' | 'ART_SCHOOL' | 'ASHRAM' | 'ASIAN_RESTAURANT' | 'ATHLETICS_TRACK' | 'ATM' | 'ATV_DEALER' | 'AUSTRALIAN_RESTAURANT' | 'AUSTRIAN_RESTAURANT' | 'AUTOMOBILE_COMPANY' | 'AUTOMOBILE_MANUFACTURING' | 'AUTOMOTIVE_DEALER' | 'BAGS_LEATHERWEAR' | 'BAKERY' | 'BANK' | 'BANQUET_ROOMS' | 'BAR' | 'BARBECUE_RESTAURANT' | 'BASEBALL_PARK' | 'BASKETBALL_ARENA' | 'BASQUE_RESTAURANT' | 'BATTLEFIELD' | 'BAY' | 'BEACH' | 'BEACH_CLUB' | 'BEAUTY_SALON' | 'BEAUTY_SUPPLIES' | 'BELGIAN_RESTAURANT' | 'BETTING_STATION' | 'BISTRO' | 'BLOOD_BANK' | 'BOATING_EQUIPMENT_ACCESSORIES' | 'BOAT_DEALER' | 'BOAT_LAUNCHING_RAMP' | 'BODYSHOP' | 'BOLIVIAN_RESTAURANT' | 'BOOK_SHOP' | 'BOSNIAN_RESTAURANT' | 'BOWLING_CENTER' | 'BRAZILIAN_RESTAURANT' | 'BRIDGE' | 'BRIDGE_TUNNEL_OPERATIONS' | 'BRITISH_RESTAURANT' | 'BUFFET_RESTAURANT' | 'BUILDING' | 'BULGARIAN_RESTAURANT' | 'BUNGALOW_RENTAL' | 'BURMESE_RESTAURANT' | 'BUSINESS_PARK' | 'BUSINESS_SERVICES' | 'BUS_CHARTER_COMPANY' | 'BUS_DEALER' | 'BUS_LINES' | 'BUS_STOP' | 'BUTCHER' | 'B_B_GUEST_HOUSE' | 'CABARET_THEATER' | 'CABINS_LODGES' | 'CABLE_TELEPHONE_COMPANY' | 'CAFE' | 'CAFETERIA' | 'CAFE_PUB' | 'CALIFORNIAN_RESTAURANT' | 'CAMBODIAN_RESTAURANT' | 'CAMERAS_PHOTOGRAPHY' | 'CAMPING_GROUND' | 'CANADIAN_RESTAURANT' | 'CAPE' | 'CARAVAN_SITE' | 'CARIBBEAN_RESTAURANT' | 'CARPET_FLOOR_COVERINGS' | 'CAR_ACCESSORIES' | 'CAR_DEALER' | 'CAR_GLASS_REPLACEMENT_SHOP' | 'CAR_REPAIR_AND_SERVICE' | 'CAR_WASH' | 'CASINO' | 'CASH_DISPENSER' | 'CATERING_SERVICES' | 'CAVE' | 'CEMETERY' | 'CHALET_RENTAL' | 'CHECKPOINT' | 'CHEMICAL_COMPANY' | 'CHICKEN_RESTAURANT' | 'CHILDRENS_CLOTHES' | 'CHILD_CARE_FACILITY' | 'CHILEAN_RESTAURANT' | 'CHINESE_RESTAURANT' | 'CHRISTMAS_HOLIDAY_SHOP' | 'CHURCH' | 'CINEMA' | 'CLEANING_SERVICES' | 'CLOTHING_SHOP' | 'CLUB_ASSOCIATION' | 'COACH_STOP' | 'COCKTAIL_BAR' | 'COFFEE_SHOP' | 'COLLEGE_UNIVERSITY' | 'COLOMBIAN_RESTAURANT' | 'COMEDY_CLUB' | 'COMMERCIAL_BUILDING' | 'COMMUNITY_CENTER' | 'COMPANY' | 'COMPUTER_COMPUTER_SUPPLIES' | 'COMPUTER_DATA_SERVICES' | 'CONCERT_HALL' | 'CONDOMINIUM_COMPLEX' | 'CONSTRUCTION_COMPANY' | 'CONSTRUCTION_MATERIAL_EQUIPMENT' | 'CONSUMER_ELECTRONICS' | 'CONVENIENCE_STORE' | 'CORSICAN_RESTAURANT' | 'COTTAGE_RENTAL' | 'COURIER_DROP_BOX' | 'COURTHOUSE' | 'COVE' | 'CREOLE_RESTAURANT' | 'CREPERIE' | 'CRICKET_GROUND' | 'CUBAN_RESTAURANT' | 'CULINARY_SCHOOL' | 'CULTURAL_CENTER' | 'CURTAINS_TEXTILES' | 'CYPRIOT_RESTAURANT' | 'CZECH_RESTAURANT' | 'C_DS_DVD_VIDEOS' | 'DAM' | 'DANCE_STUDIO_SCHOOL' | 'DANISH_RESTAURANT' | 'DELICATESSEN' | 'DELIVERY_SERVICE' | 'DENTIST' | 'DEPARTMENT_STORE' | 'DINNER_THEATER' | 'DISCO_CLUB' | 'DIVERSIFIED_FINANCIALS' | 'DOCTOR' | 'DOMINICAN_RESTAURANT' | 'DONGBEI_RESTAURANT' | 'DOUGHNUT_RESTAURANT' | 'DO_IT_YOURSELF_CENTERS' | 'DRIVE_IN_MOVIES' | 'DRIVE_THROUGH_BOTTLE_SHOP' | 'DRIVING_SCHOOL' | 'DRUG_STORE' | 'DRY_CLEANER' | 'DUNE' | 'DUTCH_RESTAURANT' | 'EGYPTIAN_RESTAURANT' | 'ELECTRICAL_APPLIANCES_SHOP' | 'ELECTRIC_VEHICLE_STATION' | 'ELECTRONICS_COMPANY' | 'EMBASSY' | 'EMERGENCY_MEDICAL_SERVICE' | 'EMERGENCY_ROOM' | 'ENGLISH_RESTAURANT' | 'ENTERTAINMENT' | 'EQUIPMENT_RENTAL' | 'EROTIC_RESTAURANT' | 'ETHIOPIAN_RESTAURANT' | 'EXCHANGE' | 'EXHIBITION_CONVENTION_CENTER' | 'EXOTIC_RESTAURANT' | 'FACTORY_OUTLET' | 'FAIRGROUND' | 'FARM' | 'FARMERS_MARKET' | 'FAST_FOOD' | 'FERRY_TERMINAL' | 'FINNISH_RESTAURANT' | 'FIRE_STATION_BRIGADE' | 'FISHING_HUNTING_AREA' | 'FISHMONGER' | 'FITNESS_CLUB_CENTER' | 'FLATS_APARTMENT_COMPLEX' | 'FLORISTS' | 'FLYING_CLUB' | 'FONDUE_RESTAURANT' | 'FOOD_MARKET' | 'FOOTBALL_STADIUM' | 'FOOTWEAR_SHOE_REPAIRS' | 'FOREST_AREA' | 'FRENCH_RESTAURANT' | 'FRONTIER_CROSSING' | 'FUEL_FACILITIES' | 'FUNERAL_SERVICE_MORTUARIES' | 'FURNITURE_HOME_FURNISHINGS' | 'FUSION_RESTAURANT' | 'GARDEN_CENTERS_SERVICES' | 'GAS_STATION' | 'GENERAL_PRACTITIONER' | 'GEOGRAPHIC_FEATURE' | 'GERMAN_RESTAURANT' | 'GIFTS_CARDS_NOVELTIES_SOUVENIRS' | 'GLASSWARE_CERAMIC_SHOP' | 'GLASS_WINDOWS_STORE' | 'GOLD_EXCHANGE' | 'GOLF_COURSE' | 'GOVERNMENT_OFFICE' | 'GREEK_RESTAURANT' | 'GREENGROCER' | 'GRILL_RESTAURANT' | 'GROCERY_STORE' | 'GUANGDONG_RESTAURANT' | 'GURUDWARA' | 'HAIRDRESSER' | 'HAMBURGER_RESTAURANT' | 'HARBOR' | 'HARDWARE_STORE' | 'HAWAIIAN_RESTAURANT' | 'HEALTH_CARE_SERVICE' | 'HELIPAD_HELICOPTER_LANDING' | 'HIGH_SCHOOL' | 'HIKING_TRAIL' | 'HILL' | 'HISTORICAL_PARK' | 'HISTORIC_SITE' | 'HOBBY_SHOP' | 'HOCKEY_CLUB' | 'HOLIDAY_RENTAL' | 'HOME_APPLIANCE_REPAIR' | 'HORSE_RACING_TRACK' | 'HORSE_RIDING_CENTER' | 'HORSE_RIDING_TRAIL' | 'HORTICULTURE' | 'HOSPITAL' | 'HOSPITAL_FOR_WOMEN_AND_CHILDREN' | 'HOSPITAL_OF_CHINESE_MEDICINE' | 'HOSPITAL_POLYCLINIC' | 'HOSTEL' | 'HOTEL' | 'HOTEL_MOTEL' | 'HOT_POT_RESTAURANT' | 'HOUSE_GARDEN_FURNITURE_FITTINGS' | 'HUNAN_RESTAURANT' | 'HUNGARIAN_RESTAURANT' | 'ICE_CREAM_PARLOR' | 'ICE_HOCKEY_ARENA' | 'ICE_SKATING_RINK' | 'IMPORT_EXPORT_AND_DISTRIBUTION' | 'IMPORTANT_TOURIST_ATTRACTION' | 'INDIAN_RESTAURANT' | 'INDONESIAN_RESTAURANT' | 'INDUSTRIAL_BUILDING' | 'INFORMAL_MARKET' | 'INSURANCE_COMPANY' | 'INTERNATIONAL_RAILROAD_STATION' | 'INTERNATIONAL_RESTAURANT' | 'INTERNET_CAFE' | 'INVESTMENT_ADVISOR' | 'IRANIAN_RESTAURANT' | 'IRISH_RESTAURANT' | 'ISLAND' | 'ISRAELI_RESTAURANT' | 'ITALIAN_RESTAURANT' | 'JAMAICAN_RESTAURANT' | 'JAPANESE_RESTAURANT' | 'JAZZ_CLUB' | 'JEWELRY_CLOCKS_WATCHES' | 'JEWISH_RESTAURANT' | 'JUNIOR_COLLEGE_COMMUNITY_COLLEGE' | 'KARAOKE_CLUB' | 'KITCHENS_BATHROOMS' | 'KOREAN_RESTAURANT' | 'KOSHER_RESTAURANT' | 'LAGOON' | 'LAKESHORE' | 'LANGUAGE_SCHOOL' | 'LATIN_AMERICAN_RESTAURANT' | 'LAUNDRY' | 'LEBANESE_RESTAURANT' | 'LEGAL_SERVICES' | 'LEISURE_CENTER' | 'LIBRARY' | 'LIGHTING_SHOPS' | 'LOCALE' | 'LOCAL_POST_OFFICE' | 'LOCAL_SPECIALITIES_SHOP' | 'LOTTERY_SHOP' | 'LUXEMBOURGIAN_RESTAURANT' | 'MACROBIOTIC_RESTAURANT' | 'MAGHRIB_RESTAURANT' | 'MALTESE_RESTAURANT' | 'MANUFACTURING_COMPANY' | 'MANUFACTURING_FACILITY' | 'MARIJUANA_DISPENSARY' | 'MARINA' | 'MARINE_ELECTRONIC_EQUIPMENT' | 'MARKET' | 'MARSH' | 'MAURITIAN_RESTAURANT' | 'MAUSOLEUM_GRAVE' | 'MECHANICAL_ENGINEERING' | 'MEDIA_FACILITY' | 'MEDICAL_SUPPLIES_EQUIPMENT' | 'MEDICINAL_MARIJUANA_DISPENSARY' | 'MEDITERRANEAN_RESTAURANT' | 'MEMORIAL' | 'MENS_CLOTHING' | 'MEXICAN_RESTAURANT' | 'MICROBREWERY' | 'MIDDLE_EASTERN_RESTAURANT' | 'MIDDLE_SCHOOL' | 'MILITARY_AIRPORT' | 'MILITARY_INSTALLATION' | 'MINERAL_HOT_SPRINGS' | 'MINING_COMPANY' | 'MOBILE_PHONE_SHOP' | 'MONGOLIAN_RESTAURANT' | 'MONUMENT' | 'MOROCCAN_RESTAURANT' | 'MOSQUE' | 'MOTEL' | 'MOTORCYCLE_DEALER' | 'MOTORCYCLE_REPAIR' | 'MOTORING_ORGANIZATION_OFFICE' | 'MOTOR_RACING_STADIUM' | 'MOUNTAIN_BIKE_TRAIL' | 'MOUNTAIN_PASS' | 'MOUNTAIN_PEAK' | 'MOVIE_THEATER' | 'MOVING_STORAGE_COMPANY' | 'MULTI_PURPOSE_STADIUM' | 'MUSEUM' | 'MUSIC_CENTER' | 'MUSIC_INSTRUMENTS_STORE' | 'MUSSELS_RESTAURANT' | 'NAIL_SALON' | 'NATIONAL_RAILROAD_STATION' | 'NATIVE_RESERVATION' | 'NATURAL_RECREATION_ATTRACTION' | 'NATURAL_TOURIST_ATTRACTION' | 'NEPALESE_RESTAURANT' | 'NETBALL_STADIUM' | 'NEWSAGENTS_TOBACCONISTS' | 'NIGHTLIFE' | 'NON_GOVERNMENTAL_ORGANIZATION' | 'NORWEGIAN_RESTAURANT' | 'OASIS' | 'OBSERVATORY' | 'OEM' | 'OFFICE_EQUIPMENT' | 'OIL_NATURAL_GAS' | 'OPEN_CAR_PARKING_AREA' | 'OPEN_PARKING_AREA' | 'OPERA_HOUSE' | 'OPTICIAN' | 'ORGANIC_FOOD_RESTAURANT' | 'ORIENTAL_RESTAURANT' | 'OTHER_FOOD_SHOPS' | 'OTHER_REPAIR_SHOPS' | 'OTHER_WINTER_SPORT' | 'PAGODA' | 'PAINTING_DECORATING' | 'PAKISTANI_RESTAURANT' | 'PAN' | 'PARK' | 'PARKING_GARAGE' | 'PARKWAY' | 'PARK_RECREATION_AREA' | 'PASSENGER_TRANSPORT_TICKET_OFFICE' | 'PAWN_SHOP' | 'PEDESTRIAN_SUBWAY' | 'PERSONAL_CARE_FACILITY' | 'PERSONAL_SERVICE' | 'PERUVIAN_RESTAURANT' | 'PET_SUPPLIES' | 'PETROL_STATION' | 'PHARMACEUTICAL_COMPANY' | 'PHARMACY' | 'PHILIPPINE_RESTAURANT' | 'PHOTOCOPY_SHOP' | 'PHOTO_LAB_DEVELOPMENT' | 'PICNIC_AREA' | 'PIZZERIA' | 'PLACE_OF_WORSHIP' | 'PLAIN_FLAT' | 'PLANETARIUM' | 'PLATEAU' | 'POLICE_STATION' | 'POLISH_RESTAURANT' | 'POLYNESIAN_RESTAURANT' | 'PORTUGUESE_RESTAURANT' | 'PORT_WAREHOUSE_FACILITY' | 'POST_OFFICE' | 'PRESERVE' | 'PRE_SCHOOL' | 'PRIMARY_PRODUCER' | 'PRIMARY_RESOURCE_UTILITY' | 'PRIMARY_SCHOOL' | 'PRISON_CORRECTIONAL_FACILITY' | 'PRIVATE_AIRPORT' | 'PRIVATE_CLUB' | 'PROVENCAL_RESTAURANT' | 'PUB' | 'PUBLIC_AIRPORT' | 'PUBLIC_AMENITY' | 'PUBLIC_CALL_BOX' | 'PUBLIC_HEALTH_TECHNOLOGY_COMPANY' | 'PUBLIC_MARKET' | 'PUBLIC_TOILET' | 'PUBLIC_TRANSPORT_STOP' | 'PUBLISHING_TECHNOLOGIES' | 'PUB_FOOD' | 'QUARRY' | 'RACE_TRACK' | 'RAILROAD_SIDING' | 'RAILWAY_STATION' | 'RAPIDS' | 'REAL_ESTATE_AGENT' | 'REAL_ESTATE_COMPANY' | 'RECREATIONAL_CAMPING_GROUND' | 'RECREATIONAL_MARIJUANA_DISPENSARY' | 'RECREATIONAL_VEHICLE_DEALER' | 'RECREATION_AREA' | 'RECYCLING_SHOP' | 'REEF' | 'RENT_A_CAR_FACILITY' | 'RENT_A_CAR_PARKING' | 'REPAIR_FACILITY' | 'REPAIR_SHOP' | 'RESEARCH_FACILITY' | 'RESERVOIR' | 'RESIDENTIAL_ACCOMMODATION' | 'RESIDENTIAL_ESTATE' | 'RESORT' | 'RESTAURANT' | 'RESTAURANT_AREA' | 'REST_AREA' | 'REST_CAMP' | 'RETAIL_OUTLET' | 'RETIREMENT_COMMUNITY' | 'RIDGE' | 'RIVER_CROSSING' | 'RIVER_SCENIC_AREA' | 'ROADSIDE_RESTAURANT' | 'ROAD_RESCUE' | 'ROAD_TRAFFIC_CONTROL_CENTER' | 'ROCKS' | 'ROCK_CLIMBING_TRAIL' | 'ROMANIAN_RESTAURANT' | 'RUGBY_GROUND' | 'RUSSIAN_RESTAURANT' | 'SALAD_BAR' | 'SANDWICH_RESTAURANT' | 'SAUNA_SOLARIUM_MASSAGE' | 'SAVINGS_INSTITUTION' | 'SAVOY_RESTAURANT' | 'SCANDINAVIAN_RESTAURANT' | 'SCENIC_PANORAMIC_VIEW' | 'SCHOOL' | 'SCOTTISH_RESTAURANT' | 'SEAFOOD' | 'SEASHORE' | 'SECURED_ENTRANCE' | 'SECURITY_PRODUCTS' | 'SENIOR_HIGH_SCHOOL' | 'SERVICE_COMPANY' | 'SHANDONG_RESTAURANT' | 'SHANGHAI_RESTAURANT' | 'SHOP' | 'SHOPPING_CENTER' | 'SHOPPING_SERVICE' | 'SICHUAN_RESTAURANT' | 'SICILIAN_RESTAURANT' | 'SKI_RESORT' | 'SLAVIC_RESTAURANT' | 'SLOVAK_RESTAURANT' | 'SNACKS_RESTAURANT' | 'SNOOKER_POOL_BILLIARD' | 'SOCCER_STADIUM' | 'SOFTWARE_COMPANY' | 'SOUL_FOOD' | 'SOUP_RESTAURANT' | 'SPANISH_RESTAURANT' | 'SPECIALIST' | 'SPECIALTY_CLOTHING_SHOP' | 'SPECIALTY_FOODS' | 'SPECIAL_HOSPITAL' | 'SPECIAL_SCHOOL' | 'SPORTS_CENTER' | 'SPORTS_EQUIPMENT_CLOTHING' | 'SPORT_SCHOOL' | 'STADIUM' | 'STAMP_SHOP' | 'STATION_ACCESS' | 'STATUE' | 'STEAK_HOUSE' | 'STOCK_EXCHANGE' | 'STREETCAR_STOP' | 'SUBWAY_STATION' | 'SUDANESE_RESTAURANT' | 'SUPERMARKETS_HYPERMARKETS' | 'SURINAMESE_RESTAURANT' | 'SUSHI_RESTAURANT' | 'SWEDISH_RESTAURANT' | 'SWIMMING_POOL' | 'SWISS_RESTAURANT' | 'SYNAGOG' | 'SYRIAN_RESTAURANT' | 'TAILOR_SHOP' | 'TAIWANESE_RESTAURANT' | 'TAKEOUT_FOOD' | 'TAPAS_RESTAURANT' | 'TAXI_LIMOUSINE_SHUTTLE_SERVICE' | 'TAXI_STAND' | 'TAX_SERVICES' | 'TEA_HOUSE' | 'TECHNICAL_SCHOOL' | 'TELECOMMUNICATIONS' | 'TEMPLE' | 'TENNIS_COURT' | 'TEPPANYAKI_RESTAURANT' | 'THAI_RESTAURANT' | 'THEATER' | 'THEMATIC_SPORT_CENTER' | 'TIBETAN_RESTAURANT' | 'TIRE_SERVICE' | 'TOLL_GATE' | 'TOURIST_ATTRACTION' | 'TOURIST_INFORMATION_OFFICE' | 'TOWER' | 'TOWNHOUSE_COMPLEX' | 'TOYS_GAMES_SHOP' | 'TRAFFIC_CONTROL_DEPARTMENT' | 'TRAFFIC_SERVICE_CENTER' | 'TRAIL_SYSTEM' | 'TRAILS' | 'TRANSPORT_AUTHORITY_VEHICLE_REGISTRATION' | 'TRANSPORT_COMPANY' | 'TRAVEL_AGENT' | 'TRUCK_DEALER' | 'TRUCK_REPAIR_AND_SERVICE' | 'TRUCK_STOP' | 'TRUCK_WASH' | 'TUNISIAN_RESTAURANT' | 'TUNNEL' | 'TURKISH_RESTAURANT' | 'URBAN_STATION' | 'URUGUAYAN_RESTAURANT' | 'VACATION_RENTAL' | 'VALLEY' | 'VAN_DEALER' | 'VARIETY_STORE' | 'VEGETARIAN_RESTAURANT' | 'VENEZUELAN_RESTAURANT' | 'VETERINARIAN' | 'VIDEO_RENTAL_SHOP' | 'VIETNAMESE_RESTAURANT' | 'VILLA_RENTAL' | 'VOCATIONAL_SCHOOL' | 'WATER_HOLE' | 'WATER_SPORT' | 'WEDDING_SERVICES' | 'WEIGH_SCALES' | 'WEIGH_STATION' | 'WELFARE_ORGANIZATION' | 'WELL' | 'WELSH_RESTAURANT' | 'WESTERN_RESTAURANT' | 'WHOLESALE_CLUB' | 'WILDERNESS_AREA' | 'WILDLIFE_PARK' | 'WINERY' | 'WINE_BAR' | 'WINE_SPIRITS' | 'WOMENS_CLOTHING' | 'YACHT_BASIN' | 'YOGURT_JUICE_BAR' | 'ZOO' | 'ZOOS_ARBORETA_BOTANICAL_GARDEN';
|
|
3433
|
+
|
|
3434
|
+
/**
|
|
3435
|
+
* Data source reference for detailed POI information.
|
|
3436
|
+
*
|
|
3437
|
+
* @example
|
|
3438
|
+
* ```typescript
|
|
3439
|
+
* const dataSource: PoiDetailsDataSource = {
|
|
3440
|
+
* id: 'poi-xyz789',
|
|
3441
|
+
* sourceName: 'TomTom'
|
|
3442
|
+
* };
|
|
3443
|
+
* ```
|
|
3444
|
+
*
|
|
3445
|
+
* @group Place
|
|
3446
|
+
*/
|
|
3447
|
+
export declare type PoiDetailsDataSource = {
|
|
3448
|
+
/**
|
|
3449
|
+
* POI details ID for the Points of Interest Details service.
|
|
3450
|
+
*
|
|
3451
|
+
* Pass this value to fetch additional information such as:
|
|
3452
|
+
* - Extended opening hours
|
|
3453
|
+
* - Photos and ratings
|
|
3454
|
+
* - Detailed amenities
|
|
3455
|
+
* - Contact information
|
|
3456
|
+
*/
|
|
3457
|
+
id: string;
|
|
3458
|
+
/**
|
|
3459
|
+
* Name of the data provider for this POI.
|
|
3460
|
+
*
|
|
3461
|
+
* Identifies the source of the POI information (e.g., 'TomTom', 'OSM').
|
|
3462
|
+
* Optional identifier for attribution or quality assessment.
|
|
3463
|
+
*/
|
|
3464
|
+
sourceName?: string;
|
|
3465
|
+
};
|
|
3466
|
+
|
|
3467
|
+
/**
|
|
3468
|
+
* GeoJSON Feature containing polygon or multi-polygon geometry.
|
|
3469
|
+
*
|
|
3470
|
+
* Represents an area on the map, such as:
|
|
3471
|
+
* - Administrative boundaries (countries, states, cities)
|
|
3472
|
+
* - Points of interest with building footprints
|
|
3473
|
+
* - Search areas or geofences
|
|
3474
|
+
* - Route reachable ranges
|
|
3475
|
+
*
|
|
3476
|
+
* @typeParam P - Type of the feature's properties object
|
|
3477
|
+
*
|
|
3478
|
+
* @example
|
|
3479
|
+
* ```typescript
|
|
3480
|
+
* const cityBoundary: PolygonFeature<{ name: string, population: number }> = {
|
|
3481
|
+
* type: 'Feature',
|
|
3482
|
+
* geometry: {
|
|
3483
|
+
* type: 'Polygon',
|
|
3484
|
+
* coordinates: [[
|
|
3485
|
+
* [4.8, 52.3],
|
|
3486
|
+
* [5.0, 52.3],
|
|
3487
|
+
* [5.0, 52.4],
|
|
3488
|
+
* [4.8, 52.4],
|
|
3489
|
+
* [4.8, 52.3]
|
|
3490
|
+
* ]]
|
|
3491
|
+
* },
|
|
3492
|
+
* properties: {
|
|
3493
|
+
* name: 'Amsterdam',
|
|
3494
|
+
* population: 872680
|
|
3495
|
+
* }
|
|
3496
|
+
* };
|
|
3497
|
+
* ```
|
|
3498
|
+
*
|
|
3499
|
+
* @group Shared
|
|
3500
|
+
*/
|
|
3501
|
+
export declare type PolygonFeature<P = GeoJsonProperties> = Feature<Polygon | MultiPolygon, P>;
|
|
3502
|
+
|
|
3503
|
+
/**
|
|
3504
|
+
* GeoJSON FeatureCollection containing polygon or multi-polygon features.
|
|
3505
|
+
*
|
|
3506
|
+
* Represents multiple polygonal areas, useful for:
|
|
3507
|
+
* - Collections of administrative boundaries
|
|
3508
|
+
* - Multiple search result areas
|
|
3509
|
+
* - Multiple building footprints
|
|
3510
|
+
*
|
|
3511
|
+
* @typeParam P - Type of each feature's properties object
|
|
3512
|
+
*
|
|
3513
|
+
* @example
|
|
3514
|
+
* ```typescript
|
|
3515
|
+
* const neighborhoods: PolygonFeatures<{ name: string, area: number }> = {
|
|
3516
|
+
* type: 'FeatureCollection',
|
|
3517
|
+
* features: [
|
|
3518
|
+
* {
|
|
3519
|
+
* type: 'Feature',
|
|
3520
|
+
* geometry: { type: 'Polygon', coordinates: [...] },
|
|
3521
|
+
* properties: { name: 'District 1', area: 500000 }
|
|
3522
|
+
* },
|
|
3523
|
+
* {
|
|
3524
|
+
* type: 'Feature',
|
|
3525
|
+
* geometry: { type: 'Polygon', coordinates: [...] },
|
|
3526
|
+
* properties: { name: 'District 2', area: 750000 }
|
|
3527
|
+
* }
|
|
3528
|
+
* ]
|
|
3529
|
+
* };
|
|
3530
|
+
* ```
|
|
3531
|
+
*
|
|
3532
|
+
* @group Shared
|
|
3533
|
+
*/
|
|
3534
|
+
export declare type PolygonFeatures<P = GeoJsonProperties> = FeatureCollection<Polygon | MultiPolygon, P>;
|
|
3535
|
+
|
|
3536
|
+
/**
|
|
3537
|
+
* Possible directions a lane can lead to.
|
|
3538
|
+
*
|
|
3539
|
+
* Used in lane guidance to indicate which directions are possible from a lane.
|
|
3540
|
+
*
|
|
3541
|
+
* @group Route
|
|
3542
|
+
*/
|
|
3543
|
+
export declare type PossibleLaneDirection = 'STRAIGHT' | 'SLIGHT_RIGHT' | 'RIGHT' | 'SHARP_RIGHT' | 'RIGHT_U_TURN' | 'SLIGHT_LEFT' | 'LEFT' | 'SHARP_LEFT' | 'LEFT_U_TURN';
|
|
3544
|
+
|
|
3545
|
+
/**
|
|
3546
|
+
* All the possible lane separators.
|
|
3547
|
+
* @group Route
|
|
3548
|
+
*/
|
|
3549
|
+
export declare type PossibleLaneSeparator = 'UNKNOWN' | 'NO_MARKING' | 'LONG_DASHED' | 'DOUBLE_SOLID' | 'SINGLE_SOLID' | 'SOLID_DASHED' | 'DASHED_SOLID' | 'SHORT_DASHED' | 'SHADED_AREA_MARKING' | 'DASHED_BLOCKS' | 'DOUBLE_DASHED' | 'CROSSING_ALERT' | 'PHYSICAL_DIVIDER' | 'PHYSICAL_DIVIDER_LESS_THAN_3M' | 'PHYSICAL_DIVIDER_GUARDRAIL' | 'CURB';
|
|
3550
|
+
|
|
3551
|
+
/**
|
|
3552
|
+
* Reference to a related Point of Interest.
|
|
3553
|
+
*
|
|
3554
|
+
* Represents a parent-child relationship between POIs, such as:
|
|
3555
|
+
* - A restaurant inside a shopping mall
|
|
3556
|
+
* - A store within an airport terminal
|
|
3557
|
+
* - A department within a larger facility
|
|
3558
|
+
*
|
|
3559
|
+
* @example
|
|
3560
|
+
* ```typescript
|
|
3561
|
+
* const relatedPOI: RelatedPOI = {
|
|
3562
|
+
* relationType: 'parent', // This POI is inside a larger complex
|
|
3563
|
+
* id: 'abc123def456' // ID to fetch parent POI details
|
|
3564
|
+
* };
|
|
3565
|
+
* ```
|
|
3566
|
+
*
|
|
3567
|
+
* @group Place
|
|
3568
|
+
*/
|
|
3569
|
+
export declare type RelatedPOI = {
|
|
3570
|
+
/**
|
|
3571
|
+
* Type of relationship between this POI and the referenced POI.
|
|
3572
|
+
*
|
|
3573
|
+
* - `child`: The referenced POI is contained within this POI (e.g., a store in this mall)
|
|
3574
|
+
* - `parent`: This POI is contained within the referenced POI (e.g., this store is inside a mall)
|
|
3575
|
+
*/
|
|
3576
|
+
relationType: 'child' | 'parent';
|
|
3577
|
+
/**
|
|
3578
|
+
* Unique identifier for the related POI.
|
|
3579
|
+
*
|
|
3580
|
+
* Pass this ID to the Place by ID service to fetch detailed information
|
|
3581
|
+
* about the related location.
|
|
3582
|
+
*/
|
|
3583
|
+
id: string;
|
|
3584
|
+
};
|
|
3585
|
+
|
|
3586
|
+
/**
|
|
3587
|
+
* Properties for reverse geocoded places.
|
|
3588
|
+
*
|
|
3589
|
+
* Extends common place properties with reverse geocoding-specific information
|
|
3590
|
+
* like the original query position and address interpolation details.
|
|
3591
|
+
*
|
|
3592
|
+
* @group Place
|
|
3593
|
+
*/
|
|
3594
|
+
export declare type RevGeoAddressProps = CommonPlaceProps & {
|
|
3595
|
+
/**
|
|
3596
|
+
* Original coordinates used in the reverse geocoding query [longitude, latitude].
|
|
3597
|
+
*/
|
|
3598
|
+
originalPosition: Position;
|
|
3599
|
+
/**
|
|
3600
|
+
* Offset position coordinates for address interpolation.
|
|
3601
|
+
*
|
|
3602
|
+
* Present when a street number was specified in the query.
|
|
3603
|
+
* Represents the interpolated position of the specific address number.
|
|
3604
|
+
*/
|
|
3605
|
+
offsetPosition?: Position;
|
|
3606
|
+
/**
|
|
3607
|
+
* Which side of the street the address is located on.
|
|
3608
|
+
*
|
|
3609
|
+
* Present only when a street number was specified in the query.
|
|
3610
|
+
*/
|
|
3611
|
+
sideOfStreet?: SideOfStreet;
|
|
3612
|
+
};
|
|
3613
|
+
|
|
3614
|
+
/**
|
|
3615
|
+
* Road information, including properties, street name and road shields.
|
|
3616
|
+
* @group Route
|
|
3617
|
+
*/
|
|
3618
|
+
export declare type RoadInformation = {
|
|
3619
|
+
/**
|
|
3620
|
+
* The properties of road, as a possible combination of several values.
|
|
3621
|
+
*/
|
|
3622
|
+
properties: RoadInformationProperty[];
|
|
3623
|
+
/**
|
|
3624
|
+
* The street name for the road.
|
|
3625
|
+
* Included if street name is available for this road.
|
|
3626
|
+
*/
|
|
3627
|
+
streetName?: TextWithPhonetics;
|
|
3628
|
+
/**
|
|
3629
|
+
* Lists the road shields for this road.
|
|
3630
|
+
* The list can be empty if no road shields are available.
|
|
3631
|
+
*/
|
|
3632
|
+
roadShields: RoadShield[];
|
|
3633
|
+
};
|
|
3634
|
+
|
|
3635
|
+
/**
|
|
3636
|
+
* The properties of road.
|
|
3637
|
+
* URBAN -> represents an urban road type.
|
|
3638
|
+
* MOTORWAY -> represents a motorway road type.
|
|
3639
|
+
* CONTROLLED_ACCESS -> represents a controlled access road type with regulated traffic flow and regulated entries and exits.
|
|
3640
|
+
* @group Route
|
|
3641
|
+
*/
|
|
3642
|
+
export declare type RoadInformationProperty = 'URBAN' | 'MOTORWAY' | 'CONTROLLED_ACCESS';
|
|
3643
|
+
|
|
3644
|
+
/**
|
|
3645
|
+
* Road shield object containing extra information.
|
|
3646
|
+
* @group Route
|
|
3647
|
+
*/
|
|
3648
|
+
export declare type RoadShield = {
|
|
3649
|
+
/**
|
|
3650
|
+
* The road number. Most road numbers have a 'letter' prefix, which is also returned.
|
|
3651
|
+
*/
|
|
3652
|
+
roadNumber: TextWithPhonetics;
|
|
3653
|
+
/**
|
|
3654
|
+
* Information allowing the client to build an image of the road shield using the TomTom RoadShield API.
|
|
3655
|
+
* Included if instructionRoadShieldReferences was requested.
|
|
3656
|
+
*/
|
|
3657
|
+
roadShieldReference: RoadShieldReference;
|
|
3658
|
+
/**
|
|
3659
|
+
* The state code of the state the shield is in (second part of an ISO 3166-2 identifier).
|
|
3660
|
+
* Included if state codes are available for the country the road shield is located in.
|
|
3661
|
+
*/
|
|
3662
|
+
stateCode?: string;
|
|
3663
|
+
/**
|
|
3664
|
+
* The country code (ISO 3166-1 alpha-3) of the country the shield is in.
|
|
3665
|
+
*/
|
|
3666
|
+
countryCode: string;
|
|
3667
|
+
};
|
|
3668
|
+
|
|
3669
|
+
/**
|
|
3670
|
+
* Object describes a single road shield reference.
|
|
3671
|
+
* @group Route
|
|
3672
|
+
*/
|
|
3673
|
+
export declare type RoadShieldReference = {
|
|
3674
|
+
/**
|
|
3675
|
+
* A unique identifier for the road shield.
|
|
3676
|
+
*/
|
|
3677
|
+
reference: string;
|
|
3678
|
+
/**
|
|
3679
|
+
* An optional string to be shown on the road shield.
|
|
3680
|
+
*/
|
|
3681
|
+
shieldContent?: string;
|
|
3682
|
+
/**
|
|
3683
|
+
* An optional list of possible affixes that can be shown in addition to the shieldContent.
|
|
3684
|
+
*/
|
|
3685
|
+
affixes: string[];
|
|
3686
|
+
};
|
|
3687
|
+
|
|
3688
|
+
/**
|
|
3689
|
+
* Section representing a road shield.
|
|
3690
|
+
* @group Route
|
|
3691
|
+
*/
|
|
3692
|
+
export declare type RoadShieldSectionProps = SectionProps & {
|
|
3693
|
+
/**
|
|
3694
|
+
* The road shield code for this section.
|
|
3695
|
+
*/
|
|
3696
|
+
roadShieldReferences: RoadShieldReference[];
|
|
3697
|
+
};
|
|
3698
|
+
|
|
3699
|
+
/**
|
|
3700
|
+
* GeoJSON Feature representing a calculated route.
|
|
3701
|
+
*
|
|
3702
|
+
* The geometry is a LineString containing the route path coordinates.
|
|
3703
|
+
* The properties contain all route information (summary, sections, guidance).
|
|
3704
|
+
*
|
|
3705
|
+
* @typeParam P - Type of the route properties (defaults to RouteProps)
|
|
3706
|
+
*
|
|
3707
|
+
* @example
|
|
3708
|
+
* ```typescript
|
|
3709
|
+
* const route: Route = {
|
|
3710
|
+
* type: 'Feature',
|
|
3711
|
+
* geometry: {
|
|
3712
|
+
* type: 'LineString',
|
|
3713
|
+
* coordinates: [[4.9, 52.3], [4.91, 52.31], ...]
|
|
3714
|
+
* },
|
|
3715
|
+
* properties: {
|
|
3716
|
+
* id: 'route-123',
|
|
3717
|
+
* summary: { lengthInMeters: 5000, travelTimeInSeconds: 300, ... },
|
|
3718
|
+
* sections: { ... },
|
|
3719
|
+
* index: 0
|
|
3720
|
+
* }
|
|
3721
|
+
* };
|
|
3722
|
+
* ```
|
|
3723
|
+
*
|
|
3724
|
+
* @group Route
|
|
3725
|
+
*/
|
|
3726
|
+
export declare type Route<P extends RouteProps = RouteProps> = Feature<LineString, P>;
|
|
3727
|
+
|
|
3728
|
+
/**
|
|
3729
|
+
* Route path point and its metadata.
|
|
3730
|
+
* @group Route
|
|
3731
|
+
*/
|
|
3732
|
+
export declare type RoutePathPoint = {
|
|
3733
|
+
point: Position;
|
|
3734
|
+
/**
|
|
3735
|
+
* Distance (in meters) from the start of the route to this point.
|
|
3736
|
+
*/
|
|
3737
|
+
distanceInMeters: number;
|
|
3738
|
+
/**
|
|
3739
|
+
* The time (in seconds) from the start of the route to this point.
|
|
3740
|
+
*/
|
|
3741
|
+
travelTimeInSeconds: number;
|
|
3742
|
+
};
|
|
3743
|
+
|
|
3744
|
+
/**
|
|
3745
|
+
* Generic geographic input for route planning.
|
|
3746
|
+
*
|
|
3747
|
+
* Can be either a waypoint (point location) or a path (line to follow).
|
|
3748
|
+
* This flexible type allows mixing different input types in route calculations.
|
|
3749
|
+
*
|
|
3750
|
+
* @remarks
|
|
3751
|
+
* - Use waypoints for origin, destination, and intermediate stops
|
|
3752
|
+
* - Use paths for route reconstruction or to force the route along specific roads
|
|
3753
|
+
*
|
|
3754
|
+
* @example
|
|
3755
|
+
* ```typescript
|
|
3756
|
+
* const locations: RoutePlanningLocation[] = [
|
|
3757
|
+
* [4.9, 52.3], // Start waypoint
|
|
3758
|
+
* { radiusMeters: 1000, ... }, // Circle waypoint
|
|
3759
|
+
* existingPathCoordinates, // Path to follow
|
|
3760
|
+
* [5.0, 52.4] // End waypoint
|
|
3761
|
+
* ];
|
|
3762
|
+
* ```
|
|
3763
|
+
*
|
|
3764
|
+
* @group Route
|
|
3765
|
+
*/
|
|
3766
|
+
export declare type RoutePlanningLocation = WaypointLike | PathLike;
|
|
3767
|
+
|
|
3768
|
+
/**
|
|
3769
|
+
* Classification of a RoutePlanningLocation by its type.
|
|
3770
|
+
*
|
|
3771
|
+
* Used internally to distinguish between waypoint and path inputs.
|
|
3772
|
+
*
|
|
3773
|
+
* @remarks
|
|
3774
|
+
* - `waypoint`: Represents a single point location (WaypointLike)
|
|
3775
|
+
* - `path`: Represents a path or route to follow (PathLike)
|
|
3776
|
+
*
|
|
3777
|
+
* @group Route
|
|
3778
|
+
*/
|
|
3779
|
+
export declare type RoutePlanningLocationType = 'waypoint' | 'path';
|
|
3780
|
+
|
|
3781
|
+
/**
|
|
3782
|
+
* Array of progress points along the route path.
|
|
3783
|
+
*
|
|
3784
|
+
* Provides distance and time information at key points along the route.
|
|
3785
|
+
* This field is included when `extendedRouteRepresentations` is requested.
|
|
3786
|
+
*
|
|
3787
|
+
* @remarks
|
|
3788
|
+
* - Always contains entries for the first and last points in the route
|
|
3789
|
+
* - Progress for intermediate points can be linearly interpolated between explicitly defined points
|
|
3790
|
+
* - Use the Haversine formula for distance calculations between points
|
|
3791
|
+
*
|
|
3792
|
+
* @example
|
|
3793
|
+
* ```typescript
|
|
3794
|
+
* const progress: RouteProgress = [
|
|
3795
|
+
* { pointIndex: 0, travelTimeInSeconds: 0, distanceInMeters: 0 },
|
|
3796
|
+
* { pointIndex: 50, travelTimeInSeconds: 120, distanceInMeters: 2500 },
|
|
3797
|
+
* { pointIndex: 100, travelTimeInSeconds: 300, distanceInMeters: 5000 }
|
|
3798
|
+
* ];
|
|
3799
|
+
* ```
|
|
3800
|
+
*
|
|
3801
|
+
* @group Route
|
|
3802
|
+
*/
|
|
3803
|
+
export declare type RouteProgress = RouteProgressPoint[];
|
|
3804
|
+
|
|
3805
|
+
/**
|
|
3806
|
+
* Progress information for a specific point along the route.
|
|
3807
|
+
*
|
|
3808
|
+
* Contains cumulative distance and time measurements from the route start to this point.
|
|
3809
|
+
*
|
|
3810
|
+
* @group Route
|
|
3811
|
+
*/
|
|
3812
|
+
export declare type RouteProgressPoint = {
|
|
3813
|
+
/**
|
|
3814
|
+
* Zero-based index of this point in the route's coordinate array.
|
|
3815
|
+
*/
|
|
3816
|
+
pointIndex: number;
|
|
3817
|
+
/**
|
|
3818
|
+
* Cumulative travel time in seconds from the route start to this point.
|
|
3819
|
+
*/
|
|
3820
|
+
travelTimeInSeconds?: number;
|
|
3821
|
+
/**
|
|
3822
|
+
* Cumulative distance in meters from the route start to this point.
|
|
3823
|
+
*/
|
|
3824
|
+
distanceInMeters?: number;
|
|
3825
|
+
};
|
|
3826
|
+
|
|
3827
|
+
/**
|
|
3828
|
+
* Properties object for a calculated route.
|
|
3829
|
+
*
|
|
3830
|
+
* Contains all route information including summary statistics, sections,
|
|
3831
|
+
* guidance instructions, and progress data.
|
|
3832
|
+
*
|
|
3833
|
+
* @group Route
|
|
3834
|
+
*/
|
|
3835
|
+
export declare type RouteProps = {
|
|
3836
|
+
/**
|
|
3837
|
+
* Unique identifier for this route.
|
|
3838
|
+
*
|
|
3839
|
+
* Randomly generated to distinguish between multiple route alternatives.
|
|
3840
|
+
*/
|
|
3841
|
+
id: string;
|
|
3842
|
+
/**
|
|
3843
|
+
* Summary statistics for the entire route.
|
|
3844
|
+
*
|
|
3845
|
+
* Contains departure/arrival times, total length, duration, and consumption estimates.
|
|
3846
|
+
*/
|
|
3847
|
+
summary: RouteSummary;
|
|
3848
|
+
/**
|
|
3849
|
+
* Route sections with specific characteristics.
|
|
3850
|
+
*
|
|
3851
|
+
* Sections represent portions of the route with distinct properties such as:
|
|
3852
|
+
* - Countries traversed
|
|
3853
|
+
* - Traffic incidents
|
|
3854
|
+
* - Route legs (segments between waypoints)
|
|
3855
|
+
* - Special road types (tunnels, ferries, toll roads)
|
|
3856
|
+
*/
|
|
3857
|
+
sections: SectionsProps;
|
|
3858
|
+
/**
|
|
3859
|
+
* Turn-by-turn navigation instructions.
|
|
3860
|
+
*
|
|
3861
|
+
* Only present when guidance was requested and is available.
|
|
3862
|
+
* Includes maneuvers, road names, and instruction text.
|
|
3863
|
+
*/
|
|
3864
|
+
guidance?: Guidance;
|
|
3865
|
+
/**
|
|
3866
|
+
* Distance and time progress at key points along the route.
|
|
3867
|
+
*
|
|
3868
|
+
* Only present when extended route representations are requested.
|
|
3869
|
+
* Useful for displaying progress information or calculating intermediate times.
|
|
3870
|
+
*/
|
|
3871
|
+
progress?: RouteProgress;
|
|
3872
|
+
/**
|
|
3873
|
+
* Index of this route in the collection of alternatives.
|
|
3874
|
+
*
|
|
3875
|
+
* The first route (index 0) is typically the recommended/best route.
|
|
3876
|
+
* Subsequent indices represent alternative routes.
|
|
3877
|
+
*/
|
|
3878
|
+
index: number;
|
|
3879
|
+
};
|
|
3880
|
+
|
|
3881
|
+
/**
|
|
3882
|
+
* GeoJSON FeatureCollection containing one or more calculated routes.
|
|
3883
|
+
*
|
|
3884
|
+
* Typically contains the main route (index 0) and optional alternative routes.
|
|
3885
|
+
* Collection properties can include metadata about the routing request.
|
|
3886
|
+
*
|
|
3887
|
+
* @typeParam P - Type of individual route properties (defaults to RouteProps)
|
|
3888
|
+
* @typeParam FeatureCollectionProps - Type of collection-level properties
|
|
3889
|
+
*
|
|
3890
|
+
* @example
|
|
3891
|
+
* ```typescript
|
|
3892
|
+
* const routes: Routes = {
|
|
3893
|
+
* type: 'FeatureCollection',
|
|
3894
|
+
* features: [
|
|
3895
|
+
* { type: 'Feature', geometry: {...}, properties: { index: 0, ... } }, // Main route
|
|
3896
|
+
* { type: 'Feature', geometry: {...}, properties: { index: 1, ... } } // Alternative
|
|
3897
|
+
* ],
|
|
3898
|
+
* properties: {
|
|
3899
|
+
* requestId: 'req-456',
|
|
3900
|
+
* calculatedAt: new Date()
|
|
3901
|
+
* }
|
|
3902
|
+
* };
|
|
3903
|
+
* ```
|
|
3904
|
+
*
|
|
3905
|
+
* @group Route
|
|
3906
|
+
*/
|
|
3907
|
+
export declare type Routes<P extends RouteProps = RouteProps, FeatureCollectionProps = unknown> = FeatureCollectionWithProperties<LineString, P, FeatureCollectionProps>;
|
|
3908
|
+
|
|
3909
|
+
/**
|
|
3910
|
+
* Complete summary information for an entire route.
|
|
3911
|
+
*
|
|
3912
|
+
* Includes all journey statistics from origin to destination, including
|
|
3913
|
+
* any intermediate charging stops for electric vehicles.
|
|
3914
|
+
*
|
|
3915
|
+
* @group Route
|
|
3916
|
+
*/
|
|
3917
|
+
export declare type RouteSummary = SummaryWithConsumption & {
|
|
3918
|
+
/**
|
|
3919
|
+
* Total time in seconds spent at all charging stops during the route.
|
|
3920
|
+
*
|
|
3921
|
+
* @remarks
|
|
3922
|
+
* - Only present for electric vehicle routes with charging stops (LDEVR)
|
|
3923
|
+
* - The route's travelTimeInSeconds includes this charging time
|
|
3924
|
+
* - To get driving time only: travelTimeInSeconds - totalChargingTimeInSeconds
|
|
3925
|
+
*
|
|
3926
|
+
* @example
|
|
3927
|
+
* ```typescript
|
|
3928
|
+
* // Route with 2 charging stops of 20 and 25 minutes
|
|
3929
|
+
* totalChargingTimeInSeconds: 2700 // 45 minutes total
|
|
3930
|
+
* ```
|
|
3931
|
+
*/
|
|
3932
|
+
totalChargingTimeInSeconds?: number;
|
|
3933
|
+
};
|
|
3934
|
+
|
|
3935
|
+
/**
|
|
3936
|
+
* Properties for search result places.
|
|
3937
|
+
*
|
|
3938
|
+
* Extends common place properties with search-specific information
|
|
3939
|
+
* like relevance scores and distances.
|
|
3940
|
+
*
|
|
3941
|
+
* @group Place
|
|
3942
|
+
*/
|
|
3943
|
+
export declare type SearchPlaceProps = CommonPlaceProps & {
|
|
3944
|
+
/**
|
|
3945
|
+
* Information about the original data source.
|
|
3946
|
+
*
|
|
3947
|
+
* Attribution or source identification for the result.
|
|
3948
|
+
*/
|
|
3949
|
+
info?: string;
|
|
3950
|
+
/**
|
|
3951
|
+
* Relevance score for this search result.
|
|
3952
|
+
*
|
|
3953
|
+
* Higher scores indicate better match to the query criteria.
|
|
3954
|
+
* Used for ranking search results.
|
|
3955
|
+
*/
|
|
3956
|
+
score?: number;
|
|
3957
|
+
/**
|
|
3958
|
+
* Distance in meters to this result from the bias position.
|
|
3959
|
+
*
|
|
3960
|
+
* Present only when geoBias (position bias) was provided in the search.
|
|
3961
|
+
*/
|
|
3962
|
+
distance?: number;
|
|
3963
|
+
};
|
|
3964
|
+
|
|
3965
|
+
/**
|
|
3966
|
+
* Base properties for all route sections.
|
|
3967
|
+
*
|
|
3968
|
+
* Sections divide a route into portions with specific characteristics or attributes.
|
|
3969
|
+
* All section types extend this base with additional specialized properties.
|
|
3970
|
+
*
|
|
3971
|
+
* @group Route
|
|
3972
|
+
*/
|
|
3973
|
+
export declare type SectionProps = {
|
|
3974
|
+
/**
|
|
3975
|
+
* Unique identifier for this section.
|
|
3976
|
+
*
|
|
3977
|
+
* Randomly generated to distinguish between sections.
|
|
3978
|
+
*/
|
|
3979
|
+
id: string;
|
|
3980
|
+
/**
|
|
3981
|
+
* Index of the route coordinate where this section begins.
|
|
3982
|
+
*
|
|
3983
|
+
* Zero-based index into the route's LineString coordinates array.
|
|
3984
|
+
*/
|
|
3985
|
+
startPointIndex: number;
|
|
3986
|
+
/**
|
|
3987
|
+
* Index of the route coordinate where this section ends (inclusive).
|
|
3988
|
+
*
|
|
3989
|
+
* Zero-based index into the route's LineString coordinates array.
|
|
3990
|
+
*/
|
|
3991
|
+
endPointIndex: number;
|
|
3992
|
+
/**
|
|
3993
|
+
* Elapsed time in seconds from route start to the beginning of this section.
|
|
3994
|
+
*/
|
|
3995
|
+
startTravelTimeInSeconds?: number;
|
|
3996
|
+
/**
|
|
3997
|
+
* Elapsed time in seconds from route start to the end of this section.
|
|
3998
|
+
*/
|
|
3999
|
+
endTravelTimeInSeconds?: number;
|
|
4000
|
+
/**
|
|
4001
|
+
* Duration in seconds to traverse this section.
|
|
4002
|
+
*
|
|
4003
|
+
* Calculated as: endTravelTimeInSeconds - startTravelTimeInSeconds
|
|
4004
|
+
*/
|
|
4005
|
+
durationInSeconds?: number;
|
|
4006
|
+
/**
|
|
4007
|
+
* Cumulative distance in meters from route start to the beginning of this section.
|
|
4008
|
+
*/
|
|
4009
|
+
startLengthInMeters?: number;
|
|
4010
|
+
/**
|
|
4011
|
+
* Cumulative distance in meters from route start to the end of this section.
|
|
4012
|
+
*/
|
|
4013
|
+
endLengthInMeters?: number;
|
|
4014
|
+
/**
|
|
4015
|
+
* Length in meters of this section.
|
|
4016
|
+
*
|
|
4017
|
+
* Calculated as: endLengthInMeters - startLengthInMeters
|
|
4018
|
+
*/
|
|
4019
|
+
lengthInMeters?: number;
|
|
4020
|
+
};
|
|
4021
|
+
|
|
4022
|
+
/**
|
|
4023
|
+
* Route sections are parts of the planned route that have specific characteristics,
|
|
4024
|
+
* such as ones on a ferry or motorway, or sections with traffic incidents in them.
|
|
4025
|
+
* Using sections, you can show users where these things lie on a planned route.
|
|
4026
|
+
* @group Route
|
|
4027
|
+
*/
|
|
4028
|
+
export declare type SectionsProps = {
|
|
4029
|
+
leg: LegSectionProps[];
|
|
4030
|
+
carTrain?: SectionProps[];
|
|
4031
|
+
ferry?: SectionProps[];
|
|
4032
|
+
motorway?: SectionProps[];
|
|
4033
|
+
pedestrian?: SectionProps[];
|
|
4034
|
+
toll?: SectionProps[];
|
|
4035
|
+
tollVignette?: CountrySectionProps[];
|
|
4036
|
+
country?: CountrySectionProps[];
|
|
4037
|
+
traffic?: TrafficSectionProps[];
|
|
4038
|
+
vehicleRestricted?: SectionProps[];
|
|
4039
|
+
tunnel?: SectionProps[];
|
|
4040
|
+
unpaved?: SectionProps[];
|
|
4041
|
+
urban?: SectionProps[];
|
|
4042
|
+
carpool?: SectionProps[];
|
|
4043
|
+
lowEmissionZone?: SectionProps[];
|
|
4044
|
+
lanes?: LaneSectionProps[];
|
|
4045
|
+
roadShields?: RoadShieldSectionProps[];
|
|
4046
|
+
speedLimit?: SpeedLimitSectionProps[];
|
|
4047
|
+
importantRoadStretch?: ImportantRoadStretchProps[];
|
|
4048
|
+
};
|
|
4049
|
+
|
|
4050
|
+
/**
|
|
4051
|
+
* @group Route
|
|
4052
|
+
*/
|
|
4053
|
+
export declare type SectionType = keyof SectionsProps;
|
|
4054
|
+
|
|
4055
|
+
/**
|
|
4056
|
+
* @group Route
|
|
4057
|
+
*/
|
|
4058
|
+
export declare const sectionTypes: SectionType[];
|
|
4059
|
+
|
|
4060
|
+
/**
|
|
4061
|
+
* Side of the street indicator.
|
|
4062
|
+
*
|
|
4063
|
+
* @remarks
|
|
4064
|
+
* - `L`: Left side
|
|
4065
|
+
* - `R`: Right side
|
|
4066
|
+
*
|
|
4067
|
+
* @group Place
|
|
4068
|
+
*/
|
|
4069
|
+
export declare type SideOfStreet = 'L' | 'R';
|
|
4070
|
+
|
|
4071
|
+
/**
|
|
4072
|
+
* Side road information.
|
|
4073
|
+
* @group Route
|
|
4074
|
+
*/
|
|
4075
|
+
export declare type SideRoad = {
|
|
4076
|
+
/**
|
|
4077
|
+
* Side from where the road connects to the route.
|
|
4078
|
+
*/
|
|
4079
|
+
side: SideRoadSide;
|
|
4080
|
+
/**
|
|
4081
|
+
* Offset (on route) of the side road from the maneuver point (represented by maneuverPoint), in meters.
|
|
4082
|
+
* The offset is absolute, i.e., it is a positive integer despite that the side road is located before the maneuver on the route.
|
|
4083
|
+
*/
|
|
4084
|
+
offsetFromManeuverInMeters: number;
|
|
4085
|
+
};
|
|
4086
|
+
|
|
4087
|
+
/**
|
|
4088
|
+
* Side from where the road connects to the route.
|
|
4089
|
+
* @group Route
|
|
4090
|
+
*/
|
|
4091
|
+
export declare type SideRoadSide = 'LEFT' | 'RIGHT' | 'LEFT_AND_RIGHT';
|
|
4092
|
+
|
|
4093
|
+
/**
|
|
4094
|
+
* Signpost information.
|
|
4095
|
+
* @group Route
|
|
4096
|
+
*/
|
|
4097
|
+
export declare type Signpost = {
|
|
4098
|
+
/**
|
|
4099
|
+
* Exit name of the controlled access road.
|
|
4100
|
+
* Included if an exit name is available for this signpost.
|
|
4101
|
+
*/
|
|
4102
|
+
exitName?: TextWithPhonetics;
|
|
4103
|
+
/**
|
|
4104
|
+
* Exit number of the controlled access road. Included if an exit number is available for this signpost.
|
|
4105
|
+
* Multiple exit numbers can be encoded in the string, e.g. "E10/E12". If exit number is not available, the field will be absent.
|
|
4106
|
+
*/
|
|
4107
|
+
exitNumber?: TextWithPhonetics;
|
|
4108
|
+
/**
|
|
4109
|
+
* The toward name from the signpost.
|
|
4110
|
+
*/
|
|
4111
|
+
towardName: TextWithPhonetics;
|
|
4112
|
+
};
|
|
4113
|
+
|
|
4114
|
+
/**
|
|
4115
|
+
* Section representing a speed limit.
|
|
4116
|
+
* @group Route
|
|
4117
|
+
*/
|
|
4118
|
+
export declare type SpeedLimitSectionProps = SectionProps & {
|
|
4119
|
+
/**
|
|
4120
|
+
* The speed limit in km/h for this section.
|
|
4121
|
+
*/
|
|
4122
|
+
maxSpeedLimitInKmh: number;
|
|
4123
|
+
};
|
|
4124
|
+
|
|
4125
|
+
/**
|
|
4126
|
+
* Common summary type for a route or route leg.
|
|
4127
|
+
* Contains departure/arrival times, lengths and durations.
|
|
4128
|
+
* @group Route
|
|
4129
|
+
*/
|
|
4130
|
+
export declare type SummaryBase = {
|
|
4131
|
+
/**
|
|
4132
|
+
* Estimated arrival time at the end of the route or leg.
|
|
4133
|
+
*
|
|
4134
|
+
* Calculated from departure time plus travel time, accounting for traffic conditions.
|
|
4135
|
+
*/
|
|
4136
|
+
arrivalTime: Date;
|
|
4137
|
+
/**
|
|
4138
|
+
* Departure time from the beginning of the route or leg.
|
|
4139
|
+
*
|
|
4140
|
+
* Based on the departure time specified in the routing request.
|
|
4141
|
+
*/
|
|
4142
|
+
departureTime: Date;
|
|
4143
|
+
/**
|
|
4144
|
+
* Total length of the route or leg in meters.
|
|
4145
|
+
*/
|
|
4146
|
+
lengthInMeters: number;
|
|
4147
|
+
/**
|
|
4148
|
+
* Estimated travel time in seconds for the route or leg.
|
|
4149
|
+
*
|
|
4150
|
+
* @remarks
|
|
4151
|
+
* This value includes delays due to real-time traffic, even when considerTraffic=false.
|
|
4152
|
+
* Use noTrafficTravelTimeInSeconds for free-flow travel time without traffic delays.
|
|
4153
|
+
*/
|
|
4154
|
+
travelTimeInSeconds: number;
|
|
4155
|
+
/**
|
|
4156
|
+
* Additional delay in seconds caused by current traffic conditions.
|
|
4157
|
+
*
|
|
4158
|
+
* Represents the extra time compared to free-flow conditions.
|
|
4159
|
+
* A value of 0 means no traffic delays.
|
|
4160
|
+
*/
|
|
4161
|
+
trafficDelayInSeconds: number;
|
|
4162
|
+
/**
|
|
4163
|
+
* Length in meters of the route affected by traffic events causing delays.
|
|
4164
|
+
*
|
|
4165
|
+
* Indicates the portion of the route experiencing congestion or incidents.
|
|
4166
|
+
*/
|
|
4167
|
+
trafficLengthInMeters: number;
|
|
4168
|
+
/**
|
|
4169
|
+
* Estimated travel time in seconds assuming free-flow conditions.
|
|
4170
|
+
*
|
|
4171
|
+
* Calculated as if there were no traffic delays (no congestion).
|
|
4172
|
+
* Only included if requested using the computeTravelTimeFor parameter.
|
|
4173
|
+
*/
|
|
4174
|
+
noTrafficTravelTimeInSeconds?: number;
|
|
4175
|
+
/**
|
|
4176
|
+
* Estimated travel time in seconds using time-dependent historic traffic data.
|
|
4177
|
+
*
|
|
4178
|
+
* Represents the expected travel time based on typical traffic patterns
|
|
4179
|
+
* for the requested departure time (e.g., rush hour vs off-peak).
|
|
4180
|
+
* Only included if requested using the computeTravelTimeFor parameter.
|
|
4181
|
+
*/
|
|
4182
|
+
historicTrafficTravelTimeInSeconds?: number;
|
|
4183
|
+
/**
|
|
4184
|
+
* Estimated travel time in seconds using real-time traffic speed data.
|
|
4185
|
+
*
|
|
4186
|
+
* Based on current live traffic conditions and incidents.
|
|
4187
|
+
* Only included if requested using the computeTravelTimeFor parameter.
|
|
4188
|
+
*/
|
|
4189
|
+
liveTrafficIncidentsTravelTimeInSeconds?: number;
|
|
4190
|
+
};
|
|
4191
|
+
|
|
4192
|
+
/**
|
|
4193
|
+
* Combined summary supporting both combustion and electric vehicle metrics.
|
|
4194
|
+
*
|
|
4195
|
+
* @group Route
|
|
4196
|
+
*/
|
|
4197
|
+
export declare type SummaryWithConsumption = CombustionSummary & ElectricSummary;
|
|
4198
|
+
|
|
4199
|
+
/**
|
|
4200
|
+
* Text with phonetic transcription.
|
|
4201
|
+
* @group Route
|
|
4202
|
+
*/
|
|
4203
|
+
export declare type TextWithPhonetics = {
|
|
4204
|
+
/**
|
|
4205
|
+
* The name as a text string.
|
|
4206
|
+
*/
|
|
4207
|
+
text: string;
|
|
4208
|
+
/**
|
|
4209
|
+
* The phonetic transcription of the name.
|
|
4210
|
+
* Included if phonetic transcription is available for the specific name, and phonetic transcriptions have been requested by the client.
|
|
4211
|
+
* Note: The phonetic transcription can contain double quote characters ("). In this case those characters are escaped with a backslash (\).
|
|
4212
|
+
*/
|
|
4213
|
+
phonetic: string;
|
|
4214
|
+
/**
|
|
4215
|
+
* Encodes the language using an IETF language tag, e.g., en-GB, en-US.
|
|
4216
|
+
*/
|
|
4217
|
+
phoneticLanguageCode: string;
|
|
4218
|
+
};
|
|
4219
|
+
|
|
4220
|
+
/**
|
|
4221
|
+
* Configuration for displaying time-based units.
|
|
4222
|
+
*
|
|
4223
|
+
* Allows customization of time unit labels used for durations
|
|
4224
|
+
* throughout the SDK.
|
|
4225
|
+
*
|
|
4226
|
+
* @group Configuration
|
|
4227
|
+
*/
|
|
4228
|
+
export declare type TimeDisplayUnits = {
|
|
4229
|
+
/**
|
|
4230
|
+
* Custom label for hour units.
|
|
4231
|
+
*
|
|
4232
|
+
* @default "h"
|
|
4233
|
+
*/
|
|
4234
|
+
hours?: string;
|
|
4235
|
+
/**
|
|
4236
|
+
* Custom label for minute units.
|
|
4237
|
+
*
|
|
4238
|
+
* @default "min"
|
|
4239
|
+
*/
|
|
4240
|
+
minutes?: string;
|
|
4241
|
+
};
|
|
4242
|
+
|
|
4243
|
+
/**
|
|
4244
|
+
* Time range with start and end moments.
|
|
4245
|
+
*
|
|
4246
|
+
* Represents a period when a POI is open. Can span multiple days
|
|
4247
|
+
* (e.g., opening late one day and closing early the next).
|
|
4248
|
+
*
|
|
4249
|
+
* @remarks
|
|
4250
|
+
* - For same-day hours: start and end are on the same date
|
|
4251
|
+
* - For overnight hours: end date is after start date (e.g., open until 2 AM)
|
|
4252
|
+
*
|
|
4253
|
+
* @example
|
|
4254
|
+
* ```typescript
|
|
4255
|
+
* // Monday 9:00 AM to 5:00 PM
|
|
4256
|
+
* const timeRange: TimeRange = {
|
|
4257
|
+
* start: { date: new Date('2025-10-20T09:00:00'), hour: 9, minute: 0, ... },
|
|
4258
|
+
* end: { date: new Date('2025-10-20T17:00:00'), hour: 17, minute: 0, ... }
|
|
4259
|
+
* };
|
|
4260
|
+
*
|
|
4261
|
+
* // Friday 10 PM to Saturday 2 AM (overnight)
|
|
4262
|
+
* const overnight: TimeRange = {
|
|
4263
|
+
* start: { date: new Date('2025-10-24T22:00:00'), hour: 22, ... },
|
|
4264
|
+
* end: { date: new Date('2025-10-25T02:00:00'), hour: 2, ... }
|
|
4265
|
+
* };
|
|
4266
|
+
* ```
|
|
4267
|
+
*
|
|
4268
|
+
* @group Place
|
|
4269
|
+
*/
|
|
4270
|
+
export declare type TimeRange = {
|
|
4271
|
+
/**
|
|
4272
|
+
* Opening time for this period.
|
|
4273
|
+
*/
|
|
4274
|
+
start: Moment;
|
|
4275
|
+
/**
|
|
4276
|
+
* Closing time for this period.
|
|
4277
|
+
*/
|
|
4278
|
+
end: Moment;
|
|
4279
|
+
};
|
|
4280
|
+
|
|
4281
|
+
/**
|
|
4282
|
+
* Time zone information using IANA Time Zone Database identifiers.
|
|
4283
|
+
*
|
|
4284
|
+
* @remarks
|
|
4285
|
+
* IANA identifiers follow the format `Area/Location` (e.g., `America/New_York`, `Europe/London`).
|
|
4286
|
+
* These are standardized time zone identifiers maintained by the Internet Assigned Numbers Authority.
|
|
4287
|
+
*
|
|
4288
|
+
* @see [IANA Time Zone Database](https://www.iana.org/time-zones)
|
|
4289
|
+
*
|
|
4290
|
+
* @example
|
|
4291
|
+
* ```typescript
|
|
4292
|
+
* const timezone: TimeZone = {
|
|
4293
|
+
* ianaId: 'Europe/Amsterdam'
|
|
4294
|
+
* };
|
|
4295
|
+
* ```
|
|
4296
|
+
*
|
|
4297
|
+
* @group Shared
|
|
4298
|
+
*/
|
|
4299
|
+
export declare type TimeZone = {
|
|
4300
|
+
/**
|
|
4301
|
+
* IANA Time Zone Database identifier.
|
|
4302
|
+
*
|
|
4303
|
+
* Examples: `America/New_York`, `Europe/London`, `Asia/Tokyo`
|
|
4304
|
+
*/
|
|
4305
|
+
ianaId: string;
|
|
4306
|
+
};
|
|
4307
|
+
|
|
4308
|
+
/**
|
|
4309
|
+
* Available toll payment options.
|
|
4310
|
+
* @group Route
|
|
4311
|
+
*/
|
|
4312
|
+
export declare type TollPaymentType = 'CASH_COINS_AND_BILLS' | 'CASH_BILLS_ONLY' | 'CASH_COINS_ONLY' | 'CASH_EXACT_CHANGE' | 'CREDIT_CARD' | 'DEBIT_CARD' | 'TRAVEL_CARD' | 'ETC' | 'ETC_TRANSPONDER' | 'ETC_VIDEO_CAMERA' | 'SUBSCRIPTION';
|
|
4313
|
+
|
|
4314
|
+
/**
|
|
4315
|
+
* SDK name used TomTom custom header TomTom-User-Agent
|
|
4316
|
+
* @ignore
|
|
4317
|
+
*/
|
|
4318
|
+
export declare const TOMTOM_USER_AGENT_SDK_NAME = "TomTomSDKsMapsJS";
|
|
4319
|
+
|
|
4320
|
+
/**
|
|
4321
|
+
* Global configuration singleton for the TomTom Maps SDK.
|
|
4322
|
+
*
|
|
4323
|
+
* Manages SDK-wide configuration settings that apply to all services and maps.
|
|
4324
|
+
* Uses the singleton pattern to ensure consistent configuration across the application.
|
|
4325
|
+
*
|
|
4326
|
+
* @remarks
|
|
4327
|
+
* Configuration set via this class is merged with service-specific parameters,
|
|
4328
|
+
* with service parameters taking precedence over global settings.
|
|
4329
|
+
*
|
|
4330
|
+
* @example
|
|
4331
|
+
* ```typescript
|
|
4332
|
+
* // Set global configuration
|
|
4333
|
+
* TomTomConfig.instance.put({
|
|
4334
|
+
* apiKey: 'your-api-key',
|
|
4335
|
+
* language: 'en-US'
|
|
4336
|
+
* });
|
|
4337
|
+
*
|
|
4338
|
+
* // Get current configuration
|
|
4339
|
+
* const config = TomTomConfig.instance.get();
|
|
4340
|
+
*
|
|
4341
|
+
* // Reset to defaults
|
|
4342
|
+
* TomTomConfig.instance.reset();
|
|
4343
|
+
* ```
|
|
4344
|
+
*
|
|
4345
|
+
* @group Configuration
|
|
4346
|
+
*/
|
|
4347
|
+
export declare class TomTomConfig {
|
|
4348
|
+
/**
|
|
4349
|
+
* Singleton instance of the configuration.
|
|
4350
|
+
*/
|
|
4351
|
+
static readonly instance: TomTomConfig;
|
|
4352
|
+
private config;
|
|
4353
|
+
private constructor();
|
|
4354
|
+
/**
|
|
4355
|
+
* Merge configuration values into the global configuration.
|
|
4356
|
+
*
|
|
4357
|
+
* New values override existing ones. This performs a shallow merge,
|
|
4358
|
+
* so nested objects are replaced entirely rather than merged.
|
|
4359
|
+
*
|
|
4360
|
+
* @param config - Partial configuration to merge
|
|
4361
|
+
*
|
|
4362
|
+
* @example
|
|
4363
|
+
* ```typescript
|
|
4364
|
+
* TomTomConfig.instance.put({
|
|
4365
|
+
* apiKey: 'your-api-key',
|
|
4366
|
+
* language: 'de-DE'
|
|
4367
|
+
* });
|
|
4368
|
+
* ```
|
|
4369
|
+
*/
|
|
4370
|
+
put(config: Partial<GlobalConfig>): void;
|
|
4371
|
+
/**
|
|
4372
|
+
* Reset configuration to default values.
|
|
4373
|
+
*
|
|
4374
|
+
* Clears all custom configuration and restores the initial defaults.
|
|
4375
|
+
* Note that the default API key is an empty string.
|
|
4376
|
+
*
|
|
4377
|
+
* @example
|
|
4378
|
+
* ```typescript
|
|
4379
|
+
* TomTomConfig.instance.reset();
|
|
4380
|
+
* ```
|
|
4381
|
+
*/
|
|
4382
|
+
reset(): void;
|
|
4383
|
+
/**
|
|
4384
|
+
* Get the current global configuration.
|
|
4385
|
+
*
|
|
4386
|
+
* @returns Current configuration object
|
|
4387
|
+
*
|
|
4388
|
+
* @example
|
|
4389
|
+
* ```typescript
|
|
4390
|
+
* const config = TomTomConfig.instance.get();
|
|
4391
|
+
* console.log(config.apiKey);
|
|
4392
|
+
* ```
|
|
4393
|
+
*/
|
|
4394
|
+
get(): GlobalConfig;
|
|
4395
|
+
}
|
|
4396
|
+
|
|
4397
|
+
/**
|
|
4398
|
+
* Interface for TomTom custom headers
|
|
4399
|
+
* Those headers are added in every request to TomTom services
|
|
4400
|
+
* * TomTom-User-Agent - Name and version of this SDK
|
|
4401
|
+
* * Authorization - Bearer token for experimental OAuth2 support.
|
|
4402
|
+
* Based on the apiAccessToken parameter.
|
|
4403
|
+
* Tracking-ID - @see https://docs.tomtom.com/search-api/documentation/search-service/fuzzy-search#trackingid-request
|
|
4404
|
+
* @ignore
|
|
4405
|
+
*/
|
|
4406
|
+
export declare type TomTomHeaders = {
|
|
4407
|
+
'TomTom-User-Agent'?: string;
|
|
4408
|
+
Authorization?: string;
|
|
4409
|
+
'Tracking-ID'?: string;
|
|
4410
|
+
};
|
|
4411
|
+
|
|
4412
|
+
/**
|
|
4413
|
+
* @ignore
|
|
4414
|
+
* @param lngLat
|
|
4415
|
+
*/
|
|
4416
|
+
export declare const toPointFeature: (lngLat: Position) => Feature<Point>;
|
|
4417
|
+
|
|
4418
|
+
/**
|
|
4419
|
+
* Simple category classification for traffic incidents.
|
|
4420
|
+
*
|
|
4421
|
+
* @remarks
|
|
4422
|
+
* - `jam`: Traffic congestion or slow-moving traffic
|
|
4423
|
+
* - `road_work`: Construction or maintenance work
|
|
4424
|
+
* - `road_closure`: Road is closed or blocked
|
|
4425
|
+
* - `other`: Other types of incidents
|
|
4426
|
+
*
|
|
4427
|
+
* @group Route
|
|
4428
|
+
*/
|
|
4429
|
+
export declare type TrafficCategory = 'jam' | 'road_work' | 'road_closure' | 'other';
|
|
4430
|
+
|
|
4431
|
+
/**
|
|
4432
|
+
* Traffic incident information based on TPEG2-TEC standard.
|
|
4433
|
+
*
|
|
4434
|
+
* Provides standardized classification of traffic flow effects and causes.
|
|
4435
|
+
*
|
|
4436
|
+
* @group Route
|
|
4437
|
+
*/
|
|
4438
|
+
export declare type TrafficIncidentTEC = {
|
|
4439
|
+
/**
|
|
4440
|
+
* Effect code describing impact on traffic flow.
|
|
4441
|
+
*
|
|
4442
|
+
* TPEG2-TEC standard code indicating how traffic is affected.
|
|
4443
|
+
*/
|
|
4444
|
+
effectCode: number;
|
|
4445
|
+
/**
|
|
4446
|
+
* List of causes for this traffic incident.
|
|
4447
|
+
*
|
|
4448
|
+
* Array of cause elements with at least one entry. Multiple causes
|
|
4449
|
+
* may contribute to a single traffic incident.
|
|
4450
|
+
*/
|
|
4451
|
+
causes?: [CauseTEC, ...CauseTEC[]];
|
|
4452
|
+
};
|
|
4453
|
+
|
|
4454
|
+
/**
|
|
4455
|
+
* Route section affected by a traffic incident.
|
|
4456
|
+
*
|
|
4457
|
+
* Represents a portion of the route experiencing traffic delays due to
|
|
4458
|
+
* congestion, accidents, construction, or other incidents.
|
|
4459
|
+
*
|
|
4460
|
+
* @example
|
|
4461
|
+
* ```typescript
|
|
4462
|
+
* const trafficSection: TrafficSectionProps = {
|
|
4463
|
+
* id: 'traffic-1',
|
|
4464
|
+
* startPointIndex: 50,
|
|
4465
|
+
* endPointIndex: 75,
|
|
4466
|
+
* simpleCategory: 'jam',
|
|
4467
|
+
* magnitudeOfDelay: 'moderate',
|
|
4468
|
+
* delayInSeconds: 420, // 7 minutes
|
|
4469
|
+
* effectiveSpeedInKmh: 25,
|
|
4470
|
+
* tec: { effectCode: 1, causes: [{ mainCauseCode: 101 }] }
|
|
4471
|
+
* };
|
|
4472
|
+
* ```
|
|
4473
|
+
*
|
|
4474
|
+
* @group Route
|
|
4475
|
+
*/
|
|
4476
|
+
export declare type TrafficSectionProps = SectionProps & {
|
|
4477
|
+
/**
|
|
4478
|
+
* Simple category classification of the incident.
|
|
4479
|
+
*/
|
|
4480
|
+
simpleCategory: TrafficCategory;
|
|
4481
|
+
/**
|
|
4482
|
+
* Severity level of the delay caused by this incident.
|
|
4483
|
+
*/
|
|
4484
|
+
magnitudeOfDelay: DelayMagnitude;
|
|
4485
|
+
/**
|
|
4486
|
+
* TPEG2-TEC standardized incident information.
|
|
4487
|
+
*
|
|
4488
|
+
* Provides internationally standardized codes for traffic incident classification.
|
|
4489
|
+
*/
|
|
4490
|
+
tec: TrafficIncidentTEC;
|
|
4491
|
+
/**
|
|
4492
|
+
* Actual average speed through this incident in km/h.
|
|
4493
|
+
*
|
|
4494
|
+
* Present when speed information is available. Lower speeds indicate worse congestion.
|
|
4495
|
+
*/
|
|
4496
|
+
effectiveSpeedInKmh?: number;
|
|
4497
|
+
/**
|
|
4498
|
+
* Additional delay in seconds caused by this incident.
|
|
4499
|
+
*
|
|
4500
|
+
* Extra time compared to free-flow conditions. Present when delay can be calculated.
|
|
4501
|
+
*/
|
|
4502
|
+
delayInSeconds?: number;
|
|
4503
|
+
};
|
|
4504
|
+
|
|
4505
|
+
/**
|
|
4506
|
+
* Primary mode of transportation for route calculation.
|
|
4507
|
+
*
|
|
4508
|
+
* Currently only `'car'` is supported. This determines road type preferences,
|
|
4509
|
+
* speed calculations, and routing rules applied to the calculated route.
|
|
4510
|
+
*
|
|
4511
|
+
* @remarks
|
|
4512
|
+
* Future versions may support additional modes like truck, taxi, bus, bicycle, and pedestrian.
|
|
4513
|
+
*
|
|
4514
|
+
* @example
|
|
4515
|
+
* ```typescript
|
|
4516
|
+
* const travelMode: TravelMode = 'car';
|
|
4517
|
+
* ```
|
|
4518
|
+
*
|
|
4519
|
+
* @group Route
|
|
4520
|
+
*/
|
|
4521
|
+
export declare type TravelMode = 'car';
|
|
4522
|
+
|
|
4523
|
+
/**
|
|
4524
|
+
* Geopolitical view context for map display and data.
|
|
4525
|
+
*
|
|
4526
|
+
* Controls how disputed territories and borders are displayed on the map and in service responses.
|
|
4527
|
+
* Different countries may have different perspectives on territorial boundaries and place names.
|
|
4528
|
+
*
|
|
4529
|
+
* @remarks
|
|
4530
|
+
* - `Unified`: Default view with a neutral representation
|
|
4531
|
+
* - Country-specific codes (e.g., `AR`, `IN`, `PK`, etc.): Displays boundaries and names according to that country's perspective
|
|
4532
|
+
*
|
|
4533
|
+
* @example
|
|
4534
|
+
* ```typescript
|
|
4535
|
+
* // Use unified/neutral view
|
|
4536
|
+
* const view: View = 'Unified';
|
|
4537
|
+
*
|
|
4538
|
+
* // Use India's geopolitical perspective
|
|
4539
|
+
* const view: View = 'IN';
|
|
4540
|
+
*
|
|
4541
|
+
* // Use Argentina's perspective
|
|
4542
|
+
* const view: View = 'AR';
|
|
4543
|
+
* ```
|
|
4544
|
+
*
|
|
4545
|
+
* @group Shared
|
|
4546
|
+
*/
|
|
4547
|
+
export declare type View = (typeof views)[number];
|
|
4548
|
+
|
|
4549
|
+
/**
|
|
4550
|
+
* List of available views for geopolitical context.
|
|
4551
|
+
* @group Shared
|
|
4552
|
+
*/
|
|
4553
|
+
export declare const views: readonly ["Unified", "AR", "IN", "PK", "IL", "MA", "RU", "TR", "CN"];
|
|
4554
|
+
|
|
4555
|
+
/**
|
|
4556
|
+
* GeoJSON Feature representing a route waypoint.
|
|
4557
|
+
*
|
|
4558
|
+
* Waypoints are points that define the route path. The route will pass through each waypoint
|
|
4559
|
+
* in the order they are specified.
|
|
4560
|
+
*
|
|
4561
|
+
* @typeParam T - Additional custom properties beyond the standard waypoint properties
|
|
4562
|
+
*
|
|
4563
|
+
* @remarks
|
|
4564
|
+
* - Regular waypoints (without radius) create route legs and generate arrival instructions
|
|
4565
|
+
* - Circle waypoints (with radiusMeters) shape the route without creating legs
|
|
4566
|
+
*
|
|
4567
|
+
* @example
|
|
4568
|
+
* ```typescript
|
|
4569
|
+
* // Regular waypoint
|
|
4570
|
+
* const waypoint: Waypoint = {
|
|
4571
|
+
* type: 'Feature',
|
|
4572
|
+
* geometry: { type: 'Point', coordinates: [4.9041, 52.3676] },
|
|
4573
|
+
* properties: {}
|
|
4574
|
+
* };
|
|
4575
|
+
*
|
|
4576
|
+
* // Circle waypoint with custom properties
|
|
4577
|
+
* const circleWaypoint: Waypoint<{ name: string }> = {
|
|
4578
|
+
* type: 'Feature',
|
|
4579
|
+
* geometry: { type: 'Point', coordinates: [4.9041, 52.3676] },
|
|
4580
|
+
* properties: { radiusMeters: 1000, name: 'Via Amsterdam' }
|
|
4581
|
+
* };
|
|
4582
|
+
* ```
|
|
4583
|
+
*
|
|
4584
|
+
* @group Route
|
|
4585
|
+
*/
|
|
4586
|
+
export declare type Waypoint<T extends Anything = Anything> = Feature<Point, WaypointProps & T>;
|
|
4587
|
+
|
|
4588
|
+
/**
|
|
4589
|
+
* Flexible input type for specifying a waypoint location.
|
|
4590
|
+
*
|
|
4591
|
+
* Accepts various formats for convenience:
|
|
4592
|
+
* - Full `Waypoint` Feature (for circle waypoints or waypoints with custom properties)
|
|
4593
|
+
* - Any object with coordinates (Position array, Point geometry, or Feature)
|
|
4594
|
+
*
|
|
4595
|
+
* @remarks
|
|
4596
|
+
* Waypoints are single points by default. To create a circle (soft) waypoint,
|
|
4597
|
+
* use the full Waypoint Feature format with a radiusMeters property.
|
|
4598
|
+
*
|
|
4599
|
+
* @example
|
|
4600
|
+
* ```typescript
|
|
4601
|
+
* // As coordinate array
|
|
4602
|
+
* const wp1: WaypointLike = [4.9041, 52.3676];
|
|
4603
|
+
*
|
|
4604
|
+
* // As Point geometry
|
|
4605
|
+
* const wp2: WaypointLike = { type: 'Point', coordinates: [4.9041, 52.3676] };
|
|
4606
|
+
*
|
|
4607
|
+
* // As full Waypoint Feature with radius
|
|
4608
|
+
* const wp3: WaypointLike = {
|
|
4609
|
+
* type: 'Feature',
|
|
4610
|
+
* geometry: { type: 'Point', coordinates: [4.9041, 52.3676] },
|
|
4611
|
+
* properties: { radiusMeters: 500 }
|
|
4612
|
+
* };
|
|
4613
|
+
* ```
|
|
4614
|
+
*
|
|
4615
|
+
* @group Route
|
|
4616
|
+
*/
|
|
4617
|
+
export declare type WaypointLike = Waypoint | HasLngLat;
|
|
4618
|
+
|
|
4619
|
+
/**
|
|
4620
|
+
* Properties specific to route waypoints.
|
|
4621
|
+
*
|
|
4622
|
+
* @group Route
|
|
4623
|
+
*/
|
|
4624
|
+
export declare type WaypointProps = {
|
|
4625
|
+
/**
|
|
4626
|
+
* Radius in meters defining a circle (soft) waypoint.
|
|
4627
|
+
*
|
|
4628
|
+
* When specified, the waypoint becomes a circle waypoint that shapes the route without
|
|
4629
|
+
* generating explicit navigation instructions or creating an additional route leg.
|
|
4630
|
+
*
|
|
4631
|
+
* @remarks
|
|
4632
|
+
* - Circle waypoints influence the route path while providing flexibility to the routing engine
|
|
4633
|
+
* - Larger radius values give more freedom for route optimization
|
|
4634
|
+
* - Smaller radius values force the route to pass closer to the specified point
|
|
4635
|
+
* - Unlike regular waypoints, circle waypoints don't create legs or generate "arrive at waypoint" instructions
|
|
4636
|
+
* - Useful for shaping routes through general areas rather than specific points
|
|
4637
|
+
*
|
|
4638
|
+
* Must be a positive integer with a maximum value of 135000.
|
|
4639
|
+
*
|
|
4640
|
+
* @example
|
|
4641
|
+
* ```typescript
|
|
4642
|
+
* // Circle waypoint with 1km radius - route will pass somewhere within this area
|
|
4643
|
+
* { radiusMeters: 1000 }
|
|
4644
|
+
*
|
|
4645
|
+
* // Small radius - route will pass very close to this point
|
|
4646
|
+
* { radiusMeters: 50 }
|
|
4647
|
+
* ```
|
|
4648
|
+
*/
|
|
4649
|
+
radiusMeters?: number;
|
|
4650
|
+
};
|
|
4651
|
+
|
|
4652
|
+
/**
|
|
4653
|
+
* GeoJSON FeatureCollection of waypoints.
|
|
4654
|
+
*
|
|
4655
|
+
* Contains multiple waypoints that together define a multi-stop route.
|
|
4656
|
+
*
|
|
4657
|
+
* @typeParam T - Additional custom properties for individual waypoints
|
|
4658
|
+
*
|
|
4659
|
+
* @example
|
|
4660
|
+
* ```typescript
|
|
4661
|
+
* const waypoints: Waypoints = {
|
|
4662
|
+
* type: 'FeatureCollection',
|
|
4663
|
+
* features: [
|
|
4664
|
+
* { type: 'Feature', geometry: { type: 'Point', coordinates: [4.9, 52.3] }, properties: {} },
|
|
4665
|
+
* { type: 'Feature', geometry: { type: 'Point', coordinates: [4.95, 52.35] }, properties: {} }
|
|
4666
|
+
* ]
|
|
4667
|
+
* };
|
|
4668
|
+
* ```
|
|
4669
|
+
*
|
|
4670
|
+
* @group Route
|
|
4671
|
+
*/
|
|
4672
|
+
export declare type Waypoints<T extends Anything = Anything> = FeatureCollection<Point, WaypointProps & T>;
|
|
4673
|
+
|
|
4674
|
+
export { }
|