Login| Sign Up| Help| Contact|

Patent Searching and Data


Title:
NAVIGATION METHOD USING GEOGRAPHIC LOCATION CODES
Document Type and Number:
WIPO Patent Application WO/2011/073965
Kind Code:
A1
Abstract:
A user accesses (110) a navigation server and inputs an indication of position of his premises or other location down to the level of the access point. The navigation code is stored (111) and it is downloaded to the user. When the user loads it to his client system or device the navigation code is automatically tested (113). The generated navigation code is predictable and is automatically tested on every occasion at which it is received by a device or system. This helps to ensure integrity of the navigation system, allowing a wide range of devices or systems to handle the navigation codes. After validation, a quality indicator is also generated. The navigation device converts (115) the navigation code to a machine-level geographic code for use in generating onboard navigation instructions (116) for the driver. At the destination the navigation performs hand-shaking with a destination device (117) and there is communication to validate a delivery.

Inventors:
DELANEY GARY E (IE)
Application Number:
PCT/IE2010/000070
Publication Date:
June 23, 2011
Filing Date:
December 16, 2010
Export Citation:
Click for automatic bibliography generation   Help
Assignee:
LOC8 CODE LTD (IE)
DELANEY GARY E (IE)
International Classes:
G01C21/20; G01D4/00; G06Q10/00; G06Q50/00
Domestic Patent References:
WO1996007170A11996-03-07
Foreign References:
EP1705500A12006-09-27
US20030060970A12003-03-27
US20050023524A12005-02-03
US20070088495A12007-04-19
US20050083176A12005-04-21
US20060022841A12006-02-02
US7366609B22008-04-29
Attorney, Agent or Firm:
O'BRIEN, John, A. et al. (Third Floor,Duncairn House,,14 Carysfort Avenue, Blackrock County Dublin, IE)
Download PDF:
Claims:
1. A navigation method performed by a processor and a portable navigation device, the method comprising the steps of: the processor generating a position oriented navigation code for a geographic destination according to its geographic co-ordinates, the code having a series of characters determined according to criteria and said code being predictable, the processor transmitting the navigation code to the portable navigation device and/or to a user via a human interface, the portable navigation device receiving the navigation code either directly from the processor or from the user, automatically testing the navigation code upon receiving it, in which said testing comprises applying rules to each of a plurality of character positions of the navigation code, the navigation device converting the navigation code to a machine-level geographic code, and the navigation device generating from said geographic code navigation outputs for navigation to said destination.

2. A method as claimed in claim 1, wherein the navigation code is also inputted to a user device, and the user device automatically tests the navigation code upon receiving.

3. A method as claimed in claims 1 or 2, wherein the testing comprises generating a binary word from the character pattern, and validating the binary word.

4. A method as claimed in any preceding claim, wherein the processor includes checker code characters in the navigation code for use in testing. A method as claimed in any preceding claim, wherein the portable navigation device automatically communicates with a destination device at the destination when it is in the proximity of the destination.

A method as claimed in claim 5, wherein a wireless local communication protocol is used for hand-shaking and local communication at the destination.

A method as claimed in claims 5 or 6, wherein the destination device is a smart meter.

A method as claimed in any of claims 5 to 7, wherein the destination device generates a user output such as an audio or a visual output to indicate presence of the portable navigation device.

A method as claimed in claim 8, wherein the navigation device is adapted to employ a fluxgate compass and tilt sensor to detect the orientation of the device in addition to its position and to generate a display of a property image from a database to confirm orientation towards to the correct destination.

A method as claimed in any of claims 5 to 9, wherein said communication comprises transmitting a message to the destination device to indicate that the navigation device is in proximity.

A method as claimed in any preceding claim, wherein the processor generates the code with a resolution sufficiently high so that the navigation code can be used to define different entrances or different locations around a single property.

A method as claimed in claim 11, wherein the resolution is better than +/- 20m, and preferably better than +/-5m.

A method as claimed in any preceding claim, wherein the step of generating the navigation code comprises:

receiving or storing latitude and longitude map data for the destination location, automatically associating the destination with grid references, and

processing the grid references with a geo-spatial algorithm to * generate the navigation code. A method as claimed in claim 13, wherein initial characters of the grid references for the destination are used in the navigation code.

A method as claimed in claim 13 or 14, wherein some grid reference characters are excluded according to rules as checker code or exemption rules can not resolve confusion with other characters.

A method as claimed in claim 15, wherein said characters are I, O, U, and H.

A method as claimed in any of claims 13 to 16, comprising reducing some characters of the grid reference to Easting and Northing data.

18. A method as claimed in claim 17, wherein at least some characters of said data are modified.

19. A method as claimed in claim 18, wherein at least some characters of said data are divided and rounded. 20. A method as claimed in any of claims 17 to 19, wherein at least some characters of said data are converted to symbols such as Base 27-31 symbols.

21. A method as claimed in claim 20, wherein the symbols are determined from look-up tables.

22. A method as claimed in any preceding claim, wherein the processor receives as an input geo-coordinates of the destination when generating the navigation code.

23. A method as claimed in any preceding claim, wherein the processor receives as an input a map reference for the location when generating the navigation code.

