Providing location related information for a structure to mobile stations

Techniques are provided which may be implemented using various methods and/or apparatuses to allow for location related information for a region of space within a structure to be divided into blocks and selectively provided in an efficient manner to a mobile station and/or a proxy device associated therewith. The mobile station may, for example, use the blocks of location related information to support signal-based position estimation and/or other like location based services.

BACKGROUND

The subject matter disclosed herein relates to electronic devices, and more particularly to methods and apparatuses for use in providing location related information to a mobile station.

2. Information

GPS and other like satellite positioning systems have enabled navigation services for mobile handsets in outdoor environments. Since satellite signals may not be always be reliably received and/or acquired in an indoor environment, different techniques may be employed to enable position estimation and related navigation services. For example, mobile stations can typically obtain a position fix by measuring ranges to three or more terrestrial radio transmitters which are positioned at known locations. Such ranges may be measured, for example, by obtaining a MAC ID address from signals received from such access points and measuring one or more characteristics of signals received from such access points such as, for example, signal strength, round trip delay, just to name a few examples.

By way of additional example, a mobile station, such as, a mobile phone, smart phone, etc., may perform signal-based position estimation to identify its location within a structure by considering different types of location related information. For example, expected signal data (e.g., heat map or radio map information) may be considered along with signal strength measurements, such as, received signal strength indicator (RSSI) values for signals received from various radio transmitters (e.g., access points, beacons, etc.). In other examples, expected signal data (e.g., delay map information) may be considered along with signal propagation time measurements, such as, round-trip time (RTT) values for signals exchanged with various radio transmitters. In still other instances, other types of location related information may be considered, such as, connectivity graph information, routing graph information, probability map information, and/or the like, which may relate to position points distributed in relationship to a map or graph of an indoor space. Thus, for example, a mobile station may use all or part of such location related information to estimate a relative position within the indoor space and/or to otherwise navigate therein.

Such location related information may be provided to a mobile station by one or more computing devices (e.g., servers, etc.), e.g., over wireless communication links. Such location related information may be provided for each radio transmitter and each position point within an indoor space. Accordingly, location related information may at times represent a significantly large amount of data. Transmitting such a large amount of data over a wireless network to a mobile station may prove costly in terms of power, bandwidth, and latency. Additionally, such location related information may also consume a significant amount of memory at a mobile station. Further still, a user experience with position estimation and other like location based service capabilities provided by a mobile station may be significantly affected should significant communication and/or processing delays arise, e.g., specifically with respect to a time to first fix (TTFF).

SUMMARY

In one example implementation, a method may be implemented with at least one computing device to obtain one or more signals representing location related information (LRI) associated with at least one region of space within a structure, wherein the at least one region of space is associated with a plurality of position points; divide the LRI into at least two blocks based, at least in part, on two or more LRI types, wherein each of the blocks is associated with each of the plurality of position points; and in response to a determination that the remote device lacks at least one of the at least two blocks available from the at least one computing device, transmitting the at least one of the at least two blocks to the remote device.

In another example implementation, an apparatus may comprise a network interface and one or more processing units. The one or more processing units may: obtain LRI associated with at least one region of space within a structure, wherein the at least one region of space is associated with a plurality of position points; divide the LRI into at least two blocks based, at least in part, on two or more LRI types, wherein each of the blocks is associated with each of the plurality of position points; and in response to a determination that the remote device lacks at least one of the at least two blocks available from the apparatus, initiate transmission of the at least one of the at least two blocks to the remote device via the network interface.

In yet another example implementation, an apparatus may comprise: means for obtaining LRI associated with at least one region of space within a structure, wherein the at least one region of space is associated with a plurality of position points; means for dividing the LRI into at least two blocks based, at least in part, on two or more LRI types, wherein each of the blocks is associated with each of the plurality of position points; and means for transmitting at least one of the at least two blocks to the remote device, in response to a determination that the remote device lacks the at least one of the at least two blocks available from the apparatus.

In another example implementation, an apparatus may comprise a network interface and one or more processing units. The one or more processing units may: obtain LRI associated with at least one region of space within a structure, wherein the at least one region of space is associated with a plurality of position points; divide the LRI into at least two blocks based, at least in part, on two or more LRI types, wherein each of the blocks is associated with each of the plurality of position points; and in response to a determination that the remote device lacks at least one of the at least two blocks available from the apparatus, initiate transmission of the at least one of the at least two blocks to the remote device via the network interface.

