Ejemplo n.º 1
0
        public void NumberOfCharacterTest(int characterLength)
        {
            int        bitLength = characterLength * GeoHash.Base32Bits;
            double     xUnit     = 360d / (1 << ((bitLength + 1) / 2));
            double     yUnit     = 180d / (1 << (bitLength / 2));
            RectangleD rect      = RectangleD.FromLTRB(0, 0, xUnit, yUnit);

            Assert.Equal(characterLength, GeoHashSizeTable.NumberOfCharacter(rect));
        }
Ejemplo n.º 2
0
        public GeoHashBoundingBoxQuery(BoundingBox bbox)
        {
            int        fittingBits = GeoHashSizeTable.NumberOfBitsForOverlappingGeoHash(bbox);
            WGS84Point center      = bbox.CenterPoint;
            GeoHash    centerHash  = GeoHash.WithBitPrecision(center.Latitude, center.Longitude, fittingBits);

            if (HashFits(centerHash, bbox))
            {
                AddSearchHash(centerHash);
            }
            else
            {
                ExpandSearch(centerHash, bbox);
            }
        }