24. A method as claimed in any preceding claim, wherem the processor which generates the navigation code is a processor of a navigation server accessed via a wide area network.

25. A method as claimed in any preceding claim, wherein the processor automatically populates certain character positions in the navigation codes with numbers only.

26. A method as claimed in any preceding claim, wherein an initial character string of the navigation code represents in a human-readable format a geographical region.

27. A method as claimed in claim 26, the characters of the navigation code are associated with each other so that groups of characters represent areas in a pattern which is discernable to users and can be memorised in a manner akin to conventional post codes.

28. A method as claimed in any preceding claim, wherein the processor generates the code with an associated quality rating, and wherein the processor makes the quality rating available to external devices by network access so that said accessing device can determine the extent to which the code can be relied upon for navigation.

29. A method as claimed in claim 28, wherein the processor generates the quality rating with any or all of the following levels:

(a) not generated on an authorised service, so quality unknown,

(b) generated on an authorised service, but not yet confirmed by person for whom it was generated,

(c) generated on an authorised service and confirmed by a person for whom it was generated, but untested by other users,

(d) generated on an authorised service, confirmed by person for whom it was generated, and in existence for a time period without adjustment,

(e) generated on an authorised service, confirmed by person for whom it was generated, and in existence for a time period without adjustment and without adverse reports by users,

(f) generated on an authorised service, confirmed by person for whom it was generated, and in existence for a time period without adjustment, and no adverse reports by users, and positive reports by users.

30. A method as claimed in any preceding claim, wherein the processor generates the code for a destination which is a temporary feature without a permanent man-made building.

31. A method as claimed in any preceding claim, wherein the processor determines access key data describing how the destination may be accessed, and links said access key data with the navigation code.

32. A method as claimed in claim 31, wherein the processor determines said access key data by automatically prompting the user for said data while the navigation code is being generated, and wherein the processor subsequently automatically checks for updates.

33. A method as claimed in any preceding claim wherein the processor, when generating the navigation code, determines automatically according to a map if the code is for a property; and wherein the processor uses this information to detect if the destination is fraudulent or erroneous.

34. A method as claimed in claim 33, wherein the processor interrogates coordinates of a point clicked on a map and examines if it is within the bounds of a polygon which is defined as a property visible on the map and defined in a supporting map database, and if so the processor determines that the code is being generated for a genuine and pre- identified property, and if not the processor prompts the user to indicate if the code is for a property.

35. A navigation device adapted to process a navigation code generated in a method of any preceding claim to provide navigation position data.

36. A computer program product comprising software code for implementing a method of any of claims 1 to 34 when executing on a digital processor.

37. A processor adapted to perform the processor operations of a method as claimed in any of claims 1 to 34.

38. An internet server comprising a processor as claimed in claim 37.

Description:
NAVIGATION METHOD USING GEOGRAPHIC LOCATION CODES

Introduction The invention relates to navigation, such as for logistics for efficient delivery of goods and services

US 7,366,609 and US2006/003636364 describe navigation devices in which global positioning information is used.

The invention is directed towards providing a navigation method in which processors of devices and systems operate to achieve improved navigation for vehicles or pedestrians.

Summary of the Invention

According to the invention, there is provided a navigation method performed by a processor and a portable navigation device, the method comprising the steps of: the processor generating a position oriented navigation code for a geographic destination according to its geographic co-ordinates, the code having a series of characters determined according to criteria and said code being predictable, the processor transmitting the navigation code to the portable navigation device and/or to a user via a human interface, the portable navigation device receiving the navigation code either directly from the processor or from the user, automatically testing the navigation code upon receiving it, in which said testing comprises applying rules to each of a plurality of character positions of the navigation code, the navigation device converting the navigation code to a machine-level geographic code, and the navigation device generating from said geographic code navigation outputs navigation to said destination.

In one embodiment, the navigation code is also inputted to a user device, and the user device automatically tests the navigation code upon receiving.

In one embodiment, the testing comprises generating a binary word from the character pattern, and validating the binary word. In one embodiment, the processor includes checker code characters in the navigation code for use in testing.

In one embodiment, the portable navigation device automatically communicates with a destination device at the destination when it is in the proximity of the destination.

In one embodiment, a wireless local communication protocol is used for hand-shaking and local communication at the destination.

In one embodiment, the destination device is a smart meter.

In one embodiment, the destination device generates a user output such as an audio or a visual output to indicate presence of the portable navigation device.

In another embodiment, the navigation device is adapted to employ a fluxgate compass and tilt sensor to detect the orientation of the device in addition to its position and to generate a display of a property image from a database to confirm orientation towards to the correct destination.

In one embodiment, said communication comprises transmitting a message to the destination device to indicate that the navigation device is in proximity.

In one embodiment, the processor generates the code with a resolution sufficiently high so that the navigation code can be used to define different entrances or different locations around a single property. In one embodiment, the resolution is better than +/- 20m, and preferably better than +/-5m. In one embodiment, the step of generating the navigation code comprises:

receiving or storing latitude and longitude map data for the destination location, automatically associating the destination with grid references, and

processing the grid references with a geo-spatial algorithm to generate the navigation code.

In one embodiment, initial characters of the grid references for the destination are used in the navigation code.