In still another example implementation, an article of manufacture may comprise a non-transitory computer readable medium having stored therein computer-implementable instructions executable by one or more processing units in at least one computing device to: obtain LRI associated with at least one region of space within a structure, wherein the at least one region of space is associated with a plurality of position points; divide the LRI into at least two blocks based, at least in part, on two or more LRI types, wherein each of the blocks is associated with each of the plurality of position points; and in response to a determination that the remote device lacks at least one of the at least two blocks available from the at least one computing device, initiate transmission of the at least one of the at least two blocks to the remote device.

In one example implementation a method may be implemented with a first device to: transmit a request for LRI associated with at least one region of space within a structure to at least one computing device, wherein the LRI is divided into at least two blocks based, at least in part, on two or more LRI types, and each of the blocks is associated with each of a plurality of position points within the at least one region of space, and the request comprises an indication of one or more existing blocks at the first device; obtain a response from the at least one computing device, the response comprising at least one of the at least two blocks available from the at least one computing device; and store the received at least one of the at least two blocks in an LRI cache.

In another example implementation, an apparatus may comprise memory, a network interface, and one or more processing units. The one or more processing units may: initiate transmission of a request for LRI associated with at least one region of space within a structure to at least one computing device via the network interface, wherein the LRI is divided into at least two blocks based, at least in part, on two or more LRI types, each of the blocks is associated with each of a plurality of position points within the at least one region of space, and the request comprises an indication of one or more existing blocks at the apparatus; obtain a response from the at least one computing device via the network interface, the response comprising at least one of the at least two blocks available from the at least one computing device; and initiate storage of the received at least one of the at least two blocks in an LRI cache in the memory.

In yet another example implementation an apparatus may comprise: means for transmitting a request for LRI associated with at least one region of space within a structure to at least one computing device, wherein the LRI is divided into at least two blocks based, at least in part, on two or more LRI types, each of the blocks is associated with each of a plurality of position points within the at least one region of space, and the request comprises an indication of one or more existing blocks at the apparatus; means for obtaining a response from the at least one computing device, the response comprising at least one of the at least two blocks available from the at least one computing device; and means for storing the received at least one of the at least two blocks in an LRI cache.

In still another example implementation, an article of manufacture may comprise a non-transitory computer readable medium having stored therein computer-implementable instructions executable by one or more processing units in a first device to: initiate transmission of a request for LRI associated with at least one region of space within a structure to at least one computing device, wherein the LRI is divided into at least two blocks based, at least in part, on two or more LRI types, each of the blocks is associated with each of a plurality of position points within the at least one region of space, and the request comprises an indication of one or more existing blocks at the first device; obtain a response from the at least one computing device, the response comprising at least one of the at least two blocks available from the at least one computing device; and store the received at least one of the at least two blocks in an LRI cache.

DETAILED DESCRIPTION

In accordance with certain aspects, example techniques are provided which may be implemented using various methods and/or apparatuses to selectively provide location related information (LRI) in blocks to mobile stations and/or proxy devices associated therewith. Such techniques may also be implemented in such a mobile station and/or proxy device to selectively request, receive and store/maintain LRI in blocks.

As illustrated, in the examples herein, such blocks of LRI may be selectively established and/or provided in a manner which may reduce certain communication and/or processing delays that might otherwise significantly degrade a user experience and/or efficiency of position estimation and/or other like location based service capabilities.

By way of an initial example implementation, one or more computing devices may obtain LRI associated with at least one region of space within a structure. Here, for example, the LRI may comprise positioning related metadata and/or the like which is associated with at least one radio transmitter and/or otherwise related to each of a plurality of position points within the region of space. The computing device(s) may divide the LRI into at least two blocks based, at least in part, on two or more LRI types. Several non-limiting example LRI types are described herein, however, claimed subject matter is not necessarily limited to such examples.

In certain example implementations, for each radio transmitter which may be of use in position estimation, a block of LRI may be associated with each of the plurality of position points within the applicable region of space. In certain instances, such as, for example, small structures, such region of space may be contiguous and/or otherwise be bounded by the structure itself. Thus, two or more blocks of LRI may be provided for certain structures (e.g., having a single region of space). In certain other instances, a map or other like graph of a structure may be divided into two or more tile portions, and specific blocks of LRI may be associated with each tile portion (e.g., each region of space within the structure).

In certain example implementations, certain blocks of LRI may be established by such computing device(s) in advance (e.g., via offline processing) and stored until needed. Indeed, certain types of LRI and therefore blocks of LRI may be relatively static over time in comparison to other types of LRI. For example, as radio transmitters are added, removed, modified, etc., corresponding expected signal data may change more frequently than other types of LRI such as, routing graphs, connectively graphs, and/or probability maps which may be related to a layout of positioning points, structure features, user movements, etc. Consequently, in certain example implementations, some blocks of LRI may be pre-established while other blocks of LRI may be dynamically established and/or otherwise established more often or upon request. At certain times, for example, when processing demands are high, some or all of the blocks of LRI may be pre-established (stored) versions.

