An example embodiment relates generally to a method, apparatus and computer program product for enabling selective positioning requests and, more particularly, to a method, apparatus and computer program product for enabling selective positioning requests based upon the availability of one or more radio models.
The determination of the location of a mobile device for many purposes and is necessary for proper execution of a number of applications, such as navigation and mapping applications. In order to determine the location of a mobile device, the mobile device may receive radio signals from any of a variety of different type of access points, such as by receiving cellular radio signals from cellular base stations, receiving Wi-Fi or Bluetooth signals from respective access points or the like. Based upon the radio signals that are received, the location of the mobile device may be determined utilizing various positioning technologies. For example, radio models that define the radio signals to be received from respective access points at different locations may be utilized in order to determine the location of the mobile device, such as by comparing the radio signals actually received by the mobile device to the radio signals that are anticipated to be received at different locations as defined by the radio models.
The radio models may be downloaded and stored by the mobile device such that the mobile device is capable of determining its location without communication with a server or other network device. However, the radio models are typically relatively large data structures and, as such, the downloading of the radio models may require the dedication of substantial memory by the mobile device to store the radio models and may consume substantial bandwidth to both download the radio models and to repeatedly update the radio models thereafter.
As such, some mobile devices utilize on-line positioning services in which the radio models are maintained by a server or other network device. In conjunction with on-line positioning services, the mobile device may provide a server or other network device with information regarding the radio signals that have been captured by the mobile device. The server or other network device can then estimate the location of the mobile device based upon a comparison of the radio signals received by the mobile device and the radio signals defined by the radio models that are maintained by the server or other network device to be received at different locations. The server or other network device may then provide information regarding the estimated location to the mobile device, such as for utilization by various applications executed by the mobile device.
However, the server or other network device may not always include or have access to the radio models necessary to determine the location of the mobile device, at least not with the precision that is desired. For example, radio models must be constructed, such as by the collection and analysis of a substantial quantity of probe data that defines the radio signals received by mobile devices at different locations. Additionally, radio models may become outdated over the course of time and/or as the radio environment changes, such as due to the addition, removal or movement of access points. Thus, the radio models representative of a radio environment must be updated at different points in time in order to support the determination of the location of a mobile device with sufficient confidence. During the construction and/or updating of the radio models, however, the server or other network device may not have access to radio models sufficient to determine the location of the mobile device.
In these instances, the request by a mobile device for the determination of its location and the provision of information regarding the radio signals captured by the mobile device in conjunction with the request may unnecessarily consume bandwidth and may cause the server or other network device to correspondingly consume processing resources unnecessarily in an effort to determine the location of the mobile device in an instance in which the server or other network device does not have sufficient information or sufficiently up-to-date information from which to make such a determination. Thus, the location of the mobile device may not be able to be determined, notwithstanding the consumption of bandwidth and processing resources.
A method, apparatus and computer program product are provided in accordance with an example embodiment in order to efficiently determine the location of a mobile device based upon radio signals received by the mobile device. In this regard, the method, apparatus and computer program product of an example embodiment determine whether radio models exist to permit the location of the mobile device to be determined prior to consuming the bandwidth required to provide the server or other network device with information regarding the radio signals received by the mobile device from which the location of the mobile device may be determined. Additionally, the method, apparatus and computer program product of an example embodiment determine whether radio models are available from which the location of the mobile device may be determined prior to causing the server or other network device to consume the processing resource required in an effort to determine the location of a mobile device based upon radio signals received by the mobile device. Thus, the method, apparatus and computer program product of an example embodiment avoid the consumption of network and processing resources in an instance in which the location of the mobile device will not be able to be determined based upon reliance on radio models, such as an instance in which the radio models are being constructed and/or updated. If the radio models are available, however, the method, apparatus and computer program product are configured to determine the location of the mobile device based thereupon.
In an example embodiment, a method is provided for enabling selective positioning requests. The method includes receiving location information relating to a mobile device. The method also includes determining, by processing circuitry, availability of one or more radio models in relation to a location estimate for the mobile device based upon the location information. The method further includes providing information to the mobile device regarding the availability of the one or more radio models in relation to the location estimate.
The location information may be a coarse location estimate for the mobile device. In an example embodiment, the location information includes location information provided by a positioning system or a cellular system. The method of an example embodiment determines the availability of one or more radio models in relation to the location estimate for the mobile device by determining the one or more radio models in proximity to the location estimate for the mobile device. In this example embodiment, the method provides information regarding the availability of the one or more radio models by providing identification information for the one or more radio models in proximity to the location estimate for the mobile device.
The method of another example embodiment determines the availability of one or more radio models in relation to the location estimate for the mobile device by determining a number of radio models in proximity to the location estimate for the mobile device. In this example embodiment, the method provides information regarding the availability of the one or more radio models by providing an indication of the number of radio models in proximity to the location estimate for the mobile device. In a further example embodiment, the method determines whether a positioning request is able to be successfully made based upon the availability of one or more radio models in relation to the location estimate for the mobile device. The method of this example embodiment provides information regarding the availability of the one or more radio models by providing an indication as to whether the positioning request is able to be successfully made.
In another example embodiment, an apparatus is provided that is configured to enable selective positioning requests. The apparatus includes processing circuitry and at least one memory including computer program code instructions with the computer program code instructions configured to, when executed by the processing circuitry, cause the apparatus to receive location information relating to a mobile device. The program code instructions are also configured to, when executed by the processing circuitry, cause the apparatus to determine availability of one or more radio models in relation to a location estimate for the mobile device based upon the location information and to provide information to the mobile device regarding the availability of the one or more radio models in relation to the location estimate.
The location information may be a coarse location estimate for the mobile device. In an example embodiment, the location information includes location information provided by a positioning system or a cellular system. The computer program code instructions are configured to, when executed by the processing circuitry, cause the apparatus of an example embodiment to determine the availability of one or more radio models in relation to the location estimate for the mobile device by determining the one or more radio models in proximity to the location estimate for the mobile device. In this example embodiment, the computer program code instructions are configured to, when executed by the processing circuitry, cause the apparatus to provide information regarding the availability of the one or more radio models by providing identification information for the one or more radio models in proximity to the location estimate for the mobile device.
The computer program code instructions are configured to, when executed by the processing circuitry, cause the apparatus of an example embodiment to determine the availability of one or more radio models in relation to the location estimate for the mobile device by determining a number of radio models in proximity to the location estimate for the mobile device. In this example embodiment, the computer program code instructions are configured to, when executed by the processing circuitry, cause the apparatus to provide information regarding the availability of the one or more radio models by providing an indication of the number of radio models in proximity to the location estimate for the mobile device. In another example embodiment, the computer program code instructions are further configured to, when executed by the processing circuitry, cause the apparatus to determine whether a positioning request is able to be successfully made based upon the availability of one or more radio models in relation to the location estimate for the mobile device. In this example embodiment, the computer program code instructions are configured to, when executed by the processing circuitry, cause the apparatus to provide information regarding the availability of the one or more radio models by providing an indication as to whether the positioning request is able to be successfully made.
In a further example embodiment, a computer program product is provided for enabling selective positioning requests. The computer program product includes a non-transitory computer readable medium having program code stored thereon with the program code including program code instructions configured, upon execution, to receive location information relating to a mobile device. The program code also includes program code instructions configured to determine availability of one or more radio models in relation to a location estimate for the mobile device based upon the location information. The program code further includes program code instructions configured to provide information to the mobile device regarding the availability of the one or more radio models in relation to the location estimate.
The location information may be a coarse location estimate for the mobile device. In an example embodiment, the location information includes location information provided by a positioning system or a cellular system. In an example embodiment, the program code instructions configured to determine the availability of one or more radio models in relation to the location estimate for the mobile device include program code instructions configured to determine the one or more radio models in proximity to the location estimate for the mobile device. In this example embodiment, the program code instructions configured to provide information regarding the availability of the one or more radio models include program code instructions configured to provide identification information for the one or more radio models in proximity to the location estimate for the mobile device.
The program code instructions configured to determine the availability of one or more radio models in relation to the location estimate for the mobile device include, in one example embodiment, program code instructions configured to determine a number of radio models in proximity to the location estimate for the mobile device. In this example embodiment, the program code instructions configured to provide information regarding the availability of the one or more radio models include program code instructions configured to provide an indication of the number of radio models in proximity to the location estimate for the mobile device. In a further example embodiment, the program code instructions configured to determine whether a positioning request is able to be successfully made based upon the availability of one or more radio models in relation to the location estimate for the mobile device. In this example embodiment, the program code instructions configured to provide information regarding the availability of the one or more radio models include program code instructions configured to provide an indication as to whether the positioning request is able to be successfully made.
In yet another example embodiment, an apparatus is provided for enabling selective positioning requests. The apparatus includes means for receiving location information relating to a mobile device. The apparatus also includes means for determining availability of one or more radio models in relation to a location estimate for the mobile device based upon the location information. The apparatus further includes means for providing information to the mobile device regarding the availability of the one or more radio models in relation to the location estimate.
The location information may be a coarse location estimate for the mobile device. In an example embodiment, the location information includes location information provided by a positioning system or a cellular system. In an example embodiment, the means for determining the availability of one or more radio models in relation to the location estimate for the mobile device includes means for determining the one or more radio models in proximity to the location estimate for the mobile device. In this example embodiment, the means for providing information regarding the availability of the one or more radio models includes means for providing identification information for the one or more radio models in proximity to the location estimate for the mobile device.
The means of another example embodiment for determining the availability of one or more radio models in relation to the location estimate for the mobile device includes means for determining a number of radio models in proximity to the location estimate for the mobile device. In this example embodiment, the means for providing information regarding the availability of the one or more radio models includes means for providing an indication of the number of radio models in proximity to the location estimate for the mobile device. In a further example embodiment, the means for determining whether a positioning request is able to be successfully made bases such a determination upon the availability of one or more radio models in relation to the location estimate for the mobile device. In this example embodiment, the means for providing information regarding the availability of the one or more radio models includes means for providing an indication as to whether the positioning request is able to be successfully made.
In an example embodiment, a method is provided for selective provision of positioning requests. The method includes providing location information relating to a mobile device. The method also includes receiving information regarding an availability of one or more radio models in relation to a location estimate for the mobile device based upon the location information. The method further includes determining, by processing circuitry, whether a positioning request is to be made based upon the information regarding the availability of the one or more radio models.
In an instance in which a determination is made that the positioning request is to be made, the method of an example embodiment also includes providing the positioning request including information regarding measurements of radio signals from one or more access points. However, in an instance in which a determination is made that the positioning request is not to be made, the method of an example embodiment also includes withholding or preventing transmission of the positioning request. In an example embodiment, the method receives information regarding the availability of the one or more radio models by receiving identification information for the one or more radio models that are available as a result of being in proximity to the location estimate for the mobile device. In this example embodiment, the method determines whether the positioning request is to be made by determining whether the positioning request is to be made based upon the one or more access points from which radio signals are received in relation to the one or more radio models for which identification information is received.
The method of an example embodiment receives information regarding the availability of the one or more radio models by receiving an indication of a number of radio models in proximity to the location estimate for the mobile device. In this example embodiment, the method determines whether the positioning request is to be made by determining whether the number of radio models satisfies a predefined threshold. In another example embodiment, the method receives information regarding the availability of the one or more radio models by receiving an indication as to whether the positioning request is able to be successfully made. In this example embodiment, the method determines whether the positioning request is to be made by determining whether the positioning request is to be made based upon the indication as to whether the positioning request is able to be successfully made.
In an instance in which a determination is made that the positioning request is not to be made, the method of an example embodiment also includes determining whether a change has occurred that is capable of altering the determination as to whether the positioning request is to be made. In an instance in which the change has occurred that is capable of altering the determination as to whether the positioning request is to be made, the method of this example embodiment includes again providing location information relating to the mobile device.
In another example embodiment, an apparatus is provided that is configured to selectively provide positioning requests. The apparatus includes processing circuitry and at least one memory including computer program code instructions with the computer program code instructions configured to, when executed by the processing circuitry, cause the apparatus to provide location information relating to a mobile device. The computer program code instructions are also configured to, when executed by the processing circuitry, cause the apparatus to receive information regarding an availability of one or more radio models in relation to a location estimate for the mobile device based upon the location information. The computer program code instructions are further configured to, when executed by the processing circuitry, cause the apparatus to determine whether a positioning request is to be made based upon the information regarding the availability of the one or more radio models.
In an instance in which a determination is made that the positioning request is to be made, the computer program code instructions are further configured to, when executed by the processing circuitry, cause the apparatus to provide the positioning request including information regarding measurements of radio signals from one or more access points. However, in an instance in which a determination is made that the positioning request is not to be made, the computer program code instructions of an example embodiment are further configured to, when executed by the processing circuitry, cause the apparatus to withhold or prevent transmission of the positioning request.
The computer program code instructions configured to receive information regarding the availability of the one or more radio models include, in an example embodiment, computer program code instructions configured to receive identification information for the one or more radio models that are available as a result of being in proximity to the location estimate for the mobile device. In this example embodiment, the computer program code instructions configured to determine whether the positioning request is to be made include computer program code instructions configured to determine whether the positioning request is to be made based upon the one or more access points from which radio signals are received in relation to the one or more radio models for which identification information is received.
The computer program code instructions configured to receive information regarding the availability of the one or more radio models include, in one example embodiment, computer program code instructions configured to receive an indication of a number of radio models in proximity to the location estimate for the mobile device. In this example embodiment, the computer program code instructions configured to determine whether the positioning request is to be made include computer program code instructions configured to determine whether the number of radio models satisfies a predefined threshold. In another example embodiment, the computer program code instructions configured to receive information regarding the availability of the one or more radio models include computer program code instructions configured to receive an indication as to whether the positioning request is able to be successfully made. In this example embodiment, the computer program code instructions configured to determine whether the positioning request is to be made include computer program code instructions configured to determine whether the positioning request is to be made based upon the indication as to whether the positioning request is able to be successfully made.
In an instance in which a determination is made that the positioning request is not to be made, the computer program code instructions of an example embodiment are further configured to determine whether a change has occurred that is capable of altering the determination as to whether the positioning request is to be made. In an instance in which the change has occurred that is capable of altering the determination as to whether the positioning request is to be made, the computer program code instructions of this example embodiment are configured to again provide location information relating to the mobile device.
In a further example embodiment, a computer program product is provided for selective provision of positioning requests. The computer program product includes a non-transitory computer readable medium having program code stored thereon with the program code including program code instructions configured, upon execution, to provide location information relating to a mobile device. The program code also includes program code instructions configured, upon execution, to receive information regarding an availability of one or more radio models in relation to a location estimate for the mobile device based upon the location information. The program code further includes program code instructions configured, upon execution, to determine whether a positioning request is to be made based upon the information regarding the availability of the one or more radio models.
In an instance in which a determination is made that the positioning request is to be made, the program code of an example embodiment also includes program code instructions configured to provide the positioning request including information regarding measurements of radio signals from one or more access points. However, in an instance in which a determination is made that the positioning request is not to be made, the program code of an example embodiment also includes program code instructions configured to withhold or prevent transmission of the positioning request. In an example embodiment, the program code instructions configured to receive information regarding the availability of the one or more radio models include program code instructions configured to receive identification information for the one or more radio models that are available as a result of being in proximity to the location estimate for the mobile device. In this example embodiment, the program code instructions configured to determine whether the positioning request is to be made include program code instructions configured to determine whether the positioning request is to be made based upon the one or more access points from which radio signals are received in relation to the one or more radio models for which identification information is received.
The program code instructions configured to receive information regarding the availability of the one or more radio models include program code instructions configured, in one embodiment, to receive an indication of a number of radio models in proximity to the location estimate for the mobile device. In this example embodiment, the program code instructions configured to determine whether the positioning request is to be made include program code instructions configured to determine whether the number of radio models satisfies a predefined threshold. In another example embodiment, the program code instructions configured to receive information regarding the availability of the one or more radio models include program code instructions configured to receive an indication as to whether the positioning request is able to be successfully made. In this example embodiment, the program code instructions configured to determine whether the positioning request is to be made include program code instructions configured to determine whether the positioning request is to be made based upon the indication as to whether the positioning request is able to be successfully made.
In an instance in which a determination is made that the positioning request is not to be made, the program code of an example embodiment also includes program code instructions configured to determine whether a change has occurred that is capable of altering the determination as to whether the positioning request is to be made. In an instance in which the change has occurred that is capable of altering the determination as to whether the positioning request is to be made, the program code of this example embodiment also includes program code instructions configured to again provide location information relating to the mobile device.
In yet another example embodiment, an apparatus is provided for selective provision of positioning requests. The apparatus includes means for providing location information relating to a mobile device. The apparatus also includes means for receiving information regarding an availability of one or more radio models in relation to a location estimate for the mobile device based upon the location information. The apparatus further includes means for determining whether a positioning request is to be made based upon the information regarding the availability of the one or more radio models.
In an instance in which a determination is made that the positioning request is to be made, the apparatus of an example embodiment also includes means for providing the positioning request including information regarding measurements of radio signals from one or more access points. However, in an instance in which a determination is made that the positioning request is not to be made, the apparatus of an example embodiment also includes means for withholding or preventing transmission of the positioning request. In an example embodiment, the means for receiving information regarding the availability of the one or more radio models includes means for receiving identification information for the one or more radio models that are available as a result of being in proximity to the location estimate for the mobile device. In this example embodiment, the means for determining whether the positioning request is to be made includes means for determining whether the positioning request is to be made based upon the one or more access points from which radio signals are received in relation to the one or more radio models for which identification information is received.
The means for receiving information regarding the availability of the one or more radio models includes, in one example embodiment, means for receiving an indication of a number of radio models in proximity to the location estimate for the mobile device. In this example embodiment, the means for determining whether the positioning request is to be made includes means for determining whether the number of radio models satisfies a predefined threshold. In another example embodiment, the means for receiving information regarding the availability of the one or more radio models includes means for receiving an indication as to whether the positioning request is able to be successfully made. In this example embodiment, the means for determining whether the positioning request is to be made includes means for determining whether the positioning request is to be made based upon the indication as to whether the positioning request is able to be successfully made.
In an instance in which a determination is made that the positioning request is not to be made, the apparatus of an example embodiment also includes means for determining whether a change has occurred that is capable of altering the determination as to whether the positioning request is to be made. In an instance in which the change has occurred that is capable of altering the determination as to whether the positioning request is to be made, the apparatus of this example embodiment includes means for again providing location information relating to the mobile device.
Having thus described example embodiments of the present disclosure in general terms, reference will now be made to the accompanying drawings, which are not necessarily drawn to scale, and wherein:
Some embodiments of the present invention will now be described more fully hereinafter with reference to the accompanying drawings, in which some, but not all, embodiments of the invention are shown. Indeed, various embodiments of the invention may be embodied in many different forms and should not be construed as limited to the embodiments set forth herein; rather, these embodiments are provided so that this disclosure will satisfy applicable legal requirements. Like reference numerals refer to like elements throughout. As used herein, the terms “data,” “content,” “information,” and similar terms may be used interchangeably to refer to data capable of being transmitted, received and/or stored in accordance with embodiments of the present invention. Thus, use of any such terms should not be taken to limit the spirit and scope of embodiments of the present invention.
A method, apparatus and computer program product are provided in accordance with an example embodiment in order to determine whether radio models are maintained or otherwise accessible by a server or other network device that are sufficient to determine the location of a mobile device based upon radio signals received by the mobile device. The method, apparatus and computer program product make this determination as to the sufficiency of the radio models maintained or accessible to the server or other network device prior to consuming the bandwidth required to transmit information regarding the radio signals received by the mobile device and also prior to consuming the processing resources required to determine the location of the mobile device based upon a comparison of the information regarding the radio signals received by the mobile device and the radio models maintained by the server or other network device. As a result, in an instance in which the server or other network device does not include the necessary radio models to determine the location of a mobile device, such as during the construction of the radio models or during updating of radio models that have become outdated due to any of a variety of reasons including changes in the radio environment, such as the addition, removal or change in location of one or more access points, the method, apparatus and computer program product of an example embodiment avoid the unnecessary consumption of bandwidth and processing resources since the location of the mobile device would not be able to be determined, at least not with a sufficient confidence, in any event.
The method, apparatus and computer program product of an example embodiment are configured to efficiently determine the location of a mobile device by reliance upon on-line positioning services. In conjunction with on-line positioning services, radio models are maintained by or otherwise accessible to a server or other network device (hereinafter generically referenced as a server for proposes of explanation, but not of limitation). These radio models are generally constructed from fingerprint data, e.g., probe points, collected by a plurality of mobile devices that provide information regarding the radio signals received by the mobile devices at different locations.
Various types of radio models may be constructed including coverage models that indicate the access points that are anticipated to be detected by a mobile device at different locations. Other types of radio models, such as location models, e.g., radio propagation models, Rx field models, etc., provide information not only regarding the identity of the one or more access points from which a mobile device is anticipated to receive radio signals at different locations, but information regarding various characteristics of the radio signals that are anticipated to be received from the one or more access points at different locations, such as information regarding the signal strength, timing information or the like. Regardless of the type of radio models, the radio models may be stored by or otherwise accessible to the server.
In order to determine the location of the mobile device, the mobile device receives radio signals from one or more access points and provides information regarding the radio signals that have been received to the server such that the server can compare the information regarding the radio signals that have been received by the mobile device to radio signals anticipated to be received by a mobile device at different locations as defined by the radio models. The mobile device may receive radio signals from any of a variety of different types of access points. For example, the access points may include cellular base stations that transmit cellular signals and/or Wi-Fi access points, Bluetooth access points, ultra-wide band (UWB) access points, wireless local area network (WLAN) access points or the like that also transmit radio signals that may be received by the mobile device. Regardless of the type of access point, the access points transmit radio signals that may be received by a mobile device within a respective service area.
By way of example,
Each of the access points transmits radio signals that are capable of being received by a mobile device within a respective service area. In the example of
In accordance with an example embodiment, a method, apparatus and computer program product are configured to distinguish between instances in which radio models are maintained by or accessible to a server for the access points in proximity to a mobile device, such as mobile devices 121 and 122, such that on-line positioning services are available relative to instances in which radio models are not available for the access points in proximity to a mobile device, such as mobile device 123, such that on-line positioning services are not available. By determining the availability of on-line positioning services in advance, the method, apparatus and computer program product of an example embodiment determine the location of a mobile device utilizing on-line positioning services in an instance in which radio models are maintained by or accessible to a server for the access points in proximity to a mobile device, but avoid the unnecessary consumption of bandwidth and processing resources in an instance in which on-line positioning services will be unable to determine the location of the mobile device as a result of the unavailability of radio models for the access points in proximity to the mobile device.
An on-line positioning service relies upon cooperation and communication between a mobile device which submits a positioning request and a server which provides an indication of the location of the mobile device. Thus, the apparatus of one embodiment is defined to be embodied by or otherwise associated with a mobile device, such as a mobile terminal including, for example, a personal digital assistant (PDA), mobile telephone, smart phone, personal navigation device, smart watch, tablet computer, or any combination of the aforementioned and other types of portable computer devices. However, the apparatus of another embodiment is embodied by or associated with a server. Regardless of whether the apparatus is embodied by or associated with a mobile device or a server, the apparatus 20 may include, be associated with or in communication with processing circuitry 22, a memory device 24 and a communication interface 26 as shown in
In some embodiments, the processing circuitry 22 (and/or co-processors or any other processors assisting or otherwise associated with the processing circuitry) can be in communication with the memory 24 via a bus for passing information among components of the apparatus 20. The memory can be non-transitory and can include, for example, one or more volatile and/or non-volatile memories. In other words, for example, the memory may be an electronic storage device (for example, a computer readable storage medium) comprising gates configured to store data (for example, bits) that can be retrievable by a machine (for example, a computing device like the processing circuitry). The memory can be configured to store information, data, content, applications, instructions, or the like for enabling the apparatus to carry out various functions in accordance with an example embodiment of the present disclosure. For example, the memory can be configured to buffer input data for processing by the processing circuitry. Additionally or alternatively, the memory can be configured to store instructions for execution by the processing circuitry.
The processing circuitry 22 can be embodied in a number of different ways. For example, the processing circuitry may be embodied as one or more of various hardware processing means such as a processor, a coprocessor, a microprocessor, a controller, a digital signal processor (DSP), a processing element with or without an accompanying DSP, or various other processing circuitry including integrated circuits such as, for example, an ASIC (application specific integrated circuit), an FPGA (field programmable gate array), a microcontroller unit (MCU), a hardware accelerator, a special-purpose computer chip, or the like. As such, in some embodiments, the processing circuitry can include one or more processing cores configured to perform independently. A multi-core processor can enable multiprocessing within a single physical package. Additionally or alternatively, the processing circuitry can include one or more processors configured in tandem via the bus to enable independent execution of instructions, pipelining and/or multithreading.
In an example embodiment, the processing circuitry 22 can be configured to execute instructions stored in the memory 24 or otherwise accessible to the processing circuitry. Alternatively or additionally, the processing circuitry can be configured to execute hard coded functionality. As such, whether configured by hardware or software methods, or by a combination thereof, the processing circuitry can represent an entity (for example, physically embodied in circuitry) capable of performing operations according to an embodiment of the present disclosure while configured accordingly. Thus, for example, when the processing circuitry is embodied as an ASIC, FPGA or the like, the processing circuitry can be specifically configured hardware for conducting the operations described herein. Alternatively, as another example, when the processing circuitry is embodied as an executor of software instructions, the instructions can specifically configure the processing circuitry to perform the algorithms and/or operations described herein when the instructions are executed. However, in some cases, the processing circuitry can be a processor of a specific device (for example, a computing device) configured to employ an embodiment of the present disclosure by further configuration of the processor by instructions for performing the algorithms and/or operations described herein. The processing circuitry can include, among other things, a clock, an arithmetic logic unit (ALU) and/or one or more logic gates configured to support operation of the processing circuitry.
The apparatus 20 of an example embodiment can also include the communication interface 26. The communication interface can be any means such as a device or circuitry embodied in either hardware or a combination of hardware and software that is configured to receive and/or transmit data from/to other electronic devices in communication with the apparatus, such as by providing for communication between a mobile device and a server and/or between a mobile device and one or more access points. The communication interface can be configured to communicate in accordance with various wireless protocols including Global System for Mobile Communications (GSM), such as but not limited to Long Term Evolution (LTE). In this regard, the communication interface can include, for example, an antenna (or multiple antennas) and supporting hardware and/or software for enabling communications with a wireless communication network. In this regard, the communication interface can include, for example, an antenna (or multiple antennas) and supporting hardware and/or software for enabling communications with a wireless communication network. Additionally or alternatively, the communication interface can include the circuitry for interacting with the antenna(s) to cause transmission of signals via the antenna(s) or to handle receipt of signals received via the antenna(s). In some environments, the communication interface can alternatively or also support wired communication.
Referring to
In an instance in which the location of the mobile device is to be determined, such as in an instance in which an application executed by the mobile device is dependent upon the location of the mobile device, e.g., a mapping or navigation application or a social media application, the apparatus 20 includes means, such as the processing circuitry 22, the communication interface 26 or the like, for providing location information relating to the mobile device. See block 32 of
The apparatus 20, such as the processing circuitry 22, the communication interface 26 or the like, is configured to provide any of a variety of different types of location information indicative of a coarse location of the mobile device. The location information provided by the apparatus as embodied by the mobile device may be based upon the radio signals that have been received by the mobile device. For example, the location information provided by the mobile device may identify the access points for which radio signals have been received. As used herein, the identity of access points may be provided by providing identification information for respective access points or by providing a representation, such as a hash, of the identification information. Alternatively, the apparatus embodied by the mobile device, such as the processing circuitry, may have access to coverage models of the access points with such coverage models stored by the memory device 24 or by a database in communication with the apparatus such that the apparatus is capable of determining a coarse location for the mobile device based upon the coverage models. Notwithstanding the access to coverage models, the mobile device of this example embodiment may still rely upon on-line positioning services since more detailed radio models are stored and updated by the server in order to provide more precise location information. In this example embodiment, the apparatus, such as the processing circuitry, may be configured to determine a region in which the mobile device is located based upon the coverage models and the radio signals received by the mobile device such that the location information provided to the server is indicative of the region in which the mobile device is located. In another embodiment, the apparatus embodied by a mobile device is configured to provide location information in the form of a coarse location that has been provided by a positioning system, such as a global navigation satellite system (GNSS) positioning system or a cellular system.
Referring now to block 34, the apparatus 20 includes means, such as the processing circuitry 22, the communication interface 26 or the like, for receiving information regarding the availability of one or more radio models in relation to a location estimate for the mobile device. As such, the mobile device is able to determine based upon the information that is received whether radio models are available to the server from which the location of the mobile device may be determined with increased precision such that the mobile device should proceed to communicate with the server in an effort to determine the more precise location of the mobile device. Alternatively, the information provided by the server may indicate that radio models are not available or are not up to date in the region in which the mobile device is currently located, such as defined by the location information previously provided by the mobile device, such that the mobile device need not further engage the server to determine its location with more precision at this time since those further efforts would prove unsuccessful, thereby conserving bandwidth and/or processing resources that would otherwise be expended in an unsuccessful effort to obtain more precise position information. In this regard, although a limited amount of bandwidth and processing resources are consumed to provide and process the location information provided in block 32 by the mobile device, the bandwidth and processing resources that are consumed are appreciably less than those that would be consumed in an effort to obtain more precise position information in an instance in which radio models are not available or are not up to date in the region in which the mobile device is currently located.
The apparatus 20, such as the processing circuitry 22, the communication interface 26 or the like, may receive any of a variety of different types of information regarding the availability of one or more radio models based upon the location information previously provided to the server. For example, the apparatus, such as the processing circuitry, the communication interface or the like, may be configured to receive an indication from the server as to whether a positioning request, e.g., a positioning request for on-line positioning services, is able to be successfully made. Although a variety of different indications may be provided, the indication of an example embodiment may be a binary indication or a flag having a first state indicating that a positioning request is able to be successfully made and a second state indicating that a positioning request cannot be successfully made for a mobile device generally located as defined by the location information previously provided by the mobile device.
In another example embodiment, the information regarding the availability of the one or more radio models may include an indication of the number of radio models in proximity to the location estimate for the mobile device as defined by the location information previously provided by the mobile device. In this regard, a radio model may be considered to be in proximity to the location estimate for the mobile device in an instance in which the access point associated with a respective radio model is within a predefined distance of the location estimate for the mobile device. Additionally or alternatively, a radio model may be considered to be in proximity to the location estimate of the mobile device in an instance in which the service area 10 defined by the radio model of a respective access point encompasses all or a portion of the location estimate for the mobile device. The indication of the number of radio models may be an absolute number, such as in terms of the absolute number of radio models in proximity to the location estimate of the mobile device. Alternatively, the indication of the number of radio models in proximity to the location estimate for the mobile device may be a relative number of radio models. In this regard, the relative number of radio models may be a ratio of the number of radio models in proximity to the location estimate for the mobile device for which radio models have been constructed and are up to date relative to the total number of access points in proximity to the location estimate for the mobile device.
In yet another example embodiment, the information regarding the availability of one or more radio models may include identification information for the one or more radio models that are available as a result of being in proximity to the location estimate for the mobile device. In this regard, the access points for which radio models have been constructed and are up to date that are in proximity to the location estimate for the mobile device may be identified. The identification information may identify respective access points in any of a variety of manners, including, for example by BSSID, SSID, MAC address or the like. As used herein, the identification information may be the identifier associated with a respective access point or a hash or other compressed representation of the identifier associated with a respective access point with the hash or other compressed representation of the identifier serving to conserve bandwidth otherwise utilized in conjunction with the transmission of an uncompressed representation of the identifier. In instances in which radio models have been constructed and are up-to-date for a plurality of access points that are in proximity to the location estimate for the mobile device, the identification information may separately identify each access point or the identification information may alternatively be in the form of a data structure, such as provided by a Bloom filter, that combines and compresses the identifiers for all of the access points that are proximate the location estimate for the mobile device and for which radio models have been constructed. In an embodiment in which the identification information provides for the combined identification of a plurality of access points, the identification information can be further used by a mobile device to identify the access points for which radio models have potentially been constructed, and can also identify the access points that definitely do not have a radio model constructed therefore. By combining and compressing the identifiers for a plurality of access points, the identification information of this example embodiment further reduces the data that is transmitted from the server to the mobile device, thereby further conserving the bandwidth.
As shown in decision block 36 of
Alternatively, in an instance in which the information regarding the availability of the one or more radio models includes an indication of a number of radio models in proximity to the location estimate for the mobile device, the apparatus 20, such as the processing circuitry 22, is configured to determine whether a positioning request is to be made based upon the number of radio models in proximity to the location estimate for the mobile device. In this regard, a predetermined threshold may be defined and the apparatus, such as the processing circuitry, may be configured to determine whether a positioning request is to be made based upon the relationship of the number of radio models in proximity to the location estimate for the mobile device to the predetermined threshold. For example, in an instance in which the number of radio models in proximity to the location estimate for the mobile device equals or exceeds the predetermined threshold, the apparatus, such as the processing circuitry, may be configured to determine that a processing request is to be made. Conversely, in an instance in which the number of radio models in proximity to the location estimate for the mobile device is less than the predetermined threshold, the apparatus, such as the processing circuitry, may be configured to determine that a processing request should not be made. Different predetermined thresholds may be predetermined for an absolute number of radio models in proximity to the location estimate for the mobile device and a relative number of radio models in proximity to the location estimate for the mobile device.
Further, in an instance in which the information regarding the availability of the one or more radio models includes identification information for the one or more radio models that are available as a result of being in proximity to the location estimate for the mobile device, the apparatus 20, such as the processing circuitry 22, is configured to determine whether a positioning request is to be made based upon a comparison of the identification information to the access points that were identified to have transmitted radio signals received by the mobile device. In some embodiments, the apparatus, such as the processing circuitry, is configured to determine that a positioning request is to be made in an instance in which the identification information confirms that radio models are available for all of the access points that were identified to have transmitted radio signals received by the mobile device. In this embodiment, the apparatus, such as the processing circuitry, therefore determines that a positioning request is not to be made in an instance in which the identification information indicates that radio models are not available for one or more of the access points that were identified to have transmitted radio signals received by the mobile device.
In other embodiments, the apparatus 20, such as the processing circuitry 22, does not require that radio models be available for all of the access points that were identified to have transmitted radio signals received by the mobile device, but, instead, at least a predefined number or a predefined percentage of the access points that were identified to have transmitted radio signals received by the mobile device. In this example embodiment, the apparatus, such as the processing circuitry, is configured to determine that a positioning request is to be made in an instance in which the identification information confirms that radio models are available for at least the predefined number and/or predefined percentage of the access points that were identified to have transmitted radio signals received by the mobile device. In this embodiment, the apparatus, such as the processing circuitry, therefore determines that a positioning request is not to be made in an instance in which the identification information indicates that radio models are not available for at least the predefined number and/or predefined percentage of the access points that were identified to have transmitted radio signals received by the mobile device.
In an instance in which a determination is made that the positioning request is to be made, the apparatus 20 includes means, such as the processing circuitry 22, the communication interface 26 or the like, for providing the positioning request including information regarding measurements of radio signals from one or more access points to the server. See block 38 of
Based upon the information regarding the measurements of the radio signals from one or more access points that is provided to the server, the apparatus 20 also includes means, such as the processing circuitry 22, the communication interface 26 or the like, for receiving information, such as is from the server, regarding the location of the mobile device. See block 40. Based upon this information regarding the location of the mobile device, the location of the mobile device may be defined with increased precision such that one or more applications executed by the mobile device that are at least partially dependent upon the location of the mobile device may rely upon this more precise location of the mobile device as defined by the information that is received from the server.
However, in an instance in which the apparatus 20, such as the processing circuitry 22, determines that a positioning request is not to be made, such an in an instance in which an insufficient number of radio models have been constructed and/or updated in proximity to the location estimate for the mobile device to allow the location of the mobile device to be defined with the desired precision, the apparatus includes means, such as the processing circuitry or the like, for withholding or preventing transmission of the positioning request. See block 42. By withholding or preventing transmission at the positioning request in an instance in which the server has been determined to be unable to determine the location of the mobile device with the desired precision, the method, apparatus and computer program product of an example embodiment avoid the consumption of the bandwidth and power by the mobile device otherwise required to transmit the information regarding measurements of the radio signals from one or more access points from the mobile device to the server and/or avoid consumption of the processing resources by the server in an effort that will likely prove unsuccessful to determine the location of the mobile device with increased precision.
In this instance in which the transmission of a positioning request is withheld or prevented, the apparatus 20 of an example embodiment also includes means, such as the processing circuitry 22 or the like, for determining whether a change has occurred that is capable of altering the determination as to whether the positioning request is to be made. See decision block 44 of
In an instance in which the apparatus 20, such as the processing circuitry 22, determines that a change has not occurred that is capable of altering whether a positioning request should be made, the apparatus, such as the processing circuitry, continues to withhold or prevent transmission of a positioning request to the server. Alternatively, in an instance in which a change has occurred that is capable of altering the determination as to whether a positioning request is to be made, the apparatus, such as the processing circuitry, is configured to again capture radio signals from one or more access points as shown in block 30 and to provide location information relating to the mobile device, such as the information regarding a coarse location of the mobile device, to the server as shown in block 32 to permit the server to again determine the availability of one or more radio models in relation to a location estimate for the mobile device.
Referring now to
Based upon the location information relating to the mobile device which defines a location estimate for the mobile device, the apparatus 20 embodied by or associated with the server, includes means, such as the processing circuitry 22 or the like, for determining the availability of one or more radio models in relation to the location estimate for the mobile device. See block 52 of
Additionally or alternatively, the determination of the availability of one or more radio models in relation to the location estimate for the mobile device may be provided by the apparatus 20, such as the processing circuitry 22, being configured to determine the number of radio models, such as the absolute number of radio models or the relative number of radio models, in proximity to the location estimate for the mobile device. Still further, the apparatus, such as the processing circuitry, of an example embodiment may be configured to determine the availability of one or more radio models in relation to the location estimate for the mobile device by identifying the one or more radio models in proximity to the location estimate for the mobile device. In this regard, the one or more radio models in proximity to the location estimate for the mobile device may be identified by corresponding identification information that serves to identify the access point associated with each respective radio model.
As shown in block 54 of
Additionally or alternatively, in an instance in which the number of radio models in proximity to the location estimate for the mobile device is determined in conjunction with the determination of the availability of one or more radio models in relation to the location estimate for the mobile device, the apparatus 20, such as the processing circuitry 22, the communication interface 26 or the like, may be configured to provide an indication of the number of radio models, such as the absolute number or relative number, in proximity to the location estimate for the mobile device. Still further, in an instance in which the apparatus, such as the processing circuitry, determines the availability of one or more radio models in relation to a location estimate for the mobile device by identifying the respective radio models, the apparatus, such as the processing circuitry, communication interface 26 or the like, is configured to provide identification information to the mobile device defining the one or more access points for which radio models are available in relation to the location estimate for the mobile device.
Based upon the information regarding the availability of one or more radio models in relation to the location estimate for the mobile device, a mobile device may then determine whether to provide a positioning request to the server soliciting a more precise location for the mobile device. As discussed above in relation to
As described above,
Accordingly, blocks of the flowcharts support combinations of means for performing the specified functions and combinations of operations for performing the specified functions for performing the specified functions. It will also be understood that one or more blocks of the flowcharts, and combinations of blocks in the flowcharts, can be implemented by special purpose hardware-based computer systems which perform the specified functions, or combinations of special purpose hardware and computer instructions.
In some embodiments, certain ones of the operations above may be modified or further amplified. Furthermore, in some embodiments, additional optional operations may be included. Modifications, additions, or amplifications to the operations above may be performed in any order and in any combination.
Many modifications and other embodiments of the inventions set forth herein will come to mind to one skilled in the art to which these inventions pertain having the benefit of the teachings presented in the foregoing descriptions and the associated drawings. Therefore, it is to be understood that the inventions are not to be limited to the specific embodiments disclosed and that modifications and other embodiments are intended to be included within the scope of the appended claims. Moreover, although the foregoing descriptions and the associated drawings describe example embodiments in the context of certain example combinations of elements and/or functions, it should be appreciated that different combinations of elements and/or functions may be provided by alternative embodiments without departing from the scope of the appended claims. In this regard, for example, different combinations of elements and/or functions than those explicitly described above are also contemplated as may be set forth in some of the appended claims. Although specific terms are employed herein, they are used in a generic and descriptive sense only and not for purposes of limitation.