package cz.agents.dbtokmlexporter.darptestbed.kmlitembuilder; import com.vividsolutions.jts.geom.Coordinate; import com.vividsolutions.jts.geom.GeometryFactory; import cz.agents.dbtokmlexporter.HeatMapKmlItem; import cz.agents.dbtokmlexporter.kmlitem.builder.SimpleKmlItemBuilder; import cz.agents.resultsvisio.kml.KmlItem; import org.apache.log4j.Logger; import java.sql.SQLException; import java.util.List; public class NodeDensityHeatMapKmlItemBuilder extends SimpleKmlItemBuilder { private static final Logger LOGGER = Logger.getLogger(NodeDensityHeatMapKmlItemBuilder.class); private final List<Coordinate> coordinates; public NodeDensityHeatMapKmlItemBuilder(List<Coordinate> coordinates, String schemaName, String fileName) { super(schemaName, fileName, true); this.coordinates = coordinates; } public static NodeDensityHeatMapKmlItemBuilder createNodeDensityMapKmlBuilder(List<Coordinate> coordinates, String schemaName) { return new NodeDensityHeatMapKmlItemBuilder(coordinates, schemaName, "node_density.kmz"); } @Override public KmlItem buildKmlItem() throws SQLException { LOGGER.info("Preparing visualizations: " + this.getClass().getSimpleName() + " (This may take a while. Please wait.)"); HeatMapKmlItem kmlItem = new HeatMapKmlItem(schemaName); GeometryFactory geometryFactory = new GeometryFactory(); for (Coordinate coordinate : coordinates) { kmlItem.addPoint(geometryFactory.createPoint(coordinate)); } return kmlItem; } }