WO2001090690A2 - Location encoder - Google Patents

Location encoder Download PDF

Info

Publication number
WO2001090690A2
WO2001090690A2 PCT/US2001/016745 US0116745W WO0190690A2 WO 2001090690 A2 WO2001090690 A2 WO 2001090690A2 US 0116745 W US0116745 W US 0116745W WO 0190690 A2 WO0190690 A2 WO 0190690A2
Authority
WO
WIPO (PCT)
Prior art keywords
binary
coordinate system
location
binary representation
further including
Prior art date
Application number
PCT/US2001/016745
Other languages
French (fr)
Other versions
WO2001090690A3 (en
Inventor
Vale Sundaravel
Benjamin J. Paul
Original Assignee
Switchboard Incorporated
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Priority claimed from US09/863,962 external-priority patent/US6552670B2/en
Priority claimed from PCT/US2001/016783 external-priority patent/WO2001090920A2/en
Application filed by Switchboard Incorporated filed Critical Switchboard Incorporated
Priority to AU2001264878A priority Critical patent/AU2001264878A1/en
Publication of WO2001090690A2 publication Critical patent/WO2001090690A2/en
Publication of WO2001090690A3 publication Critical patent/WO2001090690A3/en

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/29Geographical information databases

Definitions

  • the methods and systems relate generally to encoding data, and more particularly to encoding geographic data.
  • one well-known algorithm includes data headers appended to individual data packets to facilitate the counting and recording of the number of intermediate hops that a packet takes on its journey, and incorporating routers and switches in the network architecture to aim packets along routes that minimize the number of hops.
  • such methods may actually contribute to network latency as each routing expands the transmission time by examining the packet and altering the packet header.
  • the significance of the network latency problem can be evidenced by certain internet infrastructure providers that post current latency and packet loss statistics for their networks. Specifying direction to electronic data in computer networks may dramatically improve the speed and efficiency of internet communications while decreasing the burden on infrastracture providers. Such data direction can be provided by better analyzing the originating and destination devices to determine a more optimal path.
  • connections between the mobile devices and the internet utilize "thin pipes" including wireless modems that can typically be slower and more prone to signal-loss interruption than counterpart land-line modems. Since mobile device users are often generally mobile people who desire information quickly, such users may be less tolerant of increased delays due to complex searching algorithms.
  • the disclosed methods and systems can encode geographic information into a binary number, otherwise known as a geocode and referred to herein as a "bingeo", that can be compared to other, similarly encoded geographic information using well-known bitwise comparison techniques.
  • the bingeo is binary
  • the bitwise comparison can provide a geographic comparison without knowledge of underlying geographic information.
  • the encoding methods and systems can incorporate geographic precision.
  • a bingeo bit can correspond to geographic precision, and generally, the bingeo precision can relate to the geographic precision.
  • the geographic precision can be specified or selected, and in some embodiments, the precision can be inherently or implicitly stipulated by the geographic information provided for encoding.
  • Geographic information can include information that can be translated to a coordinate or reference system, using a reference that can be applied to the coordinate system, for example, the reference or coordinate system of latitude and longitude. Geographic information can include, for example, areas codes, street addresses, and zip codes, latitudes and/or longitudes, etc., that can be related to or converted to a reference system using known techniques.
  • the methods and systems can utilize a reference or coordinate system and iteratively segment the reference system by subdividing individual segments into quadrants.
  • Quadrants can be assigned, for example, a numeric value, wherein the placement of the numeric value within the bingeo relates to the iterative level of quadrant segmentation.
  • the segmentation iteration level can similarly correspond to a geographic precision, as the number of iterations can increase the geographic precision.
  • an iterative segmentation scheme can be provided. In a first iteration, the segmentation scheme can be applied to the entire coordinate system, while in subsequent segmentations, the segmentation scheme may only be applied to the subdivision or segment that includes the location of interest.
  • a methodology or other scheme for assigriing binary digits, coordinated with the segmentation scheme can be iteratively performed in an identical manner for the different segmentation levels.
  • the encoded binary representations can be used to generate at least one database having binary encoded locations of services, items, etc.
  • a system can process requests from a user desiring services, items, etc., related to a specified geography, wherein the system can receive either the specified geography information, or the binary encoded form thereof, for extremely efficient comparison and identification of similarly located services, items, etc. Because the bingeo can be binary and can facilitate bitwise comparison, processor or microprocessor-based comparison can be extremely efficient.
  • the methods and systems can identify geographic locations near a quadrant border, wherein for a particular resolution, the methods and systems can perform similar resolution segmentation of an adjacent quadrant to identify similarly located items, services, etc.
  • bingeo codes can identify proximity of network devices. By comparing an originating network location with a destination network location, an efficient path between the two networks can be quickly determined.
  • the iterative methods and systems can be performed recursively using well-known recursive programming techniques.
  • FIG. 1 presents a diagram illustrating a segmentation of a coordinate system
  • FIG. 2 displays the segmenting algorithm of FIG. 1 as it is applied iteratively five times
  • FIG. 3 indicates the binary representations resulting from the five segmentations of FIG. 2;
  • FIG. 4 illustrates the segmentation and bingeo construction from FIGs. 1-3 as applied to a specific location;
  • FIG. 5 presents another iteration of the FIG. 4 illustration at a refined segmentation level
  • FIG. 6 illustrates a sample system architecture for practicing the methods and systems.
  • a binary code or number from a segmentation or iteration level can be incorporated into a composite binary representation, otherwise referred to herein as a "bingeo", wherein the bingeo can be representative of binary codes from multiple iterations or segmentations.
  • the bingeo can record the binary codes from the iterative segmentations.
  • a segment can also be referred to and understood to be a subdivision, either of which are a result of a segmentation process.
  • quadrants result from segmentation, and hence references to quadrants can be understood to be a reference to a segment or subdivision.
  • Other segmentation schemes can be used, for example, such that the segmentation schemes produce a number of segments or subdivisions that can be overlapping or non-overlapping.
  • FIG. 1 there is an illustration 10 of a segmentation algorithm that can be applied to a reference or coordinate system.
  • the embodiment discussed herein refers to the reference or coordinate system comprised of latitudes and longitudes, however those with ordinary skill in the art will recognize that the methods and systems can be applied to a reference or coordinate system that can be referred to herein collectively as coordinate systems. Similarly, those with ordinary skill in the art will recognize that the methods and systems herein can be applied to a reference system within a given coordinate system, as such reference system is not fixed and can be arbitrarily determined in some embodiments.
  • FIG. 1 refers to the reference or coordinate system comprised of latitudes and longitudes, however those with ordinary skill in the art will recognize that the methods and systems can be applied to a reference or coordinate system that can be referred to herein collectively as coordinate systems. Similarly, those with ordinary skill in the art will recognize that the methods and systems herein can be applied to a reference system within a given coordinate system, as such reference system is not fixed and can be arbitrarily
  • the latitudinal and longitudinal system displays the latitudinal and longitudinal system as the large outer rectangle 12 wherein, for example, the left-most vertical segment 14 can represent -180° longitude, and the right-most vertical segment 16 can represent 180° longitude, although such reference is provided for illustration and not limitation.
  • the rectangle 12 representing the latitude and longitude reference system can be divided into evenly sized quadrants, thereby indicating that the center vertical segment 22 can represent 0° degrees longitude, while the center horizontal segment 24 can represent 0° degrees latitude.
  • the division of quadrants as shown in FIG. 1 is uniform and square, other divisions can be implemented that can be uniform or non-uniform.
  • the division of the coordinate system into quadrants as shown in FIG. 1 can be understood as the first level of segmentation in this example of a segmentation algorithm.
  • Those skilled in the art will also recognize that the methods and systems can be practiced differently by segmenting the reference or coordinate system into a different number of segments, or by altering the reference points for segmentation.
  • a unique binary number can be assigned to the segments that are shown in FIG. 1 as quadrants.
  • the unique binary numbers assigned to the quadrants can be 00, 01, 10, and 11, respectively, with binary code assignments to segments as shown in FIG. 1.
  • Such assignment of binary numbers is merely for illustration and not limitation, and other binary numbers and/or other numerical representations can be made.
  • FIG. 2 there is a graphical representation of the segmentation scheme or algorithm presented in FIG. 1, as the segmentation algorithm is iteratively applied to a single quadrant, shown in FIG. 1 as "quadrant 1".
  • quadrant 1 from FIG. 1 can be subdivided into four quadrants in FIG. 2, wherein the quadrants can be assigned binary codes or numbers (represented in base 10 notation) in a similar manner as the previous segmentation level.
  • This second iteration of the segmentation algorithm to a single quadrant can be referred to as a second level of iteration, or a second hierarchical level.
  • FIG. 2 indicates, quadrant one from the second iteration or hierarchical level can again be segmented in quadrants to generate a third iteration or hierarchical level.
  • FIG. 2 thus indicates the segmentation results and binary assignments for four iterative segmentations applied to "quadrant 1" of FIG. 1.
  • FIG. 2 also displays that, for the illustrated system and segmentation scheme, for a new hierarchical or iteration level, the segment size is proportionately smaller (by one-quarter) when compared to the previous level of iteration, thereby providing better resolution or precision.
  • hierarchical level or layer, segment level or layer, precision level or layer, iteration level or layer, recursion level or layer can be understood to be equivalent terms.
  • quadrant number and associated binary number can be the same in different iteration levels.
  • the lower-left segment is quadrant zero and represented by "00”
  • the upper-left segment is quadrant one represented by "01”
  • the lower-right quadrant is assigned quadrant two represented by "10”
  • the upper-right quadrant is quadrant three and represented by "11”.
  • FIG. 3 presents one construction of a bingeo with respect to the five layers of segmentation for a system having a segmentation algorithm illustrated by FIGs. 1 and 2.
  • the bingeo length is sixty-four bits, represented by a 16-bit hexadecimal number with the conventional "Ox" prefix to indicate hexadecimal notation.
  • a quadrant can be assigned a unique two-bit binary number
  • a level of iteration can be assigned a specific bit-pair in the sixty-four bit bingeo, up to thirty-two segmentations or hierarchical iterations can be represented in the sixty-four bit bingeo.
  • bingeo is not restricted to sixty-four bits, and can include fewer or more bits, depending upon the coordinate or reference system, the desired resolution (i.e., the number of hierarchical or iterative segmentations), processing constraints, etc. Additionally, although a system or method such as the system and method illustrated herein can provide the capability to generate bingeos of a certain precision, some bingeos may not be computed to such precision; therefore, in an embodiment, bingeos can be further associated with a bingeo precision indicator.
  • a bingeo can be sixty-four bits
  • a bingeo can be associated with another byte, or eight bits, that represents the number of segmentation levels incorporated or represented in the respective bingeo.
  • Other methods of associating the segmentation levels can include masks, etc., and the methods and systems are not limited by a precision indicator method or system.
  • a precision indicator can be provided in a bingeo database that includes bingeos and associated precision indicators.
  • the sixty-four bits can be numbered one through sixty-four, with bit sixty-four being the left-most bit, or traditionally well-known in the art as the most-significant bit.
  • the first hierarchy of segmentation can be assigned bingeo bits sixty-four and sixty-three, while the second segmentation level can be assigned bingeo bits sixty-two and sixty-one. This pattern can continue, whereupon the thirty-second iteration can be assigned bingeo bits two and one.
  • the first hierarchy of iteration can correspond to the least significant bits in the bingeo.
  • the least significant bit can be known as bit zero, bit "A", or another identification scheme, etc.
  • the binary digits incorporated into the bingeo are the binary digits that correspond to the binary representation assigned to a "selected" quadrant.
  • the selected quadrant can be understood as the quadrant to be segmented on the next hierarchical level of segmentation or iteration.
  • the selected quadrant can also be understood to be that quadrant including the location or geographic identity to be converted to a bingeo.
  • the selected quadrant for the various iterations is the quadrant known as quadrant one and represented by the corresponding bit pair "01".
  • FIG. 3 illustrates the four bingeos 30 that exist upon the first segmentation according to a segmentation algorithm of FIG. 2, wherein the illustrated bingeos are presented in hexadecimal notation.
  • bingeos can be initialized as zero, however in an alternate embodiment according to the illustrated systems, the bingeos could also be initialized to hex value OxFFFFFFFFFFFFFFFF. Accordingly, in the illustrated system, at segmentation "level 1", the bingeo bits are zero with the exception of bits sixty-four and sixty-three that correspond to the respective assigned quadrant bit pairs.
  • segmentation "level 2” four quadrants are formed from the selected quadrant one of segmentation "level 1".
  • the bingeo hexadecimal notations can be illustrated by 32, wherein the "level 2" bingeos can be formed by placing the respective bit-pair assignments from the four quadrants in bits sixty-two and sixty-one; however, because this segmentation level is derived from a previous segmentation, the bingeo from the previous segmentation level is preserved (i.e., bits sixty-four and sixty- three).
  • FIG. 3 indicates, this process of incorporating the binary code or number from the selected segment, subdividing, and appending a new bit pair, continues through levels three, four, and five. With a different level of segmentation, the bingeo can be assigned more binary digits, and therefore can become more accurate.
  • quadrant zero for a given segmentation level has the same representation of the previous level from which the bingeo is derived, as quadrant zero in this representative example provides a "00" to the bingeo. It can also be recognized, however, that although the bingeos of, for example, “level three, quadrant zero", and “level two, quadrant one”, are equivalent, the "level three, quadrant zero" bingeo has a precision of six bits, while the
  • level two, quadrant one bingeo has a precision of four bits.
  • the illustrated quadrant resolution increases geometrically with segmentation layer, such that succeeding bit pairs incorporated into the bingeo can increase the bingeo accuracy, and wherein for the illustrative segmentation scheme of FIG. 2, the segmentation resolution increases twenty-five percent as compared to the previous segmentation or hierarchical layer.
  • bingeo bit pairs can therefore correspond to an iteration level and hence a segmentation size.
  • bingeo bits one and two can relate to an accuracy or segmentation size of .16 square inches.
  • a similarly designed bingeo having inputs from only three segmentation or hierarchical layers provides an accuracy or segmentation size of 7,290,000 square miles.
  • FIG. 4 there is an illustration of the segmentation algorithm and bingeo generation for a specified location.
  • the specified location for which a bingeo is desired is shown in FIG. 4 as "X" 40 for segmentation and bingeo generation algorithms according FIGs. 1-3, where several segmentation iterations have occurred to form the bingeos that are represented by the hexadecimal numbers in the quadrants. Trailing zeros are not presented in the FIG. 4 bingeos.
  • the "selected" quadrant at a given iteration is that quadrant wherein the specified location (i.e., "X") resides.
  • the selected quadrant is quadrant two 42, wherein for the illustrated embodiment, quadrant two is assigned a binary representation of "10" at the iteration levels. This "10" binary value can be incorporated into the bingeo before the next algorithm iteration or segmentation.
  • FIG. 5 provides the results of the next segmentation level for the embodiment of FIG. 4, with corresponding bingeos updated from FIG. 4 to reflect the selection or segmentation of quadrant three (i.e., "11").
  • the next layer of segmentation is performed on quadrant one 50, represented by "01" in the FIG. 4 and FIG. 5 embodiments, wherein quadrant one includes the specified location, "X" 40.
  • the iterative segmentation and bingeo updating can continue in the manner demonstrated by FIGs. 4 and 5, until thirty-two segmentations and bingeo updates are performed.
  • the corresponding result is a sixty-four bit bingeo that accurately represents the location of "X" 40 to .16 square inches, as discussed previously.
  • the bingeo can be easily compared to other bingeos derived in the same manner.
  • two bingeos can be efficiently compared, for example, by performing a logical, bitwise comparison, for example a logical XOR (exclusive OR), and determining those bits that are different.
  • bingeos of the illustrated system can be derived such that a bingeo bit position (i.e., bit pair) can relate to a segmentation level or precision that can be related to a distance measure
  • a system, computer, etc. can easily determine the location differences or distance measures between two bingeos by comparing the positions of the differing bits and relating such differing bit positions to segmentation levels, precisions, and/or distance measures.
  • This comparison method can be extremely efficient when compared to the complex algorithms and computations that are required to convert, for example, two latitude/longitude pairs to other units to obtain a meaningful difference between the two latitudes and longitudes.
  • a relative comparison of bingeos for different geographical locations can be performed to determine the proximity of the locations, without specifically knowing the identity of the locations.
  • FIGs. 4 and 5 there can be scenarios wherein a selected location for which a bingeo is to be computed, can be very near a quadrant segmentation line.
  • border cases special processing can be performed to identify neighboring segments. For example, consider a scenario shown in FIG. 4, wherein a selected location can be within several feet of a segmentation divider at the very highest hierarchical level of segmentation.
  • bingeo bits sixty-four and sixty-three for the selected location can correspond to quadrant two (i.e, "10") in this example, while a bingeo for a geographically proximate location in quadrant zero for this example will have corresponding bits sixty-four and sixty-three of "00". Without border case processing, this bingeo difference at a high level of segmentation can indicate a potentially large geographical difference, when perhaps the geographical difference is not different, but based on a border issue.
  • bingeo comparisons can be processed using a border case algorithm to identify border cases.
  • the border case algorithm can identify eight segments and corresponding eight bingeo representations for the two reference bingeos.
  • the eight surrounding segments and their associated bingeos can be referred to herein as neighbor segments and neighbor bingeos.
  • neighbor bingeos for the reference bmgeos can be computed at various precision levels.
  • FIG. 6 there is shown a system 60 wherein bingeos can be utilized for efficient and rapid comparison of locations, for example, to identify items, services, etc., within a specified distance of a given location.
  • the system of FIG. 6 can be implemented using a digital computer system and information sources that are accessible via a communication network, keyboard, digital camera, microphone, etc.
  • the digital computer system can be a microprocessor-based system including a computer workstation, such as a PC workstation or a SUN workstation, that includes a program for organizing and controlling the digital computer system to operate according to the methods and systems. Additionally and optionally, the microprocessor-based system can be equipped with a sound and video card for processing multimedia data.
  • the computer system can operate as a stand-alone system or as part of a networked computer system.
  • the computer system can be dedicated devices, such as embedded systems, that can be incorporated into existing hardware devices, such as telephone systems, PBX systems, sound cards, etc. Accordingly, it will be understood by one of ordinary skill in the art that the system described herein has wide applicability and can be incorporated in many systems, and realized in many forms.
  • the representative embodiment system 60 of FIG. 6 includes a user interface 62 that can accept a location, a query, and a precision.
  • the location can be location information that can include a latitude and longitude, a street address, parcel, ward, a zip code or area code, a direction, etc., and in the illustrated example, can be the location of a person or entity submitting the query.
  • the query can be for information such as restaurants in a specific area, service stations, dry cleaners, etc.
  • a requesting entity therefore can supply geographic information that can be related to a bingeo, and similarly, the information requested can be an information, person, entity, etc., that can be associated with a geographic location that can be related to a bingeo.
  • a query can specify precision in miles or some other distance measure, and in the illustrated embodiment, the precision can be interpreted relative to the submitted location, although other embodiments can use other relative references for precision.
  • the user interface 62 can accept the location, query, and precision information and send the location information to the bingeo conversion module 64.
  • the illustrated bingeo conversion module 64 can convert the location information to a specific coordinate system that can be, for example, the latitude and longitude reference system discussed herein. For example, when the illustrated bingeo conversion module 64 receives geographic information including a zip code or area code, the bingeo conversion module 64 can determine the centroid of the zip code or area code, and translate such information to a latitude and longitude. Once the illustrated bingeo conversion module 64 has a latitude and longitude for the specified location, it can convert the latitude and longitude to a bingeo using a recursive, hierarchical, or iterative segmentation scheme or algorithm such as described herein. In a FIG. 6 system 60 utilizing the bingeo systems of FIGs. 1-5, a sixty-four bit bingeo can then transferred from the bingeo conversion module 64 to a bingeo comparator 66.
  • the illustrated bingeo comparator 66 can access a database 68 of bingeo codes, wherein the database bingeo codes can relate to services, items, people, etc., or an entity or individual having an association with geographic information. Access to the database 68 can be local or through a network, utilizing wired or wireless cornmunications devices and protocols, etc.
  • geographic information can be understood to include information that can relate to a location or reference to a reference or coordinate system and using a reference system within the coordinate system, and can include but not be limited to area code and/or phone number, zip code, parcel, ward, address including street and/or state, latitude and/longitude, etc.
  • the bingeo database 68 can be organized by service, item, people, etc., and can be organized to list an item with its corresponding bingeo and/or precision.
  • the illustrated bingeo database 68 can represent multiple databases wherein a database can be categorized to bingeos for certain items, places, services, etc.
  • the database 68, and other databases referred to herein, can be a memory having one or more physical or logical partitions and/or segments, and can optionally and additionally utilize one or more of well-known database packages including
  • MySQL MySQL, SQL, Oracle, Informix, etc., with such examples provided merely for illustration and not limitation.
  • the illustrated comparator 66 can search the database 68 using, for example, the query item from the user interface to determine that part or parts of the bingeo database 68 that include relevant bingeos. Once the relevant bingeos are identified, the illustrated comparator 66 can perform a comparison between the location bingeo code and the relevant bingeos. In one embodiment, the comparison can be performed using a logical, bitwise XOR (exclusive OR) operation between the location bingeo and the relevant database bingeo(s), although other comparison techniques can be used.
  • the result of the logical XOR can be converted to a distance measure by the bingeo difference translator 70 and compared to the precision provided by the user interface 62. Those comparisons indicating a difference satisfying the precision provided by the user interface, can be provided to the user interface 62 with the corresponding location (i.e., address) and identity of the entity/individual. In an alternate embodiment, a precision from the user interface 62 can be provided to the bingeo conversion module 64, or perhaps another module not illustrated, and converted to a bingeo.
  • Such conversion requires knowledge of the bingeo segmentation algorithm to determine the most accurate bingeo representation of the user-entered precision (i.e., relating the thirty-two bit pairs to the segmentation sizes).
  • the bingeo precision could then be utilized by the comparator to further simplify the operations performed by the comparator, eliminating the conversion of bingeo differences (i.e., difference between the location bingeo and relevant database items) to a distance for comparison to the user- entered precision.
  • the user interface 62 of FIG. 6 can be a computer display, cellular phone display, laptop or handheld computer display, etc.
  • the corrrmunications between a user and the user-interface 62, between the user- interface 62 and the bingeo conversion module 64, or between other modules illustrated in FIG. 6 or otherwise described herein can be wired or wireless, RF, infrared, ultrasound, etc., using well-known communications techniques and/or protocols.
  • FIGs. 1-5 can also be implemented to provide a geocode, or more specifically, a binary geocode, as referenced in the co-pending application "Geographical Comparison Apparatus and Method," herein incorporated by reference.
  • a bingeo is one form of a binary geocode.
  • bingeos can be compared wherein a precision for one bingeo can be more precise than a precision for another bingeo. For example, if one party provides geographic information that includes less specific information such as a zip code or area code, the bingeo can only be computed to a certain degree of accuracy.
  • the bingeo could be computed to a precise degree of accuracy using the centroid of the zip code; however, an uncertainty can be associated with the bingeo in such an example as the location of the entity within the zip code relative to the centroid, may be unknown. This uncertainty can be included as a factor in some systems and methods.
  • One advantage of the methods and systems over the prior art is that the methods and systems form binary representations of locations that allow accurate and efficient comparison of locations by merely performing a single binary operation.
  • What has thus been described is a method and apparatus of converting geographic information to a binary representation, otherwise known as a bingeo.
  • the geographic information can be converted to a binary representation within a selected reference or coordinate system, and with respect to a reference within the selected coordinate system.
  • the conversion between the coordinate system location and the bingeo can occur by iteratively and logically segmenting the coordinate system, or segments thereof.
  • the iterative algorithm can include identifying the segment that includes the specified location, and segmenting the identified segment. During an iteration, segments can be assigned a unique binary code that can be incorporated into the bingeo.
  • the bingeo can be sixty-four bits, while an algorithm iteration can produce a unique two-bit designation that can be assigned a unique location within the bingeo. In this embodiment, as many as thirty-two segmentation iterations can be performed, with the iterative segmentations providing increased precision. For a coordinate system including latitude/longitude, a Im ⁇
  • Two bingeos can then be compared, in the simplest form, using a bitwise logical XOR.
  • the techniques described herein are not limited to a particular hardware or software configuration, and may find applicability in many computing or processing environments.
  • the techniques can be implemented in hardware or software, or a combination of hardware and software.
  • the techniques can be implemented in one or more computer programs executing on one or more programmable computers that include a processor, a storage medium readable by the processor (including volatile and non- volatile memory and/or storage elements), one or more input devices, and one or more output devices.
  • the computer program(s) is preferably implemented in one or more high level procedural or object-oriented programming languages to communicate with a computer system; however, the program(s) can be implemented in assembly or machine language, if desired.
  • the language can be compiled or interpreted.
  • the computer program(s) can be preferably stored on a storage medium or device (e.g., CD-ROM, hard disk, or magnetic disk) readable by a general or special purpose programmable computer for configuring and operating the computer when the storage medium or device is read by the computer to perform the procedures described herein.
  • a storage medium or device e.g., CD-ROM, hard disk, or magnetic disk
  • the system can also be considered to be implemented as a computer-readable storage medium, configured with a computer program, where the storage medium so configured causes a computer to operate in a specific and predefined manner.
  • the bingeo presented herein is thirty-two bits, other sized bingeos can be used.
  • Other coordinate or reference systems can be used, and it is not necessary to divide the coordinate system or segments thereof into quadrants at an iteration.
  • the segmentation scheme can be overlapping or non-overlapping. Alternate systems can divide the coordinate system into greater, or fewer, segments.
  • the assignment of quadrants and binary designations to quadrants can be altered.
  • the translation of information from the various segmentation levels to the bingeo can be performed differently than presented herein, wherein the bits from the selected quadrant are merely assigned particular positions within the bingeo.
  • the bingeos can be compared using a variety of different mechanisms and it is not required to use a logical XOR, or other processing beyond the logical XOR can also be performed. Certain modules related to FIG. 6 can be separated or combined.

Landscapes

  • Engineering & Computer Science (AREA)
  • Databases & Information Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Remote Sensing (AREA)
  • Data Mining & Analysis (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Image Processing (AREA)
  • Position Fixing By Use Of Radio Waves (AREA)

Abstract

A method and apparatus to convert geographic information to a binary representation, or bingeo. The geographic information can be converted to a bingeo for a selected reference or coordinate system, and with respect to a reference within the selected coordinate system. The coordinate system location to bingeo conversion can be hierarchical or iterative and can include segmenting the coordinate system or segments thereof. The iterative algorithm can include identifying a segment including the specified location, and segmenting the identified segment. During an iteration, segments can be assigned a binary code that can be incorporated into the bingeo. Successive segmentation iterations can be performed to provide increased precision. In one embodiment, a precision of .16 inches squared can be attained. Two bingeos can be compared, in the simplest form, using a bitwise logical XOR.

Description

LOCATION ENCODER
BACKGROUND
(1) Field The methods and systems relate generally to encoding data, and more particularly to encoding geographic data.
(2) Description of the Prior Art
In 1999, it is estimated that there were approximately 171 million internet users. It is estimated that four years later, the number of internet users will more than double, expanding electronic traffic throughout the world with increasing concentration. Electronic traffic travels as data packets "hop" from an originating device, through intermediate hubs, to a destination device. Often, the intermediate hubs are preprogrammed according to traffic assumptions and network architecture constraints, thereby causing a majority of data packets to travel unnecessarily long paths between the originating and destination devices. This inefficient hopping scheme places a tremendous burden on telecommunications system infrastructures such as the internet, often resulting in data packets that are misdirected completely, or "lost". As the number of internet users expands, this problem will increase dramatically.
To manage the internet traffic burden and decrease network latency and packet loss, internet infrastructure providers designed "efficiency" algorithms to compensate for inherently non-directional computer networks. Many of these algorithms are extraordinarily expensive and time consuming. For example, one well-known algorithm includes data headers appended to individual data packets to facilitate the counting and recording of the number of intermediate hops that a packet takes on its journey, and incorporating routers and switches in the network architecture to aim packets along routes that minimize the number of hops. In practice, such methods may actually contribute to network latency as each routing expands the transmission time by examining the packet and altering the packet header.
The significance of the network latency problem can be evidenced by certain internet infrastructure providers that post current latency and packet loss statistics for their networks. Specifying direction to electronic data in computer networks may dramatically improve the speed and efficiency of internet communications while decreasing the burden on infrastracture providers. Such data direction can be provided by better analyzing the originating and destination devices to determine a more optimal path.
It is believed that the internet expansion has also sparked a general interest in all things electronic, and it is therefore not unreasonable to predict that this interest will continue to grow as the internet expands. This assumption, coupled with the prediction that wristwatches, phones, computers, automobiles, and nearly every mobile electronic device, will be location-aware and communications enabled, indicates an independent, emerging urgency for efficient electronic trafficking. Present examples of such mobile electronic devices include internet enabled cellular phones and personal digital assistants (PDAs) that incorporate Global Positioning System (GPS) receivers.
Further proof of the ever-increasing electronic traffic demands and requirements includes Federal Communications Commission (FCC) regulation E911 that requires location awareness for cellular phones sold in the United States after October 1, 2001. As mobile devices are enhanced, it is anticipated that mobile devices will proliferate, and more people will use the devices to connect to computer networks such as the internet to locate other people, places, items, businesses, services, etc. in designated areas of interest. It is expected that the availability of such information from mobile devices can drastically increase personal efficiency. To realize the anticipated increase in personal efficiency, it is necessary that electronic devices utilize efficient searching algorithms that readily identify and parse location-based information; however, since mobile computing devices are by definition portable, such devices are historically small in size and therefore lack the processor speed and storage space of desktop personal computers. Additionally, connections between the mobile devices and the internet utilize "thin pipes" including wireless modems that can typically be slower and more prone to signal-loss interruption than counterpart land-line modems. Since mobile device users are often generally mobile people who desire information quickly, such users may be less tolerant of increased delays due to complex searching algorithms.
There is currently not a sufficiently efficient method or system of location identification that facilitates rapid location comparison. What is needed is an efficient location encoding method and system that allow efficient data comparison.
SUMMARY
The disclosed methods and systems can encode geographic information into a binary number, otherwise known as a geocode and referred to herein as a "bingeo", that can be compared to other, similarly encoded geographic information using well-known bitwise comparison techniques. In embodiments where the bingeo is binary, the bitwise comparison can provide a geographic comparison without knowledge of underlying geographic information. The encoding methods and systems can incorporate geographic precision. For example, a bingeo bit can correspond to geographic precision, and generally, the bingeo precision can relate to the geographic precision. In some embodiments, the geographic precision can be specified or selected, and in some embodiments, the precision can be inherently or implicitly stipulated by the geographic information provided for encoding. Geographic information can include information that can be translated to a coordinate or reference system, using a reference that can be applied to the coordinate system, for example, the reference or coordinate system of latitude and longitude. Geographic information can include, for example, areas codes, street addresses, and zip codes, latitudes and/or longitudes, etc., that can be related to or converted to a reference system using known techniques.
The methods and systems can utilize a reference or coordinate system and iteratively segment the reference system by subdividing individual segments into quadrants.
Quadrants can be assigned, for example, a numeric value, wherein the placement of the numeric value within the bingeo relates to the iterative level of quadrant segmentation. The segmentation iteration level can similarly correspond to a geographic precision, as the number of iterations can increase the geographic precision. In one embodiment, an iterative segmentation scheme can be provided. In a first iteration, the segmentation scheme can be applied to the entire coordinate system, while in subsequent segmentations, the segmentation scheme may only be applied to the subdivision or segment that includes the location of interest. Similarly, in an embodiment, a methodology or other scheme for assigriing binary digits, coordinated with the segmentation scheme, can be iteratively performed in an identical manner for the different segmentation levels.
In one embodiment, the encoded binary representations can be used to generate at least one database having binary encoded locations of services, items, etc. A system can process requests from a user desiring services, items, etc., related to a specified geography, wherein the system can receive either the specified geography information, or the binary encoded form thereof, for extremely efficient comparison and identification of similarly located services, items, etc. Because the bingeo can be binary and can facilitate bitwise comparison, processor or microprocessor-based comparison can be extremely efficient.
The methods and systems can identify geographic locations near a quadrant border, wherein for a particular resolution, the methods and systems can perform similar resolution segmentation of an adjacent quadrant to identify similarly located items, services, etc. In another embodiment, bingeo codes can identify proximity of network devices. By comparing an originating network location with a destination network location, an efficient path between the two networks can be quickly determined.
In an embodiment, the iterative methods and systems can be performed recursively using well-known recursive programming techniques.
Other objects and advantages will become obvious hereinafter in the specification and drawings.
BRIEF DESCRIPTION OF THE DRAWINGS FIG. 1 presents a diagram illustrating a segmentation of a coordinate system;
FIG. 2 displays the segmenting algorithm of FIG. 1 as it is applied iteratively five times;
FIG. 3 indicates the binary representations resulting from the five segmentations of FIG. 2; FIG. 4 illustrates the segmentation and bingeo construction from FIGs. 1-3 as applied to a specific location;
FIG. 5 presents another iteration of the FIG. 4 illustration at a refined segmentation level;
FIG. 6 illustrates a sample system architecture for practicing the methods and systems.
DESCRIPTION
To provide an overall understanding, certain illustrative embodiments will now be described; however, it will be understood by one of ordinary skill in the art that the systems and methods described herein can be adapted and modified to provide systems and methods for other suitable applications and that other additions and modifications can be made without departing from the scope of the systems and methods described herein. The techniques provided herein present segmentation and indexing methods and systems. In an embodiment, the methods and systems can be iterative, and segment resolution can increase with iteration. In one embodiment, a binary code or number can be assigned to segments in an iteration. In such an embodiment, a binary code or number from a segmentation or iteration level can be incorporated into a composite binary representation, otherwise referred to herein as a "bingeo", wherein the bingeo can be representative of binary codes from multiple iterations or segmentations. In this embodiment, the bingeo can record the binary codes from the iterative segmentations.
For the purposes of the discussion herein, a segment can also be referred to and understood to be a subdivision, either of which are a result of a segmentation process. As will be discussed herein with reference to the illustrated embodiments, for example, quadrants result from segmentation, and hence references to quadrants can be understood to be a reference to a segment or subdivision. Other segmentation schemes can be used, for example, such that the segmentation schemes produce a number of segments or subdivisions that can be overlapping or non-overlapping.
Referring now to FIG. 1, there is an illustration 10 of a segmentation algorithm that can be applied to a reference or coordinate system. The embodiment discussed herein refers to the reference or coordinate system comprised of latitudes and longitudes, however those with ordinary skill in the art will recognize that the methods and systems can be applied to a reference or coordinate system that can be referred to herein collectively as coordinate systems. Similarly, those with ordinary skill in the art will recognize that the methods and systems herein can be applied to a reference system within a given coordinate system, as such reference system is not fixed and can be arbitrarily determined in some embodiments. FIG. 1 displays the latitudinal and longitudinal system as the large outer rectangle 12 wherein, for example, the left-most vertical segment 14 can represent -180° longitude, and the right-most vertical segment 16 can represent 180° longitude, although such reference is provided for illustration and not limitation. As FIG. 1 indicates, according to the illustrated segmentation scheme, the rectangle 12 representing the latitude and longitude reference system can be divided into evenly sized quadrants, thereby indicating that the center vertical segment 22 can represent 0° degrees longitude, while the center horizontal segment 24 can represent 0° degrees latitude. Those with ordinary skill in the art will recognize that although the division of quadrants as shown in FIG. 1 is uniform and square, other divisions can be implemented that can be uniform or non-uniform. The division of the coordinate system into quadrants as shown in FIG. 1 can be understood as the first level of segmentation in this example of a segmentation algorithm. Those skilled in the art will also recognize that the methods and systems can be practiced differently by segmenting the reference or coordinate system into a different number of segments, or by altering the reference points for segmentation.
Referring again to the embodiment of FIG. 1, once the reference or coordinate system is segmented, a unique binary number can be assigned to the segments that are shown in FIG. 1 as quadrants. In the example illustrated by FIG. 1 where a segment is a quadrant, the unique binary numbers assigned to the quadrants can be 00, 01, 10, and 11, respectively, with binary code assignments to segments as shown in FIG. 1. Such assignment of binary numbers is merely for illustration and not limitation, and other binary numbers and/or other numerical representations can be made.
Referring to FIG. 2, there is a graphical representation of the segmentation scheme or algorithm presented in FIG. 1, as the segmentation algorithm is iteratively applied to a single quadrant, shown in FIG. 1 as "quadrant 1". As FIG. 2 indicates, "quadrant 1" from FIG. 1 can be subdivided into four quadrants in FIG. 2, wherein the quadrants can be assigned binary codes or numbers (represented in base 10 notation) in a similar manner as the previous segmentation level. This second iteration of the segmentation algorithm to a single quadrant can be referred to as a second level of iteration, or a second hierarchical level. As FIG. 2 indicates, quadrant one from the second iteration or hierarchical level can again be segmented in quadrants to generate a third iteration or hierarchical level. FIG. 2 thus indicates the segmentation results and binary assignments for four iterative segmentations applied to "quadrant 1" of FIG. 1. FIG. 2 also displays that, for the illustrated system and segmentation scheme, for a new hierarchical or iteration level, the segment size is proportionately smaller (by one-quarter) when compared to the previous level of iteration, thereby providing better resolution or precision. One of ordinary skill will recognize that herein, hierarchical level or layer, segment level or layer, precision level or layer, iteration level or layer, recursion level or layer, can be understood to be equivalent terms. The assignment of quadrant number and associated binary number can be the same in different iteration levels. For example, in the FIG. 1 and FIG. 2 illustration, for the segmentation levels, the lower-left segment is quadrant zero and represented by "00", the upper-left segment is quadrant one represented by "01", the lower-right quadrant is assigned quadrant two represented by "10", and the upper-right quadrant is quadrant three and represented by "11".
FIG. 3 presents one construction of a bingeo with respect to the five layers of segmentation for a system having a segmentation algorithm illustrated by FIGs. 1 and 2. In an embodiment presented by FIG. 3, the bingeo length is sixty-four bits, represented by a 16-bit hexadecimal number with the conventional "Ox" prefix to indicate hexadecimal notation. In this representative embodiment, illustrated by FIGs. 1-3, where a quadrant can be assigned a unique two-bit binary number, a level of iteration can be assigned a specific bit-pair in the sixty-four bit bingeo, up to thirty-two segmentations or hierarchical iterations can be represented in the sixty-four bit bingeo. Those with ordinary skill in the art will recognize that the bingeo is not restricted to sixty-four bits, and can include fewer or more bits, depending upon the coordinate or reference system, the desired resolution (i.e., the number of hierarchical or iterative segmentations), processing constraints, etc. Additionally, although a system or method such as the system and method illustrated herein can provide the capability to generate bingeos of a certain precision, some bingeos may not be computed to such precision; therefore, in an embodiment, bingeos can be further associated with a bingeo precision indicator. For example, in a representative example as shown herein wherein a bingeo can be sixty-four bits, a bingeo can be associated with another byte, or eight bits, that represents the number of segmentation levels incorporated or represented in the respective bingeo. Other methods of associating the segmentation levels can include masks, etc., and the methods and systems are not limited by a precision indicator method or system. In an embodiment, a precision indicator can be provided in a bingeo database that includes bingeos and associated precision indicators.
In a sample embodiment wherein a bingeo is sixty-four bits, the sixty-four bits can be numbered one through sixty-four, with bit sixty-four being the left-most bit, or traditionally well-known in the art as the most-significant bit. In such an embodiment, the first hierarchy of segmentation can be assigned bingeo bits sixty-four and sixty-three, while the second segmentation level can be assigned bingeo bits sixty-two and sixty-one. This pattern can continue, whereupon the thirty-second iteration can be assigned bingeo bits two and one. Those with ordinary skill in the art will recognize that such ordering of bits and corresponding assignment is merely for illustration and not limitation. For example, another embodiment can otherwise combine bits from different iteration or segmentation levels before incorporating them into the bingeo. In yet another embodiment, the first hierarchy of iteration can correspond to the least significant bits in the bingeo. In an embodiment, the least significant bit can be known as bit zero, bit "A", or another identification scheme, etc.
In the embodiment presented in FIGs. 1-3, the binary digits incorporated into the bingeo are the binary digits that correspond to the binary representation assigned to a "selected" quadrant. For the illustrated system, the selected quadrant can be understood as the quadrant to be segmented on the next hierarchical level of segmentation or iteration. The selected quadrant can also be understood to be that quadrant including the location or geographic identity to be converted to a bingeo. For example, in the illustration of FIG. 2, the selected quadrant for the various iterations is the quadrant known as quadrant one and represented by the corresponding bit pair "01".
Returning again to FIG. 3, FIG. 3 illustrates the four bingeos 30 that exist upon the first segmentation according to a segmentation algorithm of FIG. 2, wherein the illustrated bingeos are presented in hexadecimal notation. In the illustrated systems, bingeos can be initialized as zero, however in an alternate embodiment according to the illustrated systems, the bingeos could also be initialized to hex value OxFFFFFFFFFFFFFFFF. Accordingly, in the illustrated system, at segmentation "level 1", the bingeo bits are zero with the exception of bits sixty-four and sixty-three that correspond to the respective assigned quadrant bit pairs. Upon a second segmentation, to segmentation "level 2", four quadrants are formed from the selected quadrant one of segmentation "level 1". The bingeo hexadecimal notations can be illustrated by 32, wherein the "level 2" bingeos can be formed by placing the respective bit-pair assignments from the four quadrants in bits sixty-two and sixty-one; however, because this segmentation level is derived from a previous segmentation, the bingeo from the previous segmentation level is preserved (i.e., bits sixty-four and sixty- three). As FIG. 3, indicates, this process of incorporating the binary code or number from the selected segment, subdividing, and appending a new bit pair, continues through levels three, four, and five. With a different level of segmentation, the bingeo can be assigned more binary digits, and therefore can become more accurate. Upon examination of FIG. 3, it can be recognized for the illustrated embodiment, that "quadrant zero" for a given segmentation level has the same representation of the previous level from which the bingeo is derived, as quadrant zero in this representative example provides a "00" to the bingeo. It can also be recognized, however, that although the bingeos of, for example, "level three, quadrant zero", and "level two, quadrant one", are equivalent, the "level three, quadrant zero" bingeo has a precision of six bits, while the
"level two, quadrant one" bingeo has a precision of four bits. Referring back to FIG. 2, the illustrated quadrant resolution increases geometrically with segmentation layer, such that succeeding bit pairs incorporated into the bingeo can increase the bingeo accuracy, and wherein for the illustrative segmentation scheme of FIG. 2, the segmentation resolution increases twenty-five percent as compared to the previous segmentation or hierarchical layer. For the illustrative system, bingeo bit pairs can therefore correspond to an iteration level and hence a segmentation size. For the example embodiment, bingeo bits one and two can relate to an accuracy or segmentation size of .16 square inches. Alternately, a similarly designed bingeo having inputs from only three segmentation or hierarchical layers provides an accuracy or segmentation size of 7,290,000 square miles.
Referring now to FIG. 4, there is an illustration of the segmentation algorithm and bingeo generation for a specified location. The specified location for which a bingeo is desired is shown in FIG. 4 as "X" 40 for segmentation and bingeo generation algorithms according FIGs. 1-3, where several segmentation iterations have occurred to form the bingeos that are represented by the hexadecimal numbers in the quadrants. Trailing zeros are not presented in the FIG. 4 bingeos.
In an embodiment that can be represented by FIG. 4, wherein a bingeo is computed for a specified location, the "selected" quadrant at a given iteration is that quadrant wherein the specified location (i.e., "X") resides. For FIG. 4, the selected quadrant is quadrant two 42, wherein for the illustrated embodiment, quadrant two is assigned a binary representation of "10" at the iteration levels. This "10" binary value can be incorporated into the bingeo before the next algorithm iteration or segmentation.
FIG. 5 provides the results of the next segmentation level for the embodiment of FIG. 4, with corresponding bingeos updated from FIG. 4 to reflect the selection or segmentation of quadrant three (i.e., "11"). As shown by FIG. 5, the next layer of segmentation is performed on quadrant one 50, represented by "01" in the FIG. 4 and FIG. 5 embodiments, wherein quadrant one includes the specified location, "X" 40. In the FIG. 4 and FIG. 5 example embodiment, the iterative segmentation and bingeo updating can continue in the manner demonstrated by FIGs. 4 and 5, until thirty-two segmentations and bingeo updates are performed. For the example embodiment, the corresponding result is a sixty-four bit bingeo that accurately represents the location of "X" 40 to .16 square inches, as discussed previously. Furthermore, the bingeo can be easily compared to other bingeos derived in the same manner. For example, in the representative system of FIGs. 1-5, where the latitude and longitude system is the reference or coordinate system, two bingeos can be efficiently compared, for example, by performing a logical, bitwise comparison, for example a logical XOR (exclusive OR), and determining those bits that are different. Because the bingeos of the illustrated system can be derived such that a bingeo bit position (i.e., bit pair) can relate to a segmentation level or precision that can be related to a distance measure, a system, computer, etc., can easily determine the location differences or distance measures between two bingeos by comparing the positions of the differing bits and relating such differing bit positions to segmentation levels, precisions, and/or distance measures. This comparison method can be extremely efficient when compared to the complex algorithms and computations that are required to convert, for example, two latitude/longitude pairs to other units to obtain a meaningful difference between the two latitudes and longitudes. Furthermore, a relative comparison of bingeos for different geographical locations can be performed to determine the proximity of the locations, without specifically knowing the identity of the locations.
As FIGs. 4 and 5 indicate, there can be scenarios wherein a selected location for which a bingeo is to be computed, can be very near a quadrant segmentation line. In such cases, herein referred to as "border cases", special processing can be performed to identify neighboring segments. For example, consider a scenario shown in FIG. 4, wherein a selected location can be within several feet of a segmentation divider at the very highest hierarchical level of segmentation. In an embodiment wherein the bingeo is sixty-four bits, bingeo bits sixty-four and sixty-three for the selected location can correspond to quadrant two (i.e, "10") in this example, while a bingeo for a geographically proximate location in quadrant zero for this example will have corresponding bits sixty-four and sixty-three of "00". Without border case processing, this bingeo difference at a high level of segmentation can indicate a potentially large geographical difference, when perhaps the geographical difference is not different, but based on a border issue.
In an embodiment, bingeo comparisons can be processed using a border case algorithm to identify border cases. In an embodiment according to the methods and systems of FIGs. 1-5 and wherein two bingeos referred to as reference bingeos can be compared, the border case algorithm can identify eight segments and corresponding eight bingeo representations for the two reference bingeos. The eight surrounding segments and their associated bingeos can be referred to herein as neighbor segments and neighbor bingeos. For the illustrated systems wherein eight neighbor bingeos can be identified and/or computed for a given reference bingeo, neighbor bingeos for the reference bmgeos can be computed at various precision levels. By identifying and comparing neighbor bingeos at different precision levels, a proximity to segmentation border can be determined.
Once border cases are identified and related to specified segmentation levels or precisions for the reference bingeos, relative geographic proximity of the reference bingeos can be more accurately computed.
Referring now to FIG. 6, there is shown a system 60 wherein bingeos can be utilized for efficient and rapid comparison of locations, for example, to identify items, services, etc., within a specified distance of a given location. The system of FIG. 6 can be implemented using a digital computer system and information sources that are accessible via a communication network, keyboard, digital camera, microphone, etc. The digital computer system can be a microprocessor-based system including a computer workstation, such as a PC workstation or a SUN workstation, that includes a program for organizing and controlling the digital computer system to operate according to the methods and systems. Additionally and optionally, the microprocessor-based system can be equipped with a sound and video card for processing multimedia data. The computer system can operate as a stand-alone system or as part of a networked computer system. Alternatively, the computer system can be dedicated devices, such as embedded systems, that can be incorporated into existing hardware devices, such as telephone systems, PBX systems, sound cards, etc. Accordingly, it will be understood by one of ordinary skill in the art that the system described herein has wide applicability and can be incorporated in many systems, and realized in many forms.
The representative embodiment system 60 of FIG. 6 includes a user interface 62 that can accept a location, a query, and a precision. The location can be location information that can include a latitude and longitude, a street address, parcel, ward, a zip code or area code, a direction, etc., and in the illustrated example, can be the location of a person or entity submitting the query. The query can be for information such as restaurants in a specific area, service stations, dry cleaners, etc. A requesting entity therefore can supply geographic information that can be related to a bingeo, and similarly, the information requested can be an information, person, entity, etc., that can be associated with a geographic location that can be related to a bingeo. Alternately, a query can specify precision in miles or some other distance measure, and in the illustrated embodiment, the precision can be interpreted relative to the submitted location, although other embodiments can use other relative references for precision. The user interface 62 can accept the location, query, and precision information and send the location information to the bingeo conversion module 64.
The illustrated bingeo conversion module 64 can convert the location information to a specific coordinate system that can be, for example, the latitude and longitude reference system discussed herein. For example, when the illustrated bingeo conversion module 64 receives geographic information including a zip code or area code, the bingeo conversion module 64 can determine the centroid of the zip code or area code, and translate such information to a latitude and longitude. Once the illustrated bingeo conversion module 64 has a latitude and longitude for the specified location, it can convert the latitude and longitude to a bingeo using a recursive, hierarchical, or iterative segmentation scheme or algorithm such as described herein. In a FIG. 6 system 60 utilizing the bingeo systems of FIGs. 1-5, a sixty-four bit bingeo can then transferred from the bingeo conversion module 64 to a bingeo comparator 66.
The illustrated bingeo comparator 66 can access a database 68 of bingeo codes, wherein the database bingeo codes can relate to services, items, people, etc., or an entity or individual having an association with geographic information. Access to the database 68 can be local or through a network, utilizing wired or wireless cornmunications devices and protocols, etc. As indicated herein, geographic information can be understood to include information that can relate to a location or reference to a reference or coordinate system and using a reference system within the coordinate system, and can include but not be limited to area code and/or phone number, zip code, parcel, ward, address including street and/or state, latitude and/longitude, etc. In an embodiment, the bingeo database 68 can be organized by service, item, people, etc., and can be organized to list an item with its corresponding bingeo and/or precision. Alternately, the illustrated bingeo database 68 can represent multiple databases wherein a database can be categorized to bingeos for certain items, places, services, etc. The database 68, and other databases referred to herein, can be a memory having one or more physical or logical partitions and/or segments, and can optionally and additionally utilize one or more of well-known database packages including
MySQL, SQL, Oracle, Informix, etc., with such examples provided merely for illustration and not limitation.
The illustrated comparator 66 can search the database 68 using, for example, the query item from the user interface to determine that part or parts of the bingeo database 68 that include relevant bingeos. Once the relevant bingeos are identified, the illustrated comparator 66 can perform a comparison between the location bingeo code and the relevant bingeos. In one embodiment, the comparison can be performed using a logical, bitwise XOR (exclusive OR) operation between the location bingeo and the relevant database bingeo(s), although other comparison techniques can be used. Because in this example, the bit-pairs of the bingeo relate to a particular segment size, in certain embodiments, the result of the logical XOR can be converted to a distance measure by the bingeo difference translator 70 and compared to the precision provided by the user interface 62. Those comparisons indicating a difference satisfying the precision provided by the user interface, can be provided to the user interface 62 with the corresponding location (i.e., address) and identity of the entity/individual. In an alternate embodiment, a precision from the user interface 62 can be provided to the bingeo conversion module 64, or perhaps another module not illustrated, and converted to a bingeo. Such conversion requires knowledge of the bingeo segmentation algorithm to determine the most accurate bingeo representation of the user-entered precision (i.e., relating the thirty-two bit pairs to the segmentation sizes). The bingeo precision could then be utilized by the comparator to further simplify the operations performed by the comparator, eliminating the conversion of bingeo differences (i.e., difference between the location bingeo and relevant database items) to a distance for comparison to the user- entered precision.
Those with skill in the art will readily recognize that the user interface 62 of FIG. 6 can be a computer display, cellular phone display, laptop or handheld computer display, etc.
Similarly, the corrrmunications between a user and the user-interface 62, between the user- interface 62 and the bingeo conversion module 64, or between other modules illustrated in FIG. 6 or otherwise described herein, can be wired or wireless, RF, infrared, ultrasound, etc., using well-known communications techniques and/or protocols. Those with ordinary skill in the art will recognize that the methods and systems of
FIGs. 1-5 can also be implemented to provide a geocode, or more specifically, a binary geocode, as referenced in the co-pending application "Geographical Comparison Apparatus and Method," herein incorporated by reference. Accordingly, a bingeo is one form of a binary geocode. As indicated herein with respect to FIG. 6, and with regard to the incorporated reference, bingeos can be compared wherein a precision for one bingeo can be more precise than a precision for another bingeo. For example, if one party provides geographic information that includes less specific information such as a zip code or area code, the bingeo can only be computed to a certain degree of accuracy. In another embodiment using the example of a zip code, the bingeo could be computed to a precise degree of accuracy using the centroid of the zip code; however, an uncertainty can be associated with the bingeo in such an example as the location of the entity within the zip code relative to the centroid, may be unknown. This uncertainty can be included as a factor in some systems and methods.
One advantage of the methods and systems over the prior art is that the methods and systems form binary representations of locations that allow accurate and efficient comparison of locations by merely performing a single binary operation. What has thus been described is a method and apparatus of converting geographic information to a binary representation, otherwise known as a bingeo. The geographic information can be converted to a binary representation within a selected reference or coordinate system, and with respect to a reference within the selected coordinate system. The conversion between the coordinate system location and the bingeo can occur by iteratively and logically segmenting the coordinate system, or segments thereof. The iterative algorithm can include identifying the segment that includes the specified location, and segmenting the identified segment. During an iteration, segments can be assigned a unique binary code that can be incorporated into the bingeo. In an embodiment, the bingeo can be sixty-four bits, while an algorithm iteration can produce a unique two-bit designation that can be assigned a unique location within the bingeo. In this embodiment, as many as thirty-two segmentation iterations can be performed, with the iterative segmentations providing increased precision. For a coordinate system including latitude/longitude, a Im ¬
precision of .16 inches squared can be attained. Two bingeos can then be compared, in the simplest form, using a bitwise logical XOR.
The techniques described herein are not limited to a particular hardware or software configuration, and may find applicability in many computing or processing environments. The techniques can be implemented in hardware or software, or a combination of hardware and software. The techniques can be implemented in one or more computer programs executing on one or more programmable computers that include a processor, a storage medium readable by the processor (including volatile and non- volatile memory and/or storage elements), one or more input devices, and one or more output devices. The computer program(s) is preferably implemented in one or more high level procedural or object-oriented programming languages to communicate with a computer system; however, the program(s) can be implemented in assembly or machine language, if desired. The language can be compiled or interpreted.
The computer program(s) can be preferably stored on a storage medium or device (e.g., CD-ROM, hard disk, or magnetic disk) readable by a general or special purpose programmable computer for configuring and operating the computer when the storage medium or device is read by the computer to perform the procedures described herein. The system can also be considered to be implemented as a computer-readable storage medium, configured with a computer program, where the storage medium so configured causes a computer to operate in a specific and predefined manner.
Although the methods and systems have been described relative to a specific embodiment thereof, they are not so limited. Obviously many modifications and variations may become apparent in light of the above teachings. For example, although the bingeo presented herein is thirty-two bits, other sized bingeos can be used. Other coordinate or reference systems can be used, and it is not necessary to divide the coordinate system or segments thereof into quadrants at an iteration. The segmentation scheme can be overlapping or non-overlapping. Alternate systems can divide the coordinate system into greater, or fewer, segments. Similarly, the assignment of quadrants and binary designations to quadrants can be altered. The translation of information from the various segmentation levels to the bingeo can be performed differently than presented herein, wherein the bits from the selected quadrant are merely assigned particular positions within the bingeo. The bingeos can be compared using a variety of different mechanisms and it is not required to use a logical XOR, or other processing beyond the logical XOR can also be performed. Certain modules related to FIG. 6 can be separated or combined.
Many additional changes in the details, materials, and arrangement of parts, herein described and illustrated, can be made by those skilled in the art. Accordingly, it will be understood that the following claims are not to be limited to the embodiments disclosed herein, can include practices otherwise than specifically described, and are to be interpreted as broadly as allowed under the law.
What is claimed is:

Claims

1. A method of forming a binary representation of geographic information based on a coordinate system, the method comprising, relating the geographic information to the coordinate system, providing a hierarchical segmentation scheme to create subdivisions based on the geographic information, assigning a binary code to the subdivisions, and, forming the binary representation based on the assigned binary codes.
2. A method according to claim 1 , wherein relating the geographic information includes determining a location in the coordinate system.
3. A method according to claim 1, wherein providing a hierarchical segmentation scheme includes providing an iterative scheme.
4. A method according to claim 1, wherein providing a hierarchical segmentation scheme includes providing a recursive scheme.
5. A method according to claim 1, wherein providing a hierarchical segmentation scheme includes providing a scheme to create subdivisions from at least one of the coordinate system or a subdivision of the coordinate system.
6. A method according to claim 1, wherein providing a hierarchical segmentation scheme includes providing a scheme to create four segments from at least one of the coordinate system or a subdivision of the coordinate system.
7. A method according to claim 1, wherein assigning a binary code includes assigning a two bit binary code.
8. A method according to claim 1, wherein forming the binary representation includes associating bits of the binary representation with a level of the hierarchical scheme.
9. A method according to claim 1, further including initializing the binary representation to be zero.
10. A method according to claim 1, further including initializing the binary representation to includes ones in every location.
11. A method according to claim 1, further including, providing a precision for the binary representation, and, determining a level of the hierarchical scheme to provide the precision.
12. A method according to claim 1, further including at least one of storing the binary representation in a database and storing a precision indicator based on the binary representation precision.
13. A method according to claim 1, further including selecting a reference relative to the coordinate system.
14. A method according to claim 1, wherein relating the geographic information to the coordinate system includes computing a centroid based on the geographic information.
15. A method according to claim 1, wherein relating the geographic information includes relating at least one of latitude, longitude, direction, parcel, ward, street address, city, town, zip code, telephone number, area code, destination, and direction.
16. A method of forming a binary representation of geographic information based on a coordinate system, the method comprising, relating the geographic information to the coordinate system, iteratively creating subdivisions from at least one of the coordinate system or a subdivision of the coordinate system, assigning a binary code to the created subdivisions, and, forming the binary representation based on the binary code of the identified created subdivision.
17. A method according to claim 16, wherein iteratively creating includes iteratively creating from a subdivision of the coordinate system that is related to a location of the geographical information in the coordinate system.
18. A method according to claim 16, wherein iteratively creating subdivisions further includes dividing into quadrants.
19. A method according to claim 16, further including determining a scheme for assigning the binary codes at the iteration levels.
20. A method according to claim 16, wherein assigning a unique binary code includes assigning a unique two bit binary code.
21. A method according to claim 16, wherein forming the binary representation includes associating an iteration level with positions in the binary representation.
22. A method according to claim 16, further comprising ending the iteration based on a level of precision.
23. A method according to claim 16, further comprising ending the iteration based on a size of the binary representation.
24. A method according to claim 16, wherein relating the geographic information to a location includes computing a latitude and longitude based on the geographic information.
25. A method according to claim 16, wherein relating the geographic information to the coordinate system includes computing a centroid based on the geographic information.
26. A method according to claim 16, wherein iteratively creating subdivisions includes creating subdivisions of equal size.
27. A method according to claim 16, further comprising initializing the binary representation to zero.
28. A method according to claim 16, further comprising initializing the binary representation to include ones in every location.
29. A method according to claim 16, further including specifying a size for the binary representation.
30. A method according to claim 16, further including specifying a size of sixty-four bits for the binary representation.
31. A method according to claim 16, further including selecting a reference frame within the coordinate system.
32. A method according to claim 16, further including providing a scheme to assign a binary code.
33. A method according to claim 16, further including receiving the geographic information as one of latitude, longitude, direction, parcel, ward, street address, town, city, zip code, telephone number, area code, destination, and direction.
34. A method for comparing a first location and a second location, comprising, using an iterative process to obtain a binary representation of the first location, using the iterative process to obtain a binary representation of the second location, performing a binary computation utilizing the first location binary representation and the second location binary representation to obtain a binary result, and computing a distance measure from the binary result.
35. A method according to claim 34, wherein using an iterative process includes, relating the location to a coordinate system, and, iteratively creating subdivisions from at least one of the coordinate system or a subdivision of the coordinate system, assigning a binary code to the created subdivisions, and, forming the binary representation based on the binary code of the identified created subdivision.
36. A method according to claim 34, wherein performing a binary computation includes performing an exclusive OR (XOR).
37. A method according to claim 34, wherein computing a distance measure further includes associating binary digits of the binary result to. at least one distance measure.
38. A method according to claim 34, further including identifying at least one binary representation corresponding to at least one neighbor of the first location.
39. A method according to claim 34, further including identifying at least one binary representation corresponding to at least one neighbor of the second location.
40. A method according to claim 34, further including computing at least one binary representation corresponding to at least one neighbor of the first location.
41. A method according to claim 34, further including computing at least one binary representation corresponding to at least one neighbor of the second location.
42. A method according to claim 34, further including determining at least one of whether the binary representation of the first location is a neighbor of the binary representation of the second location, and whether the binary representation of the second location is a neighbor of the binary representation of the first location.
43. A system for comparing at least two locations, comprising, an interface to receive geographical information based on at least one of the at least two locations, a processor having instructions to convert the geographical information to a binary representation using a hierarchical segmentation scheme, a database that includes binary representations of at least another of the at least two locations, a comparator to perform a binary computation between binary representations.
44. A system according to claim 43, further including a difference translator to determine difference measure from the comparator result.
45. A system according to claim 43, further comprising a neighbor location module to identify the binary representations of neighbors for the at least two locations.
46. A system according to claim 43, wherein the comparator is an exclusive OR.
47. A system according to claim 43, wherein the processor has instructions for, relating the geographical information to a coordinate system, iteratively creating subdivisions from at least one of the coordinate system or a subdivision of the coordinate system, assigning a binary code to the created subdivisions, and, forming the binary representation based on the binary code of the identified created subdivision.
48. A system according to claim 43, further including precision indicators associated with the binary representations in the database.
49. A system according to claim 43, further including a precision indicator associated with the binary representation.
50. A system according to claim 43, further including identity information associated with the binary representations in the database.
51. A system for forming a binary representation of geographic information based on a coordinate system, the system comprising, means for providing the geographic information, means for implementing a hierarchical segmentation scheme to create subdivisions based on the geographic information, means for assigning a binary code to the subdivisions, and, means for forming the binary representation based on the assigned binary codes.
52. A system according to claim 51, wherein the means for providing include any internet- accessible device.
53. A system according to claim 51, wherein means for implementing a hierarchical segmentation scheme include a processor and processor instructions.
PCT/US2001/016745 2000-05-24 2001-05-24 Location encoder WO2001090690A2 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
AU2001264878A AU2001264878A1 (en) 2000-05-24 2001-05-24 Location encoder

Applications Claiming Priority (8)

Application Number Priority Date Filing Date Title
US60/206,738 2000-05-24
US60/213,013 2000-06-21
US09/863,962 US6552670B2 (en) 2000-05-26 2001-05-23 Location encoder
US09/863,962 2001-05-23
PCT/US2001/016783 WO2001090920A2 (en) 2000-05-24 2001-05-23 Geographical comparison system and method
USPCT/US01/16783 2001-05-23
US09/863,538 US7127068B2 (en) 2000-05-24 2001-05-23 Geographical comparison system and method
US09/863,538 2001-05-23

Publications (2)

Publication Number Publication Date
WO2001090690A2 true WO2001090690A2 (en) 2001-11-29
WO2001090690A3 WO2001090690A3 (en) 2003-03-20

Family

ID=27359077

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/US2001/016745 WO2001090690A2 (en) 2000-05-24 2001-05-24 Location encoder

Country Status (1)

Country Link
WO (1) WO2001090690A2 (en)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7488372B2 (en) 2005-02-03 2009-02-10 Shell Oil Company Process for inhibiting deposition of solids from a gaseous stream
CN112765301A (en) * 2021-01-28 2021-05-07 中国水产科学研究院东海水产研究所 Region division method based on laminated frame

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
GB1485799A (en) * 1974-12-27 1977-09-14 Ibm Uk Methods of encoding and storing data items
US5727057A (en) * 1994-12-27 1998-03-10 Ag Communication Systems Corporation Storage, transmission, communication and access to geographical positioning data linked with standard telephony numbering and encoded for use in telecommunications and related services
WO2000023862A2 (en) * 1998-10-16 2000-04-27 Vicinity Corporation A method and system for providing a web-sharable personal database

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
GB1485799A (en) * 1974-12-27 1977-09-14 Ibm Uk Methods of encoding and storing data items
US5727057A (en) * 1994-12-27 1998-03-10 Ag Communication Systems Corporation Storage, transmission, communication and access to geographical positioning data linked with standard telephony numbering and encoded for use in telecommunications and related services
WO2000023862A2 (en) * 1998-10-16 2000-04-27 Vicinity Corporation A method and system for providing a web-sharable personal database

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7488372B2 (en) 2005-02-03 2009-02-10 Shell Oil Company Process for inhibiting deposition of solids from a gaseous stream
CN112765301A (en) * 2021-01-28 2021-05-07 中国水产科学研究院东海水产研究所 Region division method based on laminated frame

Also Published As

Publication number Publication date
WO2001090690A3 (en) 2003-03-20

Similar Documents

Publication Publication Date Title
US6552670B2 (en) Location encoder
US8060367B2 (en) Spatially indexed grammar and methods of use
CN110008293B (en) Geographic position query method and device
US7127068B2 (en) Geographical comparison system and method
US9730028B2 (en) Systems and methods to identify home addresses of mobile devices
US20070296630A1 (en) Enhanced positional accuracy in geocoding by dynamic interpolation
CN109672980B (en) Method, device and storage medium for determining wireless local area network hotspot corresponding to interest point
US20140278228A1 (en) Mapping uncertain geometries to graticules
WO2019072092A1 (en) Ip address positioning method and apparatus, electronic device, and storage medium
KR20100077006A (en) Method, apparatus and computer program product for multiple buffering for search application
CN110049434B (en) Positioning method, device, equipment and storage medium
US8868106B2 (en) System and method for large-scale and near-real-time search of mobile device locations in arbitrary geographical boundaries
CN106792527B (en) Position data processing method and device and computing equipment
CN111641924B (en) Position data generation method and device and electronic equipment
WO2001090690A2 (en) Location encoder
Zhang et al. Deep neural network-based telco outdoor localization
CN115129751A (en) Data query method and device, electronic equipment and storage medium
KR100776824B1 (en) Method for searching nearest-neighbor in wireless broadcast environment, recording medium thereof, apparatus for searching nearest-neighbor in wireless broadcast environment and system thereof
Park An Efficient Scalable Spatial Data Search for Location-Aware Mobile Services.
KR101029971B1 (en) Apparatus and method for processing constrained NN query in wireless broadcast environments, and constrained NN query processing system using thereof
CN116743707B (en) IP geographic positioning method and device based on active time delay detection
US20200112542A1 (en) Hierarchical geographic naming
CN115190110B (en) Geographic position determining method and device
CN111738352B (en) Method, device and equipment for positioning inside of building entity
US11762914B2 (en) Systems and methods for matching multi-part place identifiers

Legal Events

Date Code Title Description
AK Designated states

Kind code of ref document: A2

Designated state(s): AE AG AL AM AT AU AZ BA BB BG BR BY BZ CA CH CN CO CR CU CZ DE DK DM DZ EE ES FI GB GD GE GH GM HR HU ID IL IN IS JP KE KG KP KR KZ LC LK LR LS LT LU LV MA MD MG MK MN MW MX MZ NO NZ PL PT RO RU SD SE SG SI SK SL TJ TM TR TT TZ UA UG US US US US UZ VN YU ZA ZW

AL Designated countries for regional patents

Kind code of ref document: A2

Designated state(s): GH GM KE LS MW MZ SD SL SZ TZ UG ZW AM AZ BY KG KZ MD RU TJ TM AT BE CH CY DE DK ES FI FR GB GR IE IT LU MC NL PT SE TR BF BJ CF CG CI CM GA GN GW ML MR NE SN TD TG

121 Ep: the epo has been informed by wipo that ep was designated in this application
DFPE Request for preliminary examination filed prior to expiration of 19th month from priority date (pct application filed before 20040101)
122 Ep: pct application non-entry in european phase
NENP Non-entry into the national phase in:

Ref country code: JP