protected void readUntilEvent(JSONParser parser, final int event) throws IOException { int evt = parser.lastEvent(); while (true) { if (evt == event || evt == JSONParser.EOF) { return; } evt = parser.nextEvent(); } }
protected Shape readMultiPoint(JSONParser parser) throws IOException, ParseException { assert (parser.lastEvent() == JSONParser.ARRAY_START); ShapeFactory.MultiPointBuilder builder = shapeFactory.multiPoint(); readCoordListXYZ(parser, builder); return builder.build(); }
protected Shape readPoint(JSONParser parser) throws IOException, ParseException { assert (parser.lastEvent() == JSONParser.ARRAY_START); OnePointsBuilder onePointsBuilder = new OnePointsBuilder(shapeFactory); readCoordXYZ(parser, onePointsBuilder); Point point = onePointsBuilder.getPoint(); readUntilEvent(parser, JSONParser.OBJECT_END); return point; }
protected void readCoordListXYZ(JSONParser parser, ShapeFactory.PointsBuilder pointsBuilder) throws IOException, ParseException { assert (parser.lastEvent() == JSONParser.ARRAY_START); int evt = parser.nextEvent(); while (evt != JSONParser.EOF) { switch (evt) { case JSONParser.ARRAY_START: readCoordXYZ(parser, pointsBuilder); // reads until ARRAY_END break; case JSONParser.ARRAY_END: return; default: throw new ParseException("Unexpected " + JSONParser.getEventString(evt), (int) parser.getPosition()); } evt = parser.nextEvent(); } }
protected Circle readCircle(JSONParser parser) throws IOException, ParseException { assert (parser.lastEvent() == JSONParser.ARRAY_START); OnePointsBuilder onePointsBuilder = new OnePointsBuilder(shapeFactory); readCoordXYZ(parser, onePointsBuilder); Point point = onePointsBuilder.getPoint(); return shapeFactory.circle(point, readDistance("radius", "radius_units", parser)); }
int evt = parser.lastEvent(); while (true) { if (evt == event || evt == JSONParser.EOF) {
protected Shape readLineString(JSONParser parser) throws IOException, ParseException { assert (parser.lastEvent() == JSONParser.ARRAY_START); ShapeFactory.LineStringBuilder builder = shapeFactory.lineString(); readCoordListXYZ(parser, builder); // check for buffer field builder.buffer(readDistance(BUFFER, BUFFER_UNITS, parser)); Shape out = builder.build(); readUntilEvent(parser, JSONParser.OBJECT_END); return out; }
protected ShapeFactory.PolygonBuilder readPolygon(JSONParser parser, ShapeFactory.PolygonBuilder polygonBuilder) throws IOException, ParseException { assert (parser.lastEvent() == JSONParser.ARRAY_START); boolean firstRing = true; int evt = parser.nextEvent(); while (true) { switch (evt) { case JSONParser.ARRAY_START: if (firstRing) { readCoordListXYZ(parser, polygonBuilder); firstRing = false; } else { ShapeFactory.PolygonBuilder.HoleBuilder holeBuilder = polygonBuilder.hole(); readCoordListXYZ(parser, holeBuilder); holeBuilder.endHole(); } break; case JSONParser.ARRAY_END: return polygonBuilder; default: throw new ParseException("Unexpected " + JSONParser.getEventString(evt), (int) parser.getPosition()); } evt = parser.nextEvent(); } }
protected Shape readMultiLineString(JSONParser parser) throws IOException, ParseException { assert (parser.lastEvent() == JSONParser.ARRAY_START); // TODO need Spatial4j LineString interface ShapeFactory.MultiLineStringBuilder builder = shapeFactory.multiLineString(); int evt = parser.nextEvent(); while (true) { switch (evt) { case JSONParser.ARRAY_START: ShapeFactory.LineStringBuilder lineStringBuilder = builder.lineString(); readCoordListXYZ(parser, lineStringBuilder); builder.add(lineStringBuilder); break; case JSONParser.ARRAY_END: return builder.build(); default: throw new ParseException("Unexpected " + JSONParser.getEventString(evt), (int) parser.getPosition()); } evt = parser.nextEvent(); } }
protected Shape readMultiPolygon(JSONParser parser) throws IOException, ParseException { assert (parser.lastEvent() == JSONParser.ARRAY_START); // TODO need Spatial4j Polygon interface ShapeFactory.MultiPolygonBuilder builder = shapeFactory.multiPolygon(); int evt = parser.nextEvent(); while (true) { switch (evt) { case JSONParser.ARRAY_START: ShapeFactory.PolygonBuilder polygonBuilder = readPolygon(parser, builder.polygon()); builder.add(polygonBuilder); break; case JSONParser.ARRAY_END: return builder.build(); default: throw new ParseException("Unexpected " + JSONParser.getEventString(evt), (int) parser.getPosition()); } evt = parser.nextEvent(); } } }
protected void readCoordXYZ(JSONParser parser, ShapeFactory.PointsBuilder pointsBuilder) throws IOException, ParseException { assert (parser.lastEvent() == JSONParser.ARRAY_START);
protected void readUntilEvent(JSONParser parser, final int event) throws IOException { int evt = parser.lastEvent(); while (true) { if (evt == event || evt == JSONParser.EOF) { return; } evt = parser.nextEvent(); } }
public ObjectBuilder(JSONParser parser) throws IOException { this.parser = parser; if (parser.lastEvent()==0) parser.nextEvent(); }
@Override protected Shape readPoint(JSONParser parser) throws IOException, ParseException { assert (parser.lastEvent() == JSONParser.ARRAY_START); Coordinate coord = readCoord(parser); return ctx.makePoint(coord.x, coord.y); }
protected Shape readPoint(JSONParser parser) throws IOException, ParseException { assert (parser.lastEvent() == JSONParser.ARRAY_START); double[] coord = readCoordXY(parser); Shape v = ctx.makePoint(coord[0], coord[1]); readUntilEvent(parser, JSONParser.OBJECT_END); return v; }
protected Shape readPoint(JSONParser parser) throws IOException, ParseException { assert (parser.lastEvent() == JSONParser.ARRAY_START); double[] coord = readCoordXY(parser); Shape v = ctx.makePoint(coord[0], coord[1]); readUntilEvent(parser, JSONParser.OBJECT_END); return v; }
@Override protected Shape readPolygon(JSONParser parser) throws IOException, ParseException { assert (parser.lastEvent() == JSONParser.ARRAY_START); GeometryFactory gf = ctx.getGeometryFactory(); return ctx.makeShape(createPolygon(gf, readCoordinates(parser))); }
protected Circle readCircle(JSONParser parser) throws IOException, ParseException { assert (parser.lastEvent() == JSONParser.ARRAY_START); double[] coord = readCoordXY(parser); Point point = ctx.makePoint(coord[0], coord[1]); return ctx.makeCircle(point, readDistance("radius", "radius_units", parser)); }
@Override protected Shape readPolygon(JSONParser parser) throws IOException, ParseException { assert (parser.lastEvent() == JSONParser.ARRAY_START); GeometryFactory gf = ctx.getGeometryFactory(); return ctx.makeShape(createPolygon(gf, readCoordinates(parser))); }
protected Circle readCircle(JSONParser parser) throws IOException, ParseException { assert (parser.lastEvent() == JSONParser.ARRAY_START); double[] coord = readCoordXY(parser); Point point = ctx.makePoint(coord[0], coord[1]); return ctx.makeCircle(point, readDistance("radius", "radius_units", parser)); }