WO2016118148A1 - Fast proximity detection - Google Patents

Fast proximity detection Download PDF

Info

Publication number
WO2016118148A1
WO2016118148A1 PCT/US2015/012547 US2015012547W WO2016118148A1 WO 2016118148 A1 WO2016118148 A1 WO 2016118148A1 US 2015012547 W US2015012547 W US 2015012547W WO 2016118148 A1 WO2016118148 A1 WO 2016118148A1
Authority
WO
WIPO (PCT)
Prior art keywords
interest
point
bounding rectangle
mobile devices
current location
Prior art date
Application number
PCT/US2015/012547
Other languages
French (fr)
Inventor
S S Harish
R Purushotham
Satish Kumar NARAYAN
Original Assignee
Hewlett Packard Enterprise Development Lp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Hewlett Packard Enterprise Development Lp filed Critical Hewlett Packard Enterprise Development Lp
Priority to PCT/US2015/012547 priority Critical patent/WO2016118148A1/en
Publication of WO2016118148A1 publication Critical patent/WO2016118148A1/en

Links

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04WWIRELESS COMMUNICATION NETWORKS
    • H04W4/00Services specially adapted for wireless communication networks; Facilities therefor
    • H04W4/02Services making use of location information
    • H04W4/023Services making use of location information using mutual or relative location information between multiple location based services [LBS] targets or of distance thresholds