In certain example implementations, one or more blocks of LRI may be specifically established for use by a specific mobile station or class of mobiles stations, and/or a particular user account associated with the remote device or a particular class of user accounts. For example, certain mobile stations may have more or less processing and/or storage capability than others, and or certain user accounts may have specific preferences, etc.

Having established one or more blocks of LRI, a computing device(s) may selectively provide (e.g., transmit) individual blocks and/or groups of blocks to remote device (e.g., a mobile station and/or proxy device). Here, for example, a determination may be made as to whether a remote device lacks one or more blocks which are available from the computing device(s), e.g., the blocks are absent, or possibly out of date, etc.

Thus, in one example, a remote device may transmit an LRI request (e.g., in the form of one or more messages) to the computing device(s). Such LRI request may, for example, specify an initial estimated position and/or in some other manner identify a structure or region of space therein for which LRI is desired to support position estimation and/or other like location based service capabilities.

In certain example implementations, an LRI request may comprise an indication of one or more existing blocks at the remote device. Here, for example, such an indication may take the form of a unique block identifier (e.g., an assigned ID, a hash value, etc.). In certain instances, a lack of one or more expected unique block identifiers in an LRI request may indicate to the computing device(s) that a remote device lacks certain blocks of LRI. In certain other instances, one or more expected unique block identifiers may be present but deemed incorrect (e.g., out of date block, etc.), which may indicate to the computing device(s) that a remote device lacks certain blocks of LRI. The computing device(s) may then determine which, if any, blocks of LRI may be available for the remote device. For example, a comparison may be made of received (or missing) unique block identifier(s) to unique block identifier(s) for blocks available from the computing device(s). Hence, in a response (e.g., one or more messages) to such an LRI request, the computing device may selectively transmit one or more blocks of LRI to the remote device. In certain instances, certain blocks of LRI may be transmitted before other blocks of LRI, e.g., based on LRI type, priority, size, estimated location and/or likely travel route, etc.

In certain other example implementations, an initial LRI request may not comprise an indication of one or more existing blocks at the remote device. Instead, such an LRI request may be intended to invoke a response from the computing devices which indicates in some manner one or more blocks of LRI that are available from the computing device(s) for the remote device. Hence, a remote device may then determine whether one or more blocks of LRI available from the computing device are desired at the remote device. For example, a comparison may be made of received unique block identifier(s) to unique block identifiers for existing blocks at the remote device. A subsequent LRI request may then specify that one or more blocks be provided in a response from the computing device(s).

Also, as described in greater detail herein, in certain example implementations, a remote device may maintain an LRI cache for storing blocks of LRI. In one example implementation, a remote device (e.g., mobile station and/or proxy device) may perform a block update via replacement, e.g., by selectively replacing a corresponding existing block of LRI with a received block of LRI.

In another example implementation, a remote device may perform an eviction by selectively removing (e.g., erasing) one or more existing blocks from an LRI cache and/or replacing (e.g., overwriting) one or more non-corresponding existing blocks in the LRI cache with one or more received blocks. By way of non-limiting example, an eviction decision may be based, at least in part, on an “age” and/or a frequency of use of an existing block. For example, a block may be evicted based on an age (e.g., k number of months, etc.) related threshold, and/or a frequency of use (e.g., monitored use over a period of time) related threshold.

In another example, an eviction decision may be based, at least in part, on a size of an existing block. Here, for example, the size of a block in the LRI cache may be compared to an applicable threshold and/or to a size of one or more other blocks. Hence, it may be useful to select either larger/largest blocks or conversely smaller/smallest blocks for eviction at times.

In yet another example, an eviction decision may be based, at least in part, on a region of space associated with a particular stored block of LRI. Here, for example, certain regions of space (and hence blocks) may be deemed more important than others. Thus, for example, a region of space (e.g., associated with a specific tiled portion of a map and/or location context identifier (LCI)) may relate to one or more transition features (e.g., entryways, exits, elevators, staircases, ground level floors, lobbies, etc.). Thus, it may be useful to maintain blocks of LRI which are associated with regions of space that relate to one or more transition features and/or the like. Consequently, in certain implementations, one or more blocks of LRI data not associated with regions of space that relate to one or more transition features may be selected for eviction.

In certain example implementations, an LCI may be associated with several LRIs and as such one may decide to evict an entire LCI and its corresponding LRIs. In certain instances, two or more LCIs may be related in some manner (e.g., part of the same building) and as such certain selected LCIs (e.g., with connectivity to the external world) and its associated LRIs may be kept longer than any other LCIs/LRIs.

