Patent Description:
Modern consumer and industrial electronics, especially devices such as cellular phones, smart phones, tablet computers, laptops, vehicle integrated computing and communication systems, vehicle navigation systems, portable digital assistants, and combination devices, are providing increasing levels of functionality to support modern life including communication services. Research and development in the existing technologies can take a myriad of different directions.

Users of connected computing systems (i.e. systems that use connectivity to provide navigation information like maps, Points of Interest (POIs), street names, directions, traffic conditions, speed limits, etc.) often rely on the presentation of a map for guidance on a route, locating destinations, and navigating a maneuver. However, users are often challenged by the usability while traveling to provide the optimal amount of map information.

Thus, a need still remains for a computing system with an auto-zoom mechanism and method to improve the usability. In view of the ever-increasing commercial competitive pressures, along with growing consumer expectations and the diminishing opportunities for meaningful product differentiation in the marketplace, it is increasingly critical that answers be found to these problems. Additionally, the need to improve efficiencies and performance, and meet competitive pressures adds an even greater urgency to the critical necessity for finding answers to these problems.

Solutions to these problems have been long sought but prior developments have not taught or suggested any solutions and, thus, solutions to these problems have long eluded those skilled in the art.

<CIT> discloses a navigator, which receives, through communication with a server, only such map information or locality information as is considered to be necessary, and stores it by overriding with it already used map information and locality information. Received out of map information is composed of a plurality of maps on different scales, and received map information is on a scale corresponding to the type of road currently being traveled. Displaying means displays the map information and the current location in a superimposed form.

<CIT> discloses an in-vehicle navigation apparatus and method displaying a route from a current position of a vehicle to a destination on a map on a display screen. The in-vehicle navigation apparatus and method include accepting an entry of a destination, detecting a current position, storing a plurality of pieces of map information at different scales, and specifying a route from the current position detected to the destination. The apparatus and method include calculating a remaining distance from the current position to the destination or from the current position to a next en-route destination on the route set, storing a correspondence relationship between remaining distances, and scales of the map and extracting a scale corresponding to the remaining distance calculated, extracting map information at the corresponding scale, and displaying the map information on the display screen.

The invention is defined by the method, system and non-transitory computer readable medium defined in the independent claims. The dependent claims relate to preferred embodiments.

An embodiment of the present invention provides a method of operation of a computing system according to claim <NUM>.

An embodiment of the present invention provides a computing system according to claim <NUM>.

An embodiment of the present invention provides a non-transitory computer readable medium including instructions for a computing system according to claim <NUM>.

Certain embodiments of the invention have other steps or elements in addition to or in place of those mentioned above. The steps or elements will become apparent to those skilled in the art from a reading of the following detailed description when taken with reference to the accompanying drawings.

Embodiments provide the computing system can increase the presentation of the map to the user by automatically adjusting the zoom level of the map. The auto-zoom mechanism provides for the display of the map at a zoom level based on the speed limit of the current location of the user to provide a look ahead distance.

Embodiments provide the computing system can detect a change in the speed limit for a road segment based on the current location of the user. The correct detection of the change in the speed limit allows for a transition by the computing system that improves operator awareness.

Embodiments provide the computing system can set a zoom level by determining a road type when the speed limit is unavailable. The setting of a zoom level based on a road type allows the computing system with an auto-zoom mechanism to function even when the speed limit of the current location of the user cannot be determined.

The following embodiments are described in sufficient detail to enable those skilled in the art to make and use the invention. It is to be understood that other embodiments would be evident based on the present disclosure, and that system, process, or mechanical changes may be made without departing from the scope of the invention, as set forth in the appended claims.

In the following description, numerous specific details are given to provide a thorough understanding of the invention. However, it will be apparent that the invention may be practiced without these specific details. In order to avoid obscuring an embodiment of the present invention, some well-known circuits, system configurations, and process steps are not disclosed in detail.

The drawings showing embodiments of the system are semi-diagrammatic, and not to scale and, particularly, some of the dimensions are for the clarity of presentation and are shown exaggerated in the drawing figures. Similarly, although the views in the drawings for ease of description generally show similar orientations, this depiction in the figures is arbitrary for the most part. Generally, the invention can be operated in any orientation.

The embodiments have been numbered first embodiment, second embodiment, etc. as a matter of descriptive convenience and are not intended to have any other significance or provide limitations for an embodiment of the present invention. The terms first, second, etc. can be used throughout as part of element names and are used as a matter of descriptive convenience and are not intended to have any other significance or provide limitations for an embodiment.

The term "vehicle" referred to herein can include cars, self-driving cars, trains, buses, bicycles, boats, motorcycles, carts, airplanes, helicopters, or any other mode of transport, or a combination thereof in an embodiment of the present invention in accordance with the context in which the term is used.

The term "module" or "unit" referred to herein can include software, hardware, or a combination thereof in an embodiment of the present invention in accordance with the context in which the term is used. For example, the software can be machine code, firmware, embedded code, and application software. The software can also include a function, a call to a function, a code block, or a combination thereof. Also for example, the hardware can be circuitry, processor, a special purpose computer, integrated circuit, integrated circuit cores, a pressure sensor, an inertial sensor, a microelectromechanical system (MEMS), passive devices, or a combination thereof. Further, if a module is written in the system claims section below, the modules are deemed to include hardware circuitry for the purposes and the scope of system claims.

The modules in the following description of the embodiments can be coupled to one another as described or as shown. The coupling can be direct or indirect without or with, respectively, intervening items between coupled items. The coupling can be by physical contact or by communication between items.

Referring now to <FIG>, therein is shown a computing system <NUM> with an auto-zoom mechanism in an embodiment of the present invention. The computing system <NUM> includes a first device <NUM>, such as a client or a server, connected to a second device <NUM>, such as a client or server. The first device <NUM> can communicate with the second device <NUM> along a communication path <NUM>, such as a wireless or wired network.

For example, the first device <NUM> can be of any of a variety of devices, such as a smart phone, cellular phone, personal digital assistant, tablet computer, a notebook computer, laptop computer, desktop computer, vehicle embedded navigation system, or vehicle integrated communication system. The first device <NUM> can couple, either directly or indirectly, to the communication path <NUM> to communicate with the second device <NUM> or can be a stand-alone device. The first device <NUM> can be incorporated in a vehicle.

The second device <NUM> can be any of a variety of centralized or decentralized computing devices. For example, the second device <NUM> can be a laptop computer, a multimedia computer, a desktop computer, grid-computing resources, a virtualized computer resource, cloud computing resources, routers, switches, peer-to-peer distributed computing devices, a server, or a combination thereof. The second device <NUM> can be mounted externally or internally to a vehicle, centralized in a single room, distributed across different rooms, distributed across different geographical locations, embedded within a telecommunications network. The second device <NUM> can couple with the communication path <NUM> to communicate with the first device <NUM>.

For illustrative purposes, the computing system <NUM> is shown with the first device <NUM> as a client device, although it is understood that the computing system <NUM> can have the first device <NUM> as a different type of device. For example, the first device <NUM> can be a server. Also for illustrative purposes, the computing system <NUM> is shown with the second device <NUM> as a server, although it is understood that the computing system <NUM> can have the second device <NUM> as a different type of device. For example, the second device <NUM> can be a client device.

For brevity of description in the embodiments discussed below, the first device <NUM> will be described as a client device and the second device <NUM> will be described as a server device. The embodiments of the present invention, however, are not limited to this selection for the type of devices. The selection is an example of an embodiment of the present invention.

Also for illustrative purposes, the computing system <NUM> is shown with the second device <NUM> and the first device <NUM> as end points of the communication path <NUM>, although it is understood that the computing system <NUM> can have a different partition between the first device <NUM>, the second device <NUM>, and the communication path <NUM>. For example, the first device <NUM>, the second device <NUM>, or a combination thereof can also function as part of the communication path <NUM>.

The communication path <NUM> can span and represent a variety of networks and network topologies. For example, the communication path <NUM> can include wireless communication, wired communication, optical communication, ultrasonic communication, or the combination thereof. For example, satellite communication, cellular communication, Bluetooth, Infrared Data Association standard (lrDA), wireless fidelity (WiFi), and worldwide interoperability for microwave access (WiMAX) are examples of wireless communication that can be included in the communication path <NUM>. Cable, Ethernet, digital subscriber line (DSL), fiber optic lines, fiber to the home (FTTH), and plain old telephone service (POTS) are examples of wired communication that can be included in the communication path <NUM>. Further, the communication path <NUM> can traverse a number of network topologies and distances. For example, the communication path <NUM> can include direct connection, personal area network (PAN), local area network (LAN), metropolitan area network (MAN), wide area network (WAN), or a combination thereof.