In one embodiment, some grid reference characters are excluded according to rules as checker code or exemption rules can not resolve confusion with other characters.

In one embodiment, said characters are I, O, U, and H.

In one embodiment, the method comprises reducing some characters of the grid reference to Easting and Northing data.

In one embodiment, at least some characters of said data are modified.

In one embodiment, at least some characters of said data are divided and rounded.

In one embodiment, at least some characters of said data are converted to symbols such as Base 27-31 symbols.

In one embodiment, the symbols are determined from look-up tables.

In one embodiment, the processor receives as an input geo-coordinates of the destination when generating the navigation code.

In one embodiment, the processor receives as an input a map reference for the location when generating the navigation code. In one embodiment, the processor which generates the navigation code is a processor of a navigation server accessed via a wide area network.

In one embodiment, the processor automatically populates certain character positions in the navigation codes with numbers only.

In another embodiment, an initial character string of the navigation code represents in a human- readable format a geographical region. In one embodiment, characters of the navigation code are associated with each other so that groups of characters represent areas in a pattern which is discernable to users and can be memorised in a manner akin to conventional post codes.

In one embodiment, the processor generates the code with an associated quality rating, and wherein the processor makes the quality rating available to external devices by network access so that said accessing device can determine the extent to which the code can be relied upon for navigation.

In one embodiment, the processor generates the quality rating with any or all of the following levels:

(a) not generated on an authorised service, so quality unknown,

(b) generated on an authorised service, but not yet confirmed by person for whom it was generated,

(c) generated on an authorised service and confirmed by a person for whom it was generated, but untested by other users,

(d) generated on an authorised service, confirmed by person for whom it was generated, and in existence for a time period without adjustment,

(e) generated on an authorised service, confirmed by person for whom it was generated, and in existence for a time period without adjustment and without adverse reports by users, (f) generated on an authorised service, confirmed by person for whom it was generated, and in existence for a time period without adjustment, and no adverse reports by users, and positive reports by users. In one embodiment, the processor generates the code for a destination which is a temporary feature without a permanent man-made building.

In one embodiment, the processor determines access key data describing how the destination may be accessed, and links said access key data with the navigation code.

In one embodiment, the processor determines said access key data by automatically prompting the user for said data while the navigation code is being generated, and wherein the processor subsequently automatically checks for updates.

In one embodiment, the processor, when generating the navigation code, determines automatically according to a map if the code is for a property; and wherein the processor uses this information to detect if the destination is fraudulent or erroneous. In one embodiment, the processor interrogates coordinates of a point clicked on a map and examines if it is within the bounds of a polygon which is defmed as a property visible on the map and defined in a supporting map database, and if so the processor determines that the code is being generated for a genuine and pre-identified property, and if not the processor prompts the user to indicate if the code is for a property.

In another aspect, the invention provides a navigation device adapted to process a navigation code generated in a method as defmed above in any embodiment to provide navigation position data. In a further aspect, the invention provides a computer program product comprising software code for implementing a method as defined above in any embodiment when executing on a digital processor.

In a still further aspect, the invention provides a processor adapted to perform the processor operations' of a method as defined above in any embodiment.

The invention also provides an internet server comprising a processor as defined above. Detailed Description of the Invention

The invention will be more clearly understood from the following description of some embodiments thereof, given by way of example only with reference to the accompanying drawings in which:-

Fig. 1 is a flow diagram for navigation according to the invention,

Fig. 2 shows a vehicle's and a personal device communication for navigation;

Fig. 3 is a flow diagram for a method of automated generation of position oriented navigation ("PON") codes;

Fig. 4 shows 90/85km letter codes used in the method, which would be adjusted as required for other territories;

Figs. 5, 6 and 7 are tables showing allocation of symbols to values in the method;

Fig. 8 is a table showing validation codes used to help validate a navigation code; and

Fig. 9 is a table of area codes.

Description of the Embodiments ' Referring to Fig. 1 , a navigation method 100 comprises steps 110 to 118, at a high level.

In step 110 a user accesses a navigation server and inputs an indication of position of his premises or other location down to the level of the access point. If there are multiple access points the additional ones can be added as part of "intelligent access key" information associated with the navigation code which will be developed. Alternatively, or in addition, an additional navigation code can be generated for an additional access point. The navigation server automatically generates a position oriented navigation ("PON") code for each location, and this processing is expanded upon in Fig. 2. In Fig. 2 the navigation code is referred to as a "Loc8" code. An advantageous aspect is that the navigation server generates and downloads to the user device an intelligent access key. This is a description of how to access the location of the navigation code. It may for example specify that the access road is one-way, and/or where one may park to visit the destination, and/or permitted access times such as only 0700 hrs to 2000 hrs for a factory entrance. The intelligent access key is generated by the server prompting the user for information as the navigation code is being generated in step 110. Subsequently, it automatically prompts the user at regular intervals to check if there are any updates, and hence the access keys remain up to date.

In step 111 the navigation code is stored and it is downloaded to the user. When the user loads it to his client system or device the navigation code is automatically tested, as described in more detail below. An advantageous aspect of the invention is that the generated navigation code is automatically tested on every occasion at which it is received by a device or system. This helps to ensure integrity of the navigation system, allowing a wide range of devices or systems to handle the navigation codes. After validation, a quality indicator is also generated.

