@Override public void importFile(Connection connection, String tableReference, File fileName, ProgressVisitor progress) throws SQLException, IOException { GeoJsonReaderDriver geoJsonReaderDriver = new GeoJsonReaderDriver(connection, fileName); geoJsonReaderDriver.read(progress, tableReference); } }
/** * Parses Json Array. * Syntax: * Json Array: * {"member1": value1}, value2, value3, {"member4": value4}] * @param jp the json parser * @return the array but written like a String */ private void parseArrayMetadata(JsonParser jp) throws IOException { JsonToken value = jp.nextToken(); while(value != JsonToken.END_ARRAY) { if (value == JsonToken.START_OBJECT) { parseObjectMetadata(jp); } else if (value == JsonToken.START_ARRAY) { parseArrayMetadata(jp); } value = jp.nextToken(); } }
/** * Parses a sequence of coordinates array expressed as * * [ [100.0, 0.0], [101.0, 1.0] ] * * @param jp * @throws IOException * @throws SQLException * @return Coordinate[] */ private Coordinate[] parseCoordinates(JsonParser jp) throws IOException { jp.nextToken(); // START_ARRAY [ to parse the each positions ArrayList<Coordinate> coords = new ArrayList<Coordinate>(); while (jp.getCurrentToken() != JsonToken.END_ARRAY) { coords.add(parseCoordinate(jp)); } return coords.toArray(new Coordinate[coords.size()]); }
init(); if (parseMetadata()) { GF = new GeometryFactory(new PrecisionModel(), parsedSRID); parseData(); setGeometryTypeConstraints(); } else { throw new SQLException("Cannot create the table " + tableLocation + " to import the GeoJSON data");
while(value != JsonToken.END_ARRAY) { if (value == JsonToken.START_OBJECT) { Object object = parseObject(jp); ret.add(object); } else if (value == JsonToken.START_ARRAY) { ArrayList<Object> arrayList = parseArray(jp); ret.add(arrayList.toArray()); } else if (value == JsonToken.VALUE_NUMBER_INT) {
/** * Parses a MultiPoint and check if it's wellformated * * Syntax: * * { "type": "MultiPoint", "coordinates": [ [100.0, 0.0], [101.0, 1.0] ] } * * @param jp * @throws IOException */ private void parseMultiPointMetadata(JsonParser jp) throws IOException, SQLException { jp.nextToken(); // FIELD_NAME coordinates String coordinatesField = jp.getText(); if (coordinatesField.equalsIgnoreCase(GeoJsonField.COORDINATES)) { jp.nextToken(); // START_ARRAY [ coordinates parseCoordinatesMetadata(jp); jp.nextToken();//END_OBJECT } geometry } else { throw new SQLException("Malformed GeoJSON file. Expected 'coordinates', found '" + coordinatesField + "'"); } }
/** * * Parses the array of positions. * * Syntax: * * { "type": "LineString", "coordinates": [ [100.0, 0.0], [101.0, 1.0] ] } * * @param jp */ private LineString parseLinestring(JsonParser jp) throws IOException, SQLException { jp.nextToken(); // FIELD_NAME coordinates String coordinatesField = jp.getText(); if (coordinatesField.equalsIgnoreCase(GeoJsonField.COORDINATES)) { jp.nextToken(); // START_ARRAY [ coordinates LineString line = GF.createLineString(parseCoordinates(jp)); jp.nextToken();//END_OBJECT } geometry return line; } else { throw new SQLException("Malformed GeoJSON file. Expected 'coordinates', found '" + coordinatesField + "'"); } }
firstParam = skipCRS(jp); throw new SQLException("Canceled by user"); Object[] values = parseFeature(jp);
/** * Parses a sequence of coordinates array expressed as * * [ [100.0, 0.0], [101.0, 1.0] ] * * and check if it's wellformated * * @param jp * @throws IOException * @throws SQLException * @return Coordinate[] */ private void parseCoordinatesMetadata(JsonParser jp) throws IOException { jp.nextToken(); // START_ARRAY [ to parse the each positions while (jp.getCurrentToken() != JsonToken.END_ARRAY) { parseCoordinateMetadata(jp); } }
init(); if (parseMetadata()) { GF = new GeometryFactory(new PrecisionModel(), parsedSRID); parseData(); setGeometryTypeConstraints(); } else { throw new SQLException("Cannot create the table " + tableLocation + " to import the GeoJSON data");
while(value != JsonToken.END_ARRAY) { if (value == JsonToken.START_OBJECT) { Object object = parseObject(jp); ret.add(object); } else if (value == JsonToken.START_ARRAY) { ArrayList<Object> arrayList = parseArray(jp); ret.add(arrayList.toArray()); } else if (value == JsonToken.VALUE_NUMBER_INT) {
/** * * Parses a LineString and check if it's wellformated * * Syntax: * * { "type": "LineString", "coordinates": [ [100.0, 0.0], [101.0, 1.0] ] } * * @param jp */ private void parseLinestringMetadata(JsonParser jp) throws IOException, SQLException { jp.nextToken(); // FIELD_NAME coordinates String coordinatesField = jp.getText(); if (coordinatesField.equalsIgnoreCase(GeoJsonField.COORDINATES)) { jp.nextToken(); // START_ARRAY [ coordinates parseCoordinatesMetadata(jp); jp.nextToken();//END_OBJECT } geometry } else { throw new SQLException("Malformed GeoJSON file. Expected 'coordinates', found '" + coordinatesField + "'"); } }
/** * * Parses the array of positions. * * Syntax: * * { "type": "LineString", "coordinates": [ [100.0, 0.0], [101.0, 1.0] ] } * * @param jp */ private LineString parseLinestring(JsonParser jp) throws IOException, SQLException { jp.nextToken(); // FIELD_NAME coordinates String coordinatesField = jp.getText(); if (coordinatesField.equalsIgnoreCase(GeoJsonField.COORDINATES)) { jp.nextToken(); // START_ARRAY [ coordinates LineString line = GF.createLineString(parseCoordinates(jp)); jp.nextToken();//END_OBJECT } geometry return line; } else { throw new SQLException("Malformed GeoJSON file. Expected 'coordinates', found '" + coordinatesField + "'"); } }
firstParam = skipCRS(jp); throw new SQLException("Canceled by user"); Object[] values = parseFeature(jp);
/** * Parses a sequence of coordinates array expressed as * * [ [100.0, 0.0], [101.0, 1.0] ] * * and check if it's wellformated * * @param jp * @throws IOException * @throws SQLException * @return Coordinate[] */ private void parseCoordinatesMetadata(JsonParser jp) throws IOException { jp.nextToken(); // START_ARRAY [ to parse the each positions while (jp.getCurrentToken() != JsonToken.END_ARRAY) { parseCoordinateMetadata(jp); } }
/** * Parses Json Array. * Syntax: * Json Array: * {"member1": value1}, value2, value3, {"member4": value4}] * @param jp the json parser * @return the array but written like a String */ private void parseArrayMetadata(JsonParser jp) throws IOException { JsonToken value = jp.nextToken(); while(value != JsonToken.END_ARRAY) { if (value == JsonToken.START_OBJECT) { parseObjectMetadata(jp); } else if (value == JsonToken.START_ARRAY) { parseArrayMetadata(jp); } value = jp.nextToken(); } }
init(); if (parseMetadata()) { GF = new GeometryFactory(new PrecisionModel(), parsedSRID); parseData(); setGeometryTypeConstraints(); } else { throw new SQLException("Cannot create the table " + tableLocation + " to import the GeoJSON data");
while(value != JsonToken.END_ARRAY) { if (value == JsonToken.START_OBJECT) { Object object = parseObject(jp); ret.add(object); } else if (value == JsonToken.START_ARRAY) { ArrayList<Object> arrayList = parseArray(jp); ret.add(arrayList.toArray()); } else if (value == JsonToken.VALUE_NUMBER_INT) {
/** * Parses a MultiPoint and check if it's wellformated * * Syntax: * * { "type": "MultiPoint", "coordinates": [ [100.0, 0.0], [101.0, 1.0] ] } * * @param jp * @throws IOException */ private void parseMultiPointMetadata(JsonParser jp) throws IOException, SQLException { jp.nextToken(); // FIELD_NAME coordinates String coordinatesField = jp.getText(); if (coordinatesField.equalsIgnoreCase(GeoJsonField.COORDINATES)) { jp.nextToken(); // START_ARRAY [ coordinates parseCoordinatesMetadata(jp); jp.nextToken();//END_OBJECT } geometry } else { throw new SQLException("Malformed GeoJSON file. Expected 'coordinates', found '" + coordinatesField + "'"); } }
/** * Parses an array of positions * * Syntax: * * { "type": "MultiPoint", "coordinates": [ [100.0, 0.0], [101.0, 1.0] ] } * * @param jp * @throws IOException * @return MultiPoint */ private MultiPoint parseMultiPoint(JsonParser jp) throws IOException, SQLException { jp.nextToken(); // FIELD_NAME coordinates String coordinatesField = jp.getText(); if (coordinatesField.equalsIgnoreCase(GeoJsonField.COORDINATES)) { jp.nextToken(); // START_ARRAY [ coordinates MultiPoint mPoint = GF.createMultiPoint(parseCoordinates(jp)); jp.nextToken();//END_OBJECT } geometry return mPoint; } else { throw new SQLException("Malformed GeoJSON file. Expected 'coordinates', found '" + coordinatesField + "'"); } }