Referring now to <FIG>, therein is shown an exemplary block diagram of the components of the computing system <NUM>. The computing system <NUM> can include the first device <NUM>, the communication path <NUM>, and the second device <NUM>. The first device <NUM> can send information in a first device transmission <NUM> over the communication path <NUM> to the second device <NUM>. The second device <NUM> can send information in a second device transmission <NUM> over the communication path <NUM> to the first device <NUM>. The first device transmission <NUM> and the second device transmission <NUM> can be sent over one or more communication channels <NUM>. A communication channel <NUM> refers either to a physical transmission medium such as a wire, or to a logical connection over a multiplexed medium such as a radio channel.

For illustrative purposes, the computing system <NUM> is shown with the first device <NUM> as a client device, although it is understood that the computing system <NUM> can have the first device <NUM> as a different type of device. For example, the first device <NUM> can be a server including a display interface.

Also for illustrative purposes, the computing system <NUM> is shown with the second device <NUM> as a server, although it is understood that the computing system <NUM> can have the second device <NUM> as a different type of device. For example, the second device <NUM> can be a client device.

Further, for illustrative purposes, the computing system <NUM> is shown with interaction between the first device <NUM> and the second device <NUM>, although it is understood that the first device <NUM> can similarly interact with another instance of the first device <NUM>. Similarly, the second device <NUM> can similarly interact with another instance of the second device <NUM>.

For brevity of description in this embodiment of the present invention, the first device <NUM> will be described as a client device and the second device <NUM> will be described as a server device. The embodiment of the present invention is not limited to this selection for the type of devices. The selection is an example of an embodiment of the present invention.

The first device <NUM> can include a first control unit <NUM>, a first storage unit <NUM>, a first communication unit <NUM>, a first user interface <NUM>, and a first location unit <NUM>. The first control unit <NUM> can include a first control interface <NUM>. The first control unit <NUM> can execute a first software <NUM> to provide the intelligence of the computing system <NUM>.

The first control unit <NUM> can be implemented in a number of different ways. For example, the first control unit <NUM> can be a processor, an application specific integrated circuit (ASIC), an embedded processor, a microprocessor, a hardware control logic, a hardware finite state machine (FSM), a digital signal processor (DSP), or a combination thereof. The first control interface <NUM> can be used for communication between the first control unit <NUM> and other functional units in the first device <NUM>. The first control interface <NUM> can also be used for communication that is external to the first device <NUM>.

The first control interface <NUM> can receive information from the other functional units or circuits or from external sources, or can transmit information to the other functional units or circuits or to external destinations. The external sources and the external destinations refer to sources and destinations external to the first device <NUM>.

The first control interface <NUM> can be implemented in different ways and can include different implementations depending on which functional units or circuits or external units or circuits are being interfaced with the first control interface <NUM>. For example, the first control interface <NUM> can be implemented with a pressure sensor, an inertial sensor, a microelectromechanical system (MEMS), optical circuitry, waveguides, wireless circuitry, wireline circuitry, application programming interface, or a combination thereof.

The first storage unit <NUM> can store the first software <NUM>. The first storage unit <NUM> can also store the relevant information, such as data representing incoming images, data representing previously presented images, sound files, or a combination thereof. For illustrative purposes, the first storage unit <NUM> is shown as a single element, although it is understood that the first storage unit <NUM> can be a distribution of storage elements.

Also for illustrative purposes, the computing system <NUM> is shown with the first storage unit <NUM> as a single hierarchy storage system, although it is understood that the computing system <NUM> can have the first storage unit <NUM> in a different configuration. For example, the first storage unit <NUM> can be formed with different storage technologies forming a memory hierarchal system including different levels of caching, main memory, rotating media, or off-line storage.

The first storage unit <NUM> can be a volatile memory, a nonvolatile memory, an internal memory, an external memory, or a combination thereof. For example, the first storage unit <NUM> can be a nonvolatile storage such as non-volatile random access memory (NVRAM), Flash memory, disk storage, or a volatile storage such as static random access memory (SRAM).

The first storage unit <NUM> can include a first storage interface <NUM>. The first storage interface <NUM> can be used for communication between the first storage unit <NUM> and other functional units in the first device <NUM>. The first storage interface <NUM> can also be used for communication that is external to the first device <NUM>.

The first storage interface <NUM> can receive information from the other functional units or circuits or from external sources, or can transmit information to the other functional units or circuits or to external destinations. The external sources and the external destinations refer to sources and destinations external to the first device <NUM>.

The first storage interface <NUM> can include different implementations depending on which functional units or circuits or external units or circuits are being interfaced with the first storage unit <NUM>. The first storage interface <NUM> can be implemented with technologies and techniques similar to the implementation of the first control interface <NUM>.

The first communication unit <NUM> can enable external communication to and from the first device <NUM>. For example, the first communication unit <NUM> can permit the first device <NUM> to communicate with the second device <NUM>, an attachment, such as a peripheral device or a computer desktop, and the communication path <NUM>.

The first communication unit <NUM> can also function as a communication hub allowing the first device <NUM> to function as part of the communication path <NUM> and not be limited to be an end point or terminal unit to the communication path <NUM>. The first communication unit <NUM> can include active and passive components, such as microelectronics or an antenna, for interaction with the communication path <NUM>.

The first communication unit <NUM> can include a first communication interface <NUM>. The first communication interface <NUM> can be used for communication between the first communication unit <NUM> and other functional units or circuits in the first device <NUM>. The first communication interface <NUM> can receive information from the other functional units or circuits or from external sources, or can transmit information to the other functional units or circuits or to external destinations. The external sources and the external destinations refer to sources and destinations external to the first device <NUM>.

The first communication interface <NUM> can include different implementations depending on which functional units or circuits are being interfaced with the first communication unit <NUM>. The first communication interface <NUM> can be implemented with technologies and techniques similar to the implementation of the first control interface <NUM>.

The first communication unit <NUM> can couple with the communication path <NUM> to send information to the second device <NUM> in the first device transmission <NUM>. The second device <NUM> can receive information in a second communication unit <NUM> from the first device transmission <NUM> of the communication path <NUM>.

The first control unit <NUM> can operate the first user interface <NUM> to present information generated by the computing system <NUM>. The first user interface <NUM>, in one embodiment, allows a user of the computing system <NUM> to interface with the first device <NUM>. The first user interface <NUM> can include an input device and an output device. Examples of the input device of the first user interface <NUM> can include a keypad, a touchpad, soft-keys, a keyboard, a microphone, sensors for receiving remote signals, or any combination thereof to provide data and communication inputs. Examples of the output device can include a first display interface <NUM> and a first audio interface <NUM>.

The first control unit <NUM> can operate the first user interface <NUM> to present information generated by the computing system <NUM>. The first control unit <NUM> can also execute the first software <NUM> for the other functions of the computing system <NUM>. The first control unit <NUM> can further execute the first software <NUM> for interaction with the communication path <NUM> via the first communication unit <NUM>.

The first display interface <NUM> can be any graphical user interface such as a display, a projector, a video screen, or any combination thereof. The first audio interface <NUM> can include sensors, speakers, microphones, headphones, subwoofers, surround sound components, transducers, or any combination thereof. The first display interface <NUM> and the first audio interface <NUM> allow a user of the computing system <NUM> to interact with the computing system <NUM>.

The first location unit <NUM> can generate location information, current heading, current acceleration, and current speed of the first device <NUM>, as examples. The first location unit <NUM> can be implemented in many ways. For example, the first location unit <NUM> can function as at least a part of a global positioning system (GPS), and can include components, such as a GPS receiver, an inertial navigation system, a gyroscope, a cellular-tower location system, a pressure location system, or any combination thereof.

The first location unit <NUM> can include a first location interface <NUM>. The first location interface <NUM> can be used for communication between the first location unit <NUM> and other functional units or circuits in the first device <NUM>. The first location interface <NUM> can also be used for communication that is external to the first device <NUM>.

The first location interface <NUM> can include different implementations depending on which functional units or circuits or external units or circuits are being interfaced with the first location unit <NUM>. The first location interface <NUM> can be implemented with technologies and techniques similar to the implementation of the first control interface <NUM>.

