Revision 3591

View differences:

trunk/libraries/libFMap/src/com/iver/cit/gvsig/fmap/core/v02/FSymbol.java
58 58
import java.net.MalformedURLException;
59 59
import java.net.URI;
60 60
import java.net.URISyntaxException;
61
import java.util.ArrayList;
62
import java.util.List;
63 61
import java.util.StringTokenizer;
64 62

  
65 63
import javax.swing.ImageIcon;
66 64

  
65
import com.iver.cit.gvsig.fmap.core.FPoint2D;
66
import com.iver.cit.gvsig.fmap.core.FPolygon2D;
67
import com.iver.cit.gvsig.fmap.core.FPolyline2D;
67 68
import com.iver.cit.gvsig.fmap.core.FShape;
69
import com.iver.cit.gvsig.fmap.core.GeneralPathX;
70
import com.iver.cit.gvsig.fmap.core.ISLDCompatible;
71
import com.iver.cit.gvsig.fmap.core.SLDTags;
68 72
import com.iver.utiles.StringUtilities;
69 73
import com.iver.utiles.XMLEntity;
70 74

  
......
75 79
 *
76 80
 * @author Vicente Caballero Navarro
77 81
 */
78
public class FSymbol {
82
public class FSymbol implements ISLDCompatible {
79 83
	private static BufferedImage img = new BufferedImage(1, 1,
80 84
			BufferedImage.TYPE_INT_ARGB);
81 85
	private static Rectangle rect = new Rectangle(0, 0, 1, 1);
......
998 1002
            
999 1003
    }
1000 1004

  
1005
    //methods to be ISLDCompatible    
1006
    
1007
    /**
1008
     * converts FSymbol to an SLD
1009
     */
1010
    public String toSLD ()
1011
    {
1012
    	StringBuffer sld = new StringBuffer();
1013
    	try
1014
    	{
1015
    		switch (this.getSymbolType()) 
1016
    		{
1017
    		
1018
			case FConstant.SYMBOL_TYPE_POINT:
1019
				//  Para no tener que clonarlo si viene en unidades de mapa
1020
				boolean bAux2 = this.isSizeInPixels();
1021
				int alturaMetros = this.getSize(); // Nota: Cambiar m_Size a float
1022

  
1023
				if (!bAux2) {
1024
					this.setSizeInPixels(true);
1025
					this.setSize(8); // tama?o fijo
1026
				}
1027
				if (this.getFont() != null) {
1028
					// Para no tener que clonarlo si viene en unidades de mapa
1029
					boolean bAux = this.isFontSizeInPixels();
1030
					this.setFontSizeInPixels(true);
1031
				}
1032

  
1033
				break;
1034

  
1035
			case FConstant.SYMBOL_TYPE_LINE:
1036
				sld.append(SLDTags.OT_LINESYMBOLIZER);
1037
//				<Geometry>
1038
//				<ogc:PropertyName>centerline</ogc:PropertyName>
1039
//				</Geometry>
1040
//				<Stroke>
1041
//				<CssParameter name="stroke">#0000ff</CssParameter>
1042
//				<CssParameter name="stroke-width">2</CssParameter>
1043
//				</Stroke>
1044
				sld.append(SLDTags.CT_LINESYMBOLIZER);
1045
				break;
1046

  
1047
			case FConstant.SYMBOL_TYPE_FILL:
1048
				//FGraphicUtilities.DrawShape(g2, mT, shp, symbol);
1049
				break;
1050

  
1051
			case FShape.MULTI:
1052
				//FGraphicUtilities.DrawShape(g2, mT, shp, symbol);
1053
				//FGraphicUtilities.DrawShape(g2, mT, shp, symbol);
1054
				// Punto:
1055
				//  Para no tener que clonarlo si viene en unidades de mapa
1056
				//bAux2 = symbol.isSizeInPixels();
1057
				//alturaMetros = symbol.getSize(); // Nota: Cambiar m_Size a float
1058
//				if (!bAux2) {
1059
//					this.setSizeInPixels(true);
1060
//					this.setSize(4); // tama?o fijo
1061
//				}
1062
//				FGraphicUtilities.DrawShape(g2, mT, shp, this);
1063

  
1064
//				if (!bAux2) {
1065
//					this.setSize(alturaMetros);
1066
//					this.setSizeInPixels(bAux2);
1067
//				}
1068

  
1069
				if (this.getFont() != null) {
1070
					// Para no tener que clonarlo si viene en unidades de mapa
1071
					boolean bAux = this.isFontSizeInPixels();
1072
					this.setFontSizeInPixels(true);
1073
					//FGraphicUtilities.DrawLabel(g2, mT, shp, symbol,new FLabel("Abcd"));
1074
					this.setFontSizeInPixels(bAux);
1075
				}
1076

  
1077
				break;
1078
		}    		
1079
    		
1080
    		
1081
    		
1082
    		
1083
    		return sld.toString();
1084
    	}
1085
    	catch(Exception e)
1086
    	{
1087
    		e.printStackTrace();
1088
    		return null;
1089
    	}    	
1090
    }
1091
    
1092
    /**
1093
     * creates an FSymbol from an SLD
1094
     * 
1095
     */   
1096
    public String fromSLD (String sld)
1097
    {
1098
    	//TODO: This function can be implemented later...
1099
    	StringBuffer sb = new StringBuffer();
1100
    	try
1101
    	{
1102
    		
1103
    		return sb.toString(); 
1104
    	}
1105
    	catch(Exception e)
1106
    	{
1107
    		e.printStackTrace();
1108
    		return null;
1109
    	}    	    
1110
    }
1111
    
1001 1112
}
trunk/libraries/libFMap/src/com/iver/cit/gvsig/fmap/core/ISLDCompatible.java
1
package com.iver.cit.gvsig.fmap.core;
2

  
3
/**
4
 * Interface that represents the objects able to be converted or imported from SLD
5
 * SLD: Sytled Layer Descriptor v1.0.0(OpenGIS Implementation Specification)
6
 * @author laura
7
 */
8
public interface ISLDCompatible {
9

  
10
	public String toSLD();
11
	public String fromSLD(String sld);
12
	
13
}
0 14

  
trunk/libraries/libFMap/src/com/iver/cit/gvsig/fmap/core/SLDTags.java
1
package com.iver.cit.gvsig.fmap.core;
2

  
3
/**
4
 * Static fields with all the tags included in an SLD
5
 * @author laura
6
 *
7
 */
8
public class SLDTags 
9
{
10
	public static final String OT_LINESYMBOLIZER = "<LineSymbolizer>";
11
	public static final String CT_LINESYMBOLIZER = "</LineSymbolizer>";
12
	
13
	public static final String OT_POINTSYMBOLIZER = "<PointSymbolizer>";
14
	public static final String CT_POINTSYMBOLIZER = "</PointSymbolizer>";
15

  
16
	public static final String OT_TEXTSYMBOLIZER = "<TextSymbolizer>";
17
	public static final String CT_TEXTSYMBOLIZER = "</TextSymbolizer>";
18

  
19
	public static final String OT_POLYGONSYMBOLIZER = "<PolygonSymbolizer>";
20
	public static final String CT_POLYGONSYMBOLIZER = "</PolygonSymbolizer>";
21

  
22
	public static final String OT_RASTERSYMBOLIZER = "<RasterSymbolizer>";
23
	public static final String CT_RASTERSYMBOLIZER = "</RasterSymbolizer>";
24
	
25
	public static final String OT_GEOMETRY = "<Geometry>";
26
	public static final String CT_GEOMETRY = "</Geometry>";
27

  
28

  
29
}
0 30

  

Also available in: Unified diff