Attention is drawn now toFIG. 1which is a schematic block diagram illustrating an example environment100that includes one or more computing devices106capable of providing one or more blocks of LRI to a mobile station102and/or proxy device130, in accordance with an implementation.

Mobile station102is representative of any electronic device that may be reasonably moved about by a user and may store one or more LRI blocks114. By way of example but not limitation, mobile station102may comprise a computing and/or communication device such as a mobile telephone, a smartphone, a laptop computer, a tablet computer, a wearable computer, a personal digital assistant, a navigation device, etc.

Proxy device130, which is optional, is representative of any computing device that may be coupled to mobile station102and which may exchange (e.g., via communication link108-6, which may be wireless or non-wireless) one or more LRI blocks114′ for one or more LRI blocks114stored at mobile station102. For example, proxy device130may take the form of a personal computer, a server, a cloud computer arrangement, a mobile hotspot (e.g., a MiFi), and/or the like, which may provide an external storage capability to mobile station102. In certain example implementations, proxy device may further act as a proxy to provide synchronization (e.g., with off-line updating) for mobile station102with regard to LRI blocks112available from one or more computing devices106.

Mobile station102, proxy device130, and computing devices106may, for example, be enabled (e.g., via one or more network interfaces) for use with various wireless communication networks such as a wireless wide area network (WWAN), a wireless local area network (WLAN), a wireless personal area network (WPAN), and so on. The term “network” and “system” may be used interchangeably herein. A WWAN may be a Code Division Multiple Access (CDMA) network, a Time Division Multiple Access (TDMA) network, a Frequency Division Multiple Access (FDMA) network, an Orthogonal Frequency Division Multiple Access (OFDMA) network, a Single-Carrier Frequency Division Multiple Access (SC-FDMA) network, and so on. A CDMA network may implement one or, more radio access technologies (RATs) such as cdma2000, Wideband-CDMA (W-CDMA), Time Division Synchronous Code Division Multiple Access (TD-SCDMA), to name just a few radio technologies. Here, cdma2000 may include technologies implemented according to IS-95, IS-2000, and IS-856 standards. A TDMA network may implement Global System for Mobile Communications (GSM), Digital Advanced Mobile Phone System (D-AMPS), or some other RAT. GSM and W-CDMA are described in documents from a consortium named “3rd Generation Partnership Project” (3GPP). Cdma2000 is described in documents from a consortium named “3rd Generation Partnership Project 2” (3GPP2). 3GPP and 3GPP2 documents are publicly available. A WLAN may include an IEEE 802.11x network, and a WPAN may include a Bluetooth network, an IEEE 802.15x, for example. Wireless communication networks may include so-called next generation technologies (e.g., “4G”), such as, for example, Long Term Evolution (LTE), Advanced LTE, WiMax, Ultra Mobile Broadband (UMB), and/or the like.

FIG. 1also illustrates a plurality of radio transmitters104, various communication links108, one or more networks110, a request116(e.g., for LRI), a response118(e.g., providing one or more blocks of LRI), a structure120, and one or more other computing resources122.

As illustrated, mobile station102may transmit a request116via at least one communication link108to at least one computing device106. Mobile station102may receive a response118via at least one communication link108from at least one computing device106. Here, for example, request116and/or response118may take the form of one or more messages transmitted via wireless communication link108-1, network(s)110, and non-wireless communication link108-2, and/or directly via wireless communication link108-3. Similarly, for example, proxy device130may send a request116and/or receive a response118via communication link108-7.

It should be recognized that one or more communication links108shown inFIG. 1, may comprise one or more wireless communication links and/or one or more non-wireless communication links (e.g., with signals transmitted using one or more wires, fibers, etc.), and that such communication links108and/or network(s)110may also represent various supporting devices and/or technologies associated therewith.

In this example, structure120is representative of any man-made and/or naturally occurring set of physical features for which LRI may be provided to support signal-based position estimation and/or other like location based services and/or navigation capabilities of mobile station102. Thus, for example, structure120may represent a building or set of buildings, an airport, an arena, a warehouse, a campus, a zoo, etc. In such instances, various location based services may be provided to further enhance a user's experience in navigating about structure120using mobile station102. For example, context information and/or other useful information may be provided to a mobile station102as part of a location based service for a given structure. By way of example, a wireless access point located at or near structure120(or elsewhere) may transmit information relating to location based services to mobile station102. In certain example implementations, such information may comprise metadata, all or part of which may take the form of blocks of LRI.

