package com.esri.hadoop.hive; import org.apache.hadoop.hive.ql.exec.Description; import org.apache.hadoop.hive.serde2.io.DoubleWritable; import org.apache.hadoop.io.BytesWritable; import com.esri.core.geometry.Point; import com.esri.core.geometry.ogc.OGCGeometry; @Description( name = "ST_PointZ", value = "_FUNC_(x, y, z) - constructor for 3D point", extended = "Example:\n" + "SELECT _FUNC_(longitude, latitude, elevation) from src LIMIT 1;") public class ST_PointZ extends ST_Geometry { public BytesWritable evaluate(DoubleWritable x, DoubleWritable y, DoubleWritable z){ return evaluate(x, y, z, null); } // ZM public BytesWritable evaluate(DoubleWritable x, DoubleWritable y, DoubleWritable z, DoubleWritable m) { if (x == null || y == null || z == null) { return null; } Point stPt = new Point(x.get(), y.get(), z.get()); if (m != null) stPt.setM(m.get()); return GeometryUtils.geometryToEsriShapeBytesWritable(OGCGeometry.createFromEsriGeometry(stPt, null)); } }