In step 112, the user transmits the navigation code to a delivery company server as part of ordering a delivery. The navigation code could alternatively be manually communicated by speech as it is user-friendly, akin to a conventional post code. The delivery server transmits the code to a delivery van in step 114, the navigation device of which also automatically validates the navigation code. In step 115 the navigation device converts the code to a lat/long geographical code, and uses this format in step 116 to guide the driver. As shown in steps 117 and 118, when the driver arrives at the destination property the van's navigation device communicates wirelessly with the user's device in the destination property and transmits a message to it to automatically announce arrival of the delivery. Of course, other messages could be communicated. This navigation method allows:

- Finding an exact destination without a need to see a property conventional address, make contact with the occupier, or ask for directions.

- Deposit into an external and secure store navigation codes for properties which may be provided in the future. The code would be used to navigate to the box but also to act as part of a necessary code to unlock the box to deliver or receive goods. For example, a person may order online using their navigation code, upon which the code and order reference is sent to the user. The navigation device knows the navigation code and the order reference and the combination with handshaking between the navigation device and the user device unlocks it.

Unambiguous identification of smart meters which will be provided for many properties in the future.

Property occupiers to identify who is approaching their door and that the service they have ordered has arrived.

Property occupiers who feel vulnerable can open their doors with confidence of knowing who is arriving.

Referring to Fig. 2, the following are the main steps upon arrival of the vehicle at the destination: a. The user at a location gets their navigation code for their property and enters the code into a user device for a wireless or RFID broadcast with a house number. The user device may be a PC or a dedicated user terminal, or a mobile phone, or a personal mobile device.

b. The user at the property orders a service and confirms that that service is awaited for delivery by means of a service code entered to his user device.

c. The user device generates a wireless or RFID broadcast by a narrow horizontal beam width directional antenna fixed to a window facing the main approach road.

d. The service supplier (for example, courier, post, home goods delivery, food, home repair, taxi, emergency services) enters the destination navigation code into their satellite navigation device ("SatNav", and which could be any GPS-enabled device such as a mobile phone) with a service code associated with delivery and house number - matching that entered by the user - both encrypted

e. The SatNav has a wireless/RFID capability (or equivalent)

f. The service provider navigates to within 20 metres approximately of the destination using the navigation code on the SatNav.

g. When within 20 metres of the destination the wireless/RFID user device in the destination property and the Satnav handshake on the basis of the navigation code and the service code.

h. The SatNav allows navigation to the wireless/RFID Antenna with matched navigation and service codes using direction-finding and homing techniques augmented by SNR and phase homing techniques. A combination of wireless/RFID and visual and audible clues including those related to virtual reality street view imagery using fluxgate compasses and motion sensors are used to positively identify and indicate for navigation the exact final destination or delivery point,

i. As a result of the handshaking the user wireless/RFID device in the property confirms that the service provider is arriving. An audible alert may also be sounded. Further extended capabilities including automatic door and "intelligent postbox" services can also be supported.

j. Logging of service details/times/codes can be maintained on the SatNav and "in-delivery point" devices.

In another embodiment the wireless/RFID device is replaced by a transmitter/receiver which is located in a "smart meter" external to the property but which is connected to an internal device such as a PC inside the property and also supports communications with a mobile phone or similar personal device.

Intelligent Access Keys and Wireless Navigation

The navigation server maintains a database of location data; not only very specific points of access but also routing that can vary according to the mode of transport or a variety of factors such as time of day and type of transaction. This allows more convenient user access and processing of geographic data. It is effectively a signage facility to indicate routing and arrival to both the transporter and the destination client.

The database may be added to existing navigation devices including GPS-enabled handset phones as well as provided from a central database in realtime using "connected" internet technologies. The user device will allow location and communication at final destination. A device that can speed this delivery and pickup will prove valuable. A more automated approach to the final part of a delivery journey will find favour with such companies. The hardware solution has potential in other areas such as taxi, home food delivery, emergency response services or other road users.

As an example of the benefit of the invention, a driver of an articulated truck delivering after working hours can encounter a destination in which he must approach using one route and enter by a different entrance. This problem is solved by means of intelligent geographic and technology-based information included in the intelligent access keys. It is estimated that this approach can save about 30 mins for a large vehicle.

In effect, the invention achieves a digital address code to allow users find locations efficiently - saving time and fuel. It also provides local access information which can be very beneficial close to the destination location.

The navigation server automatically builds up a database with detailed points of interest and routing data to get to the points of interest for a variety of modes of transport and purpose; for example container lorries, cars, pedestrians, disabled access for normal access, delivery, out of hours, emergency access, alternative accesses if other routes closed. The database is flexible to allow additional capability to be added later - relational links to allow coping with multiple site clients, for example. Also, the navigation server provides a mechanism to allow access to this database on the target vehicles, client premises, and central controllers.

Generating the Navigation code

Referring to Figs. 3 to 7 the steps 110 and 111 executed by the navigation server for generating a navigation code is illustrated. These are based on geo-coordinates, so that they have geo-spatial meaning rather than being notional or arbitrary in nature.