Radio transmitter(s)104, in this example, are representative of any device that may transmit one or more wireless signals which may be used by mobile station102for estimating its position, trajectory, etc. For example, a radio transmitter104may comprise a special purpose location beacon device, a network access point device, a base station, a femtocell or picocell device, and/or the like. A location of radio transmitter104may be provided to mobile station in advance and/or via one or more transmitted signals.

In a non-limiting example, one or more blocks of LRI may comprise expected signal data which may be associated with expected signal strengths (e.g., heat map information) and/or signal propagation times (e.g., delay map information) which may be considered in measuring a range from mobile station to a radio transmitter. Here, for example, such expected signal data may be based, at least in part, on previously measured signal data and/or estimated (e.g., modeled) signal data.

In another non-limiting example, one or more blocks of LRI may comprise connectivity graph information which may associate selected position points within region of space within structure120as being arranged such that a user may navigate there between (e.g., without running into a wall or other obstacle).

In yet another non-limiting example, one or more blocks of LRI may comprise routing graph information which may identify a reduced group of selected position points within region of space within structure120as being arranged in some expected route that a user may navigate (e.g., down a hallway, to an elevator bank, to an entryway or an exit, etc.).

In still another non-limiting example, one or more blocks of LRI may comprise probability map information identifying a likelihood that a user may move from an estimated position at or near a position point within region of space within structure120to or towards another position point (e.g., based on an estimated trajectory, a default user movement capability, previous user movements, etc.).

Reference is made next toFIG. 2, which is a schematic block diagram illustrating certain features of computing device106capable of providing an encoded version of expected signal data to a mobile station.

FIG. 2shows a specific apparatus200in the form of a computing device106, one or more of which may act, at least in part, to establish LRI blocks112for use by one or more mobile stations102. In certain example implementations, apparatus200may act as an individual server, part of a server farm, part of a cloud computing arrangement, etc. In certain example implementations, apparatus200may act as part of a network110, e.g., at a base station, an access point, etc. In certain example implementations, apparatus200may comprise and/or be coupled to one or more other resources (devices)122that may be arranged to provide LRI and/or other like information, and/or perform other supportive services.

With this mind, as illustrated inFIG. 2, example computing device106may comprise one or more processing units202, memory204, connections206, and a network interface208. As shown, memory204may comprise a primary memory204-1, and/or a secondary memory204-2. Here, for example, primary memory204-1may store instructions for establishing and/or data relating to LRI blocks112, which may be executed or used by processing unit(s)202.

As illustrated, at certain times primary memory204-1may, for example, store information relating to one or more requests116and/or one or more responses118. For example, a request116may be received from mobile station102and/or proxy device130via network interface208. For example, a response118may be generated by processing unit(s)202and transmitted to mobile station102and/or proxy device130via network interface208. Network interface208may, for example, comprise one or more wireless transmitters/receivers and/or one or more non-wireless interfaces (e.g., Ethernet, etc.).

As illustrated, at certain times primary memory204-1may store information and/or instructions relating to one or more location based services210. Here, for example, a location based service may support a position estimation capability and/or other like navigation capability of mobile station102with respect to all or part of structure120.

As illustrated, at certain times primary memory204-1may store information and/or instructions relating to a hash function and/or other like mechanism for establishing a unique identifier for an LRI block112. For example, a hash function212may comprise a SHA-1, an MD5, and/or other like hash functions. Hash function212may generate a hash value214corresponding to an LRI block112.

As illustrated, at certain times primary memory204-1may, for example, store other block related information218associated with one or more LRI blocks112. For example, other block related information218may comprise timestamp or other like “age” information, intended mobile station usage, region or structure related information, LCI related information, transition related feature information, etc.

As illustrated, computing device106may take the form of a specific computing device comprising one or more processing units202that perform data processing (e.g., in accordance with all or part of the techniques provided herein) coupled to memory204via one or more connections206. Processing unit(s)202may be implemented in hardware or a combination of hardware and software. Processing unit(s)202may be representative of one or more circuits configurable to perform at least a portion of a data computing procedure or process. By way of example but not limitation, a processing unit may include one or more processors, controllers, microprocessors, microcontrollers, application specific integrated circuits, digital signal processors, programmable logic devices, field programmable gate arrays, and the like, or any combination thereof.

Memory204may be representative of any data storage mechanism. Memory204may include, for example, a primary memory204-1and/or a secondary memory204-2. Primary memory204-1may comprise, for example, a random access memory, read only memory, etc. While illustrated in this example as being separate from the processing units, it should be understood that all or part of a primary memory may be provided within or otherwise co-located/coupled with processing unit(s)202, or other like circuitry within the computing device. Secondary memory204-2may comprise, for example, the same or similar type of memory as primary memory and/or one or more data storage devices or systems, such as, for example, a disk drive, an optical disc drive, a tape drive, a solid state memory drive, etc. In certain implementations, secondary memory may be operatively receptive of, or otherwise configurable to couple to, computer readable medium220. As illustrated, memory204and/or computer readable medium220may comprise computer-implementable instructions222associated with data processing (e.g., in accordance with the techniques provided herein).

