package com.esri.hadoop.hive.serde;
import java.io.IOException;
import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;
import org.codehaus.jackson.JsonNode;
import org.codehaus.jackson.JsonParser;
import org.codehaus.jackson.JsonProcessingException;
import org.codehaus.jackson.map.ObjectMapper;
import org.json.JSONException;
import com.esri.core.geometry.ogc.OGCGeometry;
public class GeoJsonSerDe extends BaseJsonSerDe {
static final Log LOG = LogFactory.getLog(GeoJsonSerDe.class.getName());
ObjectMapper mapper = null;
public GeoJsonSerDe() {
super();
attrLabel = "properties";
mapper = new ObjectMapper();
}
@Override
protected String outGeom(OGCGeometry geom) {
return geom.asGeoJson();
}
@Override
protected OGCGeometry parseGeom(JsonParser parser) {
try {
JsonNode node = mapper.readTree(parser);
return OGCGeometry.fromGeoJson(node.toString());
} catch (JsonProcessingException e1) {
e1.printStackTrace(); // TODO Auto-generated catch block
} catch (IOException e1) {
e1.printStackTrace(); // TODO Auto-generated catch block
} catch (JSONException e) {
e.printStackTrace(); // TODO Auto-generated catch block
}
return null; // ?
}
}