Lucene - Core
  1. Lucene - Core
  2. LUCENE-1815

Geohash encode/decode floating point problems

    Details

    • Type: Bug Bug
    • Status: Reopened
    • Priority: Minor Minor
    • Resolution: Unresolved
    • Affects Version/s: 2.9
    • Fix Version/s: None
    • Component/s: modules/spatial
    • Labels:
      None
    • Lucene Fields:
      New

      Description

      i'm finding the Geohash support in the spatial package to be rather unreliable.
      Here is the outcome of a test that encodes/decodes the same lat/lon and geohash a few times.
      the format:
      action geohash=(latitude, longitude)

      the result:
      encode u173zq37x014=(52.3738007,4.8909347)
      decode u173zq37x014=(52.373799999999996,4.890934)
      encode u173zq37rpbw=(52.373799999999996,4.890934)
      decode u173zq37rpbw=(52.373799999999996,4.8909329999999995)
      encode u173zq37qzzy=(52.373799999999996,4.8909329999999995)

      if I now change to the google code implementation:

      encode u173zq37x014=(52.3738007,4.8909347)
      decode u173zq37x014=(52.37380061298609,4.890934377908707)
      encode u173zq37x014=(52.37380061298609,4.890934377908707)
      decode u173zq37x014=(52.37380061298609,4.890934377908707)
      encode u173zq37x014=(52.37380061298609,4.890934377908707)

      Note the differences between the geohashes in both situations and the lat/lon's!
      Now things get worse if you work on low-precision geohashes:

      decode u173=(52.0,4.0)
      encode u14zg429yy84=(52.0,4.0)
      decode u14zg429yy84=(52.0,3.999999)
      encode u14zg429ywx6=(52.0,3.999999)

      and google:

      decode u173=(52.20703125,4.5703125)
      encode u17300000000=(52.20703125,4.5703125)
      decode u17300000000=(52.20703125,4.5703125)
      encode u17300000000=(52.20703125,4.5703125)

      We are using geohashes extensively and will now use the google code version unfortunately.

        Activity

        No work has yet been logged on this issue.

          People

          • Assignee:
            Unassigned
            Reporter:
            Wouter Heijke
          • Votes:
            0 Vote for this issue
            Watchers:
            2 Start watching this issue

            Dates

            • Created:
              Updated:

              Development