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)); }
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); } }