The generated navigation codes and associated data relating to commercial organisations are searchable by third parties to allow comprehensive navigation facilities. Navigation code data for private properties is searchable if allowed by the owner, otherwise the data will be made available to parties such as emergency services only.

This navigation code system for the island of Ireland is directly mathematically related to the Irish Transverse Mercator Grid System (ITM), with parameters as published by OSI and OSNI, which is the official Grid system for both the Republic Of Ireland and Northern Ireland and, therefore, can be used in both sides of the island.

The process is designed so that navigation to individual properties or features is possible with SatNav and other GPS enabled devices , unlike prior Post Code systems which only support navigation to broad areas and then only with the support of a street look-up database. The position fidelity of the navigation code with respect to the ITM grid is estimated to be on average in the order of +/- 5 metres and its overall resolution capability is on average +/- 11.5 metre accuracy. More generally, the resolution should be within +/- 20m. 90/85 Km Grid Square Area Codes

The first letter of the navigation code is determined by reference to a 90/85 Km area codes superimposed on the Irish Transverse Mercator Grid as shown in the framed areas with letter codes in Fig. 4. Whilst letter coding can be applied to the full extent of the ITM grid, and this may be used in the future, this will initially only be implemented for Grid squares covering the landmass of Ireland. To allow for geography and demographics and to improve the resolution of the navigation code, the square areas are varied in dimensions and in this case are 90 km square on the west coast and 85 km square on the east coast where there is a more dense population.

The coordinates of the corners of each of the square areas are defined in Fig. 5.

Therefore, the first 3 numbers of a six digit ITM Easting and Northing will determine the first letter of the Navigation code, e.g. take the ITM grid reference 579739.4E, 560998.5N. The navigation server processor always adds 0.00001 to the Northing so that positions on a dividing line always fall into the square to the north. Eastings on the dividing line will always be taken to be in the square area to the East. From Fig. 4 and Fig. 5, this grid reference yields the letter "W" as the first letter of the navigation code.

Once the first digit of the PON has been resolved, the navigation, server processor is programmed to then take the full Easting and Northing with up to three decimal places if calculated to this accuracy. From the example above the processor now has the following:

W 579739.4E 560998.50001N, and rounding these to whole numbers, W 579739E,

560999N

Now, the processor establishes how many metres each is into the identified square area - i.e. from west edge of the area in the case of the Easting and from south edge in the case of the northing. In square area W the west edge is 510000 and with an Easting in this example of 579739 then 69739 is the number of meters into the square from the West. In square W, the south edge is 506000, so with a Northing in this case of 560999 the number of metres into the square from the South is 54999. The processor then takes each of the Easting and Northing separately and makes further calculations based on the separate character in Figs. 5 and 6 and considering the rules for exceptions contained in them.

In Fig. 6, it shows that for Eastings it is Base 27 with no rules for exceptions. Base 27 indicates that the rounded up Easting value is divided by 12.34567901 if the Square Area is 90km or 11.65980796 is the Square Area is 85km. In the case of Area W, it is 90km square so the number of metres into the square from the East edge should be divided by 12.34567901. Therefore, from the calculation above it is 69739/12.34567901 = 5648.859. It discards the decimals (no rounding) in the answer and keeps whole numbers which in this case are 5648 (decimals discarded). The Navigation code has 8 characters divided by 2 dashes as follows: 123-45-678

Now it takes the last digit of the resulting value (referred to as a "Retained" value) and insert in position 4 (Unit Value) of the code as follows: W??-8?-?? Now it takes the remaining Easting value (564 in this case) and converts to Base 27 using the character Symbols in Table 2 below, giving the value "84" in this case and inserts into positions 2 and 6 of the Navigation code: W8?-8?-4??

The processor processes the first 2 characters for the second Easting in position 6 of the code (the characters W8?-8?-4?? in this case) against the exceptions rules for the Northings as per the Northing Character Table as shown in Fig. 7.

The Northings Exceptions rules as executed as follows:

- As the first 2 Eastings are both numbers, then both A and E are used in the Northing character set.

- No other exception rules apply in this case but, as an example, if the first 2 characters were "WW" then "W" would be removed from the Northing Character set. . _

Having processed the exceptions then the processor assesses the Base number to be used. In this case it is 31. As the Base is 31 then the value by which the 5 digit Northing is to be divided by is:

In the case of a 90 Km Area Square it would be 90000/31/31/10 = 9.36524454

In the case of a 85 Km Area Square it would be 85000/31/31/10 = 8.84495317

- In both cases if, for example, having applied the exceptions rules in Fig. 6, and the character set is reduced to 27 then replace 27 for 31 in the calculations above.

In this case as the Area Square is "W", then the divider for the number of metres into the square from the south edge as calculated above (54999 in this case) is 9.36524454, and the resulting value is 5872.67. Discarding the decimal places, the resulting value is 5872.

Now take the last digit of the result (Retained Value) and enter into the 5 th position in the navigation code - the Northing Unit

W87-82-4??

- Leaving the value 587 in this case to be converted to a Base 31 value, resulting in the Base 31 values "LY" to be entered as the Northing values in positions 3 and 7 in the navigation code as follows: W8L-83-4Y?