The second device <NUM> can be optimized for implementing an embodiment of the present invention in a multiple device embodiment with the first device <NUM>. The second device <NUM> can provide additional or higher performance processing power compared to the first device <NUM>. The second device <NUM> can include a second control unit <NUM>, a second storage unit <NUM>, a second communication unit <NUM>, a second user interface <NUM>, and a second location unit <NUM>.

The second control unit <NUM> can execute a second software <NUM> to provide the intelligence of the second device <NUM> of the computing system <NUM>. The second software <NUM> can also operate independently or in conjunction with the first software <NUM>. The second control unit <NUM> can provide additional performance compared to the first control unit <NUM>.

The second control unit <NUM> can be implemented in a number of different ways. For example, the second control unit <NUM> can be a processor, an application specific integrated circuit (ASIC), an embedded processor, a microprocessor, a hardware control logic, a hardware finite state machine (FSM), a digital signal processor (DSP), or a combination thereof.

The second control unit <NUM> can include a second control interface <NUM>. The second control interface <NUM> can be used for communication between the second control unit <NUM> and other functional units or circuits in the second device <NUM>. The second control interface <NUM> can also be used for communication that is external to the second device <NUM>. The second control interface <NUM> can receive information from the other functional units or circuits or from external sources, or can transmit information to the other functional units or circuits or to external destinations. The external sources and the external destinations refer to sources and destinations external to the second device <NUM>.

The second control interface <NUM> can be implemented in different ways and can include different implementations depending on which functional units or circuits or external units are being interfaced with the second control interface <NUM>. For example, the second control interface <NUM> can be implemented with a pressure sensor, an inertial sensor, a microelectromechanical system (MEMS), optical circuitry, waveguides, wireless circuitry, wireline circuitry, application programming interface, or a combination thereof.

The second storage unit <NUM> can store the second software <NUM>. The second storage unit <NUM> can also store the information such as data representing incoming images, data representing previously presented image, sound files, or a combination thereof. The second storage unit <NUM> can be sized to provide the additional storage capacity to supplement the first storage unit <NUM>.

For illustrative purposes, the second storage unit <NUM> is shown as a single element, although it is understood that the second storage unit <NUM> can be a distribution of storage elements. Also for illustrative purposes, the computing system <NUM> is shown with the second storage unit <NUM> as a single hierarchy storage system, although it is understood that the computing system <NUM> can have the second storage unit <NUM> in a different configuration. For example, the second storage unit <NUM> can be formed with different storage technologies forming a memory hierarchal system including different levels of caching, main memory, rotating media, or off-line storage.

The second storage unit <NUM> can be a volatile memory, a nonvolatile memory, an internal memory, an external memory, or a combination thereof. For example, the second storage unit <NUM> can be a nonvolatile storage such as non-volatile random access memory (NVRAM), Flash memory, disk storage, or a volatile storage such as static random access memory (SRAM).

The second storage unit <NUM> can include a second storage interface <NUM>. The second storage interface <NUM> can be used for communication between the second storage unit <NUM> and other functional units or circuits in the second device <NUM>. The second storage interface <NUM> can also be used for communication that is external to the second device <NUM>.

The second storage interface <NUM> can receive information from the other functional units or circuits or from external sources, or can transmit information to the other functional units or circuits or to external destinations. The external sources and the external destinations refer to sources and destinations external to the second device <NUM>.

The second storage interface <NUM> can include different implementations depending on which functional units or circuits or external units or circuits are being interfaced with the second storage unit <NUM>. The second storage interface <NUM> can be implemented with technologies and techniques similar to the implementation of the second control interface <NUM>.

The second communication unit <NUM> can enable external communication to and from the second device <NUM>. For example, the second communication unit <NUM> can permit the second device <NUM> to communicate with the first device <NUM>, an attachment, such as a peripheral device or a computer desktop, and the communication path <NUM>.

The second communication unit <NUM> can also function as a communication hub allowing the second device <NUM> to function as part of the communication path <NUM> and not be limited to be an end point or terminal unit or circuit to the communication path <NUM>. The second communication unit <NUM> can include active and passive components, such as microelectronics or an antenna, for interaction with the communication path <NUM>.

The second communication unit <NUM> can include a second communication interface <NUM>. The second communication interface <NUM> can be used for communication between the second communication unit <NUM> and other functional units in the second device <NUM>. The second communication interface <NUM> can receive information from the other functional units or circuits or from external sources, or can transmit information to the other functional units or circuits or to external destinations. The external sources and the external destinations refer to sources and destinations external to the second device <NUM>.

The second communication interface <NUM> can include different implementations depending on which functional units or circuits are being interfaced with the second communication unit <NUM>. The second communication interface <NUM> can be implemented with technologies and techniques similar to the implementation of the second control interface <NUM>.

The second communication unit <NUM> can couple with the communication path <NUM> to send information to the first device <NUM> in the second device transmission <NUM>. The first device <NUM> can receive information in the first communication unit <NUM> from the second device transmission <NUM> of the communication path <NUM>.

The second control unit <NUM> can operate the second user interface <NUM> to present information generated by the computing system <NUM>. The second user interface <NUM>, in one embodiment, allows a user (not shown) of the computing system <NUM> to interface with the second device <NUM>. The second user interface <NUM> can include an input device and an output device. Examples of the input device of the second user interface <NUM> can include a keypad, a touchpad, soft-keys, a keyboard, a microphone, sensors for receiving remote signals, or any combination thereof to provide data and communication inputs. Examples of the output device can include a second display interface <NUM> and a second audio interface <NUM>.

The second control unit <NUM> can operate the second user interface <NUM> to present information generated by the computing system <NUM>. The second control unit <NUM> can also execute the second software <NUM> for the other functions of the computing system <NUM>. The second control unit <NUM> can further execute the second software <NUM> for interaction with the communication path <NUM> via the second communication unit <NUM>.

The second display interface <NUM> can be any graphical user interface such as a display, a projector, a video screen, or any combination thereof. The second audio interface <NUM> can include sensors, speakers, microphones, headphones, subwoofers, surround sound components, transducers, or any combination thereof. The second display interface <NUM> and the second audio interface <NUM> allow a user of the computing system <NUM> to interact with the computing system <NUM>.

The second location unit <NUM> can generate location information, current heading, current acceleration, and current speed of the second device <NUM>, as examples. The second location unit <NUM> can be implemented in many ways. For example, the second location unit <NUM> can function as at least a part of a global positioning system (GPS) and can include components, such as a GPS receiver, an inertial navigation system, a cellular-tower location system, or any combination thereof.

The second location unit <NUM> can include a second location interface <NUM>. The second location interface <NUM> can be used for communication between the second location unit <NUM> and other functional units or circuits in the second device <NUM>. The second location interface <NUM> can also be used for communication that is external to the second device <NUM>. The second location interface <NUM> can be implemented with technologies and techniques similar to the implementation of the second control interface <NUM>.

Functionality of the computing system <NUM> can be provided by the first control unit <NUM>, the second control unit <NUM>, or a combination thereof. For illustrative purposes, the second device <NUM> is shown with the partition having the second user interface <NUM>, the second storage unit <NUM>, the second control unit <NUM>, the second location unit <NUM>, and the second communication unit <NUM>, although it is understood that the second device <NUM> can have a different partition. For example, the second software <NUM> can be partitioned differently such that some or all of its function can be in the second control unit <NUM> and the second communication unit <NUM>. Also, the second device <NUM> can include other functional units not shown in <FIG> for clarity.

The first device <NUM> can have a similar or different partition as the second device <NUM>. The functional units or circuits in the first device <NUM> can work individually and independently of the other functional units or circuits. The first device <NUM> can work individually and independently from the second device <NUM> and the communication path <NUM>.

The functional units in the second device <NUM> can work individually and independently of the other functional units or circuits. The second device <NUM> can work individually and independently from the first device <NUM> and the communication path <NUM>.

The functional units or circuits described above can be implemented in hardware. For example, one or more of the functional units or circuits can be implemented using a gate, circuitry, a processor, a computer, integrated circuit, integrated circuit cores, a pressure sensor, an inertial sensor, a microelectromechanical system (MEMS), a passive device, a physical non-transitory memory medium containing instructions for performing the software function, a portion therein, or a combination thereof.

