@tomtom-org/maps-sdk 0.60.0 → 0.62.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 +510 -243
- package/README.md +5 -3
- package/core/dist/core.es.js +1 -1
- package/core/dist/core.es.js.map +1 -1
- package/core/dist/index.d.ts +173 -36
- package/core/package.json +4 -2
- package/map/dist/chunks/maplibre-gl-DJlOK9hg.js +2 -0
- package/map/dist/chunks/maplibre-gl-DJlOK9hg.js.map +1 -0
- package/map/dist/index.d.ts +3078 -2184
- package/map/dist/map.es.js +1 -1
- package/map/dist/map.es.js.map +1 -1
- package/map/package.json +19 -1
- package/package.json +8 -1
- package/services/dist/index.d.ts +811 -1066
- package/services/dist/services.es.js +1 -1
- package/services/dist/services.es.js.map +1 -1
package/services/dist/index.d.ts
CHANGED
|
@@ -1,181 +1,5 @@
|
|
|
1
|
-
import { AddressProperties, AreaAnalyticsMetricKey, Avoidable, ChargingPark, ChargingParkWithAvailability, ChargingPoint, ChargingStation, ChargingStationsAccessType, ChargingStationsAvailability, ChargingStopProps, CommonPlaceProps, Connector, ConnectorType, CurrentType, EVChargingStationWithAvailabilityPlaceProps, EntryPoint, Fuel, GeographyType, GetPositionEntryPointOption, GlobalConfig, HasBBox, HasLngLat, MapcodeType, OpeningHours, OpeningHoursMode, POICategory, Place, PlaceType, Places, PlugType, PolygonFeature, PolygonFeatures, RevGeoAddressProps, RoadShieldReference, Route, RoutePlanningLocation, Routes, SearchPlaceProps, StaticChargingPoint, TimeZone, TomTomAPIHeaders, TomTomHeaders, TrafficAreaAnalytics, TrafficIncidentDetails, TrafficIncidentRequestCategory, TrafficIncidentTEC, TrafficIncidentTimeValidity, TravelMode,
|
|
1
|
+
import { AddressProperties, AreaAnalyticsMetricKey, Avoidable, ChargingPark, ChargingParkWithAvailability, ChargingPoint, ChargingStation, ChargingStationsAccessType, ChargingStationsAvailability, ChargingStopProps, CommonPlaceProps, Connector, ConnectorType, CurrentType, EVChargingStationWithAvailabilityPlaceProps, EntryPoint, Fuel, GeographyType, GeopoliticalView, GetPositionEntryPointOption, GlobalConfig, HasBBox, HasLngLat, MapcodeType, OpeningHours, OpeningHoursMode, POICategory, Place, PlaceType, Places, PlugType, PolygonFeature, PolygonFeatures, ReachableRangeBudget, RevGeoAddressProps, RoadShieldReference, Route, RoutePlanningLocation, Routes, SearchPlaceProps, StaticChargingPoint, TimeZone, TomTomAPIHeaders, TomTomHeaders, TrafficAreaAnalytics, TrafficIncidentDetails, TrafficIncidentRequestCategory, TrafficIncidentTEC, TrafficIncidentTimeValidity, TravelMode, inputSectionTypes } from "@tomtom-org/maps-sdk/core";
|
|
2
2
|
import { ZodError, ZodIssue, ZodObject } from "zod";
|
|
3
|
-
//#region ../node_modules/.pnpm/@types+geojson@7946.0.16/node_modules/@types/geojson/index.d.ts
|
|
4
|
-
/**
|
|
5
|
-
* The value values for the "type" property of GeoJSON Objects.
|
|
6
|
-
* https://tools.ietf.org/html/rfc7946#section-1.4
|
|
7
|
-
*/
|
|
8
|
-
type GeoJsonTypes = GeoJSON["type"];
|
|
9
|
-
/**
|
|
10
|
-
* Bounding box
|
|
11
|
-
* https://tools.ietf.org/html/rfc7946#section-5
|
|
12
|
-
*/
|
|
13
|
-
type BBox = [number, number, number, number] | [number, number, number, number, number, number];
|
|
14
|
-
/**
|
|
15
|
-
* A Position is an array of coordinates.
|
|
16
|
-
* https://tools.ietf.org/html/rfc7946#section-3.1.1
|
|
17
|
-
* Array should contain between two and three elements.
|
|
18
|
-
* The previous GeoJSON specification allowed more elements (e.g., which could be used to represent M values),
|
|
19
|
-
* but the current specification only allows X, Y, and (optionally) Z to be defined.
|
|
20
|
-
*
|
|
21
|
-
* Note: the type will not be narrowed down to `[number, number] | [number, number, number]` due to
|
|
22
|
-
* marginal benefits and the large impact of breaking change.
|
|
23
|
-
*
|
|
24
|
-
* See previous discussions on the type narrowing:
|
|
25
|
-
* - {@link https://github.com/DefinitelyTyped/DefinitelyTyped/pull/21590|Nov 2017}
|
|
26
|
-
* - {@link https://github.com/DefinitelyTyped/DefinitelyTyped/discussions/67773|Dec 2023}
|
|
27
|
-
* - {@link https://github.com/DefinitelyTyped/DefinitelyTyped/discussions/71441| Dec 2024}
|
|
28
|
-
*
|
|
29
|
-
* One can use a
|
|
30
|
-
* {@link https://www.typescriptlang.org/docs/handbook/2/narrowing.html#using-type-predicates|user-defined type guard that returns a type predicate}
|
|
31
|
-
* to determine if a position is a 2D or 3D position.
|
|
32
|
-
*
|
|
33
|
-
* @example
|
|
34
|
-
* import type { Position } from 'geojson';
|
|
35
|
-
*
|
|
36
|
-
* type StrictPosition = [x: number, y: number] | [x: number, y: number, z: number]
|
|
37
|
-
*
|
|
38
|
-
* function isStrictPosition(position: Position): position is StrictPosition {
|
|
39
|
-
* return position.length === 2 || position.length === 3
|
|
40
|
-
* };
|
|
41
|
-
*
|
|
42
|
-
* let position: Position = [-116.91, 45.54];
|
|
43
|
-
*
|
|
44
|
-
* let x: number;
|
|
45
|
-
* let y: number;
|
|
46
|
-
* let z: number | undefined;
|
|
47
|
-
*
|
|
48
|
-
* if (isStrictPosition(position)) {
|
|
49
|
-
* // `tsc` would throw an error if we tried to destructure a fourth parameter
|
|
50
|
-
* [x, y, z] = position;
|
|
51
|
-
* } else {
|
|
52
|
-
* throw new TypeError("Position is not a 2D or 3D point");
|
|
53
|
-
* }
|
|
54
|
-
*/
|
|
55
|
-
type Position = number[];
|
|
56
|
-
/**
|
|
57
|
-
* The base GeoJSON object.
|
|
58
|
-
* https://tools.ietf.org/html/rfc7946#section-3
|
|
59
|
-
* The GeoJSON specification also allows foreign members
|
|
60
|
-
* (https://tools.ietf.org/html/rfc7946#section-6.1)
|
|
61
|
-
* Developers should use "&" type in TypeScript or extend the interface
|
|
62
|
-
* to add these foreign members.
|
|
63
|
-
*/
|
|
64
|
-
interface GeoJsonObject {
|
|
65
|
-
// Don't include foreign members directly into this type def.
|
|
66
|
-
// in order to preserve type safety.
|
|
67
|
-
// [key: string]: any;
|
|
68
|
-
/**
|
|
69
|
-
* Specifies the type of GeoJSON object.
|
|
70
|
-
*/
|
|
71
|
-
type: GeoJsonTypes;
|
|
72
|
-
/**
|
|
73
|
-
* Bounding box of the coordinate range of the object's Geometries, Features, or Feature Collections.
|
|
74
|
-
* The value of the bbox member is an array of length 2*n where n is the number of dimensions
|
|
75
|
-
* represented in the contained geometries, with all axes of the most southwesterly point
|
|
76
|
-
* followed by all axes of the more northeasterly point.
|
|
77
|
-
* The axes order of a bbox follows the axes order of geometries.
|
|
78
|
-
* https://tools.ietf.org/html/rfc7946#section-5
|
|
79
|
-
*/
|
|
80
|
-
bbox?: BBox | undefined;
|
|
81
|
-
}
|
|
82
|
-
/**
|
|
83
|
-
* Union of GeoJSON objects.
|
|
84
|
-
*/
|
|
85
|
-
type GeoJSON<G extends Geometry | null = Geometry, P = GeoJsonProperties> = G | Feature<G, P> | FeatureCollection<G, P>;
|
|
86
|
-
/**
|
|
87
|
-
* Geometry object.
|
|
88
|
-
* https://tools.ietf.org/html/rfc7946#section-3
|
|
89
|
-
*/
|
|
90
|
-
type Geometry = Point | MultiPoint | LineString | MultiLineString | Polygon | MultiPolygon | GeometryCollection;
|
|
91
|
-
/**
|
|
92
|
-
* Point geometry object.
|
|
93
|
-
* https://tools.ietf.org/html/rfc7946#section-3.1.2
|
|
94
|
-
*/
|
|
95
|
-
interface Point extends GeoJsonObject {
|
|
96
|
-
type: "Point";
|
|
97
|
-
coordinates: Position;
|
|
98
|
-
}
|
|
99
|
-
/**
|
|
100
|
-
* MultiPoint geometry object.
|
|
101
|
-
* https://tools.ietf.org/html/rfc7946#section-3.1.3
|
|
102
|
-
*/
|
|
103
|
-
interface MultiPoint extends GeoJsonObject {
|
|
104
|
-
type: "MultiPoint";
|
|
105
|
-
coordinates: Position[];
|
|
106
|
-
}
|
|
107
|
-
/**
|
|
108
|
-
* LineString geometry object.
|
|
109
|
-
* https://tools.ietf.org/html/rfc7946#section-3.1.4
|
|
110
|
-
*/
|
|
111
|
-
interface LineString extends GeoJsonObject {
|
|
112
|
-
type: "LineString";
|
|
113
|
-
coordinates: Position[];
|
|
114
|
-
}
|
|
115
|
-
/**
|
|
116
|
-
* MultiLineString geometry object.
|
|
117
|
-
* https://tools.ietf.org/html/rfc7946#section-3.1.5
|
|
118
|
-
*/
|
|
119
|
-
interface MultiLineString extends GeoJsonObject {
|
|
120
|
-
type: "MultiLineString";
|
|
121
|
-
coordinates: Position[][];
|
|
122
|
-
}
|
|
123
|
-
/**
|
|
124
|
-
* Polygon geometry object.
|
|
125
|
-
* https://tools.ietf.org/html/rfc7946#section-3.1.6
|
|
126
|
-
*/
|
|
127
|
-
interface Polygon extends GeoJsonObject {
|
|
128
|
-
type: "Polygon";
|
|
129
|
-
coordinates: Position[][];
|
|
130
|
-
}
|
|
131
|
-
/**
|
|
132
|
-
* MultiPolygon geometry object.
|
|
133
|
-
* https://tools.ietf.org/html/rfc7946#section-3.1.7
|
|
134
|
-
*/
|
|
135
|
-
interface MultiPolygon extends GeoJsonObject {
|
|
136
|
-
type: "MultiPolygon";
|
|
137
|
-
coordinates: Position[][][];
|
|
138
|
-
}
|
|
139
|
-
/**
|
|
140
|
-
* Geometry Collection
|
|
141
|
-
* https://tools.ietf.org/html/rfc7946#section-3.1.8
|
|
142
|
-
*/
|
|
143
|
-
interface GeometryCollection<G extends Geometry = Geometry> extends GeoJsonObject {
|
|
144
|
-
type: "GeometryCollection";
|
|
145
|
-
geometries: G[];
|
|
146
|
-
}
|
|
147
|
-
type GeoJsonProperties = {
|
|
148
|
-
[name: string]: any;
|
|
149
|
-
} | null;
|
|
150
|
-
/**
|
|
151
|
-
* A feature object which contains a geometry and associated properties.
|
|
152
|
-
* https://tools.ietf.org/html/rfc7946#section-3.2
|
|
153
|
-
*/
|
|
154
|
-
interface Feature<G extends Geometry | null = Geometry, P = GeoJsonProperties> extends GeoJsonObject {
|
|
155
|
-
type: "Feature";
|
|
156
|
-
/**
|
|
157
|
-
* The feature's geometry
|
|
158
|
-
*/
|
|
159
|
-
geometry: G;
|
|
160
|
-
/**
|
|
161
|
-
* A value that uniquely identifies this feature in a
|
|
162
|
-
* https://tools.ietf.org/html/rfc7946#section-3.2.
|
|
163
|
-
*/
|
|
164
|
-
id?: string | number | undefined;
|
|
165
|
-
/**
|
|
166
|
-
* Properties associated with this feature.
|
|
167
|
-
*/
|
|
168
|
-
properties: P;
|
|
169
|
-
}
|
|
170
|
-
/**
|
|
171
|
-
* A collection of feature objects.
|
|
172
|
-
* https://tools.ietf.org/html/rfc7946#section-3.3
|
|
173
|
-
*/
|
|
174
|
-
interface FeatureCollection<G extends Geometry | null = Geometry, P = GeoJsonProperties> extends GeoJsonObject {
|
|
175
|
-
type: "FeatureCollection";
|
|
176
|
-
features: Array<Feature<G, P>>;
|
|
177
|
-
}
|
|
178
|
-
//#endregion
|
|
179
3
|
//#region src/shared/types/apiResponseErrorTypes.d.ts
|
|
180
4
|
/**
|
|
181
5
|
* @ignore
|
|
@@ -748,10 +572,9 @@ export type SearchIndexType = 'Geo' | 'PAD' | 'Addr' | 'Str' | 'XStr' | 'POI';
|
|
|
748
572
|
*
|
|
749
573
|
* @remarks
|
|
750
574
|
* **Applied to Services:**
|
|
751
|
-
* - {@link discoverPlaces}
|
|
575
|
+
* - {@link discoverPlaces}
|
|
752
576
|
* - {@link geocode}
|
|
753
577
|
* - {@link reverseGeocode}
|
|
754
|
-
* - {@link geometrySearch}
|
|
755
578
|
*
|
|
756
579
|
* **Key Features:**
|
|
757
580
|
* - Result limits and pagination
|
|
@@ -763,7 +586,7 @@ export type SearchIndexType = 'Geo' | 'PAD' | 'Addr' | 'Str' | 'XStr' | 'POI';
|
|
|
763
586
|
* ```typescript
|
|
764
587
|
* // Search with mapcodes and specific geopolitical view
|
|
765
588
|
* const detailedSearch: CommonPlacesParams<URL, Response> = {
|
|
766
|
-
*
|
|
589
|
+
* geopoliticalView: 'IN', // India's perspective
|
|
767
590
|
* mapcodes: ['Local', 'International'],
|
|
768
591
|
* extendedPostalCodesFor: ['PAD', 'POI'],
|
|
769
592
|
* limit: 5
|
|
@@ -864,48 +687,6 @@ export type CommonPlacesParams<ApiRequest, ApiResponse> = CommonServiceParams<Ap
|
|
|
864
687
|
* ```
|
|
865
688
|
*/
|
|
866
689
|
mapcodes?: MapcodeType[];
|
|
867
|
-
/**
|
|
868
|
-
* Geopolitical view for disputed territories.
|
|
869
|
-
*
|
|
870
|
-
* Determines how borders and place names are displayed for disputed
|
|
871
|
-
* territories, according to different countries' perspectives.
|
|
872
|
-
*
|
|
873
|
-
* @remarks
|
|
874
|
-
* **Available Views:**
|
|
875
|
-
* - `Unified`: International/neutral view (default)
|
|
876
|
-
* - `AR`: Argentina's perspective
|
|
877
|
-
* - `IN`: India's perspective
|
|
878
|
-
* - `PK`: Pakistan's perspective
|
|
879
|
-
* - `IL`: Israel's perspective
|
|
880
|
-
* - `MA`: Morocco's perspective
|
|
881
|
-
* - `RU`: Russia's perspective
|
|
882
|
-
* - `TR`: Turkey's perspective
|
|
883
|
-
* - `CN`: China's perspective
|
|
884
|
-
* - `TW`: Taiwan's perspective
|
|
885
|
-
* - `RS`: Serbia's perspective
|
|
886
|
-
*
|
|
887
|
-
* `MA` is accepted by this type but is not supported by the current backend.
|
|
888
|
-
*
|
|
889
|
-
* **Affected Elements:**
|
|
890
|
-
* - Border lines on maps
|
|
891
|
-
* - Territory names
|
|
892
|
-
* - Administrative classifications
|
|
893
|
-
* - Place name spellings
|
|
894
|
-
*
|
|
895
|
-
* **Legal Compliance:**
|
|
896
|
-
* Use appropriate views based on your target audience and
|
|
897
|
-
* legal requirements in different regions.
|
|
898
|
-
*
|
|
899
|
-
* @default 'Unified'
|
|
900
|
-
*
|
|
901
|
-
* @example
|
|
902
|
-
* ```typescript
|
|
903
|
-
* view: 'Unified' // Neutral international view
|
|
904
|
-
* view: 'IN' // India's perspective
|
|
905
|
-
* view: 'CN' // China's perspective
|
|
906
|
-
* ```
|
|
907
|
-
*/
|
|
908
|
-
view?: View;
|
|
909
690
|
};
|
|
910
691
|
//#endregion
|
|
911
692
|
//#region src/shared/types/searchFilters.d.ts
|
|
@@ -976,7 +757,7 @@ export type SearchFilters = PlaceFilters & GeographicFilters;
|
|
|
976
757
|
*
|
|
977
758
|
* @remarks
|
|
978
759
|
* Used by:
|
|
979
|
-
* - {@link
|
|
760
|
+
* - {@link discoverPlaces}
|
|
980
761
|
* - {@link geocode}
|
|
981
762
|
*
|
|
982
763
|
* @group Places Search
|
|
@@ -2216,7 +1997,7 @@ export type ElectricVehicleParams = {
|
|
|
2216
1997
|
* @remarks
|
|
2217
1998
|
* Should include battery capacity, charging curve, and consumption profiles. A predefined
|
|
2218
1999
|
* `variantId` is accepted here, but only `calculateRoute` with charging preferences understands
|
|
2219
|
-
* one — a range
|
|
2000
|
+
* one — a range has no charging stops to plan for.
|
|
2220
2001
|
*/
|
|
2221
2002
|
model?: VehicleModel<'electric'>;
|
|
2222
2003
|
/**
|
|
@@ -2599,8 +2380,8 @@ export type DepartArriveParams<Option extends DepartArriveOption = DepartArriveO
|
|
|
2599
2380
|
* They provide a consistent interface across different routing services.
|
|
2600
2381
|
*
|
|
2601
2382
|
* @remarks
|
|
2602
|
-
*
|
|
2603
|
-
*
|
|
2383
|
+
* Both routing services (calculateRoute, calculateReachableRange) accept these parameters
|
|
2384
|
+
* to customize route calculation. They control:
|
|
2604
2385
|
* - What to optimize for (time, distance, fuel)
|
|
2605
2386
|
* - Vehicle constraints and capabilities
|
|
2606
2387
|
* - When to travel (affecting traffic)
|
|
@@ -2609,7 +2390,6 @@ export type DepartArriveParams<Option extends DepartArriveOption = DepartArriveO
|
|
|
2609
2390
|
*
|
|
2610
2391
|
* **Service Compatibility:**
|
|
2611
2392
|
* - {@link calculateRoute}: All parameters supported
|
|
2612
|
-
* - {@link calculateMatrixRoute}: Subset of parameters
|
|
2613
2393
|
* - {@link calculateReachableRange}: Subset of parameters
|
|
2614
2394
|
*
|
|
2615
2395
|
* @example
|
|
@@ -2772,10 +2552,7 @@ export type TimeZoneRequest = 'iana';
|
|
|
2772
2552
|
* @typeParam ApiResponse - The API response type
|
|
2773
2553
|
*
|
|
2774
2554
|
* @remarks
|
|
2775
|
-
* Used by
|
|
2776
|
-
* - {@link discoverPlaces}
|
|
2777
|
-
* - {@link fuzzySearch}
|
|
2778
|
-
* - {@link geometrySearch}
|
|
2555
|
+
* Used by {@link discoverPlaces}.
|
|
2779
2556
|
*
|
|
2780
2557
|
* Provides:
|
|
2781
2558
|
* - POI category, brand, EV charging and fuel type filters (`filters`)
|
|
@@ -2897,58 +2674,232 @@ export type CommonSearchParams<ApiRequest, ApiResponse> = CommonPlacesParams<Api
|
|
|
2897
2674
|
relatedPois?: RelatedPoisRequest;
|
|
2898
2675
|
};
|
|
2899
2676
|
//#endregion
|
|
2900
|
-
//#region
|
|
2677
|
+
//#region ../node_modules/.pnpm/@types+geojson@7946.0.16/node_modules/@types/geojson/index.d.ts
|
|
2901
2678
|
/**
|
|
2902
|
-
*
|
|
2903
|
-
*
|
|
2904
|
-
* Indicates whether the search was location-based or general.
|
|
2905
|
-
*
|
|
2906
|
-
* @remarks
|
|
2907
|
-
* - `NEARBY`: Results are based on proximity to a specified location (uses `at` parameter)
|
|
2908
|
-
* - `NON_NEAR`: General search without location bias, or results span a wide area
|
|
2909
|
-
*
|
|
2910
|
-
* @group Places Search
|
|
2679
|
+
* The value values for the "type" property of GeoJSON Objects.
|
|
2680
|
+
* https://tools.ietf.org/html/rfc7946#section-1.4
|
|
2911
2681
|
*/
|
|
2912
|
-
type
|
|
2682
|
+
type GeoJsonTypes = GeoJSON["type"];
|
|
2913
2683
|
/**
|
|
2914
|
-
*
|
|
2684
|
+
* Bounding box
|
|
2685
|
+
* https://tools.ietf.org/html/rfc7946#section-5
|
|
2686
|
+
*/
|
|
2687
|
+
type BBox = [number, number, number, number] | [number, number, number, number, number, number];
|
|
2688
|
+
/**
|
|
2689
|
+
* A Position is an array of coordinates.
|
|
2690
|
+
* https://tools.ietf.org/html/rfc7946#section-3.1.1
|
|
2691
|
+
* Array should contain between two and three elements.
|
|
2692
|
+
* The previous GeoJSON specification allowed more elements (e.g., which could be used to represent M values),
|
|
2693
|
+
* but the current specification only allows X, Y, and (optionally) Z to be defined.
|
|
2915
2694
|
*
|
|
2916
|
-
*
|
|
2917
|
-
*
|
|
2918
|
-
* through results.
|
|
2695
|
+
* Note: the type will not be narrowed down to `[number, number] | [number, number, number]` due to
|
|
2696
|
+
* marginal benefits and the large impact of breaking change.
|
|
2919
2697
|
*
|
|
2920
|
-
*
|
|
2921
|
-
*
|
|
2922
|
-
* - {@link
|
|
2923
|
-
* - {@link
|
|
2924
|
-
*
|
|
2925
|
-
*
|
|
2698
|
+
* See previous discussions on the type narrowing:
|
|
2699
|
+
* - {@link https://github.com/DefinitelyTyped/DefinitelyTyped/pull/21590|Nov 2017}
|
|
2700
|
+
* - {@link https://github.com/DefinitelyTyped/DefinitelyTyped/discussions/67773|Dec 2023}
|
|
2701
|
+
* - {@link https://github.com/DefinitelyTyped/DefinitelyTyped/discussions/71441| Dec 2024}
|
|
2702
|
+
*
|
|
2703
|
+
* One can use a
|
|
2704
|
+
* {@link https://www.typescriptlang.org/docs/handbook/2/narrowing.html#using-type-predicates|user-defined type guard that returns a type predicate}
|
|
2705
|
+
* to determine if a position is a 2D or 3D position.
|
|
2926
2706
|
*
|
|
2927
2707
|
* @example
|
|
2928
|
-
*
|
|
2929
|
-
* const results = await discoverPlaces({
|
|
2930
|
-
* query: 'pizza',
|
|
2931
|
-
* geoBias: { position: [4.9, 52.3] }
|
|
2932
|
-
* });
|
|
2708
|
+
* import type { Position } from 'geojson';
|
|
2933
2709
|
*
|
|
2934
|
-
*
|
|
2935
|
-
* console.log(`Found ${summary?.totalResults ?? 'an unknown number of'} total results`);
|
|
2936
|
-
* console.log(`Showing ${summary?.numResults} results`);
|
|
2937
|
-
* console.log(`Query type: ${summary?.queryType}`); // 'NEARBY'
|
|
2938
|
-
* console.log(`Search took ${summary?.queryTime}ms`);
|
|
2939
|
-
* ```
|
|
2710
|
+
* type StrictPosition = [x: number, y: number] | [x: number, y: number, z: number]
|
|
2940
2711
|
*
|
|
2941
|
-
*
|
|
2942
|
-
|
|
2943
|
-
|
|
2944
|
-
|
|
2945
|
-
|
|
2946
|
-
|
|
2947
|
-
|
|
2948
|
-
|
|
2949
|
-
|
|
2950
|
-
|
|
2951
|
-
|
|
2712
|
+
* function isStrictPosition(position: Position): position is StrictPosition {
|
|
2713
|
+
* return position.length === 2 || position.length === 3
|
|
2714
|
+
* };
|
|
2715
|
+
*
|
|
2716
|
+
* let position: Position = [-116.91, 45.54];
|
|
2717
|
+
*
|
|
2718
|
+
* let x: number;
|
|
2719
|
+
* let y: number;
|
|
2720
|
+
* let z: number | undefined;
|
|
2721
|
+
*
|
|
2722
|
+
* if (isStrictPosition(position)) {
|
|
2723
|
+
* // `tsc` would throw an error if we tried to destructure a fourth parameter
|
|
2724
|
+
* [x, y, z] = position;
|
|
2725
|
+
* } else {
|
|
2726
|
+
* throw new TypeError("Position is not a 2D or 3D point");
|
|
2727
|
+
* }
|
|
2728
|
+
*/
|
|
2729
|
+
type Position = number[];
|
|
2730
|
+
/**
|
|
2731
|
+
* The base GeoJSON object.
|
|
2732
|
+
* https://tools.ietf.org/html/rfc7946#section-3
|
|
2733
|
+
* The GeoJSON specification also allows foreign members
|
|
2734
|
+
* (https://tools.ietf.org/html/rfc7946#section-6.1)
|
|
2735
|
+
* Developers should use "&" type in TypeScript or extend the interface
|
|
2736
|
+
* to add these foreign members.
|
|
2737
|
+
*/
|
|
2738
|
+
interface GeoJsonObject {
|
|
2739
|
+
// Don't include foreign members directly into this type def.
|
|
2740
|
+
// in order to preserve type safety.
|
|
2741
|
+
// [key: string]: any;
|
|
2742
|
+
/**
|
|
2743
|
+
* Specifies the type of GeoJSON object.
|
|
2744
|
+
*/
|
|
2745
|
+
type: GeoJsonTypes;
|
|
2746
|
+
/**
|
|
2747
|
+
* Bounding box of the coordinate range of the object's Geometries, Features, or Feature Collections.
|
|
2748
|
+
* The value of the bbox member is an array of length 2*n where n is the number of dimensions
|
|
2749
|
+
* represented in the contained geometries, with all axes of the most southwesterly point
|
|
2750
|
+
* followed by all axes of the more northeasterly point.
|
|
2751
|
+
* The axes order of a bbox follows the axes order of geometries.
|
|
2752
|
+
* https://tools.ietf.org/html/rfc7946#section-5
|
|
2753
|
+
*/
|
|
2754
|
+
bbox?: BBox | undefined;
|
|
2755
|
+
}
|
|
2756
|
+
/**
|
|
2757
|
+
* Union of GeoJSON objects.
|
|
2758
|
+
*/
|
|
2759
|
+
type GeoJSON<G extends Geometry | null = Geometry, P = GeoJsonProperties> = G | Feature<G, P> | FeatureCollection<G, P>;
|
|
2760
|
+
/**
|
|
2761
|
+
* Geometry object.
|
|
2762
|
+
* https://tools.ietf.org/html/rfc7946#section-3
|
|
2763
|
+
*/
|
|
2764
|
+
type Geometry = Point | MultiPoint | LineString | MultiLineString | Polygon | MultiPolygon | GeometryCollection;
|
|
2765
|
+
/**
|
|
2766
|
+
* Point geometry object.
|
|
2767
|
+
* https://tools.ietf.org/html/rfc7946#section-3.1.2
|
|
2768
|
+
*/
|
|
2769
|
+
interface Point extends GeoJsonObject {
|
|
2770
|
+
type: "Point";
|
|
2771
|
+
coordinates: Position;
|
|
2772
|
+
}
|
|
2773
|
+
/**
|
|
2774
|
+
* MultiPoint geometry object.
|
|
2775
|
+
* https://tools.ietf.org/html/rfc7946#section-3.1.3
|
|
2776
|
+
*/
|
|
2777
|
+
interface MultiPoint extends GeoJsonObject {
|
|
2778
|
+
type: "MultiPoint";
|
|
2779
|
+
coordinates: Position[];
|
|
2780
|
+
}
|
|
2781
|
+
/**
|
|
2782
|
+
* LineString geometry object.
|
|
2783
|
+
* https://tools.ietf.org/html/rfc7946#section-3.1.4
|
|
2784
|
+
*/
|
|
2785
|
+
interface LineString extends GeoJsonObject {
|
|
2786
|
+
type: "LineString";
|
|
2787
|
+
coordinates: Position[];
|
|
2788
|
+
}
|
|
2789
|
+
/**
|
|
2790
|
+
* MultiLineString geometry object.
|
|
2791
|
+
* https://tools.ietf.org/html/rfc7946#section-3.1.5
|
|
2792
|
+
*/
|
|
2793
|
+
interface MultiLineString extends GeoJsonObject {
|
|
2794
|
+
type: "MultiLineString";
|
|
2795
|
+
coordinates: Position[][];
|
|
2796
|
+
}
|
|
2797
|
+
/**
|
|
2798
|
+
* Polygon geometry object.
|
|
2799
|
+
* https://tools.ietf.org/html/rfc7946#section-3.1.6
|
|
2800
|
+
*/
|
|
2801
|
+
interface Polygon extends GeoJsonObject {
|
|
2802
|
+
type: "Polygon";
|
|
2803
|
+
coordinates: Position[][];
|
|
2804
|
+
}
|
|
2805
|
+
/**
|
|
2806
|
+
* MultiPolygon geometry object.
|
|
2807
|
+
* https://tools.ietf.org/html/rfc7946#section-3.1.7
|
|
2808
|
+
*/
|
|
2809
|
+
interface MultiPolygon extends GeoJsonObject {
|
|
2810
|
+
type: "MultiPolygon";
|
|
2811
|
+
coordinates: Position[][][];
|
|
2812
|
+
}
|
|
2813
|
+
/**
|
|
2814
|
+
* Geometry Collection
|
|
2815
|
+
* https://tools.ietf.org/html/rfc7946#section-3.1.8
|
|
2816
|
+
*/
|
|
2817
|
+
interface GeometryCollection<G extends Geometry = Geometry> extends GeoJsonObject {
|
|
2818
|
+
type: "GeometryCollection";
|
|
2819
|
+
geometries: G[];
|
|
2820
|
+
}
|
|
2821
|
+
type GeoJsonProperties = {
|
|
2822
|
+
[name: string]: any;
|
|
2823
|
+
} | null;
|
|
2824
|
+
/**
|
|
2825
|
+
* A feature object which contains a geometry and associated properties.
|
|
2826
|
+
* https://tools.ietf.org/html/rfc7946#section-3.2
|
|
2827
|
+
*/
|
|
2828
|
+
interface Feature<G extends Geometry | null = Geometry, P = GeoJsonProperties> extends GeoJsonObject {
|
|
2829
|
+
type: "Feature";
|
|
2830
|
+
/**
|
|
2831
|
+
* The feature's geometry
|
|
2832
|
+
*/
|
|
2833
|
+
geometry: G;
|
|
2834
|
+
/**
|
|
2835
|
+
* A value that uniquely identifies this feature in a
|
|
2836
|
+
* https://tools.ietf.org/html/rfc7946#section-3.2.
|
|
2837
|
+
*/
|
|
2838
|
+
id?: string | number | undefined;
|
|
2839
|
+
/**
|
|
2840
|
+
* Properties associated with this feature.
|
|
2841
|
+
*/
|
|
2842
|
+
properties: P;
|
|
2843
|
+
}
|
|
2844
|
+
/**
|
|
2845
|
+
* A collection of feature objects.
|
|
2846
|
+
* https://tools.ietf.org/html/rfc7946#section-3.3
|
|
2847
|
+
*/
|
|
2848
|
+
interface FeatureCollection<G extends Geometry | null = Geometry, P = GeoJsonProperties> extends GeoJsonObject {
|
|
2849
|
+
type: "FeatureCollection";
|
|
2850
|
+
features: Array<Feature<G, P>>;
|
|
2851
|
+
}
|
|
2852
|
+
//#endregion
|
|
2853
|
+
//#region src/shared/types/searchSummary.d.ts
|
|
2854
|
+
/**
|
|
2855
|
+
* Query type classification for search results.
|
|
2856
|
+
*
|
|
2857
|
+
* Indicates whether the search was location-based or general.
|
|
2858
|
+
*
|
|
2859
|
+
* @remarks
|
|
2860
|
+
* - `NEARBY`: Results are based on proximity to a specified location (uses `at` parameter)
|
|
2861
|
+
* - `NON_NEAR`: General search without location bias, or results span a wide area
|
|
2862
|
+
*
|
|
2863
|
+
* @group Places Search
|
|
2864
|
+
*/
|
|
2865
|
+
type SummaryQueryType = 'NEARBY' | 'NON_NEAR';
|
|
2866
|
+
/**
|
|
2867
|
+
* Metadata summary for search API responses.
|
|
2868
|
+
*
|
|
2869
|
+
* Provides information about the search query execution, result counts, and the cursor that
|
|
2870
|
+
* continues the search. This metadata helps understand how the search was processed and page
|
|
2871
|
+
* through results.
|
|
2872
|
+
*
|
|
2873
|
+
* @remarks
|
|
2874
|
+
* This summary is included in responses from:
|
|
2875
|
+
* - {@link discoverPlaces}
|
|
2876
|
+
* - {@link geocode}
|
|
2877
|
+
*
|
|
2878
|
+
* @example
|
|
2879
|
+
* ```typescript
|
|
2880
|
+
* const results = await discoverPlaces({
|
|
2881
|
+
* query: 'pizza',
|
|
2882
|
+
* geoBias: { position: [4.9, 52.3] }
|
|
2883
|
+
* });
|
|
2884
|
+
*
|
|
2885
|
+
* const summary = results.properties;
|
|
2886
|
+
* console.log(`Found ${summary?.totalResults ?? 'an unknown number of'} total results`);
|
|
2887
|
+
* console.log(`Showing ${summary?.numResults} results`);
|
|
2888
|
+
* console.log(`Query type: ${summary?.queryType}`); // 'NEARBY'
|
|
2889
|
+
* console.log(`Search took ${summary?.queryTime}ms`);
|
|
2890
|
+
* ```
|
|
2891
|
+
*
|
|
2892
|
+
* @group Places Search
|
|
2893
|
+
*/
|
|
2894
|
+
export type SearchSummary = {
|
|
2895
|
+
/**
|
|
2896
|
+
* The search query as interpreted and processed by the search engine.
|
|
2897
|
+
*
|
|
2898
|
+
* May differ from the original input due to:
|
|
2899
|
+
* - Normalization (case, spacing, diacritics)
|
|
2900
|
+
* - Spelling corrections
|
|
2901
|
+
* - Query expansion
|
|
2902
|
+
* - Stop word removal
|
|
2952
2903
|
*
|
|
2953
2904
|
* @example
|
|
2954
2905
|
* ```typescript
|
|
@@ -3076,28 +3027,6 @@ export type SearchSummary = {
|
|
|
3076
3027
|
geoBias?: Position;
|
|
3077
3028
|
};
|
|
3078
3029
|
//#endregion
|
|
3079
|
-
//#region src/along-route-search/types/alongRouteSearchRequestAPI.d.ts
|
|
3080
|
-
/**
|
|
3081
|
-
* @ignore
|
|
3082
|
-
*/
|
|
3083
|
-
type RoutePointAPI = {
|
|
3084
|
-
lat: number;
|
|
3085
|
-
lon: number;
|
|
3086
|
-
};
|
|
3087
|
-
/**
|
|
3088
|
-
* @ignore
|
|
3089
|
-
*/
|
|
3090
|
-
type AlongRouteSearchPayloadAPI = {
|
|
3091
|
-
route: {
|
|
3092
|
-
points: RoutePointAPI[];
|
|
3093
|
-
};
|
|
3094
|
-
};
|
|
3095
|
-
/**
|
|
3096
|
-
* Along-route search request type.
|
|
3097
|
-
* @ignore
|
|
3098
|
-
*/
|
|
3099
|
-
type AlongRouteSearchRequestAPI = PostObject<AlongRouteSearchPayloadAPI>;
|
|
3100
|
-
//#endregion
|
|
3101
3030
|
//#region src/shared/types/apiPlacesResponseTypes.d.ts
|
|
3102
3031
|
/**
|
|
3103
3032
|
* @ignore
|
|
@@ -3272,228 +3201,50 @@ type CommonSearchPlaceResultAPI = Omit<SearchPlaceProps, 'distance' | 'position'
|
|
|
3272
3201
|
chargingStations?: ChargingStationAPI[];
|
|
3273
3202
|
};
|
|
3274
3203
|
//#endregion
|
|
3275
|
-
//#region src/
|
|
3204
|
+
//#region src/ev-charging-stations-availability/types/apiTypes.d.ts
|
|
3276
3205
|
/**
|
|
3277
3206
|
* @ignore
|
|
3278
3207
|
*/
|
|
3279
|
-
type
|
|
3208
|
+
type EVChargingStationResultAPI = {
|
|
3209
|
+
id: string;
|
|
3210
|
+
name: string;
|
|
3211
|
+
position: LatLonAPI;
|
|
3212
|
+
openingHours: OpeningHoursAPI;
|
|
3213
|
+
timeZone: TimeZone;
|
|
3214
|
+
accessType: ChargingStationsAccessType;
|
|
3215
|
+
chargingStations: ChargingStationAPI<Pick<ChargingPoint, 'status'>>[];
|
|
3216
|
+
};
|
|
3280
3217
|
/**
|
|
3281
3218
|
* @ignore
|
|
3282
3219
|
*/
|
|
3283
|
-
type
|
|
3284
|
-
|
|
3285
|
-
|
|
3286
|
-
|
|
3287
|
-
|
|
3288
|
-
|
|
3289
|
-
|
|
3290
|
-
*/
|
|
3291
|
-
results: AlongRouteSearchResultAPI[];
|
|
3220
|
+
type ChargingStationsAvailabilityResponseAPI = {
|
|
3221
|
+
summary: {
|
|
3222
|
+
numResults: number;
|
|
3223
|
+
offset: number;
|
|
3224
|
+
totalResults: number;
|
|
3225
|
+
};
|
|
3226
|
+
results?: EVChargingStationResultAPI[];
|
|
3292
3227
|
};
|
|
3293
3228
|
//#endregion
|
|
3294
|
-
//#region src/
|
|
3229
|
+
//#region src/ev-charging-stations-availability/types/evChargingStationsAvailabilityParams.d.ts
|
|
3295
3230
|
/**
|
|
3296
|
-
*
|
|
3231
|
+
* Parameters for the EV Charging Stations Availability service.
|
|
3297
3232
|
*
|
|
3298
|
-
*
|
|
3233
|
+
* Fetches real-time availability status of charging points at an EV charging park.
|
|
3299
3234
|
*
|
|
3300
3235
|
* @remarks
|
|
3301
|
-
*
|
|
3302
|
-
*
|
|
3303
|
-
*
|
|
3304
|
-
*
|
|
3305
|
-
* -
|
|
3306
|
-
* -
|
|
3307
|
-
*
|
|
3308
|
-
* @group Along Route Search
|
|
3309
|
-
*/
|
|
3310
|
-
type AlongRouteSortBy = 'detourTime' | 'detourOffset';
|
|
3311
|
-
/**
|
|
3312
|
-
* Parameters for searching places along a route.
|
|
3313
|
-
*
|
|
3314
|
-
* Along-route search finds POIs near a provided route geometry and ranks them
|
|
3315
|
-
* by the detour cost (time or distance offset) required to visit them.
|
|
3316
|
-
*
|
|
3317
|
-
* @remarks
|
|
3318
|
-
* **Key Features:**
|
|
3319
|
-
* - Search for POIs within a detour budget from the route
|
|
3320
|
-
* - Sort results by detour time or route offset
|
|
3321
|
-
* - Combine with POI category and brand filters
|
|
3322
|
-
* - Use directly with a {@link calculateRoute} result
|
|
3323
|
-
*
|
|
3324
|
-
* **Use Cases:**
|
|
3325
|
-
* - Find fuel stations or EV chargers along a trip
|
|
3326
|
-
* - Locate rest stops or restaurants near a route
|
|
3327
|
-
* - Surface services reachable within a time budget
|
|
3328
|
-
*
|
|
3329
|
-
* @example
|
|
3330
|
-
* ```typescript
|
|
3331
|
-
* // Find coffee shops within a 5-minute detour from a route
|
|
3332
|
-
* const results = await discoverPlaces({
|
|
3333
|
-
* route: routeResult.features[0],
|
|
3334
|
-
* maxDetourTimeSeconds: 300,
|
|
3335
|
-
* query: 'coffee',
|
|
3336
|
-
* });
|
|
3337
|
-
*
|
|
3338
|
-
* // Find EV charging stations using a plain coordinate array
|
|
3339
|
-
* const chargers = await discoverPlaces({
|
|
3340
|
-
* route: [[4.9, 52.37], [4.95, 52.28], [5.1, 52.09]],
|
|
3341
|
-
* maxDetourTimeSeconds: 600,
|
|
3342
|
-
* filters: { poiCategories: ['CHARGING_LOCATION'] },
|
|
3343
|
-
* sortBy: 'detourOffset',
|
|
3344
|
-
* });
|
|
3345
|
-
* ```
|
|
3346
|
-
*
|
|
3347
|
-
* @group Along Route Search
|
|
3348
|
-
*/
|
|
3349
|
-
type AlongRouteSearchParams = CommonSearchParams<AlongRouteSearchRequestAPI, AlongRouteSearchResponseAPI> & {
|
|
3350
|
-
/**
|
|
3351
|
-
* Route geometry to search along.
|
|
3352
|
-
*
|
|
3353
|
-
* Accepts any of three forms:
|
|
3354
|
-
* - **`Route`** feature as returned by {@link calculateRoute} (most common)
|
|
3355
|
-
* - **`LineString`** GeoJSON geometry object
|
|
3356
|
-
* - **`Position[]`** — a plain array of `[longitude, latitude]` coordinate pairs
|
|
3357
|
-
*
|
|
3358
|
-
* Coordinates must always be in `[longitude, latitude]` order.
|
|
3359
|
-
*
|
|
3360
|
-
* @example
|
|
3361
|
-
* ```typescript
|
|
3362
|
-
* // Route Feature from calculateRoute (most common)
|
|
3363
|
-
* route: routeResult.features[0]
|
|
3364
|
-
*
|
|
3365
|
-
* // GeoJSON LineString geometry
|
|
3366
|
-
* route: routeResult.features[0].geometry
|
|
3367
|
-
*
|
|
3368
|
-
* // Plain coordinate array
|
|
3369
|
-
* route: [[4.9, 52.37], [4.95, 52.28], [5.1, 52.09]]
|
|
3370
|
-
* ```
|
|
3371
|
-
*/
|
|
3372
|
-
route: LineString | Route | Position[];
|
|
3373
|
-
/**
|
|
3374
|
-
* Maximum allowed detour time in seconds.
|
|
3375
|
-
*
|
|
3376
|
-
* Only POIs reachable within this additional travel time from the route
|
|
3377
|
-
* will be returned. Controls the width of the search corridor.
|
|
3378
|
-
*
|
|
3379
|
-
* @example
|
|
3380
|
-
* ```typescript
|
|
3381
|
-
* maxDetourTimeSeconds: 300 // 5-minute detour budget
|
|
3382
|
-
* ```
|
|
3383
|
-
*/
|
|
3384
|
-
maxDetourTimeSeconds: number;
|
|
3385
|
-
/**
|
|
3386
|
-
* Sort order for the results.
|
|
3387
|
-
*
|
|
3388
|
-
* @default 'detourTime'
|
|
3389
|
-
*
|
|
3390
|
-
* @example
|
|
3391
|
-
* ```typescript
|
|
3392
|
-
* sortBy: 'detourOffset' // order by position along the route
|
|
3393
|
-
* ```
|
|
3394
|
-
*/
|
|
3395
|
-
sortBy?: AlongRouteSortBy;
|
|
3396
|
-
};
|
|
3397
|
-
//#endregion
|
|
3398
|
-
//#region src/along-route-search/types/alongRouteSearchResponse.d.ts
|
|
3399
|
-
/**
|
|
3400
|
-
* Response from an along-route search query.
|
|
3401
|
-
*
|
|
3402
|
-
* Contains places found near the route, sorted by detour time or offset,
|
|
3403
|
-
* along with summary information about the search results.
|
|
3404
|
-
*
|
|
3405
|
-
* @group Along Route Search
|
|
3406
|
-
*/
|
|
3407
|
-
type AlongRouteSearchResponse = Places<SearchPlaceProps, SearchSummary>;
|
|
3408
|
-
//#endregion
|
|
3409
|
-
//#region src/along-route-search/alongRouteSearch.d.ts
|
|
3410
|
-
/**
|
|
3411
|
-
* Search for places along a route, ranked by detour cost.
|
|
3412
|
-
*
|
|
3413
|
-
* Returns POIs reachable within a given detour budget from the provided route geometry.
|
|
3414
|
-
* Results are sorted by detour time (or offset along the route) so the most
|
|
3415
|
-
* accessible stops appear first.
|
|
3416
|
-
*
|
|
3417
|
-
* @remarks
|
|
3418
|
-
* This service is ideal for trip planning use cases:
|
|
3419
|
-
* - Find fuel or EV charging stations along the way
|
|
3420
|
-
* - Locate food stops or rest areas near the route
|
|
3421
|
-
* - Surface services reachable within a time budget
|
|
3422
|
-
*
|
|
3423
|
-
* The `route` is typically sourced from a {@link calculateRoute} result.
|
|
3424
|
-
*
|
|
3425
|
-
* @param params Along-route search parameters including the route geometry and detour budget
|
|
3426
|
-
*
|
|
3427
|
-
* @returns Promise resolving to a collection of matching places sorted by detour cost
|
|
3428
|
-
*
|
|
3429
|
-
* @example
|
|
3430
|
-
* ```typescript
|
|
3431
|
-
* // Find coffee shops within a 5-minute detour
|
|
3432
|
-
* const results = await alongRouteSearch({
|
|
3433
|
-
* route: routeResult.features[0].geometry,
|
|
3434
|
-
* maxDetourTimeSeconds: 300,
|
|
3435
|
-
* query: 'coffee',
|
|
3436
|
-
* });
|
|
3437
|
-
*
|
|
3438
|
-
* // EV chargers with a 10-minute budget, sorted by position on route
|
|
3439
|
-
* const chargers = await alongRouteSearch({
|
|
3440
|
-
* route: routeResult.features[0].geometry,
|
|
3441
|
-
* maxDetourTimeSeconds: 600,
|
|
3442
|
-
* filters: { poiCategories: ['CHARGING_LOCATION'] },
|
|
3443
|
-
* sortBy: 'detourOffset',
|
|
3444
|
-
* });
|
|
3445
|
-
* ```
|
|
3446
|
-
*
|
|
3447
|
-
* @see [Along Route Search API Documentation](https://docs.tomtom.com/search-api/documentation/tomtom-orbis-maps/search-service/along-route-search)
|
|
3448
|
-
*
|
|
3449
|
-
* @ignore (exposed via 'search')
|
|
3450
|
-
*/
|
|
3451
|
-
export declare const alongRouteSearch: (params: AlongRouteSearchParams) => Promise<AlongRouteSearchResponse>;
|
|
3452
|
-
//#endregion
|
|
3453
|
-
//#region src/ev-charging-stations-availability/types/apiTypes.d.ts
|
|
3454
|
-
/**
|
|
3455
|
-
* @ignore
|
|
3456
|
-
*/
|
|
3457
|
-
type EVChargingStationResultAPI = {
|
|
3458
|
-
id: string;
|
|
3459
|
-
name: string;
|
|
3460
|
-
position: LatLonAPI;
|
|
3461
|
-
openingHours: OpeningHoursAPI;
|
|
3462
|
-
timeZone: TimeZone;
|
|
3463
|
-
accessType: ChargingStationsAccessType;
|
|
3464
|
-
chargingStations: ChargingStationAPI<Pick<ChargingPoint, 'status'>>[];
|
|
3465
|
-
};
|
|
3466
|
-
/**
|
|
3467
|
-
* @ignore
|
|
3468
|
-
*/
|
|
3469
|
-
type ChargingStationsAvailabilityResponseAPI = {
|
|
3470
|
-
summary: {
|
|
3471
|
-
numResults: number;
|
|
3472
|
-
offset: number;
|
|
3473
|
-
totalResults: number;
|
|
3474
|
-
};
|
|
3475
|
-
results?: EVChargingStationResultAPI[];
|
|
3476
|
-
};
|
|
3477
|
-
//#endregion
|
|
3478
|
-
//#region src/ev-charging-stations-availability/types/evChargingStationsAvailabilityParams.d.ts
|
|
3479
|
-
/**
|
|
3480
|
-
* Parameters for the EV Charging Stations Availability service.
|
|
3481
|
-
*
|
|
3482
|
-
* Fetches real-time availability status of charging points at an EV charging park.
|
|
3483
|
-
*
|
|
3484
|
-
* @remarks
|
|
3485
|
-
* **Key Information Returned:**
|
|
3486
|
-
* - Charging point availability status (Available, Occupied, Reserved, Out of Service)
|
|
3487
|
-
* - Connector details (power ratings, plug types)
|
|
3488
|
-
* - Aggregated availability counts
|
|
3489
|
-
* - Access restrictions
|
|
3490
|
-
* - Opening hours
|
|
3236
|
+
* **Key Information Returned:**
|
|
3237
|
+
* - Charging point availability status (Available, Occupied, Reserved, Out of Service)
|
|
3238
|
+
* - Connector details (power ratings, plug types)
|
|
3239
|
+
* - Aggregated availability counts
|
|
3240
|
+
* - Access restrictions
|
|
3241
|
+
* - Opening hours
|
|
3491
3242
|
*
|
|
3492
3243
|
* @example
|
|
3493
3244
|
* ```typescript
|
|
3494
3245
|
* // Basic usage
|
|
3495
3246
|
* const params: ChargingStationsAvailabilityParams = {
|
|
3496
|
-
*
|
|
3247
|
+
* apiKey: 'your-api-key',
|
|
3497
3248
|
* id: 'charging-park-id-from-search'
|
|
3498
3249
|
* };
|
|
3499
3250
|
*
|
|
@@ -3502,7 +3253,7 @@ type ChargingStationsAvailabilityResponseAPI = {
|
|
|
3502
3253
|
* const chargingParkId = searchResult.features[0].properties.dataSources?.chargingAvailability?.id;
|
|
3503
3254
|
*
|
|
3504
3255
|
* const params: ChargingStationsAvailabilityParams = {
|
|
3505
|
-
*
|
|
3256
|
+
* apiKey: 'your-api-key',
|
|
3506
3257
|
* id: chargingParkId
|
|
3507
3258
|
* };
|
|
3508
3259
|
* ```
|
|
@@ -3534,6 +3285,31 @@ type ChargingStationsAvailabilityParams = CommonServiceParams<URL, ChargingStati
|
|
|
3534
3285
|
*/
|
|
3535
3286
|
id: string;
|
|
3536
3287
|
};
|
|
3288
|
+
/**
|
|
3289
|
+
* Options of {@link getPlacesWithEVAvailability}: the common service parameters forwarded to each
|
|
3290
|
+
* availability request, how many of those requests may be in flight at once, and what to do with
|
|
3291
|
+
* the places left without availability.
|
|
3292
|
+
*
|
|
3293
|
+
* @group EV Charging
|
|
3294
|
+
*/
|
|
3295
|
+
type PlacesWithEVAvailabilityOptions = Omit<ChargingStationsAvailabilityParams, 'id'> & {
|
|
3296
|
+
/**
|
|
3297
|
+
* The most availability requests in flight at once. Values below 1 count as 1.
|
|
3298
|
+
*
|
|
3299
|
+
* @remarks
|
|
3300
|
+
* Each request counts against your API key's QPS (queries per second) limit. The SDK retries a
|
|
3301
|
+
* rate-limited (`429`) request with backoff bounded by the global `retry.timeoutMs`, so a value
|
|
3302
|
+
* above that limit slows the call down; a request still rejected leaves its place with unknown
|
|
3303
|
+
* availability.
|
|
3304
|
+
* @default 1
|
|
3305
|
+
*/
|
|
3306
|
+
maxConcurrentRequests?: number;
|
|
3307
|
+
/**
|
|
3308
|
+
* If true, places with unknown availability are filtered out. Otherwise, they are returned unchanged.
|
|
3309
|
+
* @default false
|
|
3310
|
+
*/
|
|
3311
|
+
excludeIfAvailabilityUnknown?: boolean;
|
|
3312
|
+
};
|
|
3537
3313
|
//#endregion
|
|
3538
3314
|
//#region src/ev-charging-stations-availability/evChargingStationsAvailability.d.ts
|
|
3539
3315
|
/**
|
|
@@ -3626,15 +3402,15 @@ export declare const getPlaceWithEVAvailability: <P extends CommonPlaceProps = C
|
|
|
3626
3402
|
* and merges it into their properties. Non-EV places and EV stations without availability data are returned unchanged.
|
|
3627
3403
|
*
|
|
3628
3404
|
* @remarks
|
|
3629
|
-
* **
|
|
3630
|
-
*
|
|
3631
|
-
*
|
|
3632
|
-
* request, skips the remaining ones and rejects with {@link SDKAbortError}.
|
|
3405
|
+
* **One request per station**, at most `maxConcurrentRequests` at a time — one by default, so a
|
|
3406
|
+
* large result set takes as many round trips in series. A failed request leaves its place with
|
|
3407
|
+
* unknown availability rather than failing the call.
|
|
3633
3408
|
*
|
|
3634
|
-
*
|
|
3635
|
-
*
|
|
3409
|
+
* Pass a `signal` to stop early: aborting it cancels the in-flight requests, skips the remaining
|
|
3410
|
+
* ones and rejects with {@link SDKAbortError}. Needs the same API key access as
|
|
3411
|
+
* {@link evChargingStationsAvailability}.
|
|
3636
3412
|
*
|
|
3637
|
-
* @param places - Collection of places to enhance
|
|
3413
|
+
* @param places - Collection of places to enhance, returned in the same order
|
|
3638
3414
|
* @param options - Configuration options, including common service parameters (e.g. `apiKey`, `onAPIRequest`, `signal`) forwarded to each availability request
|
|
3639
3415
|
*
|
|
3640
3416
|
* @returns Promise resolving to places collection with merged availability
|
|
@@ -3660,16 +3436,10 @@ export declare const getPlaceWithEVAvailability: <P extends CommonPlaceProps = C
|
|
|
3660
3436
|
*
|
|
3661
3437
|
* @group EV Charging
|
|
3662
3438
|
*/
|
|
3663
|
-
export declare function getPlacesWithEVAvailability<P extends CommonPlaceProps = CommonPlaceProps>(places: Places<P>, options
|
|
3439
|
+
export declare function getPlacesWithEVAvailability<P extends CommonPlaceProps = CommonPlaceProps>(places: Places<P>, options: PlacesWithEVAvailabilityOptions & {
|
|
3664
3440
|
excludeIfAvailabilityUnknown: true;
|
|
3665
3441
|
}): Promise<Places<EVChargingStationWithAvailabilityPlaceProps>>;
|
|
3666
|
-
export declare function getPlacesWithEVAvailability<P extends CommonPlaceProps = CommonPlaceProps>(places: Places<P>, options?:
|
|
3667
|
-
/**
|
|
3668
|
-
* If true, places with unknown availability will be filtered out. Otherwise, they will be included.
|
|
3669
|
-
* @default false
|
|
3670
|
-
*/
|
|
3671
|
-
excludeIfAvailabilityUnknown?: false;
|
|
3672
|
-
}): Promise<Places<P | EVChargingStationWithAvailabilityPlaceProps>>;
|
|
3442
|
+
export declare function getPlacesWithEVAvailability<P extends CommonPlaceProps = CommonPlaceProps>(places: Places<P>, options?: PlacesWithEVAvailabilityOptions): Promise<Places<P | EVChargingStationWithAvailabilityPlaceProps>>;
|
|
3673
3443
|
/**
|
|
3674
3444
|
* Type guard to check if a ChargingPark has availability data.
|
|
3675
3445
|
*
|
|
@@ -4122,372 +3892,77 @@ type GeometryPlaceParams = CommonServiceParamsWithZoom & {
|
|
|
4122
3892
|
* };
|
|
4123
3893
|
*
|
|
4124
3894
|
* // Using places
|
|
4125
|
-
* const placeParams: GeometryParams = {
|
|
4126
|
-
* key: 'your-api-key',
|
|
4127
|
-
* geometries: searchResults
|
|
4128
|
-
* };
|
|
4129
|
-
* ```
|
|
4130
|
-
*
|
|
4131
|
-
* @group Geometry
|
|
4132
|
-
*/
|
|
4133
|
-
type GeometryParams = GeometryDataParams | GeometryPlaceParams;
|
|
4134
|
-
//#endregion
|
|
4135
|
-
//#region src/geometry-data/geometryData.d.ts
|
|
4136
|
-
/**
|
|
4137
|
-
* Retrieve polygon geometries representing geographic area boundaries.
|
|
4138
|
-
*
|
|
4139
|
-
* The Geometry Data service returns coordinate sets that define the outlines of
|
|
4140
|
-
* geographic areas such as cities, countries, administrative regions, or POI footprints.
|
|
4141
|
-
* These polygons enable visualization of area boundaries, spatial analysis, and
|
|
4142
|
-
* geofencing applications.
|
|
4143
|
-
*
|
|
4144
|
-
* @remarks
|
|
4145
|
-
* Key features:
|
|
4146
|
-
* - **Batch requests**: Fetch up to 20 geometries in a single call
|
|
4147
|
-
* - **Multiple scales**: From countries down to building footprints
|
|
4148
|
-
* - **Place integration**: Can merge with place data for enriched results
|
|
4149
|
-
* - **Standard GeoJSON**: Returns standard Polygon/MultiPolygon features
|
|
4150
|
-
*
|
|
4151
|
-
* Common use cases:
|
|
4152
|
-
* - Display city or country boundaries on maps
|
|
4153
|
-
* - Show POI building footprints
|
|
4154
|
-
* - Create geofences for spatial queries
|
|
4155
|
-
* - Visualize administrative divisions
|
|
4156
|
-
* - Calculate areas and spatial relationships
|
|
4157
|
-
*
|
|
4158
|
-
* Returns polygons, not places. Pass the result to `GeometriesModule.show()`,
|
|
4159
|
-
* not `PlacesModule.show()`. The `geometryId` comes from a prior search result.
|
|
4160
|
-
*
|
|
4161
|
-
* @param params - Geometry parameters with IDs or places to fetch boundaries for
|
|
4162
|
-
*
|
|
4163
|
-
* @returns Promise resolving to polygon features representing area boundaries
|
|
4164
|
-
*
|
|
4165
|
-
* @example
|
|
4166
|
-
* ```typescript
|
|
4167
|
-
* // Fetch geometry by ID
|
|
4168
|
-
* const cityBoundary = await geometryData({
|
|
4169
|
-
* key: 'your-api-key',
|
|
4170
|
-
* geometries: ['geometry-id-123']
|
|
4171
|
-
* });
|
|
4172
|
-
*
|
|
4173
|
-
* // Fetch multiple geometries at once
|
|
4174
|
-
* const boundaries = await geometryData({
|
|
4175
|
-
* key: 'your-api-key',
|
|
4176
|
-
* geometries: ['country-id-1', 'city-id-2', 'poi-id-3']
|
|
4177
|
-
* });
|
|
4178
|
-
*
|
|
4179
|
-
* // Fetch and merge with place data
|
|
4180
|
-
* const searchResults = await discoverPlaces({ query: 'Amsterdam' });
|
|
4181
|
-
* const withBoundaries = await geometryData({
|
|
4182
|
-
* key: 'your-api-key',
|
|
4183
|
-
* geometries: searchResults // Places with geometry IDs
|
|
4184
|
-
* });
|
|
4185
|
-
* // Result includes both place properties and polygon boundaries
|
|
4186
|
-
* ```
|
|
4187
|
-
*
|
|
4188
|
-
* @see [Geometry Data API Documentation](https://docs.tomtom.com/search-api/documentation/additional-data-service/additional-data)
|
|
4189
|
-
* @see [Places Quickstart Guide](https://docs.tomtom.com/maps-sdk-js/guides/services/places/quickstart)
|
|
4190
|
-
* @see [Geometry Data Guide](https://docs.tomtom.com/maps-sdk-js/guides/services/places/geometry-data)
|
|
4191
|
-
*
|
|
4192
|
-
* @group Geometry
|
|
4193
|
-
*/
|
|
4194
|
-
export declare function geometryData(params: GeometryDataParams): Promise<PolygonFeatures>;
|
|
4195
|
-
export declare function geometryData(params: GeometryPlaceParams): Promise<PolygonFeatures<CommonPlaceProps>>;
|
|
4196
|
-
//#endregion
|
|
4197
|
-
//#region src/geometry-search/types/geometrySearchRequestAPI.d.ts
|
|
4198
|
-
/**
|
|
4199
|
-
* @ignore
|
|
4200
|
-
*/
|
|
4201
|
-
type PolygonAPI = {
|
|
4202
|
-
type: 'POLYGON';
|
|
4203
|
-
vertices: string[];
|
|
4204
|
-
};
|
|
4205
|
-
/**
|
|
4206
|
-
* @ignore
|
|
4207
|
-
*/
|
|
4208
|
-
type CircleAPI = {
|
|
4209
|
-
type: 'CIRCLE';
|
|
4210
|
-
position: string;
|
|
4211
|
-
radius: number;
|
|
4212
|
-
};
|
|
4213
|
-
/**
|
|
4214
|
-
* @ignore
|
|
4215
|
-
*/
|
|
4216
|
-
type GeometryAPI = PolygonAPI | CircleAPI;
|
|
4217
|
-
/**
|
|
4218
|
-
* @ignore
|
|
4219
|
-
*/
|
|
4220
|
-
type GeometrySearchPayloadAPI = {
|
|
4221
|
-
geometryList: GeometryAPI[];
|
|
4222
|
-
};
|
|
4223
|
-
/**
|
|
4224
|
-
* Geometry search request type.
|
|
4225
|
-
* @ignore
|
|
4226
|
-
*/
|
|
4227
|
-
type GeometrySearchRequestAPI = PostObject<GeometrySearchPayloadAPI>;
|
|
4228
|
-
//#endregion
|
|
4229
|
-
//#region src/geometry-search/types/geometrySearchResponseAPI.d.ts
|
|
4230
|
-
/**
|
|
4231
|
-
* @ignore
|
|
4232
|
-
*/
|
|
4233
|
-
type GeometrySearchResultAPI = CommonSearchPlaceResultAPI;
|
|
4234
|
-
/**
|
|
4235
|
-
* @ignore
|
|
4236
|
-
*/
|
|
4237
|
-
type GeometrySearchResponseAPI = {
|
|
4238
|
-
/**
|
|
4239
|
-
* Summary information about the search that was performed.
|
|
4240
|
-
*/
|
|
4241
|
-
summary: SummaryAPI$1;
|
|
4242
|
-
/**
|
|
4243
|
-
* The result list, sorted in descending order by score.
|
|
4244
|
-
*/
|
|
4245
|
-
results: GeometrySearchResultAPI[];
|
|
4246
|
-
};
|
|
4247
|
-
//#endregion
|
|
4248
|
-
//#region src/geometry-search/types/geometrySearchParams.d.ts
|
|
4249
|
-
/**
|
|
4250
|
-
* Parameters for searching places within specific geographic areas (geometry search).
|
|
4251
|
-
*
|
|
4252
|
-
* Geometry search finds places that fall within or near the boundaries of one or more
|
|
4253
|
-
* geometric shapes (polygons, circles, or multipolygons). This enables area-based searches
|
|
4254
|
-
* like "restaurants in this neighborhood" or "hotels within these city boundaries".
|
|
4255
|
-
*
|
|
4256
|
-
* @remarks
|
|
4257
|
-
* Pass these to {@link discoverPlaces}, which selects the request variant from the params it is given:
|
|
4258
|
-
* a `route` property dispatches to along-route search, a `geometries` property to geometry search,
|
|
4259
|
-
* and neither to fuzzy search. There is no separate exported function for geometry search.
|
|
4260
|
-
*
|
|
4261
|
-
* **Key Features:**
|
|
4262
|
-
* - Search within multiple geometries simultaneously
|
|
4263
|
-
* - Supports polygons, multipolygons, and circles
|
|
4264
|
-
* - Can use geometries from previous search results
|
|
4265
|
-
* - Combines with text queries for filtered results
|
|
4266
|
-
*
|
|
4267
|
-
* **Use Cases:**
|
|
4268
|
-
* - Find POIs within administrative boundaries
|
|
4269
|
-
* - Search within custom drawn areas on map
|
|
4270
|
-
* - Filter results to specific neighborhoods or regions
|
|
4271
|
-
* - Proximity searches using circles
|
|
4272
|
-
*
|
|
4273
|
-
* @example
|
|
4274
|
-
* ```typescript
|
|
4275
|
-
* // Search within a circular area
|
|
4276
|
-
* const results = await discoverPlaces({
|
|
4277
|
-
* key: 'your-api-key',
|
|
4278
|
-
* query: 'restaurant',
|
|
4279
|
-
* geometries: [{
|
|
4280
|
-
* type: 'Circle',
|
|
4281
|
-
* coordinates: [4.9041, 52.3676],
|
|
4282
|
-
* radius: 1000 // meters
|
|
4283
|
-
* }]
|
|
4284
|
-
* });
|
|
4285
|
-
* ```
|
|
4286
|
-
*
|
|
4287
|
-
* @example
|
|
4288
|
-
* ```typescript
|
|
4289
|
-
* // Search within a polygon
|
|
4290
|
-
* const results = await discoverPlaces({
|
|
4291
|
-
* key: 'your-api-key',
|
|
4292
|
-
* query: 'parking',
|
|
4293
|
-
* geometries: [{
|
|
4294
|
-
* type: 'Polygon',
|
|
4295
|
-
* coordinates: [[
|
|
4296
|
-
* [4.88, 52.36],
|
|
4297
|
-
* [4.90, 52.36],
|
|
4298
|
-
* [4.90, 52.38],
|
|
4299
|
-
* [4.88, 52.38],
|
|
4300
|
-
* [4.88, 52.36]
|
|
4301
|
-
* ]]
|
|
4302
|
-
* }]
|
|
4303
|
-
* });
|
|
4304
|
-
* ```
|
|
4305
|
-
*
|
|
4306
|
-
* @group Places Search
|
|
4307
|
-
*/
|
|
4308
|
-
type GeometrySearchParams = CommonSearchParams<GeometrySearchRequestAPI, GeometrySearchResponseAPI> & {
|
|
4309
|
-
/**
|
|
4310
|
-
* List of geometries to search within.
|
|
4311
|
-
*
|
|
4312
|
-
* Can be a mix of polygons, multipolygons, circles, or geometry feature collections
|
|
4313
|
-
* from previous search results. Places that fall within or near these geometries
|
|
4314
|
-
* will be returned.
|
|
4315
|
-
*
|
|
4316
|
-
* @remarks
|
|
4317
|
-
* Also referred to as "geometryList" in API documentation.
|
|
4318
|
-
*
|
|
4319
|
-
* **Supported Types:**
|
|
4320
|
-
* - {@link Circle} - Circular search area with radius
|
|
4321
|
-
* - `Polygon` - Custom polygon boundary (GeoJSON)
|
|
4322
|
-
* - `MultiPolygon` - Multiple polygon areas (GeoJSON)
|
|
4323
|
-
* - `PolygonFeatures` - Feature collection with polygon geometries
|
|
4324
|
-
*
|
|
4325
|
-
* @example
|
|
4326
|
-
* ```typescript
|
|
4327
|
-
* // Multiple geometries
|
|
4328
|
-
* geometries: [
|
|
4329
|
-
* { type: 'Circle', coordinates: [4.9, 52.3], radius: 500 },
|
|
4330
|
-
* { type: 'Polygon', coordinates: [[...]] }
|
|
4331
|
-
* ]
|
|
4332
|
-
* ```
|
|
4333
|
-
*/
|
|
4334
|
-
geometries: SearchGeometryInput[];
|
|
4335
|
-
};
|
|
4336
|
-
/**
|
|
4337
|
-
* Circular search geometry (non-standard GeoJSON extension).
|
|
4338
|
-
*
|
|
4339
|
-
* Defines a circular search area by center point and radius. This is a convenience
|
|
4340
|
-
* type since standard GeoJSON does not include circles.
|
|
4341
|
-
*
|
|
4342
|
-
* @remarks
|
|
4343
|
-
* **Note:** This is not part of the official GeoJSON specification. It's a Maps SDK
|
|
4344
|
-
* extension that gets converted to the appropriate API format internally.
|
|
4345
|
-
*
|
|
4346
|
-
* **Coordinate Format:** `[longitude, latitude]` (standard GeoJSON order)
|
|
4347
|
-
*
|
|
4348
|
-
* @example
|
|
4349
|
-
* ```typescript
|
|
4350
|
-
* const circle: Circle = {
|
|
4351
|
-
* type: 'Circle',
|
|
4352
|
-
* coordinates: [4.9041, 52.3676], // Amsterdam center
|
|
4353
|
-
* radius: 2000 // 2km radius
|
|
4354
|
-
* };
|
|
4355
|
-
* ```
|
|
4356
|
-
*
|
|
4357
|
-
* @group Places Search
|
|
4358
|
-
*/
|
|
4359
|
-
interface Circle {
|
|
4360
|
-
/**
|
|
4361
|
-
* Geometry type identifier.
|
|
4362
|
-
* Must be the literal string `'Circle'`.
|
|
4363
|
-
*/
|
|
4364
|
-
type: 'Circle';
|
|
4365
|
-
/**
|
|
4366
|
-
* Center point of the circle in `[longitude, latitude]` format.
|
|
4367
|
-
*
|
|
4368
|
-
* @example [4.9041, 52.3676]
|
|
4369
|
-
*/
|
|
4370
|
-
coordinates: Position;
|
|
4371
|
-
/**
|
|
4372
|
-
* Radius of the circle in meters.
|
|
4373
|
-
*
|
|
4374
|
-
* @remarks
|
|
4375
|
-
* Defines the search area around the center point. Places within or near
|
|
4376
|
-
* this radius will be included in results.
|
|
4377
|
-
*
|
|
4378
|
-
* @example 1000 // 1 kilometer
|
|
4379
|
-
*/
|
|
4380
|
-
radius: number;
|
|
4381
|
-
}
|
|
4382
|
-
/**
|
|
4383
|
-
* Union type of all supported geometry search input formats.
|
|
4384
|
-
*
|
|
4385
|
-
* Accepts standard GeoJSON polygons/multipolygons, custom circles, or polygon
|
|
4386
|
-
* feature collections (such as those returned from previous searches or the
|
|
4387
|
-
* geometry data service).
|
|
4388
|
-
*
|
|
4389
|
-
* @remarks
|
|
4390
|
-
* **Flexibility:**
|
|
4391
|
-
* - Mix different geometry types in a single search
|
|
4392
|
-
* - Use results from {@link geometryData} directly
|
|
4393
|
-
* - Pass search results with geometries as boundaries
|
|
4394
|
-
* - Define custom polygons for precise area searches
|
|
4395
|
-
*
|
|
4396
|
-
* @example
|
|
4397
|
-
* ```typescript
|
|
4398
|
-
* // Using different geometry types
|
|
4399
|
-
* const geometries: SearchGeometryInput[] = [
|
|
4400
|
-
* // Circle
|
|
4401
|
-
* { type: 'Circle', coordinates: [4.9, 52.3], radius: 1000 },
|
|
4402
|
-
*
|
|
4403
|
-
* // Polygon
|
|
4404
|
-
* {
|
|
4405
|
-
* type: 'Polygon',
|
|
4406
|
-
* coordinates: [[
|
|
4407
|
-
* [4.88, 52.36], [4.90, 52.36], [4.90, 52.38], [4.88, 52.38], [4.88, 52.36]
|
|
4408
|
-
* ]]
|
|
4409
|
-
* },
|
|
4410
|
-
*
|
|
4411
|
-
* // From previous geometry data call
|
|
4412
|
-
* cityBoundaries // PolygonFeatures
|
|
4413
|
-
* ];
|
|
4414
|
-
* ```
|
|
4415
|
-
*
|
|
4416
|
-
* @group Places Search
|
|
4417
|
-
*/
|
|
4418
|
-
type SearchGeometryInput = Polygon | MultiPolygon | Circle | PolygonFeatures;
|
|
4419
|
-
//#endregion
|
|
4420
|
-
//#region src/geometry-search/types/geometrySearchResponse.d.ts
|
|
4421
|
-
/**
|
|
4422
|
-
* Response from a geometry search query.
|
|
4423
|
-
*
|
|
4424
|
-
* Contains places found within or along a specified geometry (polygon or circle),
|
|
4425
|
-
* along with summary information about the search results.
|
|
4426
|
-
*
|
|
4427
|
-
* @remarks
|
|
4428
|
-
* **Use Cases:**
|
|
4429
|
-
* - Find POIs within a delivery zone
|
|
4430
|
-
* - Search along a route corridor
|
|
4431
|
-
* - Discover places within a custom boundary
|
|
4432
|
-
* - Find facilities within a service area
|
|
4433
|
-
* - Search within administrative boundaries
|
|
4434
|
-
*
|
|
4435
|
-
* **Supported Geometries:**
|
|
4436
|
-
* - Polygon: Search within a multi-sided boundary
|
|
4437
|
-
* - Circle: Search within a radius around a point
|
|
4438
|
-
*
|
|
4439
|
-
* @example
|
|
4440
|
-
* ```typescript
|
|
4441
|
-
* const response: GeometrySearchResponse = {
|
|
4442
|
-
* type: 'FeatureCollection',
|
|
4443
|
-
* features: [
|
|
4444
|
-
* {
|
|
4445
|
-
* type: 'Feature',
|
|
4446
|
-
* geometry: { type: 'Point', coordinates: [4.9, 52.3] },
|
|
4447
|
-
* properties: {
|
|
4448
|
-
* type: 'POI',
|
|
4449
|
-
* poi: { name: 'Restaurant', categories: ['RESTAURANT'] },
|
|
4450
|
-
* address: { streetName: 'Main Street' },
|
|
4451
|
-
* score: 0.95
|
|
4452
|
-
* }
|
|
4453
|
-
* }
|
|
4454
|
-
* ],
|
|
4455
|
-
* summary: {
|
|
4456
|
-
* numResults: 1,
|
|
4457
|
-
* query: 'restaurant',
|
|
4458
|
-
* queryTime: 45
|
|
4459
|
-
* }
|
|
3895
|
+
* const placeParams: GeometryParams = {
|
|
3896
|
+
* key: 'your-api-key',
|
|
3897
|
+
* geometries: searchResults
|
|
4460
3898
|
* };
|
|
4461
3899
|
* ```
|
|
4462
3900
|
*
|
|
4463
|
-
* @group Geometry
|
|
3901
|
+
* @group Geometry
|
|
4464
3902
|
*/
|
|
4465
|
-
type
|
|
3903
|
+
type GeometryParams = GeometryDataParams | GeometryPlaceParams;
|
|
3904
|
+
//#endregion
|
|
3905
|
+
//#region src/geometry-data/geometryData.d.ts
|
|
4466
3906
|
/**
|
|
4467
|
-
*
|
|
3907
|
+
* Retrieve polygon geometries representing geographic area boundaries.
|
|
4468
3908
|
*
|
|
4469
|
-
*
|
|
3909
|
+
* The Geometry Data service returns coordinate sets that define the outlines of
|
|
3910
|
+
* geographic areas such as cities, countries, administrative regions, or POI footprints.
|
|
3911
|
+
* These polygons enable visualization of area boundaries, spatial analysis, and
|
|
3912
|
+
* geofencing applications.
|
|
4470
3913
|
*
|
|
4471
3914
|
* @remarks
|
|
4472
|
-
*
|
|
4473
|
-
* -
|
|
4474
|
-
* -
|
|
4475
|
-
* -
|
|
4476
|
-
* -
|
|
3915
|
+
* Key features:
|
|
3916
|
+
* - **Batch requests**: Fetch up to 20 geometries in a single call
|
|
3917
|
+
* - **Multiple scales**: From countries down to building footprints
|
|
3918
|
+
* - **Place integration**: Can merge with place data for enriched results
|
|
3919
|
+
* - **Standard GeoJSON**: Returns standard Polygon/MultiPolygon features
|
|
3920
|
+
*
|
|
3921
|
+
* Common use cases:
|
|
3922
|
+
* - Display city or country boundaries on maps
|
|
3923
|
+
* - Show POI building footprints
|
|
3924
|
+
* - Create geofences for spatial queries
|
|
3925
|
+
* - Visualize administrative divisions
|
|
3926
|
+
* - Calculate areas and spatial relationships
|
|
3927
|
+
*
|
|
3928
|
+
* Returns polygons, not places. Pass the result to `GeometriesModule.show()`,
|
|
3929
|
+
* not `PlacesModule.show()`. The `geometryId` comes from a prior search result.
|
|
3930
|
+
*
|
|
3931
|
+
* @param params - Geometry parameters with IDs or places to fetch boundaries for
|
|
3932
|
+
*
|
|
3933
|
+
* @returns Promise resolving to polygon features representing area boundaries
|
|
4477
3934
|
*
|
|
4478
3935
|
* @example
|
|
4479
3936
|
* ```typescript
|
|
4480
|
-
*
|
|
4481
|
-
*
|
|
4482
|
-
*
|
|
4483
|
-
*
|
|
4484
|
-
*
|
|
4485
|
-
*
|
|
3937
|
+
* // Fetch geometry by ID
|
|
3938
|
+
* const cityBoundary = await geometryData({
|
|
3939
|
+
* key: 'your-api-key',
|
|
3940
|
+
* geometries: ['geometry-id-123']
|
|
3941
|
+
* });
|
|
3942
|
+
*
|
|
3943
|
+
* // Fetch multiple geometries at once
|
|
3944
|
+
* const boundaries = await geometryData({
|
|
3945
|
+
* key: 'your-api-key',
|
|
3946
|
+
* geometries: ['country-id-1', 'city-id-2', 'poi-id-3']
|
|
3947
|
+
* });
|
|
3948
|
+
*
|
|
3949
|
+
* // Fetch and merge with place data
|
|
3950
|
+
* const searchResults = await discoverPlaces({ query: 'Amsterdam' });
|
|
3951
|
+
* const withBoundaries = await geometryData({
|
|
3952
|
+
* key: 'your-api-key',
|
|
3953
|
+
* geometries: searchResults // Places with geometry IDs
|
|
3954
|
+
* });
|
|
3955
|
+
* // Result includes both place properties and polygon boundaries
|
|
4486
3956
|
* ```
|
|
4487
3957
|
*
|
|
4488
|
-
* @
|
|
3958
|
+
* @see [Geometry Data API Documentation](https://docs.tomtom.com/search-api/documentation/additional-data-service/additional-data)
|
|
3959
|
+
* @see [Places Quickstart Guide](https://docs.tomtom.com/maps-sdk-js/guides/services/places/quickstart)
|
|
3960
|
+
* @see [Geometry Data Guide](https://docs.tomtom.com/maps-sdk-js/guides/services/places/geometry-data)
|
|
3961
|
+
*
|
|
3962
|
+
* @group Geometry
|
|
4489
3963
|
*/
|
|
4490
|
-
|
|
3964
|
+
export declare function geometryData(params: GeometryDataParams): Promise<PolygonFeatures>;
|
|
3965
|
+
export declare function geometryData(params: GeometryPlaceParams): Promise<PolygonFeatures<CommonPlaceProps>>;
|
|
4491
3966
|
//#endregion
|
|
4492
3967
|
//#region src/place-details/types/placeDetailsResponseAPI.d.ts
|
|
4493
3968
|
/**
|
|
@@ -4536,34 +4011,10 @@ type PlaceDetailsOptionalParams = {
|
|
|
4536
4011
|
*/
|
|
4537
4012
|
mapcodes?: MapcodeType[];
|
|
4538
4013
|
/**
|
|
4539
|
-
* Geopolitical view
|
|
4540
|
-
*
|
|
4541
|
-
* @remarks
|
|
4542
|
-
* Determines how disputed territories are handled in the response.
|
|
4543
|
-
*
|
|
4544
|
-
* **Available Views:**
|
|
4545
|
-
* - `Unified`: International view (default)
|
|
4546
|
-
* - `AR`: Argentina
|
|
4547
|
-
* - `IN`: India
|
|
4548
|
-
* - `PK`: Pakistan
|
|
4549
|
-
* - `IL`: Israel
|
|
4550
|
-
* - `MA`: Morocco
|
|
4551
|
-
* - `RU`: Russia
|
|
4552
|
-
* - `TR`: Turkey
|
|
4553
|
-
* - `CN`: China
|
|
4554
|
-
* - `TW`: Taiwan
|
|
4555
|
-
* - `RS`: Serbia
|
|
4556
|
-
*
|
|
4557
|
-
* `MA` is accepted by this type but is not supported by the current backend.
|
|
4558
|
-
*
|
|
4559
|
-
* @default 'Unified'
|
|
4560
|
-
*
|
|
4561
|
-
* @example
|
|
4562
|
-
* ```typescript
|
|
4563
|
-
* view: 'IN' // Indian geopolitical view
|
|
4564
|
-
* ```
|
|
4014
|
+
* Geopolitical view of the result, overriding the global one: which country a place in a
|
|
4015
|
+
* disputed territory belongs to. See {@link GeopoliticalView}.
|
|
4565
4016
|
*/
|
|
4566
|
-
|
|
4017
|
+
geopoliticalView?: GeopoliticalView;
|
|
4567
4018
|
/**
|
|
4568
4019
|
* Include opening hours information in the response.
|
|
4569
4020
|
*
|
|
@@ -4778,18 +4229,17 @@ type PoiCategoriesResponseAPI = {
|
|
|
4778
4229
|
*/
|
|
4779
4230
|
type POICategoriesParams = CommonServiceParams<GetObject, PoiCategoriesResponseAPI> & {
|
|
4780
4231
|
/**
|
|
4781
|
-
*
|
|
4232
|
+
* Keywords matched client-side against every category's name and synonyms, strongest match first.
|
|
4782
4233
|
*
|
|
4783
|
-
*
|
|
4784
|
-
*
|
|
4785
|
-
*
|
|
4234
|
+
* - A category code (`'CAFE'`) matches that category only. Any other filter ranks an exact name or
|
|
4235
|
+
* synonym first, then a name or synonym the filter starts, one holding it as a later word, and
|
|
4236
|
+
* last one holding it as a substring. Each filter keeps only the matches ranking close to its best.
|
|
4237
|
+
* - Case, accents and punctuation are ignored, and spaces too in the substring tiers: `'bar'` finds
|
|
4238
|
+
* Bar but not Nail Salon ("Nail Bar"), and `'bookstore'` finds Book Shop ("Book Store").
|
|
4239
|
+
* - Several filters merge round-robin, so each filter's best match comes first, one entry per `code`.
|
|
4240
|
+
* A category ranking below its matched parent is left out, as the parent already covers it.
|
|
4786
4241
|
*
|
|
4787
|
-
*
|
|
4788
|
-
* or `'fitnessandgym'`. `'italian restaurant'` normalizes to `'italianrestaurant'` and
|
|
4789
|
-
* matches `'Italian Restaurant'` but not `'Mexican Restaurant'`.
|
|
4790
|
-
*
|
|
4791
|
-
* Results from all filter strings are merged and deduplicated by `code`.
|
|
4792
|
-
* Omit to return all categories.
|
|
4242
|
+
* A blank filter matches nothing. Omit `filters` to return all categories.
|
|
4793
4243
|
*
|
|
4794
4244
|
* @example
|
|
4795
4245
|
* ```ts
|
|
@@ -4805,6 +4255,13 @@ type POICategoriesParams = CommonServiceParams<GetObject, PoiCategoriesResponseA
|
|
|
4805
4255
|
*/
|
|
4806
4256
|
filters?: string[];
|
|
4807
4257
|
};
|
|
4258
|
+
/**
|
|
4259
|
+
* Parameters for `resolvePOICategories`: the {@link POICategoriesParams}, with the words to resolve
|
|
4260
|
+
* required in `filters`.
|
|
4261
|
+
*
|
|
4262
|
+
* @group POI Categories
|
|
4263
|
+
*/
|
|
4264
|
+
type ResolvePOICategoriesParams = POICategoriesParams & Required<Pick<POICategoriesParams, 'filters'>>;
|
|
4808
4265
|
//#endregion
|
|
4809
4266
|
//#region src/poi-categories/types/poiCategoriesResponse.d.ts
|
|
4810
4267
|
/**
|
|
@@ -4821,11 +4278,7 @@ type POICategoryResult = {
|
|
|
4821
4278
|
*/
|
|
4822
4279
|
code: POICategory;
|
|
4823
4280
|
/**
|
|
4824
|
-
* Codes of sub-categories
|
|
4825
|
-
*
|
|
4826
|
-
* Only contains codes present in the filtered result set — not the full list of
|
|
4827
|
-
* possible sub-categories — so you can understand the category hierarchy without
|
|
4828
|
-
* additional lookups.
|
|
4281
|
+
* Codes of this category's sub-categories, whether or not they matched the `filters`.
|
|
4829
4282
|
*
|
|
4830
4283
|
* Use these values directly in a search's `filters.poiCategories`.
|
|
4831
4284
|
*/
|
|
@@ -4847,6 +4300,17 @@ type POICategoryResult = {
|
|
|
4847
4300
|
type POICategoriesResponse = {
|
|
4848
4301
|
poiCategories: POICategoryResult[];
|
|
4849
4302
|
};
|
|
4303
|
+
/**
|
|
4304
|
+
* What `resolvePOICategories` returns.
|
|
4305
|
+
*
|
|
4306
|
+
* @group POI Categories
|
|
4307
|
+
*/
|
|
4308
|
+
type ResolvedPOICategories = {
|
|
4309
|
+
/** The codes for a search's `filters.poiCategories`, best first. Empty when no filter matched. */
|
|
4310
|
+
poiCategories: POICategory[];
|
|
4311
|
+
/** The filters no category name, synonym or code matched, as given. */
|
|
4312
|
+
unmatched: string[];
|
|
4313
|
+
};
|
|
4850
4314
|
//#endregion
|
|
4851
4315
|
//#region src/poi-categories/poiCategories.d.ts
|
|
4852
4316
|
/**
|
|
@@ -4854,7 +4318,7 @@ type POICategoriesResponse = {
|
|
|
4854
4318
|
*
|
|
4855
4319
|
* The returned `code` values (`POICategory`) serve two purposes:
|
|
4856
4320
|
* - Pass to `discoverPlaces({ filters: { poiCategories } })` to filter search results by category.
|
|
4857
|
-
* - Pass
|
|
4321
|
+
* - Pass as `POIsModule` `filters.categories` to filter the map's built-in POI icons.
|
|
4858
4322
|
* Generic parent codes (e.g. `'RESTAURANT'`) are supported there; overly specific child
|
|
4859
4323
|
* codes (e.g. `'ITALIAN_RESTAURANT'`) are not — use a parent or a `POICategoryGroup` instead.
|
|
4860
4324
|
*
|
|
@@ -4868,7 +4332,7 @@ type POICategoriesResponse = {
|
|
|
4868
4332
|
* // All categories
|
|
4869
4333
|
* const { poiCategories: all } = await getPOICategories();
|
|
4870
4334
|
*
|
|
4871
|
-
* // Filtered by keyword,
|
|
4335
|
+
* // Filtered by keyword, best match first
|
|
4872
4336
|
* const { poiCategories: gyms } = await getPOICategories({ filters: ['gym'] });
|
|
4873
4337
|
* gyms.forEach(c => console.log(c.code, c.name, c.childCategoryCodes));
|
|
4874
4338
|
* ```
|
|
@@ -4881,7 +4345,7 @@ export declare const getPOICategories: (params?: POICategoriesParams) => Promise
|
|
|
4881
4345
|
*
|
|
4882
4346
|
* The returned codes serve two purposes:
|
|
4883
4347
|
* - Pass to `discoverPlaces({ filters: { poiCategories } })` to filter search results by category.
|
|
4884
|
-
* - Pass
|
|
4348
|
+
* - Pass as `POIsModule` `filters.categories` to filter the map's built-in POI icons.
|
|
4885
4349
|
* Generic parent codes (e.g. `'RESTAURANT'`) are supported there; overly specific child
|
|
4886
4350
|
* codes (e.g. `'ITALIAN_RESTAURANT'`) are not — use a parent or a `POICategoryGroup` instead.
|
|
4887
4351
|
*
|
|
@@ -4901,6 +4365,26 @@ export declare const getPOICategories: (params?: POICategoriesParams) => Promise
|
|
|
4901
4365
|
* @group POI Categories
|
|
4902
4366
|
*/
|
|
4903
4367
|
export declare const getPOICategoryCodes: (params?: POICategoriesParams) => Promise<POICategory[]>;
|
|
4368
|
+
/**
|
|
4369
|
+
* Resolves category words, or codes, to the POI categories of one search, and reports the words that
|
|
4370
|
+
* match none.
|
|
4371
|
+
*
|
|
4372
|
+
* @remarks
|
|
4373
|
+
* Each filter matches as on {@link getPOICategories}, so a code stays itself. Each keeps its best three
|
|
4374
|
+
* codes, merged round-robin and capped at the 10 a search accepts. Codes alone skip the catalog request.
|
|
4375
|
+
* `discoverPlaces` runs the same lookup for `filters.poiCategoryQuery`: call this first to decide what to
|
|
4376
|
+
* do about the words that match nothing. To browse every close match instead, use {@link getPOICategories}.
|
|
4377
|
+
*
|
|
4378
|
+
* @example
|
|
4379
|
+
* ```typescript
|
|
4380
|
+
* const { poiCategories, unmatched } = await resolvePOICategories({ filters: ['café', 'PHARMACY', 'xyzzy'] });
|
|
4381
|
+
* // unmatched: ['xyzzy']
|
|
4382
|
+
* const places = await discoverPlaces({ filters: { poiCategories }, geoBias: { position: [4.9041, 52.3676] } });
|
|
4383
|
+
* ```
|
|
4384
|
+
*
|
|
4385
|
+
* @group POI Categories
|
|
4386
|
+
*/
|
|
4387
|
+
export declare const resolvePOICategories: (parameters: ResolvePOICategoriesParams) => Promise<ResolvedPOICategories>;
|
|
4904
4388
|
//#endregion
|
|
4905
4389
|
//#region src/shared/types/apiRoutingRequestTypes.d.ts
|
|
4906
4390
|
/**
|
|
@@ -5290,104 +4774,6 @@ type ReachableRangeResponseAPI = {
|
|
|
5290
4774
|
};
|
|
5291
4775
|
//#endregion
|
|
5292
4776
|
//#region src/reachable-range/types/reachableRangeParams.d.ts
|
|
5293
|
-
export declare const budgetTypes: readonly ["timeMinutes", "remainingChargePCT", "spentChargePCT", "spentFuelLiters", "distanceKM"];
|
|
5294
|
-
/**
|
|
5295
|
-
* Type of budget constraint for reachable range calculation.
|
|
5296
|
-
*
|
|
5297
|
-
* @remarks
|
|
5298
|
-
* **Budget Types:**
|
|
5299
|
-
* - `timeMinutes`: Travel time in minutes (isochrone)
|
|
5300
|
-
* - `distanceKM`: Travel distance in kilometers (isodistance)
|
|
5301
|
-
* - `remainingChargePCT`: Remaining battery charge in percentage (EV)
|
|
5302
|
-
* - `spentChargePCT`: Battery charge consumed in percentage (EV)
|
|
5303
|
-
* - `spentFuelLiters`: Fuel consumed in liters (combustion)
|
|
5304
|
-
*
|
|
5305
|
-
* Both charge budgets are converted against the battery capacity, so they need an electric
|
|
5306
|
-
* `vehicle` with `model.engine.charging.maxChargeKWH`; `remainingChargePCT` also needs its current
|
|
5307
|
-
* charge in `vehicle.state`.
|
|
5308
|
-
*
|
|
5309
|
-
* **Common Use Cases:**
|
|
5310
|
-
* - Time: "Where can I reach in 30 minutes?"
|
|
5311
|
-
* - Distance: "What's within 10 km?"
|
|
5312
|
-
* - EV charge: "How far can I go on 50% battery?"
|
|
5313
|
-
* - Fuel: "Range with 20 liters of fuel"
|
|
5314
|
-
*
|
|
5315
|
-
* @example
|
|
5316
|
-
* ```typescript
|
|
5317
|
-
* const timeType: BudgetType = 'timeMinutes';
|
|
5318
|
-
* const distanceType: BudgetType = 'distanceKM';
|
|
5319
|
-
* const evType: BudgetType = 'remainingChargePCT';
|
|
5320
|
-
* ```
|
|
5321
|
-
*
|
|
5322
|
-
* @group Reachable Range
|
|
5323
|
-
*/
|
|
5324
|
-
export type BudgetType = (typeof budgetTypes)[number];
|
|
5325
|
-
/**
|
|
5326
|
-
* Budget constraint for reachable range calculation.
|
|
5327
|
-
*
|
|
5328
|
-
* Defines the limit (time, distance, or fuel/charge) for calculating
|
|
5329
|
-
* how far you can travel from a starting point.
|
|
5330
|
-
*
|
|
5331
|
-
* @remarks
|
|
5332
|
-
* **Use Cases:**
|
|
5333
|
-
* - Service area visualization (30-min delivery zone)
|
|
5334
|
-
* - EV range anxiety mitigation (show reachable area)
|
|
5335
|
-
* - Emergency response coverage (10-min response time)
|
|
5336
|
-
* - Delivery zone planning
|
|
5337
|
-
* - Store location analysis
|
|
5338
|
-
*
|
|
5339
|
-
* @example
|
|
5340
|
-
* ```typescript
|
|
5341
|
-
* // 30-minute travel time
|
|
5342
|
-
* const timeBudget: ReachableRangeBudget = {
|
|
5343
|
-
* type: 'timeMinutes',
|
|
5344
|
-
* value: 30
|
|
5345
|
-
* };
|
|
5346
|
-
*
|
|
5347
|
-
* // 50 km distance
|
|
5348
|
-
* const distanceBudget: ReachableRangeBudget = {
|
|
5349
|
-
* type: 'distanceKM',
|
|
5350
|
-
* value: 50
|
|
5351
|
-
* };
|
|
5352
|
-
*
|
|
5353
|
-
* // 50% battery remaining
|
|
5354
|
-
* const evBudget: ReachableRangeBudget = {
|
|
5355
|
-
* type: 'remainingChargePCT',
|
|
5356
|
-
* value: 50
|
|
5357
|
-
* };
|
|
5358
|
-
*
|
|
5359
|
-
* // 20 liters of fuel
|
|
5360
|
-
* const fuelBudget: ReachableRangeBudget = {
|
|
5361
|
-
* type: 'spentFuelLiters',
|
|
5362
|
-
* value: 20
|
|
5363
|
-
* };
|
|
5364
|
-
* ```
|
|
5365
|
-
*
|
|
5366
|
-
* @group Reachable Range
|
|
5367
|
-
*/
|
|
5368
|
-
export type ReachableRangeBudget = {
|
|
5369
|
-
/**
|
|
5370
|
-
* The type of budget, including units. See {@link BudgetType}.
|
|
5371
|
-
*/
|
|
5372
|
-
type: BudgetType;
|
|
5373
|
-
/**
|
|
5374
|
-
* The value of the budget based on the units mentioned in the type.
|
|
5375
|
-
*
|
|
5376
|
-
* @remarks
|
|
5377
|
-
* **Typical Values:**
|
|
5378
|
-
* - Time: 5-60 minutes
|
|
5379
|
-
* - Distance: 5-100 km
|
|
5380
|
-
* - Charge: 10-100 percentage
|
|
5381
|
-
* - Fuel: 5-50 liters
|
|
5382
|
-
*
|
|
5383
|
-
* @example
|
|
5384
|
-
* ```typescript
|
|
5385
|
-
* value: 30 // 30 minutes/km/percent/liters depending on type
|
|
5386
|
-
* value: 15.5 // Decimal values supported
|
|
5387
|
-
* ```
|
|
5388
|
-
*/
|
|
5389
|
-
value: number;
|
|
5390
|
-
};
|
|
5391
4777
|
/**
|
|
5392
4778
|
* Route features `calculateReachableRange` can avoid.
|
|
5393
4779
|
*
|
|
@@ -5698,11 +5084,18 @@ export declare const calculateReachableRange: (params: ReachableRangeParams) =>
|
|
|
5698
5084
|
* Note: Ranges are calculated sequentially to avoid rate limiting. For large batches,
|
|
5699
5085
|
* consider implementing your own parallel processing with appropriate throttling.
|
|
5700
5086
|
*
|
|
5087
|
+
* **A range the service answers with an error is skipped, not thrown**, unless that error is a 401,
|
|
5088
|
+
* 403 or 429: an origin off the drivable road network answers `NO_RANGE_FOUND`, which
|
|
5089
|
+
* {@link calculateReachableRange} rejects with. So `features` can be shorter than `paramsArray`, or
|
|
5090
|
+
* empty; each feature's `properties` carries the request it answers. An abort and an invalid request
|
|
5091
|
+
* still reject the whole batch.
|
|
5092
|
+
*
|
|
5701
5093
|
* @param paramsArray Array of reachable range parameters, one for each area to calculate
|
|
5702
5094
|
* @param options.signal An `AbortSignal` to cancel the in-flight request and skip the remaining ones.
|
|
5703
5095
|
* Composed with any per-entry `signal`, so either one cancels.
|
|
5704
5096
|
*
|
|
5705
|
-
* @returns Promise resolving to a FeatureCollection
|
|
5097
|
+
* @returns Promise resolving to a FeatureCollection with a polygon per range the service could
|
|
5098
|
+
* calculate, in request order
|
|
5706
5099
|
*
|
|
5707
5100
|
* @example
|
|
5708
5101
|
* ```typescript
|
|
@@ -5877,29 +5270,10 @@ type ReverseGeocodingOptionalParams = {
|
|
|
5877
5270
|
*/
|
|
5878
5271
|
radiusMeters?: number;
|
|
5879
5272
|
/**
|
|
5880
|
-
*
|
|
5881
|
-
*
|
|
5882
|
-
* @remarks
|
|
5883
|
-
* Determines how disputed territories and borders are represented in the response.
|
|
5884
|
-
*
|
|
5885
|
-
* Available views:
|
|
5886
|
-
* - `Unified` - International view (default)
|
|
5887
|
-
* - `AR` - Argentina
|
|
5888
|
-
* - `CN` - China
|
|
5889
|
-
* - `IL` - Israel
|
|
5890
|
-
* - `IN` - India
|
|
5891
|
-
* - `MA` - Morocco
|
|
5892
|
-
* - `PK` - Pakistan
|
|
5893
|
-
* - `RS` - Serbia
|
|
5894
|
-
* - `RU` - Russia
|
|
5895
|
-
* - `TR` - Turkey
|
|
5896
|
-
* - `TW` - Taiwan
|
|
5897
|
-
*
|
|
5898
|
-
* `MA` is accepted by this type but is not supported by the current backend.
|
|
5899
|
-
*
|
|
5900
|
-
* @defaultValue `"Unified"`
|
|
5273
|
+
* Geopolitical view of the result, overriding the global one: which country an address in a
|
|
5274
|
+
* disputed territory belongs to. See {@link GeopoliticalView}.
|
|
5901
5275
|
*/
|
|
5902
|
-
|
|
5276
|
+
geopoliticalView?: GeopoliticalView;
|
|
5903
5277
|
};
|
|
5904
5278
|
/**
|
|
5905
5279
|
* Complete parameter set for reverse geocoding service calls.
|
|
@@ -6602,37 +5976,152 @@ type RouteStopOptions = {
|
|
|
6602
5976
|
legCostModel?: LegCostModel;
|
|
6603
5977
|
};
|
|
6604
5978
|
//#endregion
|
|
6605
|
-
//#region src/
|
|
5979
|
+
//#region src/along-route-search/types/alongRouteSearchRequestAPI.d.ts
|
|
5980
|
+
/**
|
|
5981
|
+
* @ignore
|
|
5982
|
+
*/
|
|
5983
|
+
type RoutePointAPI = {
|
|
5984
|
+
lat: number;
|
|
5985
|
+
lon: number;
|
|
5986
|
+
};
|
|
5987
|
+
/**
|
|
5988
|
+
* @ignore
|
|
5989
|
+
*/
|
|
5990
|
+
type AlongRouteSearchPayloadAPI = {
|
|
5991
|
+
route: {
|
|
5992
|
+
points: RoutePointAPI[];
|
|
5993
|
+
};
|
|
5994
|
+
};
|
|
5995
|
+
/**
|
|
5996
|
+
* Along-route search request type.
|
|
5997
|
+
* @ignore
|
|
5998
|
+
*/
|
|
5999
|
+
type AlongRouteSearchRequestAPI = PostObject<AlongRouteSearchPayloadAPI>;
|
|
6000
|
+
//#endregion
|
|
6001
|
+
//#region src/along-route-search/types/alongRouteSearchResponseAPI.d.ts
|
|
6606
6002
|
/**
|
|
6607
|
-
*
|
|
6003
|
+
* @ignore
|
|
6004
|
+
*/
|
|
6005
|
+
type AlongRouteSearchResultAPI = CommonSearchPlaceResultAPI;
|
|
6006
|
+
/**
|
|
6007
|
+
* @ignore
|
|
6008
|
+
*/
|
|
6009
|
+
type AlongRouteSearchResponseAPI = {
|
|
6010
|
+
/**
|
|
6011
|
+
* Summary information about the search that was performed.
|
|
6012
|
+
*/
|
|
6013
|
+
summary: SummaryAPI$1;
|
|
6014
|
+
/**
|
|
6015
|
+
* The result list, sorted by detour time or offset.
|
|
6016
|
+
*/
|
|
6017
|
+
results: AlongRouteSearchResultAPI[];
|
|
6018
|
+
};
|
|
6019
|
+
//#endregion
|
|
6020
|
+
//#region src/along-route-search/types/alongRouteSearchParams.d.ts
|
|
6021
|
+
/**
|
|
6022
|
+
* Result sorting order for along-route search.
|
|
6608
6023
|
*
|
|
6609
|
-
*
|
|
6610
|
-
* about detected query intents (coordinates, nearby searches, what3words, bookmarks).
|
|
6024
|
+
* Controls how the returned POIs are ordered relative to the route.
|
|
6611
6025
|
*
|
|
6612
|
-
* @
|
|
6026
|
+
* @remarks
|
|
6027
|
+
* Pass these to {@link discoverPlaces}, which selects the request variant from the params it is given:
|
|
6028
|
+
* a `route` property dispatches to along-route search, a `geometries` property to geometry search,
|
|
6029
|
+
* and neither to fuzzy search.
|
|
6030
|
+
*
|
|
6031
|
+
* - `detourTime`: Sort by additional travel time required to visit the POI (default)
|
|
6032
|
+
* - `detourOffset`: Sort by how far along the route the detour point falls
|
|
6033
|
+
*
|
|
6034
|
+
* @group Along Route Search
|
|
6613
6035
|
*/
|
|
6614
|
-
type
|
|
6036
|
+
type AlongRouteSortBy = 'detourTime' | 'detourOffset';
|
|
6615
6037
|
/**
|
|
6616
|
-
*
|
|
6038
|
+
* Parameters for searching places along a route.
|
|
6617
6039
|
*
|
|
6618
|
-
*
|
|
6619
|
-
*
|
|
6040
|
+
* Along-route search finds POIs near a provided route geometry and ranks them
|
|
6041
|
+
* by the detour cost (time or distance offset) required to visit them.
|
|
6620
6042
|
*
|
|
6621
|
-
* @
|
|
6043
|
+
* @remarks
|
|
6044
|
+
* **Key Features:**
|
|
6045
|
+
* - Search for POIs within a detour budget from the route
|
|
6046
|
+
* - Sort results by detour time or route offset
|
|
6047
|
+
* - Combine with POI category and brand filters
|
|
6048
|
+
* - Use directly with a {@link calculateRoute} result
|
|
6049
|
+
*
|
|
6050
|
+
* **Use Cases:**
|
|
6051
|
+
* - Find fuel stations or EV chargers along a trip
|
|
6052
|
+
* - Locate rest stops or restaurants near a route
|
|
6053
|
+
* - Surface services reachable within a time budget
|
|
6054
|
+
*
|
|
6055
|
+
* @example
|
|
6056
|
+
* ```typescript
|
|
6057
|
+
* // Find coffee shops within a 5-minute detour from a route
|
|
6058
|
+
* const results = await discoverPlaces({
|
|
6059
|
+
* route: routeResult.features[0],
|
|
6060
|
+
* maxDetourTimeSeconds: 300,
|
|
6061
|
+
* query: 'coffee',
|
|
6062
|
+
* });
|
|
6063
|
+
*
|
|
6064
|
+
* // Find EV charging stations using a plain coordinate array
|
|
6065
|
+
* const chargers = await discoverPlaces({
|
|
6066
|
+
* route: [[4.9, 52.37], [4.95, 52.28], [5.1, 52.09]],
|
|
6067
|
+
* maxDetourTimeSeconds: 600,
|
|
6068
|
+
* filters: { poiCategories: ['CHARGING_LOCATION'] },
|
|
6069
|
+
* sortBy: 'detourOffset',
|
|
6070
|
+
* });
|
|
6071
|
+
* ```
|
|
6072
|
+
*
|
|
6073
|
+
* @group Along Route Search
|
|
6622
6074
|
*/
|
|
6623
|
-
type
|
|
6075
|
+
type AlongRouteSearchParams = CommonSearchParams<AlongRouteSearchRequestAPI, AlongRouteSearchResponseAPI> & {
|
|
6076
|
+
/**
|
|
6077
|
+
* Route geometry to search along.
|
|
6078
|
+
*
|
|
6079
|
+
* Accepts any of three forms:
|
|
6080
|
+
* - **`Route`** feature as returned by {@link calculateRoute} (most common)
|
|
6081
|
+
* - **`LineString`** GeoJSON geometry object
|
|
6082
|
+
* - **`Position[]`** — a plain array of `[longitude, latitude]` coordinate pairs
|
|
6083
|
+
*
|
|
6084
|
+
* Coordinates must always be in `[longitude, latitude]` order.
|
|
6085
|
+
*
|
|
6086
|
+
* @example
|
|
6087
|
+
* ```typescript
|
|
6088
|
+
* // Route Feature from calculateRoute (most common)
|
|
6089
|
+
* route: routeResult.features[0]
|
|
6090
|
+
*
|
|
6091
|
+
* // GeoJSON LineString geometry
|
|
6092
|
+
* route: routeResult.features[0].geometry
|
|
6093
|
+
*
|
|
6094
|
+
* // Plain coordinate array
|
|
6095
|
+
* route: [[4.9, 52.37], [4.95, 52.28], [5.1, 52.09]]
|
|
6096
|
+
* ```
|
|
6097
|
+
*/
|
|
6098
|
+
route: LineString | Route | Position[];
|
|
6099
|
+
/**
|
|
6100
|
+
* Maximum allowed detour time in seconds.
|
|
6101
|
+
*
|
|
6102
|
+
* Only POIs reachable within this additional travel time from the route
|
|
6103
|
+
* will be returned. Controls the width of the search corridor.
|
|
6104
|
+
*
|
|
6105
|
+
* @example
|
|
6106
|
+
* ```typescript
|
|
6107
|
+
* maxDetourTimeSeconds: 300 // 5-minute detour budget
|
|
6108
|
+
* ```
|
|
6109
|
+
*/
|
|
6110
|
+
maxDetourTimeSeconds: number;
|
|
6624
6111
|
/**
|
|
6625
|
-
*
|
|
6112
|
+
* Sort order for the results.
|
|
6626
6113
|
*
|
|
6627
|
-
*
|
|
6628
|
-
* (e.g., as coordinates, nearby search, what3words, or bookmark).
|
|
6114
|
+
* @default 'detourTime'
|
|
6629
6115
|
*
|
|
6630
|
-
* @
|
|
6631
|
-
*
|
|
6632
|
-
*
|
|
6116
|
+
* @example
|
|
6117
|
+
* ```typescript
|
|
6118
|
+
* sortBy: 'detourOffset' // order by position along the route
|
|
6119
|
+
* ```
|
|
6633
6120
|
*/
|
|
6634
|
-
|
|
6121
|
+
sortBy?: AlongRouteSortBy;
|
|
6635
6122
|
};
|
|
6123
|
+
//#endregion
|
|
6124
|
+
//#region src/fuzzy-search/types/fuzzySearchResponse.d.ts
|
|
6636
6125
|
/**
|
|
6637
6126
|
* Union type for all possible query intents.
|
|
6638
6127
|
*
|
|
@@ -6890,7 +6379,7 @@ type NearbyIntentDetailsAPI = Omit<NearbyIntentDetails, 'position'> & {
|
|
|
6890
6379
|
* @remarks
|
|
6891
6380
|
* Pass these to {@link discoverPlaces}, which selects the request variant from the params it is given:
|
|
6892
6381
|
* a `route` property dispatches to along-route search, a `geometries` property to geometry search,
|
|
6893
|
-
* and neither to fuzzy search.
|
|
6382
|
+
* and neither to fuzzy search.
|
|
6894
6383
|
*
|
|
6895
6384
|
* **Key Features:**
|
|
6896
6385
|
* - Tolerates typos and spelling mistakes
|
|
@@ -6909,14 +6398,12 @@ type NearbyIntentDetailsAPI = Omit<NearbyIntentDetails, 'position'> & {
|
|
|
6909
6398
|
* ```typescript
|
|
6910
6399
|
* // Basic fuzzy search
|
|
6911
6400
|
* const params: FuzzySearchParams = {
|
|
6912
|
-
* key: 'your-api-key',
|
|
6913
6401
|
* query: 'pizz', // Will find "pizza" restaurants
|
|
6914
6402
|
* geoBias: { position: [4.9041, 52.3676] }
|
|
6915
6403
|
* };
|
|
6916
6404
|
*
|
|
6917
6405
|
* // Fuzzy search with custom fuzziness
|
|
6918
6406
|
* const customParams: FuzzySearchParams = {
|
|
6919
|
-
* key: 'your-api-key',
|
|
6920
6407
|
* query: 'restaurnt', // Misspelled "restaurant"
|
|
6921
6408
|
* minFuzzyLevel: 1,
|
|
6922
6409
|
* maxFuzzyLevel: 3,
|
|
@@ -6981,20 +6468,272 @@ type FuzzySearchParams = CommonSearchParams<GetObject, FuzzySearchResponseAPI> &
|
|
|
6981
6468
|
maxFuzzyLevel?: number;
|
|
6982
6469
|
};
|
|
6983
6470
|
//#endregion
|
|
6471
|
+
//#region src/geometry-search/types/geometrySearchRequestAPI.d.ts
|
|
6472
|
+
/**
|
|
6473
|
+
* @ignore
|
|
6474
|
+
*/
|
|
6475
|
+
type PolygonAPI = {
|
|
6476
|
+
type: 'POLYGON';
|
|
6477
|
+
vertices: string[];
|
|
6478
|
+
};
|
|
6479
|
+
/**
|
|
6480
|
+
* @ignore
|
|
6481
|
+
*/
|
|
6482
|
+
type CircleAPI = {
|
|
6483
|
+
type: 'CIRCLE';
|
|
6484
|
+
position: string;
|
|
6485
|
+
radius: number;
|
|
6486
|
+
};
|
|
6487
|
+
/**
|
|
6488
|
+
* @ignore
|
|
6489
|
+
*/
|
|
6490
|
+
type GeometryAPI = PolygonAPI | CircleAPI;
|
|
6491
|
+
/**
|
|
6492
|
+
* @ignore
|
|
6493
|
+
*/
|
|
6494
|
+
type GeometrySearchPayloadAPI = {
|
|
6495
|
+
geometryList: GeometryAPI[];
|
|
6496
|
+
};
|
|
6497
|
+
/**
|
|
6498
|
+
* Geometry search request type.
|
|
6499
|
+
* @ignore
|
|
6500
|
+
*/
|
|
6501
|
+
type GeometrySearchRequestAPI = PostObject<GeometrySearchPayloadAPI>;
|
|
6502
|
+
//#endregion
|
|
6503
|
+
//#region src/geometry-search/types/geometrySearchResponseAPI.d.ts
|
|
6504
|
+
/**
|
|
6505
|
+
* @ignore
|
|
6506
|
+
*/
|
|
6507
|
+
type GeometrySearchResultAPI = CommonSearchPlaceResultAPI;
|
|
6508
|
+
/**
|
|
6509
|
+
* @ignore
|
|
6510
|
+
*/
|
|
6511
|
+
type GeometrySearchResponseAPI = {
|
|
6512
|
+
/**
|
|
6513
|
+
* Summary information about the search that was performed.
|
|
6514
|
+
*/
|
|
6515
|
+
summary: SummaryAPI$1;
|
|
6516
|
+
/**
|
|
6517
|
+
* The result list, sorted in descending order by score.
|
|
6518
|
+
*/
|
|
6519
|
+
results: GeometrySearchResultAPI[];
|
|
6520
|
+
};
|
|
6521
|
+
//#endregion
|
|
6522
|
+
//#region src/geometry-search/types/geometrySearchParams.d.ts
|
|
6523
|
+
/**
|
|
6524
|
+
* Parameters for searching places within specific geographic areas (geometry search).
|
|
6525
|
+
*
|
|
6526
|
+
* Geometry search finds places that fall within or near the boundaries of one or more
|
|
6527
|
+
* geometric shapes (polygons, circles, or multipolygons). This enables area-based searches
|
|
6528
|
+
* like "restaurants in this neighborhood" or "hotels within these city boundaries".
|
|
6529
|
+
*
|
|
6530
|
+
* @remarks
|
|
6531
|
+
* Pass these to {@link discoverPlaces}, which selects the request variant from the params it is given:
|
|
6532
|
+
* a `route` property dispatches to along-route search, a `geometries` property to geometry search,
|
|
6533
|
+
* and neither to fuzzy search.
|
|
6534
|
+
*
|
|
6535
|
+
* **Key Features:**
|
|
6536
|
+
* - Search within multiple geometries simultaneously
|
|
6537
|
+
* - Supports polygons, multipolygons, and circles
|
|
6538
|
+
* - Can use geometries from previous search results
|
|
6539
|
+
* - Combines with text queries for filtered results
|
|
6540
|
+
*
|
|
6541
|
+
* **Use Cases:**
|
|
6542
|
+
* - Find POIs within administrative boundaries
|
|
6543
|
+
* - Search within custom drawn areas on map
|
|
6544
|
+
* - Filter results to specific neighborhoods or regions
|
|
6545
|
+
* - Proximity searches using circles
|
|
6546
|
+
*
|
|
6547
|
+
* @example
|
|
6548
|
+
* ```typescript
|
|
6549
|
+
* // Search within a circular area
|
|
6550
|
+
* const results = await discoverPlaces({
|
|
6551
|
+
* query: 'restaurant',
|
|
6552
|
+
* geometries: [{
|
|
6553
|
+
* type: 'Circle',
|
|
6554
|
+
* coordinates: [4.9041, 52.3676],
|
|
6555
|
+
* radius: 1000 // meters
|
|
6556
|
+
* }]
|
|
6557
|
+
* });
|
|
6558
|
+
* ```
|
|
6559
|
+
*
|
|
6560
|
+
* @example
|
|
6561
|
+
* ```typescript
|
|
6562
|
+
* // Search within a polygon
|
|
6563
|
+
* const results = await discoverPlaces({
|
|
6564
|
+
* query: 'parking',
|
|
6565
|
+
* geometries: [{
|
|
6566
|
+
* type: 'Polygon',
|
|
6567
|
+
* coordinates: [[
|
|
6568
|
+
* [4.88, 52.36],
|
|
6569
|
+
* [4.90, 52.36],
|
|
6570
|
+
* [4.90, 52.38],
|
|
6571
|
+
* [4.88, 52.38],
|
|
6572
|
+
* [4.88, 52.36]
|
|
6573
|
+
* ]]
|
|
6574
|
+
* }]
|
|
6575
|
+
* });
|
|
6576
|
+
* ```
|
|
6577
|
+
*
|
|
6578
|
+
* @group Places Search
|
|
6579
|
+
*/
|
|
6580
|
+
type GeometrySearchParams = CommonSearchParams<GeometrySearchRequestAPI, GeometrySearchResponseAPI> & {
|
|
6581
|
+
/**
|
|
6582
|
+
* List of geometries to search within.
|
|
6583
|
+
*
|
|
6584
|
+
* Can be a mix of polygons, multipolygons, circles, or geometry feature collections
|
|
6585
|
+
* from previous search results. Places that fall within or near these geometries
|
|
6586
|
+
* will be returned.
|
|
6587
|
+
*
|
|
6588
|
+
* @remarks
|
|
6589
|
+
* Also referred to as "geometryList" in API documentation.
|
|
6590
|
+
*
|
|
6591
|
+
* **Supported Types:**
|
|
6592
|
+
* - {@link Circle} - Circular search area with radius
|
|
6593
|
+
* - `Polygon` - Custom polygon boundary (GeoJSON)
|
|
6594
|
+
* - `MultiPolygon` - Multiple polygon areas (GeoJSON)
|
|
6595
|
+
* - `PolygonFeatures` - Feature collection with polygon geometries
|
|
6596
|
+
*
|
|
6597
|
+
* @example
|
|
6598
|
+
* ```typescript
|
|
6599
|
+
* // Multiple geometries
|
|
6600
|
+
* geometries: [
|
|
6601
|
+
* { type: 'Circle', coordinates: [4.9, 52.3], radius: 500 },
|
|
6602
|
+
* { type: 'Polygon', coordinates: [[...]] }
|
|
6603
|
+
* ]
|
|
6604
|
+
* ```
|
|
6605
|
+
*/
|
|
6606
|
+
geometries: SearchGeometryInput[];
|
|
6607
|
+
};
|
|
6608
|
+
/**
|
|
6609
|
+
* Circular search geometry (non-standard GeoJSON extension).
|
|
6610
|
+
*
|
|
6611
|
+
* Defines a circular search area by center point and radius. This is a convenience
|
|
6612
|
+
* type since standard GeoJSON does not include circles.
|
|
6613
|
+
*
|
|
6614
|
+
* @remarks
|
|
6615
|
+
* **Note:** This is not part of the official GeoJSON specification. It's a Maps SDK
|
|
6616
|
+
* extension that gets converted to the appropriate API format internally.
|
|
6617
|
+
*
|
|
6618
|
+
* **Coordinate Format:** `[longitude, latitude]` (standard GeoJSON order)
|
|
6619
|
+
*
|
|
6620
|
+
* @example
|
|
6621
|
+
* ```typescript
|
|
6622
|
+
* const circle: Circle = {
|
|
6623
|
+
* type: 'Circle',
|
|
6624
|
+
* coordinates: [4.9041, 52.3676], // Amsterdam center
|
|
6625
|
+
* radius: 2000 // 2km radius
|
|
6626
|
+
* };
|
|
6627
|
+
* ```
|
|
6628
|
+
*
|
|
6629
|
+
* @group Places Search
|
|
6630
|
+
*/
|
|
6631
|
+
interface Circle {
|
|
6632
|
+
/**
|
|
6633
|
+
* Geometry type identifier.
|
|
6634
|
+
* Must be the literal string `'Circle'`.
|
|
6635
|
+
*/
|
|
6636
|
+
type: 'Circle';
|
|
6637
|
+
/**
|
|
6638
|
+
* Center point of the circle in `[longitude, latitude]` format.
|
|
6639
|
+
*
|
|
6640
|
+
* @example [4.9041, 52.3676]
|
|
6641
|
+
*/
|
|
6642
|
+
coordinates: Position;
|
|
6643
|
+
/**
|
|
6644
|
+
* Radius of the circle in meters.
|
|
6645
|
+
*
|
|
6646
|
+
* @remarks
|
|
6647
|
+
* Defines the search area around the center point. Places within or near
|
|
6648
|
+
* this radius will be included in results.
|
|
6649
|
+
*
|
|
6650
|
+
* @example 1000 // 1 kilometer
|
|
6651
|
+
*/
|
|
6652
|
+
radius: number;
|
|
6653
|
+
}
|
|
6654
|
+
/**
|
|
6655
|
+
* Union type of all supported geometry search input formats.
|
|
6656
|
+
*
|
|
6657
|
+
* Accepts standard GeoJSON polygons/multipolygons, custom circles, or polygon
|
|
6658
|
+
* feature collections (such as those returned from previous searches or the
|
|
6659
|
+
* geometry data service).
|
|
6660
|
+
*
|
|
6661
|
+
* @remarks
|
|
6662
|
+
* **Flexibility:**
|
|
6663
|
+
* - Mix different geometry types in a single search
|
|
6664
|
+
* - Use results from {@link geometryData} directly
|
|
6665
|
+
* - Pass search results with geometries as boundaries
|
|
6666
|
+
* - Define custom polygons for precise area searches
|
|
6667
|
+
*
|
|
6668
|
+
* @example
|
|
6669
|
+
* ```typescript
|
|
6670
|
+
* // Using different geometry types
|
|
6671
|
+
* const geometries: SearchGeometryInput[] = [
|
|
6672
|
+
* // Circle
|
|
6673
|
+
* { type: 'Circle', coordinates: [4.9, 52.3], radius: 1000 },
|
|
6674
|
+
*
|
|
6675
|
+
* // Polygon
|
|
6676
|
+
* {
|
|
6677
|
+
* type: 'Polygon',
|
|
6678
|
+
* coordinates: [[
|
|
6679
|
+
* [4.88, 52.36], [4.90, 52.36], [4.90, 52.38], [4.88, 52.38], [4.88, 52.36]
|
|
6680
|
+
* ]]
|
|
6681
|
+
* },
|
|
6682
|
+
*
|
|
6683
|
+
* // From previous geometry data call
|
|
6684
|
+
* cityBoundaries // PolygonFeatures
|
|
6685
|
+
* ];
|
|
6686
|
+
* ```
|
|
6687
|
+
*
|
|
6688
|
+
* @group Places Search
|
|
6689
|
+
*/
|
|
6690
|
+
type SearchGeometryInput = Polygon | MultiPolygon | Circle | PolygonFeatures;
|
|
6691
|
+
//#endregion
|
|
6984
6692
|
//#region src/search/discoverPlaces.d.ts
|
|
6985
6693
|
type SearchFeatureCollectionProps = SearchSummary & {
|
|
6986
6694
|
queryIntent?: QueryIntent[];
|
|
6987
6695
|
};
|
|
6988
6696
|
/** The keys of `Params` that `Base` lacks, each forbidden. */
|
|
6989
6697
|
type Without<Params, Base> = { [Key in Exclude<keyof Params, keyof Base>]?: never; };
|
|
6698
|
+
/**
|
|
6699
|
+
* What {@link discoverPlaces} adds to its search variant's `filters`: the POI categories as codes in
|
|
6700
|
+
* `poiCategories`, or in words with `poiCategoryQuery`, never both.
|
|
6701
|
+
*
|
|
6702
|
+
* @group Places Search
|
|
6703
|
+
*/
|
|
6704
|
+
export type DiscoverPlacesCategoryFilters = {
|
|
6705
|
+
poiCategoryQuery?: never;
|
|
6706
|
+
} | {
|
|
6707
|
+
/**
|
|
6708
|
+
* Categories in words — `'sushi'`, `['gym', 'ev charging']` — kept as the POI categories they name.
|
|
6709
|
+
*
|
|
6710
|
+
* @remarks
|
|
6711
|
+
* Resolved with {@link resolvePOICategories} in the call's `language`, whose codes become the search's
|
|
6712
|
+
* `poiCategories`. The category list costs one request per language and session. A word nothing
|
|
6713
|
+
* matches is left out; when none matches, the call rejects with {@link SDKError} and sends no search.
|
|
6714
|
+
*
|
|
6715
|
+
* @example
|
|
6716
|
+
* ```typescript
|
|
6717
|
+
* const sushi = await discoverPlaces({
|
|
6718
|
+
* filters: { poiCategoryQuery: 'sushi' },
|
|
6719
|
+
* geoBias: { position: [4.9041, 52.3676] },
|
|
6720
|
+
* });
|
|
6721
|
+
* ```
|
|
6722
|
+
*/
|
|
6723
|
+
poiCategoryQuery: string | string[];
|
|
6724
|
+
poiCategories?: never;
|
|
6725
|
+
};
|
|
6990
6726
|
/**
|
|
6991
6727
|
* What {@link discoverPlaces} takes: one search variant's params, with the other variants' own
|
|
6992
|
-
* options forbidden
|
|
6993
|
-
* dropped, as it would be
|
|
6728
|
+
* options forbidden, and {@link DiscoverPlacesCategoryFilters} added to `filters`. So
|
|
6729
|
+
* `{ geometries, cursor }` is a compile error rather than a cursor silently dropped, as it would be
|
|
6730
|
+
* with a plain union.
|
|
6994
6731
|
*
|
|
6995
6732
|
* @group Places Search
|
|
6996
6733
|
*/
|
|
6997
|
-
export type DiscoverPlacesParams =
|
|
6734
|
+
export type DiscoverPlacesParams = {
|
|
6735
|
+
filters?: DiscoverPlacesCategoryFilters;
|
|
6736
|
+
} & ((FuzzySearchParams & Without<GeometrySearchParams, FuzzySearchParams> & Without<AlongRouteSearchParams, FuzzySearchParams>) | (GeometrySearchParams & Without<FuzzySearchParams, GeometrySearchParams> & Without<AlongRouteSearchParams, GeometrySearchParams> & {
|
|
6998
6737
|
filters?: {
|
|
6999
6738
|
countries?: never;
|
|
7000
6739
|
};
|
|
@@ -7002,7 +6741,7 @@ export type DiscoverPlacesParams = (FuzzySearchParams & Without<GeometrySearchPa
|
|
|
7002
6741
|
filters?: {
|
|
7003
6742
|
countries?: never;
|
|
7004
6743
|
};
|
|
7005
|
-
});
|
|
6744
|
+
}));
|
|
7006
6745
|
/**
|
|
7007
6746
|
* Search service response containing places that match the query.
|
|
7008
6747
|
*
|
|
@@ -7012,11 +6751,12 @@ export type DiscoverPlacesParams = (FuzzySearchParams & Without<GeometrySearchPa
|
|
|
7012
6751
|
*/
|
|
7013
6752
|
export type DiscoverPlacesResponse = Places<SearchPlaceProps, SearchFeatureCollectionProps>;
|
|
7014
6753
|
/**
|
|
7015
|
-
* Universal search function for finding places by text query or
|
|
6754
|
+
* Universal search function for finding places by text query, within geometries or along a route.
|
|
7016
6755
|
*
|
|
7017
|
-
*
|
|
7018
|
-
* - **
|
|
7019
|
-
* - **
|
|
6756
|
+
* Runs one of three searches, picked from its params:
|
|
6757
|
+
* - **Along-route search** when `route` is given: places within a detour budget of the route
|
|
6758
|
+
* - **Geometry search** when `geometries` is given: places inside those areas
|
|
6759
|
+
* - **Fuzzy search** otherwise: free text, optionally biased by `geoBias`
|
|
7020
6760
|
*
|
|
7021
6761
|
* @remarks
|
|
7022
6762
|
* The search service provides:
|
|
@@ -7053,6 +6793,12 @@ export type DiscoverPlacesResponse = Places<SearchPlaceProps, SearchFeatureColle
|
|
|
7053
6793
|
* filters: { poiCategories: ['ITALIAN_RESTAURANT'] },
|
|
7054
6794
|
* geoBias: { position: [4.9041, 52.3676], radiusMeters: 5000 } // Within 5km
|
|
7055
6795
|
* });
|
|
6796
|
+
*
|
|
6797
|
+
* // The same, from a category in words
|
|
6798
|
+
* const italian = await discoverPlaces({
|
|
6799
|
+
* filters: { poiCategoryQuery: 'italian food' },
|
|
6800
|
+
* geoBias: { position: [4.9041, 52.3676], radiusMeters: 5000 }
|
|
6801
|
+
* });
|
|
7056
6802
|
* ```
|
|
7057
6803
|
*
|
|
7058
6804
|
* @see [Search API Documentation](https://docs.tomtom.com/search-api/documentation/search-service/search-service)
|
|
@@ -7222,7 +6968,6 @@ type SearchSuggestionsParams = CommonServiceParams & {
|
|
|
7222
6968
|
* measured from.
|
|
7223
6969
|
*/
|
|
7224
6970
|
origin?: HasLngLat;
|
|
7225
|
-
view?: View;
|
|
7226
6971
|
};
|
|
7227
6972
|
/**
|
|
7228
6973
|
* The result of a {@link getSearchSuggestions} call.
|
|
@@ -7772,4 +7517,4 @@ type TrafficIncidentDetailsParams = TrafficIncidentDetailsByBBoxParams | Traffic
|
|
|
7772
7517
|
*/
|
|
7773
7518
|
export declare const trafficIncidentDetails: (params: TrafficIncidentDetailsParams) => Promise<TrafficIncidentDetails>;
|
|
7774
7519
|
//#endregion
|
|
7775
|
-
export type { AdditionalDataAPI, AlongRouteSearchParams,
|
|
7520
|
+
export type { AdditionalDataAPI, AlongRouteSearchParams, AlongRouteSortBy, AreaAnalyticsDateInput, ArrivalSide, BookmarkIntent, BookmarkIntentDetails, BrandSuggestion, CalculateRouteParams, CategorySuggestion, ChargingStationsAvailabilityParams, ChargingStopsStrategy, Circle, CommonServiceParamsWithZoom, ComputeTravelTimeFor, CoordinateIntent, CoordinateIntentDetails, ExtendedRouteRepresentation, FunctionalRoadClass, FuzzySearchParams, GeocodingParams, GeocodingProps, GeocodingResponse, GeometriesInput, GeometryDataParams, GeometryDataResponseAPI, GeometryParams, GeometryPlaceParams, GeometrySearchParams, GuidanceParams, InputSectionType, InputSectionTypes, LegCostModel, MaxNumberOfAlternatives, NearbyIntent, NearbyIntentDetails, POICategoriesParams, POICategoriesResponse, POICategoryResult, PlaceDetailsMandatoryParams, PlaceDetailsOptionalParams, PlaceDetailsParams, PlaceDetailsResponse, PlaceDetailsResponseAPI, PlaceDetailsResultAPI, PlaceSuggestion, PlacesWithEVAvailabilityOptions, PoiCategoriesResponseAPI, PoiCategoryAPI, QueryIntent, RefinementSuggestion, ResolvePOICategoriesParams, ResolvedPOICategories, ReverseGeocodingMandatoryParams, ReverseGeocodingOptionalParams, ReverseGeocodingParams, RouteStopOptions, SearchGeometryInput, SearchSuggestion, SearchSuggestionKind, SearchSuggestionsParams, SearchSuggestionsResponse, TrafficAreaAnalyticsDateRange, TrafficAreaAnalyticsDays, TrafficAreaAnalyticsParams, TrafficIncidentDetailsByBBoxParams, TrafficIncidentDetailsByIdsParams, TrafficIncidentDetailsByPolygonParams, TrafficIncidentDetailsParams, W3WIntent, W3WIntentDetails, arrivalSides, chargingStopsStrategies, functionalRoadClasses };
|