Reference is made next toFIG. 3, which is a schematic block diagram illustrating certain features of mobile station102, for example as inFIG. 1, capable of obtaining and using LRI blocks114, which may be stored in an LRI cache330, for example.

FIG. 3shows a specific apparatus300in the form of a mobile station102which may act, at least in part, to generate and transmit a request116to and receive and process a response118from more computing devices106via network interface308. Mobile station102may also exchange LRI blocks with a proxy device130via network interface308. In certain example implementations, apparatus300may take the form of any electronic device that may be reasonably moved about by a user.

With this mind, as illustrated inFIG. 3, example mobile station102may comprise one or more processing units302, memory304, connections306, a network interface308, one or more user input devices310, and one or more user output devices312. As shown, memory304may comprise a primary memory304-1, and/or a secondary memory304-2. Here, for example, primary memory304-1is illustrated as storing information relating to LRI blocks114, which may be used by processing unit(s)302. Primary memory may store instructions for a hash function212that may be executed by processing unit(s)302to generate hash values314for existing LRI blocks114.

Primary memory may, for example, store instructions and other information relating to or for use in maintaining LRI blocks in LRI cache330. For example, one or more threshold values316may be considered as part of an update and/or eviction process, possibly along with other block related information318. For example, other block related information318may comprise timestamp or other like age information, frequency of use information, region or structure related information, LCI related information, transition related feature information, etc.

As illustrated, mobile station102may take the form of a specific computing device comprising one or more processing units302to perform data processing (e.g., in accordance with all or part of the techniques provided herein) coupled to memory304via one or more connections306. Processing unit(s)302may be implemented in hardware or a combination of hardware and software. Processing unit(s)302may be representative of one or more circuits configurable to perform at least a portion of a data computing procedure or process. By way of example but not limitation, a processing unit may include one or more processors, controllers, microprocessors, microcontrollers, application specific integrated circuits, digital signal processors, programmable logic devices, field programmable gate arrays, and the like, or any combination thereof.

Memory304may be representative of any data storage mechanism. Memory304may include, for example, a primary memory304-1and/or a secondary memory304-2. Primary memory304-1may comprise, for example, a random access memory, read only memory, etc. While illustrated in this example as being separate from the processing units, it should be understood that all or part of a primary memory may be provided within or otherwise co-located/coupled with processing unit(s)302, or other like circuitry within mobile station102. Secondary memory304-2may comprise, for example, the same or similar type of memory as primary memory and/or one or more data storage devices or systems, such as, for example, a disk drive, an optical disc drive, a tape drive, a solid state memory drive, etc. In certain implementations, secondary memory may be operatively receptive of, or otherwise configurable to couple to, computer readable medium320. As illustrated, memory304and/or computer readable medium320may comprise computer-implementable instructions322associated with data processing (e.g., in accordance with the techniques provided herein).

In certain example implementations, as illustrated, mobile station102may further comprise one or more user input devices310(e.g., keyboard, touch screen, etc.) and/or one or more user output devices312(e.g., a display, a projector, a speaker, etc.). Hence, for example, location based service information may be presented to the user via some form of user output. Also, user input may be received which relates to location based services or other capabilities.

Although not illustrated, it should be understood that mobile station102may be enabled to perform a variety of tasks, some or many of which may be unrelated to location based services and/or other like position estimation capabilities. Thus, mobile station102may comprise a GPS or other like global navigation satellite system (GNSS) or satellite positioning system (SPS) receiver (not shown) that may be used to establish an estimated initial position, for example.