For illustrative purposes, the computing system <NUM> is described by operation of the first device <NUM> and the second device <NUM>. It is understood that the first device <NUM> and the second device <NUM> can operate any of the modules, units, and functions of the computing system <NUM>.

Referring now to <FIG>, therein is shown an exemplary display of the computing system <NUM> of <FIG> with an active map area <NUM> and a current zoom level <NUM>. The active map area <NUM> is the size and proportion of the first display interface <NUM> of <FIG>, the second display interface <NUM> of <FIG>, or a combination thereof that displays a map <NUM>. The computing system <NUM> can obtain the width, height, and aspect ratio of the active map area <NUM> utilizing the first control unit <NUM> of <FIG>, the second control unit <NUM> of <FIG>, or a combination thereof. The computing system <NUM> can also obtain the measurements for the active map area <NUM> from the first display interface <NUM>, the second display interface <NUM>, or a combination thereof.

The map <NUM> is a visual representation of a geographic area. For example, the map <NUM> can be a representation of a state, a city, a town, a neighborhood, or any portion thereof. As a further example, the map <NUM> can represent the roadways in the geographic area. The map <NUM> can be displayed by the first display interface <NUM> of <FIG>, the second display interface <NUM> of <FIG>, or a combination thereof. The map <NUM> can be displayed in relation to a current location <NUM>.

The current location <NUM> is generated by the first location unit <NUM> of <FIG>, the second location unit <NUM> of <FIG>, or a combination thereof. For example, the current location <NUM> provides a location of the first device <NUM> of <FIG> or the second device <NUM> of <FIG>. The current location <NUM> can be generated in a number of ways. For example, the current location <NUM> can be determined by a global positioning system (GPS), cellular triangulation, wireless fidelity (WiFi) triangulation, dead reckoning, or a combination thereof. The computing system <NUM>, the first device <NUM> of <FIG>, the second device <NUM> of <FIG>, or a combination thereof can track the current location <NUM> dynamically and in real time.

The computing system <NUM> tracking the current location <NUM> "dynamically" refers to the receiving, monitoring, or a combination thereof of the current location <NUM> that is non-static or by potentially differing mechanism. The computing system <NUM> tracking the current location <NUM> "real time" refers to the receiving, monitoring, or a combination thereof of the current location <NUM> at the time of reading for the current location <NUM> is taken regardless of the mechanism at some time period. The computing system <NUM> can display the current location <NUM> on the first display interface <NUM>, the second display interface <NUM>, or a combination thereof.

The computing system <NUM> can display the current location <NUM> in a directionality <NUM>. The directionality <NUM> is the orientation towards that for movement. The directionality <NUM> can be determined by calculating the change in the current location <NUM> or based on dead reckoning, such as with an accelerometer or a gyroscope in the first location unit <NUM>, the second location unit <NUM>, or a combination thereof. For example, the directionality <NUM> can be determined based on the change in degrees of latitude, longitude, altitude, or a combination thereof, of the current location <NUM>.

The computing system <NUM> can utilize the current location <NUM> to obtain map information <NUM>. The map information <NUM> refers to a diagram or a collection of data representing an arrangement or distribution of geographic features, physical features, non-physical features, or a combination thereof of the geographic location on a map. For example, the map information <NUM> can include a physical feature such as a path, a road sign, street name, an infrastructure, a geographical feature, a natural topology, points of interest, buildings, bodies of water, or a combination thereof. As a further example, the map information <NUM> can also include a non-physical feature such as a speed limit, a one-way designation, an address, points of interest (POI) or a combination thereof. The aforementioned list is not meant to be limiting.

The computing system <NUM> can request and receive the map information <NUM> using the first communication unit <NUM> of <FIG>, the second communication unit <NUM> of <FIG>, or a combination thereof. The computing system <NUM> can cache the map information <NUM> using the first storage unit <NUM> of <FIG>, the second storage unit <NUM> of <FIG>, an external database, or a combination thereof.

The computing system <NUM> can obtain the map information <NUM> to determine a current road segment <NUM>, a current speed limit <NUM>, a current road type <NUM> or a combination thereof. The current road segment <NUM> is the roadway or a portion of the roadway on which the user is currently travelling. For example, the current road segment <NUM> can be a street, an alleyway, a highway, a freeway, a parkway, an expressway, a toll road, a residential road, or an unpaved path. The aforementioned list is not meant to be limiting. The current road segment <NUM> can be determined based on the current location <NUM>.

The current speed limit <NUM> is the designated maximum legal travel rate for a current road segment <NUM>. For example, the computing system <NUM> can determine the current speed limit <NUM> from the map information <NUM> obtained from the second device <NUM>, an external entity, an external system, or a combination thereof. As a further example, the computing system <NUM> can determine the current speed limit <NUM> utilizing sensors such as a camera, an infrared detector, a radar detector, a light detection and ranging (LIDAR) unit, or a combination thereof.

The current road type <NUM> is the classification of a roadway. The current road type <NUM> can be classified in a number of ways. For example, the current road type <NUM> can be based on a segment speed limit <NUM>, traffic conditions, traffic limiters as traffic lights or stop signs, or designation has highway or expressway or freeway, residential area, or a combination thereof. The segment speed limit <NUM> is the estimated speed limit for the current road segment <NUM> when the current speed limit <NUM> is unavailable or unobtainable. The segment speed limit <NUM> can be determined by a number of factors. For example, the segment speed limit <NUM> can be based on the number of lanes, the number of intersections, the speed limit of roadways nearby, the geographic area, or a combination thereof. The aforementioned list is not meant to be a limiting and closed list but described as examples. The segment speed limit <NUM> can be determined utilizing the map <NUM>, the map information <NUM>, or a combination thereof.

Continuing with the example, the current zoom level <NUM> can be displayed on the first display interface <NUM>, the second display interface <NUM>, or a combination thereof. The current zoom level <NUM> is a view of the map <NUM> based on a look ahead distance <NUM>. The look ahead distance <NUM> is the physical distance between the current location <NUM> and the real world location of the top edge of the map <NUM> displayed the active map area <NUM>. The look ahead distance <NUM> is calculated based on a minimum distance <NUM> and a look ahead distance multiplier <NUM>.

The minimum distance <NUM> is the minimum value for the look ahead distance <NUM> based on a range of speed limits. The minimum distance <NUM> can be predefined. The minimum distance <NUM> can be represented using categorizations. The categorizations can indicate the ranges of speed limits. For example, the categorizations can be a low speed distance <NUM>, a mid speed distance <NUM>, a high speed distance <NUM>, and a max speed distance <NUM>.

The low speed distance <NUM> requires the shortest instance of the minimum distance <NUM>. For example, the low speed distance <NUM> can require the minimum distance <NUM> of <NUM> meters when speed limit is below <NUM>/sec. The mid speed distance <NUM> provides an instance of the minimum distance <NUM> that is longer than the low speed distance <NUM> and shorter than the high speed distance <NUM>. For example, the mid speed distance <NUM> can provide the minimum distance <NUM> of <NUM> meters when the speed limit is at least <NUM>/ sec and below <NUM>/sec.

The high speed distance <NUM> can require an instance of the minimum distance <NUM> that is longer than the mid speed distance <NUM> and shorter than the max speed distance <NUM>. For example, the high speed distance <NUM> can require the minimum distance <NUM> of <NUM> when the speed limit is at least <NUM>/sec and below <NUM>/sec. The max speed distance <NUM> can require an instance of the minimum distance <NUM> that is longer than the higher speed distance <NUM>. For example, the max speed distance <NUM> can require the minimum distance <NUM> of <NUM> when the speed limit is at least <NUM>/sec. The computing system <NUM> can obtain the minimum distance <NUM> from the second device <NUM>, an external entity, an external system, or a combination thereof. The computing system <NUM> can store the minimum distance <NUM> in the first storage interface <NUM>, the second storage interface <NUM>, or a combination thereof.

The look ahead distance multiplier <NUM> is a value of at least <NUM> that is multiplied with the minimum distance <NUM> to obtain the look ahead distance <NUM>. The look ahead distance multiplier <NUM> adjusts the minimum distance <NUM> based on the active map area <NUM>. The look ahead distance multiplier <NUM> can increase when the width-to-height ratio of the active map area <NUM> decreases. For example, the look ahead distance multiplier <NUM> can be <NUM> when the active map area <NUM> of the first display interface <NUM> has a width to height ratio of <NUM>. As a further example, the look ahead distance multiplier <NUM> can be <NUM> when the active map area <NUM> of the second display interface <NUM> has a width to height ratio of <NUM>. The computing system <NUM> can calculate the look ahead distance multiplier <NUM> with the first control unit <NUM>, the second control unit <NUM>, or a combination thereof. The computing system <NUM> can calculate the look ahead distance <NUM> by multiplying the minimum distance <NUM> with the look ahead distance multiplier <NUM> with the first control unit <NUM>, the second control unit <NUM>, or a combination thereof.

