Changeset 1296:ee3e1f2fd710


Ignore:
Timestamp:
11/18/13 15:38:18 (4 years ago)
Author:
George Garbis <ggarbis@…>
Branch:
temporals
Message:

If a variable is of type strabonExt:color it defines the fill color of the corresponding polygon

Files:
1 added
3 edited

Legend:

Unmodified
Added
Removed
  • .hgignore

    r1013 r1296  
    1515endpoint-client/dependency-reduced-pom\.xml 
    1616WEB-INF/faces-config.xml 
     17\/bin\/ 
  • generaldb/src/main/java/org/openrdf/sail/generaldb/model/XMLGSDatatypeUtil.java

    r1157 r1296  
    2020 
    2121import eu.earthobservatory.constants.GeoConstants; 
     22import eu.earthobservatory.constants.MiscConstants; 
    2223import eu.earthobservatory.constants.TemporalConstants; 
    2324 
     
    121122         
    122123        /** 
    123          * Checks whether the supplied datatype is actually a GML literal. 
     124         * Checks whether the supplied datatype is actually a color literal. 
     125         *  
     126         * @param datatype 
     127         * @return 
     128         * @author George Garbis <ggarbis@di.uoa.gr> 
     129         */ 
     130        public static boolean isColorDatatype(URI datatype) 
     131        { 
     132                if(datatype == null) { 
     133                        return false; 
     134                } 
     135         
     136                return MiscConstants.color.equals(datatype.stringValue()); 
     137        } 
     138         
     139        /** 
     140         * Checks whether the supplied datatype is actually a Period literal. 
    124141         *  
    125142         * @param datatype 
  • resultio-spatial/sparqlkml/src/main/java/org/openrdf/query/resultio/sparqlkml/stSPARQLResultsKMLWriter.java

    r1259 r1296  
    1010import java.io.IOException; 
    1111import java.io.OutputStream; 
     12import java.util.ArrayList; 
    1213import java.util.Hashtable; 
    1314import java.util.List; 
     
    5556 * @author Charalampos Nikolaou <charnik@di.uoa.gr> 
    5657 * @author Panayiotis Smeros <psmeros@di.uoa.gr> 
     58 * @author George Garbis <ggarbis@di.uoa.gr> 
    5759 *  
    5860 */ 
     
    6466        private static final String NAMESPACE                   = "http://www.opengis.net/kml/2.2"; 
    6567        private static final String RESULT_SET_TAG              = "Folder"; 
     68        private static final String DOCUMENT_TAG                = "Document"; 
    6669        private static final String PLACEMARK_TAG               = "Placemark"; 
    6770        private static final String TIMESTAMP_TAG               = "TimeStamp"; 
     
    7679        private static final String VALUE_TAG                   = "value"; 
    7780        private static final String NAME_ATTR                   = NAME_TAG; 
     81         
     82        private static final String STYLE_TAG                   = "Style"; 
     83        private static final String POLY_STYLE_TAG      = "PolyStyle"; 
    7884 
    7985        private static final String TABLE_ROW_BEGIN             = "<TR>"; 
     
    8591        private static final String TABLE_DESC_END              = "</TABLE>]]>" + NEWLINE; 
    8692 
     93         
    8794        /** 
    8895         * The underlying XML formatter. 
     
    133140        private int depth; 
    134141 
     142        /** 
     143         * List of names of predefined KML styles 
     144         */ 
     145        private List<String> styleNames = new ArrayList<String>(4); 
     146         
    135147        /** 
    136148         * Creates an stSPARQLResultsKMLWriter that encodes the SPARQL results in 
     
    161173                        xmlWriter.setAttribute("xmlns", NAMESPACE); 
    162174                        xmlWriter.startTag(ROOT_TAG); 
     175                        // KML styles can be defined only in a Document element 
     176                        xmlWriter.startTag(DOCUMENT_TAG); 
     177                         
     178                        // Add predefined KML styles 
     179                        addPolyStyle("green", true, "7700FF00", false); 
     180                        addPolyStyle("yellow", true, "7700FFFF", false); 
     181                        addPolyStyle("orange", true, "7700A5FF", false); 
     182                        addPolyStyle("red", true, "770000FF", false); 
     183 
    163184                        xmlWriter.startTag(RESULT_SET_TAG); 
    164  
    165185                } catch (IOException e) { 
    166186                        throw new TupleQueryResultHandlerException(e); 
    167187                } 
     188        } 
     189         
     190        /** 
     191         * Adds a new PolyStyle element to the KML output.  
     192         * Also adds a new style to the List of style names 'styleNames' 
     193         *  
     194         * @param styleName 
     195         * @param fill 
     196         * @param color 
     197         * @param outline 
     198         * @throws TupleQueryResultHandlerException 
     199         */ 
     200        public void addPolyStyle(String styleName, boolean fill, String color, boolean outline) throws TupleQueryResultHandlerException { 
     201                 
     202                styleNames.add(styleName); 
     203                 
     204                try { 
     205                        xmlWriter.setAttribute("id", styleName); 
     206                        xmlWriter.startTag(STYLE_TAG); 
     207                        xmlWriter.startTag(POLY_STYLE_TAG); 
     208                        xmlWriter.textElement("fill", (fill?1:0)); 
     209                        xmlWriter.textElement("color", color); 
     210                        xmlWriter.textElement("outline", (outline?1:0)); 
     211                        xmlWriter.endTag(POLY_STYLE_TAG); 
     212                        xmlWriter.endTag(STYLE_TAG); 
     213                } catch (IOException e) { 
     214                        throw new TupleQueryResultHandlerException(e); 
     215                } 
     216                 
    168217        } 
    169218 
     
    173222                         
    174223                        xmlWriter.endTag(RESULT_SET_TAG); 
     224                        xmlWriter.endTag(DOCUMENT_TAG); 
    175225                        xmlWriter.endTag(ROOT_TAG); 
    176226                        xmlWriter.endDocument(); 
     
    205255                                Literal literal = (Literal) binding.getValue(); 
    206256                 
    207                                 if(XMLGSDatatypeUtil.isCalendarDatatype(literal.getDatatype())){ 
     257                                // if literal is strabonExt:color 
     258                                if (XMLGSDatatypeUtil.isColorDatatype(literal.getDatatype())) { 
     259                                        // if literal contains the name of a predefined style 
     260                                        if ( styleNames.contains(literal.stringValue()) ) { 
     261                                                xmlWriter.textElement("styleUrl", "#"+literal.stringValue()); 
     262                                        // literal should contain the hex code of a color. Accordint to 
     263                                        // KML format (ABGR) 
     264                                        } else { 
     265                                                xmlWriter.startTag("Style"); 
     266                                                xmlWriter.startTag("PolyStyle"); 
     267                                                xmlWriter.textElement("fill", "1"); 
     268                                                xmlWriter.textElement("color", literal.stringValue()); 
     269                                                xmlWriter.textElement("outline", "0"); 
     270                                                xmlWriter.endTag("PolyStyle"); 
     271                                                xmlWriter.endTag("Style"); 
     272                                        } 
     273                                } 
     274                                else if(XMLGSDatatypeUtil.isCalendarDatatype(literal.getDatatype())){ 
    208275                                        hasTimestamp = true; 
    209276                                        xmlWriter.startTag(TIMESTAMP_TAG); 
     
    312379                } 
    313380        } 
    314  
     381         
    315382        private String getKML(Value value) { 
    316383                String kml = ""; 
Note: See TracChangeset for help on using the changeset viewer.