Patent Publication Number: US-2013246659-A1

Title: Method and system for compressing location data of a radio for over-the-air transmission

Description:
FIELD OF THE DISCLOSURE 
     The present disclosure relates generally to communication systems and more particularly to a method for compressing location data, such as GPS data, for transmission over the air to another network communications device, where it can be decompressed. 
     BACKGROUND 
     Mobile cell telephones, two-way radios, and other wireless client devices (WCDs) are experiencing tremendous growth in the U.S. and around the globe, giving users the ability to place a call, including an emergency call, from almost anywhere at any time. One important feature that is being included in most modern WCDs is an ability to determine and report a current location of the WCD. 
     Various methods to locate a WCD, at least approximately, may be used. One known approach to determine the location of a WCD is ground-based triangulation. In a ground-based triangulation system, the WCD&#39;s location is identified through a ranging technique between a plurality of base stations and a transponder at the WCD. 
     Another known technique is based on a determined time difference of arrival (TDOA) in which a data burst is received simultaneously at three base station sites. From the time difference of arrival of the data burst from the WCD at each of the base station sites, the approximate location of the WCD can be determined. 
     In a third known technique, a Global Positioning System (GPS) of satellites and a corresponding receiver in the WCD may be used. GPS is made up of more than two dozen earth-orbiting GPS satellites. Each satellite contains a computer, an atomic clock, and a radio. Each satellite continually broadcasts its changing position and time. These precise timing and position signals broadcast in radio frequency, allow the GPS receiver in the WCD to accurately determine a location of the GPS receiver (longitude, latitude, and/or altitude) anywhere on Earth that has a direct or indirect view of the orbiting satellites. The GPS satellites are positioned in orbit in a manner such that from any given point on Earth, at least four GPS satellites are visible above the horizon at any one time. The GPS receiver in the WCD also contains its own receiver and a computer that calculates its position using a process called trilateration, which is similar to triangulation. The GPS receiver calculates time signals from at least three GPS satellites to measure its distance from each satellite and to calculate a result. The calculation result is provided in the form of a geographic position (longitude and latitude). The location accuracy may be anywhere from 1 to 100 meters depending on the type of equipment used and the number of satellites visible. The GPS is owned and operated by the U.S. Department of Defense, but is available for general use around the world. The European Space Agency and the European Union are also building out a separate global navigation satellite system called Galileo, among other additional projects being pursued by other countries. 
     In one example, the GPS data payload, used to provide other devices with the determined position of the WCD, may use a 32-bit long absolute latitude coordinate and a 32-bit long absolute longitude coordinate. Given the frequency of location updates, and the number of WCDs transmitting location updates, the transfer of 64-bits of location data, in addition to overhead required to transfer the 64-bits of raw location data, generates significant traffic over a wireless network. For example, using the Motorola Solutions™ MOTOTRBO Location Request and Response Protocol (LRRP), in which LRRP control and data messages are sent via a wireless radio network within UDP/IP packets that are transported over the common air interface (CAI), 6-7 LRRP transmission bursts may be required to transfer the 64-bits of raw location data, including overhead, taking up more than 300 ms of transmit time per update. 
     Clearly, as more and more devices implement GPS receivers and location reporting, and as the frequency of location updates increases, GPS payload data is becoming a predominant bandwidth consumer over wireless area networks. 
     What is needed is a method and system for more efficiently transmitting GPS payload data, so that useful location-based services can continue to be provided and locations of WCD&#39;s provided to those agencies that rely on them, while decreasing the costs and network utilization rates inherent in providing such services. 
    
    
     
       BRIEF DESCRIPTION OF THE FIGURES 
       The accompanying figures, where like reference numerals refer to identical or functionally similar elements throughout the separate views, together with the detailed description below, are incorporated in and form part of the specification, and serve to further illustrate embodiments of concepts that include the claimed invention, and explain various principles and advantages of those embodiments. 
         FIG. 1  is a block diagram of a communication system employing a method and system for compressing and decompressing location data of a radio for over-the-air transmission. 
         FIG. 2  is a block diagram illustrating further detail of a client device and wireless communications device employed in the communication system shown in  FIG. 1 . 
         FIG. 3  illustrates an example location payload packet format including compressed location coordinates for transmission between a client device and a wireless communications device employed in the communication system shown in  FIG. 1 . 
         FIG. 4  is a flow chart illustrating an example of a client device obtaining its location coordinates, compressing the coordinates, and transmitting the compressed coordinates to the wireless communications device in the communication system shown in  FIG. 1 . 
         FIGS. 5A and 5B  illustrate the use of latitude and longitude coordinates in identifying location, and how location resolution of longitude coordinates varies based on latitude. 
         FIG. 6  is a flow chart illustrating an example of a network device receiving compressed client device location coordinates, decompressing the coordinates, and providing an absolute location of the client device in the communication system shown in  FIG. 1 . 
         FIG. 7  is a block diagram illustrating a simplified example of the method and system for compressing location data of a radio for over-the-air transmission. 
     
    
    
     Skilled artisans will appreciate that elements in the figures are illustrated for simplicity and clarity and have not necessarily been drawn to scale. For example, the dimensions of some of the elements in the figures may be exaggerated relative to other elements to help to improve understanding of embodiments of the present invention. 
     The method components have been represented where appropriate by conventional symbols in the drawings, showing only those specific details that are pertinent to understanding the embodiments of the present invention so as not to obscure the disclosure with details that will be readily apparent to those of ordinary skill in the art having the benefit of the description herein. 
     DETAILED DESCRIPTION 
     A method and system for compressing location data of a radio for over-the-air transmission is provided herein. In operation, a client device obtains raw latitude and raw longitude coordinates reflecting a current location of the client device, the raw latitude coordinate represented by x number of bits and the raw longitude coordinate represented by y number of bits. The client device truncates the raw latitude coordinate by removing n number of most significant bits from the raw latitude coordinate to create a compressed latitude coordinate, and truncates the raw longitude coordinate by removing m number of most significant bits from the raw longitude coordinate to create a compressed longitude coordinate, where m varies as a function of the value of the raw latitude coordinate. The client device then wirelessly transmits the compressed longitude and compressed latitude coordinates to a network device for decompression and use as an indication of the client device&#39;s absolute location. 
     At the network device, the compressed longitude and compressed latitude coordinates are received from the client device, and the network device obtains raw latitude and raw longitude coordinates reflecting one of its current location and a current location of a wireless communications device in direct communication with the client device. The network device then decompresses the received compressed longitude and latitude coordinates using the received compressed longitude and latitude coordinates and its own determined raw latitude and longitude coordinates. 
     The compressed latitude coordinates are decompressed by comparing the compressed latitude coordinates with a sub-range of the raw latitude coordinates of the network device and, if it is determined that the difference is outside of a maximum wireless range of one of a wireless communications device and the network device, modifying remaining most significant bits of the raw latitude coordinate as a function of the difference. Then, the remaining most significant bits of the raw latitude coordinate, modified or unmodified, are concatenated to the compressed latitude coordinate to create a decompressed latitude coordinate. 
     The compressed longitude coordinates are decompressed by comparing the compressed longitude coordinate with a sub-range of bits in the raw longitude coordinates of the communication device, where the sub-range of bits varies as a function of the value of one the latitude coordinate (of the client device or the remote device, and, if it is determined that the difference is outside of a maximum wireless range of the wireless communications device, modifying remaining most significant bits of the raw longitude coordinate as a function of the difference. Then, the remaining most significant bits of the raw longitude coordinate, modified or unmodified, are concatenated to the compressed longitude coordinate to create a decompressed longitude coordinate. 
     Subsequently, the network device provides a determined absolute location of the client device using the decompressed latitude and longitude coordinates (to itself, or some other device in the communications network in which it is disposed or coupled). 
     Various other embodiments and variances will also be discussed, in more detail, in the following detailed description and attached figures. 
     I. Communication System Structure and Devices 
       FIG. 1  is a block diagram illustrating a communication system  100  employing a method and system for compressing location data of a radio for over-the-air transmission. The communication system  100  comprises a plurality of network devices (including a wireless communications device  102  having a coverage area  104  defined by a communications range  106 , a switch/router/gateway (hereinafter, “switch”) device  110 , and a location-based services device  112 ), and one or more client devices  108 . 
     The network devices, including the wireless communications device  102 , switch device  110 , and location-based services device  112 , may be linked via one or more of private networks, public networks, such as the Internet, wireless networks, such as satellite and cellular networks, local area networks (LANs), wide area networks (WANs), wireless local area networks (WLANs), telephone networks, such as the Public Switched Telephone Networks (PSTN), or a combination of networks. Each of the private networks may include one or more wired and/or wireless links. 
     The wireless communications device  102  may comprise, among other possibilities, a cellular wireless base station, a two-way radio repeater (perhaps complying with a standard such as ETSI TS 102 361 DMR standard and/or ETSI dPMR), an IEEE 802-based wireless access point, or other wireless communication device capable of communicating with one or more client devices  108  within a range  106 . The wireless communications device  102  provides a mechanism through which client devices  108  can communicate with one another and/or location-based services device  112 . The wireless communications range  106  determines a coverage area  104  in which connections may be established between fixed or roaming client devices  108 . Although coverage area  104  is illustrated in  FIG. 1  as being concentrically circular in shape, the actual shape of the coverage area  104  will vary based on environmental characteristics such as land topography, buildings, and antenna radiation directions. Furthermore, although only one wireless communications device  102  is illustrated in  FIG. 1 , the disclosure is not limited to such, and other embodiments may include more than one wireless communications device with coverage areas distinct from, or overlapping with, coverage area  104 . Such additional communications devices may be coupled directly or indirectly with communications device  102  and/or location-based services device  112 , perhaps through switch device  110 . 
     Wireless communications device  102  may be equipped with a location determination module, such as a global positioning system (GPS) receiver, and may be configured to share its position with switch device  110  and/or location-based services device  112 . 
     Client devices  108  may take the form of a mobile or a fixed terminal. For example, the client devices  108  may comprise, among other possibilities, a cellular phone, a two-way radio, and an IEEE 802-based wireless node, etc. Client devices are also equipped with a location determination module, such as a GPS receiver, and may be configured to share their position with other client devices or perhaps with location-based services device  112 . Location data may be shared with other network devices or client devices upon request or at periodic intervals. For example, client devices  108  may be used by an emergency services group, and location data may be shared amongst members of the group so that any one member in the group can know the location of all others in the group. As another example, location data may be shared with location-based services device  112  to obtain geographically relevant information, such as nearby restaurants or hospitals. Other examples exist as well. 
     Switch device  110  may be any communications device configured to link the wireless communications device  102  (and thus client devices  108 ) with location-based services device  112 , and may include, for example, a switch, a router, a gateway, etc. For example, the switch device may be a mobile switching center (MSC) in a cellular network or a zone controller in a two-way radio network, among other possibilities. Switch device  110  may also be equipped with a location determination module, such as a GPS receiver. 
     In order to reduce consumption of communications system resources during the transmission of location data, client devices  108  are configured to obtain their location in the form of latitude and longitude coordinates, and to compress the coordinates prior to transmission to the network devices of  FIG. 1 . As a result of the compression, the compressed latitude and longitude coordinates are no longer sufficient to identify an absolute location of the client device and/or may identify a region so large as to be unuseful in identifying a location of the client device. A network device such as the wireless communications device  102  may decompress the compressed coordinates, and obtain decompressed latitude and longitude coordinates sufficient to again identify an absolute location of the client device, by itself, or may forward the compressed coordinates, perhaps along with its own compressed or decompressed coordinates, to switch device  110  for decompression. After decompression, the decompressed coordinates may be provided to another client device  108  or to location-based services device  112  for further processing. 
     Further, it is to be understood that the communication system  100  is only a logical representation of connections between client devices  108 , wireless communications device  102 , switch device  110 , and location-based services device  112 , and thus represents only one possible arrangement of interconnected communications elements in communications system  100 . For example, the communication system  100  can be extended to include more than two client devices, more than one wireless communications device  102  in the manner noted above, more than one switch device  110 , and/or more than one location-based services device  112 . 
       FIG. 2  is a block diagram illustrating further detail of a computing device  200  that may perform the functions of the client device  108 , the wireless communication device  102 , and/or the switch device  110 . More specifically,  FIG. 2  sets forth an example computing structure that may be used for each of the client device  108 , the wireless communication device  102 , and the switch device  110 . Program instructions stored in a memory of the computing device  200  may determine what role and what functions the computing device  200  provides. Variations in the computing device unique to each of the client device  108 , the wireless communication device  102 , and the switch device  110  will be distinguished as necessary in the forthcoming description. 
     The computing device  200  may contain, among other components, a processor  202 , a transceiver  204  including transmitter circuitry  206  and receiver circuitry  208 , an antenna  222 , I/O devices  212 , a program memory  214 , a buffer memory  216 , one or more communication interfaces  218 , removable storage  220 , and a location receiver  224 . The computing device  200  is preferably an integrated unit and may contain at least all the elements depicted in  FIG. 2  as well as any other element necessary for computing device  200  to perform its electronic functions. The electronic components are interconnected by a bus  226 . 
     The processor  202  may include one or more microprocessors, microcontrollers, DSPs, state machines, logic circuitry, or any other device or devices that process information based on operational or programming instructions. Such operational or programming instructions are stored in the program memory  214  and may include instructions consistent with the algorithms set forth in  FIGS. 4 and 6 , and accompanying text, for compressing and decompressing location coordinates, as well as information related to the transmission of signals such as modulation, transmission frequency, transmission protocols, addressing, signal amplitude, etc. The program memory  214  may be an IC memory chip containing any form of random access memory (RAM) and/or read only memory (ROM), a floppy disk, a compact disk (CD) ROM, a hard disk drive, a digital video disk (DVD), a flash memory card or any other medium for storing digital information. One of ordinary skill in the art will recognize that when the processor  202  has one or more of its functions performed by a state machine or logic circuitry, the memory  214  containing the corresponding operational instructions may be embedded within the state machine or logic circuitry. The operations performed by the processor  202  and the rest of the computing device  200  are described in more detail below. 
     The transmitter circuitry  206  and the receiver circuitry  208  enable the computing device  200  to respectively transmit and receive wireless communication signals. In this regard, the transmitter circuitry  206  and the receiver circuitry  208  include appropriate circuits to enable wireless transmissions. The implementations of the transmitter circuitry  206  and the receiver circuitry  208  depend on the implementation of the computing device  200  and the devices with which it is to communicate. For example, the transmitter and receiver circuits  206 ,  208  may be implemented as part of the computing device hardware and software architecture in accordance with known techniques. For example, transmitter and receiver circuits may be configured to communicate with one or more wireless communications protocols such as Bluetooth transceiver, Wi-Fi perhaps in accordance with an IEEE 802.11 standard (e.g., 802.11a, 802.11b, 802.11g), WiMAX perhaps operating in accordance with an IEEE 802.16 standard, global system for mobile communications (GSM) cellular, code division multiple access (CDMA), P25, ETSI TS 102 361 DMR, ETSI dPMR, NXND, terrestrial trunked radio (TETRA) and/or other types of wireless transceivers configurable to communicate via a wireless network. 
     One of ordinary skill in the art will recognize that most, if not all, of the functions of the transmitter or receiver circuitry  206 ,  208  may be additionally or alternatively be implemented in a processor, such as the processor  202 . The buffer memory  216  may be any form of volatile memory, such as RAM, and is used for temporarily storing received or transmit information and/or portions of the program memory  214 . 
     The computing device  200  may also contain a variety of I/O devices accessible via I/O circuits  212 , such as a keyboard with alpha-numeric keys, a display (e.g., LED, OELD) that displays information about the repeater or communications connected to the repeater, soft and/or hard keys, touch screen, jog wheel, a microphone, and a speaker. 
     Storage  220  can be an IC (integrated circuit) memory chip containing any form of RAM (random-access memory), a floppy disk, a CD-RW (compact disk with read write), a hard disk drive, a DVD-RW (digital versatile disc with read write), a flash memory card, external subscriber identity module (SIM) card or any other medium for storing digital information. One of ordinary skill in the art will recognize that when the processor  202  has one or more of its functions performed by a state machine or logic circuitry, the storage  220  containing the corresponding operational instructions can be embedded within the state machine or logic circuitry, and may be accessible to the processor  202  directly, or indirectly via buffer memory  216 . 
     The communication interface  218  includes appropriate hardware and software architecture in accordance with known techniques that enable communication of data. Communication interfaces  218  may include additional wired and/or wireless interfaces for communicating with other devices. For example, communication interfaces  218  may be a wired line device such as an Ethernet transceiver, a Universal Serial Bus (USB) transceiver, or similar transceiver configurable to communicate via a twisted pair wire, a coaxial cable, a fiber-optic link or other physical connection to a wireline network. Such a wireline network may couple, for example, wireless communications device  102  with switch device  110 , or switch device  110  with location-based services device  112 , among other possibilities. 
     Antenna  222  may comprise any known or developed structure for radiating and receiving electromagnetic energy in a desired frequency range containing corresponding wireless carrier frequencies for wireless communicating between one or more of client devices  108 , wireless communications device  102 , and/or switch device  110 . 
     Location receiver  224  may comprise any known or developed circuit for determining a location of the computing device  200 . For example, location receiver  224  may be a GPS receiver capable of providing absolute coordinates based on reception of three or more signals from orbiting GPS satellites. Other types of location determination methods could be implemented in location receiver  224  as well, including triangulation with three or more base stations, among other possibilities. 
     II. Location Data Transmission Payloads 
       FIG. 3  sets forth one example of a packet format for transmitting location information from a client device  108 , such as client device  108   a  or client device  108   b , to wireless communications device  102  and/or switch device  110 . Of course, other packet formats could additionally or alternatively be used, and other methods of encoding location information in a transmission could additionally or alternatively be used. 
     Packet format  300  as shown in  FIG. 3  includes standard-related information  302 ,  303  at bytes  1 ,  2 ,  11 , and  12 , format specifier field  304 , longitude overflow field  306 , latitude overflow field  308 , and request ID field  310  at byte  3 , speed, direction, or radius value field  312  at bytes  4 - 6 , truncated longitude value field  314  at bytes  7 - 8 , and truncated latitude value field  316  at bytes  9 - 10 . The example packet format of  FIG. 3  is formatted to comply with the control signaling block (CSBK) requirements of Digital Mobile Radio (DMR), as embodied in European Telecommunications Standards Institute ETSI TS 102 361-1 V1.4.5 (2007-12). The standard-related information  302 ,  303  may include information required by the DMR standard, such as manufacturer feature identification (FID), a cyclic-redundancy check (CRC), etc. Accordingly, only bytes  3 - 10  will discussed in detail herein. 
     At byte  3  of the packet format  300 , format field  304  may describe the contents of the packet (e.g., location information, speed, result codes, etc.). The longitude overflow field  306  may provide additional bits for those instances where more than the 16 bits of longitude information available in bytes  7 - 8  are required. For example, longitude overflow field  306  may provide an additional 2 bits of longitude coordinates. The latitude overflow field  308  may provide additional bits for those instances where more than the 16 bits of latitude information available in bytes  9 - 10  are required. For example, latitude overflow field  308  may provide an additional 1 bit of latitude coordinates. The Request ID field  310  may be used to indicate an event associated with the geographic location update, e.g., a trigger or detection event in response to which the packet format  300  is being transmitted. 
     At bytes  4 - 6  of the packet format  300 , a speed, direction, and/or radius field  312  of the client device  108  may be provided. For example, the speed and direction values may be useful in predicting a future position of the client device  108 , and/or locations of interest along an expected path of the client device  108 . Other uses are possible as well. In some embodiments, speed, direction, and/or radius field  312  may be removed in order to allow for a 24-bit source ID field to be included in the packet format  300  when sent on a non-scheduled GPS channel. 
     At bytes  7 - 8 , a compressed (truncated) longitude value field  314  is provided. Combining the 16-bits available at bytes  7 - 8  and the 2-bits available at longitude overflow field  306 , an 18-bit compressed longitude coordinate can be transmitted in the packet format  300 . 
     At bytes  9 - 10 , a compressed (truncated) latitude value field  316  is provided. Combining the 16-bits available at bytes  9 - 10  and the 1-bit available at latitude overflow field  308 , a 17-bit compressed latitude coordinate can be transmitted in the packet format  300 . 
     The packet format  300  facilitates the compression of 32-bit longitude and latitude coordinates into a compressed 18-bit longitude coordinate and a compressed 17-bit latitude coordinate, thereby effectively compressing 64 total bits of latitude/longitude information down to 35 bits or less. It is important to note that the packet format  300  is just one example of a packet format that can be used to transmit compressed location coordinates consistent with this disclosure. Other packet formats could be used as well, including fields accommodating both larger and smaller compressed longitude and latitude coordinates than that illustrated in  FIG. 3 . For example, 64-bit longitude and latitude coordinates could be compressed into perhaps 34-bit compressed latitude and 36-bit compressed longitude coordinates, thereby effectively compressing 64 total bits of latitude/longitude information down to 35 bits or less. Other possibilities exist as well. 
     The packet format  300  populated with fields  302 - 316  may be transmitted by client device  108  upon request and/or at periodic intervals, to either provide its location to another client device  108  or to location-based services device  112 , or to provide some form of location-based service to a user of the client device  108 , among other possibilities. Upon receipt, wireless communications device  102  and/or switch device  110  may retrieve the compressed longitude and latitude values from the packet format  300 , and consistent with the remaining disclosure, decompress the longitude and latitude values to re-create an absolute location of the client device  108 . 
     III. Location Data Compression and Decompression Operational Examples 
       FIGS. 4 and 6  set forth flowcharts illustrating methods  400  and  600  of compressing and decompressing obtained (compressed) latitude and longitude coordinates consistent with the longitude and latitude system described in  FIGS. 5A and 5B . Method  400  may be executed at each client device  108  upon request or on a periodic or intermittent basis, and method  600  may be executed at one or more of wireless communications device  102  and switch device  110  in response to receiving a location packet, such as packet format  300 , from a client device  108 . 
     At step  402  of method  400 , a client device obtains raw latitude and longitude coordinates representing a current location of the client device. In one example, the coordinates are provided by a GPS receiver in the form of 32-bit encoded longitude and latitude coordinates. Other types of location receivers and other encodings could be used as well. 
     At step  404  the raw latitude coordinate provided by a location receiver is truncated to reduce the size of the coordinate for wireless transmission and by creating a compressed latitude coordinate. As a result of the reduction in size, the compressed latitude coordinate may no longer identify a unique location on the surface of the Earth, and/or may identify a region so large as to be unuseful in identifying a location of the client device.  FIG. 5A  illustrates how latitude coordinates  502  are used to uniquely identify a location on Earth. Specifically, latitude represents a north-south location, and it is shown on a map or globe by a series of east-west running lines (parallels)  504  that parallel the equator  506 , which marks the midpoint between the two poles, and extend all around the Earth&#39;s circumference. The North Pole  508  has a latitude of 90° N, while the South Pole (not shown) has a latitude of 90° S, with the equator marking the 0° intermediate point. 
     Importantly, spacing between latitude parallels, as measured on an outer surface of the earth, does not vary around the Earth. For example, the distance  510  between adjacent latitude lines is consistent around the circumference of the Earth, such that the distance  510  is, for example, equal to the distance  512 . Because the distance  510 / 512  does not change, a static selection and/or number of bits from the raw latitude coordinate generated at step  402  can be truncated to create the compressed latitude coordinate. In other words, the selection and/or number of bits truncated from a raw latitude coordinate does not need to change based on a longitudinal location of the client device (e.g., as the client device moves east or west along the circumference of the globe in  FIG. 5A ). For example, at least “n” number of most significant bits (MSBs) of the raw latitude coordinate may be truncated. As a result of the truncation of the MSBs, the compressed latitude coordinate may match a plurality of latitudinal locations along the Earth, e.g., the compressed latitude coordinate may no longer identify a unique location on the surface of the Earth, and/or may identify a region so large as to be unuseful in identifying a location of the client device. 
     Additionally, “s” number of least significant bits (LSBs) of the raw latitude coordinate may also be truncated. As a result of the truncation of the LSBs, the compressed latitude coordinate may not provide as high a resolution of location as the original raw latitude coordinate provided (e.g., providing a determination of a location of the client device within 7.5-30 feet of its actual location using the compressed latitude coordinate as opposed to within 3 feet using the raw latitude coordinate). By sacrificing some resolution, the compressed latitude coordinate can be further reduced in size. As noted earlier, “s” and “n” can be applied consistently to the raw latitude coordinate without variation based on the longitudinal location of the client device. 
     
       
         
           
               
               
               
               
               
               
             
               
                 TABLE I 
               
               
                   
               
               
                   
                   
                 Resolution 
                   
                 Range 
                   
               
               
                   
               
             
            
               
                   
               
            
           
           
               
               
               
               
               
               
               
               
               
               
            
               
                 N 
                 . . . 
                 9   
                 10 
                 11 
                 . . . 
                 25   
                  26 
                  27 
                 . . . 
               
               
                 2{circumflex over ( )}N 
                 . . . 
                 2{circumflex over ( )}9 
                 2{circumflex over ( )}10 
                 2{circumflex over ( )}11 
                 . . . 
                 2{circumflex over ( )}25 
                 2{circumflex over ( )}26 
                 2{circumflex over ( )}27 
                 . . . 
               
               
                 Distance 
                 . . . 
                 7.5 
                 15 
                 30 
                 . . . 
                 97.5 
                 195 
                 389 
                 . . . 
               
               
                   
                   
                 Feet 
                 feet 
                 Feet 
                   
                 Miles 
                 miles 
                 miles 
               
               
                   
               
            
           
         
       
     
       Resolution Latitude =π×Radius Earth ×2 (N-N     Max     ) ×FeetPerMile
 
       and 
       Range Latitude =π×Radius Earth ×2 (N-N     Max     )  
 
     where, Radius Earth =3959 miles and FeetPerMile=5280.
 
For Table 1, N Max =32, Resolution is given in feet and Range is given in miles.
 
     Table I illustrates the bit ranges that can be used in a compressed latitude coordinate to provide the range and resolution indicated. For example, LSBs in bit positions  0 - 8  can be truncated and still provide latitude resolution up to 7.5 feet. Other selections of LSBs can be selected based on the contents of Table I. MSBs in bit positions  28 - 31  can be removed prior to transmission to a network communications device providing wireless communications service to the client device without permanent loss of that data. This is because the MSBs removed at the client device can be restored at the network communications device (or other upstream device) as long as the wireless range of the network communications device is equal to or less than the range indicated in Table I above (for example, 389 miles if truncated bits  28 - 31 ). If the range of the network communications device is greater than half of the range indicated, the network communications device may incorrectly restore the MSBs for a client device transmitting location information from a location that is farther from the network communications device than the range indicated in Table I. Other selections of latitude MSBs can be selected based on the contents of Table I. 
     While Table I illustrates how the truncated bit-range of a latitudinal coordinate can be truncated for 32-bit encoded latitude values, similar tables can be created for other encodings, including, for example, 64-bit encoded latitude values. 
     Returning to  FIG. 4 , at step  406 , the raw longitude coordinate provided by the location receiver is truncated to reduce the size of the longitude coordinate for wireless transmission by creating a compressed longitude coordinate. As a result of the reduction in size, the compressed longitude coordinate may no longer identify a unique location on the surface of the Earth, and/or may identify a region so large as to be unuseful in identifying a location of the client device.  FIG. 5B  illustrates how longitude coordinates  552  are used to uniquely identify a location on Earth. Specifically, longitude represents east-west location, and it is shown on a map or globe by a series of north-south running lines  554  that all come together at the North Pole and at the South Pole. These lines of longitude  554  are called “meridians.” The prime meridian is at 0°, and additional meridians progress east and west along the circumference of the globe until they meet at the 180° mark  558  on the opposite side of the Earth from the prime meridian. 
     In contrast to latitude parallel spacing, spacing between longitude meridians does vary between adjacent meridians between the North and South Poles. For example, the distance  560  between adjacent longitude meridians near the equator  564  is different than the distance  562  between adjacent longitude meridians closer to the North Pole  566 . Because the distance  560 / 562  does change based on latitude, a static selection and/or number of bits from the raw longitude coordinate generated at step  402  cannot be truncated to create compressed longitude coordinates having consistent resolutions and ranges. In other words, the selection and/or number of bits truncated from a raw longitude coordinate needs to change based on a latitudinal location of the client device (e.g., as the client device moves north or south along the circumference of the globe in  FIG. 5B ) in order to maintain a consistent resolution and range across the Earth from North Pole to South Pole, and relative to the static latitude resolution and range. 
     
       
         
           
               
               
               
               
               
               
               
               
               
             
               
                 TABLE II 
               
               
                   
               
               
                 N 
                 7 
                 8 
                 9 
                 10 
                 11 
                 12 
                 13 
                 14 
               
               
                   
               
             
            
               
                 2{circumflex over ( )}N 
                 2{circumflex over ( )}7 
                 2{circumflex over ( )}8 
                 2{circumflex over ( )}9 
                 2{circumflex over ( )}10 
                 2{circumflex over ( )}11 
                 2{circumflex over ( )}12 
                 2{circumflex over ( )}13 
                 2{circumflex over ( )}14 
               
               
                 Lat = 0° 
                 4f 
                 8f 
                   
                   
                   
                   
                   
                   
               
               
                 Lat = 45° 
                 3f 
                 6f 
                 12f 
                 24f 
                   
                   
                   
                   
               
               
                 Lat = 69.30° 
                   
                   
                  6f 
                 12f 
                   
                   
                   
                   
               
               
                 Lat = 79.82° 
                   
                   
                   
                  6f 
                 12f 
                   
                   
                   
               
               
                 Lat = 83.93° 
                   
                   
                   
                   
                  6f 
                 12f 
                   
                   
               
               
                 Lat = 87.47° 
                   
                   
                   
                   
                   
                  6f 
                 12f 
                   
               
               
                 Lat = 88.73° 
                   
                   
                   
                   
                   
                   
                  6f 
                 12f 
               
               
                   
               
            
           
         
       
     
     
       
         
           
             
               Resolution 
               Longitude 
             
             = 
             
               2 
                
               π 
               × 
               
                 Radius 
                 Earth 
               
               × 
               
                 cos 
                  
                 
                   ( 
                   
                     
                       2 
                       × 
                       
                         Latitude 
                         Degrees 
                       
                     
                     360 
                   
                   ) 
                 
               
               × 
               
                 2 
                 
                   ( 
                   
                     N 
                     - 
                     
                       N 
                       
                         M 
                          
                         
                             
                         
                          
                         ax 
                       
                     
                   
                   ) 
                 
               
               × 
               FeetPerMile 
             
           
         
       
     
     
       
         
           
               
               
               
               
               
               
               
               
             
               
                 TABLE III 
               
               
                   
               
               
                 N 
                 25 
                 26 
                 27 
                 28 
                 29 
                 30 
                 31 
               
               
                   
               
             
            
               
                 2{circumflex over ( )}N 
                 2{circumflex over ( )}25 
                 2{circumflex over ( )}26 
                 2{circumflex over ( )}27 
                 2{circumflex over ( )}28 
                 2{circumflex over ( )}29 
                 2{circumflex over ( )}30 
                 2{circumflex over ( )}31 
               
               
                 Lat = 0° 
                 194.5 mi 
                 389 mi 
                   
                   
                   
                   
                   
               
               
                 Lat = 45° 
                 137.5 mi 
                 275 mi 
                 550 mi 
                   
                   
                   
                   
               
               
                 Lat = 69.30° 
                  68.8 mi 
                 137.5 mi   
                 275 mi 
                 550 mi 
                   
                   
                   
               
               
                 Lat = 79.82° 
                   
                 68.8 mi  
                 137.5 mi   
                 275 mi 
                 550 mi 
                   
                   
               
               
                 Lat = 83.93° 
                   
                   
                 68.8 mi  
                 137.5 mi   
                 275 mi 
                 550 mi 
                   
               
               
                 Lat = 87.47° 
                   
                   
                   
                 68.8 mi  
                 137.5 mi   
                 275 mi 
                 550 mi 
               
               
                 Lat = 88.73° 
                   
                   
                   
                   
                 68.8 mi  
                 137.5 mi   
                 275 mi 
               
               
                   
               
            
           
         
       
     
     
       
         
           
             
               Range 
               Longitude 
             
             = 
             
               2 
                
               π 
               × 
               
                 Radius 
                 Earth 
               
               × 
               
                 cos 
                  
                 
                   ( 
                   
                     
                       2 
                        
                       π 
                       × 
                       
                         Latitude 
                         Degrees 
                       
                     
                     360 
                   
                   ) 
                 
               
               × 
               
                 2 
                 
                   ( 
                   
                     N 
                     - 
                     
                       N 
                       
                         Ma 
                          
                         
                             
                         
                          
                         x 
                       
                     
                   
                   ) 
                 
               
             
           
         
       
     
     Tables II and III illustrate the bit ranges that can be used in a compressed longitude coordinate, as a function of latitude coordinate, to provide the range and resolution indicated. 
     For example, “m” number of MSBs of the raw longitude coordinate may be truncated consistent with Table III above. Table III illustrates the bit ranges that can be used, as a function of the current latitudinal location of the client device, in a compressed longitude coordinate to provide consistent ranges and resolutions. For example, for raw latitude coordinates between 45° and 69.30°, the MSBs  27 - 31  may be truncated to create a compressed longitude coordinate having a range of approximately 275 miles and resolution of 12 feet or better. MSBs  27 - 31  can be removed prior to transmission to a network communications device providing wireless communications service to the client device without permanent loss of these MSBs. This is because, as with the latitude coordinates, the MSBs removed at the client device can be restored at the network communications device (or other upstream device) as long as the wireless range of the network communications device is equal to or less than half of the range indicated in Table III above. For raw latitude coordinates between 45° and 69.30°, the network communications device can restore the truncated MSBs, using knowledge of its own location, as long as the network communications device has a wireless communications range less than that indicated Table III (e.g., 137.5 miles, 275 miles, and 550 miles depending on the number of MSBs removed prior to transmission). If the range of the network communications device is greater than the range indicated for the selected number of truncated MSBs, the network communications device may incorrectly restore the MSBs for a client device transmitting location information from a location that is farther from the network communications device than the maximum range indicated in Table III. 
     While Table III illustrates how the truncated bit-range of a longitudinal coordinate will change based on a current latitudinal location of the client device for 32-bit encoded latitude and longitude values, similar tables can be created for other encodings, including, for example, 64-bit encoded latitude and longitude values. Whatever the precision and encoding used, the truncation applied to the longitude coordinates must be varied based on the current determined latitudinal location of the client device to maintain consistency in location range and resolution for compressed location coordinates. 
     Additionally, “r” number of LSBs of the raw longitude coordinate may also be truncated, as indicated in Table II. As a result of the truncation of the LSBs, the compressed longitude coordinate may not provide as high a resolution of location as the original raw longitude coordinate (e.g., providing a determination of a location of the client device within 7.5-15 feet of its actual location using the compressed longitude coordinate as opposed to within 3 feet using the raw longitude coordinate). By sacrificing some resolution, the compressed longitude coordinate can be further reduced in size. Similar to “m,” “r” must be varied as a function of the current latitudinal location of the client device in order to maintain consistency in range and resolution, as illustrated in Table II, for example, above. 
     Returning to  FIG. 4 , at step  408 , the client device transmits the compressed longitude and latitude coordinates to a network device, such as the wireless communications device  102  and/or the switch device  110  for decompression consistent with method  600  set forth in  FIG. 6 . 
     Method  600  for decompressing compressed longitude and latitude coordinates may be executed at any one of wireless communications device  102 , switch device  110 , and/or location-based services device  112 . Any differences in the method  600  based on where the method is executed will be described with respect to each of steps  602 - 610 , below. 
     At step  602 , the compressed longitude and latitude coordinates are received from the client device, where the compressed longitude and latitude coordinates were compressed consistent with the method set forth in  FIG. 4 . At step  604 , raw network latitude and longitude coordinates are obtained of one or more of the devices receiving the compressed longitude and latitude coordinates. For example, if the wireless communications device  102  is executing the method  600 , it may obtain its own raw network latitude and longitude coordinates via a location receiver, such as location receiver  224  of  FIG. 2 , or it may be provided with its location via an upstream device such as switch device  110 . If the switch device  110  is executing the method  600 , it may obtain its own location via a location receiver  224  (assuming it is co-located with wireless communications device  102 , for example), or it may be provided with raw network latitude and longitude coordinates of the wireless communications device  102  by the wireless communications device  102 , via a local database lookup, or perhaps via an upstream network device such as location-based services device  112 . Finally, if the location-based services device  112  is executing the method  600 , it may obtain raw network latitude and longitude coordinates from one or more of the wireless communications device  102 , the network communications device  110 , or some other upstream or downstream device not illustrated in  FIG. 1 . 
     In any event, once the raw network latitude and raw network longitude coordinates are obtained in step  604 , the compressed latitude coordinate is decompressed using the raw network latitude coordinate at step  606 . The decompression process involves several sub-steps in re-creating an accurate absolute location of the client device using the obtained raw network latitude coordinate. First, the received compressed latitude coordinate is compared to a same bit range of the raw network latitude coordinate to determine whether remaining MSBs of the raw network latitude coordinate (e.g., those more significant bits not participating in the comparison and equivalent to the MSB bit positions that were truncated at the client device) should be incremented or decremented to accurately reflect the absolute location of the client device (and re-create the truncated MSBs from the client device). This situation is more clearly illustrated with reference to  FIG. 7 . 
       FIG. 7  is a block diagram illustrating an example a communication system  700  employing a simplified example method and system for compressing location data of a radio for over-the-air transmission. The communication system  700  comprises a wireless communications device  702  having a coverage area  704  defined by a communications range  706 , one or more client devices  708 , a switch device  710 , and a location-based services device  712 , all corresponding to similar device already described with respect to  FIG. 1 . Simply for ease of description, short decimal encodings of latitude locations of respective devices are provided in  FIG. 7 . For example, decimal  1390  may be representative of a latitude portion of a geographic location at 42° 3′58.68″N latitude/88° 3′2.82″W longitude. Other decimal encoding values in  FIG. 7  are set relative to the 1390 decimal encoding for illustration purposes. 
     As shown in  FIG. 7 , the range  706  of the wireless communications device  702  is 50 (miles, kilometers, etc.), and a decimal latitude encoding of the location of the wireless communications device  702  is assumed to be 1390. A decimal latitude encoding of client device  708   a  is assumed to be 1370 (within the range  706 ) and a decimal latitude encoding of client device  708   b  is assumed to be 1410 (also within the range  706 ). In accordance with the compression algorithm set forth herein, each of the client devices  708   a  and  708   b  compress their latitude location encoding by truncating the two most significant digits and transmitting their respective compressed latitude encodings ( 70  and  10 , respectively) to wireless communications device  702 . While  FIG. 7  illustrates wireless communication device  702  forwarding the compressed latitude coordinates to switch device  710  for decompression, in another embodiment, wireless communication device  702  could decompress the compressed latitude coordinates itself. 
     In any event, once switch device  710  receives the compressed latitude encodings, it obtains a raw decimal latitude encoding (either its own or of the wireless communications device  702 , depending on the communications system  700  structure). In this case, the raw decimal latitude encoding (reflecting the geographic location of one of the wireless communication device  702  and the switch device  710 ) is assumed to be 1390. 
     At this point in the decompression process, if the switch device  710  were to simply concatenate the remaining MSBs of the raw network latitude encoding ( 13 ) onto the compressed latitude encodings ( 70  and  10 , respectively) of the client devices  708   a  and  708   b , the resultant decompressed latitude encoding values  1370  and  1310  would not accurately reflect the original and proper latitude encodings of  1370  and  1410 . More specifically, before concatenation, we must first determine whether the remaining MSBs of the raw decimal latitude encoding ( 13 ) must be incremented or decremented to accurately reflect the original and proper decimal latitude encoding values of the client devices  708   a  and  708   b  (prior to truncation/compression). The potential to miscalculate the original decimal latitude encoding values will occur whenever the reference device (here, the wireless communications device  702 ) has a maximum range (here, 50) that, when added or subtracted from the raw decimal latitude encoding (here, 1390) of the wireless communications device  702 , causes the remaining MSBs (e.g., those MSBs in positions that were truncated at the client stations  708 ) of the raw decimal latitude encoding to change. 
     Accordingly, a mathematical operation and comparison is executed at the switch device  710  to determine whether the remaining MSBs in the raw decimal latitude encoding need to be incremented or decremented prior to concatenation with the received compressed latitude encodings. In a first comparison, if subtracting bits of the raw decimal latitude encoding corresponding to bit positions of the received compressed latitude encodings from the received compressed latitude encodings results in a number less than the negative of the maximum range, the remaining MSBs in the raw decimal latitude encoding are incremented prior to concatenation. For client device  708   a , the mathematical operation and comparison amounts to 70−90&lt;−50, which is false, such that, subject to a second comparison, the remaining MSBs in the raw decimal latitude encoding may be concatenated to the compressed latitude encoding without modification, resulting in a decompressed latitude encoding of  1370  for client device  708   a . For client device  708   b , the mathematical operation and comparison amounts to 10−90&lt;−50, which is true, such that the remaining MSBs in the raw decimal latitude encoding are incremented and then concatenated to the compressed latitude encoding, resulting in a decompressed latitude encoding of  1410  for client device  708   b.    
     In the second comparison, if subtracting bits of the raw decimal latitude encoding corresponding to bit positions of the received compressed latitude encoding from the received compressed latitude encoding results in a number greater than the maximum range, the remaining MSBs in the raw decimal latitude encoding are decremented prior to concatenation. For client device  708   a , the mathematical operation and comparison amounts to 90−70&gt;50, which is false, such that, since both the first and second comparisons failed, the remaining MSBs in the raw decimal latitude encoding are concatenated to the compressed latitude encoding without modification, resulting in a decompressed latitude of  1370  for client device  708   a.    
     Since the first comparison already succeeded for client device  708   b , we need not execute the second comparison, however, since the order of comparisons is immaterial, we will present the second comparison for completeness and in the event that the second comparison is executed prior to or in parallel with the first comparison. For client device  708   b , the mathematical operation and comparison amounts to 10−90&gt;50, which is false, such that the remaining MSBs in the raw decimal latitude encoding are not decremented prior to concatenation to the compressed latitude encoding, but may be (and in fact are) incremented subject to the first comparison. 
     Returning to  FIG. 6 , once the decompressed latitude encodings are obtained at step  606 , the decompressed longitude encodings are obtained at step  608 . The decompression process at step  608  is substantially the same as that set forth above with respect to step  606 , with the exception that the bit positions of the compressed longitude encoding vary based on latitude, and thus, the comparison of bits between the compressed longitude encoding and the raw decimal longitude encoding must take into consideration this variation. Accordingly, for example with reference to Table I above, for a compressed longitude encoding associated with one of a decompressed latitude coordinate and raw network latitude coordinate in the range of 45° to 69.30°, the bits of the compressed longitude encoding will be compared to bits  0 - 27  (or some sub-portion thereof depending on desired resolution and range) of the raw decimal longitude encoding to determine whether to increment or decrement remaining MSBs (bits  28 - 31 ) in the raw decimal longitude encoding. Alternatively, for a compressed longitude coordinate associated with one of a decompressed latitude coordinate and raw network latitude coordinate in the range of 69.30° to 79.82°, the bits of the compressed longitude encoding will be compared to bits  0 - 28  (or some sub-portion thereof depending on desired resolution and/or range) of the raw decimal longitude encoding. Similarly, and as reflected in Table I above, the number of remaining MSBs in the raw decimal longitude encoding that will be concatenated to the compressed longitude encoding to create the decompressed longitude encoding will also vary with latitude. For example, for a compressed longitude encoding associated with one of a decompressed latitude coordinate and raw network latitude coordinate in the range of 45° to 69.30°, 4-5 MSBs of the raw decimal longitude encoding will be concatenated onto the compressed longitude encoding (depending on desired resolution and/or range). Alternatively, for a compressed longitude encoding associated with one of a decompressed latitude coordinate and raw network latitude coordinate in the range of 69.30° to 79.82°, 3-4 MSBs of the raw decimal longitude encoding will be concatenated onto the compressed longitude encoding (depending on desired resolution and/or range). 
     At step  610 , the decompressed longitude and latitude are provided, reflecting the absolute location of the client device  108  to a same, or minimally reduced, resolution compared to the original raw network location data generated at the client device. In some cases, for example above where the latitude is encoded into a decimal or binary format, a decoding is performed to convert the encoded number into a latitude/longitude pair (in degrees, minutes, seconds, or perhaps as a decimal number to the tenth, hundredth, thousandth, or other more precise decimal position). 
     LSBs truncated in either of the compressed latitude or compressed longitude coordinates are lost and cannot be restored via method  600  (e.g., the compression is lossy). However, and as illustrated in Tables I-III and elsewhere above, a resolution of between 3 and 30 feet can still be maintained while reducing a location transmission CSBK to a single transmission burst. This amounts to a substantial savings in network bandwidth consumption when multiplied over the number of client devices typically transmitting location updates in a typical wireless communications system. 
     In the foregoing specification, specific embodiments have been described. However, one of ordinary skill in the art appreciates that various modifications and changes can be made without departing from the scope of the invention as set forth in the claims below. Accordingly, the specification and figures are to be regarded in an illustrative rather than a restrictive sense, and all such modifications are intended to be included within the scope of present teachings. 
     The benefits, advantages, solutions to problems, and any element(s) that may cause any benefit, advantage, or solution to occur or become more pronounced are not to be construed as a critical, required, or essential features or elements of any or all the claims. The invention is defined solely by the appended claims including any amendments made during the pendency of this application and all equivalents of those claims as issued. 
     Moreover in this document, relational terms such as first and second, top and bottom, and the like may be used solely to distinguish one entity or action from another entity or action without necessarily requiring or implying any actual such relationship or order between such entities or actions. The terms “comprises,” “comprising,” “has”, “having,” “includes”, “including,” “contains”, “containing” or any other variation thereof, are intended to cover a non-exclusive inclusion, such that a process, method, or article that comprises, has, includes, contains a list of elements does not include only those elements but may include other elements not expressly listed or inherent to such process, method, or article. An element proceeded by “comprises . . . a”, “has . . . a”, “includes . . . a”, “contains . . . a” does not, without more constraints, preclude the existence of additional identical elements in the process, method, or article that comprises, has, includes, contains the element. The terms “a” and “an” are defined as one or more unless explicitly stated otherwise herein. The terms “substantially”, “essentially”, “approximately”, “about” or any other version thereof, are defined as being close to as understood by one of ordinary skill in the art, and in one non-limiting embodiment the term is defined to be within 10%, in another embodiment within 5%, in another embodiment within 1% and in another embodiment within 0.5%. The term “coupled” as used herein is defined as connected, although not necessarily directly and not necessarily mechanically. A device or structure that is “configured” in a certain way is configured in at least that way, but may also be configured in ways that are not listed. 
     It will be appreciated that some embodiments may be comprised of one or more generic or specialized processors (or “processing devices”) such as microprocessors, digital signal processors, customized processors and field programmable gate arrays (FPGAs) and unique stored program instructions (including both software and firmware) that control the one or more processors to implement, in conjunction with certain non-processor circuits, some, most, or all of the functions of the method described herein. Alternatively, some or all functions could be implemented by a state machine that has no stored program instructions, or in one or more application specific integrated circuits (ASICs), in which each function or some combinations of certain of the functions are implemented as custom logic. Of course, a combination of the two approaches could be used. 
     Moreover, an embodiment can be implemented as a computer-readable storage medium having computer readable code stored thereon for programming a computer (e.g., comprising a processor) to perform a method as described and claimed herein. Examples of such computer-readable storage mediums include, but are not limited to, a hard disk, a CD-ROM, an optical storage device, a magnetic storage device, a ROM (Read Only Memory), a PROM (Programmable Read Only Memory), an EPROM (Erasable Programmable Read Only Memory), an EEPROM (Electrically Erasable Programmable Read Only Memory) and a Flash memory. Further, it is expected that one of ordinary skill, notwithstanding possibly significant effort and many design choices motivated by, for example, available time, current technology, and economic considerations, when guided by the concepts and principles disclosed herein will be readily capable of generating such software instructions and programs and ICs with minimal experimentation. 
     The Abstract of the Disclosure is provided to allow the reader to quickly ascertain the nature of the technical disclosure. It is submitted with the understanding that it will not be used to interpret or limit the scope or meaning of the claims. In addition, in the foregoing Detailed Description, it can be seen that various features are grouped together in various embodiments for the purpose of streamlining the disclosure. This method of disclosure is not to be interpreted as reflecting an intention that the claimed embodiments require more features than are expressly recited in each claim. Rather, as the following claims reflect, inventive subject matter lies in less than all features of a single disclosed embodiment. Thus the following claims are hereby incorporated into the Detailed Description, with each claim standing on its own as a separately claimed subject matter.