The computing system <NUM> can generate a camera view <NUM> based on the look ahead distance <NUM>. The camera view <NUM> is the degree of inclination angle and magnification of the map <NUM> displayed in the active map area <NUM>. The camera view <NUM> can be represented using categorizations. The categorizations can indicate the ranges of the look ahead distance <NUM>. For example, the categorizations can be a low speed view <NUM>, a mid speed view <NUM>, a high speed view <NUM>, and a max speed view <NUM>.

The low speed view <NUM> can represent the camera view <NUM> of the map <NUM> that provides the shortest instance of the look ahead distance <NUM>. For example, the low speed zoom <NUM> can provides the smallest view of the map <NUM> from the point of view directly above the current location <NUM>, also known as an overhead view. The mid speed zoom <NUM> can represent the camera view <NUM> of the map <NUM> that provides an instance of the look ahead distance <NUM> that is longer than the low speed zoom <NUM> and shorter than the high speed zoom <NUM>. For example, the mid speed zoom <NUM> can provide a view of the map <NUM> that is larger than the low speed zoom <NUM> and smaller than the high speed zoom <NUM> from the point of view that is angled at a low degree of inclination, also known as bird's-eye view.

The high speed zoom <NUM> can represent the camera view <NUM> of the map <NUM> that provides an instance of the look ahead distance <NUM> that is longer than the mid speed zoom <NUM> and shorter than the max speed zoom <NUM>. For example, the high speed zoom <NUM> can provide a view of the map <NUM> that is larger than mid speed zoom <NUM> and smaller than the max speed zoom <NUM> from the point of view that is angled at a higher degree of inclination than the mid speed zoom <NUM>. The max speed zoom <NUM> can represents the camera view <NUM> of the map <NUM> that provides an instance of the look ahead distance <NUM> that is longer than the higher speed zoom <NUM>. For example, the max speed zoom <NUM> can provide the largest view of the map <NUM> from the point of view that is angled at the highest degree of inclination.

The computing system <NUM> can generate the camera view <NUM> as the low speed zoom <NUM>, the mid speed zoom <NUM>, the high speed zoom <NUM>, the max speed zoom <NUM> based on the look ahead distance <NUM>. The computing system <NUM> can generate the camera view <NUM> with the first control unit <NUM>, the second control unit <NUM>, or a combination thereof. The computing system <NUM> can generate the camera view <NUM> with the first control unit <NUM>, the second control unit <NUM>, or a combination thereof.

Continuing with the example, the computing system <NUM> can generate the current zoom level <NUM> by generating the camera view <NUM> based on the look ahead distance <NUM> for the current speed limit <NUM>, the current road type <NUM>, or a combination thereof. The computing system <NUM> can generate the current zoom level <NUM> utilizing the camera view <NUM> and the look ahead distance <NUM> with the first control unit <NUM>, the second control unit <NUM>, or a combination thereof.

Referring now to <FIG>, therein is an exemplary display interface of the computing system <NUM> of <FIG> when operating in an active guidance mode <NUM>. The active guidance mode <NUM> refers to a mode of the computing system <NUM> where the computing system <NUM> calculates a route for the user to follow to reach a route destination <NUM>. For example, the active guidance mode <NUM> can provide instructions for guidance of a route for the user or a vehicle to follow. As a specific example, the guidance can include step-by-step instructions to traverse the route.

The route destination <NUM> refers to a geographic location or point of interest that the user wants to navigate to. The route destination <NUM> can include the end point or the termination of the route or the guidance. The route destination <NUM> can also include waypoints or intermediate stops. For example, the route destination <NUM> can be a store, a landmark, an office building or site, a park, an address, a general geographic area, a street, a city or municipality, or a combination thereof. Also for example, a waypoint for the route can represent the route destination <NUM> when the guidance is terminated at that particular instance of the waypoint.

For brevity of description, in this embodiment, reference to the first display interface <NUM> and the first user interface <NUM> of <FIG> is made, however, the descriptions with respect to the first display interface <NUM> and the first user interface <NUM> can be similarly applicable to the second display interface <NUM> and the second user interface <NUM> of <FIG>.

In one embodiment, the first display interface <NUM>, in conjunction with the first user interface <NUM>, can enable a user of the computing system <NUM> to input the route destination <NUM> to enable the active guidance mode <NUM> of the computing system <NUM>. The user can input the route destination <NUM> by using alpha-numeric characters, symbols, voice commands, gestures, or a combination thereof. For example, the user can input the route destination <NUM> by interfacing with the first user interface <NUM>, the second user interface <NUM>, or a combination thereof. As a further example, the user can input the route destination <NUM> by interfacing with the first audio interface <NUM> of <FIG>, the second audio interface <NUM> of <FIG>, or a combination thereof.

Continuing with the example, once the route destination <NUM> is input by the user, the computing system <NUM> can determine a travel route <NUM> for the user to navigate. The travel route <NUM> is the path to navigate from a current location <NUM> to the route destination <NUM>. For example, the travel route <NUM> can be determined based on closest distance to the route destination <NUM>, fastest time of arrival to the route destination <NUM>, avoidance of tolls to the route destination <NUM>, or other constraints.

Continuing with the example, the first display interface <NUM> can display the travel route <NUM> and any additional instances of the travel route <NUM> generated based on the different constraints. For example, the navigation system <NUM> can display the travel route <NUM> based on the shortest distance to the route destination <NUM>. As another example, the computing system <NUM> can display the travel route <NUM> based on a fastest time of arrival to the route destination <NUM>. As a further example, the computing system <NUM> can display the travel route <NUM> based on road constraints, such as avoid toll roads or avoid freeways.

Continuing with the example, the first display interface <NUM> can display the current location <NUM>. The current location <NUM> can represent the starting point that determines the travel route <NUM> to the route destination <NUM>. The current location <NUM> can also represent the present location along the travel route <NUM> to the route destination <NUM>.

Continuing with the example, the computing system <NUM> can provide step-by-step guidance to the user for a maneuver <NUM>. The maneuver <NUM> is a movement or series of movements to continue on the current road segment <NUM> or to travel from the current road segment <NUM> to a further road segment <NUM>. For example, the maneuver <NUM> can be a merger, a turn, a U-turn, a lane change, an exit, an entrance, a roundabout, or a combination thereof. The aforementioned list is not meant to be limiting. The computing system <NUM> can provide visual instructions to the user on the first display interface <NUM>. As a further example, the computing system <NUM> can provide audible instructions to the user through the first audio interface <NUM>, the second audio interface <NUM>, or a combination thereof. The computing system <NUM> can determine the maneuver <NUM> from the map <NUM>, the map information <NUM>, or a combination thereof obtained from the second device <NUM>, an external entity, an external system, or a combination thereof. As a further example, the computing system <NUM> can determine the maneuver <NUM> utilizing sensors such as a camera, an infrared detector, a radar detector, a light detection and ranging (LIDAR) unit, or a combination thereof.

The further road segment <NUM> is the roadway that is connected to the current road segment <NUM> with the maneuver <NUM>. The further road segment <NUM> is not the current road segment <NUM>. For example, the further road segment <NUM> can be the next roadway that the user will need to travel on the travel route <NUM> to the route destination <NUM>. As a further example, the further road segment <NUM> can be the roadway that the user will enter upon completing the maneuver <NUM> from the current road segment <NUM>. The computing system <NUM> can determine the further road segment <NUM> and any additional instances of the further road segment <NUM> with the first control unit <NUM>, the second control unit <NUM>, or a combination thereof.

The computing system <NUM> can determine a further speed limit <NUM> for the further road segment <NUM> and any additional instances of the further road segment <NUM>. The further speed limit <NUM> is the designated maximum legal travel rate on the further road segment <NUM>. The computing system <NUM> can determine the further speed limit <NUM> from the map <NUM> of <FIG>, the map information <NUM> of <FIG>, or a combination thereof. The further speed limit <NUM> can be obtained from the second device <NUM>, an external entity, an external system, or a combination thereof. As a further example, the computing system <NUM> can determine the further speed limit <NUM> utilizing sensors such as a camera, an infrared detector, a radar detector, a light detection and ranging (LIDAR) unit, or a combination thereof.

