Search in sources :

Example 6 with OGCGeometry

use of com.esri.core.geometry.ogc.OGCGeometry in project pigeon by aseldawy.

the class Union method union.

protected static OGCGeometry union(Tuple input) throws ExecException {
    DataBag values = (DataBag) input.get(0);
    if (values.size() == 0)
        return null;
    ArrayList<OGCGeometry> all_geoms = new ArrayList<OGCGeometry>();
    for (Tuple one_geom : values) {
        OGCGeometry parsedGeom = geometryParser.parseGeom(one_geom.get(0));
        all_geoms.add(parsedGeom);
    }
    // Do a union of all_geometries in the recommended way (using buffer(0))
    OGCGeometryCollection geom_collection = new OGCConcreteGeometryCollection(all_geoms, all_geoms.get(0).getEsriSpatialReference());
    return geom_collection.union(all_geoms.get(0));
}
Also used : OGCGeometry(com.esri.core.geometry.ogc.OGCGeometry) DataBag(org.apache.pig.data.DataBag) OGCGeometryCollection(com.esri.core.geometry.ogc.OGCGeometryCollection) ArrayList(java.util.ArrayList) OGCConcreteGeometryCollection(com.esri.core.geometry.ogc.OGCConcreteGeometryCollection) Tuple(org.apache.pig.data.Tuple)

Example 7 with OGCGeometry

use of com.esri.core.geometry.ogc.OGCGeometry in project pigeon by aseldawy.

the class TestAsText method testShouldWorkWithWKT.

public void testShouldWorkWithWKT() throws Exception {
    String datafile = TestHelper.createTempFile(data, "\t");
    datafile = datafile.replace("\\", "\\\\");
    PigServer pig = new PigServer(LOCAL);
    String query = "A = LOAD 'file:" + datafile + "' as (id, geom);\n" + "B = FOREACH A GENERATE " + AsText.class.getName() + "(geom);";
    pig.registerQuery(query);
    Iterator<?> it = pig.openIterator("B");
    Iterator<OGCGeometry> geoms = geometries.iterator();
    while (it.hasNext() && geoms.hasNext()) {
        Tuple tuple = (Tuple) it.next();
        OGCGeometry geom = geoms.next();
        if (tuple == null)
            break;
        String wkt = (String) tuple.get(0);
        assertEquals(geom.asText(), wkt);
    }
}
Also used : OGCGeometry(com.esri.core.geometry.ogc.OGCGeometry) PigServer(org.apache.pig.PigServer) Tuple(org.apache.pig.data.Tuple)

Example 8 with OGCGeometry

use of com.esri.core.geometry.ogc.OGCGeometry in project pigeon by aseldawy.

the class TestGeometryParser method testShouldParseWKB.

public void testShouldParseWKB() throws Exception {
    byte[] binary = polygon.asBinary().array();
    DataByteArray barray = new DataByteArray(binary);
    OGCGeometry parsed = geometry_parser.parseGeom(barray);
    assertTrue(polygon.equals(parsed));
}
Also used : OGCGeometry(com.esri.core.geometry.ogc.OGCGeometry) DataByteArray(org.apache.pig.data.DataByteArray)

Example 9 with OGCGeometry

use of com.esri.core.geometry.ogc.OGCGeometry in project pigeon by aseldawy.

the class Extent method extent.

protected static OGCGeometry extent(Tuple input) throws ExecException {
    DataBag values = (DataBag) input.get(0);
    if (values.size() == 0)
        return null;
    ArrayList<OGCGeometry> all_geoms = new ArrayList<OGCGeometry>();
    for (Tuple one_geom : values) {
        OGCGeometry parsedGeom = geometryParser.parseGeom(one_geom.get(0));
        all_geoms.add(parsedGeom);
    }
    // Do a union of all_geometries in the recommended way (using buffer(0))
    OGCGeometryCollection geom_collection = new OGCConcreteGeometryCollection(all_geoms, all_geoms.get(0).getEsriSpatialReference());
    return geom_collection.envelope();
}
Also used : OGCGeometry(com.esri.core.geometry.ogc.OGCGeometry) DataBag(org.apache.pig.data.DataBag) OGCGeometryCollection(com.esri.core.geometry.ogc.OGCGeometryCollection) ArrayList(java.util.ArrayList) OGCConcreteGeometryCollection(com.esri.core.geometry.ogc.OGCConcreteGeometryCollection) Tuple(org.apache.pig.data.Tuple)

Example 10 with OGCGeometry

use of com.esri.core.geometry.ogc.OGCGeometry in project pigeon by aseldawy.

the class IsEmpty method exec.

@Override
public Boolean exec(Tuple input) throws IOException {
    OGCGeometry geom = null;
    try {
        Object v = input.get(0);
        geom = geometryParser.parseGeom(v);
        return geom.isEmpty();
    } catch (ExecException ee) {
        throw new GeoException(geom, ee);
    }
}
Also used : OGCGeometry(com.esri.core.geometry.ogc.OGCGeometry) ExecException(org.apache.pig.backend.executionengine.ExecException)

Aggregations

OGCGeometry (com.esri.core.geometry.ogc.OGCGeometry)66 SqlType (com.facebook.presto.spi.function.SqlType)22 Description (com.facebook.presto.spi.function.Description)21 ScalarFunction (com.facebook.presto.spi.function.ScalarFunction)21 SqlNullable (com.facebook.presto.spi.function.SqlNullable)14 Point (com.esri.core.geometry.Point)12 ExecException (org.apache.pig.backend.executionengine.ExecException)12 DataByteArray (org.apache.pig.data.DataByteArray)8 Geometry (com.esri.core.geometry.Geometry)7 OGCPoint (com.esri.core.geometry.ogc.OGCPoint)7 Envelope (com.esri.core.geometry.Envelope)6 OGCConcreteGeometryCollection (com.esri.core.geometry.ogc.OGCConcreteGeometryCollection)6 OGCGeometryCollection (com.esri.core.geometry.ogc.OGCGeometryCollection)6 ArrayList (java.util.ArrayList)6 Slice (io.airlift.slice.Slice)5 GeometryCursor (com.esri.core.geometry.GeometryCursor)4 MultiPoint (com.esri.core.geometry.MultiPoint)4 OGCMultiPoint (com.esri.core.geometry.ogc.OGCMultiPoint)4 Tuple (org.apache.pig.data.Tuple)4 Page (com.facebook.presto.common.Page)3