@tomtom-org/maps-sdk 0.47.9 → 0.48.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 +22 -0
- package/core/dist/core.es.js +1 -1
- package/map/dist/index.d.ts +91 -16
- package/map/dist/map.es.js +1 -1
- package/map/dist/map.es.js.map +1 -1
- package/package.json +1 -1
- package/services/dist/services.es.js +1 -1
- package/services/dist/services.es.js.map +1 -1
package/CHANGELOG.md
CHANGED
|
@@ -2,6 +2,28 @@
|
|
|
2
2
|
|
|
3
3
|
All notable changes to this project will be documented in this file. See [standard-version](https://github.com/conventional-changelog/standard-version) for commit guidelines.
|
|
4
4
|
|
|
5
|
+
## [0.48.0](https://github.com/tomtom-internal/maps-sdk-js/compare/v0.47.9...v0.48.0) (2026-06-05)
|
|
6
|
+
|
|
7
|
+
|
|
8
|
+
### ⚠ BREAKING CHANGES
|
|
9
|
+
|
|
10
|
+
* **events:** scope + dedupe allEventFeatures, typed substitution
|
|
11
|
+
* **agent-toolkit:** byod improvements ([#1816](https://github.com/tomtom-internal/maps-sdk-js/issues/1816))
|
|
12
|
+
|
|
13
|
+
### Features
|
|
14
|
+
|
|
15
|
+
* **agent-toolkit:** byod improvements ([#1816](https://github.com/tomtom-internal/maps-sdk-js/issues/1816)) ([4aeddca](https://github.com/tomtom-internal/maps-sdk-js/commit/4aeddca52a1da30cde36f6dbb18ddad689f47f27))
|
|
16
|
+
* **ci:** wire up Docs Portal PR preview environments ([#1812](https://github.com/tomtom-internal/maps-sdk-js/issues/1812)) ([49829eb](https://github.com/tomtom-internal/maps-sdk-js/commit/49829ebad00416fc88684f039f81239f6ac761d4))
|
|
17
|
+
* **events:** scope + dedupe allEventFeatures, typed substitution ([036c9c4](https://github.com/tomtom-internal/maps-sdk-js/commit/036c9c41be660b92ed80b74cae4b998ce595f94d))
|
|
18
|
+
* sdk proxy mode for demo-BFF ([#1810](https://github.com/tomtom-internal/maps-sdk-js/issues/1810)) ([da0f932](https://github.com/tomtom-internal/maps-sdk-js/commit/da0f9326c31665608cee1a2790129ff60be0ad29))
|
|
19
|
+
|
|
20
|
+
|
|
21
|
+
### Bug Fixes
|
|
22
|
+
|
|
23
|
+
* **agent-toolkit:** add missing [@group](https://github.com/group) tags on exported types ([#1803](https://github.com/tomtom-internal/maps-sdk-js/issues/1803)) ([67f1cf3](https://github.com/tomtom-internal/maps-sdk-js/commit/67f1cf3c383d2e0db544cead55d16a66342ec4c2))
|
|
24
|
+
* **agent-toolkit:** public docs cleanup — links, system-prompt guidance, internal refs ([#1804](https://github.com/tomtom-internal/maps-sdk-js/issues/1804)) ([283fbc9](https://github.com/tomtom-internal/maps-sdk-js/commit/283fbc9f588e261baf1112805f77102b88ce7f5a))
|
|
25
|
+
* proxy mode sdk ([#1815](https://github.com/tomtom-internal/maps-sdk-js/issues/1815)) ([d6b7327](https://github.com/tomtom-internal/maps-sdk-js/commit/d6b73278f38d1e9b6ef43be46e4eff540a888640))
|
|
26
|
+
|
|
5
27
|
## [0.47.9](https://github.com/tomtom-internal/maps-sdk-js/compare/v0.47.8...v0.47.9) (2026-05-22)
|
|
6
28
|
|
|
7
29
|
|
package/core/dist/core.es.js
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import{nearestPointOnLine as A}from"@turf/turf";import{isNil as E}from"lodash-es";var R={commonBaseURL:"https://api.tomtom.com",apiKey:"",apiVersion:1,retry:{initialWaitMs:.447,backoffFactor:1.618,timeoutMs:4e4}},T=class A{static{this.instance=new A}constructor(){this.config={...R}}put(A){this.config={...this.config,...A}}reset(){this.config={...R}}get(){return this.config}},_=(A={})=>({...T.instance.get(),...A}),I=["Public","Authorized","Restricted","Private","Unknown"],N=["Available","Reserved","Occupied","OutOfService","Unknown"],S=["ChargingProfileCapable","ChargingPreferencesCapable","ChipCardSupport","ContactlessCardSupport","CreditCardPayable","DebitCardPayable","PedTerminal","RemoteStartStopCapable","Reservable","RfidReader","StartSessionConnectorRequired","TokenGroupCapable","UnlockCapable","PlugAndCharge","Unknown"],O=["EvOnly","Plugged","Disabled","Customers","Motorcycles"],C=["StandardHouseholdCountrySpecific","IEC62196Type1","IEC62196Type1CCS","IEC62196Type2CableAttached","IEC62196Type2Outlet","IEC62196Type2CCS","IEC62196Type3","Chademo","GBT20234Part2","GBT20234Part3","IEC60309AC3PhaseRed","IEC60309AC1PhaseBlue","IEC60309DCWhite","Tesla"],e=["AC1","AC3","DC"],L=["Country","CountrySubdivision","CountrySecondarySubdivision","CountryTertiarySubdivision","Municipality","MunicipalitySubdivision","Neighbourhood","PostalCodeArea"],U=["POI","Street","Geography","Point Address","Address Range","Cross Street"],t=["ACCESS_GATEWAY","ADVENTURE_SPORTS_FACILITY","ADVENTURE_VEHICLE_TRAIL","ADVERTISING_COMPANY","AFGHAN_RESTAURANT","AFRICAN_RESTAURANT","AGRICULTURAL_SUPPLIES","AGRICULTURAL_TECHNOLOGY","AGRICULTURE","AIRFIELD","AIRLINE_ACCESS","AIRLINE_COMPANY","AIRPORT","AMBULANCE_UNIT","AMERICAN_RESTAURANT","AMPHITHEATER","AMUSEMENT_PARK","AMUSEMENT_PLACE","ANIMAL_SERVICES","ANIMAL_SHELTER","ANTIQUE_ART_SHOP","APARTMENT_RENTAL","AQUATIC_ZOO","ARABIAN_RESTAURANT","ARBORETA_BOTANICAL_GARDENS","ARCH","ARMENIAN_RESTAURANT","ART_SCHOOL","ASIAN_RESTAURANT","ATHLETICS_TRACK","ATM","ATV_DEALER","AUSTRALIAN_RESTAURANT","AUSTRIAN_RESTAURANT","AUTOMOBILE_COMPANY","AUTOMOBILE_MANUFACTURING","AUTOMOTIVE_DEALER","BAGS_LEATHERWEAR","BAKERY","BANK","BANQUET_ROOMS","BAR","BARBECUE_RESTAURANT","BASEBALL_PARK","BASKETBALL_ARENA","BASQUE_RESTAURANT","BATTLEFIELD","BAY","BEACH","BEACH_CLUB","BEAUTY_SALON","BEAUTY_SUPPLIES","BELGIAN_RESTAURANT","BETTING_STATION","BISTRO","BLOOD_BANK","BOATING_EQUIPMENT_ACCESSORIES","BOAT_DEALER","BOAT_LAUNCHING_RAMP","BODYSHOP","BOLIVIAN_RESTAURANT","BOOK_SHOP","BOWLING_CENTER","BRAZILIAN_RESTAURANT","BRIDGE","BRITISH_RESTAURANT","BUFFET_RESTAURANT","BUILDING","BULGARIAN_RESTAURANT","BUNGALOW_RENTAL","BURMESE_RESTAURANT","BUSINESS_PARK","BUSINESS_SERVICES","BUS_CHARTER_COMPANY","BUS_DEALER","BUS_LINES","BUS_STOP","BUTCHER","B_B_GUEST_HOUSE","CABARET_THEATER","CABINS_LODGES","CABLE_TELEPHONE_COMPANY","CAFE","CAFETERIA","CAFE_PUB","CALIFORNIAN_RESTAURANT","CAMBODIAN_RESTAURANT","CAMERAS_PHOTOGRAPHY","CAMPING_GROUND","CANADIAN_RESTAURANT","CAPE","CARAVAN_SITE","CARIBBEAN_RESTAURANT","CARPET_FLOOR_COVERINGS","CAR_DEALER","CAR_GLASS_REPLACEMENT_SHOP","CAR_REPAIR_AND_SERVICE","CAR_WASH","CASINO","CATERING_SERVICES","CAVE","CEMETERY","CHALET_RENTAL","CHEMICAL_COMPANY","CHICKEN_RESTAURANT","CHILDRENS_CLOTHES","CHILD_CARE_FACILITY","CHINESE_RESTAURANT","CHRISTMAS_HOLIDAY_SHOP","CHURCH","CINEMA","CLEANING_SERVICES","CLOTHING_SHOP","CLUB_ASSOCIATION","COCKTAIL_BAR","COFFEE_SHOP","COLLEGE_OR_UNIVERSITY","COLLEGE_UNIVERSITY","COLOMBIAN_RESTAURANT","COMEDY_CLUB","COMMERCIAL_BUILDING","COMMUNITY_CENTER","COMPANY","COMPUTER_COMPUTER_SUPPLIES","COMPUTER_DATA_SERVICES","CONCERT_HALL","CONSTRUCTION_COMPANY","CONSTRUCTION_MATERIAL_EQUIPMENT","CONSUMER_ELECTRONICS","CONVENIENCE_STORE","CORSICAN_RESTAURANT","COTTAGE_RENTAL","COURIER_DROP_BOX","COURTHOUSE","COVE","CREOLE_RESTAURANT","CREPERIE","CRICKET_GROUND","CUBAN_RESTAURANT","CULTURAL_CENTER","CURRENCY_EXCHANGE","CURTAINS_TEXTILES","CZECH_RESTAURANT","C_DS_DVD_VIDEOS","DAM","DANCE_STUDIO_SCHOOL","DANISH_RESTAURANT","DELICATESSEN","DELIVERY_SERVICE","DENTIST","DEPARTMENT_STORE","DINNER_THEATER","DISCO_CLUB","DIVERSIFIED_FINANCIALS","DOCTOR","DONGBEI_RESTAURANT","DOUGHNUT_RESTAURANT","DO_IT_YOURSELF_CENTERS","DRIVE_IN_MOVIES","DRIVE_THROUGH_BOTTLE_SHOP","DRIVING_SCHOOL","DRUG_STORE","DRY_CLEANER","DUNE","DUTCH_RESTAURANT","EGYPTIAN_RESTAURANT","ELECTRICAL_APPLIANCES_SHOP","ELECTRIC_VEHICLE_STATION","ELECTRONICS_COMPANY","EMBASSY","EMERGENCY_MEDICAL_SERVICE","EMERGENCY_ROOM","ENGLISH_RESTAURANT","ENTERTAINMENT","EQUIPMENT_RENTAL","ETHIOPIAN_RESTAURANT","EXCHANGE","EXHIBITION_CONVENTION_CENTER","FACTORY_OUTLET","FAIRGROUND","FARM","FARMERS_MARKET","FAST_FOOD","FERRY_TERMINAL","FINNISH_RESTAURANT","FIRE_STATION_BRIGADE","FISHING_HUNTING_AREA","FISHMONGER","FITNESS_CLUB_CENTER","FLATS_APARTMENT_COMPLEX","FLORISTS","FONDUE_RESTAURANT","FOOD_MARKET","FOOTBALL_STADIUM","FOOTWEAR_SHOE_REPAIRS","FOREST_AREA","FRENCH_RESTAURANT","FRONTIER_CROSSING","FUNERAL_SERVICE_MORTUARIES","FURNITURE_HOME_FURNISHINGS","FUSION_RESTAURANT","GARDEN_CENTERS_SERVICES","GAS_STATION","GENERAL_HOSPITAL_AND_POLYCLINIC","GENERAL_PRACTITIONER","GEOGRAPHIC_FEATURE","GERMAN_RESTAURANT","GIFTS_CARDS_NOVELTIES_SOUVENIRS","GLASSWARE_CERAMIC_SHOP","GLASS_WINDOWS_STORE","GOLD_EXCHANGE","GOLF_COURSE","GOVERNMENT_OFFICE","GREEK_RESTAURANT","GREENGROCER","GRILL_RESTAURANT","GROCERY_STORE","GURUDWARA","HAIRDRESSER","HAMBURGER_RESTAURANT","HARBOR","HARDWARE_STORE","HAWAIIAN_RESTAURANT","HEALTH_CARE_SERVICE","HELIPAD_HELICOPTER_LANDING","HIGH_SCHOOL","HIKING_TRAIL","HILL","HISTORICAL_PARK","HISTORIC_SITE","HOBBY_SHOP","HOCKEY_CLUB","HOLIDAY_RENTAL","HOME_APPLIANCE_REPAIR","HORSE_RACING_TRACK","HORSE_RIDING_CENTER","HORSE_RIDING_TRAIL","HORTICULTURE","HOSPITAL","HOSPITAL_FOR_WOMEN_AND_CHILDREN","HOSPITAL_OF_CHINESE_MEDICINE","HOSTEL","HOTEL","HOTEL_MOTEL","HOT_POT_RESTAURANT","HOUSE_GARDEN_FURNITURE_FITTINGS","HUNAN_RESTAURANT","HUNGARIAN_RESTAURANT","ICE_CREAM_PARLOR","ICE_HOCKEY_ARENA","ICE_SKATING_RINK","IMPORT_EXPORT_AND_DISTRIBUTION","INDIAN_RESTAURANT","INDONESIAN_RESTAURANT","INDUSTRIAL_BUILDING","INFORMAL_MARKET","INSURANCE_COMPANY","INTERNATIONAL_RAILROAD_STATION","INTERNATIONAL_RESTAURANT","INTERNET_CAFE","INVESTMENT_ADVISOR","IRANIAN_RESTAURANT","IRISH_RESTAURANT","ISLAND","ISRAELI_RESTAURANT","ITALIAN_RESTAURANT","JAMAICAN_RESTAURANT","JAPANESE_RESTAURANT","JAZZ_CLUB","JEWELRY_CLOCKS_WATCHES","JEWISH_RESTAURANT","JUNIOR_COLLEGE_COMMUNITY_COLLEGE","KARAOKE_CLUB","KITCHENS_BATHROOMS","KOREAN_RESTAURANT","KOSHER_RESTAURANT","LANGUAGE_SCHOOL","LATIN_AMERICAN_RESTAURANT","LAUNDRY","LEBANESE_RESTAURANT","LEGAL_SERVICES","LEISURE_CENTER","LEISURE_SPORTS_CENTER","LIBRARY","LIGHTING_SHOPS","LOCALE","LOCAL_SPECIALITIES_SHOP","LOTTERY_SHOP","MANUFACTURING_COMPANY","MANUFACTURING_FACILITY","MARIJUANA_DISPENSARY","MARINA","MARKET","MARSH","MAUSOLEUM_GRAVE","MECHANICAL_ENGINEERING","MEDIA_FACILITY","MEDICAL_SUPPLIES_EQUIPMENT","MEDICINAL_MARIJUANA_DISPENSARY","MEDITERRANEAN_RESTAURANT","MEMORIAL","MENS_CLOTHING","MEXICAN_RESTAURANT","MICROBREWERY","MIDDLE_EASTERN_RESTAURANT","MIDDLE_SCHOOL","MILITARY_AIRPORT","MINERAL_HOT_SPRINGS","MINING_COMPANY","MOBILE_PHONE_SHOP","MONGOLIAN_RESTAURANT","MONUMENT","MOROCCAN_RESTAURANT","MOSQUE","MOTEL","MOTORCYCLE_DEALER","MOTORCYCLE_REPAIR","MOTORING_ORGANIZATION_OFFICE","MOTOR_RACING_STADIUM","MOUNTAIN_BIKE_TRAIL","MOUNTAIN_PASS","MOUNTAIN_PEAK","MOVIE_THEATER","MOVING_STORAGE_COMPANY","MULTI_PURPOSE_STADIUM","MUSEUM","MUSIC_CENTER","MUSIC_INSTRUMENTS_STORE","NAIL_SALON","NATIONAL_RAILROAD_STATION","NATIVE_RESERVATION","NATURAL_TOURIST_ATTRACTION","NEPALESE_RESTAURANT","NETBALL_STADIUM","NEWSAGENTS_TOBACCONISTS","NIGHTLIFE","NON_GOVERNMENTAL_ORGANIZATION","NORWEGIAN_RESTAURANT","OASIS","OBSERVATORY","OFFICE_EQUIPMENT","OIL_NATURAL_GAS","OPEN_CAR_PARKING_AREA","OPEN_PARKING_AREA","OPERA_HOUSE","OPTICIAN","ORGANIC_FOOD_RESTAURANT","ORIENTAL_RESTAURANT","OTHER_FOOD_SHOPS","OTHER_WINTER_SPORT","PAGODA","PAINTING_DECORATING","PAKISTANI_RESTAURANT","PARK","PARKING_GARAGE","PARKWAY","PARK_RECREATION_AREA","PASSENGER_TRANSPORT_TICKET_OFFICE","PAWN_SHOP","PERSONAL_CARE_FACILITY","PERSONAL_SERVICE","PERFORMING_ARTS_THEATER","PERUVIAN_RESTAURANT","PET_SUPPLIES","PHARMACEUTICAL_COMPANY","PHARMACY","PHILIPPINE_RESTAURANT","PHOTOCOPY_SHOP","PHOTO_LAB_DEVELOPMENT","PICNIC_AREA","PIZZERIA","PLACE_OF_WORSHIP","PLAIN_FLAT","PLANETARIUM","PLATEAU","POLICE_STATION","POLISH_RESTAURANT","POLYNESIAN_RESTAURANT","PORTUGUESE_RESTAURANT","PORT_WAREHOUSE_FACILITY","POST_OFFICE","PRE_SCHOOL","PRIMARY_PRODUCER","PRIMARY_RESOURCE_UTILITY","PRIMARY_SCHOOL","PRISON_CORRECTIONAL_FACILITY","PRIVATE_AIRPORT","PROTECTED_AREA","PUB","PUBLIC_AIRPORT","PUBLIC_AMENITY","PUBLIC_CALL_BOX","PUBLIC_MARKET","PUBLIC_TOILET","PUBLIC_TRANSPORT_STOP","PUBLISHING_TECHNOLOGIES","PUB_FOOD","QUARRY","RACE_TRACK","RAILWAY_STATION","RAPIDS","REAL_ESTATE_AGENT","REAL_ESTATE_COMPANY","RECREATIONAL_CAMPING_GROUND","RECREATIONAL_MARIJUANA_DISPENSARY","RECREATIONAL_VEHICLE_DEALER","RECREATION_AREA","RECYCLING_SHOP","REEF","RENT_A_CAR_FACILITY","RENT_A_CAR_PARKING","REPAIR_FACILITY","RESEARCH_FACILITY","RESERVOIR","RESIDENTIAL_ACCOMMODATION","RESORT","RESTAURANT","RESTAURANT_AREA","REST_AREA","REST_CAMP","RETAIL_OUTLET","RETIREMENT_COMMUNITY","RIDGE","RIVER_CROSSING","ROAD_RESCUE","ROAD_TRAFFIC_CONTROL_CENTER","ROCKS","ROCK_CLIMBING_TRAIL","RUGBY_GROUND","RUSSIAN_RESTAURANT","SALAD_BAR","SANDWICH_RESTAURANT","SAUNA_SOLARIUM_MASSAGE","SCANDINAVIAN_RESTAURANT","SCENIC_PANORAMIC_VIEW","SCHOOL","SCHOOL_BUS_COMPANY","SEAFOOD","SECURED_ENTRANCE","SECURITY_PRODUCTS","SENIOR_HIGH_SCHOOL","SERVICE_COMPANY","SHANDONG_RESTAURANT","SHOP","SHOPPING_CENTER","SHOPPING_SERVICE","SICHUAN_RESTAURANT","SKI_RESORT","SNACKS_RESTAURANT","SNOOKER_POOL_BILLIARD","SOCCER_STADIUM","SOFTWARE_COMPANY","SOUL_FOOD","SOUP_RESTAURANT","SPANISH_RESTAURANT","SPECIALIST","SPECIALTY_CLOTHING_SHOP","SPECIALTY_FOODS","SPECIAL_HOSPITAL","SPORTS_CENTER","SPORTS_EQUIPMENT_CLOTHING","SQUASH_COURT","STADIUM","STATION_ACCESS","STATUE","STEAK_HOUSE","STOCK_EXCHANGE","STREETCAR_STOP","SUBWAY_STATION","SUPERMARKETS_HYPERMARKETS","SUSHI_RESTAURANT","SWEDISH_RESTAURANT","SWIMMING_POOL","SWISS_RESTAURANT","SYNAGOG","SYRIAN_RESTAURANT","TAILOR_SHOP","TAIWANESE_RESTAURANT","TAKEOUT_FOOD","TAPAS_RESTAURANT","TAXI_LIMOUSINE_SHUTTLE_SERVICE","TAXI_STAND","TAX_SERVICES","TEA_HOUSE","TELECOMMUNICATIONS","TEMPLE","TENNIS_COURT","TEPPANYAKI_RESTAURANT","THAI_RESTAURANT","THEATER","THEMATIC_SPORT_CENTER","TIBETAN_RESTAURANT","TIRE_SERVICE","TOLL_GATE","TOURIST_ATTRACTION","TOURIST_INFORMATION_OFFICE","TOWER","TOYS_GAMES_SHOP","TRAFFIC_CONTROL_DEPARTMENT","TRAIL_SYSTEM","TRANSPORT_AUTHORITY_VEHICLE_REGISTRATION","TRANSPORT_COMPANY","TRAVEL_AGENT","TRUCK_DEALER","TRUCK_REPAIR_AND_SERVICE","TRUCK_STOP","TUNISIAN_RESTAURANT","TUNNEL","TURKISH_RESTAURANT","URBAN_STATION","VALLEY","VAN_DEALER","VARIETY_STORE","VEGETARIAN_RESTAURANT","VENEZUELAN_RESTAURANT","VETERINARIAN","VIDEO_RENTAL_SHOP","VIETNAMESE_RESTAURANT","VILLA_RENTAL","VOCATIONAL_SCHOOL","WATER_HOLE","WATER_SPORT","WEDDING_SERVICES","WEIGH_STATION","WELFARE_ORGANIZATION","WELL","WESTERN_RESTAURANT","WHOLESALE_CLUB","WILDERNESS_AREA","WILDLIFE_PARK","WINERY","WINE_SPIRITS","WOMENS_CLOTHING","YACHT_BASIN","YOGURT_JUICE_BAR","ZOO","ZOOS_ARBORETA_BOTANICAL_GARDEN"],r=["Small_Paddle_Inductive","Large_Paddle_Inductive","IEC_60309_1_Phase","IEC_60309_3_Phase","IEC_62196_Type_1_Outlet","IEC_62196_Type_2_Outlet","IEC_62196_Type_3_Outlet","IEC_62196_Type_1_Connector_Cable_Attached","IEC_62196_Type_2_Connector_Cable_Attached","IEC_62196_Type_3_Connector_Cable_Attached","Combo_to_IEC_62196_Type_1_Base","Combo_to_IEC_62196_Type_2_Base","Type_E_French_Standard_CEE_7_5","Type_F_Schuko_CEE_7_4","Type_G_British_Standard_BS_1363","Type_J_Swiss_Standard_SEV_1011","China_GB_Part_2","China_GB_Part_3","IEC_309_DC_Plug","AVCON_Connector","Tesla_Connector","NEMA_5_20","CHAdeMO","SAE_J1772","TEPCO","Better_Place_Socket","Marechal_Socket","Standard_Household_Country_Specific"],n=["No_Payment","Subscription","Direct"],P=["tollRoads","motorways","ferries","unpavedRoads","carpools","alreadyUsedRoads","borderCrossings","tunnels","carTrains","lowEmissionZones"],M=["carpool","carTrain","country","ferry","importantRoadStretch","lowEmissionZone","motorway","pedestrian","roadShields","speedLimit","toll","tollVignette","traffic","tunnel","unpaved","urban","vehicleRestricted"],o=[...M,"lanes"],H=[...o,"leg"],i=["speed","freeFlowSpeed","congestionLevel","travelTime","networkLength"],a=["accident","broken-down-vehicle","danger","flooding","fog","frost","jam","lane-closed","other","rain","road-closed","roadworks","wind"],G=[...a,"animals-on-road","narrow-lanes"],s=["Unified","AR","IN","PK","IL","MA","RU","TR","CN"],D=A=>!!A&&(A.length>=4&&A[3]!==A[1]&&A[2]!==A[0]),B=A=>D(A)?A:void 0,d=(A,E)=>{if(A&&!(A.length<2))return E?[E[0]>A[0]?A[0]:E[0],E[1]>A[1]?A[1]:E[1],E[2]<A[0]?A[0]:E[2],E[3]<A[1]?A[1]:E[3]]:[A[0],A[1],A[0],A[1]]},c=(A,E)=>E&&A?[E[0]>A[0]?A[0]:E[0],E[1]>A[1]?A[1]:E[1],E[2]<A[2]?A[2]:E[2],E[3]<A[3]?A[3]:E[3]]:A||E,Y=A=>A?.length?A.reduce((A,E)=>c(E,A)):void 0,F=A=>{const E=A?.length;if(!E)return;let R;const T=Math.ceil(E/1e3);for(let _=0;_<E;_+=T)R=d(A[_],R);return 1===T?R:d(A[E-1],R)},l=A=>{if(A){if(Array.isArray(A))return"number"==typeof A[0]?A.length>=4?A:void 0:Y(A.map(A=>l(A)));if(A.bbox)return A.bbox;switch(A.type){case"Feature":return l(A.geometry);case"FeatureCollection":return Y(A.features.map(l));case"GeometryCollection":return Y(A.geometries.map(l));case"Point":return d(A.coordinates);case"LineString":case"MultiPoint":return F(A.coordinates);case"MultiLineString":case"Polygon":return Y(A.coordinates.map(F));case"MultiPolygon":return Y(A.coordinates.flatMap(A=>A.map(F)));default:return}}},u=(A,E)=>c(l(A),E),V=A=>[(A[0]+A[2])/2,(A[1]+A[3])/2],p=A=>{const[E,R,T,_]=A;return{type:"Feature",geometry:{type:"Polygon",coordinates:[[[E,R],[T,R],[T,_],[E,_],[E,R]]]},properties:{}}},K=()=>Date.now().toString(36)+Math.random().toString(36).substring(2),m="MapsSDKJS",h=A=>{if(!/^[a-zA-Z0-9-]{1,100}$/.test(A))throw new TypeError(`a string matching regular expression ^[a-zA-Z0-9-]{1,100}$ is expected, but ${A} ['${typeof A}'] given`);return A},g=A=>({"tomtom-user-agent":A["tomtom-user-agent"]??"MapsSDKJS/0.47.9",...A.trackingId&&{"Tracking-ID":h(A.trackingId)}}),f=(A,E)=>{if(A){if(Array.isArray(A))return A;if(A.coordinates)return A.coordinates;if(A.geometry)return"main-when-available"===E?.useEntryPoint?(R=A,R?.properties?.entryPoints?.find(A=>"main"===A.type))?.position??A.geometry.coordinates:A.geometry.coordinates}var R;return null},y=(A,E)=>{const R=f(A,E);if(!R)throw new Error(`The received object does not have lng-lat coordinates: ${JSON.stringify(A)}`);return R},W=A=>({type:"Point",coordinates:A}),v=A=>({type:"Feature",geometry:W(A),properties:{}}),$={ROAD_TRAFFIC_CONTROL_CENTER:[7301],TRAFFIC_CONTROL_DEPARTMENT:[7301002],TRAIL_SYSTEM:[7302],MOUNTAIN_BIKE_TRAIL:[7302002],ADVENTURE_VEHICLE_TRAIL:[7302003],HIKING_TRAIL:[7302004],HORSE_RIDING_TRAIL:[7302005],ROCK_CLIMBING_TRAIL:[7302006],RESIDENTIAL_ACCOMMODATION:[7303],RETIREMENT_COMMUNITY:[7303002],FLATS_APARTMENT_COMPLEX:[7303003],HOLIDAY_RENTAL:[7304],COTTAGE_RENTAL:[7304002],VILLA_RENTAL:[7304003],BUNGALOW_RENTAL:[7304004],CHALET_RENTAL:[7304005],APARTMENT_RENTAL:[7304006],ADVENTURE_SPORTS_FACILITY:[7305],HELIPAD_HELICOPTER_LANDING:[7308],ELECTRIC_VEHICLE_STATION:[7309],REPAIR_FACILITY:[7310],BODYSHOP:[7310002],CAR_GLASS_REPLACEMENT_SHOP:[7310003],CAR_REPAIR_AND_SERVICE:[7310004],TIRE_SERVICE:[7310007],MOTORCYCLE_REPAIR:[7310008],TRUCK_REPAIR_AND_SERVICE:[7310009],GAS_STATION:[7311],RENT_A_CAR_FACILITY:[7312],PARKING_GARAGE:[7313],HOTEL_MOTEL:[7314],B_B_GUEST_HOUSE:[7314002],HOTEL:[7314003],HOSTEL:[7314004],RESORT:[7314005],MOTEL:[7314006],CABINS_LODGES:[7314007],REST_CAMP:[7314008],RESTAURANT:[7315],AFRICAN_RESTAURANT:[7315002],AMERICAN_RESTAURANT:[7315003],AUSTRIAN_RESTAURANT:[7315004],BARBECUE_RESTAURANT:[7315005],BELGIAN_RESTAURANT:[7315006],BISTRO:[7315007],BRITISH_RESTAURANT:[7315008],CALIFORNIAN_RESTAURANT:[7315009],CANADIAN_RESTAURANT:[7315010],CARIBBEAN_RESTAURANT:[7315011],CHINESE_RESTAURANT:[7315012],CREPERIE:[7315013],DUTCH_RESTAURANT:[7315014],FAST_FOOD:[7315015],PHILIPPINE_RESTAURANT:[7315016],FRENCH_RESTAURANT:[7315017],GERMAN_RESTAURANT:[7315018],GREEK_RESTAURANT:[7315019],GRILL_RESTAURANT:[7315020],HAWAIIAN_RESTAURANT:[7315021],HUNGARIAN_RESTAURANT:[7315022],INDIAN_RESTAURANT:[7315023],INDONESIAN_RESTAURANT:[7315024],ITALIAN_RESTAURANT:[7315025],JAPANESE_RESTAURANT:[7315026],JEWISH_RESTAURANT:[7315027],KOREAN_RESTAURANT:[7315028],LATIN_AMERICAN_RESTAURANT:[7315029],LEBANESE_RESTAURANT:[7315030],MEDITERRANEAN_RESTAURANT:[7315032],MEXICAN_RESTAURANT:[7315033],MIDDLE_EASTERN_RESTAURANT:[7315034],ORIENTAL_RESTAURANT:[7315035],PIZZERIA:[7315036],POLISH_RESTAURANT:[7315037],PORTUGUESE_RESTAURANT:[7315038],PUB_FOOD:[7315039],RUSSIAN_RESTAURANT:[7315040],SANDWICH_RESTAURANT:[7315042],SEAFOOD:[7315043],SPANISH_RESTAURANT:[7315044],STEAK_HOUSE:[7315045],SWISS_RESTAURANT:[7315047],THAI_RESTAURANT:[7315048],TURKISH_RESTAURANT:[7315049],VEGETARIAN_RESTAURANT:[7315050],VIETNAMESE_RESTAURANT:[7315051],HUNAN_RESTAURANT:[7315052],SHANDONG_RESTAURANT:[7315053],SICHUAN_RESTAURANT:[7315056],DONGBEI_RESTAURANT:[7315057],HOT_POT_RESTAURANT:[7315058],TAIWANESE_RESTAURANT:[7315059],WESTERN_RESTAURANT:[7315060],PERUVIAN_RESTAURANT:[7315061],ASIAN_RESTAURANT:[7315062],CREOLE_RESTAURANT:[7315063],SOUL_FOOD:[7315064],IRISH_RESTAURANT:[7315065],JAMAICAN_RESTAURANT:[7315066],KOSHER_RESTAURANT:[7315067],CZECH_RESTAURANT:[7315068],HAMBURGER_RESTAURANT:[7315069],CHICKEN_RESTAURANT:[7315070],FUSION_RESTAURANT:[7315071],BRAZILIAN_RESTAURANT:[7315072],INTERNATIONAL_RESTAURANT:[7315073],MOROCCAN_RESTAURANT:[7315074],ORGANIC_FOOD_RESTAURANT:[7315075],TAPAS_RESTAURANT:[7315076],ICE_CREAM_PARLOR:[7315078],DOUGHNUT_RESTAURANT:[7315079],AFGHAN_RESTAURANT:[7315081],ARABIAN_RESTAURANT:[7315083],ARMENIAN_RESTAURANT:[7315085],AUSTRALIAN_RESTAURANT:[7315086],BASQUE_RESTAURANT:[7315087],BOLIVIAN_RESTAURANT:[7315088],BULGARIAN_RESTAURANT:[7315090],BURMESE_RESTAURANT:[7315091],CAMBODIAN_RESTAURANT:[7315092],COLOMBIAN_RESTAURANT:[7315094],CORSICAN_RESTAURANT:[7315095],CUBAN_RESTAURANT:[7315096],DANISH_RESTAURANT:[7315098],EGYPTIAN_RESTAURANT:[7315100],ENGLISH_RESTAURANT:[7315101],ETHIOPIAN_RESTAURANT:[7315102],FINNISH_RESTAURANT:[7315104],IRANIAN_RESTAURANT:[7315105],ISRAELI_RESTAURANT:[7315106],MONGOLIAN_RESTAURANT:[7315110],NEPALESE_RESTAURANT:[7315111],NORWEGIAN_RESTAURANT:[7315112],SCANDINAVIAN_RESTAURANT:[7315114],SWEDISH_RESTAURANT:[7315119],SYRIAN_RESTAURANT:[7315120],TEPPANYAKI_RESTAURANT:[7315121],TIBETAN_RESTAURANT:[7315122],TUNISIAN_RESTAURANT:[7315123],VENEZUELAN_RESTAURANT:[7315125],PAKISTANI_RESTAURANT:[7315127],POLYNESIAN_RESTAURANT:[7315129],FONDUE_RESTAURANT:[7315134],SNACKS_RESTAURANT:[7315139],SOUP_RESTAURANT:[7315140],BUFFET_RESTAURANT:[7315142],SALAD_BAR:[7315143],TAKEOUT_FOOD:[7315145],BANQUET_ROOMS:[7315146],CAFETERIA:[7315147],SUSHI_RESTAURANT:[7315148],YOGURT_JUICE_BAR:[7315149],TOURIST_INFORMATION_OFFICE:[7316],MUSEUM:[7317],THEATER:[7318],CONCERT_HALL:[7318002],MUSIC_CENTER:[7318003],OPERA_HOUSE:[7318004],PERFORMING_ARTS_THEATER:[7318005],CABARET_THEATER:[7318006],AMPHITHEATER:[7318007],DINNER_THEATER:[7318008],CULTURAL_CENTER:[7319],SPORTS_CENTER:[7320],FITNESS_CLUB_CENTER:[7320002],HORSE_RIDING_CENTER:[7320003],LEISURE_SPORTS_CENTER:[7320004],THEMATIC_SPORT_CENTER:[7320005],SQUASH_COURT:[7320006],HOSPITAL:[7321],GENERAL_HOSPITAL_AND_POLYCLINIC:[7321002],SPECIAL_HOSPITAL:[7321003],HOSPITAL_OF_CHINESE_MEDICINE:[7321004],HOSPITAL_FOR_WOMEN_AND_CHILDREN:[7321005],POLICE_STATION:[7322],POST_OFFICE:[7324],PHARMACY:[7326],DEPARTMENT_STORE:[7327],BANK:[7328],MARKET:[7332],INFORMAL_MARKET:[7332002],PUBLIC_MARKET:[7332003],FARMERS_MARKET:[7332004],SUPERMARKETS_HYPERMARKETS:[7332005],AGRICULTURE:[7335],HORTICULTURE:[7335002],PRIMARY_PRODUCER:[7335003],FARM:[7335004],SCENIC_PANORAMIC_VIEW:[7337],SWIMMING_POOL:[7338],PLACE_OF_WORSHIP:[7339],CHURCH:[7339002],MOSQUE:[7339003],SYNAGOG:[7339004],TEMPLE:[7339005],GURUDWARA:[7339006],PAGODA:[7339008],CASINO:[7341],CINEMA:[7342],MOVIE_THEATER:[7342002],DRIVE_IN_MOVIES:[7342003],MARINA:[7347,7347002],YACHT_BASIN:[7347003],WINERY:[7349],FERRY_TERMINAL:[7352],TRUCK_STOP:[7358],WEIGH_STATION:[7359,7359002],CAMPING_GROUND:[7360],RECREATIONAL_CAMPING_GROUND:[7360002],CARAVAN_SITE:[7360003],COMMUNITY_CENTER:[7363],EMBASSY:[7365],FRONTIER_CROSSING:[7366],GOVERNMENT_OFFICE:[7367],MOTORING_ORGANIZATION_OFFICE:[7368],OPEN_PARKING_AREA:[7369],OPEN_CAR_PARKING_AREA:[7369002],SCHOOL:[7372,7372002],CHILD_CARE_FACILITY:[7372003],PRE_SCHOOL:[7372004],PRIMARY_SCHOOL:[7372005],HIGH_SCHOOL:[7372006],SENIOR_HIGH_SCHOOL:[7372007],VOCATIONAL_SCHOOL:[7372008],LANGUAGE_SCHOOL:[7372010],ART_SCHOOL:[7372012],MIDDLE_SCHOOL:[7372014],DRIVING_SCHOOL:[7372016],SHOPPING_CENTER:[7373],STADIUM:[7374],ATHLETICS_TRACK:[7374002],CRICKET_GROUND:[7374003],SOCCER_STADIUM:[7374004],HORSE_RACING_TRACK:[7374005],MULTI_PURPOSE_STADIUM:[7374006],RUGBY_GROUND:[7374007],ICE_HOCKEY_ARENA:[7374008],BASEBALL_PARK:[7374009],FOOTBALL_STADIUM:[7374010],MOTOR_RACING_STADIUM:[7374011],BASKETBALL_ARENA:[7374012],RACE_TRACK:[7374013],NETBALL_STADIUM:[7374014],TOLL_GATE:[7375],TOURIST_ATTRACTION:[7376],BUILDING:[7376002],MONUMENT:[7376003],NATURAL_TOURIST_ATTRACTION:[7376004],OBSERVATORY:[7376005],PLANETARIUM:[7376006],DAM:[7376007],TUNNEL:[7376008],TOWER:[7376009],BRIDGE:[7376010],MAUSOLEUM_GRAVE:[7376011],ARCH:[7376012],STATUE:[7376013],WATER_HOLE:[7376014],COLLEGE_UNIVERSITY:[7377],COLLEGE_OR_UNIVERSITY:[7377002],JUNIOR_COLLEGE_COMMUNITY_COLLEGE:[7377003],BUSINESS_PARK:[7378],RAILWAY_STATION:[7380],INTERNATIONAL_RAILROAD_STATION:[7380002],NATIONAL_RAILROAD_STATION:[7380003],URBAN_STATION:[7380004],SUBWAY_STATION:[7380005],AIRPORT:[7383],PUBLIC_AIRPORT:[7383002],PRIVATE_AIRPORT:[7383003],MILITARY_AIRPORT:[7383004],AIRFIELD:[7383005],COURIER_DROP_BOX:[7388],ACCESS_GATEWAY:[7389],AIRLINE_ACCESS:[7389002],STATION_ACCESS:[7389003],SECURED_ENTRANCE:[7389004],EMERGENCY_MEDICAL_SERVICE:[7391],FIRE_STATION_BRIGADE:[7392],REST_AREA:[7395],ATM:[7397],GEOGRAPHIC_FEATURE:[8099],MOUNTAIN_PEAK:[8099002],CAVE:[8099003],RIDGE:[8099004],DUNE:[8099005],VALLEY:[8099006],PLAIN_FLAT:[8099007],PLATEAU:[8099008],WELL:[8099010],OASIS:[8099011],ROCKS:[8099012],RESERVOIR:[8099013],REEF:[8099014],RAPIDS:[8099015],BAY:[8099016],COVE:[8099017],HARBOR:[8099018],CAPE:[8099020],MINERAL_HOT_SPRINGS:[8099021],ISLAND:[8099022],MARSH:[8099023],RIVER_CROSSING:[8099024],HILL:[8099025],QUARRY:[8099026],LOCALE:[8099027],PRIMARY_RESOURCE_UTILITY:[9150],TRANSPORT_AUTHORITY_VEHICLE_REGISTRATION:[9151],NON_GOVERNMENTAL_ORGANIZATION:[9152],WELFARE_ORGANIZATION:[9153],PRISON_CORRECTIONAL_FACILITY:[9154],CAR_WASH:[9155,9155002],MANUFACTURING_FACILITY:[9156],RESEARCH_FACILITY:[9157],MEDIA_FACILITY:[9158],PORT_WAREHOUSE_FACILITY:[9159],EXCHANGE:[9160],STOCK_EXCHANGE:[9160002],GOLD_EXCHANGE:[9160003],CURRENCY_EXCHANGE:[9160004],COMPANY:[9352],SERVICE_COMPANY:[9352002],ADVERTISING_COMPANY:[9352003],COMPUTER_DATA_SERVICES:[9352004],SOFTWARE_COMPANY:[9352005],DIVERSIFIED_FINANCIALS:[9352006],INSURANCE_COMPANY:[9352007],DELIVERY_SERVICE:[9352008],REAL_ESTATE_COMPANY:[9352009],MANUFACTURING_COMPANY:[9352011],AGRICULTURAL_TECHNOLOGY:[9352012],AUTOMOBILE_COMPANY:[9352013],CHEMICAL_COMPANY:[9352014],ELECTRONICS_COMPANY:[9352015],MECHANICAL_ENGINEERING:[9352016],PHARMACEUTICAL_COMPANY:[9352018],PUBLISHING_TECHNOLOGIES:[9352019],TELECOMMUNICATIONS:[9352020],TAX_SERVICES:[9352022],LEGAL_SERVICES:[9352023],TRANSPORT_COMPANY:[9352024],BUS_CHARTER_COMPANY:[9352025],TAXI_LIMOUSINE_SHUTTLE_SERVICE:[9352026],BUS_LINES:[9352027],SCHOOL_BUS_COMPANY:[9352028],CLEANING_SERVICES:[9352029],OIL_NATURAL_GAS:[9352030],MINING_COMPANY:[9352031],CONSTRUCTION_COMPANY:[9352032],MOVING_STORAGE_COMPANY:[9352033],AIRLINE_COMPANY:[9352034],FUNERAL_SERVICE_MORTUARIES:[9352036],INVESTMENT_ADVISOR:[9352037],EQUIPMENT_RENTAL:[9352038],BUSINESS_SERVICES:[9352039],CABLE_TELEPHONE_COMPANY:[9352040],AUTOMOBILE_MANUFACTURING:[9352041],IMPORT_EXPORT_AND_DISTRIBUTION:[9352042],CATERING_SERVICES:[9352043],HOME_APPLIANCE_REPAIR:[9352044],ANIMAL_SHELTER:[9352045],WEDDING_SERVICES:[9352046],BEACH:[9357],RESTAURANT_AREA:[9359],ICE_SKATING_RINK:[9360],SHOP:[9361],BOOK_SHOP:[9361002],C_DS_DVD_VIDEOS:[9361003],CHILDRENS_CLOTHES:[9361004],FOOTWEAR_SHOE_REPAIRS:[9361005],CLOTHING_SHOP:[9361006],MENS_CLOTHING:[9361007],WOMENS_CLOTHING:[9361008],CONVENIENCE_STORE:[9361009],DRY_CLEANER:[9361010],CAMERAS_PHOTOGRAPHY:[9361011],COMPUTER_COMPUTER_SUPPLIES:[9361012],CONSUMER_ELECTRONICS:[9361013],OFFICE_EQUIPMENT:[9361014],REAL_ESTATE_AGENT:[9361015],FACTORY_OUTLET:[9361016],FLORISTS:[9361017],BAKERY:[9361018],BUTCHER:[9361019],FISHMONGER:[9361020],FOOD_MARKET:[9361021],GREENGROCER:[9361022],GROCERY_STORE:[9361023],OTHER_FOOD_SHOPS:[9361024],WINE_SPIRITS:[9361025],GIFTS_CARDS_NOVELTIES_SOUVENIRS:[9361026],HAIRDRESSER:[9361027],CARPET_FLOOR_COVERINGS:[9361028],CURTAINS_TEXTILES:[9361029],DO_IT_YOURSELF_CENTERS:[9361030],HOUSE_GARDEN_FURNITURE_FITTINGS:[9361031],GARDEN_CENTERS_SERVICES:[9361032],KITCHENS_BATHROOMS:[9361033],LIGHTING_SHOPS:[9361034],PAINTING_DECORATING:[9361035],JEWELRY_CLOCKS_WATCHES:[9361036],NEWSAGENTS_TOBACCONISTS:[9361037],OPTICIAN:[9361038],SPORTS_EQUIPMENT_CLOTHING:[9361039],TOYS_GAMES_SHOP:[9361040],TRAVEL_AGENT:[9361041],CONSTRUCTION_MATERIAL_EQUIPMENT:[9361042],MEDICAL_SUPPLIES_EQUIPMENT:[9361043],VIDEO_RENTAL_SHOP:[9361044],LAUNDRY:[9361045],PHOTO_LAB_DEVELOPMENT:[9361046],PHOTOCOPY_SHOP:[9361047],ANIMAL_SERVICES:[9361048],ANTIQUE_ART_SHOP:[9361049],BEAUTY_SUPPLIES:[9361050],DRUG_STORE:[9361051],ELECTRICAL_APPLIANCES_SHOP:[9361052],HOBBY_SHOP:[9361053],FURNITURE_HOME_FURNISHINGS:[9361054],GLASSWARE_CERAMIC_SHOP:[9361055],LOCAL_SPECIALITIES_SHOP:[9361056],RECYCLING_SHOP:[9361057],BAGS_LEATHERWEAR:[9361058],MUSIC_INSTRUMENTS_STORE:[9361059],DELICATESSEN:[9361060],SPECIALTY_FOODS:[9361061],SHOPPING_SERVICE:[9361062],RETAIL_OUTLET:[9361063],PET_SUPPLIES:[9361064],WHOLESALE_CLUB:[9361066],BEAUTY_SALON:[9361067],NAIL_SALON:[9361068],HARDWARE_STORE:[9361069],PAWN_SHOP:[9361070],LOTTERY_SHOP:[9361071],BETTING_STATION:[9361072],AGRICULTURAL_SUPPLIES:[9361073],MOBILE_PHONE_SHOP:[9361075],DRIVE_THROUGH_BOTTLE_SHOP:[9361076],TAILOR_SHOP:[9361077],SECURITY_PRODUCTS:[9361078],SPECIALTY_CLOTHING_SHOP:[9361079],GLASS_WINDOWS_STORE:[9361080],VARIETY_STORE:[9361081],CHRISTMAS_HOLIDAY_SHOP:[9361082],BOATING_EQUIPMENT_ACCESSORIES:[9361083],PARK_RECREATION_AREA:[9362],BATTLEFIELD:[9362002],CEMETERY:[9362003],HISTORIC_SITE:[9362004],HISTORICAL_PARK:[9362005],MEMORIAL:[9362007],PARK:[9362008],PARKWAY:[9362009],RECREATION_AREA:[9362011],WILDERNESS_AREA:[9362014],FOREST_AREA:[9362015],FISHING_HUNTING_AREA:[9362016],FAIRGROUND:[9362017],OTHER_WINTER_SPORT:[9362025],SKI_RESORT:[9362026],BOAT_LAUNCHING_RAMP:[9362032],PICNIC_AREA:[9362033],PROTECTED_AREA:[9362037],COURTHOUSE:[9363],MARIJUANA_DISPENSARY:[9364],MEDICINAL_MARIJUANA_DISPENSARY:[9364002],RECREATIONAL_MARIJUANA_DISPENSARY:[9364003],TENNIS_COURT:[9369],WATER_SPORT:[9371],DOCTOR:[9373],GENERAL_PRACTITIONER:[9373002],SPECIALIST:[9373003],DENTIST:[9374],VETERINARIAN:[9375],CAFE_PUB:[9376],CAFE:[9376002],PUB:[9376003],INTERNET_CAFE:[9376004],TEA_HOUSE:[9376005],COFFEE_SHOP:[9376006],MICROBREWERY:[9376007],EXHIBITION_CONVENTION_CENTER:[9377],LEISURE_CENTER:[9378],BOWLING_CENTER:[9378002],DANCE_STUDIO_SCHOOL:[9378003],SAUNA_SOLARIUM_MASSAGE:[9378005],SNOOKER_POOL_BILLIARD:[9378006],NIGHTLIFE:[9379],DISCO_CLUB:[9379002],BAR:[9379004],COCKTAIL_BAR:[9379006],JAZZ_CLUB:[9379008],COMEDY_CLUB:[9379009],KARAOKE_CLUB:[9379010],COMMERCIAL_BUILDING:[9382],INDUSTRIAL_BUILDING:[9383],NATIVE_RESERVATION:[9389],HEALTH_CARE_SERVICE:[9663],PERSONAL_SERVICE:[9663002],PERSONAL_CARE_FACILITY:[9663003],BLOOD_BANK:[9663004],AMBULANCE_UNIT:[9663005],ENTERTAINMENT:[9900],AMUSEMENT_PARK:[9902,9902003],AMUSEMENT_PLACE:[9902004],AUTOMOTIVE_DEALER:[9910],CAR_DEALER:[9910002],MOTORCYCLE_DEALER:[9910003],BOAT_DEALER:[9910004],RECREATIONAL_VEHICLE_DEALER:[9910005],TRUCK_DEALER:[9910006],VAN_DEALER:[9910007],BUS_DEALER:[9910008],ATV_DEALER:[9910009],GOLF_COURSE:[9911],LIBRARY:[9913],ZOOS_ARBORETA_BOTANICAL_GARDEN:[9927],ARBORETA_BOTANICAL_GARDENS:[9927002],ZOO:[9927003],AQUATIC_ZOO:[9927004],WILDLIFE_PARK:[9927005],RENT_A_CAR_PARKING:[9930],PUBLIC_AMENITY:[9932],PASSENGER_TRANSPORT_TICKET_OFFICE:[9932002],PUBLIC_CALL_BOX:[9932004],PUBLIC_TOILET:[9932005],ROAD_RESCUE:[9932006],MOUNTAIN_PASS:[9935],CLUB_ASSOCIATION:[9937],BEACH_CLUB:[9937002],HOCKEY_CLUB:[9937003],PUBLIC_TRANSPORT_STOP:[9942],BUS_STOP:[9942002],TAXI_STAND:[9942003],STREETCAR_STOP:[9942004],EMERGENCY_ROOM:[9956]},b=Object.fromEntries(Object.entries($).map(([A,E])=>[A,E[0]])),w=Object.fromEntries(Object.entries($).flatMap(([A,E])=>E.map(E=>[E,A]))),x=(E,R)=>A(E,y(R)).properties.location,Z=(A,E)=>{for(let R=0;R<A.length-1;R++)if(E>=A[R]&&E<=A[R+1])return R+1;return E<A[0]?0:A.length},X=(A,E,R)=>Q(A,E,[R])[0],Q=(A,E,R)=>{if(0===R.length)return[];if(0===A.geometry.coordinates.length||E.length<2)return R.map(()=>0);const T=E.map(E=>x(A,E)??0);return R.map(E=>{const R=x(A,E);return void 0===R?0:Z(T,R)})},J=(A,E,R)=>k(A,E,[R]),k=(A,E,R)=>{if(0===R.length)return E.slice();if(0===A.geometry.coordinates.length||E.length<2)return[...R,...E];const T=E.map(E=>x(A,E)??0),_=Array.from({length:E.length+1},()=>[]);for(let N=0;N<R.length;N++){const E=R[N],I=x(A,E);_[void 0===I?0:Z(T,I)].push({waypoint:E,location:I??0,inputIndex:N})}for(const N of _)N.sort((A,E)=>A.location-E.location||A.inputIndex-E.inputIndex);const I=[];for(let N=0;N<E.length;N++){for(const A of _[N])I.push(A.waypoint);I.push(E[N])}for(const N of _[E.length])I.push(N.waypoint);return I},j=(A,E)=>{const{progress:R}=A.properties;if(!R||0===R.length)return;const T=A.geometry.coordinates.length;if(E<0||E>=T)return;const _=EA(R,"pointIndex",E);if(!_)return;const{lower:I,lowerVal:N,upper:S,upperVal:O}=_,C=I.distanceInMeters,e=S.distanceInMeters,L=I.travelTimeInSeconds,U=S.travelTimeInSeconds;if(void 0===C||void 0===e||void 0===L||void 0===U)return;if(N===O)return{distanceInMeters:C,travelTimeInSeconds:L};const t=(E-N)/(O-N);return{distanceInMeters:C+t*(e-C),travelTimeInSeconds:L+t*(U-L)}},z=(A,E,R)=>{const T=j(A,E),_=j(A,R);if(T&&_)return{start:T,end:_,delta:{distanceInMeters:_.distanceInMeters-T.distanceInMeters,travelTimeInSeconds:_.travelTimeInSeconds-T.travelTimeInSeconds}}},q=(A,E)=>z(A,E.startPointIndex,E.endPointIndex),AA=(A,E)=>{const R=A.geometry.coordinates;if(!R||0===R.length||E.startPointIndex<0||E.endPointIndex>=R.length||E.startPointIndex>E.endPointIndex)return;const T=R[E.startPointIndex],_=R[E.endPointIndex],I=R[Math.floor((E.startPointIndex+E.endPointIndex)/2)];let N=d(T);return N=d(I,N),N=d(_,N),N},EA=(A,E,R)=>{let T,_,I,N;for(const S of A){const A=S[E];void 0!==A&&(A<=R&&(T=S,_=A),A>=R&&void 0===I&&(I=S,N=A))}return void 0!==T&&void 0!==_&&void 0!==I&&void 0!==N?{lower:T,lowerVal:_,upper:I,upperVal:N}:void 0},RA=(A,E,R)=>{const T=A.geometry.coordinates,_=Math.min(E+1,T.length-1),I=T[E],N=T[_],S=j(A,E),O=j(A,_);if(S&&O)return{position:[I[0]+R*(N[0]-I[0]),I[1]+R*(N[1]-I[1])],travelTimeInSeconds:S.travelTimeInSeconds+R*(O.travelTimeInSeconds-S.travelTimeInSeconds),distanceInMeters:S.distanceInMeters+R*(O.distanceInMeters-S.distanceInMeters)}},TA=(A,E,R)=>{const{progress:T}=A.properties;if(!T||0===T.length)return;const _=A.geometry.coordinates,I=T[0],N=T.at(-1),S=I[E],O=N[E];if(void 0===S||void 0===O)return;if(R<=S)return{position:_[I.pointIndex],travelTimeInSeconds:I.travelTimeInSeconds??0,distanceInMeters:I.distanceInMeters??0};if(R>=O)return{position:_[N.pointIndex],travelTimeInSeconds:N.travelTimeInSeconds??0,distanceInMeters:N.distanceInMeters??0};const C=((A,E,R)=>{const T=EA(A,E,R);if(!T)return;const{lower:_,lowerVal:I,upper:N,upperVal:S}=T,O=I===S?0:(R-I)/(S-I),C=_.pointIndex+O*(N.pointIndex-_.pointIndex),e=Math.floor(C);return{pathIndex:e,progressRatioTowardsNextPathPoint:C-e}})(T,E,R);return void 0!==C?RA(A,C.pathIndex,C.progressRatioTowardsNextPathPoint):void 0},_A=(A,E)=>{if("traveledTimeInSeconds"in E)return TA(A,"travelTimeInSeconds",E.traveledTimeInSeconds);if("traveledDistanceInMeters"in E)return TA(A,"distanceInMeters",E.traveledDistanceInMeters);const R=A.properties.summary.departureTime;if(!R)return;const T=(E.clockTime.getTime()-R.getTime())/1e3;return T<0?void 0:TA(A,"travelTimeInSeconds",T)},IA=(E,R)=>{const{progress:T}=E.properties;if(!T?.length)return;const _=E.geometry.coordinates,I=A(E,y(R)),N=I.properties.index??0,S=Math.min(N+1,_.length-1),O=_[N],C=_[S];return RA(E,N,((A,E,R)=>{const T=R[0]-A[0],_=R[1]-A[1],I=T*T+_*_;if(0===I)return 0;const N=((E[0]-A[0])*T+(E[1]-A[1])*_)/I;return Math.max(0,Math.min(1,N))})(O,I.geometry.coordinates,C))},NA=(A,E)=>{let R;return R=Array.isArray(A)||"Feature"!==A.type?v(y(A)):A,{...R,properties:{...R.properties,radiusMeters:E}}},SA=A=>Array.isArray(A)?Array.isArray(A[0])?"path":"waypoint":"Feature"===A.type&&"LineString"===A.geometry.type?"path":"waypoint",OA=["unknown","minor","moderate","major","indefinite"],CA={1:"accident",2:"fog",3:"danger",4:"rain",5:"frost",6:"jam",7:"lane-closed",8:"road-closed",9:"roadworks",10:"wind",11:"flooding",12:"animals-on-road",13:"narrow-lanes",14:"broken-down-vehicle"},eA=Object.fromEntries(Object.entries(CA).map(([A,E])=>[E,Number(A)])),LA=A=>CA[A]??"other",UA=A=>eA[A]??0,tA=A=>A?.minutes??"min",rA=(A,E)=>{if(A){const _=Math.abs(A)/3600;let I=Math.floor(_),N=Math.round(_%1*60);60===N&&(N=0,I++);const S={...T.instance.get().displayUnits?.time,...E};if(I)return`${I} ${R=S,R?.hours??"hr"} ${N.toString().padStart(2,"0")} ${tA(S)}`;if(N)return`${N.toString()} ${tA(S)}`}var R},nA=1609.344,PA=A=>A?.meters??"m",MA=A=>A?.kilometers??"km",oA=(A,E,R)=>E<3?((A,E,R)=>{const T=Number.parseInt(E.toString()),_=E-T,I=A<0?"-":"";if(_<.125)return`${I}${T} ${R}`;const N=T>0?T:"";return _<.375?`${I}${N}¼ ${R}`:_<.625?`${I}${N}½ ${R}`:_<.875?`${I}${N}¾ ${R}`:`${I}${T+1} ${R}`})(A,E,R):E<10?((A,E,R)=>{const T=Number.parseInt(E.toString()),_=E-T,I=A<0?"-":"";return _<.25?`${I}${T} ${R}`:_<.75?`${I}${T}½ ${R}`:`${I}${T+1} ${R}`})(A,E,R):`${Math.round(A)} ${R}`,HA=A=>A.miles??"mi",iA=(A,E)=>{const R=A/nA,T=Math.abs(R);return T<.125?((A,E)=>{const R=Math.round(A/.3048),T=Math.abs(R);return T<30?`${R} ${E}`:T<500?`${10*Math.round(R/10)} ${E}`:`${100*Math.round(R/100)} ${E}`})(A,E.feet??"ft"):oA(R,T,HA(E))},aA=(A,E)=>{const R=A/nA,T=Math.abs(R);return T<.125?((A,E)=>{const R=Math.round(A/.9144);return Math.abs(R)<10?`${Math.round(R)} ${E}`:`${10*Math.round(R/10)} ${E}`})(A,E.yards??"yd"):oA(R,T,HA(E))},GA=(A,R)=>{if(E(A))return"";const _={...T.instance.get().displayUnits?.distance,...R};switch(_?.type??"metric"){case"metric":return((A,E)=>{const R=Math.abs(A);if(R<10)return`${A} ${PA(E)}`;if(R<500)return`${10*Math.round(A/10)} ${PA(E)}`;if(R<1e3){const R=100*Math.round(A/100);return 1e3===R||-1e3===R?`${A<0?"-":""}1 ${MA(E)}`:`${R} ${PA(E)}`}return R<1e4?`${100*Math.round(A/100)/1e3} ${MA(E)}`:`${Math.round(A/1e3)} ${MA(E)}`})(A,_);case"imperial_us":return iA(A,_);case"imperial_uk":return aA(A,_)}};export{m as TOMTOM_USER_AGENT_SDK_NAME,T as TomTomConfig,i as areaAnalyticsMetricKeys,NA as asSoftWaypoint,P as avoidableTypes,V as bboxCenter,c as bboxExpandedWithBBox,u as bboxExpandedWithGeoJSON,d as bboxExpandedWithPosition,Y as bboxFromBBoxes,F as bboxFromCoordsArray,l as bboxFromGeoJSON,B as bboxOnlyIfWithArea,j as calculateProgressAtRoutePoint,S as chargingPointCapabilities,O as chargingPointRestrictions,N as chargingPointStatus,I as chargingStationAccessTypes,C as connectorTypes,e as currentTypes,R as defaultConfig,X as findBestWaypointInsertionIndex,Q as findBestWaypointInsertionIndices,GA as formatDistance,rA as formatDuration,G as fullTrafficIncidentCategories,K as generateId,g as generateTomTomHeaders,L as geographyTypes,_A as getCoordinateAtRouteProgress,f as getPosition,y as getPositionStrict,IA as getProgressAtNearestRoutePoint,SA as getRoutePlanningLocationType,z as getRouteProgressBetween,q as getRouteProgressForSection,AA as getSectionBBox,LA as iconToTrafficIncidentCategory,OA as indexedMagnitudes,M as inputSectionTypes,o as inputSectionTypesWithGuidance,D as isBBoxWithArea,_ as mergeFromGlobal,n as paymentMethods,U as placeTypes,r as plugTypes,t as poiCategories,b as poiCategoriesToID,$ as poiCategoriesToIDs,w as poiIDsToCategories,p as polygonFromBBox,H as sectionTypes,v as toPointFeature,W as toPointGeometry,a as trafficIncidentRequestCategories,UA as trafficIncidentToIconCategory,s as views,J as withInsertedWaypoint,k as withInsertedWaypoints};
|
|
1
|
+
import{nearestPointOnLine as A}from"@turf/turf";import{isNil as E}from"lodash-es";var R={commonBaseURL:"https://api.tomtom.com",apiKey:"",apiVersion:1,retry:{initialWaitMs:.447,backoffFactor:1.618,timeoutMs:4e4}},T=class A{static{this.instance=new A}constructor(){this.config={...R}}put(A){this.config={...this.config,...A}}reset(){this.config={...R}}get(){return this.config}},_=(A={})=>({...T.instance.get(),...A}),I=["Public","Authorized","Restricted","Private","Unknown"],N=["Available","Reserved","Occupied","OutOfService","Unknown"],S=["ChargingProfileCapable","ChargingPreferencesCapable","ChipCardSupport","ContactlessCardSupport","CreditCardPayable","DebitCardPayable","PedTerminal","RemoteStartStopCapable","Reservable","RfidReader","StartSessionConnectorRequired","TokenGroupCapable","UnlockCapable","PlugAndCharge","Unknown"],O=["EvOnly","Plugged","Disabled","Customers","Motorcycles"],C=["StandardHouseholdCountrySpecific","IEC62196Type1","IEC62196Type1CCS","IEC62196Type2CableAttached","IEC62196Type2Outlet","IEC62196Type2CCS","IEC62196Type3","Chademo","GBT20234Part2","GBT20234Part3","IEC60309AC3PhaseRed","IEC60309AC1PhaseBlue","IEC60309DCWhite","Tesla"],e=["AC1","AC3","DC"],L=["Country","CountrySubdivision","CountrySecondarySubdivision","CountryTertiarySubdivision","Municipality","MunicipalitySubdivision","Neighbourhood","PostalCodeArea"],U=["POI","Street","Geography","Point Address","Address Range","Cross Street"],t=["ACCESS_GATEWAY","ADVENTURE_SPORTS_FACILITY","ADVENTURE_VEHICLE_TRAIL","ADVERTISING_COMPANY","AFGHAN_RESTAURANT","AFRICAN_RESTAURANT","AGRICULTURAL_SUPPLIES","AGRICULTURAL_TECHNOLOGY","AGRICULTURE","AIRFIELD","AIRLINE_ACCESS","AIRLINE_COMPANY","AIRPORT","AMBULANCE_UNIT","AMERICAN_RESTAURANT","AMPHITHEATER","AMUSEMENT_PARK","AMUSEMENT_PLACE","ANIMAL_SERVICES","ANIMAL_SHELTER","ANTIQUE_ART_SHOP","APARTMENT_RENTAL","AQUATIC_ZOO","ARABIAN_RESTAURANT","ARBORETA_BOTANICAL_GARDENS","ARCH","ARMENIAN_RESTAURANT","ART_SCHOOL","ASIAN_RESTAURANT","ATHLETICS_TRACK","ATM","ATV_DEALER","AUSTRALIAN_RESTAURANT","AUSTRIAN_RESTAURANT","AUTOMOBILE_COMPANY","AUTOMOBILE_MANUFACTURING","AUTOMOTIVE_DEALER","BAGS_LEATHERWEAR","BAKERY","BANK","BANQUET_ROOMS","BAR","BARBECUE_RESTAURANT","BASEBALL_PARK","BASKETBALL_ARENA","BASQUE_RESTAURANT","BATTLEFIELD","BAY","BEACH","BEACH_CLUB","BEAUTY_SALON","BEAUTY_SUPPLIES","BELGIAN_RESTAURANT","BETTING_STATION","BISTRO","BLOOD_BANK","BOATING_EQUIPMENT_ACCESSORIES","BOAT_DEALER","BOAT_LAUNCHING_RAMP","BODYSHOP","BOLIVIAN_RESTAURANT","BOOK_SHOP","BOWLING_CENTER","BRAZILIAN_RESTAURANT","BRIDGE","BRITISH_RESTAURANT","BUFFET_RESTAURANT","BUILDING","BULGARIAN_RESTAURANT","BUNGALOW_RENTAL","BURMESE_RESTAURANT","BUSINESS_PARK","BUSINESS_SERVICES","BUS_CHARTER_COMPANY","BUS_DEALER","BUS_LINES","BUS_STOP","BUTCHER","B_B_GUEST_HOUSE","CABARET_THEATER","CABINS_LODGES","CABLE_TELEPHONE_COMPANY","CAFE","CAFETERIA","CAFE_PUB","CALIFORNIAN_RESTAURANT","CAMBODIAN_RESTAURANT","CAMERAS_PHOTOGRAPHY","CAMPING_GROUND","CANADIAN_RESTAURANT","CAPE","CARAVAN_SITE","CARIBBEAN_RESTAURANT","CARPET_FLOOR_COVERINGS","CAR_DEALER","CAR_GLASS_REPLACEMENT_SHOP","CAR_REPAIR_AND_SERVICE","CAR_WASH","CASINO","CATERING_SERVICES","CAVE","CEMETERY","CHALET_RENTAL","CHEMICAL_COMPANY","CHICKEN_RESTAURANT","CHILDRENS_CLOTHES","CHILD_CARE_FACILITY","CHINESE_RESTAURANT","CHRISTMAS_HOLIDAY_SHOP","CHURCH","CINEMA","CLEANING_SERVICES","CLOTHING_SHOP","CLUB_ASSOCIATION","COCKTAIL_BAR","COFFEE_SHOP","COLLEGE_OR_UNIVERSITY","COLLEGE_UNIVERSITY","COLOMBIAN_RESTAURANT","COMEDY_CLUB","COMMERCIAL_BUILDING","COMMUNITY_CENTER","COMPANY","COMPUTER_COMPUTER_SUPPLIES","COMPUTER_DATA_SERVICES","CONCERT_HALL","CONSTRUCTION_COMPANY","CONSTRUCTION_MATERIAL_EQUIPMENT","CONSUMER_ELECTRONICS","CONVENIENCE_STORE","CORSICAN_RESTAURANT","COTTAGE_RENTAL","COURIER_DROP_BOX","COURTHOUSE","COVE","CREOLE_RESTAURANT","CREPERIE","CRICKET_GROUND","CUBAN_RESTAURANT","CULTURAL_CENTER","CURRENCY_EXCHANGE","CURTAINS_TEXTILES","CZECH_RESTAURANT","C_DS_DVD_VIDEOS","DAM","DANCE_STUDIO_SCHOOL","DANISH_RESTAURANT","DELICATESSEN","DELIVERY_SERVICE","DENTIST","DEPARTMENT_STORE","DINNER_THEATER","DISCO_CLUB","DIVERSIFIED_FINANCIALS","DOCTOR","DONGBEI_RESTAURANT","DOUGHNUT_RESTAURANT","DO_IT_YOURSELF_CENTERS","DRIVE_IN_MOVIES","DRIVE_THROUGH_BOTTLE_SHOP","DRIVING_SCHOOL","DRUG_STORE","DRY_CLEANER","DUNE","DUTCH_RESTAURANT","EGYPTIAN_RESTAURANT","ELECTRICAL_APPLIANCES_SHOP","ELECTRIC_VEHICLE_STATION","ELECTRONICS_COMPANY","EMBASSY","EMERGENCY_MEDICAL_SERVICE","EMERGENCY_ROOM","ENGLISH_RESTAURANT","ENTERTAINMENT","EQUIPMENT_RENTAL","ETHIOPIAN_RESTAURANT","EXCHANGE","EXHIBITION_CONVENTION_CENTER","FACTORY_OUTLET","FAIRGROUND","FARM","FARMERS_MARKET","FAST_FOOD","FERRY_TERMINAL","FINNISH_RESTAURANT","FIRE_STATION_BRIGADE","FISHING_HUNTING_AREA","FISHMONGER","FITNESS_CLUB_CENTER","FLATS_APARTMENT_COMPLEX","FLORISTS","FONDUE_RESTAURANT","FOOD_MARKET","FOOTBALL_STADIUM","FOOTWEAR_SHOE_REPAIRS","FOREST_AREA","FRENCH_RESTAURANT","FRONTIER_CROSSING","FUNERAL_SERVICE_MORTUARIES","FURNITURE_HOME_FURNISHINGS","FUSION_RESTAURANT","GARDEN_CENTERS_SERVICES","GAS_STATION","GENERAL_HOSPITAL_AND_POLYCLINIC","GENERAL_PRACTITIONER","GEOGRAPHIC_FEATURE","GERMAN_RESTAURANT","GIFTS_CARDS_NOVELTIES_SOUVENIRS","GLASSWARE_CERAMIC_SHOP","GLASS_WINDOWS_STORE","GOLD_EXCHANGE","GOLF_COURSE","GOVERNMENT_OFFICE","GREEK_RESTAURANT","GREENGROCER","GRILL_RESTAURANT","GROCERY_STORE","GURUDWARA","HAIRDRESSER","HAMBURGER_RESTAURANT","HARBOR","HARDWARE_STORE","HAWAIIAN_RESTAURANT","HEALTH_CARE_SERVICE","HELIPAD_HELICOPTER_LANDING","HIGH_SCHOOL","HIKING_TRAIL","HILL","HISTORICAL_PARK","HISTORIC_SITE","HOBBY_SHOP","HOCKEY_CLUB","HOLIDAY_RENTAL","HOME_APPLIANCE_REPAIR","HORSE_RACING_TRACK","HORSE_RIDING_CENTER","HORSE_RIDING_TRAIL","HORTICULTURE","HOSPITAL","HOSPITAL_FOR_WOMEN_AND_CHILDREN","HOSPITAL_OF_CHINESE_MEDICINE","HOSTEL","HOTEL","HOTEL_MOTEL","HOT_POT_RESTAURANT","HOUSE_GARDEN_FURNITURE_FITTINGS","HUNAN_RESTAURANT","HUNGARIAN_RESTAURANT","ICE_CREAM_PARLOR","ICE_HOCKEY_ARENA","ICE_SKATING_RINK","IMPORT_EXPORT_AND_DISTRIBUTION","INDIAN_RESTAURANT","INDONESIAN_RESTAURANT","INDUSTRIAL_BUILDING","INFORMAL_MARKET","INSURANCE_COMPANY","INTERNATIONAL_RAILROAD_STATION","INTERNATIONAL_RESTAURANT","INTERNET_CAFE","INVESTMENT_ADVISOR","IRANIAN_RESTAURANT","IRISH_RESTAURANT","ISLAND","ISRAELI_RESTAURANT","ITALIAN_RESTAURANT","JAMAICAN_RESTAURANT","JAPANESE_RESTAURANT","JAZZ_CLUB","JEWELRY_CLOCKS_WATCHES","JEWISH_RESTAURANT","JUNIOR_COLLEGE_COMMUNITY_COLLEGE","KARAOKE_CLUB","KITCHENS_BATHROOMS","KOREAN_RESTAURANT","KOSHER_RESTAURANT","LANGUAGE_SCHOOL","LATIN_AMERICAN_RESTAURANT","LAUNDRY","LEBANESE_RESTAURANT","LEGAL_SERVICES","LEISURE_CENTER","LEISURE_SPORTS_CENTER","LIBRARY","LIGHTING_SHOPS","LOCALE","LOCAL_SPECIALITIES_SHOP","LOTTERY_SHOP","MANUFACTURING_COMPANY","MANUFACTURING_FACILITY","MARIJUANA_DISPENSARY","MARINA","MARKET","MARSH","MAUSOLEUM_GRAVE","MECHANICAL_ENGINEERING","MEDIA_FACILITY","MEDICAL_SUPPLIES_EQUIPMENT","MEDICINAL_MARIJUANA_DISPENSARY","MEDITERRANEAN_RESTAURANT","MEMORIAL","MENS_CLOTHING","MEXICAN_RESTAURANT","MICROBREWERY","MIDDLE_EASTERN_RESTAURANT","MIDDLE_SCHOOL","MILITARY_AIRPORT","MINERAL_HOT_SPRINGS","MINING_COMPANY","MOBILE_PHONE_SHOP","MONGOLIAN_RESTAURANT","MONUMENT","MOROCCAN_RESTAURANT","MOSQUE","MOTEL","MOTORCYCLE_DEALER","MOTORCYCLE_REPAIR","MOTORING_ORGANIZATION_OFFICE","MOTOR_RACING_STADIUM","MOUNTAIN_BIKE_TRAIL","MOUNTAIN_PASS","MOUNTAIN_PEAK","MOVIE_THEATER","MOVING_STORAGE_COMPANY","MULTI_PURPOSE_STADIUM","MUSEUM","MUSIC_CENTER","MUSIC_INSTRUMENTS_STORE","NAIL_SALON","NATIONAL_RAILROAD_STATION","NATIVE_RESERVATION","NATURAL_TOURIST_ATTRACTION","NEPALESE_RESTAURANT","NETBALL_STADIUM","NEWSAGENTS_TOBACCONISTS","NIGHTLIFE","NON_GOVERNMENTAL_ORGANIZATION","NORWEGIAN_RESTAURANT","OASIS","OBSERVATORY","OFFICE_EQUIPMENT","OIL_NATURAL_GAS","OPEN_CAR_PARKING_AREA","OPEN_PARKING_AREA","OPERA_HOUSE","OPTICIAN","ORGANIC_FOOD_RESTAURANT","ORIENTAL_RESTAURANT","OTHER_FOOD_SHOPS","OTHER_WINTER_SPORT","PAGODA","PAINTING_DECORATING","PAKISTANI_RESTAURANT","PARK","PARKING_GARAGE","PARKWAY","PARK_RECREATION_AREA","PASSENGER_TRANSPORT_TICKET_OFFICE","PAWN_SHOP","PERSONAL_CARE_FACILITY","PERSONAL_SERVICE","PERFORMING_ARTS_THEATER","PERUVIAN_RESTAURANT","PET_SUPPLIES","PHARMACEUTICAL_COMPANY","PHARMACY","PHILIPPINE_RESTAURANT","PHOTOCOPY_SHOP","PHOTO_LAB_DEVELOPMENT","PICNIC_AREA","PIZZERIA","PLACE_OF_WORSHIP","PLAIN_FLAT","PLANETARIUM","PLATEAU","POLICE_STATION","POLISH_RESTAURANT","POLYNESIAN_RESTAURANT","PORTUGUESE_RESTAURANT","PORT_WAREHOUSE_FACILITY","POST_OFFICE","PRE_SCHOOL","PRIMARY_PRODUCER","PRIMARY_RESOURCE_UTILITY","PRIMARY_SCHOOL","PRISON_CORRECTIONAL_FACILITY","PRIVATE_AIRPORT","PROTECTED_AREA","PUB","PUBLIC_AIRPORT","PUBLIC_AMENITY","PUBLIC_CALL_BOX","PUBLIC_MARKET","PUBLIC_TOILET","PUBLIC_TRANSPORT_STOP","PUBLISHING_TECHNOLOGIES","PUB_FOOD","QUARRY","RACE_TRACK","RAILWAY_STATION","RAPIDS","REAL_ESTATE_AGENT","REAL_ESTATE_COMPANY","RECREATIONAL_CAMPING_GROUND","RECREATIONAL_MARIJUANA_DISPENSARY","RECREATIONAL_VEHICLE_DEALER","RECREATION_AREA","RECYCLING_SHOP","REEF","RENT_A_CAR_FACILITY","RENT_A_CAR_PARKING","REPAIR_FACILITY","RESEARCH_FACILITY","RESERVOIR","RESIDENTIAL_ACCOMMODATION","RESORT","RESTAURANT","RESTAURANT_AREA","REST_AREA","REST_CAMP","RETAIL_OUTLET","RETIREMENT_COMMUNITY","RIDGE","RIVER_CROSSING","ROAD_RESCUE","ROAD_TRAFFIC_CONTROL_CENTER","ROCKS","ROCK_CLIMBING_TRAIL","RUGBY_GROUND","RUSSIAN_RESTAURANT","SALAD_BAR","SANDWICH_RESTAURANT","SAUNA_SOLARIUM_MASSAGE","SCANDINAVIAN_RESTAURANT","SCENIC_PANORAMIC_VIEW","SCHOOL","SCHOOL_BUS_COMPANY","SEAFOOD","SECURED_ENTRANCE","SECURITY_PRODUCTS","SENIOR_HIGH_SCHOOL","SERVICE_COMPANY","SHANDONG_RESTAURANT","SHOP","SHOPPING_CENTER","SHOPPING_SERVICE","SICHUAN_RESTAURANT","SKI_RESORT","SNACKS_RESTAURANT","SNOOKER_POOL_BILLIARD","SOCCER_STADIUM","SOFTWARE_COMPANY","SOUL_FOOD","SOUP_RESTAURANT","SPANISH_RESTAURANT","SPECIALIST","SPECIALTY_CLOTHING_SHOP","SPECIALTY_FOODS","SPECIAL_HOSPITAL","SPORTS_CENTER","SPORTS_EQUIPMENT_CLOTHING","SQUASH_COURT","STADIUM","STATION_ACCESS","STATUE","STEAK_HOUSE","STOCK_EXCHANGE","STREETCAR_STOP","SUBWAY_STATION","SUPERMARKETS_HYPERMARKETS","SUSHI_RESTAURANT","SWEDISH_RESTAURANT","SWIMMING_POOL","SWISS_RESTAURANT","SYNAGOG","SYRIAN_RESTAURANT","TAILOR_SHOP","TAIWANESE_RESTAURANT","TAKEOUT_FOOD","TAPAS_RESTAURANT","TAXI_LIMOUSINE_SHUTTLE_SERVICE","TAXI_STAND","TAX_SERVICES","TEA_HOUSE","TELECOMMUNICATIONS","TEMPLE","TENNIS_COURT","TEPPANYAKI_RESTAURANT","THAI_RESTAURANT","THEATER","THEMATIC_SPORT_CENTER","TIBETAN_RESTAURANT","TIRE_SERVICE","TOLL_GATE","TOURIST_ATTRACTION","TOURIST_INFORMATION_OFFICE","TOWER","TOYS_GAMES_SHOP","TRAFFIC_CONTROL_DEPARTMENT","TRAIL_SYSTEM","TRANSPORT_AUTHORITY_VEHICLE_REGISTRATION","TRANSPORT_COMPANY","TRAVEL_AGENT","TRUCK_DEALER","TRUCK_REPAIR_AND_SERVICE","TRUCK_STOP","TUNISIAN_RESTAURANT","TUNNEL","TURKISH_RESTAURANT","URBAN_STATION","VALLEY","VAN_DEALER","VARIETY_STORE","VEGETARIAN_RESTAURANT","VENEZUELAN_RESTAURANT","VETERINARIAN","VIDEO_RENTAL_SHOP","VIETNAMESE_RESTAURANT","VILLA_RENTAL","VOCATIONAL_SCHOOL","WATER_HOLE","WATER_SPORT","WEDDING_SERVICES","WEIGH_STATION","WELFARE_ORGANIZATION","WELL","WESTERN_RESTAURANT","WHOLESALE_CLUB","WILDERNESS_AREA","WILDLIFE_PARK","WINERY","WINE_SPIRITS","WOMENS_CLOTHING","YACHT_BASIN","YOGURT_JUICE_BAR","ZOO","ZOOS_ARBORETA_BOTANICAL_GARDEN"],r=["Small_Paddle_Inductive","Large_Paddle_Inductive","IEC_60309_1_Phase","IEC_60309_3_Phase","IEC_62196_Type_1_Outlet","IEC_62196_Type_2_Outlet","IEC_62196_Type_3_Outlet","IEC_62196_Type_1_Connector_Cable_Attached","IEC_62196_Type_2_Connector_Cable_Attached","IEC_62196_Type_3_Connector_Cable_Attached","Combo_to_IEC_62196_Type_1_Base","Combo_to_IEC_62196_Type_2_Base","Type_E_French_Standard_CEE_7_5","Type_F_Schuko_CEE_7_4","Type_G_British_Standard_BS_1363","Type_J_Swiss_Standard_SEV_1011","China_GB_Part_2","China_GB_Part_3","IEC_309_DC_Plug","AVCON_Connector","Tesla_Connector","NEMA_5_20","CHAdeMO","SAE_J1772","TEPCO","Better_Place_Socket","Marechal_Socket","Standard_Household_Country_Specific"],n=["No_Payment","Subscription","Direct"],P=["tollRoads","motorways","ferries","unpavedRoads","carpools","alreadyUsedRoads","borderCrossings","tunnels","carTrains","lowEmissionZones"],M=["carpool","carTrain","country","ferry","importantRoadStretch","lowEmissionZone","motorway","pedestrian","roadShields","speedLimit","toll","tollVignette","traffic","tunnel","unpaved","urban","vehicleRestricted"],o=[...M,"lanes"],H=[...o,"leg"],i=["speed","freeFlowSpeed","congestionLevel","travelTime","networkLength"],a=["accident","broken-down-vehicle","danger","flooding","fog","frost","jam","lane-closed","other","rain","road-closed","roadworks","wind"],G=[...a,"animals-on-road","narrow-lanes"],s=["Unified","AR","IN","PK","IL","MA","RU","TR","CN"],D=A=>!!A&&(A.length>=4&&A[3]!==A[1]&&A[2]!==A[0]),B=A=>D(A)?A:void 0,d=(A,E)=>{if(A&&!(A.length<2))return E?[E[0]>A[0]?A[0]:E[0],E[1]>A[1]?A[1]:E[1],E[2]<A[0]?A[0]:E[2],E[3]<A[1]?A[1]:E[3]]:[A[0],A[1],A[0],A[1]]},c=(A,E)=>E&&A?[E[0]>A[0]?A[0]:E[0],E[1]>A[1]?A[1]:E[1],E[2]<A[2]?A[2]:E[2],E[3]<A[3]?A[3]:E[3]]:A||E,Y=A=>A?.length?A.reduce((A,E)=>c(E,A)):void 0,F=A=>{const E=A?.length;if(!E)return;let R;const T=Math.ceil(E/1e3);for(let _=0;_<E;_+=T)R=d(A[_],R);return 1===T?R:d(A[E-1],R)},l=A=>{if(A){if(Array.isArray(A))return"number"==typeof A[0]?A.length>=4?A:void 0:Y(A.map(A=>l(A)));if(A.bbox)return A.bbox;switch(A.type){case"Feature":return l(A.geometry);case"FeatureCollection":return Y(A.features.map(l));case"GeometryCollection":return Y(A.geometries.map(l));case"Point":return d(A.coordinates);case"LineString":case"MultiPoint":return F(A.coordinates);case"MultiLineString":case"Polygon":return Y(A.coordinates.map(F));case"MultiPolygon":return Y(A.coordinates.flatMap(A=>A.map(F)));default:return}}},u=(A,E)=>c(l(A),E),V=A=>[(A[0]+A[2])/2,(A[1]+A[3])/2],p=A=>{const[E,R,T,_]=A;return{type:"Feature",geometry:{type:"Polygon",coordinates:[[[E,R],[T,R],[T,_],[E,_],[E,R]]]},properties:{}}},K=()=>Date.now().toString(36)+Math.random().toString(36).substring(2),m="MapsSDKJS",h=A=>{if(!/^[a-zA-Z0-9-]{1,100}$/.test(A))throw new TypeError(`a string matching regular expression ^[a-zA-Z0-9-]{1,100}$ is expected, but ${A} ['${typeof A}'] given`);return A},g=A=>({"tomtom-user-agent":A["tomtom-user-agent"]??"MapsSDKJS/0.48.0",...A.trackingId&&{"Tracking-ID":h(A.trackingId)}}),f=(A,E)=>{if(A){if(Array.isArray(A))return A;if(A.coordinates)return A.coordinates;if(A.geometry)return"main-when-available"===E?.useEntryPoint?(R=A,R?.properties?.entryPoints?.find(A=>"main"===A.type))?.position??A.geometry.coordinates:A.geometry.coordinates}var R;return null},y=(A,E)=>{const R=f(A,E);if(!R)throw new Error(`The received object does not have lng-lat coordinates: ${JSON.stringify(A)}`);return R},W=A=>({type:"Point",coordinates:A}),v=A=>({type:"Feature",geometry:W(A),properties:{}}),$={ROAD_TRAFFIC_CONTROL_CENTER:[7301],TRAFFIC_CONTROL_DEPARTMENT:[7301002],TRAIL_SYSTEM:[7302],MOUNTAIN_BIKE_TRAIL:[7302002],ADVENTURE_VEHICLE_TRAIL:[7302003],HIKING_TRAIL:[7302004],HORSE_RIDING_TRAIL:[7302005],ROCK_CLIMBING_TRAIL:[7302006],RESIDENTIAL_ACCOMMODATION:[7303],RETIREMENT_COMMUNITY:[7303002],FLATS_APARTMENT_COMPLEX:[7303003],HOLIDAY_RENTAL:[7304],COTTAGE_RENTAL:[7304002],VILLA_RENTAL:[7304003],BUNGALOW_RENTAL:[7304004],CHALET_RENTAL:[7304005],APARTMENT_RENTAL:[7304006],ADVENTURE_SPORTS_FACILITY:[7305],HELIPAD_HELICOPTER_LANDING:[7308],ELECTRIC_VEHICLE_STATION:[7309],REPAIR_FACILITY:[7310],BODYSHOP:[7310002],CAR_GLASS_REPLACEMENT_SHOP:[7310003],CAR_REPAIR_AND_SERVICE:[7310004],TIRE_SERVICE:[7310007],MOTORCYCLE_REPAIR:[7310008],TRUCK_REPAIR_AND_SERVICE:[7310009],GAS_STATION:[7311],RENT_A_CAR_FACILITY:[7312],PARKING_GARAGE:[7313],HOTEL_MOTEL:[7314],B_B_GUEST_HOUSE:[7314002],HOTEL:[7314003],HOSTEL:[7314004],RESORT:[7314005],MOTEL:[7314006],CABINS_LODGES:[7314007],REST_CAMP:[7314008],RESTAURANT:[7315],AFRICAN_RESTAURANT:[7315002],AMERICAN_RESTAURANT:[7315003],AUSTRIAN_RESTAURANT:[7315004],BARBECUE_RESTAURANT:[7315005],BELGIAN_RESTAURANT:[7315006],BISTRO:[7315007],BRITISH_RESTAURANT:[7315008],CALIFORNIAN_RESTAURANT:[7315009],CANADIAN_RESTAURANT:[7315010],CARIBBEAN_RESTAURANT:[7315011],CHINESE_RESTAURANT:[7315012],CREPERIE:[7315013],DUTCH_RESTAURANT:[7315014],FAST_FOOD:[7315015],PHILIPPINE_RESTAURANT:[7315016],FRENCH_RESTAURANT:[7315017],GERMAN_RESTAURANT:[7315018],GREEK_RESTAURANT:[7315019],GRILL_RESTAURANT:[7315020],HAWAIIAN_RESTAURANT:[7315021],HUNGARIAN_RESTAURANT:[7315022],INDIAN_RESTAURANT:[7315023],INDONESIAN_RESTAURANT:[7315024],ITALIAN_RESTAURANT:[7315025],JAPANESE_RESTAURANT:[7315026],JEWISH_RESTAURANT:[7315027],KOREAN_RESTAURANT:[7315028],LATIN_AMERICAN_RESTAURANT:[7315029],LEBANESE_RESTAURANT:[7315030],MEDITERRANEAN_RESTAURANT:[7315032],MEXICAN_RESTAURANT:[7315033],MIDDLE_EASTERN_RESTAURANT:[7315034],ORIENTAL_RESTAURANT:[7315035],PIZZERIA:[7315036],POLISH_RESTAURANT:[7315037],PORTUGUESE_RESTAURANT:[7315038],PUB_FOOD:[7315039],RUSSIAN_RESTAURANT:[7315040],SANDWICH_RESTAURANT:[7315042],SEAFOOD:[7315043],SPANISH_RESTAURANT:[7315044],STEAK_HOUSE:[7315045],SWISS_RESTAURANT:[7315047],THAI_RESTAURANT:[7315048],TURKISH_RESTAURANT:[7315049],VEGETARIAN_RESTAURANT:[7315050],VIETNAMESE_RESTAURANT:[7315051],HUNAN_RESTAURANT:[7315052],SHANDONG_RESTAURANT:[7315053],SICHUAN_RESTAURANT:[7315056],DONGBEI_RESTAURANT:[7315057],HOT_POT_RESTAURANT:[7315058],TAIWANESE_RESTAURANT:[7315059],WESTERN_RESTAURANT:[7315060],PERUVIAN_RESTAURANT:[7315061],ASIAN_RESTAURANT:[7315062],CREOLE_RESTAURANT:[7315063],SOUL_FOOD:[7315064],IRISH_RESTAURANT:[7315065],JAMAICAN_RESTAURANT:[7315066],KOSHER_RESTAURANT:[7315067],CZECH_RESTAURANT:[7315068],HAMBURGER_RESTAURANT:[7315069],CHICKEN_RESTAURANT:[7315070],FUSION_RESTAURANT:[7315071],BRAZILIAN_RESTAURANT:[7315072],INTERNATIONAL_RESTAURANT:[7315073],MOROCCAN_RESTAURANT:[7315074],ORGANIC_FOOD_RESTAURANT:[7315075],TAPAS_RESTAURANT:[7315076],ICE_CREAM_PARLOR:[7315078],DOUGHNUT_RESTAURANT:[7315079],AFGHAN_RESTAURANT:[7315081],ARABIAN_RESTAURANT:[7315083],ARMENIAN_RESTAURANT:[7315085],AUSTRALIAN_RESTAURANT:[7315086],BASQUE_RESTAURANT:[7315087],BOLIVIAN_RESTAURANT:[7315088],BULGARIAN_RESTAURANT:[7315090],BURMESE_RESTAURANT:[7315091],CAMBODIAN_RESTAURANT:[7315092],COLOMBIAN_RESTAURANT:[7315094],CORSICAN_RESTAURANT:[7315095],CUBAN_RESTAURANT:[7315096],DANISH_RESTAURANT:[7315098],EGYPTIAN_RESTAURANT:[7315100],ENGLISH_RESTAURANT:[7315101],ETHIOPIAN_RESTAURANT:[7315102],FINNISH_RESTAURANT:[7315104],IRANIAN_RESTAURANT:[7315105],ISRAELI_RESTAURANT:[7315106],MONGOLIAN_RESTAURANT:[7315110],NEPALESE_RESTAURANT:[7315111],NORWEGIAN_RESTAURANT:[7315112],SCANDINAVIAN_RESTAURANT:[7315114],SWEDISH_RESTAURANT:[7315119],SYRIAN_RESTAURANT:[7315120],TEPPANYAKI_RESTAURANT:[7315121],TIBETAN_RESTAURANT:[7315122],TUNISIAN_RESTAURANT:[7315123],VENEZUELAN_RESTAURANT:[7315125],PAKISTANI_RESTAURANT:[7315127],POLYNESIAN_RESTAURANT:[7315129],FONDUE_RESTAURANT:[7315134],SNACKS_RESTAURANT:[7315139],SOUP_RESTAURANT:[7315140],BUFFET_RESTAURANT:[7315142],SALAD_BAR:[7315143],TAKEOUT_FOOD:[7315145],BANQUET_ROOMS:[7315146],CAFETERIA:[7315147],SUSHI_RESTAURANT:[7315148],YOGURT_JUICE_BAR:[7315149],TOURIST_INFORMATION_OFFICE:[7316],MUSEUM:[7317],THEATER:[7318],CONCERT_HALL:[7318002],MUSIC_CENTER:[7318003],OPERA_HOUSE:[7318004],PERFORMING_ARTS_THEATER:[7318005],CABARET_THEATER:[7318006],AMPHITHEATER:[7318007],DINNER_THEATER:[7318008],CULTURAL_CENTER:[7319],SPORTS_CENTER:[7320],FITNESS_CLUB_CENTER:[7320002],HORSE_RIDING_CENTER:[7320003],LEISURE_SPORTS_CENTER:[7320004],THEMATIC_SPORT_CENTER:[7320005],SQUASH_COURT:[7320006],HOSPITAL:[7321],GENERAL_HOSPITAL_AND_POLYCLINIC:[7321002],SPECIAL_HOSPITAL:[7321003],HOSPITAL_OF_CHINESE_MEDICINE:[7321004],HOSPITAL_FOR_WOMEN_AND_CHILDREN:[7321005],POLICE_STATION:[7322],POST_OFFICE:[7324],PHARMACY:[7326],DEPARTMENT_STORE:[7327],BANK:[7328],MARKET:[7332],INFORMAL_MARKET:[7332002],PUBLIC_MARKET:[7332003],FARMERS_MARKET:[7332004],SUPERMARKETS_HYPERMARKETS:[7332005],AGRICULTURE:[7335],HORTICULTURE:[7335002],PRIMARY_PRODUCER:[7335003],FARM:[7335004],SCENIC_PANORAMIC_VIEW:[7337],SWIMMING_POOL:[7338],PLACE_OF_WORSHIP:[7339],CHURCH:[7339002],MOSQUE:[7339003],SYNAGOG:[7339004],TEMPLE:[7339005],GURUDWARA:[7339006],PAGODA:[7339008],CASINO:[7341],CINEMA:[7342],MOVIE_THEATER:[7342002],DRIVE_IN_MOVIES:[7342003],MARINA:[7347,7347002],YACHT_BASIN:[7347003],WINERY:[7349],FERRY_TERMINAL:[7352],TRUCK_STOP:[7358],WEIGH_STATION:[7359,7359002],CAMPING_GROUND:[7360],RECREATIONAL_CAMPING_GROUND:[7360002],CARAVAN_SITE:[7360003],COMMUNITY_CENTER:[7363],EMBASSY:[7365],FRONTIER_CROSSING:[7366],GOVERNMENT_OFFICE:[7367],MOTORING_ORGANIZATION_OFFICE:[7368],OPEN_PARKING_AREA:[7369],OPEN_CAR_PARKING_AREA:[7369002],SCHOOL:[7372,7372002],CHILD_CARE_FACILITY:[7372003],PRE_SCHOOL:[7372004],PRIMARY_SCHOOL:[7372005],HIGH_SCHOOL:[7372006],SENIOR_HIGH_SCHOOL:[7372007],VOCATIONAL_SCHOOL:[7372008],LANGUAGE_SCHOOL:[7372010],ART_SCHOOL:[7372012],MIDDLE_SCHOOL:[7372014],DRIVING_SCHOOL:[7372016],SHOPPING_CENTER:[7373],STADIUM:[7374],ATHLETICS_TRACK:[7374002],CRICKET_GROUND:[7374003],SOCCER_STADIUM:[7374004],HORSE_RACING_TRACK:[7374005],MULTI_PURPOSE_STADIUM:[7374006],RUGBY_GROUND:[7374007],ICE_HOCKEY_ARENA:[7374008],BASEBALL_PARK:[7374009],FOOTBALL_STADIUM:[7374010],MOTOR_RACING_STADIUM:[7374011],BASKETBALL_ARENA:[7374012],RACE_TRACK:[7374013],NETBALL_STADIUM:[7374014],TOLL_GATE:[7375],TOURIST_ATTRACTION:[7376],BUILDING:[7376002],MONUMENT:[7376003],NATURAL_TOURIST_ATTRACTION:[7376004],OBSERVATORY:[7376005],PLANETARIUM:[7376006],DAM:[7376007],TUNNEL:[7376008],TOWER:[7376009],BRIDGE:[7376010],MAUSOLEUM_GRAVE:[7376011],ARCH:[7376012],STATUE:[7376013],WATER_HOLE:[7376014],COLLEGE_UNIVERSITY:[7377],COLLEGE_OR_UNIVERSITY:[7377002],JUNIOR_COLLEGE_COMMUNITY_COLLEGE:[7377003],BUSINESS_PARK:[7378],RAILWAY_STATION:[7380],INTERNATIONAL_RAILROAD_STATION:[7380002],NATIONAL_RAILROAD_STATION:[7380003],URBAN_STATION:[7380004],SUBWAY_STATION:[7380005],AIRPORT:[7383],PUBLIC_AIRPORT:[7383002],PRIVATE_AIRPORT:[7383003],MILITARY_AIRPORT:[7383004],AIRFIELD:[7383005],COURIER_DROP_BOX:[7388],ACCESS_GATEWAY:[7389],AIRLINE_ACCESS:[7389002],STATION_ACCESS:[7389003],SECURED_ENTRANCE:[7389004],EMERGENCY_MEDICAL_SERVICE:[7391],FIRE_STATION_BRIGADE:[7392],REST_AREA:[7395],ATM:[7397],GEOGRAPHIC_FEATURE:[8099],MOUNTAIN_PEAK:[8099002],CAVE:[8099003],RIDGE:[8099004],DUNE:[8099005],VALLEY:[8099006],PLAIN_FLAT:[8099007],PLATEAU:[8099008],WELL:[8099010],OASIS:[8099011],ROCKS:[8099012],RESERVOIR:[8099013],REEF:[8099014],RAPIDS:[8099015],BAY:[8099016],COVE:[8099017],HARBOR:[8099018],CAPE:[8099020],MINERAL_HOT_SPRINGS:[8099021],ISLAND:[8099022],MARSH:[8099023],RIVER_CROSSING:[8099024],HILL:[8099025],QUARRY:[8099026],LOCALE:[8099027],PRIMARY_RESOURCE_UTILITY:[9150],TRANSPORT_AUTHORITY_VEHICLE_REGISTRATION:[9151],NON_GOVERNMENTAL_ORGANIZATION:[9152],WELFARE_ORGANIZATION:[9153],PRISON_CORRECTIONAL_FACILITY:[9154],CAR_WASH:[9155,9155002],MANUFACTURING_FACILITY:[9156],RESEARCH_FACILITY:[9157],MEDIA_FACILITY:[9158],PORT_WAREHOUSE_FACILITY:[9159],EXCHANGE:[9160],STOCK_EXCHANGE:[9160002],GOLD_EXCHANGE:[9160003],CURRENCY_EXCHANGE:[9160004],COMPANY:[9352],SERVICE_COMPANY:[9352002],ADVERTISING_COMPANY:[9352003],COMPUTER_DATA_SERVICES:[9352004],SOFTWARE_COMPANY:[9352005],DIVERSIFIED_FINANCIALS:[9352006],INSURANCE_COMPANY:[9352007],DELIVERY_SERVICE:[9352008],REAL_ESTATE_COMPANY:[9352009],MANUFACTURING_COMPANY:[9352011],AGRICULTURAL_TECHNOLOGY:[9352012],AUTOMOBILE_COMPANY:[9352013],CHEMICAL_COMPANY:[9352014],ELECTRONICS_COMPANY:[9352015],MECHANICAL_ENGINEERING:[9352016],PHARMACEUTICAL_COMPANY:[9352018],PUBLISHING_TECHNOLOGIES:[9352019],TELECOMMUNICATIONS:[9352020],TAX_SERVICES:[9352022],LEGAL_SERVICES:[9352023],TRANSPORT_COMPANY:[9352024],BUS_CHARTER_COMPANY:[9352025],TAXI_LIMOUSINE_SHUTTLE_SERVICE:[9352026],BUS_LINES:[9352027],SCHOOL_BUS_COMPANY:[9352028],CLEANING_SERVICES:[9352029],OIL_NATURAL_GAS:[9352030],MINING_COMPANY:[9352031],CONSTRUCTION_COMPANY:[9352032],MOVING_STORAGE_COMPANY:[9352033],AIRLINE_COMPANY:[9352034],FUNERAL_SERVICE_MORTUARIES:[9352036],INVESTMENT_ADVISOR:[9352037],EQUIPMENT_RENTAL:[9352038],BUSINESS_SERVICES:[9352039],CABLE_TELEPHONE_COMPANY:[9352040],AUTOMOBILE_MANUFACTURING:[9352041],IMPORT_EXPORT_AND_DISTRIBUTION:[9352042],CATERING_SERVICES:[9352043],HOME_APPLIANCE_REPAIR:[9352044],ANIMAL_SHELTER:[9352045],WEDDING_SERVICES:[9352046],BEACH:[9357],RESTAURANT_AREA:[9359],ICE_SKATING_RINK:[9360],SHOP:[9361],BOOK_SHOP:[9361002],C_DS_DVD_VIDEOS:[9361003],CHILDRENS_CLOTHES:[9361004],FOOTWEAR_SHOE_REPAIRS:[9361005],CLOTHING_SHOP:[9361006],MENS_CLOTHING:[9361007],WOMENS_CLOTHING:[9361008],CONVENIENCE_STORE:[9361009],DRY_CLEANER:[9361010],CAMERAS_PHOTOGRAPHY:[9361011],COMPUTER_COMPUTER_SUPPLIES:[9361012],CONSUMER_ELECTRONICS:[9361013],OFFICE_EQUIPMENT:[9361014],REAL_ESTATE_AGENT:[9361015],FACTORY_OUTLET:[9361016],FLORISTS:[9361017],BAKERY:[9361018],BUTCHER:[9361019],FISHMONGER:[9361020],FOOD_MARKET:[9361021],GREENGROCER:[9361022],GROCERY_STORE:[9361023],OTHER_FOOD_SHOPS:[9361024],WINE_SPIRITS:[9361025],GIFTS_CARDS_NOVELTIES_SOUVENIRS:[9361026],HAIRDRESSER:[9361027],CARPET_FLOOR_COVERINGS:[9361028],CURTAINS_TEXTILES:[9361029],DO_IT_YOURSELF_CENTERS:[9361030],HOUSE_GARDEN_FURNITURE_FITTINGS:[9361031],GARDEN_CENTERS_SERVICES:[9361032],KITCHENS_BATHROOMS:[9361033],LIGHTING_SHOPS:[9361034],PAINTING_DECORATING:[9361035],JEWELRY_CLOCKS_WATCHES:[9361036],NEWSAGENTS_TOBACCONISTS:[9361037],OPTICIAN:[9361038],SPORTS_EQUIPMENT_CLOTHING:[9361039],TOYS_GAMES_SHOP:[9361040],TRAVEL_AGENT:[9361041],CONSTRUCTION_MATERIAL_EQUIPMENT:[9361042],MEDICAL_SUPPLIES_EQUIPMENT:[9361043],VIDEO_RENTAL_SHOP:[9361044],LAUNDRY:[9361045],PHOTO_LAB_DEVELOPMENT:[9361046],PHOTOCOPY_SHOP:[9361047],ANIMAL_SERVICES:[9361048],ANTIQUE_ART_SHOP:[9361049],BEAUTY_SUPPLIES:[9361050],DRUG_STORE:[9361051],ELECTRICAL_APPLIANCES_SHOP:[9361052],HOBBY_SHOP:[9361053],FURNITURE_HOME_FURNISHINGS:[9361054],GLASSWARE_CERAMIC_SHOP:[9361055],LOCAL_SPECIALITIES_SHOP:[9361056],RECYCLING_SHOP:[9361057],BAGS_LEATHERWEAR:[9361058],MUSIC_INSTRUMENTS_STORE:[9361059],DELICATESSEN:[9361060],SPECIALTY_FOODS:[9361061],SHOPPING_SERVICE:[9361062],RETAIL_OUTLET:[9361063],PET_SUPPLIES:[9361064],WHOLESALE_CLUB:[9361066],BEAUTY_SALON:[9361067],NAIL_SALON:[9361068],HARDWARE_STORE:[9361069],PAWN_SHOP:[9361070],LOTTERY_SHOP:[9361071],BETTING_STATION:[9361072],AGRICULTURAL_SUPPLIES:[9361073],MOBILE_PHONE_SHOP:[9361075],DRIVE_THROUGH_BOTTLE_SHOP:[9361076],TAILOR_SHOP:[9361077],SECURITY_PRODUCTS:[9361078],SPECIALTY_CLOTHING_SHOP:[9361079],GLASS_WINDOWS_STORE:[9361080],VARIETY_STORE:[9361081],CHRISTMAS_HOLIDAY_SHOP:[9361082],BOATING_EQUIPMENT_ACCESSORIES:[9361083],PARK_RECREATION_AREA:[9362],BATTLEFIELD:[9362002],CEMETERY:[9362003],HISTORIC_SITE:[9362004],HISTORICAL_PARK:[9362005],MEMORIAL:[9362007],PARK:[9362008],PARKWAY:[9362009],RECREATION_AREA:[9362011],WILDERNESS_AREA:[9362014],FOREST_AREA:[9362015],FISHING_HUNTING_AREA:[9362016],FAIRGROUND:[9362017],OTHER_WINTER_SPORT:[9362025],SKI_RESORT:[9362026],BOAT_LAUNCHING_RAMP:[9362032],PICNIC_AREA:[9362033],PROTECTED_AREA:[9362037],COURTHOUSE:[9363],MARIJUANA_DISPENSARY:[9364],MEDICINAL_MARIJUANA_DISPENSARY:[9364002],RECREATIONAL_MARIJUANA_DISPENSARY:[9364003],TENNIS_COURT:[9369],WATER_SPORT:[9371],DOCTOR:[9373],GENERAL_PRACTITIONER:[9373002],SPECIALIST:[9373003],DENTIST:[9374],VETERINARIAN:[9375],CAFE_PUB:[9376],CAFE:[9376002],PUB:[9376003],INTERNET_CAFE:[9376004],TEA_HOUSE:[9376005],COFFEE_SHOP:[9376006],MICROBREWERY:[9376007],EXHIBITION_CONVENTION_CENTER:[9377],LEISURE_CENTER:[9378],BOWLING_CENTER:[9378002],DANCE_STUDIO_SCHOOL:[9378003],SAUNA_SOLARIUM_MASSAGE:[9378005],SNOOKER_POOL_BILLIARD:[9378006],NIGHTLIFE:[9379],DISCO_CLUB:[9379002],BAR:[9379004],COCKTAIL_BAR:[9379006],JAZZ_CLUB:[9379008],COMEDY_CLUB:[9379009],KARAOKE_CLUB:[9379010],COMMERCIAL_BUILDING:[9382],INDUSTRIAL_BUILDING:[9383],NATIVE_RESERVATION:[9389],HEALTH_CARE_SERVICE:[9663],PERSONAL_SERVICE:[9663002],PERSONAL_CARE_FACILITY:[9663003],BLOOD_BANK:[9663004],AMBULANCE_UNIT:[9663005],ENTERTAINMENT:[9900],AMUSEMENT_PARK:[9902,9902003],AMUSEMENT_PLACE:[9902004],AUTOMOTIVE_DEALER:[9910],CAR_DEALER:[9910002],MOTORCYCLE_DEALER:[9910003],BOAT_DEALER:[9910004],RECREATIONAL_VEHICLE_DEALER:[9910005],TRUCK_DEALER:[9910006],VAN_DEALER:[9910007],BUS_DEALER:[9910008],ATV_DEALER:[9910009],GOLF_COURSE:[9911],LIBRARY:[9913],ZOOS_ARBORETA_BOTANICAL_GARDEN:[9927],ARBORETA_BOTANICAL_GARDENS:[9927002],ZOO:[9927003],AQUATIC_ZOO:[9927004],WILDLIFE_PARK:[9927005],RENT_A_CAR_PARKING:[9930],PUBLIC_AMENITY:[9932],PASSENGER_TRANSPORT_TICKET_OFFICE:[9932002],PUBLIC_CALL_BOX:[9932004],PUBLIC_TOILET:[9932005],ROAD_RESCUE:[9932006],MOUNTAIN_PASS:[9935],CLUB_ASSOCIATION:[9937],BEACH_CLUB:[9937002],HOCKEY_CLUB:[9937003],PUBLIC_TRANSPORT_STOP:[9942],BUS_STOP:[9942002],TAXI_STAND:[9942003],STREETCAR_STOP:[9942004],EMERGENCY_ROOM:[9956]},b=Object.fromEntries(Object.entries($).map(([A,E])=>[A,E[0]])),w=Object.fromEntries(Object.entries($).flatMap(([A,E])=>E.map(E=>[E,A]))),x=(E,R)=>A(E,y(R)).properties.location,Z=(A,E)=>{for(let R=0;R<A.length-1;R++)if(E>=A[R]&&E<=A[R+1])return R+1;return E<A[0]?0:A.length},X=(A,E,R)=>Q(A,E,[R])[0],Q=(A,E,R)=>{if(0===R.length)return[];if(0===A.geometry.coordinates.length||E.length<2)return R.map(()=>0);const T=E.map(E=>x(A,E)??0);return R.map(E=>{const R=x(A,E);return void 0===R?0:Z(T,R)})},J=(A,E,R)=>k(A,E,[R]),k=(A,E,R)=>{if(0===R.length)return E.slice();if(0===A.geometry.coordinates.length||E.length<2)return[...R,...E];const T=E.map(E=>x(A,E)??0),_=Array.from({length:E.length+1},()=>[]);for(let N=0;N<R.length;N++){const E=R[N],I=x(A,E);_[void 0===I?0:Z(T,I)].push({waypoint:E,location:I??0,inputIndex:N})}for(const N of _)N.sort((A,E)=>A.location-E.location||A.inputIndex-E.inputIndex);const I=[];for(let N=0;N<E.length;N++){for(const A of _[N])I.push(A.waypoint);I.push(E[N])}for(const N of _[E.length])I.push(N.waypoint);return I},j=(A,E)=>{const{progress:R}=A.properties;if(!R||0===R.length)return;const T=A.geometry.coordinates.length;if(E<0||E>=T)return;const _=EA(R,"pointIndex",E);if(!_)return;const{lower:I,lowerVal:N,upper:S,upperVal:O}=_,C=I.distanceInMeters,e=S.distanceInMeters,L=I.travelTimeInSeconds,U=S.travelTimeInSeconds;if(void 0===C||void 0===e||void 0===L||void 0===U)return;if(N===O)return{distanceInMeters:C,travelTimeInSeconds:L};const t=(E-N)/(O-N);return{distanceInMeters:C+t*(e-C),travelTimeInSeconds:L+t*(U-L)}},z=(A,E,R)=>{const T=j(A,E),_=j(A,R);if(T&&_)return{start:T,end:_,delta:{distanceInMeters:_.distanceInMeters-T.distanceInMeters,travelTimeInSeconds:_.travelTimeInSeconds-T.travelTimeInSeconds}}},q=(A,E)=>z(A,E.startPointIndex,E.endPointIndex),AA=(A,E)=>{const R=A.geometry.coordinates;if(!R||0===R.length||E.startPointIndex<0||E.endPointIndex>=R.length||E.startPointIndex>E.endPointIndex)return;const T=R[E.startPointIndex],_=R[E.endPointIndex],I=R[Math.floor((E.startPointIndex+E.endPointIndex)/2)];let N=d(T);return N=d(I,N),N=d(_,N),N},EA=(A,E,R)=>{let T,_,I,N;for(const S of A){const A=S[E];void 0!==A&&(A<=R&&(T=S,_=A),A>=R&&void 0===I&&(I=S,N=A))}return void 0!==T&&void 0!==_&&void 0!==I&&void 0!==N?{lower:T,lowerVal:_,upper:I,upperVal:N}:void 0},RA=(A,E,R)=>{const T=A.geometry.coordinates,_=Math.min(E+1,T.length-1),I=T[E],N=T[_],S=j(A,E),O=j(A,_);if(S&&O)return{position:[I[0]+R*(N[0]-I[0]),I[1]+R*(N[1]-I[1])],travelTimeInSeconds:S.travelTimeInSeconds+R*(O.travelTimeInSeconds-S.travelTimeInSeconds),distanceInMeters:S.distanceInMeters+R*(O.distanceInMeters-S.distanceInMeters)}},TA=(A,E,R)=>{const{progress:T}=A.properties;if(!T||0===T.length)return;const _=A.geometry.coordinates,I=T[0],N=T.at(-1),S=I[E],O=N[E];if(void 0===S||void 0===O)return;if(R<=S)return{position:_[I.pointIndex],travelTimeInSeconds:I.travelTimeInSeconds??0,distanceInMeters:I.distanceInMeters??0};if(R>=O)return{position:_[N.pointIndex],travelTimeInSeconds:N.travelTimeInSeconds??0,distanceInMeters:N.distanceInMeters??0};const C=((A,E,R)=>{const T=EA(A,E,R);if(!T)return;const{lower:_,lowerVal:I,upper:N,upperVal:S}=T,O=I===S?0:(R-I)/(S-I),C=_.pointIndex+O*(N.pointIndex-_.pointIndex),e=Math.floor(C);return{pathIndex:e,progressRatioTowardsNextPathPoint:C-e}})(T,E,R);return void 0!==C?RA(A,C.pathIndex,C.progressRatioTowardsNextPathPoint):void 0},_A=(A,E)=>{if("traveledTimeInSeconds"in E)return TA(A,"travelTimeInSeconds",E.traveledTimeInSeconds);if("traveledDistanceInMeters"in E)return TA(A,"distanceInMeters",E.traveledDistanceInMeters);const R=A.properties.summary.departureTime;if(!R)return;const T=(E.clockTime.getTime()-R.getTime())/1e3;return T<0?void 0:TA(A,"travelTimeInSeconds",T)},IA=(E,R)=>{const{progress:T}=E.properties;if(!T?.length)return;const _=E.geometry.coordinates,I=A(E,y(R)),N=I.properties.index??0,S=Math.min(N+1,_.length-1),O=_[N],C=_[S];return RA(E,N,((A,E,R)=>{const T=R[0]-A[0],_=R[1]-A[1],I=T*T+_*_;if(0===I)return 0;const N=((E[0]-A[0])*T+(E[1]-A[1])*_)/I;return Math.max(0,Math.min(1,N))})(O,I.geometry.coordinates,C))},NA=(A,E)=>{let R;return R=Array.isArray(A)||"Feature"!==A.type?v(y(A)):A,{...R,properties:{...R.properties,radiusMeters:E}}},SA=A=>Array.isArray(A)?Array.isArray(A[0])?"path":"waypoint":"Feature"===A.type&&"LineString"===A.geometry.type?"path":"waypoint",OA=["unknown","minor","moderate","major","indefinite"],CA={1:"accident",2:"fog",3:"danger",4:"rain",5:"frost",6:"jam",7:"lane-closed",8:"road-closed",9:"roadworks",10:"wind",11:"flooding",12:"animals-on-road",13:"narrow-lanes",14:"broken-down-vehicle"},eA=Object.fromEntries(Object.entries(CA).map(([A,E])=>[E,Number(A)])),LA=A=>CA[A]??"other",UA=A=>eA[A]??0,tA=A=>A?.minutes??"min",rA=(A,E)=>{if(A){const _=Math.abs(A)/3600;let I=Math.floor(_),N=Math.round(_%1*60);60===N&&(N=0,I++);const S={...T.instance.get().displayUnits?.time,...E};if(I)return`${I} ${R=S,R?.hours??"hr"} ${N.toString().padStart(2,"0")} ${tA(S)}`;if(N)return`${N.toString()} ${tA(S)}`}var R},nA=1609.344,PA=A=>A?.meters??"m",MA=A=>A?.kilometers??"km",oA=(A,E,R)=>E<3?((A,E,R)=>{const T=Number.parseInt(E.toString()),_=E-T,I=A<0?"-":"";if(_<.125)return`${I}${T} ${R}`;const N=T>0?T:"";return _<.375?`${I}${N}¼ ${R}`:_<.625?`${I}${N}½ ${R}`:_<.875?`${I}${N}¾ ${R}`:`${I}${T+1} ${R}`})(A,E,R):E<10?((A,E,R)=>{const T=Number.parseInt(E.toString()),_=E-T,I=A<0?"-":"";return _<.25?`${I}${T} ${R}`:_<.75?`${I}${T}½ ${R}`:`${I}${T+1} ${R}`})(A,E,R):`${Math.round(A)} ${R}`,HA=A=>A.miles??"mi",iA=(A,E)=>{const R=A/nA,T=Math.abs(R);return T<.125?((A,E)=>{const R=Math.round(A/.3048),T=Math.abs(R);return T<30?`${R} ${E}`:T<500?`${10*Math.round(R/10)} ${E}`:`${100*Math.round(R/100)} ${E}`})(A,E.feet??"ft"):oA(R,T,HA(E))},aA=(A,E)=>{const R=A/nA,T=Math.abs(R);return T<.125?((A,E)=>{const R=Math.round(A/.9144);return Math.abs(R)<10?`${Math.round(R)} ${E}`:`${10*Math.round(R/10)} ${E}`})(A,E.yards??"yd"):oA(R,T,HA(E))},GA=(A,R)=>{if(E(A))return"";const _={...T.instance.get().displayUnits?.distance,...R};switch(_?.type??"metric"){case"metric":return((A,E)=>{const R=Math.abs(A);if(R<10)return`${A} ${PA(E)}`;if(R<500)return`${10*Math.round(A/10)} ${PA(E)}`;if(R<1e3){const R=100*Math.round(A/100);return 1e3===R||-1e3===R?`${A<0?"-":""}1 ${MA(E)}`:`${R} ${PA(E)}`}return R<1e4?`${100*Math.round(A/100)/1e3} ${MA(E)}`:`${Math.round(A/1e3)} ${MA(E)}`})(A,_);case"imperial_us":return iA(A,_);case"imperial_uk":return aA(A,_)}};export{m as TOMTOM_USER_AGENT_SDK_NAME,T as TomTomConfig,i as areaAnalyticsMetricKeys,NA as asSoftWaypoint,P as avoidableTypes,V as bboxCenter,c as bboxExpandedWithBBox,u as bboxExpandedWithGeoJSON,d as bboxExpandedWithPosition,Y as bboxFromBBoxes,F as bboxFromCoordsArray,l as bboxFromGeoJSON,B as bboxOnlyIfWithArea,j as calculateProgressAtRoutePoint,S as chargingPointCapabilities,O as chargingPointRestrictions,N as chargingPointStatus,I as chargingStationAccessTypes,C as connectorTypes,e as currentTypes,R as defaultConfig,X as findBestWaypointInsertionIndex,Q as findBestWaypointInsertionIndices,GA as formatDistance,rA as formatDuration,G as fullTrafficIncidentCategories,K as generateId,g as generateTomTomHeaders,L as geographyTypes,_A as getCoordinateAtRouteProgress,f as getPosition,y as getPositionStrict,IA as getProgressAtNearestRoutePoint,SA as getRoutePlanningLocationType,z as getRouteProgressBetween,q as getRouteProgressForSection,AA as getSectionBBox,LA as iconToTrafficIncidentCategory,OA as indexedMagnitudes,M as inputSectionTypes,o as inputSectionTypesWithGuidance,D as isBBoxWithArea,_ as mergeFromGlobal,n as paymentMethods,U as placeTypes,r as plugTypes,t as poiCategories,b as poiCategoriesToID,$ as poiCategoriesToIDs,w as poiIDsToCategories,p as polygonFromBBox,H as sectionTypes,v as toPointFeature,W as toPointGeometry,a as trafficIncidentRequestCategories,UA as trafficIncidentToIconCategory,s as views,J as withInsertedWaypoint,k as withInsertedWaypoints};
|
|
2
2
|
//# sourceMappingURL=core.es.js.map
|
package/map/dist/index.d.ts
CHANGED
|
@@ -111,6 +111,18 @@ declare abstract class AbstractEventProxy {
|
|
|
111
111
|
* @param sourceId The source id (should be linked to a SourceWithLayers instance).
|
|
112
112
|
*/
|
|
113
113
|
hasSourceID(sourceId: string): boolean;
|
|
114
|
+
/**
|
|
115
|
+
* Look up the {@link SourceWithLayers} registered for the given source ID, if any.
|
|
116
|
+
*
|
|
117
|
+
* The SDK assumes at most one `SourceWithLayers` per MapLibre source ID — each
|
|
118
|
+
* module creates its own source — so any non-empty handler bucket gives us the
|
|
119
|
+
* right reference. We iterate event-type buckets defensively to skip transient
|
|
120
|
+
* empty arrays left mid-`removeHandler` before the bucket itself is deleted.
|
|
121
|
+
*
|
|
122
|
+
* NOTE: if two modules ever register against the same source ID with overlapping
|
|
123
|
+
* layers, this returns the first one we encounter.
|
|
124
|
+
*/
|
|
125
|
+
protected sourceWithLayersFor(sourceId: string | undefined): SourceWithLayers | undefined;
|
|
114
126
|
/**
|
|
115
127
|
* Updates the given sourcesWithLayers, if they have any handlers.
|
|
116
128
|
* * (This is typically called to refresh any registered, stale sourceWithLayers references after a map style has changed).
|
|
@@ -3148,6 +3160,18 @@ export declare class EventsProxy extends AbstractEventProxy {
|
|
|
3148
3160
|
enable(enabled: boolean): void;
|
|
3149
3161
|
private toPaddedBounds;
|
|
3150
3162
|
private isEnabled;
|
|
3163
|
+
/**
|
|
3164
|
+
* Build the consumer-facing `allEventFeatures`: scope to the firing source, dedupe, then
|
|
3165
|
+
* substitute cached typed originals. Scope and dedupe run on the raw features, since
|
|
3166
|
+
* `.source` and the rendered id survive only before substitution; the top hit stays first.
|
|
3167
|
+
*
|
|
3168
|
+
* Scoping leaves only `firingSource`'s hits, so its {@link SourceWithLayers} is resolved once
|
|
3169
|
+
* here rather than per feature. For GeoJSON-backed sources we substitute the cached typed
|
|
3170
|
+
* original (un-stringified properties, real Dates, nested objects); for everything else — vector
|
|
3171
|
+
* tiles, unregistered sources — the MapLibre-rendered feature passes through (`MapGeoJSONFeature
|
|
3172
|
+
* extends Feature`).
|
|
3173
|
+
*/
|
|
3174
|
+
private toCallerFeatures;
|
|
3151
3175
|
private getRenderedFeatures;
|
|
3152
3176
|
private clearLongHoverTimeout;
|
|
3153
3177
|
private restartLongHoverTimeout;
|
|
@@ -3321,6 +3345,13 @@ export declare type FilterShowMode = 'all_except' | 'only';
|
|
|
3321
3345
|
*/
|
|
3322
3346
|
export declare type FilterSyntaxVersion = 'expression' | 'legacy';
|
|
3323
3347
|
|
|
3348
|
+
/**
|
|
3349
|
+
* Find the first feature whose {@link renderedRefId} equals `id`, with its index, or
|
|
3350
|
+
* `undefined` (also for a nullish `id`).
|
|
3351
|
+
* @ignore
|
|
3352
|
+
*/
|
|
3353
|
+
export declare const findFeatureByRefId: <F extends RenderedRef>(features: readonly F[], id: string | number | undefined) => IndexedFeature<F> | undefined;
|
|
3354
|
+
|
|
3324
3355
|
/**
|
|
3325
3356
|
* @group Routing
|
|
3326
3357
|
*/
|
|
@@ -3366,6 +3397,11 @@ export declare class GeoJSONSourceWithLayers<T extends FeatureCollection = Featu
|
|
|
3366
3397
|
shownFeatures: T;
|
|
3367
3398
|
constructor(map: Map_2, sourceId: string, layerSpecs: ToBeAddedLayerSpecWithoutSource[], addLayersToMap?: boolean, clusterOptions?: GeoJSONSourceClusterOptions);
|
|
3368
3399
|
show(featureCollection: T, { automaticVisibility }?: ShowOptions): void;
|
|
3400
|
+
/**
|
|
3401
|
+
* Canonical id-based lookup into `shownFeatures.features` via {@link findFeatureByRefId}
|
|
3402
|
+
* (first match wins on duplicate ids). Returns `undefined` for a nullish or absent id.
|
|
3403
|
+
*/
|
|
3404
|
+
findById(id: string | number | undefined): IndexedFeature<T['features'][number]> | undefined;
|
|
3369
3405
|
clear(): void;
|
|
3370
3406
|
private findFeature;
|
|
3371
3407
|
putEventState(options: PutEventStateOptions): void;
|
|
@@ -4668,6 +4704,12 @@ export declare const INDEFINITE_DELAY_DASH_COLOR = "rgba(137, 150, 168, 1)";
|
|
|
4668
4704
|
*/
|
|
4669
4705
|
export declare const INDEX_TYPE = "indexType";
|
|
4670
4706
|
|
|
4707
|
+
/** A feature together with its index in the array it was found in. @ignore */
|
|
4708
|
+
export declare type IndexedFeature<F> = {
|
|
4709
|
+
feature: F;
|
|
4710
|
+
index: number;
|
|
4711
|
+
};
|
|
4712
|
+
|
|
4671
4713
|
/**
|
|
4672
4714
|
* Complete TomTom map parameters after merging with global configuration.
|
|
4673
4715
|
* This type represents the fully resolved configuration used internally by the SDK.
|
|
@@ -7103,6 +7145,33 @@ export declare const reachableRangeGeometryConfig: (palette?: ColorPaletteOption
|
|
|
7103
7145
|
/** Custom label generator for reachable range features. */
|
|
7104
7146
|
export declare type ReachableRangeLabelFn = (feature: PolygonFeature, index: number) => string;
|
|
7105
7147
|
|
|
7148
|
+
/**
|
|
7149
|
+
* Class-independent feature-id recovery and lookup, shared by the event subsystem and the
|
|
7150
|
+
* source/layer caches. Operate on the minimal {@link RenderedRef} shape, so they accept
|
|
7151
|
+
* MapLibre `MapGeoJSONFeature`s, plain GeoJSON `Feature`s, and cached originals alike.
|
|
7152
|
+
*/
|
|
7153
|
+
/** Minimal shape needed to look a feature up by id. @ignore */
|
|
7154
|
+
export declare type RenderedRef = {
|
|
7155
|
+
id?: string | number;
|
|
7156
|
+
properties?: {
|
|
7157
|
+
id?: unknown;
|
|
7158
|
+
} | null;
|
|
7159
|
+
};
|
|
7160
|
+
|
|
7161
|
+
/**
|
|
7162
|
+
* Recover the SDK-assigned id of a feature, preferring `properties.id` over the top-level `id`.
|
|
7163
|
+
*
|
|
7164
|
+
* The SDK always stamps the real id into `properties.id` and uses `promoteId: 'id'`, so MapLibre
|
|
7165
|
+
* mirrors it onto the top-level `id` — the two are normally identical. The exception is **clustered**
|
|
7166
|
+
* GeoJSON sources: clustering disables `promoteId`, and MapLibre's supercluster then assigns its own
|
|
7167
|
+
* **synthetic** numeric top-level `id` (0, 1, 2, …) to rendered features. Preferring the top-level
|
|
7168
|
+
* `id` there would return that synthetic value and miss the cache, whereas `properties.id` is still
|
|
7169
|
+
* the real id. So read `properties.id` first, falling back to the top-level `id` (e.g. vector-tile
|
|
7170
|
+
* features that only carry a top-level id). Returns `undefined` when neither is set.
|
|
7171
|
+
* @ignore
|
|
7172
|
+
*/
|
|
7173
|
+
export declare const renderedRefId: (rendered: RenderedRef) => string | number | undefined;
|
|
7174
|
+
|
|
7106
7175
|
/**
|
|
7107
7176
|
* Resolves the effective color stops for a given color configuration.
|
|
7108
7177
|
* @ignore
|
|
@@ -10215,7 +10284,7 @@ export declare type TrafficIncidentOverlayConfig = MapModuleCommonConfig & {
|
|
|
10215
10284
|
* await overlay.show(result);
|
|
10216
10285
|
*
|
|
10217
10286
|
* // Highlight a subset.
|
|
10218
|
-
* overlay.setFocus([result.features[0].id as string]);
|
|
10287
|
+
* overlay.setFocus([result.features[0].properties.id as string]);
|
|
10219
10288
|
* ```
|
|
10220
10289
|
*
|
|
10221
10290
|
* @see {@link TrafficIncidentsModule} — the vector-tile alternative. Hidden in the
|
|
@@ -10261,18 +10330,17 @@ export declare class TrafficIncidentOverlayModule extends AbstractMapModule<Sour
|
|
|
10261
10330
|
*/
|
|
10262
10331
|
moveBeforeLayer(beforeLayerConfig: BeforeLayerConfig): void;
|
|
10263
10332
|
/**
|
|
10264
|
-
*
|
|
10333
|
+
* Returns the currently shown incidents — the exact data that was passed to {@link show}.
|
|
10334
|
+
*
|
|
10335
|
+
* Reads the module's client-side cache (`shownFeatures`), mirroring the other GeoJSON
|
|
10336
|
+
* modules (`PlacesModule`, `TrafficAreaAnalyticsModule`, `GeometriesModule`). It does
|
|
10337
|
+
* **not** hit-test the viewport: the proxy already scopes and de-duplicates the
|
|
10338
|
+
* `allEventFeatures` it dispatches to click handlers, so no caller needs viewport-level
|
|
10339
|
+
* de-duplication here.
|
|
10265
10340
|
*/
|
|
10266
10341
|
getShown(): {
|
|
10267
|
-
incidents:
|
|
10342
|
+
incidents: TrafficIncidentDetails;
|
|
10268
10343
|
};
|
|
10269
|
-
/**
|
|
10270
|
-
* Reduce a hit-test result (typically the `features` argument in a click handler) to the
|
|
10271
|
-
* distinct incidents drawn at that point. Each incident renders across multiple layers
|
|
10272
|
-
* (outline + inner + symbol), so `queryRenderedFeatures` returns several entries per
|
|
10273
|
-
* incident — this de-duplicates by feature id.
|
|
10274
|
-
*/
|
|
10275
|
-
distinctIncidents(features: readonly MapGeoJSONFeature[]): TrafficIncident[];
|
|
10276
10344
|
get events(): CombinedEvents<TrafficIncident, TrafficIncidentOverlayConfig, TrafficIncidentDetails>;
|
|
10277
10345
|
/**
|
|
10278
10346
|
* Mark a subset of currently-rendered incidents as "focused" via MapLibre
|
|
@@ -10285,7 +10353,6 @@ export declare class TrafficIncidentOverlayModule extends AbstractMapModule<Sour
|
|
|
10285
10353
|
*/
|
|
10286
10354
|
setFocus(ids: readonly string[] | null): void;
|
|
10287
10355
|
private clearFeatureState;
|
|
10288
|
-
private findSourceFeature;
|
|
10289
10356
|
}
|
|
10290
10357
|
|
|
10291
10358
|
/**
|
|
@@ -10818,7 +10885,7 @@ export declare const UNKNOWN_DELAY_DASH_COLOR = "rgba(190, 39, 27, 1)";
|
|
|
10818
10885
|
*
|
|
10819
10886
|
* @param topFeature - The primary target feature for the event, positioned on top of any overlapping features
|
|
10820
10887
|
* @param lngLat - The geographic coordinates where the event occurred
|
|
10821
|
-
* @param allEventFeatures -
|
|
10888
|
+
* @param allEventFeatures - The features at the event coordinates, scoped to the module whose handler fired and de-duplicated (a feature drawn across multiple layers or tiles appears once). Entries from GeoJSON-backed modules (places, routes, geometries) are the original typed `Feature` you passed to `show()`, with un-stringified properties (nested objects, Dates, arrays); entries from vector-tile modules (POIs, traffic) are the underlying `MapGeoJSONFeature` (which extends `Feature`). The first entry is the same feature as `topFeature` — though for modules with a mapping callback, `topFeature` is the mapped shape while this entry stays raw. To inspect **every** feature at the point across all modules — including the base map, with `.source`/`.layer` intact — query MapLibre directly (note `lngLat` is geographic, so project it to a pixel first): `const p = map.mapLibreMap.project(lngLat); const all = map.mapLibreMap.queryRenderedFeatures([[p.x - 5, p.y + 5], [p.x + 5, p.y - 5]]);`
|
|
10822
10889
|
* @param sourceWithLayers - The source and layer configuration to which the `topFeature` belongs
|
|
10823
10890
|
*
|
|
10824
10891
|
* @example
|
|
@@ -10853,7 +10920,7 @@ export declare const UNKNOWN_DELAY_DASH_COLOR = "rgba(190, 39, 27, 1)";
|
|
|
10853
10920
|
*
|
|
10854
10921
|
* @group User Interaction Events
|
|
10855
10922
|
*/
|
|
10856
|
-
export declare type UserEventHandler<T> = (topFeature: T, lngLat: LngLat, allEventFeatures:
|
|
10923
|
+
export declare type UserEventHandler<T> = (topFeature: T, lngLat: LngLat, allEventFeatures: T[], sourceWithLayers: SourceWithLayers) => void;
|
|
10857
10924
|
|
|
10858
10925
|
/**
|
|
10859
10926
|
* Event handling interface for map features.
|
|
@@ -10989,14 +11056,20 @@ export declare class UserEvents<T = MapGeoJSONFeature> {
|
|
|
10989
11056
|
* @param type The type of event to listen for (click, contextmenu, hover, long-hover)
|
|
10990
11057
|
* @param handler Callback function invoked when the event occurs
|
|
10991
11058
|
*
|
|
11059
|
+
* @returns An unsubscribe function that removes the handler registered by this call.
|
|
11060
|
+
*
|
|
10992
11061
|
* @remarks
|
|
10993
11062
|
* **Handler Parameters:**
|
|
10994
11063
|
* - `feature`: The primary feature that triggered the event
|
|
10995
11064
|
* - `lngLat`: Geographic coordinates [longitude, latitude] of the event
|
|
10996
|
-
* - `features`:
|
|
11065
|
+
* - `features`: The features from this module at the event location, de-duplicated (for
|
|
11066
|
+
* overlapping features within the module). To inspect features across all modules, query
|
|
11067
|
+
* `map.mapLibreMap.queryRenderedFeatures(...)` directly — see {@link UserEventHandler}.
|
|
10997
11068
|
*
|
|
10998
11069
|
* **Behavior:**
|
|
10999
|
-
* -
|
|
11070
|
+
* - Multiple handlers per event type are supported — each `on()` adds a handler (it does
|
|
11071
|
+
* **not** replace existing ones) and all of them fire. To remove one, call the unsubscribe
|
|
11072
|
+
* this returns; to clear them all, use `off(type)`.
|
|
11000
11073
|
* - Handlers are preserved across map style changes
|
|
11001
11074
|
* - Cursor automatically changes to pointer on hover
|
|
11002
11075
|
* - Events respect module visibility (hidden features don't trigger events)
|
|
@@ -11064,7 +11137,9 @@ export declare class UserEvents<T = MapGeoJSONFeature> {
|
|
|
11064
11137
|
*
|
|
11065
11138
|
* @remarks
|
|
11066
11139
|
* **Cleanup Behavior:**
|
|
11067
|
-
* - Removes
|
|
11140
|
+
* - Removes **all** handlers for the specified event type — to remove a single handler, call
|
|
11141
|
+
* the unsubscribe function returned by {@link on}
|
|
11142
|
+
* - Other event types remain active
|
|
11068
11143
|
* - Resets cursor behavior for this module
|
|
11069
11144
|
* - Safe to call multiple times (no error if no handler exists)
|
|
11070
11145
|
* - Does not affect other modules' event handlers
|