The computing system <NUM> can automatically set a further zoom level <NUM> upon determining the further speed limit <NUM>. The further zoom level <NUM> is the camera view <NUM> of the map <NUM> automatically set utilizing the look ahead distance <NUM> based on the further speed limit <NUM>. For example, the further zoom level <NUM> can be set with the low speed view <NUM> when the further speed limit <NUM> requires the look ahead distance <NUM> based on the low speed distance <NUM>. As a further example, the further zoom level can be set with the high speed view <NUM> when the further speed limit <NUM> requires the look ahead distance <NUM> based on the high speed distance <NUM>.

The computing system <NUM> generating the further zoom level <NUM> "automatically" refers to the setting, generating, or a combination thereof of the further zoom level <NUM> for the further road segment <NUM> based on the further speed limit <NUM> without input from the user. The computing system <NUM> can generate the further zoom level <NUM> based on the look ahead distance <NUM> for the further speed limit <NUM> with the first control unit <NUM>, the second control unit <NUM>, or a combination thereof.

The computing system <NUM> can also automatically determine the further zoom level <NUM> based on a further road type <NUM>. The further road type <NUM> is the classification of a roadway based on the segment speed limit <NUM> for the further road segment <NUM>. For example, the further road type <NUM> can be determined to be the low speed road <NUM>, the mid speed road <NUM>, the high speed road <NUM>, or the max speed road <NUM>. The computing system <NUM> can determine the further road type <NUM> for the further road segment <NUM> when the further speed limit <NUM> is unobtainable or unavailable.

The computing system <NUM> can determine the segment speed limit <NUM> of the further road type <NUM> utilizing the map <NUM>, the map information <NUM>, or a combination thereof. For example, the computing system <NUM> can determine the segment speed limit <NUM> of the further road type <NUM> from the map information <NUM> obtained from the second device <NUM>, an external entity, an external system, or a combination thereof.

The computing system <NUM> setting the further zoom level <NUM> "automatically" refers to the setting, generating, or a combination thereof of the further zoom level <NUM> for the further road segment <NUM> based on the further road type <NUM> without input from the user. The computing system <NUM> can set the further zoom level <NUM> with the first control unit <NUM>, the second control unit <NUM>, or a combination thereof. The computing system <NUM> can generate the further zoom level <NUM> based on the look ahead distance <NUM> for the further road type <NUM> with the first control unit <NUM>, the second control unit <NUM>, or a combination thereof.

Referring now to <FIG>, an exemplary display of the computing system <NUM> of <FIG> when operating in a free drive mode <NUM>. The free drive mode <NUM> refers to a mode of the computing system <NUM> where the computing system <NUM> operates without input of the route destination <NUM> of <FIG>. The computing system <NUM> operates in the free drive mode <NUM> without the active guidance mode <NUM> of <FIG>.

During operation in the free drive mode <NUM>, the computing system <NUM> can be operating without a predetermined location for the route destination <NUM> of <FIG>. The computing system <NUM>, the first device <NUM> of <FIG>, the second device <NUM> of <FIG>, or a combination thereof can detect, send, receive, or a combination thereof the current location <NUM> while in the free drive mode <NUM>. The current location <NUM> can be updated dynamically and in real time. The computing system <NUM> can track the current location <NUM> using the first location unit <NUM> of <FIG>, the second location unit <NUM> of <FIG>, or a combination thereof.

The computing system <NUM> can track a current travel speed <NUM> with the first device <NUM>, the second device <NUM>, or a combination thereof. The computing system <NUM> can track the current travel speed <NUM> using the first location unit <NUM> of <FIG>, the second location unit <NUM> of <FIG>, or a combination thereof. For example, the current travel speed <NUM> can be tracked based on the measurement for the current speed limit <NUM>.

The computing system <NUM> can detect a speed change <NUM> based on the current speed limit <NUM>, the current travel speed <NUM>, or a combination thereof. The speed change <NUM> occurs when the current speed limit <NUM>, the current travel speed <NUM>, or combination thereof falls outside the range of the speed limits for the minimum distance <NUM> of the current zoom level <NUM>. For example, the speed change <NUM> is detected when the current travel speed <NUM> exceeds the upper speed limit range of the minimum distance <NUM> of <FIG> of the current zoom level <NUM>. The computing system <NUM> can detect the speed change <NUM> with the first device <NUM>, the second device <NUM>, or a combination thereof.

The computing system <NUM> can generate a speed zoom adjustment <NUM> upon detecting the speed change <NUM>. The speed zoom adjustment <NUM> is the display of the map <NUM> utilizing the camera view <NUM> with instance of the minimum distance <NUM> based on the current speed limit <NUM>, the current travel speed <NUM>, or a combination thereof. The computing system <NUM> can generate the speed zoom adjustment <NUM> with the camera view <NUM> based on the current speed limit <NUM>, the current travel speed <NUM>, or a combination thereof using the first control unit <NUM> of <FIG>, the second control unit <NUM> of <FIG>, or a combination thereof. The computing system <NUM> can update the current zoom level <NUM> to the speed zoom adjustment <NUM> utilizing the first control unit <NUM>, the second control unit <NUM>, or a combination thereof.

Continuing with the example, the computing system <NUM> can track the current road type <NUM> of <FIG> to detect a segment change <NUM>. The segment change <NUM> is a change in the current road type <NUM> while traveling on the current road segment <NUM>. For example, the segment change <NUM> occurs when the current speed limit <NUM> changes while the current location <NUM> is detected on the current road segment <NUM>. As a further example, the segment change <NUM> occurs when the current road type <NUM> changes while the current location <NUM> is detected on the current road segment <NUM>. The computing system <NUM> can detect the segment change <NUM> by determining the current speed limit <NUM>, the current road type <NUM>, or a combination thereof from the map <NUM>, the map information <NUM>, or a combination thereof.

The computing system <NUM> can generate a segment zoom adjustment <NUM> upon detecting the segment change <NUM>. The segment zoom adjustment <NUM> is the display of the map <NUM> utilizing the camera view <NUM> and the look ahead distance <NUM> based on the segment change <NUM>. The computing system <NUM> can generate the segment zoom adjustment <NUM> based on the current road type <NUM> using the first control unit <NUM>, the second control unit <NUM>, or a combination thereof.

Referring now to <FIG>, therein is shown an exemplary control flow <NUM> of the computing system <NUM>. In one embodiment, the computing system <NUM> can include an active area module <NUM>, a user input module <NUM>, a route determination module <NUM>, an information module <NUM>, a map display module <NUM>, a preparation module <NUM>, a transition module <NUM>, and an action module <NUM>.

As an example, the active area module <NUM> can be coupled to the user input module <NUM>. The user input module <NUM> can be coupled to the route determination module <NUM> and the information module <NUM>. The route determination module <NUM> can be coupled to the information module <NUM>. The information module <NUM> can be coupled to the map display module <NUM>. The map display module <NUM> can be coupled to the preparation module <NUM>. The preparation module <NUM> can be coupled to the transition module <NUM>. The transition module <NUM> can be coupled to the action module <NUM>. The action module <NUM> can be coupled to the map display module <NUM>.

The active area module <NUM> can determine the active map area <NUM> of <FIG> of the first display interface <NUM> of <FIG>, the second interface <NUM> of <FIG>, or a combination thereof. The active area module <NUM> can calculate the look ahead distance multiplier <NUM> based on the active map area <NUM>. The active area module <NUM> can calculate the look ahead multiplier <NUM> with the first control unit <NUM> of <FIG>, the second control unit <NUM> of <FIG>, or a combination thereof. The active area module <NUM> can store the look ahead distance multiplier <NUM> on the first storage unit <NUM> of <FIG>, the second storage unit <NUM> of <FIG>, or a combination thereof. Once the active area module <NUM> determines the look ahead distance multiplier <NUM>, control is passed to the user input module <NUM> to enable the receiving of the route destination <NUM> of <FIG> by the user of the computing system <NUM>.

