Methods, devices, and computer programs for searching along a route.
By segmenting routes and ranking POIs based on specific criteria, the method optimizes the distribution of POIs along a route, addressing inefficiencies in existing POI determination methods and enhancing search relevance.
Patent Information
- Authority / Receiving Office
- JP · JP
- Patent Type
- Applications
- Current Assignee / Owner
- TOMTOM NAVIGATION BV
- Filing Date
- 2025-11-11
- Publication Date
- 2026-06-29
AI Technical Summary
Existing methods for determining points of interest (POIs) along a route are inefficient in providing a uniform and optimized spread of POIs, especially in contexts where user-specified ranges or contexts are not defined, leading to suboptimal search results.
A method that divides a route into segments, associates POIs with each segment, ranks them based on specific criteria, and selects the highest-ranked POIs for each segment, ensuring a threshold number is met, thereby generating an optimized set of POIs that satisfy both predefined and user-defined criteria.
This approach ensures a deterministic and optimally uniform spread of POIs along a route, considering user-specified ranges and contexts, improving the accuracy and relevance of search results.
Smart Images

Figure 2026106395000001_ABST
Abstract
Description
Technical Field
[0001] Examples of the present disclosure relate to a method, apparatus, and computer program for searching along a route. Some examples relate to a method, apparatus, and computer program for determining points of interest (POIs) along a route.
Background Art
[0002] Digital maps may include map data representing navigable elements (especially, for example, roads) along which routes may be calculated. Digital maps may also include map data representing map features / locations of interest (referred to herein as points of interest (POIs)). It is useful to determine / search / identify POIs along a route, for example, to determine locations / places that a user / driver may want to pass by, visit, or stop at while traversing a route.
[0003] It is useful to provide improved methods, apparatuses, and computer programs for determining POIs along a route.
[0004] Any recitation or discussion of any prior art or any background in this specification should not necessarily be construed as an admission that the document or background is part of the state of the art or common general knowledge. One or more aspects / examples of the present disclosure may or may not address one or more of the background problems.
Summary of the Invention
[0005] The scope of protection sought for various exemplary embodiments is indicated by the claims.
[0006] While not necessarily exhaustive, various examples provided in this disclosure include those asserted in the appended claims. Any examples and features described in this specification that are not included in the scope of the independent claims should be construed as useful examples for understanding various exemplary embodiments.
[0007] Various examples in this disclosure, though not necessarily all, provide computer-implemented methods for determining points of interest (POIs) along a route, and said methods include: Determine the first set of points of interest (POIs) along the route that satisfy one or more of the first criteria, The aforementioned route is divided into multiple segments, Associating one or more POIs in the first set of POIs with one of the multiple segments of the route, Ranking one or more POIs in the aforementioned first set of POIs, wherein the ranking is at least partially based on one or more second criteria. For each segment, select the POI with the highest rank in the threshold number associated with the individual segment, The method comprises generating a second set of POIs based at least partially on the selected POIs.
[0008] According to at least some examples of this disclosure, an apparatus is provided which includes means for carrying out the method described above.
[0009] Various examples of this disclosure, though not necessarily all, provide modules, chipsets, circuits, devices, data processing devices and / or systems that include means for carrying out the methods described above.
[0010] Through various examples of this disclosure, though not necessarily all, computer programs are provided that, when executed by the device, include instructions causing the device to perform the methods described above.
[0011] While not all examples are given, various examples in this disclosure indicate that At least one processor, The provided device includes, when executed by the at least one processor, at least one memory for storing instructions that cause the device to perform at least the method described above.
[0012] Through various examples of this disclosure, though not necessarily all, a non-temporary computer-readable medium is provided which is encoded with instructions that cause the above-described method to be performed when executed by at least one processor.
[0013] The following sections of this "Overview" section describe various features that may be characteristic of any of the examples described in the preceding sections of the "Overview" section, with necessary modifications. The description of a function should also be considered to disclose any means suitable for performing the function, or any instruction stored in at least one memory that causes the device to perform the function when executed by at least one processor.
[0014] In some, though not all, examples of determining the first set of POIs along the route that satisfy one or more first criteria is: This includes identifying a POI located within a threshold distance from the route that satisfies one or more of the first criteria.
[0015] In some, though not all, examples of determining the first set of POIs along the route that satisfy one or more first criteria is: This includes inputting the one or more first criteria as a search query input to a Route-by-Route Search (SAR) service in order to identify POIs along the route that satisfy the one or more first criteria.
[0016] In some, though not all, instances, at least one of the aforementioned first criteria is: Based at least in part on user input, Based at least in part on context, At least one of those that are pre-determined.
[0017] Although not necessarily all, in some examples, at least one of the one or more first criteria is A POI category, and A POI attribute, at least one of which.
[0018] Although not necessarily all, in some examples, each segment has a segment length, and the length of the segment is Pre-determined, Approximately uniform, User-defined, Based at least in part on user input, Based at least in part on the determined context, At least one of those based at least in part on the one or more first criteria.
[0019] Although not necessarily all, in some examples, each segment has a segment length, and the length of the segment is based at least in part on a range parameter, and the range parameter is The target threshold distance between POIs of the second set of POIs, and The maximum range of the vehicle, and The target threshold estimated travel time for traversing between POIs of the second set of POIs, at least one of which is indicated.
[0020] Although not necessarily all, in some examples, the method One or more POIs of the first set of POIs, and / or A subset of the first set of POIs, further includes determining information or additional information about.
[0021] Although not necessarily all, in some examples, at least one of the one or more second criteria is one or more criteria to be satisfied by the POIs of the second set of POIs, user-specified, at least partially based on user input, at least partially based on a determined context, at least partially based on a predetermined preference of the user, at least partially based on the user's history, predetermined, and is at least one of them.
[0022] Although not necessarily all, in some examples, the ranking of the POIs is the distance from the point of the segment associated with the individual POI to the POI, and an estimated time to move from the point of the segment associated with the individual POI to the POI, a detour cost for the POI, which indicates an estimated cost for crossing a second route from the point of the segment associated with the individual POI to the individual POI, and is at least partially based on at least one of them.
[0023] Although not necessarily all, in some examples, the method further has reducing the total number of POIs in the second set of POIs, and reducing the total number of POIs the POIs associated with the segment with the most associated POIs, and the ranking of the POIs, and repeatedly removing POIs from the second set of POIs at least partially based on them.
[0024] Although not necessarily all, in some examples, one or more POIs are repeatedly removed from the first or second set until the total number of POIs in the first or second set meets a threshold number of POIs.
[0025] In some, but not all, examples, the method described above, Rendering at least a portion of the aforementioned second set of POIs and optionally at least a portion of the aforementioned route onto a digital map, The calculation of the square root involves using at least a portion of the aforementioned second set of POIs, Modifying the route to include one or more intermediate waypoints, wherein each intermediate waypoint includes one or more POIs of the second set of POIs. The further includes at least one of the following: modifying the route such that at least one of the segments includes at least one POI from the second set of POIs as at least one waypoint. The above examples and optional features of this disclosure are described separately, but it should be understood that their provision in all possible combinations and substitutions is included within this disclosure. It should be understood that the 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. It should also be understood that any one or more or all of the features may be implemented / executable by apparatus, methods and / or computer program instructions, in any combination, as desired and as needed. [Brief explanation of the drawing]
[0026] Several examples are described below with reference to the attached drawings. [Figure 1] The method described herein by example is outlined below. [Figure 2] An example of a route and a set of POIs along that route is shown schematically. [Figure 3] Figure 2 schematically shows an example of a route separated into segments, and the set of POIs associated with each segment. [Figure 4] A schematic example of a subset of the set of POIs associated with each segment in Figure 3 is shown. [Figure 5]Further schematic examples of routes with POIs associated with each segment of the route are shown below. [Figure 6] A schematic example of the device is shown below. [Figure 7] A schematic example of a computer program is shown below.
[0027] Drawings are not necessarily to scale. Certain features and views in drawings may be shown schematically or at scale exaggerated for clarity and conciseness. For example, the dimensions of some elements in a drawing may be exaggerated relative to other elements to aid in explanation. Similar reference numerals are used in drawings to indicate similar features. For clarity, not all reference numerals are necessarily shown in all drawings.
[0028] In drawings (and descriptions), similar features may be referred to by the same three-digit number. In drawings (and descriptions), optional subscripts may be used for three-digit numbers to distinguish different instances of similar features. Thus, three-digit numbers without subscripts may be used as general references, while three-digit numbers with subscripts may be used as individual references. Subscripts may include a single-digit number that labels different instances. Subscripts may include two numbers, a first number that labels a group of instances, and a second number that labels different instances within the group. [Modes for carrying out the invention]
[0029] The following is a brief discussion of "SAR" (Site Arrangement), that is, finding points of interest / places of interest / locations of interest (i.e., POIs) along a route.
[0030] SAR may have two usage "modes".
[0031] 1. SAR Horizon Mode: This mode of use is for when the user is looking for potential intermediate stops / waypoints (POIs) along a general route in the direction of the user's destination that is reachable from the user's current position, so that travel along the route can be resumed within a detour budget, i.e., detours to reach POIs are within a certain range. In this context, “detour” may be considered to refer to a sub-route that deviates from the main route and can be taken to reach a POI / intermediate stop / waypoint near the main route. In this context, “range” may be considered to refer to the maximum distance the user can travel to reach an intermediate stop / POI that can be taken during travel along the route. The SAR Horizon Mode usage type may be provided via a navigation device such as an in-vehicle navigation device or a portable / handheld navigation device.
[0032] 2. SAR Planning Mode: This mode of use is for when the user is "planning" stops at regular intervals along the (remaining) route. For example, among other things, a) If you plan to have electric vehicle (EV) charging stations every X kilometers along the route (where X may be based on the EV's maximum range / driving distance): b) When planning rest stops (such as relaxation areas or restroom stops) c) When a scenic stop is found along a long route d) When planning a station that provides multiple colocated amenities (such as fuel and lunch).
[0033] Common to both of these modes of use for SAR is the concept of "range" (distance budget), which allows the user to reach their next location of interest from their current position or a location of interest.
[0034] Depending on the intent and context, the scope / acceptability may change. For example, Drivers of EVs with a nominal range of 400km from an 80% battery level may only consider a route acceptable if a compatible charging station is present every 300km along the route. When traveling with children, you might prefer to plan rest stops every 200km.
[0035] As will be described in more detail below, the examples in this disclosure aim to provide an improved SAR, in particular for the use of planning mode.
[0036] Examples of this disclosure may attempt to provide an improved SAR that may offer a deterministic and optimally uniform spread of POI search results along a route.
[0037] Examples of this disclosure may attempt to provide search results for points of interest (POIs) along a route that can take into account user-specifiable ranges and / or ranges determined at least in part on the context (e.g., a search while driving an electric vehicle). In some examples, intent-adaptive default ranges and ranking modes may be used to determine parameters for governing the extent of POIs when no range is specified by either the end user or the context. For example, a user POI search query "toilet" may be interpreted as intent "rest area," and therefore a default range of 150 kilometers and ranking mode "closest in distance along the route" may be applied.
[0038] Figure 1 schematically illustrates a method 100 (which may be implemented by computer) for finding points of interest (POIs) along a route. The method in Figure 1 is described below with reference, in particular, to Figures 2-4.
[0039] The component blocks in Figure 1 are functional, and the functions described may be performed by a single physical entity (such as a device as described with reference to Figure 6, which may be implemented within a navigation device [e.g., an in-car navigation device or a portable / handheld navigation device] or within a server). The functions described may also be implemented by a computer program (such as the one described with reference to Figure 7).
[0040] The method / flowchart in Figure 1, among other things, represents one possible scenario. The order of the blocks shown is not necessarily required, and therefore, in principle, various blocks can be executed in different orders. In a particular example, one or more blocks may be executed in different orders, or overlapping in time, in series or in parallel.
[0041] In block 101, i) It follows Route 400 (i.e., a predetermined / pre-planned route), and ii) A first set of 300 POIs is determined that satisfy one or more of the first criteria 500 (i.e., additional criteria in addition to being along a route).
[0042] Determining a first set of POIs along a route that satisfy one or more first criteria may include identifying POIs that are located within a threshold distance from the route and satisfy one or more first criteria.
[0043] Such a decision may involve receiving, obtaining, or calculating a first set of points of interest (POIs) via a route-following search (SAR) algorithm or service. In this regard, the decision in block 101 may involve inputting one or more first criteria as a search query input to a SAR service in order to identify route-following POIs that satisfy one or more first criteria.
[0044] One or more of the first criteria are: Based at least partially on user input (for example, explicitly entered by the user or inferred based on user queries / POI search terms), Based at least in part on the context (in particular, for example, being inside an electric vehicle, the time of day [e.g., regarding day / night / meal times], user / personal preferences, and / or These may be predetermined criteria.
[0045] The first criterion may correspond to POIs having a specific POI category (in particular, e.g., EV charging stations, restaurants, etc.) or POI attributes (in particular, e.g., connector type of EV chargers).
[0046] Figure 2 shows, A network of navigable elements provides 400 routes from starting point "A" to destination point "B", An example of a first set of 300 POIs that are along a route (i.e., within a corridor / threshold separation distance / width of 600 from the route) and satisfy a first criterion is outlined.
[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 (i.e., other POIs on the digital map) that are not along the route (i.e., not within Corridor 600) and / or do not meet the first criterion are not shown.
[0048] Route 400 may be a pre-determined / pre-planned route.
[0049] The first set of POIs, 300, can be considered as the set of POIs associated with the entire route. The first set of POIs effectively corresponds to a subset of the entire set of POIs in the digital map, and such a subset / first set is formed from POIs that are along the route and also satisfy the first criterion from the entire set.
[0050] As will be understood, each POI200 may represent any type of map feature / object / location / place or point, for example, among other things, as an indefinite example, These include EV charging stations, gas stations, service stations, rest stops, toilet facilities, restaurants, cafes, pubs, shops, accommodations, hotels, tourist attractions, landmarks, scenic rest stops, buildings, etc.
[0051] Each POI200 may have a position / location.
[0052] A POI may be determined to be "along the route" if its location is within a threshold distance from the route, for example, within a specific isolation distance, width, or corridor 600 from the route. The "distance" of the POI from the route is: "Spatial" distance, for example, the direct / linear displacement distance of a POI relative to a route, or "travel distance" representing the distance along a navigable element traversing between a POI and a route. It may also be considered a “temporal” distance, for example, a “travel time” representing the expected amount of time to traverse along the navigable elements between the POI and the route (i.e., at the expected speed with respect to the navigable elements).
[0053] Each POI may have one or more characteristics or attributes. One or more first criteria may be based on whether the POI has one or more specific characteristics or attributes.
[0054] A POI may be determined to satisfy one or more first criteria if the individual POI possesses one or more specific characteristics or attributes identified by one or more first criteria. In this regard, one or more first criteria may identify one or more matching criteria, and such matching criteria may be considered in effect to be "hard" criteria that must be satisfied (compared to second criteria, which may be considered in effect to be "soft" criteria, which are preferred / optional to satisfy, as discussed below). For example, the first criterion may be that each POI must be an EV charging station, and furthermore, must have an EV charging station compatible with the user / driver's electric vehicle. Such a first criterion may be an input search query term for a POI SAR service.
[0055] POI data stored in a database / repository of POI data, or POI data contained in a digital map stored in a map database, may include information representing each POI, and additional information related to each POI, such as, in particular, the location / position of each POI and one or more characteristics or attributes of each POI.
[0056] In block 102, route 400 is divided into multiple segments 700.
[0057] The length of each route segment is: It has been decided in advance. It is roughly uniform. Based at least partially on user-defined / user input, Based at least partially on the determined context (for example, if the context is that the user's vehicle is an EV, the length of the route segment may be based on the range of EVs), or It may be based at least in part on one or more first criteria (for example, if the first criterion is a POI that is an EV charging location, the length of the route segment may be based on the range of the EV).
[0058] In block 103, each POI in the first set of POIs 300 is associated with one of several segments of a route. In this regard, a set of POIs 800 may be formed for each route segment 700. In some examples, each POI may be assigned / associated with the route segment associated with its nearest route segment and / or the corridor segment in which the POI is located.
[0059] Figure 3 schematically illustrates an example of the root 300 in Figure 2 divided into multiple segments 700 (i.e., in this particular example, three segments: 700_1, 700_2, and 700_3, referred to as segments: Seg1, Seg2, and Seg3 in this text). Figure 3 also schematically illustrates the sets of POIs 800 associated with each segment 700 (i.e., in this particular example, three sets of POIs 800_1, 800_2, and 800_3 associated with Seg1, Seg2, and Seg3, respectively). Each set of POIs 800 associated with a segment is a subset of the first set 300 of POIs associated with the entire length of the root 300.
[0060] In the example shown in Figure 3, the root 20 having length L is divided / separated into three segments Seg1, Seg2, and Seg3, each having individual segment lengths L1, L2, and L3, respectively.
[0061] The length of each segment of a route may 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., maximum distance) that the user is willing to travel between POIs (e.g., from one POI to another, or from the current position to the next POI). Such a range or predetermined distance is sometimes referred to in this document as a “distance budget.” In this regard, as will be discussed further below, the length of each segment effectively serves 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 km. In this case, the route segment length could be calculated as a percentage of the range, for example, 80% of 300 km = 240 km.
[0063] In some examples, the lengths of each segment of a route may be the same or substantially the same. In some examples, route segments may have different lengths (for example, different user-defined lengths that may correspond to user-defined legs of travel along the route).
[0064] In some examples, most segments may be the same or substantially the same length, while one or more of a few (e.g., end segments) may have different lengths (such as "remainder length") (for example, if the route is 700 km long, Seg1 and Seg2 may have segment lengths of 240 km, while Seg3 may have a remainder length of 220 km).
[0065] In some examples, it will be understood that block 102 may be executed before block 101. In this respect, rather, Determine the set of POIs for routes that satisfy one or more of the first criteria, and then, The route is divided into segments, and then, Associate each POI in the set of POIs for a route with each segment. Alternatively, the route may be divided into segments, and then for each segment, a set of Points of Interest (POIs) along each segment of the route is determined that satisfy one or more first criteria (such a set of POIs for each segment is essentially associated with that individual segment).
[0066] In block 104, each POI is ranked, and the ranking is at least partially based on one or more second criteria 900. In this regard, the POIs of the first set 300 of root POIs may be ranked / ordered / sorted / prioritized according to the second criteria.
[0067] Ranking of POIs based on the second criterion may include ranking / ordering / sorting / prioritizing POIs based on whether or to what extent a POI possesses one or more characteristics that match (or closely resemble) one or more specific characteristics / attributes defined in the second criterion.
[0068] One or more of the second criteria are: One or more criteria that must be satisfied by the second subset of POIs, Based at least partially on user-specified / user input, Based at least partially on the determined context, and Based at least partially on the user's predetermined preferences, Based at least partially on the user's history, and It may be decided in advance.
[0069] In some cases, the first criterion 500 in block 101 (which serves as a matching / filtering criterion for POIs) may effectively be considered a “hard” criterion, i.e., a criterion that must be met, while the second criterion in block 104 (which serves as a ranking criterion for POIs) may be considered a “soft criterion” that is not mandatory but is preferable to be met. In this regard, the second criterion may relate to POI characteristics / attributes that are preferable but not mandatory for a POI to possess.
[0070] The ranking of POIs is as follows: The distance from a point on the segment associated with an individual POI (e.g., the start or end point of the individual segment, the nearest point on the individual segment, the optimal branching point on the individual segment for a detour (sub-route) from the individual segment to the POI), An estimate of the time it takes to travel from a segment point associated with an individual POI to the POI, The detour cost for a POI, where the detour cost for a POI represents the estimated cost of traversing a second route / subroute from a point on a segment associated with an individual POI to the individual POI (it will be understood that "cost" can be spatial cost (distance), temporal cost (time), and, among other things, other types of costs such as the amount of fuel, electricity / charges required to travel to the POI), and may be based at least partially on one or more of the following:
[0071] As a non-limiting example, the second criterion may relate to POI characteristics / attributes such as price, opening hours, reviews / scores, distance from a route, estimated travel time from a route, scenery, etc.
[0072] In block 105, for each segment, the highest-ranking POI is selected based on the threshold number N associated with the individual segment. The number N essentially defines the number of POIs selected for each segment. Each segment may have its own value of N (i.e., the value of N may differ for each segment). Each segment may have its own value of N. As discussed below with respect to Figure 5, the parameter N may be a fixed value for a given segment and may be called a "fixed-size priority queue," such as a fixed-size priority queue of size N.
[0073] In some examples, POIs are repeatedly removed from the first or second subset until the total number of POIs in the first or second subset satisfies a threshold number of POIs, so that a desired number (e.g., N) of results / POIs are obtained.
[0074] In some examples, the total number of POIs in the second set of POIs is Individual POIs associated with the segment with the most associated POIs, The number of POIs is reduced / limited to a threshold number by ranking individual POIs and repeatedly removing one or more POIs from a second set of POIs, at least partially based on this.
[0075] In block 106, one or more second sets 1000 of POIs are generated based at least partially on the selected POIs. In this regard, the selected POIs (there are N of them for each segment) form the second set 1000 of POIs for the route. Thus, the second set 1000 of POIs is a subset of the first set 300 of POIs.
[0076] Advantageously, the examples of the present disclosure may thereby provide an improved determination / identification of POIs for a route, i.e., a second set of 1000 POIs for a route, which can be optimized (e.g., such that the distance from one POI to another does not exceed a predetermined threshold [e.g., range or distance budget]) and satisfy both the first and second criteria.
[0077] In some examples, following step 103 of associating each POI in the first set 300 of POIs with one of the route segments 700, thereby forming a set 800 of POIs for the route segment 700, the number of POIs per set 800 may be capped / limited to a threshold number, e.g., the value of N / "fixed-size priority queue" mentioned above. In this regard, the set 800 of POIs may be adjusted to form an adjusted set 800' of POIs, each adjusted set 800' of POIs having a maximum of N POIs in it. Thus, if the route is separated into K segments, the maximum number of POIs across all segments is capped / limited to K × N.
[0078] In some examples, dividing a route into multiple segments of block 102 may be performed before or as part of determining a first set 300 of POIs along the route that satisfy one or more first criteria in block 101. In this case, the determination in block 101 may include determining, for each segment, a set 800 of POIs along each segment that satisfy one or more first criteria. Furthermore, such a determination may be performed such that the number of POIs per set of POIs for each segment is capped / limited to a threshold number, for example, the value of N / fixed-size priority queue described above. In this regard, each set of POIs for each segment has a maximum of N POIs in it, thereby forming a set 800' of POIs for each segment that is capped / limited. Thus, if the route is separated into K segments, the maximum number of POIs across all segments is capped / limited to K × N.
[0079] In some cases, additional information is determined for one or more / subsets of the first set of POIs. In this regard, the additional information may be determined for each POI in each adjusted set 800' of POIs for each segment. This reduces the number of POIs for which additional information should be determined, as the number of POIs in each adjusted set 800' of POIs may be capped / limited.
[0080] The determination of additional information about POIs within each coordinated set of 800' is as follows: Calculating information related to POIs, such as the route, distance traveled, and travel time to reach the POI from Route 400 (i.e., calculating the detour route, detour distance, and detour time to the POI), Obtaining information about POIs (for example, performing searches on the internet for information about POIs in additional databases), and / or, This may include determining the characteristics / attributes associated with each POI, such characteristics / attributes corresponding to those used in the second criterion (i.e., the characteristics / attributes used in the ranking / ranking criteria of block 104).
[0081] To the advantage of this approach, a first execution phase is performed to identify POIs that match a first criterion, and by reducing / limiting the number of such POIs per segment, this allows for the determination / retrieval of additional information about the reduced / limited number of POIs, and such additional information determined / revealed can then be used to perform a second execution phase, which involves identifying POIs that match a second criterion, the second criterion being based on the additional information.
[0082] For example, the first criterion may be a POI that has the attribute of being an EV charging station. A digital map or repository of POI map data may include such attribute data. However, the second criterion may be the price per kWh (or the number of charging bays or the current availability of charging bays), and such dynamic information and additional attribute details are not stored in the digital map or POI map data repository. Therefore, the exemplary embodiment allows for retrieval of such additional information so that the evaluation of the second criterion can be performed.
[0083] In some examples, at least a portion of the second set of POIs is Rendered on a digital map along with at least part of the route, Used in route calculations (for example, to modify a route to include a detour to a POI of the second set of POIs), Used to modify a route to include one or more intermediate waypoints, where an intermediate waypoint includes one or more POIs in a second set of POIs, or It may be used to modify the route such that at least one of the segments includes at least one POI from a second set of POIs as at least one waypoint.
[0084] Figure 4 schematically illustrates an example of a second set of 1000 POIs, where for each segment, only the single highest-ranked POI from the set of 800 (or 800') POIs for the individual segment is selected for each segment, i.e., N=1 (in this example, all POIs are gas stations, and ranking is based on a second criterion based on the proximity of the POI to the segment's endpoint and the cheapest fuel price).
[0085] In the example in Figure 4, where N=1, there is only one POI for each segment, i.e., POI1000_1, 1000_2, and 1000_3 associated with Seg1, Seg2, and Seg3, respectively. In this regard, it can be seen that POI1000_1 can be considered a subset of the set of POIs 800_1 for Seg1. Similarly, POI1000_2 can be considered a subset of the set of POIs 800_2 for Seg2, and POI1000_3 can be considered a subset of the set of POIs 800_3 for Seg3.
[0086] The following discussion describes exemplary embodiments of the present disclosure for providing range-sensitive SAR. The range-sensitive SAR methods / algorithms discussed below may utilize information received from a user (e.g., a vehicle driver planning / experiencing a trip along a route) and from a client system holding contextual information about the user. The range-sensitive SAR may provide points of interest (POIs) that are optimally and uniformly spread along the route.
[0087] In the context of discussing exemplary embodiments, the following terms may have the following meanings:
[0088] • Range: The maximum distance (in kilometers) a user can travel to reach an intermediate stop / location (i.e., POI) of interest during a trip along a route. • SAR: Route-based search. SAR allows users to find Points of Interest (POIs) along a pre-selected / pre-determined route. • Detour: A side route that leaves the main route and may be taken to reach a POI (Point of Interest) near the main route. • Detour point, detour offset: The latitude and longitude position on a designated route from which a vehicle must leave the route in order to reach a desired intermediate POI along the detour. • Detour distance: This is the distance taken along the detour to the POI plus the distance taken to rejoin the main route. • POI: Point of Interest. An intermediate stop / location of interest that has a unique association with a category / type (e.g., EV charging station, restaurant, or hotel). • Corridor: A route with a desired "width" for each segment of the route, which acts as a first-phase geometry filter to rank / return candidate results / limit the number of POIs. • Waypoint: A position selected by the user as essential.
[0089] A range-sensitive SAR method / algorithm, which may be implemented via an SAR service or application on a client device (e.g., a car, smartphone, dashboard device, etc.), has the following inputs:
[0090] 1. For example, for a route of length "L", the geometry of the route includes the linestring and the width of the corridor.
[0091] Typically, this may be obtained by on-device software (e.g., car dashboard navigation or navigation application) as a result of actions taken by the user to select a route proposed by the routing service.
[0092] 2. Current position (options) This may be implicitly obtained through fine-grained (e.g., GPS-based) and / or coarse-grained (e.g., IP-based) location data sensed by the user's device (e.g., car, smartphone, dashboard device, etc.) which the user agrees to share with the application.
[0093] 3. A range in kilometers smaller than the route length "L" ("R"). This may be obtained as a result of a user action such as tapping a category icon (e.g., charging station) combined with a device configuration (e.g., nominal / predicted electric vehicle range for a specific make / model of a car). Additionally or alternatively, it may be inferred by the SAR service when the user's intent is recognized from their text / speech (language) input, as well as current / pre-specified / predicted conditions (time, weather, etc.). It may also be explicitly provided by the user (e.g., "Find me a coffee every 250 kilometers").
[0094] 4. Matching criteria (category, brand, attribute filter, free text query) Some criteria may be obtained as a result of explicit user input (e.g., tapping a category icon, typing a keyword, or speaking a known concept such as "lunch"). Other criteria, such as attribute filters, may arise from pre-configured device / user constraints on the device (e.g., EV connector type / (one or more) fuel types, accessibility constraints, etc.).
[0095] 5. Phase 2 matching criteria (e.g., maximum detour time) This may be inferred by the SAR service from the waypoints selected by the user that constrain the scope (e.g., see Input 3) and / or valid routes (a route may be valid for a user request that includes a waypoint only if the route passes through each of the waypoints).
[0096] 6. Ranking criteria (RC) for determining the "quality" of the result given the requirements. Some ranking criteria may be inferred from perceived user intent (e.g., ranking restaurants by popularity, restrooms by distance). Some ranking criteria may be inferred from user history / preferences (e.g., visited / favorite brands, cuisine). Default ranking criteria may be configured within the SAR service.
[0097] 7. Number of desired results (N) Typically, this may be pre-configured in the client application with which the user interacts. This may be overridden by user actions (such as forced scrolling).
[0098] Execution Phase 1 Route segments are constructed / generated from pre-selected / predetermined routes by discarding sections of the route "behind" the user's current position (if specified), and then "cutting" the remaining route every "range" kilometers along that length. This generates "K" route segments (see Figure 5).
[0099] Figure 5 schematically shows an example of a route 400 from A to B, where the route is divided into K segments 700 along with a set of 1000 points of interest (POIs) determined according to the range-sensitive SAR method / algorithm and its three execution phases described later, so as to spread optimally and uniformly along the route.
[0100] The number of segments (K) can be derived from the total root length (L) and range (R), that is, it is the ratio L / R rounded up, i.e., K = ceil(L / R).
[0101] Each root segment is associated with its own fixed-size priority queue of size N, which holds any results pushed to it in the order imposed by the Ranking Criteria (RC). For all results / POIs in the corridor that satisfy the matching criteria, the root segment to which the result / POI belongs is identified, and the result / POI is pushed to the corresponding priority queue of the identified root segment.
[0102] Step sequence 1. Calculate the total length (L) of the input route. 2. Convert the input route to corridor geometry. 3. Construct a search engine query that is suitable for the input (including corridor geometry as a filter). 4. Construct a mapping consisting of K corridor segments, each with length R (except for the last segment, which may have any size less than or equal to R). Each corridor segment is associated with its own prioritized queue of size N, which maintains the cumulative maximum of the top N results / POIs within that corridor segment (as determined by the ranking criterion RC). 5. Execute search engine queries and distribute / group each resulting hit / POI into a prioritized queue for its corresponding corridor segment. 6. Retain the grouped results / POIs for the next execution phase.
[0103] As a result of Phase 1, up to K × N distinct results / POIs may be collected across all segment-prioritized queues.
[0104] Execution Phase 2 All collected results / POIs (their K×N) are supplemented with external information (e.g., calculation of detour distance / detour time to the POI).
[0105] The Phase 2 matching criteria are applied to each result / POI. Only matching results / POIs are retained.
[0106] Execution Phase 3 If the number of results / POIs collected after Phase 2 is less than or equal to N, all results / POIs are returned. Otherwise, a non-empty segment-priority queue (Q) with the maximum number of results is found there, and the process is repeated as long as the remaining results exceed N or only one result remains in Q. The worst result / POI (i.e., related to RC) is removed from Q.
[0107] All remaining results / POIs are returned.
[0108] Default range and ranking criteria estimation (if not specified) POI categories may capture a user's aggregated conceptual model of how they perceive discovering POIs. Categories implicitly define an attribute schema for POIs within a specific category. They are also strongly associated with ranking criteria. For example, an EV charging station may have matching attributes such as connector type and voltage, as well as rank-influencing attributes such as pricing and power level. A restaurant may have matching attributes such as cuisine and average serving time, as well as rank-influencing attributes such as pricing and rating / popularity.
[0109] Therefore, inferring categories from user queries using lexical means (approximate name / synonym matching) and semantic means (knowledge graphs, language models, semantic embeddings) can provide rich information regarding default range tolerance and ranking criteria.
[0110] Advantageously, the range-sensitive SAR methods / algorithms described above reveal a range concept that can be specified or inferred by the client / user. Specifying / inferring the range may lead to an adaptive and optimal spread of results / POIs along the route.
[0111] The blocks described in Figure 1 and the various steps and functionalities described above may represent actions in a method, functionalities performed by a device, and / or sections of instructions / code in a computer program.
[0112] It will be understood that each block and combination of blocks described in Figure 1, 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 of the functions described below can be performed by a properly configured device (such as a server or navigation device). One or more of the functions described below can be implemented by a properly configured computer program (such as a computer program including computer program instructions that embody the functions described below, are stored in a memory storage device, and can be executed by a processor).
[0113] As will be understood, any such computer program instruction can be loaded onto a computer or other programmable device (i.e., hardware) to generate a machine that creates means for implementing the function specified in the block when the instruction is executed on the programmable device. These computer program instructions can also be stored on a computer-readable medium that can instruct a programmable device to function in a particular way so that the instruction stored in computer-readable memory generates a product that includes instruction means for implementing the function specified in the block. Computer program instructions can also be loaded onto a programmable device so that a set of operational actions are executed on the programmable device to generate a process that is computer-executed so that the instruction executed on the programmable device provides actions for implementing the function specified in the block.
[0114] Many of the examples in this disclosure, though not all, may take the form of methods, apparatus, or computer programs. Therefore, many of the examples, though not all, may be implemented in hardware, software, or a combination of hardware and software.
[0115] While not all, various examples in this disclosure are described using flowcharts and schematic block diagrams. It will be understood that each block (and combination 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 so as to create means for instructions executed by them to perform functions identified within one or more blocks, i.e., so as to how a method can be computer-implemented. Computer program instructions can be executed by (one or more) processors so as to create a set of operational blocks / steps / actions executed by (one or more) processors to generate a computer-implemented process, such that instructions executed by (one or more) processors provide blocks / steps for implementing functions identified within one or more blocks.
[0116] Therefore, a block supports a combination of means for performing a specified function, a combination of actions for performing a specified function, and computer program instructions / algorithms for performing a specified function. It will also be understood that each block, and combinations of blocks, can be implemented by a dedicated hardware-based system for performing the specified function or action, or by a combination of dedicated hardware and computer program instructions.
[0117] While not necessarily all, various examples in this disclosure provide both methods and corresponding devices, including various modules, means, or circuits, that provide functionality for performing / applying the actions of such methods. 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 in this disclosure may be provided as computer program products including computer-readable storage structures that embody computer program instructions (i.e., software or firmware) for execution by a computer processor.
[0118] Figure 6 schematically illustrates a block diagram of Apparatus 1 for performing the methods, processes, and procedures described in this disclosure (in particular, as described in Figure 1). In this regard, the Apparatus may, in particular, be a server or a navigation device. The component blocks in Figure 6 are functional, and the functions described may be performed by a single physical entity.
[0119] The apparatus includes a controller 7 which may be provided within a device such as a server or navigation device.
[0120] Controller 6 can be embodied, in particular, by computing devices as described above. In some, though not all, examples, the device can be embodied as a chip, chipset, circuit, or module, i.e., for use in any of the aforementioned ways. As used in this text, “module” refers to a unit or device excluding certain parts / components that may be added by the end manufacturer or user.
[0121] The controller 6 may be implemented as a controller circuit. The controller 6 may be implemented as hardware alone, may have certain aspects in software including firmware, or may be a combination of hardware and software (including firmware).
[0122] The controller 6 can be implemented by using instructions that enable hardware functionality, for example, by using executable instructions for a computer program 4 in a general-purpose or dedicated processor 2, which is stored in a computer-readable storage medium 3, such as memory or a disk, and can be executed by such a processor 2.
[0123] 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 (in particular, for example, one or more of the following: data communication interfaces, input / output user interface elements, and / or other modules / devices / components for inputting and outputting data / commands).
[0124] Memory 3 stores instructions such as computer program 4, 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 procedures described in this disclosure (such as those described in Figure 1 and above). Processor 2 can load and execute computer program 4 by reading memory 3.
[0125] Instructions may include computer programs, non-temporary computer-readable media, computer program products, and machine-readable media. As used in this text, the term “non-temporary” refers to the limitations of the medium itself (i.e., tangible rather than signal-based), as opposed to the limitations of data storage persistence (e.g., RAM vs. ROM). In some, though not all, computer program instructions may be distributed across two or more computer programs.
[0126] Although memory 3 is described as a single component / circuit, it can be implemented as one or more separate components / circuits, some or all of which can be integrated / removed, and / or can provide persistent / semi-persistent / dynamic / cached storage.
[0127] Although Processor 2 is described as a single component / circuit, it can be implemented as one or more separate components / circuits, some or all of which can be integrated / removed. Processor 2 can be a single-core or multi-core processor.
[0128] The apparatus may include one or more components for implementing the methods, processes, and procedures described in this disclosure (not only those described in Figure 1 but also those described above). The functions of these components are intended to be performed by combining one or more components or by other components having equivalent functionality. Descriptions of functions should be additionally deemed to disclose any means suitable for performing such functions.
[0129] Where a structural feature is described, it may be replaced by means for performing one or more of the functions of the structural feature, whether those functions are explicitly or implicitly described.
[0130] While examples of devices have been described above in relation to the inclusion of various components, it should be understood that components can be embodied as one or more processing elements of the device or as corresponding controllers or circuits such as processors, or can be controlled in other ways. In this regard, each of the components described above may be one or more of any devices, means, or circuits embodied in hardware, software, or a combination of hardware and software, configured to perform the corresponding function of the individual components described above.
[0131] The device may be, for example, a server device, a client device, a mobile cellular phone, an in-vehicle integrated device, a wireless communication device, or a handheld electronic device. The device may be embodied, in particular, by computing devices as described above. However, in some examples, the device may be embodied as a chip, chipset, circuit, or module, i.e., for use in any of the aforementioned ways.
[0132] In some cases, the device, At least one processor 12, When executed by at least one processor 12, the device, Determine the first set of points of interest (POIs) along the route that satisfy one or more first criteria, Dividing the route into multiple segments, Associating one or more POIs in the first set of POIs with one of the multiple segments of the route, The method involves ranking one or more POIs in a first set of POIs, wherein the ranking is at least partially based on one or more second criteria. For each segment, select the POI with the highest rank in the threshold number associated with the individual segment, The system includes at least one memory 13 that stores instructions for generating a second set of POIs based at least partially on the selected POIs.
[0133] Figure 7 illustrates a computer program 4 that may be transported via a delivery mechanism 7. The delivery mechanism 7 may be any suitable delivery mechanism, such as a machine-readable medium, a computer-readable medium, a non-temporary computer-readable storage medium, a computer program product, a memory device, a solid-state memory, a recording medium such as a compact disk read-only memory (CD-ROM) or a digital versatile disk (DVD), or a manufactured product comprising or tangibly embodying the computer program 4. The delivery mechanism may be a signal configured to reliably transfer the computer program. The device may receive, propagate, or transmit the computer program as a computer data signal.
[0134] In the specific examples of this disclosure, when performed by the device, the device Determine the first set of points of interest (POIs) along the route that satisfy one or more first criteria, Dividing the route into multiple segments, Associating one or more POIs in the first set of POIs with one of the multiple segments of the route, The method involves ranking one or more POIs in a first set of POIs, wherein the ranking is at least partially based on one or more second criteria. For each segment, select the POI with the highest rank in the threshold number associated with the individual segment, A computer program is provided which includes instructions to generate a second set of POIs based at least partially on the selected POIs.
[0135] References to "computer programs," "computer-readable storage media," "computer program products," "tangible computer programs," etc., or to "controllers," "computers," "processors," 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 specialized circuits such as field-programmable gate arrays (FPGAs), application-specific circuits (ASICs), signal processing devices, and other devices. References to computer programs, instructions, code, etc., should be understood to include software for programmable processors or firmware, such as instructions for processors, or programmable content for hardware devices such as configuration settings for fixed-function devices, gate arrays, or programmable logic devices.
[0136] While certain terms are used in this book, they are used in a general and descriptive sense, not as a limiting definition.
[0137] The characteristics described above may be used in combinations other than those explicitly stated.
[0138] While functions have been described by referring to specific features, those functions may be executable by other features, regardless of whether they are described or not.
[0139] While features have been described by referring to specific examples, those features may also be demonstrable by other examples, whether described or not. Therefore, features described in relation to one example / aspect of this disclosure may include, to the extent that they do not contradict each other, any or all of the features described in relation to another example / aspect of this disclosure, and vice versa.
[0140] While various examples of this disclosure have been described in the preceding paragraphs, it should be understood that modifications may be made to these examples without departing from the scope described in the claims.
[0141] The term “comprise” is used in this document in an inclusive, not exclusive, sense. That is, a reference to X containing Y indicates that X may contain only one Y or may contain two or more Ys. If “comprise” is intended to be used in an exclusive sense, it will be clarified in the context by referring to it as “containing only one…” or by using “consisting of.”
[0142] When used in this book, "decide / decide" (and its grammatical variations) may include, among other things, calculating, operating, processing, deriving, measuring, investigating, identifying, looking up (e.g., looking up a table, database, or other data structure), and confirming. Also, "decide" may include receiving (e.g., receiving information), searching / accessing (e.g., searching / accessing data in memory), and obtaining. Furthermore, "decide / decide" may include resolving, selecting, choosing, establishing, and inferring.
[0143] When used in this book, a description of an action should also be deemed to disclose that it enables, and / or causes, and / or controls, such action. For example, a description of transmitting information should also be deemed to disclose that it enables, and / or causes, and / or controls, the transmission of information. Similarly, for example, a description of a device for transmitting information should also be deemed to disclose at least one means or controller of a device that enables, and / or causes, and / or controls, the transmission of information.
[0144] As used in this description and in the claims, the term “means” may refer to one or more individual elements configured to perform one or more corresponding described functionalities, or to several elements that perform one or more such functionalities. Furthermore, some of the functionalities described in the claims may be performed by the same individual means or the same combination of means. For example, the performance of one or more such functionalities may be caused in the device by a processor that executes instructions stored in the device’s memory.
[0145] References to parameters or attributes, or to the values of parameters or attributes, should be understood to refer to the “data that indicates,” “data that defines,” or “data that represents” the relevant parameter / parameter value, unless explicitly stated otherwise (unless the context requires otherwise). The data may be any method that indicates the relevant parameter / attribute and / or its value, and may indicate it directly or indirectly.
[0146] This document has referenced various examples. Descriptions of features or functions related to an example indicate that those features or functions are present in that example. The use of the terms “example,” “for example,” “can,” or “may,” whether explicitly stated or not, indicates that such features or functions are present in at least the example given, regardless of whether they are given as an example, and that they may, but are not necessarily, be present in some or all other examples. Thus, “example,” “for example,” “can,” or “may,” refers to a specific instance in the example class. Properties of an instance can be properties of that instance only, properties of the class, or properties of a subclass of the class that includes some, but not all, instances within the class.
[0147] In this text, references to “a / an / the” [features, elements, components, means…] are used in a non-exclusive, inclusive sense and should be interpreted as “at least one” [features, elements, components, means…] unless explicitly indicated otherwise. That is, any reference to X containing Y indicates that X may contain only one Y or two or more Ys, unless the context clearly indicates the opposite. If “a” or “the” is intended to be used in an exclusive sense, it will be made clear in the context. In some situations, the use of “at least one” or “one or more” may be used to emphasize an inclusive meaning, and the absence of these terms should not be interpreted as inferring any exclusive meaning. When used in this text, “at least one of the following, i.e., <list of two or more elements>” and “at least one of <list of two or more elements>” and similar phrasing mean at least one of the elements, at least two or more of the elements, or at least all of the elements, regardless of whether the list of two or more elements is joined by “and” or “or.”
[0148] The presence of a feature (or combination of features) in a claim is a reference to the feature (or combination of features) itself, and also a reference to features that achieve substantially the same technical effect (equivalent features). Equivalent features include, for example, variations of features that achieve substantially the same result in substantially the same way. Equivalent features include, for example, features that perform substantially the same function in substantially the same way to achieve substantially the same result.
[0149] In this description, references have been made to various examples in which adjectives or adjective phrases are used to describe the characteristics of the examples. Such descriptions of characteristics related to the examples indicate that the characteristics exist exactly as described in some examples, and substantially as described in others.
[0150] In the foregoing, the described devices may, alternatively or additionally, include, in some other examples, devices that include a distributed system of devices, e.g., a client / server device system. In examples where the provided devices form a distributed system (or the method is implemented as a distributed system), each device that forms a component and / or part of the system provides (or implements) one or more features that collectively implement the examples of the disclosure. In some examples, the devices are reconfigured by an entity other than the original manufacturer to implement the examples of the disclosure by providing additional software that, when executed, causes the devices to implement the examples of the disclosure, for example, by a user downloading such software (such implementation may be entirely by the devices or as part of the system of the devices described above).
[0151] While the above descriptions illustrate some examples of the present disclosure, those skilled in the art will notice alternative structural and method features that provide equivalent functionality to the specific examples of such structures and features described herein and have been omitted for brevity and clarity. Nevertheless, the above descriptions should be read as implicitly including references to such alternative structural or method features that provide equivalent functionality, unless such alternative structural or method features are explicitly excluded in the above descriptions of the examples of the present disclosure.
[0152] While efforts have been made in the foregoing specification to draw attention to the examples of features of this disclosure that are considered particularly important, it should be understood that the applicant may claim protection for any patentable features or combinations of features described herein and / or shown in the drawings, whether or not specific emphasis is made.
[0153] The examples and accompanying claims of this disclosure may be appropriately combined in any manner that is apparent to those skilled in the art. Separate references to “examples,” “in some examples,” and / or similar terms within this description do not necessarily refer to the same examples and are not mutually exclusive except as is readily apparent to those skilled in the art unless otherwise stated. For example, a feature, structure, process, block, step, action, or similar described in one example may, but may not, be included in another example.
[0154] Each and all claims are incorporated herein as further disclosures, and the claims are embodiments of the present disclosure. Furthermore, although the claims herein are provided as including certain dependencies, any claim may be dependent on any other claim, and any such alternative embodiments and their equivalents are also within the scope of the present disclosure to the extent that any alternative embodiments may arise from combining, integrating, and / or omitting features of various claims and / or altering the dependencies of the claims.
Claims
1. A computer-implemented method for determining points of interest (POIs) along a route, wherein the method is: Determine the first set of POIs along the route that satisfy one or more of the first criteria, The aforementioned route is divided into multiple segments, Associating one or more POIs in the first set of POIs with one of the multiple segments of the route, Ranking one or more POIs in the first set of POIs, wherein the ranking is at least partially based on one or more second criteria. For each segment, select the POI with the highest rank in the number of thresholds associated with the individual segment, A method comprising generating a second set of POIs based at least partially on the selected POIs.
2. The method according to claim 1, wherein determining the first set of POIs along the route that satisfy one or more first criteria is: A method comprising identifying a POI located within a threshold distance from the route that satisfies one or more of the first criteria.
3. A method according to claim 1 or 2, wherein determining the first set of POIs along the route that satisfy one or more first criteria is: A method comprising entering the one or more first criteria as a search query input into a route-based search (SAR) service in order to identify a POI along the route that satisfies the one or more first criteria.
4. A method according to any one of claims 1 to 3, wherein at least one of the one or more first criteria is Based at least partially on user input, Based at least partially on the context, A method that is at least one of those predetermined.
5. A method according to any one of claims 1 to 4, wherein at least one of the one or more first criteria is POI category and, A method which is at least one of the POI attributes.
6. A method according to any one of claims 1 to 5, wherein each segment has a segment length, and the length of the segment is It has been decided in advance. It is roughly uniform. User-defined, Based at least partially on user input, Based at least partially on the determined context, A method that is at least one of the above, which is at least partially based on one or more of the first criteria.
7. A method according to any one of claims 1 to 6, wherein each segment has a segment length, and the length of the segment is at least partially based on a range parameter, the range parameter is The target threshold distance between POIs in the second set of POIs, The maximum range of the vehicle, A method that shows at least one of the following: a target threshold estimated travel time for traversing between POIs in the second set of POIs.
8. A method according to any one of claims 1 to 7, One or more POIs of the first set of POIs, and / or A method further comprising determining additional information concerning a subset of the first set of POIs.
9. A method according to any one of claims 1 to 8, wherein at least one of the one or more second criteria is One or more criteria that must be satisfied by the POIs of the second set of POIs, User-specified, Based at least partially on user input, Based at least partially on the determined context, Based at least partially on the user's predetermined preferences, Based at least partially on the user's history, A method that is at least one of those predetermined.
10. A method according to any one of claims 1 to 9, wherein the ranking of POI is The distance from the point of the segment associated with the individual POI to the POI, An estimate of the time it takes to move from a point in a segment associated with the individual POI to the POI, A method that is at least partially based on at least one of the following: a detour cost for the POI, which represents the estimated cost of traversing a second route from a point of a segment associated with the individual POI to the individual POI.
11. A method according to any one of claims 1 to 10, further comprising reducing the total number of POIs in the second set of POIs, wherein reducing the total number of POIs is The POI associated with the segment with the most POIs, A method comprising repeatedly removing POIs from the second set of POIs, at least in part, based on the ranking of the POIs.
12. A method according to any one of claims 1 to 11, wherein one or more POIs are repeatedly removed from the first or second set until the total number of POIs in the first or second set satisfies a threshold number of POIs.
13. A method according to any one of claims 1 to 12, Rendering at least a portion of the second set of POIs and optionally at least a portion of the route onto a digital map, The calculation of the square root involves using at least a portion of the second set of POIs, Modifying the route to include one or more intermediate waypoints, wherein each intermediate waypoint includes one or more POIs of the second set of POIs. A method further comprising: modifying the route such that, for at least one 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 described in any one of claims 1 to 13.
15. A computer program comprising instructions, optionally embodied in a computer-readable medium, wherein, when the program is executed by a computer, the instructions cause the computer to perform the method according to any one of claims 1 to 13.