Revision 374
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