GB2520713A - Position determination - Google Patents
Position determination Download PDFInfo
- Publication number
- GB2520713A GB2520713A GB1321011.7A GB201321011A GB2520713A GB 2520713 A GB2520713 A GB 2520713A GB 201321011 A GB201321011 A GB 201321011A GB 2520713 A GB2520713 A GB 2520713A
- Authority
- GB
- United Kingdom
- Prior art keywords
- ordinates
- polygon
- current position
- polygons
- processor
- Prior art date
- Legal status (The legal status 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 status listed.)
- Withdrawn
Links
Classifications
-
- G—PHYSICS
- G01—MEASURING; TESTING
- G01S—RADIO DIRECTION-FINDING; RADIO NAVIGATION; DETERMINING DISTANCE OR VELOCITY BY USE OF RADIO WAVES; LOCATING OR PRESENCE-DETECTING BY USE OF THE REFLECTION OR RERADIATION OF RADIO WAVES; ANALOGOUS ARRANGEMENTS USING OTHER WAVES
- G01S5/00—Position-fixing by co-ordinating two or more direction or position line determinations; Position-fixing by co-ordinating two or more distance determinations
- G01S5/02—Position-fixing by co-ordinating two or more direction or position line determinations; Position-fixing by co-ordinating two or more distance determinations using radio waves
- G01S5/0252—Radio frequency fingerprinting
-
- G—PHYSICS
- G01—MEASURING; TESTING
- G01C—MEASURING DISTANCES, LEVELS OR BEARINGS; SURVEYING; NAVIGATION; GYROSCOPIC INSTRUMENTS; PHOTOGRAMMETRY OR VIDEOGRAMMETRY
- G01C21/00—Navigation; Navigational instruments not provided for in groups G01C1/00 - G01C19/00
- G01C21/38—Electronic maps specially adapted for navigation; Updating thereof
- G01C21/3863—Structures of map data
- G01C21/3867—Geometry of map features, e.g. shape points, polygons or for simplified maps
-
- G—PHYSICS
- G01—MEASURING; TESTING
- G01C—MEASURING DISTANCES, LEVELS OR BEARINGS; SURVEYING; NAVIGATION; GYROSCOPIC INSTRUMENTS; PHOTOGRAMMETRY OR VIDEOGRAMMETRY
- G01C21/00—Navigation; Navigational instruments not provided for in groups G01C1/00 - G01C19/00
- G01C21/26—Navigation; Navigational instruments not provided for in groups G01C1/00 - G01C19/00 specially adapted for navigation in a road network
- G01C21/28—Navigation; Navigational instruments not provided for in groups G01C1/00 - G01C19/00 specially adapted for navigation in a road network with correlation of data from several navigational instruments
- G01C21/30—Map- or contour-matching
-
- G—PHYSICS
- G01—MEASURING; TESTING
- G01S—RADIO DIRECTION-FINDING; RADIO NAVIGATION; DETERMINING DISTANCE OR VELOCITY BY USE OF RADIO WAVES; LOCATING OR PRESENCE-DETECTING BY USE OF THE REFLECTION OR RERADIATION OF RADIO WAVES; ANALOGOUS ARRANGEMENTS USING OTHER WAVES
- G01S19/00—Satellite radio beacon positioning systems; Determining position, velocity or attitude using signals transmitted by such systems
- G01S19/01—Satellite radio beacon positioning systems transmitting time-stamped messages, e.g. GPS [Global Positioning System], GLONASS [Global Orbiting Navigation Satellite System] or GALILEO
- G01S19/13—Receivers
- G01S19/14—Receivers specially adapted for specific applications
-
- G—PHYSICS
- G01—MEASURING; TESTING
- G01S—RADIO DIRECTION-FINDING; RADIO NAVIGATION; DETERMINING DISTANCE OR VELOCITY BY USE OF RADIO WAVES; LOCATING OR PRESENCE-DETECTING BY USE OF THE REFLECTION OR RERADIATION OF RADIO WAVES; ANALOGOUS ARRANGEMENTS USING OTHER WAVES
- G01S19/00—Satellite radio beacon positioning systems; Determining position, velocity or attitude using signals transmitted by such systems
- G01S19/38—Determining a navigation solution using signals transmitted by a satellite radio beacon positioning system
- G01S19/39—Determining a navigation solution using signals transmitted by a satellite radio beacon positioning system the satellite radio beacon positioning system transmitting time-stamped messages, e.g. GPS [Global Positioning System], GLONASS [Global Orbiting Navigation Satellite System] or GALILEO
- G01S19/42—Determining position
-
- G—PHYSICS
- G01—MEASURING; TESTING
- G01S—RADIO DIRECTION-FINDING; RADIO NAVIGATION; DETERMINING DISTANCE OR VELOCITY BY USE OF RADIO WAVES; LOCATING OR PRESENCE-DETECTING BY USE OF THE REFLECTION OR RERADIATION OF RADIO WAVES; ANALOGOUS ARRANGEMENTS USING OTHER WAVES
- G01S5/00—Position-fixing by co-ordinating two or more direction or position line determinations; Position-fixing by co-ordinating two or more distance determinations
- G01S5/02—Position-fixing by co-ordinating two or more direction or position line determinations; Position-fixing by co-ordinating two or more distance determinations using radio waves
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/29—Geographical information databases
-
- G—PHYSICS
- G09—EDUCATION; CRYPTOGRAPHY; DISPLAY; ADVERTISING; SEALS
- G09B—EDUCATIONAL OR DEMONSTRATION APPLIANCES; APPLIANCES FOR TEACHING, OR COMMUNICATING WITH, THE BLIND, DEAF OR MUTE; MODELS; PLANETARIA; GLOBES; MAPS; DIAGRAMS
- G09B29/00—Maps; Plans; Charts; Diagrams, e.g. route diagram
- G09B29/10—Map spot or coordinate position indicators; Map reading aids
- G09B29/106—Map spot or coordinate position indicators; Map reading aids using electronic means
Landscapes
- Engineering & Computer Science (AREA)
- Remote Sensing (AREA)
- Radar, Positioning & Navigation (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Automation & Control Theory (AREA)
- Theoretical Computer Science (AREA)
- Geometry (AREA)
- Databases & Information Systems (AREA)
- Computer Networks & Wireless Communication (AREA)
- Data Mining & Analysis (AREA)
- General Engineering & Computer Science (AREA)
- Mathematical Physics (AREA)
- Business, Economics & Management (AREA)
- Educational Administration (AREA)
- Educational Technology (AREA)
- Navigation (AREA)
- Position Fixing By Use Of Radio Waves (AREA)
Abstract
A positioning system for a mobile communications device. A wireframe representation map with polygons representing geographical boundaries is stored in memory as vertex reference co-ordinates, also with co-ordinates of rectangular boxes bounding each polygon. Co-ordinates of a current position are received by GPS or cellular triangulation, and a processor determines which of the polygons the position co-ordinates fall within, using the number of intersections with boundary boxes or polygon(s) made by a lines extending in a single direction from the current position.
Description
Position Determination
Field of the Invention
The present invention relates to position determination, particularly, though not exclusively, for a mobile communications device.
Background of the Invention
Mobile communications devices (including mobile telephones, tablet computers, and PDAs) often include software and hardware for geographic positioning and the display of a map with the device's current position. Google Maps® and well-known satellite navigations systems such as those provided by TomTom® are examples.
Such known software has drawbacks. These include the file size of what is usually a highly-detailed map, which either has to be stored on memory of the device itself, or downloaded on-the-fly over a data connection. Downloading using 3G/4G can be expensive, especially when travelling overseas. For example, TomTom Europe requires about 2GB of storage space and Tomlom USA requires about 1.6GB; to cover the entire globe would not be possible on devices with limited memory. Another drawback is the reliance on GPS positioning which uses a GPS receiver and associated positioning engine to generate co-ordinates of the current position for plotting on the map.
Although accurate, GPS quickly runs down the device's battery.
Another method of obtaining the current co-ordinates, as an alternative or addition to GPS, is through a data connection, e.g. using WiFi or 3G/4G and this also affects battery life.
In both cases, storage and battery usage is a major problem, which tends to limit the use of such applications.
In some real-world applications, it is desirable to track a user's current position, but over an extended period of time; however, the above-mentioned drawbacks of existing systems tends to make this impractical.
Summary of the Invention
A first aspect of the invention provides a positioning system for a mobile communications device, comprising: memory storing a map comprised of data defining a plurality of separate polygons each representing the boundary of a geographic area; a processor configured to receive co-ordinates of a current position and to determine which of the polygons said co-ordinates fall within using the number of intersections with one or more polygon(s) made by a line extending in a given direction from the current position.
In this system, a determination of position can be made with respect to polygons which represent the borders of geographic areas, e.g. zones or territories. Such a wireframe map occupies a small file size as polygons can be defined using simple geometry and the determination is, generally speaking, one of is it inside the polygon or not' . Thus, little memory and processing power is required. Also, as will be explained below, there is no need to rely on accurate GPS or even WiN or 3G engines to determine the current position co-ordinates, although these may be used if desired. It should be appreciated that the line which intersects one or more polygon(s) is not necessarily a physical line (although it can certainly be represented visually) but is done using code.
The polygon data may comprise for each polygon a set of Cartesian co-ordinates representing each vertex thereof.
The memory may further store data representing a bounding box associated with each polygon, which bounding box surrounds and has a larger area than its associated polygon, and wherein the processor is further arranged to identify which bounding box or boxes the current position is located within prior to determining which polygon the current position is within, which determination is performed only for polygon(s) associated with the identified bounding box(es) . The bounding boxes may be rectangular, with each side corresponding respectively to the minimum and maximum values of the associated polygon along orthogonal (X, Y) axes.
The processor may be configured such that if the number of intersections with a given polygon is an odd number, then the current position is determined to be within said polygon. If the number of intersections is zero, or even, the current position is outside said polygon.
The processor may be further arranged to determine which of the polygons said co-ordinates fall within using the number of intersections with one or more polygon(s) made by a line extending in first and second, generally opposite, directions from the current position.
Each polygon may represent a boundary of a respective country or administrative region. Polygons can be much smaller however, even down to a grid of polygons e.g. 200m x 20Gm.
The processor may be further arranged to maintain on memory a log of which country or administrative region the current position falls over a period of time. The processor may be further arranged to maintain on memory a log of the cumulative time the current position falls within a given country or administrative region.
The processor may be configured to receive the current position co-ordinates from a positioning engine of the system that uses cellular trianguiation to generate the co-ordinates.
It wiil be appreciated that the position of a mobile terminal can be achieved using cellular signals without the need for GPS satellites to be visible or for there to be a WiFi or 3G/4G data connection available. Cellular positioning is a background operation that uses little battery power. The accuracy of the position comes from the co-ordinates available; whilst cell phone tower co-ordinates are not usually as accurate as GPS or WiFi co-ordinates, they can be, particularly in cities where there are more towers available.
The positioning engine may therefore operate to generate the co-ordinates autonomously from the processor which uses the co-ordinates to make the polygon determination.
The processor may further be configured to receive the current position co-ordinates from a GPS engine of the system. This is considered in the preferred embodiment an option that a user can make if they wish to obtain greater accuracy than can (at that moment in time) be offered by co-ordinates from cellular triangulation, if for just a short period of time.
The determination made by the processor may be performed automatically in the background to another application running on the system. Thus, the detsrmination can be made without the user having to execute a particular application, and can
run in the background.
The system may further comprise a display application that may be initiated by user action to display at least the current location determined by the processor.
A second aspect of the invention provides a mobile communications device, comprising: a positioning engine for generating using cellular triangulation co-ordinates indicative of the ourrent geographic position of the device; memory storing a map comprised of data defining co-ordinates for a plurality of polygons each representing the boundary of a geographic area; a processor configured to receive the co-ordinates from the positioning engine and to determine which of the polygons said co-ordinates fall within using the number of intersections with one or more polygon(s) made by a line extending in a given direction from the current position.
A third aspect of the invention provides a method of position determination, comprising: (1) receiving co-ordinates indicative of a current geographic position; (2) accessing memory storing a map comprised of data defining co-ordinates for a plurality of polygons each representing the boundary of a geographic area; (3) determining which of the polygons said current position co-ordinates fall within using the number of intersections with one or more polygon(s) made by a line extending in a given direction from the current position.
The polygon data may comprise for each polygon a set of Cartesian co-ordinates representing each vertex thereof.
The memory may further store data representing a bounding box associated with each polygon, which bounding box surrounds and has a larger area than its associated polygon, and wherein step (3) may further comprise identifying which bounding box or boxes the current position is located within prior to determining which polygon the current position is within, said determination being performed only for polygon(s) associated with the identified bounding box(es) The bounding boxes may be rectangular, with each side corresponding respectively to the minimum and maximum values of the associated polygon along orthogonal (X, Y) axes.
In step (3) the determination may be such that, if the number of intersections with a given polygon is an odd number, then the current position is determined to be within said polygon.
In step (3) the determination may be made using a line extending in first and second, generally opposite, directions from the current position.
Each polygon may represent a boundary of a respective country or administrative region. The method may further comprise the step (4) of maintaining on memory a log of which country or administrative region the current position falls over a period of time. Step (4) may comprise maintaining on memory a log of the cumulative time the current position falls within a given country or administrative region.
In step (1) , the current position co-ordinates may be received from a positioning engine that uses cellular triangulation to generate the co-ordinates.
The positioning engine may generate the co-ordinates independently of the current position determination in step (3) In step (1) the current position co-ordinates may be received from a GPS engine.
Step (3) may be performed automatically in the background to another application running on the system.
The method may further oomprise displaying at least the current location determined in step (3) on a user interface.
The method may be performed on a mobile communications device.
A fourth aspect of the invention provides a computer program comprising instructions that when executed by a computer apparatus control it to perform the method of any of preceding definition.
A fifth aspect of the invention provides a non-transitory computer-readable medium having stored thereon computer-readable code, which, when executed by computing apparatus, causes the computer apparatus to perform a method comprising: (1) receiving co-ordinates indicative of a current geographic position; (2) accessing memory storing a map comprised of data defining co-ordinates for a plurality of polygons each representing the boundary of a geographic area; (3) determining which of the polygons said current position co-ordinates fall within using the number of intersections with one or more polygon(s) made by a line extending in a given direction from the current position.
A sixth aspect of the invention provides a method of operating a mobile communications device, which device comprises a positioning engine for generating using at least cellular triangulation co-ordinates indicative of the current geographic position of the device, the positioning engine being configured to run independently of other software applications on the device, the method comprising providing a non-transient application program for storage on menory of the device which, when run by a processor of the device: accesses a map comprised of data defining co-ordinates for a plurality of polygons each representing the boundary of a geographic area; and receives from the positioning engine co-ordinates indicating the current position and determines which of the polygons said co-ordinates fall within using the number of interseotions with one or more polygon(s) made by a line extending in a given direction from the current position.
Brief Description of the Drawings
The invention will now be described by way of non-limiting example with reference to the accompanying drawings, in which: Figure 1 is a perspective view of a mobile communications terminal; Figure 2 is a block diagram of functional components of the Figure 1 terminal; Figure 3 is a block diagram of functional software components of an application program in accordance with the invention for being run on the Figure 1 terminal; Figure 4 is a map used by the application program of Figure 3; Figure 5 is a graphical representation of the Figure 4 map; Figure 6 is a further graphical representation of the Figure 4 map, including bounding boxes; Figure 7 is a flow diagram showing processing stages of a position determination algorithm according to the invention that forms part of the Figure 3 application program; Figure 8 is a flow diagram showing processing stages of a polygon intersection algorithm that forms part of the Figure 7 process; Figure 9 is a graphical representation of the Figure 4 map showing one example of how the position derermination algorithm of Figures 7 and 8 is applied; Figure 10 is a graphical representation of the Figure 4 map showing a further example of how the position derermination algorithm of Figures 7 and 8 is applied; and Figures U(a)-(c) are screenshots of the application program Figure 3.
Detailed Description of a Preferred Embodiment
The embodiment below relates to an application program that is configured to be executed by a processor of a portable communicates terminal (hereafter terminal") which can be of any form, such as, but not limited to, a mobile telephone, smart phone, tablet computer, laptop or PDA. The application program can be downloaded from a remote server in any conventional manner, e.g. wirelessly or through a wired cable, and can be updated from time to time.
More specifically, the application program is configured to determine which country the terminal is located in. As will be clear, the principle can be applied to any size of geographic zone or territory, e.g. at a continental, country, county or state level. The determination can be stored in memory over a period of time so that the user can understand how much cumulative time is logged in one or more given countries. The latter has particular advantages for people who need to know, and perhaps prove, their whereabouts over a particular time frame, e.g. for taxation purposes.
Referring to Figure 1, a typical terminal 1 is shown. The terminal 1 comprises a casing 3, a display 5, a microphone 7, and a speaker 9. Hardware keys (not shown) may also be present.
Figure 2 shows a schematic diagram of the components of terminal 1. The terminal 1 has a controller 11 which may take any suitable form, for example a processor, microcontroller or multiples thereof.
The display 5 comprises a display screen part 15 and a tactile touch interface part 17. Hard keys 19 may be provided. A memory 21 is also provided, which may be a non-volatile memory such as a solid state memory, hard disk drive or read only memory (ROM) . The memory 21 stores, amongst other things, an operating system 41 and one or more software applications 43.
RAM 23 is used by the controller 11 for the temporary storage of data. The operating system 41 may contain code which, when executed by the controller 11 in conjunction with RAM 23, controls operation of each of the hardware components of the terminal 1.
The terminal 1 also comprises a speaker 25 and a microphone 27. A wireless communication module 29 and associated antenna 31 provide for cellular and data communications in the usual manner. Typical protocols employed include one or more of GSM, CDMA, UMTS, Bluetooth and IEEE 802.11 (WiFi) to give some
examples.
A battery (not shown) provides power to the components. The controller 11 is connected to each of the other components in order to control operation thereof.
A GPS engine 33 and associated GPS antenna 35 is also present in this case. The GPS engine 33 works in the conventional way to decode signals issued from in-sight GPS satellites and to generate cc-ordinates of current position. The GPS engine 33 does consume appreciable power from the battery, however.
One of said software applications 43 stored on memory 21 is a dedicated application (or App") configured to determine using the position of the terminal 1 which of a plurality of zones defined by a map (which zones in this case correspond to countries) the terminal is in.
As will become clear, the map defines the countries using polygons. Each polygon corresponds to the border of a country and is defined by Cartesian co-ordinates for vertex points of the polygon. Therefore, identifying which polygon the current co-ordinates are within enables country-level positioning in this example. The map is therefore very lightweight in terms of file size and display processing, if display of the map needed; in its basic form it is a wireframe representation of a geographic area with no need for detailed imaging. The entire world can be mapped in this way and stored on a terminal with even a modest amount of memory.
Figure 3 shows the main components of the App 43. It comprises the above-mentioned map 50, which in its simplest form is a list of countries and their associated polygon co-ordinates. It need not be a displayable map but merely an identifier and list of co-ordinates, e.g. ABC={xl, yl; x2, y2; etc.} The map 50 can be updated from time-to-time in any conventional way and the lightweight nature of the map makes this fast and straightforward.
The App 43 also comprises a background application 52 and a foreground application 54. The background application 52 is so-called because, when enabled, it is configured to be run in the background on the operating system 41 and operate automatically. The user may operate other foreground' Apps on the terminal and no specific user interface appears for the background application 52. Its purpose is to receive the current position (hereafter referred to as Pc) from the terminal 1 and using a predetermined algorithm determines the current polygon that Pc is within. This is done as a function of time, in that the determination records which polygon/country the terminal 1 is within, e.g. at a given time or times each day, and this information is accumulated.
The foreground application 54, on the other hand, is configured to launch a user interface in response to user action via the operating system 41 which allows the user to visualise their current position on a displayable version of the polygon map 50, to view the log of cumulative polygons/countries visited, and to adjust settings, e.g. to reset the log. In short, it allows the user to interact with
the background application 52.
The current position Pc is determined by systems already present on the terminal 1. Most operating systems for smart phones and tablet compilters provide location services. Apple Inc. for example provide as part of their iOX operating system for iPhone® and iPad® a so-called wcore location framework" which enables developers to access location services selectively. The main location services are: -cellular triangulation: uses the signal strength from a plurality of cellular transceivers to approximate the current location; -GPS: uses signals received from at least three visible satellites to provide a more accurate location; -data location: uses the known location of WiFi devices or other wireless systems to approximate the location.
Of these, the first is the most available and uses signals received from local antennae in the conventional way when the terminal 1 is switched on. It uses the least battery power.
This is unlike GPS which generally speaking can provide more accurate positioning but at the expense of battery life.
Thus, although the second and third sets of positioning data can be used by the present App 43, these are considered a refinement and cellular triangulation is used as the primary source of Pc as it is almost always available and drains least power. The co-ordinates (x,y) of Pc are made available by the operating system 41 to the App 43.
Figure 4 shows an example set of data comprising the map 50.
Here, two territories or zones are defined, namely Great Britain (A = GB) and Ireland (B = IE) (for ease of explanation, the province of Northern Ireland is considered to be part of Ireland) . The polygon for each is defined by vertices specifying points on a Cartesian co-ordinate system.
A bounding box for each is also defined as shown, the purpose of which will be described below.
A graphical representation 52 of zones A and B is shown in Figure 5. As will be seen, the polygons A, B define for ease of explanation coarse boundaries, but in practise will be of a higher resolution, accurately tracking actual geographical boundaries.
The process by which country determination is made will now be described. Generally speaking, the process involves defining an imaginary/theoretical straight line or axis extending from Pc in a given direction and counting the number of intersections with each polygon. Zero intersections mean that Pc is outside of the polygon, an odd number indicates it is inside the polygon and an even number indicates it is outside the polygon. The process takes place for each polygon in turn until an "inside polygon" condition results and then this polygon is logged in memory associated with the application 43.
In the present embodiment, bounding boxes are associated with each polygon, represented by data in Figure 4 and shown visually in Figure 6 using reference numerals 61, 63. Their purpose is to help filter the number of polygons that need to be analysed by first determining which bounding boxes are intersected by the straight line -the use of bounding boxes in this initial phase is computationally less intensive.
Note that if only one bounding box is identified, then the algorithm could simply assume that the country it contains is correct. However, in theory, the current position Pc could be in the sea around the periphery.
Figures 7 and 8 show processing steps performed by the background application 52 in determining which country the current position Pc corresponds to. The order of steps is indicative and certain steps can be re-arranged as will be appreciated.
Referring first to Figure 7, the process starts at 7.1 when the App 43 is enabled, e.g. when the terminal 1 is switched on. In step 7.2 the time is set to zero or some other reference point. In step 7.3 Pc co-ordinates are obtained from the location framework of the operating system 41. Tn step 7.4 it is determined which of the bounding boxes are intersected by a line extending (e.g. northbound) from Pc. In step 7.5 a first one of the bounding boxes (BB1, say) is selected and the intersection algorithm applied to its associated polygon data. In step 7.6 if the intersection algorithm yields a positive result (i.e. inside that polygon) then the polygon identity "A = GB" is logged in step 7.8, the time incremented in step 7.9 (which merely indicates some later period of time) and the process repeats from step 7.3.
If in step 7.6 it is determined that Pc is outside of said first polygon, then the next candidate polygon is tested.
Figure 8 shows the basic processing steps in the intersection algorithm. Initially, in step 8.1, an imaginary line is created going north from Pc. In step 8.2 if the number of intersections is zero or even, then step 8.3 returns a "not identified" result for step 7.6. Otherwise, the result will be an odd number of intersections and hence in step 8.4 a positive result is identified for step 7.6.
The selection of a northbound line in step 8.1 can be changed to some other direction, e.g. south.
In more complex scenarios, which can occur if two polygon overlap, then two oppositely oriented lines can be employed in sequence to resolve ambiguity. That is, if the result of 8.2 is indeterninate, then an imaginary southbound line is drawn and the process repeated.
The process of creating imaginary lines is not done physically (although it can certainly be represented visually) but is done using code. For example, given location Es: Define a point En such that En = (Pcx, max(lat)), i.e. Pn = (Pcx, 90) . The northbound line is then defined by the vector V(P1, Pn) A southbound line can be computed thus: Define a point Ps such that Ps = (Pcx,min(latfl, i.e. Ps = Pcx, -90) . The southbound line is then defined by the vector V(Pc, Ps) Figures 9 and 10 show pictorially how the current position (Pc) 70 is determined as being either within GB or IE, using
different examples.
In the Figure 9 example, the algorithm first determines that Pc 70 is within bounding boxes 61, 63. Therefore, it first takes the polygon A contained within bounding box 61 and counts the intersections made by a northbound line 72. The result is zero, and hence the process repeats for the polygon within bounding box 63. The result is one, and hence Pc 70 is determined as being within IE which is logged against the current time stamp in memory of the terminal 1.
In the Figure 10 example, which occurs some time after, the algorithm now determines that Pc 80 is within bounding box 61 only. The only question that remains is whether Pc 80 is within GB or the surrounding sea. The polygon associated with bounding box 6 is tested and one intersection results; hence Pc 80 is within GB, which is logged against the later time stamp.
Referring briefly back to Figure 9, one can see that if the position 70 was moved to the left (x axis = 3.5) then the algorithm would possibly return two intersections made by northbound line 72. The result would be incorrect as Pc 70 is clearly inside the polygon B and hence for this reason a repeat test using a southbound line should resolve the ambiguity.
Figure 11(a) shows an example screenshot taken from the foreground application 54 when used for a wider geographical area, indicating the number of days (or alternatively or additionally nights or visits) in each zone. Any number of zones can be represented and logged. As can be seen, the date range can be specified, and in this case, days spent outside of a particular territory (USA) collated together and which can also be drilled-down into individual territories. Days and nights are also distinguished in this example. Figure 11 (b) shows positions plotted on a map (not being part of the App) Figure 11 (c) shows a settings page of the app, allowing users to modify particular settings.
In summary, there is described a software App 43 that interacts with hardware, software and/or firmware of the terminal 1 to identify a meaningful zone-wise location using a lightweight polygon -based map, and intersection theory applied to said polygons which itself occupies minimal storage and processing power. The App 43 logs the location over a period of time. The App 43 could alternatively be implemented in hardware or firmware or a combination of both.
The App takes data from existing position data engines of the terminal 1. The background application 52 works automatically using (primarily) cellular triangulation co-ordinates to save battery life. No data connection is needed. The foreground application 54 allows the user, if they wish, to temporarily use an available data connection or GPS data.
As mentioned, the App 43 could use a more detailed map, for example one that defines polygons associated with smaller regions (counties or states to give examples) and/or ones which closely follow the shape of the region's border using a greater number of vertices and sides.
In some embodiments, polygons can be named using any form of terminology or referencing. For example, a polygon might simply be given a number or associated with the nearest street name. A location request could issue through a user interface
a statement such as you are near to street X".
In some embodiments, the application 43 can operate to trigger an action when a particular polygon is entered.
It is envisaged that the general principle of polygon-based positioning as outlined above can be provided in an Application Program Interface (API) or Developer Iool Kit (DTK) to allow other developers to utilise the technology with their own software. Alternatively, or additionally, it may form an integral part of an operating system.
In some embodiments, small areas within countries, counties, towns, villages etc. can be defined as a grid of polygons, e.g. down to 200x200m or 400x400m squares. The UK for example could be defined as a grid of such squares each defining a particular geographical area. Such a map' which, again, is a non-traditional form of map that can simply be defined by co-ordinates associated with an identifier, can be made available for others to use with other applications.
Some examples of use are now highlighted.
1) Retail. With the ability to position a mobile terminal user within, say, a 400x400m space, location based retail offers and promotions can be given. Companies would be able to easily locate customers and without additional cost to the customer in terms of data download, and perhaps converse about opportunities in their close proximity.
2) Advertising. In such a model, a search engine or similar entity that sells location-based advertising could use the above technology as an additional locating tool to supplement their current technology for targeted advertising.
3) Location Apps. Existing location-type apps could be further enhanced with the above technology without the need for data or a pre-installed map. Tracking can continue for a longer period. For example, there are known gee-location sports apps (e.g. Strava, Map My Ride, Map my Run) Currently, these use GPS to track user location and so battery life is usually short, particularly for cycling apps where rides can be many hours in duration. The above-described technology which does not require GPS enables tracking over a longer period as they move. Distance is therefore calculated easily. This information could be displayed to the user in a simple or more sophisticated front end interface. All tracked data could be stored and referenced at a later time on a traditional map, as required, e.g. when access to a data connection is available.
4) Tourism/travel. As with 1) above, users can receive targeted information and/or promotions at a country level, for example by airlines, hotel chains, travel guides and so on.
For avoidance of doubt, the use of bounding boxes in the preferred embodiment is optional. Their primary use is to make processing quicker and more efficient. Their use can be omitted if desired.
It will be appreciated that the above described embodiments are purely illustrative and are not limiting on the scope of the invention. Other variations and modifications will be apparent to persons skilled in the art upon reading the present application.
Moreover, the disclosure of the present application should be understood to include any novel features or any novel combination of features either explicitly or implicitly disclosed herein or any generalization thereof and during the prosecution of the present application or of any application derived therefrom, new claims may be formulated to cover any such features and/or combination of such features.
Claims (33)
- Claims 1. A positioning system for a mobile coxmnunioations device, comprising: memory storing a map comprised of data defining a plurality of separate polygons each representing the boundary of a geographic area; a processor configured to receive co-ordinates of a current position and to determine which of the polygons said co-ordinates fall within using the number of inrersections with one or more polygon(s) made by a line extending in a given direction from the current position.
- 2. A system according to claim 1, wherein the polygon data comprises for each polygon a set of Cartesian co-ordinates representing each vertex thereof.
- 3. A system according to claim 1 or claim 2, wherein the memory further stores data representing a bounding box associated with each polygon, which bounding box surrounds and has a larger area than its associated polygon, and wherein the processor is further arranged to identify which bounding box or boxes the current position is located within prior to determining which polygon the current position is within, which determination is performed only for polygon(s) associated with the identified bounding box(es)
- 4. A system according to claim 3, wherein the bounding boxes are rectangular, with each side corresponding respectively to the minimum and maximum values of the associated polygon along orthogonal (X, Y) axes.
- 5. A system according to any preceding claim, wherein the processor is configured such that if the number of intersections with a given poiygon is an odd number, then the current position is determined to be within said polygon.
- 6. A system according to any preceding claim, wherein the processor is further arranged to determine which of the polygons said co-ordinates fall within using the number of intersections with one or more polygon(s) made by a line extending in first and second, generally opposite, directions from the current position.
- 7. A system according to any preceding claim, wherein each polygon represents a boundary of a respective country or administrative region.
- 8. A system according to claim 7, wherein the processor is further arranged to maintain on memory a log of which country or administrative region the current position falls over a period of time.
- 9. A system according to claim 8, wherein the processor is further arranged to maintain on memory a log of the cumulative time the current position falls within a given country or administrative region.
- 10. A system according to any preceding claim, wherein the processor is configured to receive the current position co-ordinates from a positioning engine of the system that uses cellular triangulation to generate the co-ordinates.
- 11. A system according to claim 10, wherein the positioning engine operates to generate the co-ordinates autonomously from the processor.
- 12. A system according to any preceding claim, wherein the processor Is further configured to receive the current position co-ordinates from a GPS engine of the system.
- 13. A system according to any preceding claim, wherein the the processor receives the co-ordinates automatically in the background to another application running on the system.
- 14. A system according to any preceding claim, further comprising a display application that may be initiated by user action to display at least the current location determined by the processor.
- 15. A mobile communications device, comprising: a positioning engine for generating using cellular triangulation co-ordinates indicative of the current geographic position of the device; memory storing a map comprised of data defining co-ordinates for a plurality of polygons each representing the boundary of a geographic area; a processor configured to receive the co-ordinates from the positioning engine and to determine which of the polygons said co-ordinates fall within using the number of intersections with one or more polygon(s) made by a line extending in a given direction from the current position.
- 16. A method of position determination, comprising: (1) receiving co-ordinates indicative of a current geographic position; (2) accessing memory storing a map comprised of data defining co-ordinates for a plurality of polygons each representing the boundary of a geographic territory; (3) determining which of the polygons said current position co-ordinates fall within using the number of intersections with one or more polygon(s) made by a line extending in a given direction from the current position.
- 17. A method according to claim 16, wherein the polygon data oomprises for each polygon a set of Cartesian co-ordinates representing each vertex thereof.
- 18. A method according to claim 16 or claim 17, wherein the memory further stores data representing a bounding box associated with each polygon, which bounding box surrounds and has a larger area than its associated polygon, and wherein step (3) further comprises identifying which bounding box or boxes the current position is located within prior to determining which polygon the current position is within, said determination being performed only for polygon(s) associated with the identified bounding box(es)
- 19. A method according to claim 18, wherein the bounding boxes are rectangular, with each side corresponding respectively to the minimum and maximum values of the associated polygon along orthogonal (X, Y) axes.
- 20. A method according to any of claims 16 to 19, wherein in step (3) the determination is such that, if the number of intersections with a given polygon is an odd number, then the current position is determined to be within said polygon.
- 21. A method according to any of claims 16 to 20, wherein in step (3) the determination is made using an imaginary line extending in first and second, generally opposite, directions from the current position.
- 22. A method according to any preceding of claims 16 to 21, wherein each polygon represents a boundary of a respective country or administrative region.
- 23. A method aocording to claim 22, further comprising the step (4) of maintaining on memory a log of which country or administrative region the current position falls over a period of time.
- 24. A method according to claim 23, wherein step (4) comprises maintaining on memory a log of the cumulative time the current position falls within a given country or administrative region.
- 25. A method according to any of claims 16 to 24, wherein in step (1) the current position co-ordinates are received from a positioning engine that uses cellular triangulation to generate the co-ordinates.
- 26. A method according to claim 25, wherein the positioning engine generates the co-ordinates independently of the current position determination in step (3)
- 27. A method according to any of claims 16 to 26, wherein in step (1) the current position cc-ordinates are received from a GES engine.
- 28. A method according to any of claims 16 to 27, wherein step (3) is performed automatically in the background to another application running on the system.
- 29. A method according to any of claims 16 to 28, further comprising displaying at least the current location determined in step (3) on a user interface.
- 30. A method according to any preceding claim, being performed on a mobile communications device.
- 31. A conputer program comprising instructions that when executed by a computer apparatus control it to perform the method of any of claims 16 to 29.
- 32. A non-transitory computer-readable medium having stored thereon computer-readable code, which, when executed by computing apparatus, causes the computer apparatus to perform a method comprising: (1) receiving co-ordinates indicative of a current geographic position; (2) accessing memory storing a map comprised of data defining co-ordinates for a plurality of polygons each representing the boundary of a geographic area; (3) determining which of the polygons said current position co-ordinates fall within using the number of intersections with one or more polygon(s) made by a line extending in a given direction from the current position.
- 33. A method of operating a mobile communications device, which device comprises a positioning engine for generating using at least cellular triangulation co-ordinates indicative of the current geographic position of the device, the positioning engine being configured to run independently of other software applications on the device, the method comprising providing a non-transient application program for storage on memory of the device which, when run by a processor of the device: accesses a map comprised of data defining co-ordinates for a plurality of polygons each representing the boundary of a geographic area; receives from the positioning engine co-ordinates indicating the current position and determines which of the polygons said co-ordinates fall within using the number of intersections with one or more polygon(s) made by a line extending in a given direction from the current position.
Priority Applications (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
GB1321011.7A GB2520713A (en) | 2013-11-28 | 2013-11-28 | Position determination |
PCT/GB2014/000492 WO2015079201A1 (en) | 2013-11-28 | 2014-11-28 | Position determination |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
GB1321011.7A GB2520713A (en) | 2013-11-28 | 2013-11-28 | Position determination |
Publications (2)
Publication Number | Publication Date |
---|---|
GB201321011D0 GB201321011D0 (en) | 2014-01-15 |
GB2520713A true GB2520713A (en) | 2015-06-03 |
Family
ID=49979469
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
GB1321011.7A Withdrawn GB2520713A (en) | 2013-11-28 | 2013-11-28 | Position determination |
Country Status (2)
Country | Link |
---|---|
GB (1) | GB2520713A (en) |
WO (1) | WO2015079201A1 (en) |
Families Citing this family (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US10445927B2 (en) | 2016-11-16 | 2019-10-15 | Here Global B.V. | Method for determining polygons that overlap with a candidate polygon or point |
CN110664594A (en) * | 2019-09-06 | 2020-01-10 | 江苏中云科技有限公司 | Blind system is led to intelligence based on blind road |
CN116338810A (en) * | 2022-12-16 | 2023-06-27 | 美智光电科技股份有限公司 | Induction range calibration method and device, suspended ceiling electrical appliance, equipment and storage medium |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2006012696A2 (en) * | 2004-08-04 | 2006-02-09 | Speedalert Pty Ltd | An information apparatus for an operator of a land or water based motor driven conveyance |
EP1657683A2 (en) * | 2004-11-16 | 2006-05-17 | Vodafone Holding GmbH | Method and system for detecting a vehicle |
US20090093958A1 (en) * | 2007-10-05 | 2009-04-09 | International Truck Intellectual Property Company, Llc | System and method for determining position within or without a complex polygon geofence |
CN102213767A (en) * | 2011-04-08 | 2011-10-12 | 浙江工业大学 | Positioning control method for closed region of vehicle-mounted GPS (Global Positioning System) |
CN102707301A (en) * | 2011-03-28 | 2012-10-03 | 上海英迪信息技术有限公司 | Positioning device and positioning method thereof |
Family Cites Families (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5961572A (en) * | 1997-04-01 | 1999-10-05 | Bellsouth Intellectual Property Corporation | System and method for identifying the geographic region of a geographic area which contains a geographic point associated with a location |
GB0907361D0 (en) * | 2009-04-29 | 2009-06-10 | Lok8U Ltd | A tracking and communications device |
-
2013
- 2013-11-28 GB GB1321011.7A patent/GB2520713A/en not_active Withdrawn
-
2014
- 2014-11-28 WO PCT/GB2014/000492 patent/WO2015079201A1/en active Application Filing
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2006012696A2 (en) * | 2004-08-04 | 2006-02-09 | Speedalert Pty Ltd | An information apparatus for an operator of a land or water based motor driven conveyance |
EP1657683A2 (en) * | 2004-11-16 | 2006-05-17 | Vodafone Holding GmbH | Method and system for detecting a vehicle |
US20090093958A1 (en) * | 2007-10-05 | 2009-04-09 | International Truck Intellectual Property Company, Llc | System and method for determining position within or without a complex polygon geofence |
CN102707301A (en) * | 2011-03-28 | 2012-10-03 | 上海英迪信息技术有限公司 | Positioning device and positioning method thereof |
CN102213767A (en) * | 2011-04-08 | 2011-10-12 | 浙江工业大学 | Positioning control method for closed region of vehicle-mounted GPS (Global Positioning System) |
Also Published As
Publication number | Publication date |
---|---|
WO2015079201A1 (en) | 2015-06-04 |
GB201321011D0 (en) | 2014-01-15 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US12078501B2 (en) | Mobile search based on predicted location | |
US11553302B2 (en) | Labeling a significant location based on contextual data | |
Chen | Ubiquitous positioning and mobile location-based services in smart phones | |
JP6429289B2 (en) | Method and system for displaying short-term forecasts along a route on a map | |
JP6022622B2 (en) | Determining time zone and DST involvement | |
US8463543B2 (en) | Schematic maps | |
US8718922B2 (en) | Variable density depthmap | |
US20120303263A1 (en) | Optimization of navigation tools using spatial sorting | |
US9052199B2 (en) | System and method for indicating user location and facing direction on a digital map | |
CN108731692B (en) | Apparatus and method for providing map data and system thereof | |
KR20160010278A (en) | Method and apparatus for displaying point of interest | |
US8996551B2 (en) | Managing geographic region information | |
KR20170046675A (en) | Providing in-navigation search results that reduce route disruption | |
US10142958B2 (en) | System and method for determining position information using cell information | |
US9185675B2 (en) | Method and apparatus for classifying a mobile device location | |
CN104335064A (en) | Improved trilateration processing | |
CN107209783A (en) | Adaptive location designator | |
US8589818B1 (en) | Moveable viewport for indicating off-screen content | |
Carswell et al. | Mobile visibility querying for LBS | |
US7755517B2 (en) | Navigation device | |
CN111781619B (en) | Positioning method, device, equipment and storage medium based on near field communication network | |
WO2015079201A1 (en) | Position determination | |
TWI551165B (en) | Systems and methods for approximating geo-fencing locations | |
CN116709501B (en) | Service scene identification method, electronic equipment and storage medium | |
JP2014174759A (en) | Portable terminal device and evacuation support program |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
WAP | Application withdrawn, taken to be withdrawn or refused ** after publication under section 16(1) |