The user input module <NUM> can detect whether the user of the computing system <NUM> has input the route destination <NUM> of <FIG> by interfacing with the first user interface <NUM> of <FIG>, the second user interface <NUM> of <FIG>, or a combination thereof. The user input module <NUM> can set one or more of the flags <NUM> indicating that the user has input the route destination <NUM>. The flags <NUM> refer to a software or hardware mark, variable, condition, or a combination thereof that signals a particular condition or status. For example, the user input module <NUM> can detect whether the user has input alpha-numeric characters or symbols indicating the route destination <NUM> by interfacing with the first display interface <NUM>, the second display interface <NUM>, or a combination thereof. If alpha-numeric characters or symbols are detected and the route destination <NUM> is verified, the active guidance module <NUM> of <FIG> can set one or more of the flags <NUM> to a value, for example "YES" or "<NUM>," to indicate that the route destination <NUM> has been input by the user.

As a further example, the user input module <NUM> can detect whether the user has input voice commands indicating the route destination <NUM> by interfacing with the first audio interface <NUM> of <FIG>, the second audio interface <NUM> of <FIG>, or a combination thereof. If the user input module <NUM> recognizes voice commands instructing the computing system <NUM> to find the route destination <NUM> and verifies the route destination <NUM>, the user input module <NUM> can set one or more of the flags <NUM> to a value, for example "YES or "<NUM>," to indicate that the route destination <NUM> has been input by the user.

The user input module <NUM> can determine that the computing system <NUM> will operate in the active guidance mode <NUM> if the user input module <NUM> sets one or more of the flags <NUM> to a value indicating that the route destination <NUM> has been received. The computing system <NUM> can pass control to the route determination module <NUM> when operating in the active guidance mode <NUM>.

Alternatively, the user input module <NUM> can determine that the computing system <NUM> is operating in the free drive mode <NUM> of <FIG> if the user input module <NUM> does not set one or more of the flags <NUM> to a value indicating that the route destination <NUM> has been received. The computing system <NUM> pass control to the information module <NUM> when operating in the free drive mode <NUM>.

Continuing with the example, the user input module <NUM> can pass control to the route determination module <NUM> upon determining that the computing system <NUM> is operating in the active guidance mode <NUM>. The route determination module <NUM> can determine the travel route <NUM> of <FIG> to the route destination <NUM>, as described in <FIG>. The determination of the travel route <NUM> can be done in any conventional manner known to a person of ordinary skill in the art, and in accordance to the description above with respect to <FIG>.

Alternative, in another embodiment, the user input module <NUM> can pass control to the information module <NUM> upon determining that the computing system <NUM> is operating in the free drive mode <NUM>. The information module <NUM> can obtain the current location <NUM> of <FIG>, the directionality <NUM> of <FIG>, the map <NUM> of <FIG>, the map information <NUM> of <FIG>, or a combination thereof.

The information module <NUM> can determine the current location <NUM> and track the current location <NUM> dynamically and in real-time. The current location <NUM> can be displayed in the directionality <NUM> of the user with first display interface <NUM> of <FIG>, the second display interface <NUM> of <FIG>, or a combination thereof. The information module <NUM> can obtain the map <NUM>, the map information <NUM>, or a combination thereof based on the current location <NUM>.

The information module <NUM> can obtain the current location <NUM> from the first location unit <NUM>, the second location unit <NUM>, or a combination thereof. The information module <NUM> can obtain the map <NUM>, the map information <NUM>, or a combination thereof with the first communication unit <NUM>, the second communication unit <NUM>, or a combination thereof. For example, the information module <NUM> can obtain the current road segment <NUM> of <FIG>, the current speed limit <NUM> of <FIG>, the current road type <NUM> of <FIG>, the current travel speed <NUM> of <FIG>, or a combination thereof. Once the information module <NUM> determines the current speed limit <NUM>, the current road type <NUM>, the current travel speed <NUM>, or a combination thereof, control is passed to the map display module <NUM> to set and display the current zoom level <NUM>, the speed zoom adjustment <NUM>, or the segment zoom adjustment <NUM>.

The map display module <NUM> can generate the current zoom level <NUM> based on the current speed limit <NUM>, the current road type <NUM>, or a combination thereof. The map display module <NUM> can obtain the current speed limit <NUM>, the current road type <NUM>, or a combination thereof from the second device <NUM>, an external entity, an external system, or a combination thereof. The map display module <NUM> can obtain the current speed limit <NUM>, the current road type <NUM>, or a combination thereof to determine the minimum distance <NUM> as the low speed distance <NUM> of <FIG>, the mid speed distance <NUM> of <FIG>, the high speed distance <NUM> of <FIG>, or the max speed distance <NUM> of <FIG>.

The map display module <NUM> can calculate the look ahead distance <NUM> based on the minimum distance <NUM> and the look ahead distance multiplier <NUM>. The map display module <NUM> utilizes the look ahead distance <NUM> to set the camera view <NUM> to the low speed zoom <NUM> of <FIG>, the mid speed zoom <NUM> of <FIG>, the high speed zoom <NUM> of <FIG>, or the max speed zoom <NUM> of <FIG>. For example, the map display module <NUM> can determine that the current road type <NUM> is the low speed road <NUM> of <FIG> and set the low speed zoom <NUM> as the current zoom level <NUM>. As a further example, the map display module <NUM> can determine that the current road type <NUM> is the high speed road <NUM> and set the high speed zoom <NUM> as the current zoom level <NUM>.

The map display module <NUM> can generate the speed zoom adjustment <NUM> upon detecting the speed change <NUM>. The map display module <NUM> can detect the speed change <NUM> by tracking the current travel speed <NUM>.

The map display module <NUM> can determine the camera view <NUM> for the current zoom level <NUM> and the updated zoom level <NUM> with the first control unit <NUM>, the second control unit <NUM>, or a combination thereof. The map display module <NUM> can determine the current travel speed <NUM> with the first location unit <NUM>, the second location unit <NUM>, or a combination thereof. The map display module <NUM> can transmit the current zoom level <NUM> for displaying with the first communication unit <NUM>, the second communication unit <NUM>, or a combination thereof. Once the map display module <NUM> displays the current location <NUM>, the directionality <NUM>, the map <NUM>, the map information <NUM>, the current zoom level <NUM>, the updated zoom level <NUM>, or a combination thereof, control is passed to the preparation module <NUM> to set the further zoom level <NUM> of <FIG>.

The preparation module <NUM> sets the further zoom level <NUM> for the further road segment <NUM> by determining the further speed limit <NUM>, the further road type <NUM>, or a combination thereof. In an embodiment where the computing system <NUM> is operating in the active guidance mode <NUM>, the preparation module <NUM> can determine the further road segment <NUM> based on the travel route <NUM> and any additional instances of the travel route <NUM> to the route destination <NUM>. The preparation module <NUM> can obtain the further speed limit <NUM>, the further road type <NUM>, or a combination thereof for the further road segment <NUM> along the travel route <NUM> and any additional instances of the travel route <NUM> to obtain the camera view <NUM> for the further zoom level <NUM>.

In an alternative embodiment where the computing system <NUM> is operating in the free drive mode <NUM>, the preparation module <NUM> can determine the further road segment <NUM> based on the directionality <NUM> of the user. The preparation module <NUM> can obtain the further speed limit <NUM>, the further road type <NUM>, or a combination for the further road segment <NUM> and any additional instances of the further road segment <NUM> connected to the current road segment <NUM> in the directionality <NUM> of the user. The preparation module <NUM> can obtain the further speed limit <NUM>, the further road type <NUM>, or a combination thereof for the further road segment <NUM> in the directionality <NUM> of the user to obtain the camera view <NUM> for the further zoom level <NUM>.

The preparation module <NUM> can obtain the further road segment <NUM>, the further speed limit <NUM>, the further road type <NUM>, the directionality <NUM>, or a combination thereof from the map <NUM>, the map information <NUM>, or a combination thereof. Once the preparation module <NUM> sets the further zoom level <NUM>, control is passed to the transition module <NUM> to generate a transition view <NUM> between the current zoom level <NUM> and the further zoom level <NUM>.

The transition module <NUM> generates the transition view <NUM> to be displayed between the current zoom level <NUM> and the further zoom level <NUM>. The transition view <NUM> is the camera view <NUM> that provides visual guidance for the maneuver <NUM>, the further road segment <NUM>, or a combination thereof. The transition module <NUM> can display the transition view <NUM> when the current location <NUM> is located before the maneuver <NUM> or located on the maneuver <NUM>. For example, the transition view <NUM> can provide the camera view <NUM> of the maneuver <NUM>, the further road segment <NUM>, or a combination thereof when the current location <NUM> is determined to be <NUM> meters before the maneuver <NUM>. As a further example, the transition view <NUM> can provide the camera view <NUM> of a left turn when the current location <NUM> is determined to be on the maneuver <NUM> for a left turn.