- There is then one final element of the code to complete, i.e. the 8 th character To improve the resolution of the code, letter characters that might be confused with numbers, especially when read from handwriting, are used. As a result a "Checker" code is added in the 8 th position in the navigation code. Its function is to remove any ambiguity, and to assist in reducing the characters and characters types to be presented to the user at each position in the code, particularly when entering on small screen mobile devices.

The "Checker Codes" are shown in Fig. 8. Each Checker Code identifies whether each character in positions 2, 3, 6 & 7 of the code are letters or numbers.

Taking the fact that the character in the first position, the Area Code, is always a letter, the Checker Code also indicates the total number of Letters (and by deduction numbers) that are in any navigation code, (excluding the Checker Code itself).

The characters used in the Checker Code have the following additional benefits and purposes:

- They are unambiguous. - . Letters are used at the point where the number of letters change except in the very last case i.e. D, G, N, 9 for changes to 2, 3, 4 and 5 letters.

- Numbers are also used in the Checker Code to ensure that no "virtual" three-letter words can be created by the 0 which looks like O and 1 which looks like I if they occur in the last Northing value.

- Numbers are also used in the checker code to ensure that the last three characters are never all letters or the same letter repeated 3 times.

- A number is also used ("9") to ensure that even when only six characters of the code are used for various reasons, then the code is still guaranteed alphanumeric.

- The binary code reflected by the Checker Code indicates a 1 for those characters in positions 2, 3, 6 & 7 that are letters and a 0 for those that are numbers. This binary code is converted to Base 16 using the Checker Code characters as shown in Fig. 8.

- Whilst the full interpretation of the Checker Code is ideally achieved using software - key elements can be memorised to determine how many letters are in the full navigation code as follows:

i. A - there is only 1 letter and it is the Area Code - 1 st Character (excluding Checker Code itself)

ii. Dl - all numbers or letters before represent 1 letter and all at or after represents 2 letters or more (excluding Checker Code itself)

iii. G3 - all numbers or letters before represent less than 3 letters and all at or after represents 3 letters or more (excluding checker Code itself)

iv. N6 - all numbers or letters before represent less than 4 letters and all at or after represents 4 Letters or more (excluding checker Code itself)

v. 9 - 5 letters - the maximum number of letters (excluding checker Code itself)

Given that the navigation code calculated so far in this case is: W8L-82-4Y?, then from Table 4 the Checker Code in the 8 th position should be "K". K is between G3 and N6, therefore indicating 3 letters in the code excluding the Checker Code itself;- 1 in position 1, 1 in position 3 and 1 in position 7. Using the Checker Code, a handwritten number "8" in position 2 cannot be confused with the letter "B".

Therefore the final full Navigation code for ITM Grid Reference 579739.4E, 560998.5N is W8L-82-4YK. The elements of the navigation code can be described as shown below:

Area W 90/85km Square Area

Zone W8L 1 st 3 Characters

Locality W8L-4YK 1st 3 and Last 3 characters

Point 82 Numbers in Middle

Checker K Last Character

Full 8 Character navigation

PON W8L-82-4YK code

Table 1 The Zone (I s 3 characters) element of the navigation code will be used to indicate general areas and can be used on a "SatNav" device as a quick destination to get on the road quickly in the right direction and to assist in quickly selecting the correct resources to respond to a service requirement The Locality element of the code, achieved by dropping the point unit values between the dashes, can be used in social networking so as not to define the user's exact location.

Validation

The 8, 6 and 3 character versions of the navigation code are preferably supported in software and "SatNav" devices for various purposes. Whilst entering a navigation code on software or on a "SatNav", the user can be asked to enter the last (8 th ) character (Checker Code) first, and then prompted with only letter or number keyboards to suit each position and error corrections prompted based on the information afforded by it. Where possible, as well as using the Checker Code, when a full navigation code is entered on a user device which contains map data, they should return the nearest Town/Townland/Area details to help identify if a gross error in entering the code has been made.

The navigation code is predictable, unambiguous, and can be validated for the following reasons: - It is always alphanumeric - with a minimum of two letters and two numbers in every navigation code including the Checker Code

- The first character is always a letter - The unit values between the dashes are always numbers

- Letters 0,U, I, & H are never used as they can be confused with other letters and the Checker Code cannot resolve the ambiguity.

- C and G are not used in the same position in the code.

- V followed by V cannot occur thereby preventing confusion with W

- W and V are not used in sequence unless it is clear which comes first.

- A and E are only used when words cannot be spelt

- 1 and 0 are only used where virtual words can not occur if they are visually interpreted as l and O.

- The Checker Code indicates where the letters and numbers are in the code.

- T cannot follow the Area Code B so as to allow the code to work in conjunction with the Northern Ireland post code

Additional Features for the Invention

The navigation code is not meant to replace normal addresses or to cause them to be changed. Instead, it is to be used in addition to a normal address so that the address can be used as a gross error check in software and visually for the user.

Because the navigation codes are generated by a Web-based service on the navigation server there is high resolution mapping showing individual properties. In most cases a unique code for every property will be generated but in some minority cases adjacent properties may have the same code but in these cases the property name or number will be used to separate them. In the Web delivery service, various techniques may be used to generate a unique navigation code for very close buildings including calculating the code for any point within the land boundary of the property but not closer to a road which does not give access and normally along a Polyline through the property at right angles to the normal approach road.

