Package com.ikanow.infinit.e.api.knowledge.output

Source Code of com.ikanow.infinit.e.api.knowledge.output.KmlOutput

/*******************************************************************************
* 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();

  }
}
TOP

Related Classes of com.ikanow.infinit.e.api.knowledge.output.KmlOutput

TOP
Copyright © 2018 www.massapi.com. All rights reserved.
All source code are property of their respective owners. Java is a trademark of Sun Microsystems, Inc and owned by ORACLE Inc. Contact coftware#gmail.com.