Method, device and computer program for searching along a route
Patent Information
- Authority / Receiving Office
- CN · China
- Patent Type
- Applications(China)
- Current Assignee / Owner
- TOMTOM NAVIGATION BV
- Filing Date
- 2025-11-28
- Publication Date
- 2026-06-19
Smart Images

Figure CN122237620A_ABST
Abstract
Description
Technical Field
[0001] Examples of this disclosure relate to a method, apparatus, and computer program for searching along a route. Certain examples relate to a method, apparatus, and computer program for determining points of interest (POIs) along a route. Background Technology
[0002] Digital maps can include map data representing navigable elements, particularly roads, from which routes can be calculated. Digital maps can also include map data representing map features / locations of interest (referred to herein as points of interest, POIs). Identifying / searching for / enhancing POIs along a route is useful, for example, to determine places / locations that a user / driver might wish to pass through, visit, or stop at while traversing the route.
[0003] It is useful to provide an improved method, apparatus, and computer program for determining points of interest (POIs) along a route.
[0004] Any previously published documents or background art listed or discussed in this specification are not necessarily an admission that such documents or background art are part of the prior art or common general knowledge. One or more aspects / examples of this disclosure may or may not address one or more background art issues. Summary of the Invention
[0005] The claims define the scope of protection for various exemplary embodiments.
[0006] Embodiments claimed in the appended claims are provided based on various, but not all, embodiments of this disclosure. Any examples and features described in this specification that are not within the scope of the independent claims should be interpreted as examples that help to understand the various exemplary embodiments.
[0007] According to various, but not all, examples of this disclosure, a computer-implemented method for determining Points of Interest (POIs) along a route, the method comprising: Determine a first set of POIs that satisfy one or more first criteria along the route; Divide the route into multiple segments; Associate each or more POIs in the first set of POIs with one of the multiple segments of the route; Rank each or more POIs in a first set of POIs, wherein the ranking is based at least in part on one or more second criteria; For each segment, select the threshold number of the highest-ranking POIs associated with that segment; and A second set of POIs is generated, at least in part, based on the selected POIs.
[0008] According to at least some examples of this disclosure, an apparatus is provided that includes means for performing the methods described above.
[0009] According to various, but not all, examples of this disclosure, a module, chipset, circuit, device, data processing device, and / or system is provided, including means for performing the methods described above.
[0010] According to various, but not necessarily all, examples of this disclosure, a computer program is provided that includes instructions that, when executed by a device, cause the device to perform the methods described above.
[0011] According to various, but not all, examples of this disclosure, an apparatus is provided that includes: At least one processor; and At least one memory that stores instructions that, when executed by at least one processor, cause the device to perform at least the methods described above.
[0012] According to various, but not all, examples of this disclosure, a non-transitory computer-readable medium is provided, on which instructions are encoded, which, when executed by at least one processor, enable the above-described methods to be performed.
[0013] The following sections of this “Summary of the Invention” describe various functions that may be functions of any of the examples described in the foregoing sections of this “Summary of the Invention”. Furthermore, the description of the functions should be considered as also disclosing any means suitable for performing the function, or at least any instructions stored in memory that, when executed by at least one processor, cause the device to perform the function.
[0014] In some, but not all, examples, the first set of POIs that satisfy one or more first criteria along the route includes: Identify points of interest (POIs) that are located within a threshold distance from the route and meet one or more first criteria.
[0015] In some, but not all, examples, the first set of POIs that satisfy one or more first criteria along the route includes: One or more first criteria are used as search query inputs and fed into the route-search SAR service to identify POIs that meet one or more first criteria along the route.
[0016] In some, but not necessarily all, examples of the first criteria include at least one of the following: Based at least in part on user input; At least in part based on the context; or Predetermined.
[0017] In some, but not necessarily all, examples of the first criteria include at least one of the following: POI category; or POI attributes.
[0018] In some, but not all, examples, each segment has a segment length, and the segment length is at least one of the following: Predetermined; Basically uniform; User-defined; Based at least in part on user input; Based at least in part on a defined context; or It is based, at least in part, on one or more first standards.
[0019] In some, but not all, examples, each segment has a segment length, and the segment length is at least partially based on a range parameter, which indicates at least one of the following: Target threshold distance between POIs in the second set of POIs; The vehicle's maximum driving range; or The target threshold is used to estimate the travel time between POIs in the second set of POIs.
[0020] In some, but not all, examples, the method also includes determining additional information about the following: One or more POIs in the first set of POIs, and / or A subset of the first set of POIs.
[0021] In some, but not necessarily all, examples of the one or more second criteria include at least one of the following: One or more criteria to be satisfied by the POIs of the second set of POIs; User-specified; Based at least in part on user input; Based at least in part on a defined context; Based at least in part on the user's predetermined preferences; Based at least in part on the user's history; and Predetermined.
[0022] In some, but not necessarily all, examples, the ranking of POIs is based at least in part on one of the following: The distance from the point of the segment associated with the corresponding POI to the POI; The estimated time to travel from a point in a segment associated with the corresponding POI to the POI; or The detour cost of a POI, where the detour cost of a POI indicates the estimated cost of traversing a second route from a point on a segment associated with the corresponding POI to the corresponding POI.
[0023] In some, but not all, examples, the method also includes reducing the total number of POIs in a second set of POIs, where reducing the total number of POIs involves iteratively removing POIs from the second set of POIs based on the following: Points of interest (POIs) are associated with segments, and segments have the most POIs associated with them. POI rankings.
[0024] In some, but not all, examples, one or more POIs are iteratively removed from the first or second set until the total number of POIs in the first or second set meets the threshold number of POIs.
[0025] In some, but not all, examples, the method also includes at least one of the following: Render at least a portion of a second set of POIs on a digital map, and optionally render at least a portion of the routes; Use at least a portion of the second set of POIs for route calculation; Modify the route to include one or more intermediate waypoints, wherein the intermediate waypoints include one or more POIs from a second set of POIs; or Modify the route to include at least one POI from the second set of POIs as at least one waypoint for at least one segment within the segment.
[0026] Although the examples and optional features of this disclosure are described separately above, it should be understood that they are included in this disclosure in all possible combinations and arrangements. It should be understood that various examples of this disclosure may include any or all of the features described with respect to other examples of this disclosure, and vice versa. Furthermore, it should be understood that any one or more features, in any combination, may be implemented / included / performed as needed and appropriately by means of apparatus, method, and / or computer program instructions. Attached Figure Description
[0027] Some examples will now be described with reference to the accompanying drawings, in which: Figure 1 The method according to an example of this disclosure is illustrated schematically; Figure 2 An example of a route and a set of POIs along the route is shown schematically; Figure 3 It schematically shows that... Figure 2 Examples of routes divided into segments and a set of Points of Interest (POIs) associated with each segment; Figure 4 It schematically shows the relationship with Figure 3 Examples of a subset of POIs associated with each segment; Figure 5 Another example of a route with a POI associated with each segment of the route is illustrated schematically; Figure 6 An example of the device is shown schematically; and Figure 7 An example of a computer program is shown schematically.
[0028] These figures need not be drawn to scale. For simplicity and clarity, certain features and views in the figures may be shown schematically or at an exaggerated scale. For example, the dimensions of some elements in a figure may be exaggerated relative to other elements to aid in illustration. Similar reference numerals are used in the figures to indicate similar features. For clarity, not all reference numerals need to be shown in all figures.
[0029] In the accompanying drawings (and description), similar features can be represented by the same three-digit number. In the accompanying drawings (and description), an optional three-digit subscript can be used to distinguish different instances of similar features. Therefore, a three-digit number without a subscript can be used as a general reference numeral, while a three-digit number with a subscript can be used as a specific reference numeral. The subscript may include unit numbers indicating different instances. A subscript may include two digits, consisting of a first digit indicating a group of instances and a second digit indicating different instances within the group. Detailed Implementation
[0030] The following section will briefly discuss "route search" SAR, which is to find points of interest (POIs) along a route.
[0031] SAR can have two usage "modes": 1. SAR Horizon Mode: This usage mode is used by users to locate potential transit points (POIs) along a route in the general direction of their destination. These transit points are accessible from the user's current location, allowing the journey along the route to be resumed within a detour budget (even if the detour to the POI is within a certain range). In this context, "detour" can be considered as a sub-route deviating from the main route, through which the destination / transit point / waypoint near the main route can be reached. In this context, "range" can be considered as the maximum distance the user can travel during their journey along the route to reach a potential transit point / POI. SAR Horizon Mode usage can be provided via navigation devices such as in-vehicle navigation devices or portable / handheld navigation devices.
[0032] 2. SAR Planning Mode: This usage mode is suitable for users to "plan" timed stops on the (remaining) route. For example... a) When a planned electric vehicle (EV) stops for charging every X kilometers along the route (where X can be based on the EV's maximum range / mileage). b) When planning rest stops (e.g., comfort or toilet stops). c) When scenic stops are found along the long route d) When the plan provides multiple stops for facilities in the same location (e.g., gas stations and lunch stations). What these two SAR usage patterns have in common is the concept of a "range" (distance budget) that users can tolerate from their current location or from one location of interest to the next location of interest.
[0033] Depending on the intent and context, the scope / tolerable range may vary. For example, Drivers of EVs with a nominal range of 400 kilometers (starting from 80% battery charge) may only consider a route worthwhile if there are compatible charging stations every 300 kilometers along the route.
[0034] When traveling with children, people may be willing to plan a rest stop every 200 kilometers.
[0035] As will be further elaborated below, the examples disclosed herein are intended to provide improved SAR, particularly for the use of planning patterns.
[0036] The examples disclosed herein may be intended to provide improved SAR, which can provide determinism and optimal uniform distribution of POI search results along the route.
[0037] The examples disclosed herein may be intended to provide POI search results along a route, which may consider: a user-specifiable range and / or a range determined at least in part based on context (e.g., searching while driving an electric vehicle). In some examples, when no range is specified—whether by end-user or by context—parameters for managing the distribution of POIs may be determined using an intent-adaptive default range and sorting mode. For example, from a user's POI search query "restroom," the intent "rest area" may be identified, and therefore a default range of 150 km and a sorting mode of "nearest along the route" may be applied.
[0038] Figure 1 A method 100 for searching POIs along a route is illustrated schematically (which may be implemented by a computer). Reference is made in particular below. Figures 2 to 4 right Figure 1 The method is described.
[0039] Figure 1 The component box is functional, and the described function can be performed by a single physical entity (e.g., reference). Figure 6 The described apparatus can be implemented in a navigation device (e.g., an in-vehicle navigation device or a portable / handheld navigation device) or in a server. The described functionality can also be implemented by a computer program (e.g., see reference). Figure 7 (Described).
[0040] Figure 1 The method / flowchart illustrates one of several possible scenarios. The order of the boxes shown is not strictly required; therefore, in principle, the boxes can be executed out of order. In some examples, one or more boxes may be executed in a different order or concurrently, sequentially, or in parallel.
[0041] In box 101, the first set 300 of POIs is determined, which set is: i) Along route 400 (i.e., the pre-determined / pre-planned route), and also ii) Meets one or more of the first criteria 500 (i.e., further criteria in addition to those along the route).
[0042] Determining a first set of POIs along a route that meet one or more first criteria may include identifying POIs located within a threshold distance of the route that meet the one or more first criteria.
[0043] Such determination may include: receiving, obtaining, or calculating a first set of POIs by searching along the route using a SAR algorithm or service. In this regard, determining box 101 may include inputting one or more first criteria as search query inputs into the SAR service to identify POIs along the route that satisfy the one or more first criteria.
[0044] The one or more first criteria can be: Based at least in part on user input (e.g., by explicit user input or inferred from user query / POI search terms); At least in part based on context (which includes, especially, for example, in electric vehicles, time [e.g., related to day / night / meal times], user / personal preferences); and / or Predetermined standards.
[0045] The first standard can correspond to a POI with a specific POI category (especially, for example: EV charging station, restaurant, etc.) or POI attribute (especially, for example: connector type of EV charger).
[0046] Figure 2 An example is shown schematically: Route 400, traversing a network of navigable elements from initial point "A" to destination point "B"; and The first set 300 of POIs that meet the first criterion along the route (i.e., within the corridor / threshold separation distance / width 600 of the route).
[0047] For simplicity, other navigable elements (e.g., those branching off from or intersecting with the navigable elements forming route 400) are not shown. Similarly, other POIs that are not along the route (i.e., not within corridor 600) and / or do not meet the first criterion (i.e., other POIs on the digital map) are not shown.
[0048] Route 400 can be a pre-determined / pre-planned route.
[0049] The first set of POIs 300 can be considered as a set of POIs 300 associated with the entire route. This first set of POIs actually corresponds to a subset of the global set of POIs in the digital map—such a subset / first set is formed by POIs from the global set that are along the route and further satisfy the first criterion.
[0050] It will be understood that each POI200 can represent any type of map feature / object / location / place or point—for example, especially through a non-limiting example: EV charging stations, gas stations, service stations, rest stops, toilet facilities, restaurants, cafes, bars, shops, accommodations, hotels, tourist attractions, landmarks, scenic stops, buildings, etc.
[0051] Each POI200 can have a location / place.
[0052] If a POI's location is within a threshold distance from the route, such as within a certain separation distance, width, or corridor 600 from the route, then the POI can be determined to be "along the route." The "distance" of a POI from the route can be considered as: "Spatial distance", such as the direct / straight displacement distance of a POI relative to a route, or "driving distance", which represents the distance traversed between a POI and a route along navigable elements; "Time distance," for example, represents the "travel time" of the expected amount of time to traverse between a POI and a route along a navigable element (i.e., at the expected speed of the navigable element).
[0053] Each Point of Interest (POI) may have one or more features or attributes. One or more primary criteria may be based on whether the POI has one or more specific features or attributes.
[0054] If a corresponding POI possesses one or more specific characteristics or attributes specified by one or more first criteria, then the POI can be determined to satisfy those one or more first criteria. In this regard, the one or more first criteria specify one or more matching criteria; furthermore, such matching criteria can be considered as "hard criteria" that must be met (in contrast, the second criteria discussed below can be considered as "soft criteria" that are preferred / optional to meet). For example, a first criterion could be that each POI must be an EV charging facility, and furthermore, it must have EV charging facilities compatible with the user / driver's electric vehicle. Such a first criterion can serve as input search query terms for POI SAR services.
[0055] POI data stored in a database / repository of POI data or contained in a digital map stored in a map database may include information representing each POI and additional information associated with each POI, especially such as the location / place of each POI and one or more features or attributes of each POI.
[0056] In box 102, route 400 is divided into multiple segments 700.
[0057] The length of each route segment can be: Predetermined; Basically uniform; User-defined / at least partially based on user input; At least in part based on a defined context (e.g., when the context is that the user's vehicle is an EV, the length of the route segment can be based on the EV's range); or At least in part based on one or more of the first criteria (e.g., when the first criterion is that the POI is the EV charging location, the length of the route segment can be based on the EV's range).
[0058] In box 103, each POI in the first set 300 of POIs is associated with one of the multiple segments of the route. In this respect, a set 800 of POIs can be formed for each route segment 700. In some examples, each POI may be assigned / associated with its nearest route segment and / or a route segment associated with the corridor segment in which the POI is located.
[0059] Figure 3 The diagram schematically illustrates the division into multiple segments 700. Figure 2 An example of route 300 (i.e., in this particular example, 3 segments: 700_1, 700_2, and 700_3—referred to as segments: Seg1, Seg2, and Seg3 in this document). Figure 3 The set 800 of POIs associated with each segment 700 is also schematically shown (i.e., in this particular example, three sets of POIs: 800_1, 800_2, and 800_3 are associated with Seg1, Seg2, and Seg3, respectively). The set 800 of POIs associated with each segment is a subset of the first set 300 of POIs associated with the entire length of route 300.
[0060] exist Figure 3 In the example, route 20 of length L is divided / segmented into 3 segments Seg1, Seg2 and Seg3, each segment having its own segment length L1, L2 and L3.
[0061] The length of each segment of the route can be based, at least in part, on a range parameter or a predetermined distance. Such a range or predetermined distance may include a target threshold distance (e.g., a maximum distance) that the user would like to travel between POIs (e.g., from one POI to another, or from the current location to the next POI). This range or predetermined distance may be referred to herein as a “distance budget.” In this respect, as will be discussed further below, the length of each segment is effectively used as the maximum distance the user is willing to travel to reach the next POI, or the maximum travel time the user is willing to travel to reach the next POI.
[0062] For example, a user might be driving an electric vehicle (EV) with a range of 300 kilometers. In this case, the length of each route segment can be calculated as a percentage of the range, for example, 80% of 300 km = 240 km.
[0063] In some examples, the length of each segment of the route can be the same or substantially the same. In other examples, route segments can have different lengths (e.g., different user-defined lengths corresponding to user-defined segments along the route).
[0064] In some examples, most segments may have the same or substantially the same length, while a few or more (e.g., the terminal segments) may have different lengths (e.g., “remaining length” – for example, if the route is 700 km long, the segment lengths of Seg1 and Seg2 may be 240 km, while the segment length of Seg3 may be the remaining 220 km).
[0065] To be clear, in some examples, box 102 can be executed before box 101. In this respect, it is not: Determine the set of POIs that meet one or more first criteria, then Divide the route into segments, then Associate each POI in the set of POIs for the route with each segment; Instead, the route can be divided into segments, and then, for each segment, a set of POIs along the route that satisfy one or more first criteria can be determined (such a set of POIs for each segment is inherently associated with its respective segment).
[0066] In box 104, each POI is ranked, where the ranking is at least partially based on one or more second criteria 900. In this respect, the POIs of a first set 300 of routes can be ranked / sorted / organized / prioritized according to the second criteria.
[0067] Ranking of POIs based on the second standard may include ranking / sorting / organizing / prioritizing POIs based on whether or to what extent they have one or more characteristics that match (or are close to) one or more specific characteristics / attributes specified in the second standard.
[0068] The one or more second criteria can be: One or more criteria to be satisfied by the POIs of the second subset of POIs; User-specified, at least in part based on user input; Based at least in part on a defined context; and Based at least in part on the user's predetermined preferences; Based at least in part on the user's history; and Predetermined.
[0069] In some examples, while the first criterion 500 of box 101 (used as a matching / filtering criterion for POIs) can be considered a "hard" criterion, i.e. a criterion that must be met, the second criterion of box 104 (used as a sorting criterion for POIs) can be considered a "soft" criterion, which is not mandatory but preferred. In this respect, the second criterion can involve POI characteristics / attributes that are preferred but not mandatory for POIs.
[0070] The ranking of POIs can be based, at least in part, on one or more of the following: The distance from the point of the segment associated with the corresponding POI to that POI (e.g., the start or end point of each segment, the nearest point on each segment, and the best branch point on each segment for the detour (sub-route) from that segment to that POI). The estimated time to travel from a point in a segment associated with the corresponding POI to that POI; or The detour cost of a POI, where the detour cost of a POI indicates the estimated cost of traversing a second route / subroute from a point on a segment associated with the corresponding POI to the corresponding POI (to be understood, “cost” can be: spatial cost (distance), time cost (time), and other types of costs, especially, for example, the amount of fuel, electricity / charge required to travel to the POI).
[0071] In a non-limiting example, the second criterion could relate to POI characteristics / attributes such as: price, opening hours, reviews / ratings, distance from the route, estimated travel time from the route, scenic beauty, etc.
[0072] In box 105, for each segment, a threshold number N is selected for the highest-ranking POIs associated with that segment. The number N essentially determines the number of POIs selected for each segment. Each segment can have its own N value (i.e., the N value can be different for each segment). The following will discuss... Figure 5 In the discussion, the parameter N can be a fixed value for a given segment and can be called a "fixed-size priority queue", such as a fixed-size priority queue of size N.
[0073] In some examples, POIs are iteratively removed from a first set or a second set until the total number of POIs in the first subset or the second subset meets a threshold number of POIs, thus obtaining the desired result / number of POIs (e.g., N).
[0074] In some examples, the total number of POIs in the second set of POIs is reduced / limited to a threshold number of POIs by iteratively removing one or more POIs from the second set of POIs based on the following: The corresponding POI is associated with the segment that has the most associated POIs, and The ranking of the corresponding POI.
[0075] In box 106, a second set 1000 of one or more POIs is generated, at least in part, based on the selected POIs. In this respect, the selected POIs (N for each segment) form the second set 1000 of POIs for the route. Therefore, the second set 1000 of POIs is a subset of the first set 300 of POIs.
[0076] Advantageously, the examples of this disclosure can therefore provide for the determination / identification of improved POIs for a route—that is, a second set 1000 of POIs for the route—whose distribution along the route can be optimized not only (e.g., such that the distance from one POI to another does not exceed a predetermined threshold [e.g., range or distance budget]), but also simultaneously satisfy the first and second criteria.
[0077] In some examples, after step 103 associates each POI of the first set 300 of POIs with a segment 700 of the route to form a set 800 of POIs for route segment 700, the number of POIs in each set 800 can be capped / limited to a threshold number, such as the N value / "fixed-size priority queue" discussed above. In this respect, the set 800 of POIs can be adjusted to form an adjusted set 800' of POIs, where each adjusted set 800' of POIs has at most N POIs. Therefore, if the route is divided into K segments, the maximum number of POIs across all segments will be capped / limited to K*N.
[0078] In some examples, dividing the route into multiple segments in box 102 can be performed before or as part of determining the first set 300 of POIs along the route that satisfy one or more first criteria in box 101. In this case, determining in box 101 can include, for each segment, determining a set 800 of POIs along each segment that satisfy one or more first criteria. Furthermore, the determination can be performed such that the number of POIs in the set of each POI in each segment can be capped / limited to a threshold number, such as the N-value / fixed-size priority queue discussed above. In this respect, the set of each POI in each segment has at most N POIs, thus forming an adjusted / capped set 800' of POIs for each segment. Therefore, if the route is divided into K segments, the maximum number of POIs across all segments will be capped / limited to K*N.
[0079] In some examples, additional information is determined for one or more / a subset of the first set of POIs. In this regard, additional information can be determined for each POI in each adjusted set 800' of each segment. Since the number of POIs in each adjusted set 800' of POIs can be capped / limited, this reduces the number of POIs for which additional information needs to be determined.
[0080] Determining additional information for POIs in each adjusted set 800' of POIs may include: Calculate information related to the POI, such as the route, distance, and time from Route 400 to the POI (i.e., calculate the detour route, distance, and time to the POI). Obtain information about the POI (e.g., perform a search for POI information in an additional database or on the Internet); and / or Identify the features / attributes associated with each POI, where such features / attributes correspond to those used in the second criterion (i.e., the features / attributes used for the ranking / ranking criteria in box 104).
[0081] Advantageously, by performing a first execution phase that identifies POIs matching a first criterion and reduces / limits the number of such POIs in each segment, it is possible to determine / search for additional information on the reduced / limited number of POIs, wherein the additional information thus determined / discovered can then be used to perform a second execution phase, which includes identifying POIs matching a second criterion, wherein the second criterion is based on the additional information.
[0082] By way of example, the first criterion could be a Point of Interest (POI) with attributes of an EV charging station. A digital map or POI map data repository could include such attribute data. However, the second criterion could be the price per kWh (or the number of charging stations or the current availability of charging stations), where such dynamic information and additional attribute details are not stored in the digital map or POI map data repository. Therefore, the exemplary embodiment is able to perform a search for such additional information, allowing the second criterion to be evaluated.
[0083] In some examples, at least a portion of the second set of POIs can be: At least a portion of the route is rendered on a digital map; Used for route calculation (e.g., modifying routes to include detours to a second set of POIs). Used to modify the route to include one or more intermediate waypoints, wherein the intermediate waypoints include one or more POIs in a second set of POIs; or Used to modify the route for at least one segment in a segment, including at least one POI in a second set of POIs as at least one waypoint.
[0084] Figure 4 An example of a second set of 1000 POIs is illustrated, where, for each segment, only the single POI with the highest ranking from the corresponding segment's set of 800 (or 800') POIs is selected—that is, N=1 (where, in this example, all POIs are gas stations, and the ranking is based on a second criterion: the proximity of the POI to its segment endpoint and the cheapest fuel price).
[0085] exist Figure 4 In the example, when N=1, each segment has only a single POI, namely POIs 1000_1, 1000_2, and 1000_3, which are associated with Seg1, Seg2, and Seg3, respectively. In this respect, it is understood that POI 1000_1 can be considered a subset of the set of POIs 800_1 for Seg1. Similarly, POI 1000_2 can be considered a subset of the set of POIs 800_2 for Seg2, and POI 1000_3 can be considered a subset of the set of POIs 800_3 for Seg3.
[0086] Exemplary embodiments of this disclosure will now be discussed for providing range-sensitive SAR. The range-sensitive SAR method / algorithm discussed below can utilize information received from a user (e.g., a driver of a vehicle planning / traveling along a route) and from a client system holding background information about that user. This range-sensitive SAR can provide an optimally uniform distribution of points of interest (POIs) along the route.
[0087] In the context of discussing this exemplary embodiment, the following terms may have the following meanings: Range: The maximum distance (in kilometers) a user can travel along the route to reach an intermediate stop / point of interest (POI).
[0088] SAR: Route Search. SAR allows users to find Points of Interest (POIs) along a pre-selected / predetermined route.
[0089] Detour: A sub-route that leaves the main route and can be used to reach POIs near the main route.
[0090] Detour point, detour offset: Specifies the latitude and longitude position on the route from which vehicles must leave the route to reach the desired intermediate POI along the detour.
[0091] Detour distance: The distance to the POI along the detour plus the distance back to the main route.
[0092] POI: Point of Interest, intermediate stop / location of interest, uniquely associated with a category / type (e.g., electric vehicle charging station, restaurant, or hotel).
[0093] Corridor: The route and the expected “width” for each segment of that route, used as a first-stage geometric filter to limit the number of candidate results / POIs that will be ranked / returned.
[0094] Waypoints: Locations that the user must pass through.
[0095] This range-sensitive SAR method / algorithm can be implemented via an application on a SAR service or client device (e.g., a car, smartphone, dashboard device, etc.) and has the following inputs: 1. Route geometry for routes of length “L”, including, for example, line string and corridor width.
[0096] Typically, this can be obtained through software on the device (e.g., car dashboard navigation or navigation app) as a result of the user's actions in choosing a route suggested by a route service.
[0097] 2. Current location (optional) This can be implicitly obtained through fine (e.g., GPS-based) and / or coarse (e.g., IP-based) location data sensed by the user's device (e.g., car, smartphone, dashboard device, etc.) and shared with the application by the user with their consent.
[0098] 3. The range "R" is in kilometers and is less than the route length "L". This can be obtained as a result of user actions, such as clicking a category icon (e.g., a charging station) combined with device configuration (e.g., the nominal / predicted electric vehicle range for a specific brand / model car). Additionally or alternatively, this can be inferred when the SAR service identifies the user's intent from their text / voice (language) input and current / pre-specified / predicted conditions (time of day, weather, etc.). It can also be explicitly provided by the user (e.g., "Find me coffee every 250 kilometers").
[0099] 4. Matching criteria (category, brand, attribute filters, free text queries) Some criteria can be obtained as a result of explicit user input (e.g., clicking a category icon, typing a keyword, or stating a known concept, such as "lunch"). Other criteria, such as attribute filters, can come from pre-configured device / user constraints on the device (e.g., electric vehicle connector type / fuel type, accessibility constraints, etc.).
[0100] 5. Second-stage matching criteria (e.g., maximum detour time) This can be inferred by the SAR service from the path points of the valid range (see, for example, input 3) and / or the constraints of the user-selected valid route (the route is valid for a user request containing path points if and only if the route passes through each path point).
[0101] 6. Ranking Criteria (RC): Determines the "quality" of the result given a request. Some sorting criteria can be inferred from identified user intent (sorting restaurants by popularity, sorting restrooms by distance). Other sorting criteria can be inferred from user history / preferences (brands visited / preferred, cuisines). Default sorting criteria can be configured in the SAR service.
[0102] 7. Expected number of results (N) Typically, this can be pre-configured in the client application that the user interacts with. It can be overridden by user actions such as forced scrolling.
[0103] Implementation Phase 1 Route segments are constructed / generated from a pre-selected / pre-defined route by discarding the portion of the route "after" the user's current location (if specified) and then "cutting" the remaining route every "range" kilometers along its length. This creates "K" route segments (see...). Figure 5 ).
[0104] Figure 5 An example of a route 400 from A to B is schematically shown, where the route has been divided into K segments 700 and a set of 1000 points of interest (POIs) determined according to a range-sensitive SAR method / algorithm and its three execution phases discussed below, so as to be optimally and uniformly distributed along the route.
[0105] The number of segments (K) can be derived from the total route length (L) and range (R): that is, the ratio L / R, rounded up, i.e., K=ceil(L / R).
[0106] Each route segment is associated with its own fixed-size priority queue of size N, which maintains any results pushed into it in the order imposed by the sorting criterion (RC). For all results / POIs within the corridor that meet the matching criteria, the route segment to which the result / POI belongs is identified, and the result / POI is pushed into the corresponding priority queue of the identified route segment.
[0107] Step sequence 1. Calculate the length (L) of the entire input route.
[0108] 2. Convert the input route into corridor geometry.
[0109] 3. Build search engine queries that are suitable for the input (including corridor geometry as a filter).
[0110] 4. Construct a mapping consisting of K corridor segments, each segment having a length of R (except for the last segment, which can have any size less than or equal to R). Each corridor segment is associated with its own priority queue of size N to maintain the cumulative maximum value of the top N results / POIs (determined by the sorting criterion RC) within that corridor segment.
[0111] 5. Execute search engine queries and distribute / group each generated result / POI into its corresponding priority queue for the corridor segment.
[0112] 6. Retain the grouped results / POIs for the next execution phase.
[0113] As a result of Phase 1, a maximum of K*N distinct results / POIs can be collected across all segmented priority queues.
[0114] Implementation Phase 2 All collected results / POIs (K*N) are enriched with external information (e.g., calculating the detour distance / detour time to the POI).
[0115] Apply the second-stage matching criteria to each result / POI. Only retain the matched results / POIs.
[0116] Implementation Phase 3 If the number of results / POIs collected after Phase 2 is <= N, then return all results / POIs. Otherwise, find the non-empty segment-priority queue (Q) with the largest number of results and repeat the process until the remaining results > N or Q has only one result left. Remove the worst result / POI (i.e., relative to RC) from Q.
[0117] Returns all remaining results / POIs.
[0118] Infer the default range and sorting criteria (when not specified). POI categories capture a user's conceptual model of how they think about discovering POIs. Categories implicitly define the attribute patterns of POIs within that category. They are also closely related to ranking criteria. For example, electric vehicle charging stations might have matching attributes such as connector type and voltage, as well as ranking-influencing attributes such as pricing and power level. Restaurants might have matching attributes such as cuisine and average service time, as well as ranking-influencing attributes such as pricing and rating / popularity.
[0119] Therefore, inferring categories from user queries using lexical means (approximate name / synonym matching) and semantic means (knowledge graphs, language models, semantic embedding) can provide rich information about default range tolerance and ranking criteria.
[0120] Advantageously, the aforementioned range-sensitive SAR methods / algorithms expose the concept of range as something that can be specified or inferred by the client / user. Specifying / inferring the range can lead to an adaptive and optimal distribution of results / POIs along the route.
[0121] Figure 1 The boxes shown and the various steps and functions described above represent actions in a method, functions performed by a device, and / or instruction / code portions in a computer program.
[0122] It should be understood that Figure 1 Each box and combination of boxes shown, as well as the further functions described above, can be implemented by various means, such as hardware, firmware, and / or software including one or more computer program instructions. For example, one or more functions described below can be performed by a suitably configured device (e.g., a server or navigation device). One or more functions described below can be embodied by a suitably configured computer program (e.g., including computer program instructions embodying the functions described below, and which can be stored in a storage device and executed by a processor).
[0123] It should be understood that any such computer program instructions can be loaded onto a computer or other programmable device (i.e., hardware) to produce a machine, such that the instructions, which execute on the programmable device, produce means for implementing the function specified in the box. These computer program instructions can also be stored in a computer-readable medium that can instruct the programmable device to operate in a particular manner, such that the instructions stored in the computer-readable storage produce an article of work comprising instruction means for implementing the function specified in the box. Computer program instructions can also be loaded onto a programmable device to cause a series of operations to be performed on the programmable device, thereby producing a computer-implemented process, such that the instructions, which execute on the programmable device, provide actions for implementing the function specified in the box.
[0124] Various (but not necessarily all) examples of this disclosure may take the form of methods, apparatus, or computer programs. Therefore, various (but not necessarily all) examples may be implemented in hardware, software, or a combination of hardware and software.
[0125] Various (but not necessarily all) examples of this disclosure are described using flowchart illustrations and schematic block diagrams. It should be understood that each block (in the flowchart illustrations and block diagrams), and combinations of blocks, can be implemented by computer program instructions of a computer program. These program instructions can be provided to one or more processors, processing circuits, or controllers, such that instructions executing on these processors, processing circuits, or controllers produce means for implementing the functions specified in the blocks or blocks, thereby enabling the method to be implemented by a computer. The computer program instructions can be executed by a processor to cause a series of operation blocks / steps / actions to be performed by the processor, thereby producing a computer-implemented process, such that instructions executing on the processor provide blocks / steps for implementing the functions specified in the blocks or blocks.
[0126] Therefore, these boxes support: combinations of means for performing a specified function; combinations of actions for performing a specified function; and computer program instructions / algorithms for performing a specified function. It should also be understood that each box, and combinations of boxes, can be implemented by a dedicated hardware-based system, or a combination of dedicated hardware and computer program instructions, that performs the specified function or action.
[0127] Various (but not necessarily all) examples of this disclosure provide both a method and a corresponding apparatus, the apparatus comprising various modules, means, or circuits providing functionality for performing / applying the actions of the method. These modules, means, or circuits may be implemented as hardware or as software or firmware executed by a computer processor. In the case of firmware or software, examples of this disclosure may be provided as a computer program product comprising a computer-readable storage structure embodying computer program instructions (i.e., software or firmware) for execution by a computer processor.
[0128] Figure 6 A block diagram schematically illustrates an apparatus 1 for performing the methods, processes, and procedures described in this disclosure (especially as shown in the figure). Figure 1 (Those shown). In this respect, the device can be, in particular, a server or navigation device, for example. Figure 6 The component box is functional, and the described function can be performed by a single physical entity.
[0129] The device includes a controller 7, which can be installed within a device such as a server or navigation device.
[0130] Controller 6 can be embodied by a computing device, particularly those described above. In some, but not all, examples, the device can be embodied as a chip, chipset, circuit, or module, i.e., used in any of the above. As used herein, "module" refers to a unit or device that does not include certain parts / components that will be added by the end manufacturer or user.
[0131] The controller 6 can be implemented as a controller circuit. The controller 6 can be implemented solely in hardware, have some aspects in software (including firmware), or be a combination of hardware and software (including firmware).
[0132] The controller 6 can be implemented using instructions capable of implementing hardware functions, for example, by using executable instructions of a computer program 4 in a general-purpose or special-purpose processor 2, which can be stored on a computer-readable storage medium 3, such as a memory or disk, for execution by such a processor 2.
[0133] Processor 2 is configured to read from and write to memory 3. Processor 2 may also include an output interface through which data and / or commands are output by processor 2, and an input interface through which data and / or commands are input to processor 2. The device may be coupled to or include one or more other components 5 (especially, for example, one or more of the following: data communication interface, input / output user interface elements, and / or other modules / devices / components for inputting and outputting data / commands).
[0134] Memory 3 stores instructions, such as a computer program 4 (e.g., computer program instructions / code) including such instructions, which, when loaded into processor 2, control the operation of device 1. The instructions of computer program 4 provide logic and routines that enable the device to perform the methods, processes, and programs described in this disclosure (especially...). Figure 1 (As shown and discussed above). Processor 2 is able to load and execute computer program 4 by reading memory 3.
[0135] Instructions can be contained in computer programs, non-transitory computer-readable media, computer program products, and machine-readable media. The term "non-transitory," as used herein, refers to a limitation on the medium itself (i.e., tangible, not signal-based), not a limitation on the persistence of data storage (e.g., RAM and ROM). In some, but not all, examples, computer program instructions may be distributed across multiple computer programs.
[0136] Although memory 3 is shown as a single component / circuit, it can be implemented as one or more separate components / circuits, some or all of which may be integrated / removable and / or provide permanent / semi-permanent / dynamic / cached storage.
[0137] Although processor 2 is shown as a single component / circuit, it can be implemented as one or more separate components / circuits, some or all of which may be integrated / removable. Processor 2 can be a single-core or multi-core processor.
[0138] The device may include one or more components for implementing the methods, processes, and programs described in this disclosure (especially such as...). Figure 1 (As shown in the diagram and those discussed above). It is conceivable that the functionality of these components can be combined in one or more components, or performed by other components with equivalent functionality. The description of the functionality should also be considered as disclosing any means suitable for performing that functionality.
[0139] When a structural feature is described, it may be replaced by means of one or more functions for performing that structural feature, whether the function or those functions are explicitly or implicitly described.
[0140] Although the examples of the devices described above have been based on the inclusion of various components, it should be understood that these components may be embodied in or otherwise controlled by the corresponding controller or circuitry of the device (e.g., one or more processing elements or processors). In this regard, each of the aforementioned components may be one or more of any device, apparatus, or circuitry embodied in hardware, software, or a combination of hardware and software, configured to perform the corresponding function of the aforementioned corresponding component.
[0141] The device can be, for example, a server device, a client device, a mobile cellular phone, an in-vehicle integrated device, a wireless communication device, a handheld portable electronic device, etc. The device can be embodied in a computing device, especially those described above. However, in some examples, the device can be embodied as a chip, chipset, circuit, or module, i.e., used in any of the above.
[0142] In some examples, the device includes: At least one processor 12; and At least one memory 13 stores instructions that, when executed by the at least one processor 12, cause the device to perform: Determine the first set of Points of Interest (POIs) along the route that meet one or more first criteria; The route is divided into multiple segments; Associate each one or more POIs in the first set of POIs with one of the multiple segments of the route; Rank each or more POIs in the first set of POIs, wherein the ranking is based at least in part on one or more second criteria; For each segment, select the threshold number of the highest-ranking POIs associated with that segment; and A second set of POIs is generated, at least in part, based on the selected POIs.
[0143] Figure 7A computer program 4 is shown, which can be transmitted via a transmission mechanism 7. The transmission mechanism 7 can be any suitable transmission mechanism, such as a machine-readable medium, a computer-readable medium, a non-transitory computer-readable storage medium, a computer program product, a storage device, a solid-state storage device, a recording medium such as a read-only optical disc (CD-ROM) or a digital versatile optical disc (DVD), or an article containing or tangibly embodying the computer program 4. The transmission mechanism can be a signal configured to reliably transmit the computer program. The device can receive, propagate, or transmit the computer program as a computer data signal.
[0144] In some examples of this disclosure, a computer program is provided that includes instructions that, when executed by a device, cause the device to perform: Identify a first set of points of interest (POIs) along the route that meet one or more first criteria; The route is divided into multiple segments; Associate each one or more POIs in the first set of POIs with one of the multiple segments of the route; Rank each or more POIs in the first set of POIs, wherein the ranking is based at least in part on one or more second criteria; For each segment, select the threshold number of the highest-ranking POIs associated with that segment; and A second set of POIs is generated, at least in part, based on the selected POIs.
[0145] References to “computer program,” “computer-readable storage medium,” “computer program product,” “tangible embodiment of a computer program,” or “controller,” “computer,” “processor,” etc., should be understood to include not only computers with different architectures, such as single / multiprocessor architectures and sequential (von Neumann) / parallel architectures, but also special-purpose circuits, such as field-programmable gate arrays (FPGAs), application-specific integrated circuits (ASICs), signal processing devices, and other devices. References to computer programs, instructions, code, etc., should be understood to include software or firmware for programmable processors, such as the programmable content of hardware devices, whether processor instructions or configuration settings for fixed-function devices, gate arrays, or programmable logic devices.
[0146] Although specific terms are used in this article, they are used only in a general and descriptive sense and not for limitation.
[0147] The features described in the preceding description can be used in combinations that differ from those explicitly described.
[0148] Although functions have been described with reference to certain features, these functions can be performed by other features, whether or not they are described.
[0149] Although features have been described with reference to certain examples, these features may also exist in other examples, whether or not they are described. Therefore, features in a publicly described example / aspect may include any or all features in a publicly described example / aspect of another example / aspect, and vice versa, as long as they do not contradict each other.
[0150] Although various examples of this disclosure have been described in the preceding paragraphs, it should be understood that modifications may be made to the given examples without departing from the scope set forth in the claims.
[0151] The term "includes" is used in this document in a sense of inclusion rather than exclusivity. That is, any reference to X including Y indicates that X may include only one Y or multiple Ys. If "includes" is intended to be used in an exclusive sense, it will be made clear in the context by referring to "includes only one..." or using "consisting of...".
[0152] As used herein, the term "determine / identify" (and its grammatical variations) may include, but is not limited to: calculation, processing, derivation, measurement, investigation, identification, lookup (e.g., searching in a table, database, or other data structure), ascertainment, etc. Furthermore, "determine" may include receiving (e.g., receiving information), retrieving / accessing (e.g., retrieving / accessing data in memory), obtaining, etc. Additionally, "determine / identify" may include solving, selecting, picking, establishing, inferring, etc.
[0153] As used herein, a description of an action should also be considered as disclosing enabling and / or causing and / or controlling that action. For example, a description of transmitting information should also be considered as disclosing enabling and / or causing and / or controlling the transmission of information. Similarly, for example, a description of a device transmitting information should also be considered as disclosing that at least one device or controller of the device enables and / or causes and / or controls the device to transmit information.
[0154] The term "device" as used in the specification and claims may refer to one or more individual elements configured to perform one or more of the respective referred functions, or may refer to multiple elements performing such one or more functions. Furthermore, the multiple functions referred to in the claims may be performed by the same single device or the same combination of devices. For example, the performance of such one or more functions in a device may be caused by a processor executing instructions stored in the memory of the device.
[0155] References to parameters or attributes, or the values of parameters or attributes, should be understood as “data indicating…”, “data defining…”, or “data representing…”, unless explicitly stated otherwise (unless the context requires otherwise). This data may indicate the relevant parameter / attribute and / or its value in any way, and may indicate it directly or indirectly.
[0156] Various examples have been referenced in this specification. A description of a feature or function of an example indicates that such feature or function exists in that example. The use of the terms "example," "for example," "may," or "possibly" in the text, whether explicitly stated or not, indicates that such feature or function exists at least in the described example, whether or not it is described as an example, and that it may, but is not necessarily, exist in some or all other examples. Therefore, "example," "for example," "may," or "possibly" refers to a specific instance of a class of examples. The attribute of that instance may be an attribute of only that instance, an attribute of the class, or an attribute of subclasses that include some, but not all, instances of that class.
[0157] In this specification, references to “a / an / that” [feature, element, component, device…] are used in an inclusive rather than exclusive sense and should be interpreted as “at least one” [feature, element, component, device…] unless explicitly stated otherwise. That is, any reference to X including a / that Y indicates that X may include only one Y or may include multiple Ys, unless the context explicitly indicates otherwise. If “a” or “that” is intended to be used in an exclusive sense, then it will be clear from the context. In some cases, “at least one” or “one or more” may be used to emphasize an inclusive meaning, but the omission of these terms should not be interpreted as inferring any exclusive meaning. As used herein, “at least one of the following: ” and “at least one ” and similar wording, where the list of two or more elements is connected by “and” or “or”, means at least any one element, or at least any two or more elements, or at least all elements.
[0158] The presence of a feature (or combination of features) in a claim is a reference to that feature (or combination of features) itself, and also a reference to a feature (equivalent feature) that achieves substantially the same technical effect. Equivalent features include, for example, features that are variations and achieve substantially the same result in substantially the same manner. Similar features include, for example, features that perform substantially the same function in substantially the same manner to achieve substantially the same result.
[0159] Throughout this specification, adjectives or adjective phrases have been used to refer to various examples to describe their characteristics. Such descriptions of a characteristic of an example indicate that the characteristic exists exactly as described in some examples, and substantially as described in others.
[0160] In the foregoing description, the described apparatus may alternatively or additionally include an apparatus that, in some other examples, includes a distributed apparatus system, such as a client / server apparatus system. In examples where the provided apparatus forms (or the methods are implemented as) a distributed system, each apparatus forming a component and / or part of the system provides (or implements) one or more features that collectively implement an example of this disclosure. In some examples, an apparatus is reconfigured by an entity other than its original manufacturer to implement an example of this disclosure by providing it with additional software, such as software downloaded by a user, which, when executed, enables the apparatus to implement an example of this disclosure (this implementation may be entirely by the apparatus or as part of an apparatus system as described above).
[0161] The foregoing description illustrates some examples of this disclosure; however, those skilled in the art will recognize possible alternative structural and methodological features that provide functionality equivalent to specific examples of such structures and features described herein, and for the sake of brevity and clarity, have been omitted from the foregoing description. Nevertheless, the foregoing description should be construed as implicitly including references to such alternative structural and methodological features that provide equivalent functionality, unless such alternative structural or methodological features are expressly excluded in the foregoing description of the examples of this disclosure.
[0162] Although efforts have been made in the foregoing specification to draw attention to features of the examples of this disclosure that are considered particularly important, it should be understood that the applicant claims protection for any patentable features or combinations thereof mentioned above and / or shown in the accompanying drawings, whether or not they have been specifically highlighted.
[0163] The examples and appended claims of this disclosure may be appropriately combined in any manner obvious to a person skilled in the art. Individual references in the specification to “an example,” “in some examples,” and / or similar references do not necessarily refer to the same example, and are not mutually exclusive unless so stated and / or unless obvious from the description to a person skilled in the art. For example, a feature, structure, process, block, step, action, etc., described in one example may be included in other examples, but is not necessarily included.
[0164] Each claim is incorporated in the specification as further disclosure, and these claims are embodiments of this disclosure. Furthermore, while the claims herein are provided to include specific dependencies, it is contemplated that any claim may be dependent on any other claim, and any such alternative embodiments and their equivalents are also within the scope of this disclosure to the extent that any alternative embodiments may arise by combining, integrating, and / or omitting features of various claims and / or changing the dependencies of the claims.
Claims
1. A computer-implemented method for determining Points of Interest (POIs) along a route, the method comprising: Determine a first set of POIs that satisfy one or more first criteria along the route; The route is divided into multiple segments; Associate each or more POIs in the first set of POIs with one of the multiple segments of the route; Each or more POIs in the first set of POIs is ranked, wherein the ranking is based at least in part on one or more second criteria; For each segment, select the threshold number of the highest-ranking POIs associated with that segment; and A second set of POIs is generated, at least in part, based on the selected POIs.
2. The method according to claim 1, wherein, Determining the first set of POIs that satisfy one or more first criteria along the route includes: Identify POIs that are located within a threshold distance from the route and meet one or more of the first criteria.
3. The method according to claim 1, wherein, Determining the first set of POIs that satisfy one or more first criteria along the route includes: The one or more first criteria are used as search query inputs and input into the route-search SAR service to identify POIs that meet the one or more first criteria along the route.
4. The method according to any one of claims 1 to 3, wherein, At least one of the one or more first criteria is at least one of the following: Based at least in part on user input; At least in part based on the context; or Predetermined.
5. The method according to claim 1, wherein, At least one of the one or more first criteria is at least one of the following: POI category; or POI attributes.
6. The method according to any one of claims 1 to 3 and 5, wherein, Each segment has a segment length, and the length of said segment is at least one of the following: Predetermined; Basically uniform; User-defined; Based at least in part on user input; Based at least in part on a defined context; or Based at least in part on one or more of the first criteria.
7. The method according to any one of claims 1 to 3 and 5, wherein, Each segment has a segment length, and the length of said segment is at least partially based on a range parameter, said range parameter indicating at least one of the following: Target threshold distance between POIs in the second set of POIs; The vehicle's maximum driving range; or The target threshold is used to estimate the travel time between POIs in the second set of POIs.
8. The method according to any one of claims 1 to 3 and 5, further comprising determining additional information regarding: One or more POIs in the first set of POIs, and / or A subset of the first set of POIs.
9. The method according to any one of claims 1 to 3 and 5, wherein, At least one of the one or more second criteria is at least one of the following: One or more criteria to be satisfied by the POIs of the second set of POIs; User-specified; Based at least in part on user input; Based at least in part on a defined context; Based at least in part on the user's predetermined preferences; Based at least in part on the user's history; and Predetermined.
10. The method according to any one of claims 1 to 3 and 5, wherein the ranking of POIs is based at least in part on at least one of the following: The distance from the point of the segment associated with the corresponding POI to the POI; The estimated time to travel from a point in a segment associated with the corresponding POI to the POI; or The detour cost of the POI, wherein the detour cost of the POI indicates the estimated cost of traversing a second route from a point on a segment associated with the corresponding POI to the corresponding POI.
11. The method according to any one of claims 1 to 3 and 5, further comprising reducing the total number of POIs in a second set of POIs, wherein reducing the total number of POIs comprises iteratively removing POIs from the second set of POIs based on the following: The POI is associated with a segment, and the segment has the most POIs associated with it. The ranking of the POIs.
12. The method according to any one of claims 1 to 3 and 5, wherein one or more POIs are iteratively removed from the first set or the second set until the total number of POIs in the first set or the second set satisfies a threshold number of POIs.
13. The method according to any one of claims 1 to 3 and 5, further comprising at least one of the following: Render at least a portion of a second set of POIs on a digital map, and optionally render at least a portion of the route; Route calculation is performed using at least a portion of the second set of POIs; Modify the route to include one or more intermediate waypoints, wherein the intermediate waypoints include one or more POIs from a second set of POIs; or Modify the route so that, for at least one segment of the segments, at least one POI from the second set of POIs is included as at least one waypoint.
14. An apparatus comprising means for performing the method of any one of the preceding claims.
15. A computer program, selectively executable on a computer-readable medium, comprising instructions that, when executed by a computer, cause the computer to perform the method according to any one of claims 1 to 13.