However, to support future and advanced requirements of the navigation code and to aid further checking in applications the following additional characters may be added to the code in certain circumstances but not normally:

i. Property name or number

ii. City/county name in full or using the codes as shown in Fig. 9 which are the same as those used officially in the Republic of Ireland for vehicle license plates with similar for Northern Ireland added. - iii. An optional floor indicator for offices/apartments etc. as follows:

Ground Floor - G

Lower Ground - L

Basement - B

First Floor - 1

Second Floor - 2 etc

Apartment/Suite No.

Consequently, a full address printed or written on a package t be delivered to the first navigation code calculated above may read as follows (but not normally):

GPS Ireland, GPS House - C-W8L-82-4YK-G

- Where "GPS House" is the property name or number;- to be used as a visual identifier

- Where "C" indicates the navigation code is in Cork City or County, for tone example.

- Where "G" indicates that the address is on the ground floor of the property - if omitted the ground floor can be assumed

- The exact location of additional components can vary to satisfy specific requirements

The examples here are for use of a navigation code on the island of Ireland. These can be localised for use in any territory with the grid system adjusted to UTM or local and the Square Area Codes being adjusted to reflect local conditions and the size of the territory.

Coding and mathematical calculations related to the navigation code calculation are included below, including the rules for calculating ITM coordinates from a navigation code. A fully worked example is also given below.

Details of Calculations Associated with the Navigation Code for the Island of Ireland

Coding/Mathematical Calculations //To compute the navigation code from an easting and northing

//The format of the navigation code is Area el nl - e3 n3 - e2 n2 checker

//To ensure that Northings on the dividing line between areas are included in the Area to the north // add an amount which is below the accuracy of any entry (0.01 mm)

northing=northing + 0.00001 ;

//Eastings on the dividing line will always fall into the Area to the east //To start, find the Area and its size and the Easting and Northing of the bottom left corner //Areas to the west of 600,000m are 90Km square, while Areas to the east are 85Km square if (easting<600000) { // Is the Area on the West Coast?

AreaKm = 90000;

eOffset = Math.floor((easting - 420000) / AreaKm); // is it in column 1 or 2

nOffset = Math.floor((956000 - northing) / AreaKm); // row number from the top

AreaN = 866000 - nOffset * AreaKm; // Northing of the South edge of the Area

AreaE = 420000 + eOffset * AreaKm; // Easting of the West edge of the Area

}

else { //Area is on the East Coast

, AreaKm = 85000;

eOffset = Math.floor((easting - 600000) / AreaKm); //column 1 or 2 on West side nOffset = Math.floor((971000 - northing) / AreaKm); // row number from the top AreaN = 886000 - nOffset * AreaKm; // Northing of the South edge of the Area

AreaE = 600000 + eOffset * AreaKm; // Easting of the West edge of the Area eOffset = Offset + 2; // column 3 or 4 of the island

}

offset=eOffset+4*nOffset; // compute index of the table of Area codes

Area=" ABDEFGJKLMNPQRSTWYZ" .substr(offset, 1 ); // select the Area //Now find the easting codes el, e2 and e3

// el and e2 are base 27 and e3 is base 10

// so the minimum unit accuracy for Easting in the selected area is

EDivisor=AreaKm (10*27*27);

// giving us the number of units from the West edge of the Area to our required easting (rounded down)

e=M ath. floor((easting- AreaE)/EDivisor) ;

// separate out e3 using modulus 10

e3=e%10;

//using base 27 compute el and e2 from the Easting Character Table el2=getBasecode(e/10,"ZYXWVTSRQPNMLKJFDCB98765432"); // see subfunction below el=el2.substr(0,l); // 1st value

e2=el2.substr(l,l); // 2nd value // Now find the northing codes nl , n2 and n3

//.First apply the rules that may eliminate any characters from the Northing Character Table // These rules are based on the value of Area and the values of the first and second easting NChars=getNorthingLetters(Area + el2,"0123456789ABCDEFJKLMNPQRSTVWXYZ"); // using the length of the resulting Northing character set

// find the minimum unit accuracy for Northing in this area

NDivisor=AreaKm/( 10.0 *NChars . length*NChars .length) ;

// and calculate the number of units from the South edge to our required northing (rounded down)

n=Math. floor((northing- AreaN)/NDi visor) ;

// separate out n3 using modulus 10

n3=n%10;

// again using a base of the length of the resulting Northing character set

// compute the nl and n2 codes

nl2=getBasecode(n/10,NChars); // see below

nl=nl2.substr(0,l); // 1st value

n2=nl2.substr(l,l); // 2nd value

// finally compute a checker value which will uniquely identify which of the el nl e2 and n2 // are alphabetic or numeric. See the Checker table.

checker=getChecksum(el2,nl2);

// These values may now be combined to create

Zone= Ar ea+e 1 +N 1 ;

Locality=Zone+"-"+e2+n2+checker;

PONCode=Zone+"-"+e3+n3+"-"+e2+n2+checker;

// this function takes a decimal value 'x' and computes a value of base, the length of the character set 'ch' function getBasecode(x,ch){

v=Math.fIoor(x); // ensure our value is an integer

