/******************************************************************************* * Copyright (c) 2014 Open Door Logistics (www.opendoorlogistics.com) * All rights reserved. This program and the accompanying materials * are made available under the terms of the GNU Lesser Public License 3.0 * which accompanies this distribution, and is available at * http://www.gnu.org/licenses/lgpl.html * ******************************************************************************/ package com.opendoorlogistics.core.geometry; import com.opendoorlogistics.core.geometry.ODLGeomImpl.AtomicGeomType; import com.vividsolutions.jts.geom.Geometry; import com.vividsolutions.jts.geom.GeometryCollection; import com.vividsolutions.jts.geom.LineString; import com.vividsolutions.jts.geom.Point; import com.vividsolutions.jts.geom.Polygon; public class JTSUtils { public static int getGeomCount(Geometry g,AtomicGeomType type){ int ret=0; if(g!=null){ if(GeometryCollection.class.isInstance(g)){ int n = g.getNumGeometries(); for(int i =0 ; i<n ; i++){ ret+=getGeomCount(g.getGeometryN(i),type); } }else if(type == AtomicGeomType.POINT && Point.class.isInstance(g)){ ret++; } else if (type == AtomicGeomType.LINESTRING && LineString.class.isInstance(g)){ ret++; }else if (type == AtomicGeomType.POLYGON && Polygon.class.isInstance(g)){ ret++; } } return ret; } }