Java tutorial
/******************************************************************************* * Copyright 2012, The Infinit.e Open Source Project. * * This program is free software: you can redistribute it and/or modify * it under the terms of the GNU Affero General Public License, version 3, * as published by the Free Software Foundation. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU Affero General Public License for more details. * * You should have received a copy of the GNU Affero General Public License * along with this program. If not, see <http://www.gnu.org/licenses/>. ******************************************************************************/ package com.ikanow.infinit.e.api.knowledge.output; import java.io.StringWriter; import java.util.List; import org.apache.log4j.Logger; import com.ikanow.infinit.e.data_model.api.ResponsePojo; import com.mongodb.BasicDBObject; import de.micromata.opengis.kml.v_2_2_0.Document; import de.micromata.opengis.kml.v_2_2_0.Folder; import de.micromata.opengis.kml.v_2_2_0.Kml; import de.micromata.opengis.kml.v_2_2_0.Point; public class KmlOutput { @SuppressWarnings("unused") private static final Logger logger = Logger.getLogger(KmlOutput.class); /** * Public function used to return ResponsePojo object as KML representation * @param rp * @return */ //TODO (INF-1298): Complete this code (see InfiniteMapWidget for examples, though this may want to be different, ie handle documents and aggregations?) @SuppressWarnings("unused") public String getDocs(ResponsePojo rp) { // Setup a list of feeds @SuppressWarnings("unchecked") List<BasicDBObject> docs = (List<BasicDBObject>) rp.getData(); // Setup the Kml object used to generate the kml document Kml kml = new Kml(); // Create the document Document document = kml.createAndSetDocument().withName("Infinit.e KML Interface") .withDescription("Infinit.e search KML representation"); // Create the folder to contain the placemarks (allows us to have multiple folders Folder placemarksFolder = document.createAndAddFolder().withName("Documents") .withDescription("Placemarks for the document locations in the query"); // loop through the result set for (BasicDBObject fdbo : docs) { // start out by checking to see if the title is not null if (fdbo.getString("title") != null) { // add logic to check for entities or event // Add in loop to create all the placemark points String description = ""; if (fdbo.getString("description") != null) description = fdbo.getString("description"); Point placemark = placemarksFolder.createAndAddPlacemark().withName(fdbo.getString("title")) .withOpen(Boolean.TRUE).withDescription(description).createAndSetPoint() .addToCoordinates(-0.126236, 51.500152); } } // Create a string writer to contain the kml string StringWriter writer = new StringWriter(); // marshal the string writer to get a string out to the kml object kml.marshal(writer); // return the kml to the client return writer.toString(); } }