Uploaded image for project: 'Lucene - Core'
  1. Lucene - Core
  2. LUCENE-1815

Geohash encode/decode floating point problems

Details

    • Bug
    • Status: Reopened
    • Minor
    • Resolution: Unresolved
    • 2.9
    • None
    • modules/spatial
    • None
    • 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.

      Attachments

        Activity

          People

            Unassigned Unassigned
            wheijke Wouter Heijke
            Votes:
            0 Vote for this issue
            Watchers:
            1 Start watching this issue

            Dates

              Created:
              Updated: