This application relates to monitored navigation and more specifically to utilizing predetermined information to create navigation routes and to provide options to user devices during a navigation session.
There are numerous applications and devices which may be used to offer navigation assistance to users operating transport vehicles. Those devices are quite similar in that the destination is identified and the route is planned to assist the user with ensuring they maintain their route on the fastest and most available roads by avoiding traffic, smaller less common roads, etc. Some of the applications even offer updated traffic information and assistance with locating gas stations, restaurants, etc.
However, the limits on navigation tools are evident in that the goal is always to stay on course and not deviate during a navigation session. In reality, users are often traveling with the intent to enjoy the time spent on the road as the traveling is usually flexible and may even be related to a personal vacation. Therefore, by inferring various user characteristics, the navigation application can offer additional resources other than direct route navigation options.
One example embodiment may provide a method that includes receiving at least one destination, determining a navigation route for a transport to navigate from a point of origin to the at least one destination, applying at least one user characteristic to the navigation route, determining an alternative navigation route with at least one intermediate destination based on the at least one user characteristic and the at least one destination, and providing the alternative navigation route to a user device.
Another example embodiment may include an apparatus that includes a receiver configured to receive at least one destination, a processor configured to determine a navigation route for a transport to navigate from a point of origin to the at least one destination, apply at least one user characteristic to the navigation route, determine an alternative navigation route with at least one intermediate destination based on the at least one user characteristic and the at least one destination, and provide the alternative navigation route to a user device.
Another example embodiment may include a non-transitory computer readable storage medium configured to store instructions that when executed causes the processor to perform receiving at least one destination, determining a navigation route for a transport to navigate from a point of origin to the at least one destination, applying at least one user characteristic to the navigation route, determining an alternative navigation route with at least one intermediate destination based on the at least one user characteristic and the at least one destination, and providing the alternative navigation route to a user device.
Another example embodiment may include a method that includes receiving at least one destination and creating a navigation route from a current location to the at least one final destination, retrieving a plurality of user characteristics and a plurality of user preferences from at least one of a local memory of a user device and a remote memory of a remote device, modifying the navigation route to include at least one intermediate route based on at least one of the plurality of user characteristics and at least one of the plurality of user preferences, and transmitting a notification to a user device comprising at least one suggestion for an intermediate route.
Another example embodiment may include an apparatus that includes a receiver configured to receive at least one destination and creating a navigation route from a current location to the at least one final destination, a processor configured to retrieve a plurality of user characteristics and a plurality of user preferences from at least one of a local memory of a user device and a remote memory of a remote device, modify the navigation route to include at least one intermediate route based on at least one of the plurality of user characteristics and at least one of the plurality of user preferences, and a transmitter configured to transmit a notification to a user device comprising at least one suggestion for an intermediate route.
Yet still another example embodiment may include a non-transitory computer readable storage medium configured to store instructions that when executed causes a processor to perform receiving at least one destination and creating a navigation route from a current location to the at least one final destination, retrieving a plurality of user characteristics and a plurality of user preferences from at least one of a local memory of a user device and a remote memory of a remote device, modifying the navigation route to include at least one intermediate route based on at least one of the plurality of user characteristics and at least one of the plurality of user preferences, and transmitting a notification to a user device comprising at least one suggestion for an intermediate route.
It will be readily understood that the components of the present application, as generally described and illustrated in the figures herein, may be arranged and designed in a wide variety of different configurations. Thus, the following detailed description of the embodiments of a method, apparatus, and system, as represented in the attached figures, is not intended to limit the scope of the application as claimed, but is merely representative of selected embodiments of the application.
The features, structures, or characteristics of the application described throughout this specification may be combined in any suitable manner in one or more embodiments. For example, the usage of the phrases “example embodiments”, “some embodiments”, or other similar language, throughout this specification refers to the fact that a particular feature, structure, or characteristic described in connection with the embodiment may be included in at least one embodiment of the present application. Thus, appearances of the phrases “example embodiments”, “in some embodiments”, “in other embodiments”, or other similar language, throughout this specification do not necessarily all refer to the same group of embodiments, and the described features, structures, or characteristics may be combined in any suitable manner in one or more embodiments.
In addition, while the term “message” has been used in the description of embodiments of the present application, the application may be applied to many types of network data, such as, packet, frame, datagram, etc. For purposes of this application, the term “message” also includes packet, frame, datagram, and any equivalents thereof. Furthermore, while certain types of messages and signaling are depicted in exemplary embodiments of the application, the application is not limited to a certain type of message, and the application is not limited to a certain type of signaling.
Example embodiments provide applications for navigation along a particular travel route, and more specifically determining intermediate destinations on the route to a final destination based on various characteristics of one or more users in a transport, such as a moving vehicle or other moving device configuration capable of offering a traveling service.
The characteristics of the user may include one or more of acquaintances of the user as determined by the user's communication with others (i.e. emails, chatting, etc.), interests as determined by examining the user's group membership(s), search history, purchase history, locations/stores visited, advertisements interacted with, and/or social network affiliations, etc. Also, user desires as determined by search history, items purchased, advertisements interacted with by a user profile, communication with others, etc., may be identified and used as data input parameters to offer a user options during a navigation session. Also, other characteristics of the user may be obtained via searching through the user's locally and remotely stored data.
The characteristics of the user may be determined by the application/program/software of the current application through analysis of local and remote systems. In another example of the current application, determinations are made via a processing entity to examine items that may be of interest to a user profile based on certain criteria. Example criterion may be the lowest price, for example, of gasoline along a particular route. An ‘item’ may be a non-final destination along a route in a transport and the non-final destination may be a business location on the route or near the route as part of an alternative route which offers fuel, a tourist attraction, a store, or any other similar location that is deemed potentially desirable to one or more of the users affiliated with the current route.
The application, such as in the form of software, for example, may reside on the device 12 that may be any of the above example devices or a mobile laptop device and/or a personal desktop computer or a mobile phone device or any other device containing a processor and memory. The device may be connected to the network 120, which may be the Internet or any other type of network. The device 12 may communicate with the network 120 and/or a transport 14 and the transport contains an internal device, such as a navigational system, with a processor and memory, which may be used to provide navigation via an interface, which may be visual and/or audio in nature. The application executing on or within the transport 14 is henceforth referred to as the second application. The device 12 alternately may also operate within the transport 14.
The transport 14 may be a car, bus, train, motorcycle, airplane or any other type of moveable object normally used to transport human beings and/or objects. For example, the transport may be utilized to move people, objects such as goods or packages, or people and objects. The communication between the device 12 and remote elements (the network 120 and/or the transport 14) may be wired and/or wireless and occur through many types of communication protocols such as cellular, Bluetooth, Wi-Fi, or any other types of communication protocol permitting communication between computing devices at a short and/or long distance. The current application residing on the device 12, in the form of software, for example, or for use by the device 12 may be downloaded from the remote server 16 through the network 120.
The user of the application may interface with the device 12 and/or the transport 14 and connect through the network 120 to the remote server 16, which may be redundant, or be more than a single entity without deviating from the scope of the application. A database 18 may directly or indirectly connect to the remote server or connect remotely through the network 120 without deviating from the scope of the application.
The software application of the instant application (not shown) resides completely or partially on the device 12, which may be a mobile device and/or completely or partially on the transport 14, but may also reside on a user's desktop computer, a personal digital assistant (PDA), tablet computer, or any other device containing a processor, memory, and an operating system. In addition, the application may reside on either completely or partially on any one of the other elements in the system depicted in
In one example embodiment, the current application seeks to alter navigation of a user traveling along a route via a transport 14. A device 12 is utilized in the current application and the current application may be executing on the device. The device 12 may be carried by the user, such as a mobile device that the user may be carrying, or the device may be part of the transport 14 such that the device may display notifications to the user through audio, images, video, etc.
The device may determine intermediate destinations which are displayed on the user device interface through notifications from the device whether the device is a mobile device or a device that may be on the transport 14. The current application utilizes user profile characteristics compiled and stored in a user profile when determining aspects of the functionality. As a result, the functionality surrounding the determination of the user's characteristics may include various logging and storing operations necessary to compile a user profile which can provide information necessary to enact a suggested set of options during an active navigation session.
The navigation application includes a configuration module that permits a user to configure particular elements of the application. This configuration module permits the user to specify actions taken by the application and also permits the user to specify certain actions. The configuration module also permits particular elements in the application to be configured by the user. The configuration module may be software residing in the client device 12, the navigation application 14, or any other element in the network architecture containing a processor and memory.
The configuration module can be implemented with programmable components in the current application. Menu components can be utilized permitting for the configurable elements to be selected by the user. The configuration of the properties can be implemented by different menu components, such as a dropdown, text, textbox, checkbox, radio button, buttons, etc. For example, one element of the configuration module may permit the user to specify preferences as to whether or not highway or other pay tolls are acceptable on the route to the final destination. Another element may permit the user to specify the types of roads that are preferred on the route to the final destination. Yet another might permit the user to specify other user preferences, such as whether or not the user wishes to travel through or avoid smaller towns on the route to the final destination. Yet another option might permit the user to specify the minimal average speed limit on the route to the final destination.
Other configuration elements may be present permitting the user to specify an action or default action or configure elements of the software without deviating from the scope of the current application. A characteristic of the user may be defined as an interest of the user, an amount of time the user can spend at each intermediate destination, the final destination of the navigation session, and/or acquaintances, etc. Characteristics are automatically determined interests which are inferred from user behavior profiles, such as Internet history, social media interests, etc. Preferences are the user specified parameters, such as those submitted during a questionnaire of the application. The characteristics are the application derived details based on other parameters available for examination.
In one example embodiment, the user's data results from the device's 12 local system cookies and temporary Internet files may be weighed against the user's data results. Such data may be returned from the remote server 16. A weighing system is in place to determine the priority of the results by applying weights based on predetermined criteria standards. When obtaining the user's data, the latest data with the most current timestamp may be given a higher/greater/larger (i.e., 2 is higher/greater/larger than 1 or 3 is higher/greater/larger than 2) weight than older data with an older timestamp such as a timestamp that is over a week old.
When results are received from both the local and remote systems, the table 250 can be used to determine the priority of the data, but it may be observed in table 250 that both emails and calendar events contain the same weight for both local and remote systems. If data is received from both systems, the data with the latest timestamp will be utilized in the application. Table 350 of
User preferences are different from user characteristics. The user preferences may be based on certain guidelines the user is willing to operate the navigation application, such as one suggestion per day, hour, etc., no expensive events permitted (i.e., maximum $25.00 per person), no delta time detours in excess of four hours, only family fun events, etc. The examples provided are examples only and are not intended to limit the types of preferences a user may elect. For instance, the numbers and thresholds in the above examples may be modified to accommodate other user preferences of different users or changes to a user's original preferences.
The above calculations in table 700 of
In another example, the cookies and/or temporary Internet files may not contain relevant data due to the ability for the user to erase their history via the browser, or to enable “private browsing”. Private browsing is gaining more popularity amongst browsers and the local system does not independently store cookies or temporary Internet files. If a user has private browsing enabled, the local system will not contain updated cookies or temporary internet files, and thus when querying both the local and remote systems, the remote data will be given a higher weight due to the lack of (or older timestamp) of the local data.
Upon initiation of the current application, the current characteristics of the user can be determined. This may include the querying of the local data at the device 12, and/or the remote data stored at the remote server 16 and/or the database 18. Local data is queried from the local file system of the device 12 and is queried for reference purposes. This may include accessing locally stored data in the actual user device memory 12 through application program interfaces (APIs) in which the particular data is available. Remote data is queried from the remote server 16, which may also query a database 18 if that is the location the data is stored. The querying of the remote data may be routed through the network 120 so the response to the query are also routed through the network.
Once the application is initiated, the current application executing on or accessed by the device 12 may determine the characteristics of the user by sending a query message 202 to the remote server 16. This query message may be routed through the network 120. The remote server 16 processes the query message and initiates the processing of determining the user's characteristics. The database 18 may be queried, as the user's data may be stored remotely from the remote server. As such, a query message 204 is sent to the database. This query message may be a structured query language (SQL) query message, or any other similar type of query message as normally utilized in database access. A response message 206 is sent from the database to the remote server containing the data of the processed query message. The querying 204 and response to the database 206 may be repeated as necessary in processing the query message 202. The remote server sends a response message 208 to the device containing the data of the processed query message 202. This message may be routed through the network.
In either case, the results of the query are returned to the application 1018 where weights are assigned to the results. The local file system (i.e., cookies and temporary internet files) is searched for advertisements that the user has previously selected. The discovered websites are searched for keyword(s) and the results of the query are returned to the application and weights are assigned to the results as shown in
In
In
In
In
In
In
In
In
In
In
In
Users normally utilize navigation applications when traveling. These applications permit for directions as well as other points of interest including nearby restaurants, fueling station businesses, other points of interest, etc. When a user of the current application is traveling, the application interacts with the navigation application to determine intermediate points of interests, or intermediate destinations along the travel path to the ultimate destination. These intermediate destinations are based on the user's current characteristics or interests as determined by the functionality depicted in the above flowcharts. In other examples, the user can enter one or more interests into the application. Once the current application has an understanding of the user's characteristics, it is possible for the application to determine intermediate destinations that the user may not know about. Notifications from the device may alert the user of these intermediate destinations and the user may desire to alter the current destination to the intermediate destination along a route to the final destination.
The current application may interwork with the navigation system through the calling of functions on the navigation system's API where functionality may be obtained. For example, the current application may call functions on the navigation application to obtain the current destination, the current leg of the navigation, the current ending destination of the current leg, etc. As an example, the following list contains attributes that may be used to obtain navigation details where each of the attributes are attributes on a NavigationInfoObject and where the NavigationInfoObject may be an object in the application executing on the current navigation application executing on the device 12 and/or the transport 14.
The current application may query the navigation application, access the data in the NavigationInfoObject, and obtain data. For example, ‘arrived’ indicates if the user arrived at his or her destination, ‘currentDirection’ indicates the current direction of the calculated route and includes information of the routing service, such as street name, turn angle, etc., distanceToDestination indicates the distance to the destination in meters, distanceToNextDirection, indicates the distance to the next turn in meters, ‘finalDirection’ indicates if this is the final direction of the route, ‘navigation’ points to the current ‘ffwdme.Navigation’ instance, ‘nearest’ provides information about the point on the route mapped to the raw geoposition of the client, ‘nextDirection’ is the next direction of the calculated route and includes information of the routing service, like street name, turn angle, etc., ‘position’ is the position of the client mapped to the route, ‘positionRaw’ is the raw geoposition of the client, ratioCompletedDirection is the value between 0.1 and 1.0 that represents the progress on the current direction of the route, ratioCompletedRoute is the value between 0.1 and 1.0 that represents the progress on the current route. ‘Route’ is the current route, timeToDestination is the estimated time to the destination in seconds. TimeToNextDirection is the estimated time to the next direction in seconds.
Using the attributes noted above, it is possible to call “getter” functions on the object to obtain the current values in the object's attribute 606. For example, to obtain the next direction of the current navigation, the following code would return the current value in the “nextDirection” attribute on the NavigationInfoObject: route nextDir navigationInfoObject.getNextDirection(route); The current application executing on or accessed by the device 12 may call the NavigationInfoObject getter functions via APIs on the navigation application executing on the device 12 and/or the transport 14. The code to call the getter functions is stored on the device 12 and/or the cloud/network 120.
Continuing with the same example, the current destination is obtained by the application 308. This is the destination determined by the user. The current application uses the current destination and the data obtained by calculating the user's characteristics to determine intermediate destinations 310 that the user may be interested in visiting. Finally, notifications are sent 312 from the device 300 alerting the user there are possibly interesting intermediate destinations on the current route to the final destination.
In one example of navigation utilizing the present application, the user and user device are traveling in a transport 14. The user is utilizing a navigation application that is either part of the transport or is on the device 12. The user inputs a final destination in the navigation application and begins the trip to the destination by walking, driving, biking, etc., towards the final destination. The current application is executing on the device 12 and the user's characteristics are automatically determined, such as the initial characteristics or an update to the previously determined characteristics. The current application determines that the user has a particular interest, such as an interest in classic cars, or early model cars. This is determined by the search history of the user and/or group memberships belonging to the user. The application can then determine that “classic cars” is a keyword/key phrase from the determination of the user's characteristics.
The current application performs a query to determine if there are any matches of “classic cars” along the user's current route to the initial destination. This query is executed from the operating application on the device 12, where the query may access the local files on the device 12 or the files in the cloud/network 120, which may also query remote data in the remote server 16 and/or a database 18. Through the query, the current application finds that there is a classic car show currently occurring in a city that the user will be traveling through on the current route to the destination. It further determines that the show is 4.5 miles off the current route. The classic car show's location is returned in the data. The current application may determine the delta or difference between the user's current location to the final destination and the user's current location to the final location, also including the classic car show as an intermediate destination.
In one example, the weight of the user's characteristics (UC) reflects a time period. For example, if a UC is a user's hobby, and in this example the hobby is identified as ‘car shows’, and another UC is watching ‘baseball’, then the weight assigned to both UCs may determine an alternative destination. For example, the application may provide a suggestion based on known UCs. With regard to car shows, the application may identify previous searches for “car shows” in a browser corresponding to an Internet search query dated 4 weeks ago. Another example may include an instance of having signed-up for an online antique car show group dated 3.5 weeks ago, and/or an email with a “car show” included in the domain name (i.e., billgoodman@antiquecarshowcalifornia.org), which is dated 4.5 weeks ago. Another UC for baseball could be an instance of having signed-up for an online baseball fan group 8 weeks ago. The baseball UC may also be identified by a browser search history data for baseball 10 weeks ago. The dates of the first UC could be more recent than the dates of the second UC identified by the application. Therefore, the first UC is given more weight.
As another example of UC identification, the weights may be set in the logic of the software of the current application. For example, a higher weighted category may be identified from the user preferences, one such example ‘family’ (both immediate and non-immediate) may be designated to receive the highest weight. In another example of high priority weights, anything associated with the user's work may be designated by the user profile to receive a highest weight (i.e., same technology, same business type/area, same career). Exclamatory words (i.e., ‘wow’, ‘awesome’, ‘super’), which may be associated with a topic, increases the weight up by ‘X’ factor, where ‘X’ is a value that is hardcoded in the logic of the current application (i.e., 2). Alternatively, destinations that require a smaller distance from the original route path to the destination are assigned a greater weight.
In one example, interests may be determined from various sources, and not all received data is subject to determining an alternate destination. For example, a topic may span three different areas (i.e., email, group joined, browser search item, etc.). In another example, a topic may span two different areas. As another example, a group joined represents an interest in a topic, therefore, the group affiliation supersedes all other data For instance, a group joined in the topic of classic movies represents an interest in that topic and activities/events of corresponding to a related alternate destination would be recommended via the route suggestions of the route application. In one example, a topic may be required to be mentioned at least three times to be considered an interest For instance, three posts on a social network site on the topic of “golf clubs”. As another example, an entry in the data surrounding an item or items being purchased does not necessarily determine a topic of interest. For example, when a purchase is made, all of those previous items collected when shopping for that item are removed, and the actual purchase of the item is the only item that remains for reference purposes with regard to user characteristics, third party information sources, and potential route modification data.
To calculate the distance between two locations, the coordinates of each of the two locations are needed, and the device 12 and/or the transport 14 may directly, or via the network 120, call a function, such as the following:
In the example code above, p1 and p2 are the location objects of each of the locations to find the distance between. A call to getDistance( ) with the locations returns the distance in meters. A function like the above getDistance( ) called on both distance 402 and distance 404 returns the driving distances. The delta is then calculated 406 to determine the amount of additional driving needed to go to the intermediate destination, and then onto the final destination.
In another example, the current application calculates the amount of additional driving time necessary to go by the intermediate destination as opposed to going directly to the final destination from the current location. This is calculated either by using an API such as GOOGLE Maps Directions API, or using an average driving speed. If using the GOOGLE API, it is possible to calculate the travel time by calling the following functions via an HTTP request including certain parameters including: ‘origin’—the longitude/latitude coordinates of the originating location, ‘destination’—the longitude/latitude coordinates of the destination location, traffic_model—[best_guess], where best_guess is the best estimate of travel time given historical traffic conditions and live traffic where live traffic becomes more important the closer the departure_time is to the present time. In conclusion, a notification is sent from the device and the text displays the details of the event, and the amount of distance that must be traveled off of the current route. This data is sent in the notification and may be accepted or denied depending on the preferences of the user.
In another example, the current application is part of the navigation system, and the destination of the navigation system may be set. An “Ignore” button 510 permits the current application to dismiss the notification 502 and ignore the notification. An “Ignore All” button 512 permits all functionality that may produce intermediate destination notifications to not be executed. This permits the user to avoid any notifications and travel to the final destination without notifications.
In another example, the user is able to specify conditions so the notifications of intermediate destinations are permissible, for example, certain topics, people, interests, etc. The selection of the conditions is configured via the current application and is not depicted in the present drawings. As an example, the user may be traveling in a transport 14. The user is utilizing a navigation application that is either part of the transport or is on the device 12. The user inputs a destination in the navigation application and begins the trip to the destination. The current application is executing on the device 12 and the user's characteristics are determined, such as the initial characteristics or an update to the previously determined characteristics.
In this example, the current application determines that the user has an acquaintance that is normally communicated with and currently located in a city on the current route. The acquaintance is determined by searching the user's email application data, contacts, instant message data, etc. The determination may be that the acquaintance is someone of interest to the user based on the previous communications.
In another example, the level or degree of the relationship is determined such that the higher/greater the level of relationship, the closer the user is to the acquaintance. For example, a level of 5 would indicate that the user and the acquaintance are very close, where the level of 1 would indicate that the user and the acquaintance are distant contacts with minimum communications. The determination of the level or degree of relationship may be calculated by email interaction in time ‘X’ or chat interaction in time ‘X’.
In one example, the greater the level of interaction with the user (i.e., email or chat/messaging), the greater the level of the relationship assigned. In one example, a notification is sent to the user device if a minimal threshold level of a relationship is reached, for example, above level 3. The determination of the level may be calculated in a determined time period, as indicated as “Time X” in the above table. ‘X’ may be a specific time period, such as minutes, hours, days, etc. and may be static in nature, such as in hardcoding the amount of time in code, or may configurable by the user in the configuration module of the current application, so the user is able to determine the amount of time that the current application attempts to establish levels of any determined acquaintances.
The current application determines the location of each of the acquaintances identified. In another example, the location of only those acquaintances who are at least a minimal level, for example, at least a level 4 are processed. Each of the acquaintances may be users of the current application and each of their GPS coordinates are regularly updated by the system application via a common element in the architecture, such as the remote server 16 and/or the database 18. Messaging between the acquaintance's application 12 and the remote server and/or the database may be routed through the cloud/network 120.
The current application may obtain the current location of the acquaintances via queries to the location data of each of the acquaintances located in the remote server and/or the database so messages are routed through the cloud/network 120. The current location of each of the determined acquaintances is identified, and their locations are compared with the current route to the final destination. This comparison is determined via code that is executed in the current application executing on or accessed by the device 12 and/or the transport 14.
In another example, the delta distance between the current location to the final destination and the distance between the current location to the acquaintance(s) and to the final destination is determined, and if the delta is within a set range, for example, 10, 20, 30 . . . miles, then the notification is sent to the device, therefore notifying the user that an acquaintance is on or near the current route. Also, the determined delta difference in miles and/or time is displayed in the notification thus permitting the user to easily determine the additional distance and/or time to visit the acquaintance and to make a judgment prior to making a determination to modify the route and scheduled navigation plan.
Devices within the system 10 communicate with one another through wired and/or wireless connections such as BLUETOOTH. Furthermore, the devices of the system 10 communicate with the Cloud/Internet 120 through wired or wireless protocols, such as GSM, CDMA, LTE, Wi-Fi, etc.
The example in
A displayed map on the navigation system may show a route on the screen, which is a real-time or near real-time view of the transport along the route. The same map may be displayed on the mobile device and the map can be zoomed-in to display less of the geographical area of the navigation system. The same map yet permits the user to be able to view more details of the map related to a current location. Furthermore, the user's paired watch shows the map that is further zoomed-in and which displays less of a geographical area than is depicted on the mobile device.
In another example, the screen size may provide different functionality, such as a particular element of the original function. For example, if the original and largest screen is a navigational device in a transport, a smartwatch may provide only the data pertaining to the next turn. Therefore, the user may utilize the navigation system for normal navigating and use the smartwatch to obtain data about the next upcoming turn or for a subsequent turn after the next turn. The system 10 processes the entire route to the final destination, for example, via a connection to the navigation system, the mobile device, the smartwatch, etc. The next turn is pushed to the navigation system and this can continue on until the transport arrives at the final destination. Additionally, the turn past the next turn is pushed to another device, such as the smartwatch, etc.
The current application determines the size of the display of a device in communication with the system 10. The function getSize( ) may be used to determine (in pixels) the dimension of a display. Display display=getWindowManager( ).getDefaultDisplay( ) Point size=new Point( ); display.getSize(size); int width=size.x; int height=size.y; z=display.getSize=(size.x)*(size.y).
In another example, devices are noted as primary, secondary, tertiary, etc. A primary device is a device in the system 10 providing a primary action, such as the device that provides the most fundamental function given a particular scenario. As an example, a navigation device may be deemed the primary device in a transport. A mobile device may be deemed a primary device when the user and the mobile device are outside of the transport. Finally, a smartwatch may be deemed the primary device while the user is outside of the transport without the mobile device nearby.
For example, if the user is inside the transport, then the navigation system is set to the primary device. Once the user leaves the transport with a mobile device, as determined by GPS tracking, a break in a BLUETOOTH connection, etc., the primary device becomes the user's mobile device. The movement/location of the user, along with a device's gyroscope, accelerometer, and location based services, may assist in the device determining the current scenario and thus correctly establishing the primary device in each scenario. For example, the gyroscope in a mobile device can determine when the device is operating inside a moving object, such as a transport, or in another moving object such as a person's pocket.
In
A second device is a mobile device 706, which is displaying the details of the same map as 702, yet the information is zoomed-in to a key portion of the map, such as the location of the transport along the route. A third device is a smartwatch 704, which is displaying particular details of the navigation including at least one of the direction of the next turn, the distance until the next turn and other data such as the current speed and amount of time until the arrival at the final destination.
In another embodiment, a device in the system 10 may be set to filter the data, such as a map, in a manner that is different than a previous device. For example, the primary device, or the navigation system, may display the normal map, a mobile device 706 displays a satellite view of the same map, and the smart watch 704 displays a street view of the same map, which may be zoomed-in to further view the portion of the map. The user may also be able to zoom-out, or request different views than those being presented via commands (not shown) on the various displays. Such commands would be received and processed by one or more of the elements in the system 10.
In another example, the paired device with the largest display as determined by: z=display.getSize=(size.x)*(size.y); becomes the primary device. For example, if the system 10 determines a tablet (not shown) is in the transport or is communicating with one or more devices in the transport, the display of the current navigation is defaulted to the tablet, as it has the largest display dimensions. In one embodiment, the default display can be selected by a user to always be a particular display, type of display, etc., or a default display can be temporarily selected by providing a notification to one or more of the elements in the system 10 via an application operating on one of the devices 700.
In one example method of operation, the system may be configured to perform a method which includes receiving at least one destination at the reception module 2810, determining a navigation route for a transport to navigate from a point of origin to the at least one destination via the processing module 2820, applying at least one user characteristic to the navigation route, determining an alternative navigation route with at least one intermediate destination based on the at least one user characteristic and the at least one destination, and providing the alternative navigation route to a user device via the update module 2830. The method may also include determining a delta distance corresponding to the alternative navigation route, and displaying the delta distance on the user device. Also, the method may include weighting a plurality of user characteristic including the at least one user characteristic, and applying the highest weighted user characteristic to the alternative navigation route determination. The method may also include identifying at least one event corresponding to the highest weighted characteristic, and applying the at least one event to the alternative navigation route. The method may also include retrieving a plurality of user characteristics, identifying a plurality of user interests from the plurality of user characteristics, comparing the plurality of user interests to identify a most frequent interest among the plurality of user interests, and applying the most frequent interest as the highest weighted user characteristic. The user characteristics are stored on at least one of the user device and a remote server device. Also, determining the alternative navigation route includes determining a plurality of alternative navigation routes, and creating a plurality of notifications to alert a user interface of the user device with the plurality of alternative navigation routes to a plurality of intermediate destinations, and transmitting the plurality of notifications in an order consistent with a nearest location of a nearest intermediate destination.
Another example method performed by the system 2800 includes a method which provides receiving at least one destination and creating a navigation route from a current location to the at least one final destination, retrieving a plurality of user characteristics and a plurality of user preferences from at least one of a local memory of a user device and a remote memory of a remote device, modifying the navigation route to include at least one intermediate route based on at least one of the plurality of user characteristics and at least one of the plurality of user preferences, and transmitting a notification to a user device comprising at least one suggestion for an intermediate route. The method also includes determining a delta distance including a difference between a first distance, including a distance of a current location and the final location, and a second distance, including a distance from the current location to an intermediate location and to the final location, and displaying the delta distance on the user device. The method may also include weighting a plurality of user characteristic including the at least one user characteristic, applying the highest weighted user characteristic to the alternative navigation route determination, applying at least one user preference to the alternative navigation route determination by filtering the alternative route determination by the at least one user preference, and when the at least one alternative route violates the at least one preference, applying the next highest weighted user characteristic. The method may also include identifying at least one event corresponding to the nest highest weighted user characteristic, and applying the at least one event to the alternative navigation route. The method may further include retrieving a plurality of user characteristics, identifying a plurality of user interests from the plurality of user characteristics, comparing the plurality of user interests to identify a most frequent interest among the plurality of user interests, and applying the most frequent interest as the highest weighted user characteristic. The user characteristics are stored on at least one of the user device and a remote server device. When determining the alternative navigation route the method also performs determining a plurality of alternative navigation routes, and creating a plurality of notifications to alert a user interface of the user device with the plurality of alternative navigation routes to a plurality of intermediate destinations, and transmitting the plurality of notifications in an order consistent with a nearest location of a nearest intermediate destination.
The operations of a method or algorithm described in connection with the embodiments disclosed herein may be embodied directly in hardware, in a computer program executed by a processor, or in a combination of the two. A computer program may be embodied on a computer readable medium, such as a storage medium. For example, a computer program may reside in random access memory (“RAM”), flash memory, read-only memory (“ROM”), erasable programmable read-only memory (“EPROM”), electrically erasable programmable read-only memory (“EEPROM”), registers, hard disk, a removable disk, a compact disk read-only memory (“CD-ROM”), or any other form of storage medium known in the art.
An exemplary storage medium may be coupled to the processor such that the processor may read information from, and write information to, the storage medium. In the alternative, the storage medium may be integral to the processor. The processor and the storage medium may reside in an application specific integrated circuit (“ASIC”). In the alternative, the processor and the storage medium may reside as discrete components. For example,
As illustrated in
Although an exemplary embodiment of the system, method, and computer readable medium of the present application has been illustrated in the accompanied drawings and described in the foregoing detailed description, it will be understood that the application is not limited to the embodiments disclosed, but is capable of numerous rearrangements, modifications, and substitutions without departing from the spirit or scope of the application as set forth and defined by the following claims. For example, the capabilities of the system of
One skilled in the art will appreciate that a “system” could be embodied as a personal computer, a server, a console, a personal digital assistant (PDA), a cell phone, a tablet computing device, a smartphone or any other suitable computing device, or combination of devices. Presenting the above-described functions as being performed by a “system” is not intended to limit the scope of the present application in any way, but is intended to provide one example of many embodiments of the present application. Indeed, methods, systems and apparatuses disclosed herein may be implemented in localized and distributed forms consistent with computing technology.
It should be noted that some of the system features described in this specification have been presented as modules, in order to more particularly emphasize their implementation independence. For example, a module may be implemented as a hardware circuit comprising custom very large scale integration (VLSI) circuits or gate arrays, off-the-shelf semiconductors such as logic chips, transistors, or other discrete components. A module may also be implemented in programmable hardware devices such as field programmable gate arrays, programmable array logic, programmable logic devices, graphics processing units, or the like.
A module may also be at least partially implemented in software for execution by various types of processors. An identified unit of executable code may, for instance, comprise one or more physical or logical blocks of computer instructions that may, for instance, be organized as an object, procedure, or function. Nevertheless, the executables of an identified module need not be physically located together, but may comprise disparate instructions stored in different locations which, when joined logically together, comprise the module and achieve the stated purpose for the module. Further, modules may be stored on a computer-readable medium, which may be, for instance, a hard disk drive, flash device, random access memory (RAM), tape, or any other such medium used to store data.
Indeed, a module of executable code could be a single instruction, or many instructions, and may even be distributed over several different code segments, among different programs, and across several memory devices. Similarly, operational data may be identified and illustrated herein within modules, and may be embodied in any suitable form and organized within any suitable type of data structure. The operational data may be collected as a single data set, or may be distributed over different locations including over different storage devices, and may exist, at least partially, merely as electronic signals on a system or network.
It will be readily understood that the components of the application, as generally described and illustrated in the figures herein, may be arranged and designed in a wide variety of different configurations. Thus, the detailed description of the embodiments is not intended to limit the scope of the application as claimed, but is merely representative of selected embodiments of the application.
One having ordinary skill in the art will readily understand that the application as discussed above may be practiced with steps in a different order, and/or with hardware elements in configurations that are different than those which are disclosed. Therefore, although the application has been described based upon these preferred embodiments, it would be apparent to those of skill in the art that certain modifications, variations, and alternative constructions would be apparent, while remaining within the spirit and scope of the application. In order to determine the metes and bounds of the application, therefore, reference should be made to the appended claims.
While preferred embodiments of the present application have been described, it is to be understood that the embodiments described are illustrative only and the scope of the application is to be defined solely by the appended claims when considered with a full range of equivalents and modifications (e.g., protocols, hardware devices, software platforms etc.) thereto.
This application claims priority to earlier filed provisional patent application No. 62/275,124 entitled “NAVIGATION”, which was filed on Jan. 5, 2016, the entire contents of which are hereby incorporated by reference.
Number | Name | Date | Kind |
---|---|---|---|
8175802 | Forstall et al. | May 2012 | B2 |
8290695 | Hiestermann et al. | Oct 2012 | B2 |
8332402 | Forstall et al. | Dec 2012 | B2 |
8385946 | Forstall et al. | Feb 2013 | B2 |
8457682 | Raab | Jun 2013 | B2 |
8626230 | Raab | Jan 2014 | B2 |
8634873 | Jones | Jan 2014 | B2 |
8743300 | Chang et al. | Jun 2014 | B2 |
8819581 | Nakamura | Aug 2014 | B2 |
8831873 | Tamayama | Sep 2014 | B2 |
8860587 | Nordstrom | Oct 2014 | B2 |
9008888 | Gravino et al. | Apr 2015 | B1 |
9047381 | Ledet | Jun 2015 | B1 |
9082239 | Ricci | Jul 2015 | B2 |
9239245 | Ishikawa et al. | Jan 2016 | B2 |
9313130 | Takenaka et al. | Apr 2016 | B2 |
9501058 | Mariet et al. | Nov 2016 | B1 |
9506770 | Ding et al. | Nov 2016 | B2 |
9568331 | Narang et al. | Feb 2017 | B1 |
9574894 | Karakotsios et al. | Feb 2017 | B1 |
9599484 | Bostick et al. | Mar 2017 | B2 |
9613130 | Ledet | Apr 2017 | B1 |
9697503 | Penilla et al. | Jul 2017 | B1 |
9892606 | Venetianer et al. | Feb 2018 | B2 |
9903721 | Choi et al. | Feb 2018 | B2 |
9965034 | Levesque et al. | May 2018 | B2 |
20020152020 | Seibel | Oct 2002 | A1 |
20020165722 | Luddy | Nov 2002 | A1 |
20030233261 | Kawahara et al. | Dec 2003 | A1 |
20040030670 | Barton | Feb 2004 | A1 |
20050136949 | Barnes, Jr. | Jun 2005 | A1 |
20050234639 | Endo et al. | Oct 2005 | A1 |
20050264639 | Takeyama et al. | Dec 2005 | A1 |
20050273256 | Takahashi | Dec 2005 | A1 |
20060123053 | Scannell, Jr. | Jun 2006 | A1 |
20060129313 | Becker et al. | Jun 2006 | A1 |
20070048084 | Jung et al. | Mar 2007 | A1 |
20070061845 | Barnes, Jr. | Mar 2007 | A1 |
20070073475 | Endo | Mar 2007 | A1 |
20070173266 | Barnes, Jr. | Jul 2007 | A1 |
20070203642 | Arnold-Huyser | Aug 2007 | A1 |
20070272493 | Legez | Nov 2007 | A1 |
20070282526 | Smith | Dec 2007 | A1 |
20070293958 | Stehle | Dec 2007 | A1 |
20080046173 | Lappe et al. | Feb 2008 | A1 |
20080091342 | Assael | Apr 2008 | A1 |
20080167801 | Geelen | Jul 2008 | A1 |
20080293430 | Blom et al. | Nov 2008 | A1 |
20090005965 | Forstall | Jan 2009 | A1 |
20090051570 | Clark et al. | Feb 2009 | A1 |
20090177379 | Jones | Jul 2009 | A1 |
20090177383 | Tertoolen | Jul 2009 | A1 |
20090177386 | Haase | Jul 2009 | A1 |
20090177396 | Thomassen | Jul 2009 | A1 |
20090216600 | Hill | Aug 2009 | A1 |
20090228199 | Bhogal | Sep 2009 | A1 |
20090276154 | Subramanian et al. | Nov 2009 | A1 |
20100094547 | Geelen | Apr 2010 | A1 |
20100125406 | Prehofer | May 2010 | A1 |
20100138246 | Carey et al. | Jun 2010 | A1 |
20100159904 | Colligan | Jun 2010 | A1 |
20100161720 | Colligan | Jun 2010 | A1 |
20100168995 | Van Der Meer | Jul 2010 | A1 |
20100222090 | Barnes, Jr. | Sep 2010 | A1 |
20100256905 | Hilbrandie | Oct 2010 | A1 |
20100281052 | Geelen | Nov 2010 | A1 |
20100317370 | Feng | Dec 2010 | A1 |
20110046878 | Sung et al. | Feb 2011 | A1 |
20110106426 | Tertoolen | May 2011 | A1 |
20110106592 | Stehle | May 2011 | A1 |
20110118927 | Cima | May 2011 | A1 |
20110118977 | Hixson | May 2011 | A1 |
20110125398 | Bos | May 2011 | A1 |
20110125403 | Smith | May 2011 | A1 |
20110137551 | Peri | Jun 2011 | A1 |
20110153629 | Lehmann et al. | Jun 2011 | A1 |
20110164062 | Nakamura | Jul 2011 | A1 |
20110170837 | Barnes, Jr. | Jul 2011 | A1 |
20110178702 | Lassesson | Jul 2011 | A1 |
20110230178 | Jones | Sep 2011 | A1 |
20110270520 | Kronenberg | Nov 2011 | A1 |
20110298614 | Bells | Dec 2011 | A1 |
20120035839 | Stehle | Feb 2012 | A1 |
20120041675 | Juliver et al. | Feb 2012 | A1 |
20120065873 | Van de Velde | Mar 2012 | A1 |
20120086549 | Barnes, Jr. | Apr 2012 | A1 |
20120096490 | Barnes, Jr. | Apr 2012 | A1 |
20120139816 | King | Jun 2012 | A1 |
20120209506 | Tamayama | Aug 2012 | A1 |
20120310530 | Lee | Dec 2012 | A1 |
20130090084 | Cherubini et al. | Apr 2013 | A1 |
20130096966 | Barnes, Jr. | Apr 2013 | A1 |
20130131986 | Van Seggelen | May 2013 | A1 |
20130166208 | Forstall | Jun 2013 | A1 |
20130204526 | Boschker | Aug 2013 | A1 |
20130211719 | Boschker | Aug 2013 | A1 |
20130212509 | Van Seggelen | Aug 2013 | A1 |
20130226449 | Rovik | Aug 2013 | A1 |
20130245944 | Rutten | Sep 2013 | A1 |
20130304367 | Stehle | Nov 2013 | A1 |
20140067488 | James et al. | Mar 2014 | A1 |
20140074392 | Holm et al. | Mar 2014 | A1 |
20140114574 | Tertoolen | Apr 2014 | A1 |
20140129075 | Carleton | May 2014 | A1 |
20140129134 | Geelen | May 2014 | A1 |
20140189888 | Madhok et al. | Jul 2014 | A1 |
20140201034 | Heuser | Jul 2014 | A1 |
20140207957 | Zhang | Jul 2014 | A1 |
20140222330 | Kohlenberg et al. | Aug 2014 | A1 |
20140244159 | Musabji et al. | Aug 2014 | A1 |
20140267035 | Schalk et al. | Sep 2014 | A1 |
20140280527 | Chatterjee | Sep 2014 | A1 |
20140303949 | Boneti et al. | Oct 2014 | A1 |
20140306817 | Ricci | Oct 2014 | A1 |
20140309849 | Ricci | Oct 2014 | A1 |
20140310075 | Ricci | Oct 2014 | A1 |
20140310594 | Ricci | Oct 2014 | A1 |
20140365114 | Os et al. | Dec 2014 | A1 |
20150019338 | Sotomayor | Jan 2015 | A1 |
20150030159 | Ozcan | Jan 2015 | A1 |
20150032368 | Geelen | Jan 2015 | A1 |
20150046085 | Gornisiewicz | Feb 2015 | A1 |
20150051822 | Joglekar | Feb 2015 | A1 |
20150142314 | Lemay et al. | May 2015 | A1 |
20150161564 | Sweeney et al. | Jun 2015 | A1 |
20150253144 | Rau | Sep 2015 | A1 |
20150253147 | Gruijters | Sep 2015 | A1 |
20160003637 | Andersen | Jan 2016 | A1 |
20160042303 | Medina et al. | Feb 2016 | A1 |
20160054137 | Wheatman | Feb 2016 | A1 |
20160091335 | Bhatt et al. | Mar 2016 | A1 |
20160097649 | Broadbent | Apr 2016 | A1 |
20160131496 | Beaurepaire et al. | May 2016 | A1 |
20160138928 | Guo et al. | May 2016 | A1 |
20160183024 | Karkkainen et al. | Jun 2016 | A1 |
20160187141 | Kulkarni et al. | Jun 2016 | A1 |
20160209224 | Dickow et al. | Jul 2016 | A1 |
20160223348 | Witte | Aug 2016 | A1 |
20160231126 | Boschker | Aug 2016 | A1 |
20160245663 | van Dok | Aug 2016 | A1 |
20160273930 | Wada et al. | Sep 2016 | A1 |
20160327406 | Oostveen | Nov 2016 | A1 |
20160349067 | Fowe | Dec 2016 | A1 |
20160356615 | Arata et al. | Dec 2016 | A1 |
20170011324 | Truong et al. | Jan 2017 | A1 |
20170030730 | Boschker | Feb 2017 | A1 |
20170038219 | Ziezold | Feb 2017 | A1 |
20170059342 | Rajendran | Mar 2017 | A1 |
20170097243 | Ricci | Apr 2017 | A1 |
20170108935 | Ricci | Apr 2017 | A1 |
20170122756 | Chen et al. | May 2017 | A1 |
20170131712 | Ricci | May 2017 | A1 |
20170138749 | Pan et al. | May 2017 | A1 |
20170169366 | Klein et al. | Jun 2017 | A1 |
20170184409 | Glasgow | Jun 2017 | A1 |
20170232888 | Ricci | Aug 2017 | A1 |
20170249095 | Ricci | Aug 2017 | A1 |
20170268892 | Singh | Sep 2017 | A1 |
20170268898 | Boschker | Sep 2017 | A1 |
20170339237 | Memon | Nov 2017 | A1 |
20170363437 | Baracco | Dec 2017 | A1 |
20180032997 | Gordon | Feb 2018 | A1 |
20180089605 | Poornachandran et al. | Mar 2018 | A1 |
20180112995 | Bortolussi | Apr 2018 | A1 |
20200049526 | Moore | Feb 2020 | A1 |
Number | Date | Country |
---|---|---|
2016007920 | Jan 2016 | WO |
Entry |
---|
Jamal et al., A driver and riders matching approach, 2014 11th Web Information System and Application Conference. |
Marzo et al., “Holographic Acoustic Elements for Manipulation of Levitated Objects”, Nature Communications, vol. 6 No. 8661, Oct. 2015, pp. 1-7. |
Number | Date | Country | |
---|---|---|---|
62275124 | Jan 2016 | US |