Definitions

  • Consumer mobile devices such as smartphones and tablets, typica!iy include a positioning moduie for determining the location of the devices (e.g., global positioning system (GPS) sensors).
  • GPS global positioning system
  • Such positioning modules can be used to provide location-based services such as identifying and navigating to points of interest.
  • the coordinates of a mobile device and the coordinates of the point of interest are used to determine the user's distance and direction with respect to the point of interest.
  • FIG. 1 is a block diagram of an example computing device for providing fast proximity detection
  • FIG. 2 is a block diagram of an example system for providing fast proximity detection
  • FIG. 3 is a flowchart of an example method for execution by a computing device for providing fast proximity detection
  • FIG. 4 is a flowchart of an example method for execution by an example computing device for detecting spatial proximity for a set of mobile devices.
  • FIG. 5 is an example block diagram showing a bounding rectangle of a point of interest that can be used for fast proximity detection.
  • a point of interest latitude of a point of interest and a proximity threshold are used to determine a latitudinal range for the point of interest, and a point of interest longitude of the point of interest and the proximity threshold are used to determine a longitudinal range for the point of interest.
  • a bounding rectangle is generated based on the latitudinal range and the longitudinal range.
  • a current location of a mobile device is obtained.
  • a spatial comparison is then performed to determine that the current location intersects the bounding rectangle.
  • FIG. 1 is a block diagram of an example computing device 100 for providing fast proximity detection.
  • Computing device 100 may be any computing device (e.g., server, desktop computer, etc) with access to other computing devices such as mobile devices.
  • computing device 100 includes a processor 110, a network interface 115, and a machine- readable storage medium 120.
  • Processor 110 may be one or more central processing units (CPUs), microprocessors, and/or other hardware devices suitable for retrieval and execution of instructions stored in machine-readable storage medium 120.
  • Processor 110 may fetch, decode, and execute instructions 122, 124, 126, 128 to enable providing fast proximity detection, as described below.
  • processor 1 10 may include one or more electronic circuits comprising a number of electronic components for performing the functionality of one or more of instructions 122, 124, 126, 128.
  • Network interface 1 15 may include a number of electronic components for communicating with cloud devices.
  • network interface 115 may be an Ethernet interface, a Universal Serial Bus (USB) interface, an IEEE 1394 (Firewire) interface, an external Serial Advanced Technology Attachment (eSATA) interface, or any other physical connection interface suitable for communication with other computing devices.
  • network interface 115 may be a wireless interface, such as a wireless local area network (WLAN) interface or a near-field communication (NFC) interface.
  • WLAN wireless local area network
  • NFC near-field communication
  • network interface 115 may be used to send and receive data to and from a corresponding interface of a mobile device.
  • Machine-readable storage medium 120 may be any electronic, magnetic, optical, or other physical storage device that stores executable instructions.
  • machine-readable storage medium 120 may be, for example, Random Access Memory (RAM), an Electrically-Erasable Programmable Read-Only Memory (EEPROM). a storage drive, an optical disc, and the like.
  • RAM Random Access Memory
  • EEPROM Electrically-Erasable Programmable Read-Only Memory
  • machsne-readabfe storage medium 120 may be encoded with executable instructions for providing fast proximity detection.
  • Proximity range determining instructions 122 determine latitudinal and longitudinal ranges for a point of interest.
  • a point of interest (POI) corresponds to a geographic location that may be of interest to a user such as a museum, restaurant, park, etc. The geographic location is expressed as coordinates that include a latitude and longitude, which can be used to determine the position of the POI in a geographic coordinate system.
  • Proximity range determining instructions 122 use the coordinates of the POI and a proximity threshold to determine the latitudinal and longitudinal ranges for the POI.
  • the latitude of the POI and the proximity threshold can be used to determine a latitudinal range
  • the longitude of the POI and the proximity threshold can be used to determine a longitudinal range.
  • the proximity threshold is a distance that a mobile device should be within to be considered proximate to the POI.
  • Bounding rectangle generating instructions 124 generate a bounding rectangle based on the latitudinal and longitudinal ranges.
  • the bounding rectangle includes the latitudes within the latitudinal range and the longitudes within the longitudinal range, For example in a geographic coordinate system, the bounding rectangle has a width and height that is twice the distance of the proximity threshold, where the longitude range is goes from east to west and the longitudinal range goes from north to south. Any location that intersects the bounding rectangle in the geographic coordinate system is considered to be proximate to the POI.
  • Device location obtaining instructions 126 obtain the location of a mobile device. For example, a current location of the mobile device can be monitored in real-time and stored in a database accessible to device location obtaining instructions 126. In this example, the mobile device determines its current location using a positioning module such as a GPS module. The positioning module may be used by the mobile device at regular intervals to track the mobile device while it travels such that the current position of the mobile device is monitored by computing device 100 in real-time.
  • a positioning module such as a GPS module.
  • the positioning module may be used by the mobile device at regular intervals to track the mobile device while it travels such that the current position of the mobile device is monitored by computing device 100 in real-time.
  • Spatial comparison performing instructions 128 determine if the current location of the mobile device intersects the bounding rectangle of the POI. If the current location does intersect the bounding rectangle, computing device 100 can send a notification to mobile device that it is proximate to the POI. Because a spatial comparison is performed, the locations of any number of mobile devices can be considered simultaneously, where notifications are sent to the proximate mobile devices. The simultaneously comparison allows determinations related to proximity to be performed more efficiently and without trigonometric calculations.
  • FIG. 2 is a block diagram of an example computing device 200 in communication via a network 245 with mobile devices 270A, 270N. As illustrated in FIG. 2 and described below, computing device 200 may communicate with mobile devices 270A, 270N to provide fast proximity detection.
  • computing device 200 may include a number of modules 202-210. Each of the modules may include a series of instructions encoded on a machine-readable storage medium and executable by a processor of the computing device 200. In addition or as an alternative, each module may include one or more hardware devices including electronic circuitry for implementing the functionality described below.
  • computing device 200 may be a server, desktop computer, or any other device suitable for executing the functionality described below.
  • interface module 202 manages communications with mobile devices 270A, 270N. Specifically, the interface module 202 may initiate connections with mobile devices 270A, 270N and then send or receive data to/from mobile devices 270A, 270N.
  • Device tracking module 206 tracks mobile devices 270A, 270N in real time. Although the components of device tracking module 206 are described in detail below, additional details regarding an example implementation of module 206 are provided above in connection with instructions 122-128 of FIG. 1.
  • Tracking module 207 uses interface 202 to track the locations of mobile devices 270A, 270N. Specifically, tracking module 207 can poll each mobile device 270A, 270N for a current location at regular intervals. In other cases, the tracking module 207 may determine the location of mobile devices 270A, 270N by using network-based triangulation (e.g., mobile towers, networking devices, etc.). Tracking module 207 can then store the polled locations for the mobile devices 270A, 270N as device location data 216 in data store 212. The location of each mobile device 270A, 270N can be stored as coordinates that correspond to a point in a geographic coordinate system.
  • network-based triangulation e.g., mobile towers, networking devices, etc.
  • Proximity module 208 is configured to make proximity determinations for mobile devices 270A, 270N and points of interest (POi's). Initially, proximity module 208 can generating bounding rectangles for each of the POI's. Specifically, proximity module 208 can retrieve a POI location for each POi from POI location data 218 in storage device 210 and then use the POI location and a proximity threshold to create a bounding rectangle for each POI. For example, latitude and longitude ranges for the POI can be calculated as shown below:
  • d is the proximity threshold in centimeters.
  • the proximity threshold may be stored in data store 212 as proximity data 214, tn this example, the latitudinal range is used as the height of die bounding rectangle, and the longitudinal range is used as the width of the bounding rectangle.
  • proximity module 208 can use spatial module 210 to determine if any of the mobile devices 270A, 270N are proximate to any of the POi's.
  • Spatial module 210 is configured to perform spatial comparisons such as determining if two spatial objects intersect. If a current location of a mobile device 270A, 270N intersects a bounding rectangle for a POI, it can be determined that the mobile device 270A, 270N is proximate to the POI.
  • Proximity module 208 can be configured to continually determine whether any of the mobile devices 270A, 270N is proximate to any of the POI's.
  • proximity module 208 may send a notification to the mobile device 270A, 270N that identifies the nearby POI.
  • notifications can be used by, for example, navigation applications, augmented reality applications, or other location-based applications executing on mobile device 270A, 270N.
  • spatial module 210 may determine if a current location of a mobile device 270A, 270N intersects a bounding rectangle of a POI by performing a mathematical comparison to determine if the current location falls within the bounds. For example, a mobile device 270A, 270N can be determined to proximate to the POI if:
  • Data store 212 is configured to maintain data accessible to computing device 200.
  • data store 212 may include one or more hard disk drives, solid state drives, tape drives, and/or any other storage devices.
  • the storage devices may be located in computing device 200 and/or in another device in communication with computing device 200.
  • Each mobile device 270A, 270N may correspond to a smartphone, tablet, laptop : gaming device, or other mobile device that is equipped with a positioning module 274.
  • mobile device N 270N also includes components similar to those of mobile device A 270A though the components are not shown.
  • Device interface 272 manages communications with computing device 202. Specifically, the device interface 272 may initiate connections with computing device 200 and then send or receive data (e.g., location data, application data, etc.) to/from computing device 200.
  • data e.g., location data, application data, etc.
  • Positioning module 274 is configured to determine a current location of mobile device A 270A.
  • positioning modules 274 include, but are not limited to, GPS modules, network triangulation modules, etc.
  • positioning module 274 may determine the current location of mobile device A 270A at regular intervals. The locations can then be used by application module 276 to provide a user with services.
  • application module 276 may correspond to a mapping application, where the current location of mobile device A 270A is used to track the position of the user in a displayed map.
  • application module 276 may correspond to a gaming application, where the current location of mobile device A 270A is used to update a heads-up overlay with gaming elements for the user.
  • FIG. 3 is a flowchart of an example method 300 for execution by a computing device 100 for providing fast proximity detection. Although execution of method 300 is described below with reference to computing device 100 of FIG. 1 , other suitable devices for execution of method 300 may be used, such as computing device 200 of FIG. 2. Method 300 may be implemented in the form of executable instructions stored on a machine-readable storage medium and/or in the form of electronic circuitry.
  • Method 300 may start in block 305 and continue to block 310, where computing device 100 uses point of interest coordinates and a proximity threshold to determine latitudinal and longitudinal proximity ranges.
  • a bounding rectangle is generated based on the latitudinal and longitudinal proximity ranges. The bounding rectangle corresponds to an area that is considered to be proximate to the point of interest.
  • a current location of a mobile device is obtained.
  • the mobile device can use a positioning module to determine its current location and then send the current location to computing device 100.
  • computing device 100 performs a spatial comparison to determine if the current location intersects the bounding rectangle.
  • the spatial comparison can be performed as simple mathematical comparison that determine if the coordinates of the first location are within the bounds of the bounding rectangle.
  • Method 300 may subsequently proceed to block 330, where method 300 may stop.
  • FIG. 4 is a flowchart of an example method 400 for execution by an example computing device 200 for detecting spatial proximity for a set of mobile devices. Although execution of method 400 is described below with reference to computing device 200 of FIG. 2, other suitable devices for execution of method 400 may be used, such as computing device 100 of FIG. 1.
  • Method 400 may be implemented in the form of executable instructions stored on a machine-readable storage medium and/or in the form of electronic circuitry.
  • Method 400 may start in block 405 and continue to block 410. where computing device 200 loads a point of interest list.
  • the point of interest list includes coordinates for each point of interest.
  • a bounding rectangle is generated for each POI based on the coordinates of the POI and a proximity threshold. Each bounding rectangle corresponds to an area that is considered proximate to the corresponding POI.
  • current locations are obtained for a set of mobile devices. For example, mobile phones in a cell network can be tracked in real time such that their current locations are periodically updated in a database.
  • a spatial comparison of the current locations and the bounding rectangles is performed. If none of the current locations intersect any of the bounding rectangles, method 400 can return to block 420 to further monitor the current locations of the mobile devices.
  • a notification can be sent to the corresponding mobile device that specifies a POI that is proximate to the mobile device in block 445.
  • mobile applications e.g., mapping applications, augmented reality games, etc.
  • Method 400 may subsequently proceed to block 445, where method 400 may stop.
  • FIG. 5 is a block diagram showing a bounding rectangle 500 of a point of interest (POI) 502 that can be used for fast proximity detection.
  • the bounding rectangle 500 was generated using a proximity threshold 504.
  • two comers 506, 508 of the bounding rectangle 500 have been determined based on latitudinal and longitudinal ranges that reflect the proximity threshold 504.
  • a current location 51 OA of a mobile device A (not shown) is shown to be proximate to PO! 502 because it intersects the bounding rectangle 500.
  • a current location 510B of a mobile device B (not shown) is shown to not be proximate to POI 502 because it fails to intersect the bounding rectangle 500
  • the foregoing disclosure describes a number of examples for fast proximity detection by using bounding rectangles.
  • the examples disclosed herein allow for the faster proximity detection by using the bounding rectangles to avoid trigonometric calculations.
  • the mathematical calculations facilitated by spatial comparisons using the bounding rectangles allow for mobile device locations to be processed without the use of a FPU, which greatly reduces wait and processing times in the CPU.

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Navigation (AREA)

Abstract

Examples relate to fast proximity detection for mobile devices. In some examples, a point of interest latitude of a point of interest and a proximity threshold are used to determine a latitudinal range for the point of interest, and a point of interest longitude of the point of interest and the proximity threshold are used to determine a longitudinal range for the point of interest. At this stage, a bounding rectangle is generated based on the latitudinal range and the longitudinal range. A current location of a mobile device is obtained. A spatial comparison is then performed to determine that the current location intersects the bounding rectangle.

Description

FAST PROXIMITY DETECTION
BACKGROUND
[0001] Consumer mobile devices, such as smartphones and tablets, typica!iy include a positioning moduie for determining the location of the devices (e.g., global positioning system (GPS) sensors). Such positioning modules can be used to provide location-based services such as identifying and navigating to points of interest. Typically, the coordinates of a mobile device and the coordinates of the point of interest are used to determine the user's distance and direction with respect to the point of interest.
BRIEF DESCRIPTION OF THE DRAWINGS
[0002] The following detailed description references the drawings, wherein:
[0003] FIG. 1 is a block diagram of an example computing device for providing fast proximity detection;
[0004] FIG. 2 is a block diagram of an example system for providing fast proximity detection;
[0005] FIG. 3 is a flowchart of an example method for execution by a computing device for providing fast proximity detection;
[0006] FIG. 4 is a flowchart of an example method for execution by an example computing device for detecting spatial proximity for a set of mobile devices; and
[0007] FIG. 5 is an example block diagram showing a bounding rectangle of a point of interest that can be used for fast proximity detection.
DETAILED DESCRIPTION
[0008] As discussed above, consumer mobile devices use positioning modules to take advantage of iocation-based services. For example, either Haversine's or Vincenty's formula can be used to calculate the distance between user and destination. However, these formulas results into matrix calculations that are very compute intensive, demanding large amounts of hardware. [0009] Examples disclosed herein describe a method for providing fast proximity detection. The latitude and longitude of a point of interest are used to generate a bounding rectangle. The bounding rectangle can then be used to perform spatial comparisons to determine if mobile devices are proximate to the point of interest. Spatial comparisons avoid trigonometric calculations and, thus, can be performed by a generic central processing unit (CPU) rather than a floating-point unit (FPU).
[0010] In some examples, a point of interest latitude of a point of interest and a proximity threshold are used to determine a latitudinal range for the point of interest, and a point of interest longitude of the point of interest and the proximity threshold are used to determine a longitudinal range for the point of interest. At this stage, a bounding rectangle is generated based on the latitudinal range and the longitudinal range. A current location of a mobile device is obtained. A spatial comparison is then performed to determine that the current location intersects the bounding rectangle.
[001 1 ] Referring now to the drawings, FIG. 1 is a block diagram of an example computing device 100 for providing fast proximity detection. Computing device 100 may be any computing device (e.g., server, desktop computer, etc) with access to other computing devices such as mobile devices. In FIG. 1 , computing device 100 includes a processor 110, a network interface 115, and a machine- readable storage medium 120.
[0012] Processor 110 may be one or more central processing units (CPUs), microprocessors, and/or other hardware devices suitable for retrieval and execution of instructions stored in machine-readable storage medium 120. Processor 110 may fetch, decode, and execute instructions 122, 124, 126, 128 to enable providing fast proximity detection, as described below. As an alternative or in addition to retrieving and executing instructions, processor 1 10 may include one or more electronic circuits comprising a number of electronic components for performing the functionality of one or more of instructions 122, 124, 126, 128.
[0013] Network interface 1 15 may include a number of electronic components for communicating with cloud devices. For example, network interface 115 may be an Ethernet interface, a Universal Serial Bus (USB) interface, an IEEE 1394 (Firewire) interface, an external Serial Advanced Technology Attachment (eSATA) interface, or any other physical connection interface suitable for communication with other computing devices. Alternatively, network interface 115 may be a wireless interface, such as a wireless local area network (WLAN) interface or a near-field communication (NFC) interface. In operation, as detailed below, network interface 115 may be used to send and receive data to and from a corresponding interface of a mobile device.
[0014] Machine-readable storage medium 120 may be any electronic, magnetic, optical, or other physical storage device that stores executable instructions. Thus, machine-readable storage medium 120 may be, for example, Random Access Memory (RAM), an Electrically-Erasable Programmable Read-Only Memory (EEPROM). a storage drive, an optical disc, and the like. As described in detail below, machsne-readabfe storage medium 120 may be encoded with executable instructions for providing fast proximity detection.
[0015] Proximity range determining instructions 122 determine latitudinal and longitudinal ranges for a point of interest. A point of interest (POI) corresponds to a geographic location that may be of interest to a user such as a museum, restaurant, park, etc. The geographic location is expressed as coordinates that include a latitude and longitude, which can be used to determine the position of the POI in a geographic coordinate system. Proximity range determining instructions 122 use the coordinates of the POI and a proximity threshold to determine the latitudinal and longitudinal ranges for the POI. Specifically, the latitude of the POI and the proximity threshold can be used to determine a latitudinal range, and the longitude of the POI and the proximity threshold can be used to determine a longitudinal range. The proximity threshold is a distance that a mobile device should be within to be considered proximate to the POI.
[0016] Bounding rectangle generating instructions 124 generate a bounding rectangle based on the latitudinal and longitudinal ranges. The bounding rectangle includes the latitudes within the latitudinal range and the longitudes within the longitudinal range, For example in a geographic coordinate system, the bounding rectangle has a width and height that is twice the distance of the proximity threshold, where the longitude range is goes from east to west and the longitudinal range goes from north to south. Any location that intersects the bounding rectangle in the geographic coordinate system is considered to be proximate to the POI.
[0017] Device location obtaining instructions 126 obtain the location of a mobile device. For example, a current location of the mobile device can be monitored in real-time and stored in a database accessible to device location obtaining instructions 126. In this example, the mobile device determines its current location using a positioning module such as a GPS module. The positioning module may be used by the mobile device at regular intervals to track the mobile device while it travels such that the current position of the mobile device is monitored by computing device 100 in real-time.
[0018] Spatial comparison performing instructions 128 determine if the current location of the mobile device intersects the bounding rectangle of the POI. If the current location does intersect the bounding rectangle, computing device 100 can send a notification to mobile device that it is proximate to the POI. Because a spatial comparison is performed, the locations of any number of mobile devices can be considered simultaneously, where notifications are sent to the proximate mobile devices. The simultaneously comparison allows determinations related to proximity to be performed more efficiently and without trigonometric calculations.
[0019] FIG. 2 is a block diagram of an example computing device 200 in communication via a network 245 with mobile devices 270A, 270N. As illustrated in FIG. 2 and described below, computing device 200 may communicate with mobile devices 270A, 270N to provide fast proximity detection.
[0020] As illustrated, computing device 200 may include a number of modules 202-210. Each of the modules may include a series of instructions encoded on a machine-readable storage medium and executable by a processor of the computing device 200. In addition or as an alternative, each module may include one or more hardware devices including electronic circuitry for implementing the functionality described below.
[0021] As with computing device 100 of FIG. 1 , computing device 200 may be a server, desktop computer, or any other device suitable for executing the functionality described below.
[0022] interface module 202 manages communications with mobile devices 270A, 270N. Specifically, the interface module 202 may initiate connections with mobile devices 270A, 270N and then send or receive data to/from mobile devices 270A, 270N.
[0023] Device tracking module 206 tracks mobile devices 270A, 270N in real time. Although the components of device tracking module 206 are described in detail below, additional details regarding an example implementation of module 206 are provided above in connection with instructions 122-128 of FIG. 1.
[0024] Tracking module 207 uses interface 202 to track the locations of mobile devices 270A, 270N. Specifically, tracking module 207 can poll each mobile device 270A, 270N for a current location at regular intervals. In other cases, the tracking module 207 may determine the location of mobile devices 270A, 270N by using network-based triangulation (e.g., mobile towers, networking devices, etc.). Tracking module 207 can then store the polled locations for the mobile devices 270A, 270N as device location data 216 in data store 212. The location of each mobile device 270A, 270N can be stored as coordinates that correspond to a point in a geographic coordinate system.
[0025] Proximity module 208 is configured to make proximity determinations for mobile devices 270A, 270N and points of interest (POi's). Initially, proximity module 208 can generating bounding rectangles for each of the POI's. Specifically, proximity module 208 can retrieve a POI location for each POi from POI location data 218 in storage device 210 and then use the POI location and a proximity threshold to create a bounding rectangle for each POI. For example, latitude and longitude ranges for the POI can be calculated as shown below:
Figure imgf000008_0001
Where d is the proximity threshold in centimeters. The proximity threshold may be stored in data store 212 as proximity data 214, tn this example, the latitudinal range is used as the height of die bounding rectangle, and the longitudinal range is used as the width of the bounding rectangle.
[0026] After a bounding rectangle is generated for each POI, proximity module 208 can use spatial module 210 to determine if any of the mobile devices 270A, 270N are proximate to any of the POi's. Spatial module 210 is configured to perform spatial comparisons such as determining if two spatial objects intersect. If a current location of a mobile device 270A, 270N intersects a bounding rectangle for a POI, it can be determined that the mobile device 270A, 270N is proximate to the POI. Proximity module 208 can be configured to continually determine whether any of the mobile devices 270A, 270N is proximate to any of the POI's. When a proximate mobile device 270A, 270N is detected, proximity module 208 may send a notification to the mobile device 270A, 270N that identifies the nearby POI. Such notifications can be used by, for example, navigation applications, augmented reality applications, or other location-based applications executing on mobile device 270A, 270N.
[0027] In some cases, spatial module 210 may determine if a current location of a mobile device 270A, 270N intersects a bounding rectangle of a POI by performing a mathematical comparison to determine if the current location falls within the bounds. For example, a mobile device 270A, 270N can be determined to proximate to the POI if:
Figure imgf000008_0002
Where U is the current location, P4 is a comer of the bounding rectangle, and P6 is the opposite comer of the bounding rectangle. [0028] Data store 212 is configured to maintain data accessible to computing device 200. For example, data store 212 may include one or more hard disk drives, solid state drives, tape drives, and/or any other storage devices. The storage devices may be located in computing device 200 and/or in another device in communication with computing device 200.
[0029] Each mobile device 270A, 270N may correspond to a smartphone, tablet, laptop: gaming device, or other mobile device that is equipped with a positioning module 274. In this example, mobile device N 270N also includes components similar to those of mobile device A 270A though the components are not shown.
[0030] Device interface 272 manages communications with computing device 202. Specifically, the device interface 272 may initiate connections with computing device 200 and then send or receive data (e.g., location data, application data, etc.) to/from computing device 200.
[0031] Positioning module 274 is configured to determine a current location of mobile device A 270A. Examples of positioning modules 274 include, but are not limited to, GPS modules, network triangulation modules, etc. As mobile device A 270A changes position, positioning module 274 may determine the current location of mobile device A 270A at regular intervals. The locations can then be used by application module 276 to provide a user with services. For example, application module 276 may correspond to a mapping application, where the current location of mobile device A 270A is used to track the position of the user in a displayed map. In another example, application module 276 may correspond to a gaming application, where the current location of mobile device A 270A is used to update a heads-up overlay with gaming elements for the user.
[0032] FIG. 3 is a flowchart of an example method 300 for execution by a computing device 100 for providing fast proximity detection. Although execution of method 300 is described below with reference to computing device 100 of FIG. 1 , other suitable devices for execution of method 300 may be used, such as computing device 200 of FIG. 2. Method 300 may be implemented in the form of executable instructions stored on a machine-readable storage medium and/or in the form of electronic circuitry.
[0033] Method 300 may start in block 305 and continue to block 310, where computing device 100 uses point of interest coordinates and a proximity threshold to determine latitudinal and longitudinal proximity ranges. In block 315, a bounding rectangle is generated based on the latitudinal and longitudinal proximity ranges. The bounding rectangle corresponds to an area that is considered to be proximate to the point of interest.
[0034] in block 320, a current location of a mobile device is obtained. For example, the mobile device can use a positioning module to determine its current location and then send the current location to computing device 100. In block 325, computing device 100 performs a spatial comparison to determine if the current location intersects the bounding rectangle. In some cases, the spatial comparison can be performed as simple mathematical comparison that determine if the coordinates of the first location are within the bounds of the bounding rectangle. Method 300 may subsequently proceed to block 330, where method 300 may stop.
[0035] FIG. 4 is a flowchart of an example method 400 for execution by an example computing device 200 for detecting spatial proximity for a set of mobile devices. Although execution of method 400 is described below with reference to computing device 200 of FIG. 2, other suitable devices for execution of method 400 may be used, such as computing device 100 of FIG. 1. Method 400 may be implemented in the form of executable instructions stored on a machine-readable storage medium and/or in the form of electronic circuitry.
[0036] Method 400 may start in block 405 and continue to block 410. where computing device 200 loads a point of interest list. The point of interest list includes coordinates for each point of interest. In block 415, a bounding rectangle is generated for each POI based on the coordinates of the POI and a proximity threshold. Each bounding rectangle corresponds to an area that is considered proximate to the corresponding POI. [0037] In block 420, current locations are obtained for a set of mobile devices. For example, mobile phones in a cell network can be tracked in real time such that their current locations are periodically updated in a database. In block 435, a spatial comparison of the current locations and the bounding rectangles is performed. If none of the current locations intersect any of the bounding rectangles, method 400 can return to block 420 to further monitor the current locations of the mobile devices.
[0038] If some of the current locations intersect any of the bounding rectangles, a notification can be sent to the corresponding mobile device that specifies a POI that is proximate to the mobile device in block 445. In this manner, mobile applications (e.g., mapping applications, augmented reality games, etc.) provided by the mobile devices can provide location-based functionality based on the notifications. Method 400 may subsequently proceed to block 445, where method 400 may stop.
[0039] FIG. 5 is a block diagram showing a bounding rectangle 500 of a point of interest (POI) 502 that can be used for fast proximity detection. The bounding rectangle 500 was generated using a proximity threshold 504. Specifically, two comers 506, 508 of the bounding rectangle 500 have been determined based on latitudinal and longitudinal ranges that reflect the proximity threshold 504. In this example, a current location 51 OA of a mobile device A (not shown) is shown to be proximate to PO! 502 because it intersects the bounding rectangle 500. Further, a current location 510B of a mobile device B (not shown) is shown to not be proximate to POI 502 because it fails to intersect the bounding rectangle 500
[0040] The foregoing disclosure describes a number of examples for fast proximity detection by using bounding rectangles. In this manner, the examples disclosed herein allow for the faster proximity detection by using the bounding rectangles to avoid trigonometric calculations. The mathematical calculations facilitated by spatial comparisons using the bounding rectangles allow for mobile device locations to be processed without the use of a FPU, which greatly reduces wait and processing times in the CPU.

Claims

CLAIMS We ciaim:
1. A computing device for fast proximity detection, comprising:
a device interface to connect to a plurality of mobile devices, wherein each of the plurality of mobile devices includes a positioning module; and
a processor to:
use a point of interest latitude of a point of interest and a proximity threshold to determine a latitudinal range for the point of interest;
use a point of interest longitude of the point of interest and the proximity threshold to determine a longitudinal range for the point of interest;
generate a bounding rectangle based on the latitudinal range and the longitudinal range;
obtain a current location of a first mobile device of the plurality of mobile devices; and
perform a spatial comparison to determine that the current location intersects the bounding rectangle.
2. The computing device of claim 1 , wherein the current location is one of a plurality of current locations that are obtained for the plurality of mobile devices, and wherein the spatial comparison determines an intersecting subset of the plurality of current locations that intersect the bounding rectangle.
3. The computing device of ciaim 2, wherein the processor performs the spatial comparison without using a floating point unit.
4. The computing device of claim 2, wherein the plurality of current locations are updated dynamically based on a movement of each of the plurality of mobile devices.
5- The computing device of claim 1 , wherein the point of interest is of a plurality of points of interest, and wherein a corresponding bounding rectangle of a plurality of bounding rectangles is generated for each of the plurality of points of interest.
6. The computing device of claim 1 , wherein the processor is further to send a notification to the mobile device that the current location is proximate to the point of interest.
7. A method for fast proximity detection, comprising.
using, by a processor, a point of interest latitude of a point of interest and a proximity threshold to determine a latitudinal range for the point of interest; using a point of interest longitude of the point of interest and the proximity threshold to determine a longitudinal range for the point of interest;
generating a bounding rectangle based on the latitudinal range and the longitudinal range;
obtaining a current location of a first mobile device of a plurality of mobile devices; and
performing, by the processor, a spatial comparison to determine that the current location intersects the bounding rectangle, wherein the processor performs the spatial comparison without using a floating point unit.
8. The method of claim 7, wherein the current location is one of a plurality of current locations that are obtained for the plurality of mobile devices, and wherein the spatial comparison determines an intersecting subset of the plurality of current locations that intersect the bounding rectangle.
9. The method of claim 8, wherein the plurality of current locations are updated dynamically based on a movement of each of the plurality of mobile devices.
10. The method of claim 7, wherein the point of interest is of a plurality of points of interest, and wherein a corresponding bounding rectangle of a plurality of bounding rectangles is generated for each of the plurality of points of interest.
11. The method of claim 7, wherein the spatial comparison is performed for the current location and each of the plurality of bounding rectangles.
12. A non-transitory machine-readable storage medium encoded with instructions executable by a processor for fast proximity detection, the machine- readable storage medium comprising instructions to:
use a point of interest latitude of a point of interest and a proximity threshold to determine a latitudinal range for the point of interest;
use a point of interest longitude of the point of interest and the proximity threshold to determine a longitudinal range for the point of interest;
generate a bounding rectangle based on the latitudinal range and the longitudinal range;
obtain a plurality of current locations for a plurality of mobile devices; and perform a spatial comparison to determine that an intersecting subset of the plurality of current locations intersect the bounding rectangle.
13. The non-transitory machine-readable storage of claim 12, wherein the plurality of current locations are updated dynamically based on a movement of each of the plurality of mobile devices.
14. The non-transitory machine-readable storage of claim 12, wherein the point of interest is of a plurality of points of interest, and wherein a corresponding bounding rectangle of a plurality of bounding rectangles is generated for each of the plurality of points of interest.
15. The non-transitory machine-readable storage of claim 12, wherein the machine-readable storage medium further comprises instructions to send a notification to the plurality of mobile devices that a corresponding current location of the plurality of current locations is proximate to the point of interest.
PCT/US2015/012547 2015-01-22 2015-01-22 Fast proximity detection WO2016118148A1 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
PCT/US2015/012547 WO2016118148A1 (en) 2015-01-22 2015-01-22 Fast proximity detection

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
PCT/US2015/012547 WO2016118148A1 (en) 2015-01-22 2015-01-22 Fast proximity detection

Publications (1)

Publication Number Publication Date
WO2016118148A1 true WO2016118148A1 (en) 2016-07-28

Family

ID=56417519

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/US2015/012547 WO2016118148A1 (en) 2015-01-22 2015-01-22 Fast proximity detection

Country Status (1)

Country Link
WO (1) WO2016118148A1 (en)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN110727793A (en) * 2018-06-28 2020-01-24 百度在线网络技术(北京)有限公司 Method, device, terminal and computer readable storage medium for area identification

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20120001928A1 (en) * 2005-03-07 2012-01-05 Networks In Motion, Inc. Method and system for identifying and defining geofences
US20140019554A1 (en) * 2009-11-06 2014-01-16 Waldeck Technology, Llc Crowd Formation Based On Physical Boundaries And Other Rules
US8666434B1 (en) * 2013-03-05 2014-03-04 Google Inc. Adaptive location updating
US20140274145A1 (en) * 2013-03-15 2014-09-18 The Hub Companies, Llc Location based filtering of targeted content for mobile devices
US20150005012A1 (en) * 2013-06-28 2015-01-01 Google Inc. Clustering geofence-based alerts for mobile devices

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20120001928A1 (en) * 2005-03-07 2012-01-05 Networks In Motion, Inc. Method and system for identifying and defining geofences
US20140019554A1 (en) * 2009-11-06 2014-01-16 Waldeck Technology, Llc Crowd Formation Based On Physical Boundaries And Other Rules
US8666434B1 (en) * 2013-03-05 2014-03-04 Google Inc. Adaptive location updating
US20140274145A1 (en) * 2013-03-15 2014-09-18 The Hub Companies, Llc Location based filtering of targeted content for mobile devices
US20150005012A1 (en) * 2013-06-28 2015-01-01 Google Inc. Clustering geofence-based alerts for mobile devices

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN110727793A (en) * 2018-06-28 2020-01-24 百度在线网络技术(北京)有限公司 Method, device, terminal and computer readable storage medium for area identification

Similar Documents

Publication Publication Date Title
US9154919B2 (en) Localization systems and methods
US9432964B2 (en) Method and apparatus for determining locations of access points
US10117061B2 (en) Systems and methods to track movement of a device in an indoor environment
US20140195149A1 (en) Positioning and mapping based on virtual landmarks
US20150230054A1 (en) Virtual geographic perimeters made up of multiple component shapes
JP6684226B2 (en) Location error radius judgment
US11454501B2 (en) Providing constraint to a position
US11864152B2 (en) Location determination using acoustic-contextual data
US20210127225A1 (en) Complex geofence definition
US10871547B1 (en) Radiofrequency based virtual motion model for localization using particle filter
US20160124069A1 (en) Systems and methods for estimating a two-dimensional position of a receiver
US9612121B2 (en) Locating position within enclosure
KR102612792B1 (en) Electronic device and method for determining entry in region of interest thereof
WO2016118148A1 (en) Fast proximity detection
TWI583984B (en) System and method for regional positioning
JP2014107587A (en) Electronic device and control program for the same
US10545218B2 (en) Obtaining radiomaps
EP3872516A1 (en) Positioning technology selection for geo-fence
US10254378B1 (en) Mobile device localization based on relative received signal strength indicators
JP2021124478A (en) Location estimation device, location estimation method and location estimation program
EP3863310A1 (en) Checking desired triggering confidence of geo-fence
Wang et al. Three Dimensional Localization Technology for Mobile Device Based on WLAN

Legal Events

Date Code Title Description
121 Ep: the epo has been informed by wipo that ep was designated in this application

Ref document number: 15879173

Country of ref document: EP

Kind code of ref document: A1

NENP Non-entry into the national phase

Ref country code: DE

122 Ep: pct application non-entry in european phase

Ref document number: 15879173

Country of ref document: EP

Kind code of ref document: A1