base=ch.length; // what is the base we are using

v3=v%base; // determine the low order base value

if(v<base)return ch. char At(0)+ch. char At(v3); // if the decimal value is below the base, return the '0' value and the low order value

v2=Math.floor(v/base)%base; // compute the high order base value

return ch. char At(v2)+ch. char At(v3); // return the combined codes

}

M =============== _ == _ ===== „_ =

// function to compute a checker value based on el nl e2 n2 being numeric or alphabetic function getChecksum(easting,northing) {

v=0;

numbers="1234567890";

if (numbers. indexOf(northing.substr(l,l))=-l) v+=8; // n2 is a letter

if (numbers.indexOf(easting.substr(l,l))=-l) v+=4; // e2 is a letter

if (numbers.indexOf(northing.substr(0,l))=-l) v+=2; // nl is a letter

if (numbers.indexOf(easting.substr(0,l))=-l) v+=l ; // el is a letter

return "ADlG2346FJKN5789".charAt(v); // select the checker value - NOTE THE ORDER TO SUIT THE BINARY CALCULATION

}

//To compute the easting and northing from a Navigation code

//Follow the steps above in the reverse order.

// On completion, you have computed the bottom left corner of the small area of the Navigation code

// This area is approx 12m across and 10 m vertically, due to the accuracies of the coding system // therefore, to place the code in the centre of its area, add 6m to easting and 5m to the northing

Worked Example - -

Example of computing Navigation

code from ITM Easting and Northing

easting 579739.4

northing 560998.5 northing=northing + 0.00001

northing 560998.50001

if (easting<600000) TRUE Is the Area on the West Coast? AreaKm 90000 Size of Area

eOffset = Math.floor((easting - 1 column number ( 0 is first column)

420000) / AreaKm)

nOffset = Math.floor((956000 - 4 row number from the top

northing) / AreaKm)

AreaN = 866000 - nOffset * AreaKm 506000 Northing of the South edge of the Area

AreaE = 420000 + eOffset * AreaKm 510000 Easting of the West edge of the Area offset=eOffset+4*nOffset 17 compute index of the table of Area codes

Area=" W select the Area

ABDEFGJKLMNPQRSTWYZ".substr

(offset, 1 )

EDivisor=AreaKm/(10*27*27) 12.34567901 minimum unit accuracy for Easting in the selected area

e=Math.floor((easting- 5648 number of units from the West edge of the

AreaE)/EDivisor) Area

e3=e%10 separate out e3 using modulus 10 e12=getBasecode(e/10,"ZYXWVTSR using base 27 compute e1 and e2 from the

QPNMLKJFDCB98765432") Easting Character Table

x=e/10 564 ZYXWVTSRQPNMLKJFDCB98765432 base 27

v3 24 determine the low order base value v2 20 compute the high order base value e1 8 1 st value

e2 4 2nd value

NChars=getNorthingl_etters(Area + apply the rules to delete characters from the e12,"0123456789ABCDEFJKLMNP Northing Character Table

QRSTVWXYZ")

Area+e12 W84 No letters are deleted (A and E are kept as both Eastings are numeric)

Nchars 0123456789AB

CDEFJKLMNPQ

RSTVWXYZ

NDivisor=AreaKm/(10.0 * NChars.leng 9.365244537 the minimum unit accuracy for Northing in this th*NChars.length) area

n=Math.floor((northing- 5872 number of units from the South edge to our

AreaN)/NDivisor) required northing

n3=n%10 2 separate out n3 using modulus 10 n12=getBasecode(n/10.NChars)

x=n/10 587

base 31 0123456789 ABCD E F J KL M N PQ RSTVWXYZ v3 29 determine the low order base value v2 18 compute the high order base value n1 L 1 st value

n2 Y 2nd value

checker=getChecksum(e1 +e2, finally compute a checker value

n1 +n2)

v 1234567890

if n1 is a letter

(numbers. indexOf(northing.substr(0,

1 ))==-1 ) v+=2

if 10 n2 is a letter

(numbers. indexOf(northing.substr(1 ,

1 ))==-1 ) v+=8

if 10 e1 is a letter

(numbers.indexOf(easting.substr(0,1 )

)==-1 ) v+=1

if 10 e2 is a letter

(numbers. indexOf(easting.substr(1 ,1 )

)==-1 ) v+=4

checker K AD1 G2346FJKN5789

Zone W8L

Locality W8L-4YK

Navigation code W8L-82-4YK It will be appreciated that the invention allows vehicle route optimisation and load optimisation to minimise fuel and time costs in places where addresses are not detailed enough or where post codes define areas which are too broad.

Also, because the system uses high resolution Web mapping (OSI and OSNI for the island of Ireland) on a dedicated Web service it allows those creating a code to see and identify individual properties, property boundaries and related features and edit them if changes have occurred or are required. For example, a new navigation code and set of intelligent access key information can be generated for a new entrance for service vehicles created on an industrial site, or for a Safety RV point created on a construction site, or an RV point for emergency vehicles depending on site and weather conditions - in major emergency plans. Also, the system allows coding of non-permanent properties such as events, RV points, and temporary water distribution points. The invention is not limited to the embodiments described but may be varied in construction and detail.