Thus, for example, an SPS may comprise a system of transmitters positioned to enable entities to determine their location on or above the Earth based, at least in part, on signals received from the transmitters. Such a transmitter typically transmits a signal marked with a repeating pseudo-random noise (PN) code of a set number of chips and may be located on ground based control stations, user equipment and/or space vehicles. In a particular example, such transmitters may be located on Earth orbiting satellite vehicles (SVs). For example, a SV in a constellation of GNSS such as GPS, Galileo, Glonass or Compass may transmit a signal marked with a PN code that is distinguishable from PN codes transmitted by other SVs in the constellation (e.g., using different PN codes for each satellite as in GPS or using the same code on different frequencies as in Glonass). In accordance with certain aspects, the techniques presented herein are not restricted to global systems (e.g., GNSS) for SPS. For example, the techniques provided herein may be applied to or otherwise enabled for use in various regional systems, such as, e.g., Quasi-Zenith Satellite System (QZSS) over Japan, Indian Regional Navigational Satellite System (IRNSS) over India, Beidou over China, etc., and/or various augmentation systems (e.g., an Satellite Based Augmentation System (SBAS)) that may be associated with or otherwise enabled for use with one or more global and/or regional navigation satellite systems. By way of example but not limitation, an SBAS may include an augmentation system(s) that provides integrity information, differential corrections, etc., such as, e.g., Wide Area Augmentation System (WAAS), European Geostationary Navigation Overlay Service (EGNOS), Multi-functional Satellite Augmentation System (MSAS), GPS Aided Geo Augmented Navigation or GPS and Geo Augmented Navigation system (GAGAN), and/or the like. Thus, as used herein an SPS may include any combination of one or more global and/or regional navigation satellite systems and/or augmentation systems, and SPS signals may include SPS, SPS-like, and/or other signals associated with such one or more SPS.

FIG. 4is a flow diagram illustrating certain features of an exemplary process400that may be implemented to establish LRI blocks112, for example, in one or more computing devices106(FIG. 1).

At block402, LRI may be obtained. Here, for example, the LRI may be associated with at least one region of space within a structure, wherein the region of space is associated with a plurality of position points. For example, the region of space may relate to a section within a structure, a tiled portion of a map, an LCI, etc.

At block404, an LRI request may be received from a remote device. Here, for example, an LRI request may be associated with a mobile station and/or a proxy device associated with the mobile station. In certain instances, an example LRI request may comprise one or more indications relating to existing LRI blocks114/114′ available at a remote device. For example, an indication may comprise a unique identifier in form of a hash value derived using an existing LRI block.

At block406, independent of or in response to an LRI request, at least a portion of the LRI may be divided and/or otherwise arranged into blocks based, at least in part, on one or more identifiable LRI types. Here, for example, each of the resulting LRI blocks may be associated with each of the plurality of position points in a region of space.

At block408, a determination may be made as to whether a remote device lacks at least one of the blocks available from the computing device. For example, at block412, a received hash value associated with an existing LRI block at a remote device may be compared to a hash value associated with an available LRI block at the computing device. For example, at block410, a hash value may be generated an available LRI block at the computing device.

At block408, a determination may be made as to whether a remote device lacks at least one of the blocks available from the computing device based on an explicit request in an LRI request. For example, a remote device may decide to request one or more LRI blocks in an LRI request. Here, such an LRI request may be based, at least in part, on a previously transmitted response at block414, and in particular, at block416wherein the one or more computing device(s) may indicate in some manner that one or more blocks are available. As such, one or more hash values from block410may be provided to a remote device for comparison to hash values for existing blocks at the remote device. Hence, a subsequent LRI request at block404may explicitly identify one or more blocks available from the one or more computing devices which are desired by the remote device.

At block416, a response may be transmitted, which at block418comprises one or more blocks (e.g., as identified at block408) available for at the computing device(s) determined to not exist yet at a remote device.

FIG. 5is a flow diagram illustrating certain features of an exemplary process500that may be implemented to obtain and/or maintain LRI blocks114in a remote device, such as, a mobile station102and/or associated proxy device130(FIG. 1).

At block502, an LRI request for one or more blocks of LRI may be transmitted to at least one computing device. Here, for example, an LRI request may comprise an indication of existing blocks of LRI available from the remote device. For example, an indication may comprise a unique identifier, such as, a hash value as generated at block504for an existing block. In another example implementation, an LRI request may request information about blocks of LRI that are available from one more computing device(s). In certain instances, an LRI request may identify an estimated initial position of a mobile station and/or information relating to one or more regions of space.

At block506, a response comprising at least one block of LRI may be received from one or more computing device(s). At block508, one or more received block(s) of LRI may be stored in memory, for example, in an LRI cache. At block510, for example, a block update may be performed to replace an existing block with a received block. At block512, for example, one or more existing blocks may be evicted from an LRI cache. Here, for example, one or more existing blocks or portions thereof may be removed to make room for a received block in an LRI cache. Here, for example, one or more existing blocks or portions thereof may be removed for various other reasons, such as, age, lack of use, size, etc.

In certain example implementations, at block514, all or part of the information stored in an LRI cache in a remote device may be copied and/or otherwise transferred either to or from another remote device. Here, for example, an LRI block may be copied or otherwise transferred from a mobile station to a proxy device, or conversely an LRI block may be copied or otherwise transferred from a proxy device to a mobile station.

