private List read(BufferedReader bufferedReader) throws IOException, ParseException { List geoms = new ArrayList(); while (! isAtEndOfFile(bufferedReader) && ! isAtLimit(geoms)) { String line = bufferedReader.readLine().trim(); if (line.length() == 0) continue; Geometry g = wkbReader.read(WKBReader.hexToBytes(line)); if (count >= offset) geoms.add(g); count++; } return geoms; }
public Geometry read(String geomStr) throws ParseException { String trimStr = geomStr.trim(); if (isHex(trimStr, MAX_CHARS_TO_CHECK)) return wkbReader.read(WKBReader.hexToBytes(trimStr)); return wktReader.read(trimStr); } }
private void checkWKBGeometry(String wkbHex, String expectedWKT) throws ParseException { WKBReader wkbReader = new WKBReader(geomFactory); byte[] wkb = WKBReader.hexToBytes(wkbHex); Geometry g2 = wkbReader.read(wkb); WKTReader useRdr = rdr; if (expectedWKT.contains("ZM")) useRdr = rdrM; else if (expectedWKT.contains("M(") || expectedWKT.contains("M (")) useRdr = rdrM; Geometry expected = useRdr.read(expectedWKT); boolean isEqual = (expected.compareTo(g2, comp2) == 0); if (!isEqual) {System.out.println(g2);System.out.println(expected);} assertTrue(isEqual); } }
void runGeometry(Geometry g, int dimension, int byteOrder, boolean toHex, int srid) throws IOException, ParseException { boolean includeSRID = false; if (srid >= 0) { includeSRID = true; g.setSRID(srid); } WKBWriter wkbWriter = new WKBWriter(dimension, byteOrder, includeSRID); byte[] wkb = wkbWriter.write(g); String wkbHex = null; if (toHex) wkbHex = WKBWriter.toHex(wkb); if (toHex) wkb = WKBReader.hexToBytes(wkbHex); Geometry g2 = wkbReader.read(wkb); CoordinateSequenceComparator comp = (dimension == 2) ? comp2 : comp3; boolean isEqual = (g.compareTo(g2, comp) == 0); assertTrue(isEqual); if (includeSRID) { boolean isSRIDEqual = g.getSRID() == g2.getSRID(); assertTrue(isSRIDEqual); } } }