The transition module <NUM> can generate the transition view <NUM> to display the maneuver <NUM>, the further road segment <NUM>, or a combination thereof with the first control unit <NUM>, the second control unit <NUM>, or a combination thereof. The transition module <NUM> can update the current zoom level <NUM> to the transition view <NUM> on the first display interface <NUM>, the second display interface <NUM>, or a combination thereof when the current location <NUM> is located on the maneuver <NUM>. Once the transition module <NUM> displays the transition view <NUM>, control is passed to the action module <NUM> to display the further zoom level <NUM> as the current zoom level <NUM>.

The action module <NUM> sets the further zoom level <NUM> as the current zoom level <NUM> by determining that the current location <NUM> is on the further road segment <NUM>. The action module <NUM> determines that the current location <NUM> to be on the further road segment <NUM> with the first location unit <NUM>, the second location unit <NUM>, or a combination thereof. Once the further zoom level <NUM> is set as the current zoom level <NUM>, the control is passed to the map display module <NUM>.

It has been discovered that the computing system <NUM> with the auto-zoom mechanism allows users of the computing system <NUM> greater efficiency and reliability during navigation because it allows the computing system <NUM> provide views of the map <NUM> with the look ahead distance <NUM> based on the current speed limit <NUM>.

It has been further discovered that the computing system <NUM> with the auto-zoom mechanism promotes and provides greater safety for users of the computing system <NUM> over conventional methods because it allows users to avoid having to manually adjust the camera view <NUM> while traveling. For example, the user of the computing system <NUM> can avoid having to manually adjust the camera view <NUM> while operating a vehicle.

It has been further discovered that the computing system <NUM> with the auto-zoom mechanism allows the computing system <NUM> greater efficiency and reliability during navigation because it allows the computing system <NUM> to set the further zoom level <NUM> before the current location <NUM> is located on the further road segment <NUM>.

It has been further discovered that the computing system <NUM> with the auto-zoom mechanism allows the computing system <NUM> greater efficiency and reliability by determining the active map area <NUM> and the look ahead distance multiplier <NUM> for displaying the current zoom level <NUM>, the further zoom level <NUM>, the updated zoom level <NUM>, or a combination thereof to provide the look ahead distance <NUM> based on the width to height ratio of the display.

The modules described in this application can be hardware implementation or hardware accelerators, including passive circuitry, activity circuitry, or both, in the first storage unit <NUM>, the second storage unit <NUM>, the first control unit <NUM>, the second control unit <NUM>, or a combination thereof. The module can also be hardware implementation or hardware accelerators, including passive circuitry, active circuitry, or both, within the first device <NUM>, the second device <NUM>, or a combination thereof but outside the first storage unit <NUM>, the second storage unit <NUM>, the first control unit <NUM>, the second control unit <NUM>, or a combination thereof.

The computing system <NUM> has been described with module functions or order as an example. The computing system <NUM> can partition the modules differently or order the modules differently. For example, the first software <NUM> of <FIG> of the first device <NUM> can include the modules for the computing system <NUM>. As a specific example, the first software <NUM> can include the active area module <NUM>, the user input module <NUM>, the route determination module <NUM>, the information module <NUM>, the map display module <NUM>, the preparation module <NUM>, the transition module <NUM>, and the action module <NUM>, and associated sub-modules included therein.

The first control unit <NUM> can execute the first software <NUM> to operate the modules. For example, the first control unit <NUM> can implement the active area module <NUM>, the user input module <NUM>, the route determination module <NUM>, the information module <NUM>, the map display module <NUM>, the preparation module <NUM>, the transition module <NUM>, and the action module <NUM>, and associated sub-modules included therein.

In another example of module partitions, the second software <NUM> of <FIG> of the second device <NUM> can include the modules for the computing system <NUM>. As a specific example, the second software <NUM> can include the active area module <NUM>, the user input module <NUM>, the route determination module <NUM>, the information module <NUM>, the map display module <NUM>, the preparation module <NUM>, the transition module <NUM>, and the action module <NUM>, and associated sub-modules included therein.

The second control unit can execute the second software <NUM> to operate the modules. For example, the second control unit <NUM> can implement the active area module <NUM>, the user input module <NUM>, the route determination module <NUM>, the information module <NUM>, the map display module <NUM>, the preparation module <NUM>, the transition module <NUM>, and the action module <NUM>, and associated sub-modules included therein.

The computing system <NUM> has been described with module functions or order as an example. The computing system <NUM> can partition the modules differently or order the modules differently. For example, the various modules can be implemented in a different device, or the functionalities of the modules can be distributed across multiple devices. Also as an example, the various modules can be stored in a non-transitory memory medium.

The modules described in this application can be implemented as instructions stored on a non-transitory computer readable medium to be executed by a first control unit <NUM>, the second control unit <NUM>, or a combination thereof. The non-transitory computer readable medium can include the first storage unit <NUM>, the second storage unit <NUM>, or a combination thereof. The non-transitory computer readable medium can include non-volatile memory, such as a hard disk drive, non-volatile random access memory (NVRAM), solid-state storage device (SSD), compact disk (CD), digital video disk (DVD), or universal serial bus (USB) flash memory devices. The non-transitory computer readable medium can be integrated as a part of the computing system <NUM> or installed as a removable portion of the computing system <NUM>.

Referring now to <FIG>, therein is shown an exemplary flow chart of a method <NUM> of operation of a computing system <NUM> in a further embodiment of the present invention. The method <NUM> includes: a current road type for a current road segment based on a current location located along the current road segment in a box <NUM>; generating a current zoom level of a map including the current location on the current road segment based on the current road type in a box <NUM>; generating a camera view of the map based on a look ahead distance for the current road type in a box <NUM>; and communicating the current zoom level for displaying the current location along the current road segment in a box <NUM>.

The method further includes generating the current zoom level based on a current speed limit of the current road segment. The method <NUM> further includes detecting a current travel speed; generating a speed zoom adjustment based on the current travel speed; and updating the current zoom level to the speed zoom adjustment based on the current travel speed.

The method <NUM> further includes determining a maneuver from the current road segment to a further road segment representing a further road type; generating a further zoom level based on the further road type; and updating the current zoom level to the further zoom level based on the current location associated with the maneuver.

The method <NUM> further includes detecting a segment change along the current road segment; generating a segment zoom adjustment based on the segment change along the current road segment; and updating the current zoom level with the segment zoom adjustment.

The method <NUM> further includes detecting the current location entering a maneuver; generating a transition view for the maneuver and a further road segment based on the current location; and updating the current zoom level to the transition view when the current location associated with the maneuver. The method <NUM> further includes calculating a look ahead distance multiplier based on an active map area.

Claim 1:
A method (<NUM>) of operation of a computing system (<NUM>), comprising:
determining a current road type (<NUM>) for a current road segment (<NUM>) based on a current location (<NUM>) of a device (<NUM>, <NUM>) located along the current road segment (<NUM>);
generating a current zoom level (<NUM>) of a map (<NUM>) including the current location (<NUM>) on the current road segment (<NUM>) based on the current road type (<NUM>);
generating a camera view (<NUM>) of the map (<NUM>) for the current zoom level (<NUM>) based on a look ahead distance (<NUM>) for the current road type (<NUM>), the camera view comprising a degree of inclination angle related to a point of view of the map and a magnification,
wherein the look ahead distance (<NUM>) is a distance between the current location (<NUM>) and the real world location of the top edge of the map (<NUM>) displayed in an active map area (<NUM>) of a display interface (<NUM>, <NUM>), and wherein the look ahead distance (<NUM>) is calculated based on i)
a minimum distance (<NUM>) for the look ahead distance (<NUM>) based on a current travel speed (<NUM>) of the device (<NUM>, <NUM>) and/or based on a speed limit of the current road segment (<NUM>), and ii)
a look ahead distance multiplier (<NUM>) based on a width to height ratio of the active map area (<NUM>); and
displaying the current location (<NUM>) along the current road segment (<NUM>) in the active map area (<NUM>) of the display interface (<NUM>, <NUM>), at the current zoom level (<NUM>).