Attention is drawn next toFIG. 6A, which is floor plan diagram illustrating certain features of a portion of an exemplary structure, e.g., a floor600of a building, for which one or more blocks of LRI may be provided to a mobile station102and/or proxy device130.

As shown, example floor600comprises a plurality of rooms602connected via a hallway604. Radio transmitters104-1,104-2and104-3are shown in room602-1, room602-4and hallway604, respectively. Mobile station102is illustrated has being positioned in room602-6. A navigation route606is illustrated extending from room602-8through hallway604to room602-6. Navigation route606illustrates an example movement/trajectory of mobile station102. In its current position in room602-6, mobile station is illustrated as being capable of receiving transmitted signals from radio transmitters104-1,104-2and104-3.

Reference is made next toFIG. 6B, wherein a plurality of position points608are shown overlaying example floor plan600. Here, for example, position points608are arranged in a grid pattern having rows parallel to an x-axis and columns parallel to a y-axis (e.g., see directional arrows610). Notice that in this example some position points are not shown as they fall on the lines representing walls. Also, note that in this example, position points are not shown in room602-4, which in this example, is deemed inaccessible for the mobile station's user (e.g., this room may be an equipment space, etc.). Hence, in certain instances LRI may not be applicable for some position points.

Additionally, a plurality of tile portions612are illustrated inFIG. 6Bas overlaying example floor plan600and comprising specific subsets of position points608. For example, tile portion612-1overlaps rooms602-1through602-4and part of hallway604, tile portion612-2overlaps rooms602-5through602-7and part of hallway604, and tile portion612-4overlaps rooms602-9and602-10and part of hallway604. Tile portion612-3, for example, overlaps room602-8, part of hallway604, and also an example transition related feature607(e.g., an entryway/exit). It should be understood that these example tile portions are intended only to illustrate that a structure or related map may be subdivided into various regions of space. In certain instances, such tile portions and/or other like regions of space may be identified by and/or as relating in some manner to certain LCIs.

In certain example implementations, one or more blocks of LRI may be established for a radio transmitter for each region of space however specified. Here, for example, each block of LRI may provide applicable data for each position point associated with the region of space.

With this in mind, attention is drawn toFIG. 7, which is an illustrative diagram showing a group700of several representative LRI blocks associated with a radio transmitter for a region of space having position points therein with point IDs from 1 through n. Example LRI block702comprises corresponding heat map information having data H1through Hn for point IDs from 1 through n. Example LRI block704comprises corresponding delay map information having data D1through Dn for point IDs from 1 through n. Example LRI block706comprises corresponding connectivity graph information having data C1through Cn for point IDs from 1 through n. In a particular but non-limiting example, C1to Cn may comprise a one byte bit-field relating connectivity from a point ID to its neighboring point IDs, e.g., in a known direction either clockwise or counter clockwise. Example LRI block708comprises corresponding routing graph information having data R1through Rn for point IDs from 1 through n. Example LRI block710comprises corresponding heat map information having data P1through Pn for point IDs from 1 through n. It should be understood that the preceding examples are not the only way in which metadata may be represented and further that claimed subject matter is not intended to be limited in this manner.

As further illustrated, in accordance with certain example implementations, a hash function may be employed to generate a unique identifier for an LRI block. As shown, for example, a hash value712(Hh) may be generated based on the data of LRI block702, a hash value714(Dh) may be generated based on the data of LRI block704, a hash value716(Ch) may be generated based on the data of LRI block706, a hash value718(Rh) may be generated based on the data of LRI block708, and/or a hash value720(Ph) may be generated based on the data of LRI block710.

The methodologies described herein may be implemented by various means depending upon applications according to particular features and/or examples. For example, such methodologies may be implemented in hardware, firmware, and/or combinations thereof, along with software. In a hardware implementation, for example, a processing unit may be implemented within one or more application specific integrated circuits (ASICs), digital signal processors (DSPs), digital signal processing devices (DSPDs), programmable logic devices (PLDs), field programmable gate arrays (FPGAs), processors, controllers, micro-controllers, microprocessors, electronic devices, other devices units designed to perform the functions described herein, and/or combinations thereof.

For an implementation involving firmware and/or hardware using software, all or part of the methodologies may be implemented with modules (e.g., procedures, functions, and so on) that perform the functions described herein. Any machine-readable medium tangibly embodying instructions may be used in implementing the methodologies described herein. For example, software codes may be stored in a memory and executed by a processing unit. Memory may be implemented within the processing unit or external to the processing unit. As used herein the term “memory” refers to any type of long term, short term, volatile, nonvolatile, or other memory and is not to be limited to any particular type of memory or number of memories, or type of non-transitory media upon which memory is stored.