@tomtom-org/maps-sdk 0.45.7 → 0.45.9

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 CHANGED
@@ -2,6 +2,22 @@
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.45.9](https://github.com/tomtom-internal/maps-sdk-js/compare/v0.45.8...v0.45.9) (2026-02-26)
6
+
7
+
8
+ ### Features
9
+
10
+ * improve inverted theme support for reachable ranges, migrate examples to use theme: 'inverted' ([5bd9c93](https://github.com/tomtom-internal/maps-sdk-js/commit/5bd9c93ccc8cfce5b143da3f12a09d165af2eb6b))
11
+ * incident details service improvements and added agent tools ([9f3058d](https://github.com/tomtom-internal/maps-sdk-js/commit/9f3058dd55fde278ea8d8b58ddb223c354dd9ada))
12
+ * traffic incident details service ([202d513](https://github.com/tomtom-internal/maps-sdk-js/commit/202d51337cc0a45b2dd03474f8c155a3dc3e7eb9))
13
+
14
+ ## [0.45.8](https://github.com/tomtom-internal/maps-sdk-js/compare/v0.45.7...v0.45.8) (2026-02-24)
15
+
16
+
17
+ ### Bug Fixes
18
+
19
+ * ensure reachable ranges is visible on docs portal ([f10675a](https://github.com/tomtom-internal/maps-sdk-js/commit/f10675a170d6e7cfe8b73b29a921e210a3f0bae3))
20
+
5
21
  ## [0.45.7](https://github.com/tomtom-internal/maps-sdk-js/compare/v0.45.6...v0.45.7) (2026-02-24)
6
22
 
7
23
 
@@ -1,2 +1,2 @@
1
- import{nearestPointOnLine as A}from"@turf/turf";import{isNil as E}from"lodash-es";const R={commonBaseURL:"https://api.tomtom.com",apiKey:"",apiVersion:1},T=class{constructor(){this.config={...R}}put(A){this.config={...this.config,...A}}reset(){this.config={...R}}get(){return this.config}};T.instance=new T;let _=T;const I=(A={})=>({..._.instance.get(),...A}),S=["Public","Authorized","Restricted","Private","Unknown"],N=["Available","Reserved","Occupied","OutOfService","Unknown"],e=["ChargingProfileCapable","ChargingPreferencesCapable","ChipCardSupport","ContactlessCardSupport","CreditCardPayable","DebitCardPayable","PedTerminal","RemoteStartStopCapable","Reservable","RfidReader","StartSessionConnectorRequired","TokenGroupCapable","UnlockCapable","PlugAndCharge","Unknown"],t=["EvOnly","Plugged","Disabled","Customers","Motorcycles"],O=["StandardHouseholdCountrySpecific","IEC62196Type1","IEC62196Type1CCS","IEC62196Type2CableAttached","IEC62196Type2Outlet","IEC62196Type2CCS","IEC62196Type3","Chademo","GBT20234Part2","GBT20234Part3","IEC60309AC3PhaseRed","IEC60309AC1PhaseBlue","IEC60309DCWhite","Tesla"],C=["AC1","AC3","DC"],r=["Country","CountrySubdivision","CountrySecondarySubdivision","CountryTertiarySubdivision","Municipality","MunicipalitySubdivision","Neighbourhood","PostalCodeArea"],n=["POI","Street","Geography","Point Address","Address Range","Cross Street"],o=["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"],U=["No_Payment","Subscription","Direct"],L=["tollRoads","motorways","ferries","unpavedRoads","carpools","alreadyUsedRoads","borderCrossings","tunnels","carTrains","lowEmissionZones"],i=["carpool","carTrain","country","ferry","importantRoadStretch","lowEmissionZone","motorway","pedestrian","roadShields","speedLimit","toll","tollVignette","traffic","tunnel","unpaved","urban","vehicleRestricted"],a=[...i,"lanes"],s=[...a,"leg"],P=["accident","animals-on-road","broken-down-vehicle","danger","flooding","fog","frost","jam","lane-closed","narrow-lanes","other","rain","road-closed","roadworks","wind"],M=["Unified","AR","IN","PK","IL","MA","RU","TR","CN"],H=A=>!!A&&(A.length>=4&&A[3]!==A[1]&&A[2]!==A[0]),d=A=>H(A)?A:void 0,c=(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]]},G=(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,D=A=>A?.length?A.reduce((A,E)=>G(E,A)):void 0,u=A=>{const E=A?.length;if(!E)return;let R;const T=Math.ceil(E/1e3);for(let _=0;_<E;_+=T)R=c(A[_],R);return 1===T?R:c(A[E-1],R)},l=A=>{if(A){if(Array.isArray(A))return"number"==typeof A[0]?A.length>=4?A:void 0:D(A.map(A=>l(A)));if(A.bbox)return A.bbox;switch(A.type){case"Feature":return l(A.geometry);case"FeatureCollection":return D(A.features.map(l));case"GeometryCollection":return D(A.geometries.map(l));case"Point":return c(A.coordinates);case"LineString":case"MultiPoint":return u(A.coordinates);case"MultiLineString":case"Polygon":return D(A.coordinates.map(u));case"MultiPolygon":return D(A.coordinates.flatMap(A=>A.map(u)));default:return}}},p=(A,E)=>G(l(A),E),B=A=>[(A[0]+A[2])/2,(A[1]+A[3])/2],F=A=>{const[E,R,T,_]=A;return{type:"Feature",geometry:{type:"Polygon",coordinates:[[[E,R],[T,R],[T,_],[E,_],[E,R]]]},properties:{}}},Y=()=>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},V=A=>({"TomTom-User-Agent":`${m}/0.45.7`,...A.trackingId&&{"Tracking-ID":h(A.trackingId)}}),y=(A,E)=>{if(A){if(Array.isArray(A))return A;if(A.coordinates)return A.coordinates;if(A.geometry){if("main-when-available"===E?.useEntryPoint){const E=(R=A,R?.properties?.entryPoints?.find(A=>"main"===A.type));return E?.position??A.geometry.coordinates}return A.geometry.coordinates}}var R;return null},g=(A,E)=>{const R=y(A,E);if(!R)throw new Error(`The received object does not have lng-lat coordinates: ${JSON.stringify(A)}`);return R},f=A=>({type:"Point",coordinates:A}),K=A=>({type:"Feature",geometry:f(A),properties:{}}),v={SPORTS_CENTER:7320,STADIUM:7374,RESTAURANT:7315,CAFE_PUB:9376,HEALTH_CARE_SERVICE:9663,HOSPITAL:7321,HOSPITAL_POLYCLINIC:7321,DOCTOR:9373,SHOP:9361,MARIJUANA_DISPENSARY:9364,MARKET:7332,PUBLIC_AMENITY:9932,ROAD_TRAFFIC_CONTROL_CENTER:7301,POST_OFFICE:7324,COLLEGE_UNIVERSITY:7377,OPEN_PARKING_AREA:7369,CLUB_ASSOCIATION:9937,CAMPING_GROUND:7360,HOLIDAY_RENTAL:7304,VACATION_RENTAL:7304,AMUSEMENT_PARK:9902,RESIDENTIAL_ACCOMMODATION:7303,AGRICULTURAL_BUSINESS:7335,AGRICULTURE:7335,AIRPORT:7383,COMPANY:9352,NIGHTLIFE:9379,REPAIR_SHOP:7310,REPAIR_FACILITY:7310,HOTEL_MOTEL:7314,SCHOOL:7372,AUTOMOTIVE_DEALER:9910,MOVIE_THEATER:7342,CINEMA:7342,THEATER:7318,PARK_RECREATION_AREA:9362,PLACE_OF_WORSHIP:7339,IMPORTANT_TOURIST_ATTRACTION:7376,TOURIST_ATTRACTION:7376,TRAIL_SYSTEM:7302,TRAILS:7302,RAILWAY_STATION:7380,PUBLIC_TRANSPORT_STOP:9942,EXCHANGE:9160,MARINA:7347,WEIGH_STATION:7359,CAR_WASH:9155,LEISURE_CENTER:9378,ACCESS_GATEWAY:7389,GEOGRAPHIC_FEATURE:8099,URBAN_STATION:7380004,ADVENTURE_VEHICLE_TRAIL:7302003,ADVERTISING_COMPANY:9352003,AFGHAN_RESTAURANT:7315081,AFRICAN_RESTAURANT:7315002,AGRICULTURAL_SUPPLIES:9361073,AGRICULTURAL_TECHNOLOGY:9352012,AIRFIELD:7383005,AIRLINE_COMPANY:9352034,AIRLINE_ACCESS:7389002,ALGERIAN_RESTAURANT:7315082,AMBULANCE_UNIT:9663005,AMERICAN_RESTAURANT:7315003,AMPHITHEATER:7318007,AMUSEMENT_ARCADE:9902002,AMUSEMENT_PLACE:9902004,ANIMAL_SERVICES:9361048,ANIMAL_SHELTER:9352045,ANTIQUE_ART_SHOP:9361049,APARTMENT_RENTAL:7304006,AQUATIC_ZOO:9927004,ARABIAN_RESTAURANT:7315083,ARCH:7376012,ARGENTINIAN_RESTAURANT:7315084,ARMENIAN_RESTAURANT:7315085,ART_SCHOOL:7372012,ASHRAM:7339007,ASIAN_RESTAURANT:7315062,ATHLETICS_TRACK:7374002,ATV_DEALER:9910009,AUSTRALIAN_RESTAURANT:7315086,AUSTRIAN_RESTAURANT:7315004,AUTOMOBILE_COMPANY:9352013,AUTOMOBILE_MANUFACTURING:9352041,BAGS_LEATHERWEAR:9361058,BANQUET_ROOMS:7315146,BAR:9379004,BARBECUE_RESTAURANT:7315005,BASEBALL_PARK:7374009,BASKETBALL_ARENA:7374012,BASQUE_RESTAURANT:7315087,BATTLEFIELD:9362002,BAY:8099016,BEACH_CLUB:9937002,BEAUTY_SALON:9361067,BEAUTY_SUPPLIES:9361050,B_B_GUEST_HOUSE:7314002,BELGIAN_RESTAURANT:7315006,BETTING_STATION:9361072,BISTRO:7315007,BLOOD_BANK:9663004,BOAT_DEALER:9910004,BOAT_LAUNCHING_RAMP:9362032,BOATING_EQUIPMENT_ACCESSORIES:9361083,BODYSHOP:7310002,BOLIVIAN_RESTAURANT:7315088,BOOK_SHOP:9361002,BOSNIAN_RESTAURANT:7315089,BOWLING_CENTER:9378002,BRAZILIAN_RESTAURANT:7315072,BRIDGE:7376010,BRIDGE_TUNNEL_OPERATIONS:9352035,BRITISH_RESTAURANT:7315008,BUFFET_RESTAURANT:7315142,BUILDING:7376002,BULGARIAN_RESTAURANT:7315090,BUNGALOW_RENTAL:7304004,BURMESE_RESTAURANT:7315091,BUS_DEALER:9910008,BUS_CHARTER_COMPANY:9352025,BUS_LINES:9352027,BUS_STOP:9942002,BUSINESS_SERVICES:9352039,CABARET_THEATER:7318006,CABINS_LODGES:7314007,CABLE_TELEPHONE_COMPANY:9352040,CAFE:9376002,CAFETERIA:7315147,CALIFORNIAN_RESTAURANT:7315009,CAMBODIAN_RESTAURANT:7315092,CANADIAN_RESTAURANT:7315010,CAPE:8099020,CAR_DEALER:9910002,CAR_GLASS_REPLACEMENT_SHOP:7310003,CARAVAN_SITE:7360003,CARIBBEAN_RESTAURANT:7315011,CATERING_SERVICES:9352043,CAVE:8099003,C_DS_DVD_VIDEOS:9361003,VIDEO_RENTAL_SHOP:9361044,CEMETERY:9362003,CHALET_RENTAL:7304005,CHEMICAL_COMPANY:9352014,CHICKEN_RESTAURANT:7315070,CHILD_CARE_FACILITY:7372003,CHILEAN_RESTAURANT:7315093,CHINESE_RESTAURANT:7315012,CHRISTMAS_HOLIDAY_SHOP:9361082,CHURCH:7339002,CLEANING_SERVICES:9352029,CHILDRENS_CLOTHES:9361004,FOOTWEAR_SHOE_REPAIRS:9361005,CLOTHING_SHOP:9361006,MENS_CLOTHING:9361007,SPECIALTY_CLOTHING_SHOP:9361079,WOMENS_CLOTHING:9361008,COACH_STOP:9942005,COCKTAIL_BAR:9379006,COFFEE_SHOP:9376006,COLOMBIAN_RESTAURANT:7315094,COMEDY_CLUB:9379009,COMPUTER_DATA_SERVICES:9352004,SOFTWARE_COMPANY:9352005,CONCERT_HALL:7318002,CONDOMINIUM_COMPLEX:7303006,CONSTRUCTION_COMPANY:9352032,CONSTRUCTION_MATERIAL_EQUIPMENT:9361042,CONVENIENCE_STORE:9361009,CORSICAN_RESTAURANT:7315095,COTTAGE_RENTAL:7304002,COVE:8099017,CREOLE_RESTAURANT:7315063,CREPERIE:7315013,CRICKET_GROUND:7374003,CUBAN_RESTAURANT:7315096,CULINARY_SCHOOL:7372015,CYPRIOT_RESTAURANT:7315097,CZECH_RESTAURANT:7315068,DAM:7376007,DANCE_STUDIO_SCHOOL:9378003,DANISH_RESTAURANT:7315098,DELICATESSEN:9361060,DINNER_THEATER:7318008,DISCO_CLUB:9379002,DIVERSIFIED_FINANCIALS:9352006,DOMINICAN_RESTAURANT:7315099,DONGBEI_RESTAURANT:7315057,DOUGHNUT_RESTAURANT:7315079,DRIVE_THROUGH_BOTTLE_SHOP:9361076,DRIVE_IN_MOVIES:7342003,DRIVING_SCHOOL:7372016,DRUG_STORE:9361051,DRY_CLEANER:9361010,DUNE:8099005,DUTCH_RESTAURANT:7315014,EGYPTIAN_RESTAURANT:7315100,ELECTRICAL_APPLIANCES_SHOP:9361052,CAMERAS_PHOTOGRAPHY:9361011,COMPUTER_COMPUTER_SUPPLIES:9361012,CONSUMER_ELECTRONICS:9361013,OFFICE_EQUIPMENT:9361014,ENGLISH_RESTAURANT:7315101,EQUIPMENT_RENTAL:9352038,EROTIC_RESTAURANT:7315132,ETHIOPIAN_RESTAURANT:7315102,EXOTIC_RESTAURANT:7315133,FACTORY_OUTLET:9361016,FAIRGROUND:9362017,FARM:7335004,FARMERS_MARKET:7332004,FAST_FOOD:7315015,PHILIPPINE_RESTAURANT:7315016,FINNISH_RESTAURANT:7315104,FISHING_HUNTING_AREA:9362016,FITNESS_CLUB_CENTER:7320002,FLATS_APARTMENT_COMPLEX:7303003,FLORISTS:9361017,FLYING_CLUB:9378004,FONDUE_RESTAURANT:7315134,BAKERY:9361018,BUTCHER:9361019,FISHMONGER:9361020,FOOD_MARKET:9361021,GREENGROCER:9361022,GROCERY_STORE:9361023,OTHER_FOOD_SHOPS:9361024,WINE_SPIRITS:9361025,FOOTBALL_STADIUM:7374010,FOREST_AREA:9362015,FRENCH_RESTAURANT:7315017,FUNERAL_SERVICE_MORTUARIES:9352036,FURNITURE_HOME_FURNISHINGS:9361054,FUSION_RESTAURANT:7315071,CAR_REPAIR_AND_SERVICE:7310004,GENERAL_PRACTITIONER:9373002,GERMAN_RESTAURANT:7315018,GIFTS_CARDS_NOVELTIES_SOUVENIRS:9361026,GLASSWARE_CERAMIC_SHOP:9361055,GOLD_EXCHANGE:9160003,GREEK_RESTAURANT:7315019,GRILL_RESTAURANT:7315020,GUANGDONG_RESTAURANT:7315054,GURUDWARA:7339006,HAIRDRESSER:9361027,HAMBURGER_RESTAURANT:7315069,HARBOR:8099018,HARDWARE_STORE:9361069,HAWAIIAN_RESTAURANT:7315021,HIGH_SCHOOL:7372006,HIKING_TRAIL:7302004,HILL:8099025,HISTORIC_SITE:9362004,HISTORICAL_PARK:9362005,HOBBY_SHOP:9361053,HOCKEY_CLUB:9937003,HOME_APPLIANCE_REPAIR:9352044,HORSE_RACING_TRACK:7374005,HORSE_RIDING_CENTER:7320003,HORTICULTURE:7335002,HOSPITAL_FOR_WOMEN_AND_CHILDREN:7321005,HOSPITAL_OF_CHINESE_MEDICINE:7321004,HOSTEL:7314004,HOT_POT_RESTAURANT:7315058,HOTEL:7314003,CARPET_FLOOR_COVERINGS:9361028,CURTAINS_TEXTILES:9361029,DO_IT_YOURSELF_CENTERS:9361030,HOUSE_GARDEN_FURNITURE_FITTINGS:9361031,GARDEN_CENTERS_SERVICES:9361032,GLASS_WINDOWS_STORE:9361080,KITCHENS_BATHROOMS:9361033,LIGHTING_SHOPS:9361034,PAINTING_DECORATING:9361035,HUNAN_RESTAURANT:7315052,HUNGARIAN_RESTAURANT:7315022,ICE_CREAM_PARLOR:7315078,ICE_HOCKEY_ARENA:7374008,IMPORT_EXPORT_AND_DISTRIBUTION:9352042,INDIAN_RESTAURANT:7315023,INDONESIAN_RESTAURANT:7315024,INFORMAL_MARKET:7332002,INSURANCE_COMPANY:9352007,INTERNATIONAL_RESTAURANT:7315073,INTERNATIONAL_RAILROAD_STATION:7380002,INTERNET_CAFE:9376004,INVESTMENT_ADVISOR:9352037,IRANIAN_RESTAURANT:7315105,IRISH_RESTAURANT:7315065,ISLAND:8099022,ISRAELI_RESTAURANT:7315106,ITALIAN_RESTAURANT:7315025,JAMAICAN_RESTAURANT:7315066,JAPANESE_RESTAURANT:7315026,JAZZ_CLUB:9379008,JEWELRY_CLOCKS_WATCHES:9361036,JEWISH_RESTAURANT:7315027,JUNIOR_COLLEGE_COMMUNITY_COLLEGE:7377003,KARAOKE_CLUB:9379010,KOREAN_RESTAURANT:7315028,KOSHER_RESTAURANT:7315067,LAGOON:8099019,LAKESHORE:9362006,LANGUAGE_SCHOOL:7372010,LATIN_AMERICAN_RESTAURANT:7315029,LAUNDRY:9361045,LEBANESE_RESTAURANT:7315030,LEGAL_SERVICES:9352023,LOCAL_POST_OFFICE:7324003,LOCAL_SPECIALITIES_SHOP:9361056,LOCALE:8099027,LOTTERY_SHOP:9361071,LUXEMBOURGIAN_RESTAURANT:7315107,MACROBIOTIC_RESTAURANT:7315135,MAGHRIB_RESTAURANT:7315108,DELIVERY_SERVICE:9352008,MALTESE_RESTAURANT:7315031,MANUFACTURING_COMPANY:9352011,MARINE_ELECTRONIC_EQUIPMENT:9361065,MARSH:8099023,MAURITIAN_RESTAURANT:7315109,MAUSOLEUM_GRAVE:7376011,MECHANICAL_ENGINEERING:9352016,MEDICAL_SUPPLIES_EQUIPMENT:9361043,MEDITERRANEAN_RESTAURANT:7315032,MEMORIAL:9362007,SUBWAY_STATION:7380005,MEXICAN_RESTAURANT:7315033,MICROBREWERY:9376007,MIDDLE_EASTERN_RESTAURANT:7315034,MIDDLE_SCHOOL:7372014,MILITARY_AIRPORT:7383004,MINERAL_HOT_SPRINGS:8099021,MINING_COMPANY:9352031,MOBILE_PHONE_SHOP:9361075,MONGOLIAN_RESTAURANT:7315110,MONUMENT:7376003,MOROCCAN_RESTAURANT:7315074,MOSQUE:7339003,MOTEL:7314006,MOTOR_RACING_STADIUM:7374011,MOTORCYCLE_DEALER:9910003,MOTORCYCLE_REPAIR:7310008,MOUNTAIN_BIKE_TRAIL:7302002,MOUNTAIN_PEAK:8099002,MOVING_STORAGE_COMPANY:9352033,MULTI_PURPOSE_STADIUM:7374006,MUSIC_CENTER:7318003,MUSIC_INSTRUMENTS_STORE:9361059,MUSSELS_RESTAURANT:7315136,NAIL_SALON:9361068,NATIONAL_RAILROAD_STATION:7380003,NATURAL_RECREATION_ATTRACTION:9362030,NEPALESE_RESTAURANT:7315111,NETBALL_STADIUM:7374014,NEWSAGENTS_TOBACCONISTS:9361037,NORWEGIAN_RESTAURANT:7315112,OASIS:8099011,OBSERVATORY:7376005,OEM:9352021,OIL_NATURAL_GAS:9352030,OPERA_HOUSE:7318004,OPTICIAN:9361038,ORGANIC_FOOD_RESTAURANT:7315075,ORIENTAL_RESTAURANT:7315035,OTHER_REPAIR_SHOPS:7310005,OTHER_WINTER_SPORT:9362025,PAGODA:7339008,PAKISTANI_RESTAURANT:7315127,PAN:8099009,PARK:9362008,PARKWAY:9362009,PASSENGER_TRANSPORT_TICKET_OFFICE:9932002,PAWN_SHOP:9361070,PEDESTRIAN_SUBWAY:9932003,PERSONAL_CARE_FACILITY:9663003,PERSONAL_SERVICE:9663002,PERUVIAN_RESTAURANT:7315061,PET_SUPPLIES:9361064,PHARMACEUTICAL_COMPANY:9352018,PHOTO_LAB_DEVELOPMENT:9361046,PHOTOCOPY_SHOP:9361047,PICNIC_AREA:9362033,PIZZERIA:7315036,PLAIN_FLAT:8099007,PLANETARIUM:7376006,PLATEAU:8099008,POLISH_RESTAURANT:7315037,POLYNESIAN_RESTAURANT:7315129,PORTUGUESE_RESTAURANT:7315038,PRE_SCHOOL:7372004,PRESERVE:9362010,PRIMARY_PRODUCER:7335003,PRIMARY_SCHOOL:7372005,PRIVATE_AIRPORT:7383003,PRIVATE_CLUB:9379003,PROVENCAL_RESTAURANT:7315130,PUB:9376003,PUB_FOOD:7315039,PUBLIC_MARKET:7332003,PUBLIC_AIRPORT:7383002,PUBLIC_CALL_BOX:9932004,PUBLIC_HEALTH_TECHNOLOGY_COMPANY:9352017,PUBLISHING_TECHNOLOGIES:9352019,QUARRY:8099026,RACE_TRACK:7374013,RAILROAD_SIDING:7380006,RAPIDS:8099015,REAL_ESTATE_COMPANY:9352009,REAL_ESTATE_AGENT:9361015,RECREATION_AREA:9362011,RECREATIONAL_CAMPING_GROUND:7360002,RECREATIONAL_VEHICLE_DEALER:9910005,RECYCLING_SHOP:9361057,REEF:8099014,RESERVOIR:8099013,RESIDENTIAL_ESTATE:7303004,RESORT:7314005,REST_CAMP:7314008,RETAIL_OUTLET:9361063,RETIREMENT_COMMUNITY:7303002,RIDGE:8099004,RIVER_CROSSING:8099024,ROAD_RESCUE:9932006,ROADSIDE_RESTAURANT:7315041,ROCK_CLIMBING_TRAIL:7302006,ROCKS:8099012,RUGBY_GROUND:7374007,ROMANIAN_RESTAURANT:7315131,RUSSIAN_RESTAURANT:7315040,SALAD_BAR:7315143,CAR_ACCESSORIES:7310006,SANDWICH_RESTAURANT:7315042,SAUNA_SOLARIUM_MASSAGE:9378005,SAVINGS_INSTITUTION:9352010,SAVOY_RESTAURANT:7315113,SCANDINAVIAN_RESTAURANT:7315114,SCOTTISH_RESTAURANT:7315115,SEAFOOD:7315043,SEASHORE:9362013,SECURED_ENTRANCE:7389004,SECURITY_PRODUCTS:9361078,SENIOR_HIGH_SCHOOL:7372007,SERVICE_COMPANY:9352002,SHANDONG_RESTAURANT:7315053,SHANGHAI_RESTAURANT:7315055,SHOPPING_SERVICE:9361062,SICHUAN_RESTAURANT:7315056,SICILIAN_RESTAURANT:7315116,SKI_RESORT:9362026,SLAVIC_RESTAURANT:7315117,SLOVAK_RESTAURANT:7315080,SNACKS_RESTAURANT:7315139,SNOOKER_POOL_BILLIARD:9378006,SOCCER_STADIUM:7374004,SOUL_FOOD:7315064,SOUP_RESTAURANT:7315140,SPANISH_RESTAURANT:7315044,SPECIAL_HOSPITAL:7321003,SPECIAL_SCHOOL:7372013,SPECIALIST:9373003,SPECIALTY_FOODS:9361061,SPORT_SCHOOL:7372011,SPORTS_EQUIPMENT_CLOTHING:9361039,STAMP_SHOP:9361074,STATION_ACCESS:7389003,STATUE:7376013,STEAK_HOUSE:7315045,STOCK_EXCHANGE:9160002,SUDANESE_RESTAURANT:7315118,SUPERMARKETS_HYPERMARKETS:7332005,SURINAMESE_RESTAURANT:7315046,SUSHI_RESTAURANT:7315148,SWEDISH_RESTAURANT:7315119,SWISS_RESTAURANT:7315047,SYNAGOG:7339004,SYRIAN_RESTAURANT:7315120,TAILOR_SHOP:9361077,TAIWANESE_RESTAURANT:7315059,TAKEOUT_FOOD:7315145,TAPAS_RESTAURANT:7315076,TAX_SERVICES:9352022,TAXI_STAND:9942003,TAXI_LIMOUSINE_SHUTTLE_SERVICE:9352026,TEA_HOUSE:9376005,TECHNICAL_SCHOOL:7372009,TELECOMMUNICATIONS:9352020,TEMPLE:7339005,TEPPANYAKI_RESTAURANT:7315121,THAI_RESTAURANT:7315048,THEMATIC_SPORT_CENTER:7320005,TIBETAN_RESTAURANT:7315122,PUBLIC_TOILET:9932005,TOWER:7376009,TOWNHOUSE_COMPLEX:7303005,TOYS_GAMES_SHOP:9361040,TRAFFIC_SERVICE_CENTER:7301002,TRAFFIC_CONTROL_DEPARTMENT:7301002,STREETCAR_STOP:9942004,TRANSPORT_COMPANY:9352024,TRAVEL_AGENT:9361041,TRUCK_DEALER:9910006,TRUCK_REPAIR_AND_SERVICE:7310009,TRUCK_WASH:9155003,TUNISIAN_RESTAURANT:7315123,TUNNEL:7376008,TURKISH_RESTAURANT:7315049,TIRE_SERVICE:7310007,URUGUAYAN_RESTAURANT:7315124,VALLEY:8099006,VAN_DEALER:9910007,VARIETY_STORE:9361081,VEGETARIAN_RESTAURANT:7315050,VENEZUELAN_RESTAURANT:7315125,VIETNAMESE_RESTAURANT:7315051,VILLA_RENTAL:7304003,VOCATIONAL_SCHOOL:7372008,WATER_HOLE:7376014,WEDDING_SERVICES:9352046,WEIGH_SCALES:7359003,WELL:8099010,WELSH_RESTAURANT:7315126,WESTERN_RESTAURANT:7315060,WHOLESALE_CLUB:9361066,WILDERNESS_AREA:9362014,WILDLIFE_PARK:9927005,WINE_BAR:9379007,YACHT_BASIN:7347003,YOGURT_JUICE_BAR:7315149,ZOO:9927003,ZOOS_ARBORETA_BOTANICAL_GARDEN:9927,ELECTRONICS_COMPANY:9352015,RIVER_SCENIC_AREA:9362036,HORSE_RIDING_TRAIL:7302005,NATURAL_TOURIST_ATTRACTION:7376004,OPEN_CAR_PARKING_AREA:7369002,MEDICINAL_MARIJUANA_DISPENSARY:9364002,RECREATIONAL_MARIJUANA_DISPENSARY:9364003,ICE_SKATING_RINK:9360,TENNIS_COURT:9369,GOLF_COURSE:9911,WATER_SPORT:9371,SWIMMING_POOL:7338,RESTAURANT_AREA:9359,DENTIST:9374,VETERINARIAN:9375,PHARMACY:7326,EMERGENCY_ROOM:9956,DEPARTMENT_STORE:7327,SHOPPING_CENTER:7373,FIRE_STATION_BRIGADE:7392,NON_GOVERNMENTAL_ORGANIZATION:9152,PRISON_CORRECTIONAL_FACILITY:9154,EMBASSY:7365,LIBRARY:9913,TRANSPORT_AUTHORITY_VEHICLE_REGISTRATION:9151,WELFARE_ORGANIZATION:9153,NATIVE_RESERVATION:9389,COURTHOUSE:9363,POLICE_STATION:7322,PRIMARY_RESOURCE_UTILITY:9150,GOVERNMENT_OFFICE:7367,MILITARY_INSTALLATION:9388,RENT_A_CAR_PARKING:9930,MUSEUM:7317,INDUSTRIAL_BUILDING:9383,PARKING_GARAGE:7313,TOURIST_INFORMATION_OFFICE:7316,MEDIA_FACILITY:9158,WINERY:7349,EMERGENCY_MEDICAL_SERVICE:7391,CASINO:7341,MANUFACTURING_FACILITY:9156,COMMERCIAL_BUILDING:9382,CULTURAL_CENTER:7319,EXHIBITION_CONVENTION_CENTER:9377,RENT_A_CAR_FACILITY:7312,TRUCK_STOP:7358,ADVENTURE_SPORTS_FACILITY:7305,ADVENTURE_SPORTS_VENUE:7305,REST_AREA:7395,RESEARCH_FACILITY:9157,COURIER_DROP_BOX:7388,GAS_STATION:7311,PETROL_STATION:7311,FUEL_FACILITIES:7311,MOTORING_ORGANIZATION_OFFICE:7368,CASH_DISPENSER:7397,ATM:7397,COMMUNITY_CENTER:7363,BEACH:9357,PORT_WAREHOUSE_FACILITY:9159,ELECTRIC_VEHICLE_STATION:7309,SCENIC_PANORAMIC_VIEW:7337,ENTERTAINMENT:9900,BUSINESS_PARK:7378,BANK:7328,HELIPAD_HELICOPTER_LANDING:7308,CHECKPOINT:9955,FRONTIER_CROSSING:7366,MOUNTAIN_PASS:9935,TOLL_GATE:7375,FERRY_TERMINAL:7352},$=Object.fromEntries(Object.entries(v).map(([A,E])=>[E,A])),W=(E,R,T)=>{if(0===E.geometry.coordinates.length)return 0;if(R.length<2)return 0;const _=g(T),I=A(E,_).properties.location;if(void 0===I)return 0;const S=[];for(const N of R){const R=g(N),T=A(E,R);S.push(T.properties.location??0)}for(let A=0;A<S.length-1;A++){const E=S[A],R=S[A+1];if(I>=E&&I<=R)return A+1}return I<S[0]?0:R.length},b=(A,E,R)=>{const T=W(A,E,R);return[...E.slice(0,T),R,...E.slice(T)]},w=(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 _=Z(R,"pointIndex",E);if(!_)return;const{lower:I,lowerVal:S,upper:N,upperVal:e}=_,t=I.distanceInMeters,O=N.distanceInMeters,C=I.travelTimeInSeconds,r=N.travelTimeInSeconds;if(void 0===t||void 0===O||void 0===C||void 0===r)return;if(S===e)return{distanceInMeters:t,travelTimeInSeconds:C};const n=(E-S)/(e-S);return{distanceInMeters:t+n*(O-t),travelTimeInSeconds:C+n*(r-C)}},x=(A,E,R)=>{const T=w(A,E),_=w(A,R);if(T&&_)return{start:T,end:_,delta:{distanceInMeters:_.distanceInMeters-T.distanceInMeters,travelTimeInSeconds:_.travelTimeInSeconds-T.travelTimeInSeconds}}},k=(A,E)=>x(A,E.startPointIndex,E.endPointIndex),X=(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 S=c(T);return S=c(I,S),S=c(_,S),S},Z=(A,E,R)=>{let T,_,I,S;for(const N of A){const A=N[E];void 0!==A&&(A<=R&&(T=N,_=A),A>=R&&void 0===I&&(I=N,S=A))}return void 0!==T&&void 0!==_&&void 0!==I&&void 0!==S?{lower:T,lowerVal:_,upper:I,upperVal:S}:void 0},J=(A,E,R)=>{const T=A.geometry.coordinates,_=Math.min(E+1,T.length-1),I=T[E],S=T[_],N=w(A,E),e=w(A,_);if(N&&e)return{position:[I[0]+R*(S[0]-I[0]),I[1]+R*(S[1]-I[1])],travelTimeInSeconds:N.travelTimeInSeconds+R*(e.travelTimeInSeconds-N.travelTimeInSeconds),distanceInMeters:N.distanceInMeters+R*(e.distanceInMeters-N.distanceInMeters)}},Q=(A,E,R)=>{const{progress:T}=A.properties;if(!T||0===T.length)return;const _=A.geometry.coordinates,I=T[0],S=T.at(-1),N=I[E],e=S[E];if(void 0===N||void 0===e)return;if(R<=N)return{position:_[I.pointIndex],travelTimeInSeconds:I.travelTimeInSeconds??0,distanceInMeters:I.distanceInMeters??0};if(R>=e)return{position:_[S.pointIndex],travelTimeInSeconds:S.travelTimeInSeconds??0,distanceInMeters:S.distanceInMeters??0};const t=((A,E,R)=>{const T=Z(A,E,R);if(!T)return;const{lower:_,lowerVal:I,upper:S,upperVal:N}=T,e=I===N?0:(R-I)/(N-I),t=_.pointIndex+e*(S.pointIndex-_.pointIndex),O=Math.floor(t);return{pathIndex:O,progressRatioTowardsNextPathPoint:t-O}})(T,E,R);return void 0!==t?J(A,t.pathIndex,t.progressRatioTowardsNextPathPoint):void 0},j=(A,E)=>{if("traveledTimeInSeconds"in E)return Q(A,"travelTimeInSeconds",E.traveledTimeInSeconds);if("traveledDistanceInMeters"in E)return Q(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:Q(A,"travelTimeInSeconds",T)},z=(E,R)=>{const{progress:T}=E.properties;if(!T?.length)return;const _=E.geometry.coordinates,I=A(E,g(R)),S=I.properties.index??0,N=Math.min(S+1,_.length-1),e=_[S],t=_[N],O=((A,E,R)=>{const T=R[0]-A[0],_=R[1]-A[1],I=T*T+_*_;if(0===I)return 0;const S=((E[0]-A[0])*T+(E[1]-A[1])*_)/I;return Math.max(0,Math.min(1,S))})(e,I.geometry.coordinates,t);return J(E,S,O)},q=(A,E)=>{let R;return R=Array.isArray(A)||"Feature"!==A.type?K(g(A)):A,{...R,properties:{...R.properties,radiusMeters:E}}},AA=A=>Array.isArray(A)?Array.isArray(A[0])?"path":"waypoint":"Feature"===A.type&&"LineString"===A.geometry.type?"path":"waypoint",EA=["unknown","minor","moderate","major","indefinite"],RA=A=>A?.minutes??"min",TA=(A,E)=>{if(A){const T=Math.abs(A)/3600;let I=Math.floor(T),S=Math.round(T%1*60);60===S&&(S=0,I++);const N={..._.instance.get().displayUnits?.time,...E};if(I)return`${I} ${R=N,R?.hours??"hr"} ${S.toString().padStart(2,"0")} ${RA(N)}`;if(S)return`${S.toString()} ${RA(N)}`}var R},_A=1609.344,IA=A=>A?.meters??"m",SA=A=>A?.kilometers??"km",NA=(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 S=T>0?T:"";return _<.375?`${I}${S}¼ ${R}`:_<.625?`${I}${S}½ ${R}`:_<.875?`${I}${S}¾ ${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}`,eA=A=>A.miles??"mi",tA=(A,E)=>{const R=A/_A,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"):NA(R,T,eA(E))},OA=(A,E)=>{const R=A/_A,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"):NA(R,T,eA(E))},CA=(A,R)=>{if(E(A))return"";const T={..._.instance.get().displayUnits?.distance,...R};switch(T?.type??"metric"){case"metric":return((A,E)=>{const R=Math.abs(A);if(R<10)return`${A} ${IA(E)}`;if(R<500)return`${10*Math.round(A/10)} ${IA(E)}`;if(R<1e3){const R=100*Math.round(A/100);return 1e3===R||-1e3===R?`${A<0?"-":""}1 ${SA(E)}`:`${R} ${IA(E)}`}return R<1e4?`${100*Math.round(A/100)/1e3} ${SA(E)}`:`${Math.round(A/1e3)} ${SA(E)}`})(A,T);case"imperial_us":return tA(A,T);case"imperial_uk":return OA(A,T)}};export{m as TOMTOM_USER_AGENT_SDK_NAME,_ as TomTomConfig,q as asSoftWaypoint,L as avoidableTypes,B as bboxCenter,G as bboxExpandedWithBBox,p as bboxExpandedWithGeoJSON,c as bboxExpandedWithPosition,D as bboxFromBBoxes,u as bboxFromCoordsArray,l as bboxFromGeoJSON,d as bboxOnlyIfWithArea,w as calculateProgressAtRoutePoint,e as chargingPointCapabilities,t as chargingPointRestrictions,N as chargingPointStatus,S as chargingStationAccessTypes,O as connectorTypes,C as currentTypes,R as defaultConfig,W as findBestWaypointInsertionIndex,CA as formatDistance,TA as formatDuration,Y as generateId,V as generateTomTomHeaders,r as geographyTypes,j as getCoordinateAtRouteProgress,y as getPosition,g as getPositionStrict,z as getProgressAtNearestRoutePoint,AA as getRoutePlanningLocationType,x as getRouteProgressBetween,k as getRouteProgressForSection,X as getSectionBBox,EA as indexedMagnitudes,i as inputSectionTypes,a as inputSectionTypesWithGuidance,H as isBBoxWithArea,I as mergeFromGlobal,U as paymentMethods,n as placeTypes,o as plugTypes,v as poiCategoriesToID,$ as poiIDsToCategories,F as polygonFromBBox,s as sectionTypes,K as toPointFeature,f as toPointGeometry,P as trafficIncidentCategories,M as views,b as withInsertedWaypoint};
1
+ import{nearestPointOnLine as A}from"@turf/turf";import{isNil as E}from"lodash-es";const R={commonBaseURL:"https://api.tomtom.com",apiKey:"",apiVersion:1},T=class{constructor(){this.config={...R}}put(A){this.config={...this.config,...A}}reset(){this.config={...R}}get(){return this.config}};T.instance=new T;let _=T;const I=(A={})=>({..._.instance.get(),...A}),S=["Public","Authorized","Restricted","Private","Unknown"],N=["Available","Reserved","Occupied","OutOfService","Unknown"],e=["ChargingProfileCapable","ChargingPreferencesCapable","ChipCardSupport","ContactlessCardSupport","CreditCardPayable","DebitCardPayable","PedTerminal","RemoteStartStopCapable","Reservable","RfidReader","StartSessionConnectorRequired","TokenGroupCapable","UnlockCapable","PlugAndCharge","Unknown"],t=["EvOnly","Plugged","Disabled","Customers","Motorcycles"],O=["StandardHouseholdCountrySpecific","IEC62196Type1","IEC62196Type1CCS","IEC62196Type2CableAttached","IEC62196Type2Outlet","IEC62196Type2CCS","IEC62196Type3","Chademo","GBT20234Part2","GBT20234Part3","IEC60309AC3PhaseRed","IEC60309AC1PhaseBlue","IEC60309DCWhite","Tesla"],C=["AC1","AC3","DC"],r=["Country","CountrySubdivision","CountrySecondarySubdivision","CountryTertiarySubdivision","Municipality","MunicipalitySubdivision","Neighbourhood","PostalCodeArea"],n=["POI","Street","Geography","Point Address","Address Range","Cross Street"],o=["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"],U=["No_Payment","Subscription","Direct"],L=["tollRoads","motorways","ferries","unpavedRoads","carpools","alreadyUsedRoads","borderCrossings","tunnels","carTrains","lowEmissionZones"],i=["carpool","carTrain","country","ferry","importantRoadStretch","lowEmissionZone","motorway","pedestrian","roadShields","speedLimit","toll","tollVignette","traffic","tunnel","unpaved","urban","vehicleRestricted"],a=[...i,"lanes"],s=[...a,"leg"],P=["accident","animals-on-road","broken-down-vehicle","danger","flooding","fog","frost","jam","lane-closed","narrow-lanes","other","rain","road-closed","roadworks","wind"],M=["Unified","AR","IN","PK","IL","MA","RU","TR","CN"],d=A=>!!A&&(A.length>=4&&A[3]!==A[1]&&A[2]!==A[0]),H=A=>d(A)?A:void 0,c=(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]]},G=(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,l=A=>A?.length?A.reduce((A,E)=>G(E,A)):void 0,D=A=>{const E=A?.length;if(!E)return;let R;const T=Math.ceil(E/1e3);for(let _=0;_<E;_+=T)R=c(A[_],R);return 1===T?R:c(A[E-1],R)},u=A=>{if(A){if(Array.isArray(A))return"number"==typeof A[0]?A.length>=4?A:void 0:l(A.map(A=>u(A)));if(A.bbox)return A.bbox;switch(A.type){case"Feature":return u(A.geometry);case"FeatureCollection":return l(A.features.map(u));case"GeometryCollection":return l(A.geometries.map(u));case"Point":return c(A.coordinates);case"LineString":case"MultiPoint":return D(A.coordinates);case"MultiLineString":case"Polygon":return l(A.coordinates.map(D));case"MultiPolygon":return l(A.coordinates.flatMap(A=>A.map(D)));default:return}}},p=(A,E)=>G(u(A),E),B=A=>[(A[0]+A[2])/2,(A[1]+A[3])/2],F=A=>{const[E,R,T,_]=A;return{type:"Feature",geometry:{type:"Polygon",coordinates:[[[E,R],[T,R],[T,_],[E,_],[E,R]]]},properties:{}}},Y=()=>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},V=A=>({"TomTom-User-Agent":`${m}/0.45.9`,...A.trackingId&&{"Tracking-ID":h(A.trackingId)}}),g=(A,E)=>{if(A){if(Array.isArray(A))return A;if(A.coordinates)return A.coordinates;if(A.geometry){if("main-when-available"===E?.useEntryPoint){const E=(R=A,R?.properties?.entryPoints?.find(A=>"main"===A.type));return E?.position??A.geometry.coordinates}return A.geometry.coordinates}}var R;return null},y=(A,E)=>{const R=g(A,E);if(!R)throw new Error(`The received object does not have lng-lat coordinates: ${JSON.stringify(A)}`);return R},f=A=>({type:"Point",coordinates:A}),K=A=>({type:"Feature",geometry:f(A),properties:{}}),v={SPORTS_CENTER:7320,STADIUM:7374,RESTAURANT:7315,CAFE_PUB:9376,HEALTH_CARE_SERVICE:9663,HOSPITAL:7321,HOSPITAL_POLYCLINIC:7321,DOCTOR:9373,SHOP:9361,MARIJUANA_DISPENSARY:9364,MARKET:7332,PUBLIC_AMENITY:9932,ROAD_TRAFFIC_CONTROL_CENTER:7301,POST_OFFICE:7324,COLLEGE_UNIVERSITY:7377,OPEN_PARKING_AREA:7369,CLUB_ASSOCIATION:9937,CAMPING_GROUND:7360,HOLIDAY_RENTAL:7304,VACATION_RENTAL:7304,AMUSEMENT_PARK:9902,RESIDENTIAL_ACCOMMODATION:7303,AGRICULTURAL_BUSINESS:7335,AGRICULTURE:7335,AIRPORT:7383,COMPANY:9352,NIGHTLIFE:9379,REPAIR_SHOP:7310,REPAIR_FACILITY:7310,HOTEL_MOTEL:7314,SCHOOL:7372,AUTOMOTIVE_DEALER:9910,MOVIE_THEATER:7342,CINEMA:7342,THEATER:7318,PARK_RECREATION_AREA:9362,PLACE_OF_WORSHIP:7339,IMPORTANT_TOURIST_ATTRACTION:7376,TOURIST_ATTRACTION:7376,TRAIL_SYSTEM:7302,TRAILS:7302,RAILWAY_STATION:7380,PUBLIC_TRANSPORT_STOP:9942,EXCHANGE:9160,MARINA:7347,WEIGH_STATION:7359,CAR_WASH:9155,LEISURE_CENTER:9378,ACCESS_GATEWAY:7389,GEOGRAPHIC_FEATURE:8099,URBAN_STATION:7380004,ADVENTURE_VEHICLE_TRAIL:7302003,ADVERTISING_COMPANY:9352003,AFGHAN_RESTAURANT:7315081,AFRICAN_RESTAURANT:7315002,AGRICULTURAL_SUPPLIES:9361073,AGRICULTURAL_TECHNOLOGY:9352012,AIRFIELD:7383005,AIRLINE_COMPANY:9352034,AIRLINE_ACCESS:7389002,ALGERIAN_RESTAURANT:7315082,AMBULANCE_UNIT:9663005,AMERICAN_RESTAURANT:7315003,AMPHITHEATER:7318007,AMUSEMENT_ARCADE:9902002,AMUSEMENT_PLACE:9902004,ANIMAL_SERVICES:9361048,ANIMAL_SHELTER:9352045,ANTIQUE_ART_SHOP:9361049,APARTMENT_RENTAL:7304006,AQUATIC_ZOO:9927004,ARABIAN_RESTAURANT:7315083,ARCH:7376012,ARGENTINIAN_RESTAURANT:7315084,ARMENIAN_RESTAURANT:7315085,ART_SCHOOL:7372012,ASHRAM:7339007,ASIAN_RESTAURANT:7315062,ATHLETICS_TRACK:7374002,ATV_DEALER:9910009,AUSTRALIAN_RESTAURANT:7315086,AUSTRIAN_RESTAURANT:7315004,AUTOMOBILE_COMPANY:9352013,AUTOMOBILE_MANUFACTURING:9352041,BAGS_LEATHERWEAR:9361058,BANQUET_ROOMS:7315146,BAR:9379004,BARBECUE_RESTAURANT:7315005,BASEBALL_PARK:7374009,BASKETBALL_ARENA:7374012,BASQUE_RESTAURANT:7315087,BATTLEFIELD:9362002,BAY:8099016,BEACH_CLUB:9937002,BEAUTY_SALON:9361067,BEAUTY_SUPPLIES:9361050,B_B_GUEST_HOUSE:7314002,BELGIAN_RESTAURANT:7315006,BETTING_STATION:9361072,BISTRO:7315007,BLOOD_BANK:9663004,BOAT_DEALER:9910004,BOAT_LAUNCHING_RAMP:9362032,BOATING_EQUIPMENT_ACCESSORIES:9361083,BODYSHOP:7310002,BOLIVIAN_RESTAURANT:7315088,BOOK_SHOP:9361002,BOSNIAN_RESTAURANT:7315089,BOWLING_CENTER:9378002,BRAZILIAN_RESTAURANT:7315072,BRIDGE:7376010,BRIDGE_TUNNEL_OPERATIONS:9352035,BRITISH_RESTAURANT:7315008,BUFFET_RESTAURANT:7315142,BUILDING:7376002,BULGARIAN_RESTAURANT:7315090,BUNGALOW_RENTAL:7304004,BURMESE_RESTAURANT:7315091,BUS_DEALER:9910008,BUS_CHARTER_COMPANY:9352025,BUS_LINES:9352027,BUS_STOP:9942002,BUSINESS_SERVICES:9352039,CABARET_THEATER:7318006,CABINS_LODGES:7314007,CABLE_TELEPHONE_COMPANY:9352040,CAFE:9376002,CAFETERIA:7315147,CALIFORNIAN_RESTAURANT:7315009,CAMBODIAN_RESTAURANT:7315092,CANADIAN_RESTAURANT:7315010,CAPE:8099020,CAR_DEALER:9910002,CAR_GLASS_REPLACEMENT_SHOP:7310003,CARAVAN_SITE:7360003,CARIBBEAN_RESTAURANT:7315011,CATERING_SERVICES:9352043,CAVE:8099003,C_DS_DVD_VIDEOS:9361003,VIDEO_RENTAL_SHOP:9361044,CEMETERY:9362003,CHALET_RENTAL:7304005,CHEMICAL_COMPANY:9352014,CHICKEN_RESTAURANT:7315070,CHILD_CARE_FACILITY:7372003,CHILEAN_RESTAURANT:7315093,CHINESE_RESTAURANT:7315012,CHRISTMAS_HOLIDAY_SHOP:9361082,CHURCH:7339002,CLEANING_SERVICES:9352029,CHILDRENS_CLOTHES:9361004,FOOTWEAR_SHOE_REPAIRS:9361005,CLOTHING_SHOP:9361006,MENS_CLOTHING:9361007,SPECIALTY_CLOTHING_SHOP:9361079,WOMENS_CLOTHING:9361008,COACH_STOP:9942005,COCKTAIL_BAR:9379006,COFFEE_SHOP:9376006,COLOMBIAN_RESTAURANT:7315094,COMEDY_CLUB:9379009,COMPUTER_DATA_SERVICES:9352004,SOFTWARE_COMPANY:9352005,CONCERT_HALL:7318002,CONDOMINIUM_COMPLEX:7303006,CONSTRUCTION_COMPANY:9352032,CONSTRUCTION_MATERIAL_EQUIPMENT:9361042,CONVENIENCE_STORE:9361009,CORSICAN_RESTAURANT:7315095,COTTAGE_RENTAL:7304002,COVE:8099017,CREOLE_RESTAURANT:7315063,CREPERIE:7315013,CRICKET_GROUND:7374003,CUBAN_RESTAURANT:7315096,CULINARY_SCHOOL:7372015,CYPRIOT_RESTAURANT:7315097,CZECH_RESTAURANT:7315068,DAM:7376007,DANCE_STUDIO_SCHOOL:9378003,DANISH_RESTAURANT:7315098,DELICATESSEN:9361060,DINNER_THEATER:7318008,DISCO_CLUB:9379002,DIVERSIFIED_FINANCIALS:9352006,DOMINICAN_RESTAURANT:7315099,DONGBEI_RESTAURANT:7315057,DOUGHNUT_RESTAURANT:7315079,DRIVE_THROUGH_BOTTLE_SHOP:9361076,DRIVE_IN_MOVIES:7342003,DRIVING_SCHOOL:7372016,DRUG_STORE:9361051,DRY_CLEANER:9361010,DUNE:8099005,DUTCH_RESTAURANT:7315014,EGYPTIAN_RESTAURANT:7315100,ELECTRICAL_APPLIANCES_SHOP:9361052,CAMERAS_PHOTOGRAPHY:9361011,COMPUTER_COMPUTER_SUPPLIES:9361012,CONSUMER_ELECTRONICS:9361013,OFFICE_EQUIPMENT:9361014,ENGLISH_RESTAURANT:7315101,EQUIPMENT_RENTAL:9352038,EROTIC_RESTAURANT:7315132,ETHIOPIAN_RESTAURANT:7315102,EXOTIC_RESTAURANT:7315133,FACTORY_OUTLET:9361016,FAIRGROUND:9362017,FARM:7335004,FARMERS_MARKET:7332004,FAST_FOOD:7315015,PHILIPPINE_RESTAURANT:7315016,FINNISH_RESTAURANT:7315104,FISHING_HUNTING_AREA:9362016,FITNESS_CLUB_CENTER:7320002,FLATS_APARTMENT_COMPLEX:7303003,FLORISTS:9361017,FLYING_CLUB:9378004,FONDUE_RESTAURANT:7315134,BAKERY:9361018,BUTCHER:9361019,FISHMONGER:9361020,FOOD_MARKET:9361021,GREENGROCER:9361022,GROCERY_STORE:9361023,OTHER_FOOD_SHOPS:9361024,WINE_SPIRITS:9361025,FOOTBALL_STADIUM:7374010,FOREST_AREA:9362015,FRENCH_RESTAURANT:7315017,FUNERAL_SERVICE_MORTUARIES:9352036,FURNITURE_HOME_FURNISHINGS:9361054,FUSION_RESTAURANT:7315071,CAR_REPAIR_AND_SERVICE:7310004,GENERAL_PRACTITIONER:9373002,GERMAN_RESTAURANT:7315018,GIFTS_CARDS_NOVELTIES_SOUVENIRS:9361026,GLASSWARE_CERAMIC_SHOP:9361055,GOLD_EXCHANGE:9160003,GREEK_RESTAURANT:7315019,GRILL_RESTAURANT:7315020,GUANGDONG_RESTAURANT:7315054,GURUDWARA:7339006,HAIRDRESSER:9361027,HAMBURGER_RESTAURANT:7315069,HARBOR:8099018,HARDWARE_STORE:9361069,HAWAIIAN_RESTAURANT:7315021,HIGH_SCHOOL:7372006,HIKING_TRAIL:7302004,HILL:8099025,HISTORIC_SITE:9362004,HISTORICAL_PARK:9362005,HOBBY_SHOP:9361053,HOCKEY_CLUB:9937003,HOME_APPLIANCE_REPAIR:9352044,HORSE_RACING_TRACK:7374005,HORSE_RIDING_CENTER:7320003,HORTICULTURE:7335002,HOSPITAL_FOR_WOMEN_AND_CHILDREN:7321005,HOSPITAL_OF_CHINESE_MEDICINE:7321004,HOSTEL:7314004,HOT_POT_RESTAURANT:7315058,HOTEL:7314003,CARPET_FLOOR_COVERINGS:9361028,CURTAINS_TEXTILES:9361029,DO_IT_YOURSELF_CENTERS:9361030,HOUSE_GARDEN_FURNITURE_FITTINGS:9361031,GARDEN_CENTERS_SERVICES:9361032,GLASS_WINDOWS_STORE:9361080,KITCHENS_BATHROOMS:9361033,LIGHTING_SHOPS:9361034,PAINTING_DECORATING:9361035,HUNAN_RESTAURANT:7315052,HUNGARIAN_RESTAURANT:7315022,ICE_CREAM_PARLOR:7315078,ICE_HOCKEY_ARENA:7374008,IMPORT_EXPORT_AND_DISTRIBUTION:9352042,INDIAN_RESTAURANT:7315023,INDONESIAN_RESTAURANT:7315024,INFORMAL_MARKET:7332002,INSURANCE_COMPANY:9352007,INTERNATIONAL_RESTAURANT:7315073,INTERNATIONAL_RAILROAD_STATION:7380002,INTERNET_CAFE:9376004,INVESTMENT_ADVISOR:9352037,IRANIAN_RESTAURANT:7315105,IRISH_RESTAURANT:7315065,ISLAND:8099022,ISRAELI_RESTAURANT:7315106,ITALIAN_RESTAURANT:7315025,JAMAICAN_RESTAURANT:7315066,JAPANESE_RESTAURANT:7315026,JAZZ_CLUB:9379008,JEWELRY_CLOCKS_WATCHES:9361036,JEWISH_RESTAURANT:7315027,JUNIOR_COLLEGE_COMMUNITY_COLLEGE:7377003,KARAOKE_CLUB:9379010,KOREAN_RESTAURANT:7315028,KOSHER_RESTAURANT:7315067,LAGOON:8099019,LAKESHORE:9362006,LANGUAGE_SCHOOL:7372010,LATIN_AMERICAN_RESTAURANT:7315029,LAUNDRY:9361045,LEBANESE_RESTAURANT:7315030,LEGAL_SERVICES:9352023,LOCAL_POST_OFFICE:7324003,LOCAL_SPECIALITIES_SHOP:9361056,LOCALE:8099027,LOTTERY_SHOP:9361071,LUXEMBOURGIAN_RESTAURANT:7315107,MACROBIOTIC_RESTAURANT:7315135,MAGHRIB_RESTAURANT:7315108,DELIVERY_SERVICE:9352008,MALTESE_RESTAURANT:7315031,MANUFACTURING_COMPANY:9352011,MARINE_ELECTRONIC_EQUIPMENT:9361065,MARSH:8099023,MAURITIAN_RESTAURANT:7315109,MAUSOLEUM_GRAVE:7376011,MECHANICAL_ENGINEERING:9352016,MEDICAL_SUPPLIES_EQUIPMENT:9361043,MEDITERRANEAN_RESTAURANT:7315032,MEMORIAL:9362007,SUBWAY_STATION:7380005,MEXICAN_RESTAURANT:7315033,MICROBREWERY:9376007,MIDDLE_EASTERN_RESTAURANT:7315034,MIDDLE_SCHOOL:7372014,MILITARY_AIRPORT:7383004,MINERAL_HOT_SPRINGS:8099021,MINING_COMPANY:9352031,MOBILE_PHONE_SHOP:9361075,MONGOLIAN_RESTAURANT:7315110,MONUMENT:7376003,MOROCCAN_RESTAURANT:7315074,MOSQUE:7339003,MOTEL:7314006,MOTOR_RACING_STADIUM:7374011,MOTORCYCLE_DEALER:9910003,MOTORCYCLE_REPAIR:7310008,MOUNTAIN_BIKE_TRAIL:7302002,MOUNTAIN_PEAK:8099002,MOVING_STORAGE_COMPANY:9352033,MULTI_PURPOSE_STADIUM:7374006,MUSIC_CENTER:7318003,MUSIC_INSTRUMENTS_STORE:9361059,MUSSELS_RESTAURANT:7315136,NAIL_SALON:9361068,NATIONAL_RAILROAD_STATION:7380003,NATURAL_RECREATION_ATTRACTION:9362030,NEPALESE_RESTAURANT:7315111,NETBALL_STADIUM:7374014,NEWSAGENTS_TOBACCONISTS:9361037,NORWEGIAN_RESTAURANT:7315112,OASIS:8099011,OBSERVATORY:7376005,OEM:9352021,OIL_NATURAL_GAS:9352030,OPERA_HOUSE:7318004,OPTICIAN:9361038,ORGANIC_FOOD_RESTAURANT:7315075,ORIENTAL_RESTAURANT:7315035,OTHER_REPAIR_SHOPS:7310005,OTHER_WINTER_SPORT:9362025,PAGODA:7339008,PAKISTANI_RESTAURANT:7315127,PAN:8099009,PARK:9362008,PARKWAY:9362009,PASSENGER_TRANSPORT_TICKET_OFFICE:9932002,PAWN_SHOP:9361070,PEDESTRIAN_SUBWAY:9932003,PERSONAL_CARE_FACILITY:9663003,PERSONAL_SERVICE:9663002,PERUVIAN_RESTAURANT:7315061,PET_SUPPLIES:9361064,PHARMACEUTICAL_COMPANY:9352018,PHOTO_LAB_DEVELOPMENT:9361046,PHOTOCOPY_SHOP:9361047,PICNIC_AREA:9362033,PIZZERIA:7315036,PLAIN_FLAT:8099007,PLANETARIUM:7376006,PLATEAU:8099008,POLISH_RESTAURANT:7315037,POLYNESIAN_RESTAURANT:7315129,PORTUGUESE_RESTAURANT:7315038,PRE_SCHOOL:7372004,PRESERVE:9362010,PRIMARY_PRODUCER:7335003,PRIMARY_SCHOOL:7372005,PRIVATE_AIRPORT:7383003,PRIVATE_CLUB:9379003,PROVENCAL_RESTAURANT:7315130,PUB:9376003,PUB_FOOD:7315039,PUBLIC_MARKET:7332003,PUBLIC_AIRPORT:7383002,PUBLIC_CALL_BOX:9932004,PUBLIC_HEALTH_TECHNOLOGY_COMPANY:9352017,PUBLISHING_TECHNOLOGIES:9352019,QUARRY:8099026,RACE_TRACK:7374013,RAILROAD_SIDING:7380006,RAPIDS:8099015,REAL_ESTATE_COMPANY:9352009,REAL_ESTATE_AGENT:9361015,RECREATION_AREA:9362011,RECREATIONAL_CAMPING_GROUND:7360002,RECREATIONAL_VEHICLE_DEALER:9910005,RECYCLING_SHOP:9361057,REEF:8099014,RESERVOIR:8099013,RESIDENTIAL_ESTATE:7303004,RESORT:7314005,REST_CAMP:7314008,RETAIL_OUTLET:9361063,RETIREMENT_COMMUNITY:7303002,RIDGE:8099004,RIVER_CROSSING:8099024,ROAD_RESCUE:9932006,ROADSIDE_RESTAURANT:7315041,ROCK_CLIMBING_TRAIL:7302006,ROCKS:8099012,RUGBY_GROUND:7374007,ROMANIAN_RESTAURANT:7315131,RUSSIAN_RESTAURANT:7315040,SALAD_BAR:7315143,CAR_ACCESSORIES:7310006,SANDWICH_RESTAURANT:7315042,SAUNA_SOLARIUM_MASSAGE:9378005,SAVINGS_INSTITUTION:9352010,SAVOY_RESTAURANT:7315113,SCANDINAVIAN_RESTAURANT:7315114,SCOTTISH_RESTAURANT:7315115,SEAFOOD:7315043,SEASHORE:9362013,SECURED_ENTRANCE:7389004,SECURITY_PRODUCTS:9361078,SENIOR_HIGH_SCHOOL:7372007,SERVICE_COMPANY:9352002,SHANDONG_RESTAURANT:7315053,SHANGHAI_RESTAURANT:7315055,SHOPPING_SERVICE:9361062,SICHUAN_RESTAURANT:7315056,SICILIAN_RESTAURANT:7315116,SKI_RESORT:9362026,SLAVIC_RESTAURANT:7315117,SLOVAK_RESTAURANT:7315080,SNACKS_RESTAURANT:7315139,SNOOKER_POOL_BILLIARD:9378006,SOCCER_STADIUM:7374004,SOUL_FOOD:7315064,SOUP_RESTAURANT:7315140,SPANISH_RESTAURANT:7315044,SPECIAL_HOSPITAL:7321003,SPECIAL_SCHOOL:7372013,SPECIALIST:9373003,SPECIALTY_FOODS:9361061,SPORT_SCHOOL:7372011,SPORTS_EQUIPMENT_CLOTHING:9361039,STAMP_SHOP:9361074,STATION_ACCESS:7389003,STATUE:7376013,STEAK_HOUSE:7315045,STOCK_EXCHANGE:9160002,SUDANESE_RESTAURANT:7315118,SUPERMARKETS_HYPERMARKETS:7332005,SURINAMESE_RESTAURANT:7315046,SUSHI_RESTAURANT:7315148,SWEDISH_RESTAURANT:7315119,SWISS_RESTAURANT:7315047,SYNAGOG:7339004,SYRIAN_RESTAURANT:7315120,TAILOR_SHOP:9361077,TAIWANESE_RESTAURANT:7315059,TAKEOUT_FOOD:7315145,TAPAS_RESTAURANT:7315076,TAX_SERVICES:9352022,TAXI_STAND:9942003,TAXI_LIMOUSINE_SHUTTLE_SERVICE:9352026,TEA_HOUSE:9376005,TECHNICAL_SCHOOL:7372009,TELECOMMUNICATIONS:9352020,TEMPLE:7339005,TEPPANYAKI_RESTAURANT:7315121,THAI_RESTAURANT:7315048,THEMATIC_SPORT_CENTER:7320005,TIBETAN_RESTAURANT:7315122,PUBLIC_TOILET:9932005,TOWER:7376009,TOWNHOUSE_COMPLEX:7303005,TOYS_GAMES_SHOP:9361040,TRAFFIC_SERVICE_CENTER:7301002,TRAFFIC_CONTROL_DEPARTMENT:7301002,STREETCAR_STOP:9942004,TRANSPORT_COMPANY:9352024,TRAVEL_AGENT:9361041,TRUCK_DEALER:9910006,TRUCK_REPAIR_AND_SERVICE:7310009,TRUCK_WASH:9155003,TUNISIAN_RESTAURANT:7315123,TUNNEL:7376008,TURKISH_RESTAURANT:7315049,TIRE_SERVICE:7310007,URUGUAYAN_RESTAURANT:7315124,VALLEY:8099006,VAN_DEALER:9910007,VARIETY_STORE:9361081,VEGETARIAN_RESTAURANT:7315050,VENEZUELAN_RESTAURANT:7315125,VIETNAMESE_RESTAURANT:7315051,VILLA_RENTAL:7304003,VOCATIONAL_SCHOOL:7372008,WATER_HOLE:7376014,WEDDING_SERVICES:9352046,WEIGH_SCALES:7359003,WELL:8099010,WELSH_RESTAURANT:7315126,WESTERN_RESTAURANT:7315060,WHOLESALE_CLUB:9361066,WILDERNESS_AREA:9362014,WILDLIFE_PARK:9927005,WINE_BAR:9379007,YACHT_BASIN:7347003,YOGURT_JUICE_BAR:7315149,ZOO:9927003,ZOOS_ARBORETA_BOTANICAL_GARDEN:9927,ELECTRONICS_COMPANY:9352015,RIVER_SCENIC_AREA:9362036,HORSE_RIDING_TRAIL:7302005,NATURAL_TOURIST_ATTRACTION:7376004,OPEN_CAR_PARKING_AREA:7369002,MEDICINAL_MARIJUANA_DISPENSARY:9364002,RECREATIONAL_MARIJUANA_DISPENSARY:9364003,ICE_SKATING_RINK:9360,TENNIS_COURT:9369,GOLF_COURSE:9911,WATER_SPORT:9371,SWIMMING_POOL:7338,RESTAURANT_AREA:9359,DENTIST:9374,VETERINARIAN:9375,PHARMACY:7326,EMERGENCY_ROOM:9956,DEPARTMENT_STORE:7327,SHOPPING_CENTER:7373,FIRE_STATION_BRIGADE:7392,NON_GOVERNMENTAL_ORGANIZATION:9152,PRISON_CORRECTIONAL_FACILITY:9154,EMBASSY:7365,LIBRARY:9913,TRANSPORT_AUTHORITY_VEHICLE_REGISTRATION:9151,WELFARE_ORGANIZATION:9153,NATIVE_RESERVATION:9389,COURTHOUSE:9363,POLICE_STATION:7322,PRIMARY_RESOURCE_UTILITY:9150,GOVERNMENT_OFFICE:7367,MILITARY_INSTALLATION:9388,RENT_A_CAR_PARKING:9930,MUSEUM:7317,INDUSTRIAL_BUILDING:9383,PARKING_GARAGE:7313,TOURIST_INFORMATION_OFFICE:7316,MEDIA_FACILITY:9158,WINERY:7349,EMERGENCY_MEDICAL_SERVICE:7391,CASINO:7341,MANUFACTURING_FACILITY:9156,COMMERCIAL_BUILDING:9382,CULTURAL_CENTER:7319,EXHIBITION_CONVENTION_CENTER:9377,RENT_A_CAR_FACILITY:7312,TRUCK_STOP:7358,ADVENTURE_SPORTS_FACILITY:7305,ADVENTURE_SPORTS_VENUE:7305,REST_AREA:7395,RESEARCH_FACILITY:9157,COURIER_DROP_BOX:7388,GAS_STATION:7311,PETROL_STATION:7311,FUEL_FACILITIES:7311,MOTORING_ORGANIZATION_OFFICE:7368,CASH_DISPENSER:7397,ATM:7397,COMMUNITY_CENTER:7363,BEACH:9357,PORT_WAREHOUSE_FACILITY:9159,ELECTRIC_VEHICLE_STATION:7309,SCENIC_PANORAMIC_VIEW:7337,ENTERTAINMENT:9900,BUSINESS_PARK:7378,BANK:7328,HELIPAD_HELICOPTER_LANDING:7308,CHECKPOINT:9955,FRONTIER_CROSSING:7366,MOUNTAIN_PASS:9935,TOLL_GATE:7375,FERRY_TERMINAL:7352},$=Object.fromEntries(Object.entries(v).map(([A,E])=>[E,A])),W=(E,R,T)=>{if(0===E.geometry.coordinates.length)return 0;if(R.length<2)return 0;const _=y(T),I=A(E,_).properties.location;if(void 0===I)return 0;const S=[];for(const N of R){const R=y(N),T=A(E,R);S.push(T.properties.location??0)}for(let A=0;A<S.length-1;A++){const E=S[A],R=S[A+1];if(I>=E&&I<=R)return A+1}return I<S[0]?0:R.length},b=(A,E,R)=>{const T=W(A,E,R);return[...E.slice(0,T),R,...E.slice(T)]},w=(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 _=Z(R,"pointIndex",E);if(!_)return;const{lower:I,lowerVal:S,upper:N,upperVal:e}=_,t=I.distanceInMeters,O=N.distanceInMeters,C=I.travelTimeInSeconds,r=N.travelTimeInSeconds;if(void 0===t||void 0===O||void 0===C||void 0===r)return;if(S===e)return{distanceInMeters:t,travelTimeInSeconds:C};const n=(E-S)/(e-S);return{distanceInMeters:t+n*(O-t),travelTimeInSeconds:C+n*(r-C)}},x=(A,E,R)=>{const T=w(A,E),_=w(A,R);if(T&&_)return{start:T,end:_,delta:{distanceInMeters:_.distanceInMeters-T.distanceInMeters,travelTimeInSeconds:_.travelTimeInSeconds-T.travelTimeInSeconds}}},k=(A,E)=>x(A,E.startPointIndex,E.endPointIndex),X=(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 S=c(T);return S=c(I,S),S=c(_,S),S},Z=(A,E,R)=>{let T,_,I,S;for(const N of A){const A=N[E];void 0!==A&&(A<=R&&(T=N,_=A),A>=R&&void 0===I&&(I=N,S=A))}return void 0!==T&&void 0!==_&&void 0!==I&&void 0!==S?{lower:T,lowerVal:_,upper:I,upperVal:S}:void 0},J=(A,E,R)=>{const T=A.geometry.coordinates,_=Math.min(E+1,T.length-1),I=T[E],S=T[_],N=w(A,E),e=w(A,_);if(N&&e)return{position:[I[0]+R*(S[0]-I[0]),I[1]+R*(S[1]-I[1])],travelTimeInSeconds:N.travelTimeInSeconds+R*(e.travelTimeInSeconds-N.travelTimeInSeconds),distanceInMeters:N.distanceInMeters+R*(e.distanceInMeters-N.distanceInMeters)}},Q=(A,E,R)=>{const{progress:T}=A.properties;if(!T||0===T.length)return;const _=A.geometry.coordinates,I=T[0],S=T.at(-1),N=I[E],e=S[E];if(void 0===N||void 0===e)return;if(R<=N)return{position:_[I.pointIndex],travelTimeInSeconds:I.travelTimeInSeconds??0,distanceInMeters:I.distanceInMeters??0};if(R>=e)return{position:_[S.pointIndex],travelTimeInSeconds:S.travelTimeInSeconds??0,distanceInMeters:S.distanceInMeters??0};const t=((A,E,R)=>{const T=Z(A,E,R);if(!T)return;const{lower:_,lowerVal:I,upper:S,upperVal:N}=T,e=I===N?0:(R-I)/(N-I),t=_.pointIndex+e*(S.pointIndex-_.pointIndex),O=Math.floor(t);return{pathIndex:O,progressRatioTowardsNextPathPoint:t-O}})(T,E,R);return void 0!==t?J(A,t.pathIndex,t.progressRatioTowardsNextPathPoint):void 0},j=(A,E)=>{if("traveledTimeInSeconds"in E)return Q(A,"travelTimeInSeconds",E.traveledTimeInSeconds);if("traveledDistanceInMeters"in E)return Q(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:Q(A,"travelTimeInSeconds",T)},z=(E,R)=>{const{progress:T}=E.properties;if(!T?.length)return;const _=E.geometry.coordinates,I=A(E,y(R)),S=I.properties.index??0,N=Math.min(S+1,_.length-1),e=_[S],t=_[N],O=((A,E,R)=>{const T=R[0]-A[0],_=R[1]-A[1],I=T*T+_*_;if(0===I)return 0;const S=((E[0]-A[0])*T+(E[1]-A[1])*_)/I;return Math.max(0,Math.min(1,S))})(e,I.geometry.coordinates,t);return J(E,S,O)},q=(A,E)=>{let R;return R=Array.isArray(A)||"Feature"!==A.type?K(y(A)):A,{...R,properties:{...R.properties,radiusMeters:E}}},AA=A=>Array.isArray(A)?Array.isArray(A[0])?"path":"waypoint":"Feature"===A.type&&"LineString"===A.geometry.type?"path":"waypoint",EA=["unknown","minor","moderate","major","indefinite"],RA={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"},TA=Object.fromEntries(Object.entries(RA).map(([A,E])=>[E,Number(A)])),_A=A=>RA[A]??"other",IA=A=>TA[A]??0,SA=A=>A?.minutes??"min",NA=(A,E)=>{if(A){const T=Math.abs(A)/3600;let I=Math.floor(T),S=Math.round(T%1*60);60===S&&(S=0,I++);const N={..._.instance.get().displayUnits?.time,...E};if(I)return`${I} ${R=N,R?.hours??"hr"} ${S.toString().padStart(2,"0")} ${SA(N)}`;if(S)return`${S.toString()} ${SA(N)}`}var R},eA=1609.344,tA=A=>A?.meters??"m",OA=A=>A?.kilometers??"km",CA=(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 S=T>0?T:"";return _<.375?`${I}${S}¼ ${R}`:_<.625?`${I}${S}½ ${R}`:_<.875?`${I}${S}¾ ${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}`,rA=A=>A.miles??"mi",nA=(A,E)=>{const R=A/eA,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"):CA(R,T,rA(E))},oA=(A,E)=>{const R=A/eA,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"):CA(R,T,rA(E))},UA=(A,R)=>{if(E(A))return"";const T={..._.instance.get().displayUnits?.distance,...R};switch(T?.type??"metric"){case"metric":return((A,E)=>{const R=Math.abs(A);if(R<10)return`${A} ${tA(E)}`;if(R<500)return`${10*Math.round(A/10)} ${tA(E)}`;if(R<1e3){const R=100*Math.round(A/100);return 1e3===R||-1e3===R?`${A<0?"-":""}1 ${OA(E)}`:`${R} ${tA(E)}`}return R<1e4?`${100*Math.round(A/100)/1e3} ${OA(E)}`:`${Math.round(A/1e3)} ${OA(E)}`})(A,T);case"imperial_us":return nA(A,T);case"imperial_uk":return oA(A,T)}};export{m as TOMTOM_USER_AGENT_SDK_NAME,_ as TomTomConfig,q as asSoftWaypoint,L as avoidableTypes,B as bboxCenter,G as bboxExpandedWithBBox,p as bboxExpandedWithGeoJSON,c as bboxExpandedWithPosition,l as bboxFromBBoxes,D as bboxFromCoordsArray,u as bboxFromGeoJSON,H as bboxOnlyIfWithArea,w as calculateProgressAtRoutePoint,e as chargingPointCapabilities,t as chargingPointRestrictions,N as chargingPointStatus,S as chargingStationAccessTypes,O as connectorTypes,C as currentTypes,R as defaultConfig,W as findBestWaypointInsertionIndex,UA as formatDistance,NA as formatDuration,Y as generateId,V as generateTomTomHeaders,r as geographyTypes,j as getCoordinateAtRouteProgress,g as getPosition,y as getPositionStrict,z as getProgressAtNearestRoutePoint,AA as getRoutePlanningLocationType,x as getRouteProgressBetween,k as getRouteProgressForSection,X as getSectionBBox,_A as iconToTrafficIncidentCategory,EA as indexedMagnitudes,i as inputSectionTypes,a as inputSectionTypesWithGuidance,d as isBBoxWithArea,I as mergeFromGlobal,U as paymentMethods,n as placeTypes,o as plugTypes,v as poiCategoriesToID,$ as poiIDsToCategories,F as polygonFromBBox,s as sectionTypes,K as toPointFeature,f as toPointGeometry,P as trafficIncidentCategories,IA as trafficIncidentToIconCategory,M as views,b as withInsertedWaypoint};
2
2
  //# sourceMappingURL=core.es.js.map