Subversion Repositories hibernate-spatial

Rev

Blame | Last modification | View Log | RSS feed

package org.hibernatespatial.wkb;

import com.vividsolutions.jts.geom.Coordinate;
import com.vividsolutions.jts.geom.Point;
import org.hibernatespatial.jts.geom.CoordinateDimension;

/**
 * @author Karel Maesen, Geovise BVBA
 *         creation-date: Nov 11, 2010
 */
public class WKBPointEncoder extends WKBEncoder<Point> {

    protected long getGeometryType() {
        return WKBGeometryType.POINT.getTypeCode();
    }

    @Override
    protected void writeNumComponents(Point geometry, Bytes output) {
    }

    @Override
    protected void writeComponents(Point geometry, CoordinateDimension dim, Bytes output) {
        Coordinate coordinate = geometry.getCoordinate();
        writeCoordinate(coordinate, dim, output);
    }


    @Override
    protected int calculateSize(Point geom, CoordinateDimension dimension) {
        int size = 21; //minimal size
        if (geom.getSRID() > 0) size += 4;
        if (dimension.hasZ()) size += 8;
        if (dimension.hasM()) size += 8;
        return size;
    }

}