Revision 374

View differences:

org.gvsig.gpe/plugin/trunk/org.gvsig.gpe.app/org.gvsig.gpe.app.mainplugin/src/main/java/org/gvsig/fmap/dal/store/gpe/handlers/FmapContentHandler.java
303 303
     * @see org.gvsig.gpe.IGPEContentHandler#addGeometryToFeature(java.lang.Object, java.lang.Object)
304 304
     */
305 305
    public void addGeometryToFeature(Object geometry, Object feature) {
306
        ((GPEFeature)feature).setGeometry((Geometry)geometry);
306
        
307
        /*
308
         * Two geometries (possibly of different type) in the same feature
309
         * Instead of overwriting we will preserve the first that arrives.
310
         * Alternative: aggregate, but then gvSIG would have issues to
311
         * draw? or export? 
312
         */
313
        GPEFeature gpe_feat = (GPEFeature) feature;
314
        Geometry geom = gpe_feat.getGeometry();
315
        if (geom == null ||
316
            geom.getGeometryType().getType() == Geometry.TYPES.NULL) {
317
            
318
            gpe_feat.setGeometry((Geometry)geometry);
319
        }
307 320
    }
308 321

  
309 322
    /*
org.gvsig.gpe/library/trunk/org.gvsig.gpe/org.gvsig.gpe.prov/org.gvsig.gpe.prov.gml/src/main/java/org/gvsig/gpe/prov/gml/parser/GPEGmlSFP0Parser.java
1 1
package org.gvsig.gpe.prov.gml.parser;
2 2

  
3 3
import org.gvsig.gpe.prov.gml.parser.profiles.GmlSFP0BindingProfile;
4
import org.gvsig.gpe.prov.xml.utils.LocalNameComparator;
4 5
import org.gvsig.gpe.prov.xml.utils.NamespaceAwareComparator;
5 6

  
6 7

  
......
58 59
	public GPEGmlSFP0Parser() {
59 60
		super();
60 61
		setProfile(new GmlSFP0BindingProfile());
61
		qNameComparator = new NamespaceAwareComparator();
62
		qNameComparator = new LocalNameComparator();
63
		// NamespaceAwareComparator();
62 64
	}
63 65
	
64 66
	/*
org.gvsig.gpe/library/trunk/org.gvsig.gpe/org.gvsig.gpe.prov/org.gvsig.gpe.prov.gml/src/main/java/org/gvsig/gpe/prov/gml/parser/v2/features/ElementTypeBinding.java
2 2

  
3 3
import java.io.IOException;
4 4

  
5
import org.slf4j.Logger;
6
import org.slf4j.LoggerFactory;
7

  
5 8
import org.gvsig.gpe.prov.gml.parser.GPEDefaultGmlParser;
6 9
import org.gvsig.gpe.prov.gml.utils.GmlGeometries;
7 10
import org.gvsig.gpe.prov.gml.utils.GmlUtilsParser;
......
90 93
 */
91 94
public class ElementTypeBinding {
92 95
	
96
    private static Logger logger =
97
        LoggerFactory.getLogger(ElementTypeBinding.class);
98
    private static long logCount = 0;
99
    
93 100
	/**
94 101
	 * It parses a xml element
95 102
	 * @param parser
......
144 151
					if (GmlGeometries.isGML(tag)){
145 152
						geometry = handler.getProfile().getGeometryBinding().
146 153
								parse(parser, handler);
147
						handler.getContentHandler().addGeometryToFeature(geometry, feature);
148
						if (geometry==null){
149
							System.out.println("\t\t\tGEOMETRIA VACIA");
150
							//Warning geometria vacia
154
						
155
						if (geometry != null){
156
						    handler.getContentHandler().addGeometryToFeature(geometry, feature);
157
						} else {
158
						    
159
						    if (logCount % 50 == 0) {
160
						        // Prevents too may lines
161
	                            logger.info("ERROR. Unable to parse geometry: "
162
	                                + tag.getLocalPart());
163
						    }
164
						    logCount++;
151 165
						}
152 166
						isGeometryTag=true;
153 167
					}else {
org.gvsig.gpe/library/trunk/org.gvsig.gpe/org.gvsig.gpe.prov/org.gvsig.gpe.prov.gml/src/main/java/org/gvsig/gpe/prov/gml/utils/GmlGeometries.java
203 203
	 */
204 204
	public static boolean isGML(IQName tag){
205 205
		if (tag.getNamespaceURI() != null){
206
				 if(tag.getNamespaceURI().equals(GmlTags.GML_NAMESPACE_URI))
206
				 if(tag.getNamespaceURI().startsWith(
207
				     GmlTags.GML_NAMESPACE_URI))
207 208
					return isGeometryGML(tag);
208 209
		}		
209 210
		return false;
org.gvsig.gpe/library/trunk/org.gvsig.gpe/org.gvsig.gpe.prov/org.gvsig.gpe.prov.xml/src/main/java/org/gvsig/gpe/prov/xml/utils/AbstractQNameComparator.java
43 43
    }
44 44

  
45 45
    public boolean equalsWithOutNamespace(IQName qname1, IQName qname2) {
46
        if (qname1!=null){
46
        if ( qname1 != null && qname2 != null
47
            && qname1.getLocalPart() != null && qname2.getLocalPart() != null){
47 48
            return (qname1.getLocalPart().equals(qname2.getLocalPart()));           
48 49
        }
49 50
        return false;

Also available in: Unified diff