private void assertEncodingWithCharacterPrecision( WGS84Point point, int numberOfCharacters, String stringValue) { GeoHash hash = GeoHash.withCharacterPrecision( point.getLatitude(), point.getLongitude(), numberOfCharacters); assertEquals(stringValue, hash.toBase32()); }
@Test public void testByCharacterPrecision() { assertEncodingWithCharacterPrecision(new WGS84Point(20, 31), 12, "sew1c2vs2q5r"); assertEncodingWithCharacterPrecision(new WGS84Point(-20, 31), 12, "ksqn1rje83g2"); assertEncodingWithCharacterPrecision( new WGS84Point(-20.783236276, 31.9867127312312), 12, "ksq9zbs0b7vw"); WGS84Point point = new WGS84Point(-76.5110040642321, 39.0247389581054); String fullStringValue = "hf7u8p8gn747"; for (int characters = 12; characters > 1; characters--) { assertEncodingWithCharacterPrecision( point, characters, fullStringValue.substring(0, characters)); } assertEncodingWithCharacterPrecision( new WGS84Point(39.0247389581054, -76.5110040642321), 12, "dqcw4bnrs6s7"); String geoHashString = GeoHash.geoHashStringWithCharacterPrecision(point.getLatitude(), point.getLongitude(), 12); assertEquals(fullStringValue, geoHashString); }