Revision 103 org.gvsig.gazetteer/trunk/org.gvsig.gazetteer/org.gvsig.gazetteer.lib/src/main/java/org/gvsig/gazetteer/idec/parsers/IdecFeatureParser.java

View differences:

IdecFeatureParser.java
44 44

  
45 45
import org.gvsig.catalog.metadataxml.XMLNode;
46 46
import org.gvsig.catalog.metadataxml.XMLTree;
47
import org.gvsig.fmap.geom.GeometryLocator;
48
import org.gvsig.fmap.geom.GeometryManager;
49
import org.gvsig.fmap.geom.Geometry.SUBTYPES;
50
import org.gvsig.fmap.geom.exception.CreateGeometryException;
51
import org.gvsig.fmap.geom.primitive.Point;
52
import org.gvsig.gazetteer.adl.parsers.AdlFeatureParser;
47 53
import org.gvsig.gazetteer.querys.Feature;
54
import org.slf4j.Logger;
55
import org.slf4j.LoggerFactory;
48 56

  
49 57

  
50 58
/**
51
 * 
52
 * 
53
 * 
59
 *
60
 *
61
 *
54 62
 * @author Jorge Piera Llodra (piera_jor@gva.es)
55 63
 */
56 64
public class IdecFeatureParser {
57

  
65
    private static final Logger logger =
66
        LoggerFactory.getLogger(IdecFeatureParser.class);
58 67
/**
59
 * @return 
60
 * @param node 
68
 * @return
69
 * @param node
61 70
 */
62
    public static Feature[] parse(XMLNode node) {        
63
    
71
    public static Feature[] parse(XMLNode node) {
72
        GeometryManager geomManager = GeometryLocator.getGeometryManager();
73

  
64 74
        XMLNode[] nodeFeatures = XMLTree.searchMultipleNode(node,"SOAP-ENV:Body->ns1:getCoordenadesUTMResponse->return->item");
65 75
        Feature[] features = new Feature[nodeFeatures.length];
66
        
76

  
67 77
        //New Version
68 78
        if (features.length == 0){
69 79
        	nodeFeatures = XMLTree.searchMultipleNode(node,"soapenv:Body->multiRef");
70 80
        	features = new Feature[nodeFeatures.length];
71 81
        }
72
        
82

  
73 83
        for (int i=0 ; i<nodeFeatures.length ; i++){
74 84
            String id = XMLTree.searchNodeValue(nodeFeatures[i],"NOM");
75 85
            String name = id;
76 86
            String description = id;
77
            Point2D.Double point = new Point2D.Double(Double.parseDouble(XMLTree.searchNodeValue(nodeFeatures[i],"X")),
78
                Double.parseDouble(XMLTree.searchNodeValue(nodeFeatures[i],"Y")));
87
            Point point = null;
88
            double x = Double.parseDouble(XMLTree.searchNodeValue(nodeFeatures[i],"X"));
89
            double y = Double.parseDouble(XMLTree.searchNodeValue(nodeFeatures[i],"Y"));
90
            try {
91
                point = geomManager.createPoint(x, y, SUBTYPES.GEOM2D);
92
            } catch (CreateGeometryException | NumberFormatException e) {
93
                StringBuilder builder = new StringBuilder();
94
                builder.append("Can't create point: (");
95
                builder.append(x);
96
                builder.append(",");
97
                builder.append(y);
98
                builder.append(")");
99
                logger.warn(builder.toString());
100
            }
79 101
            features[i] = new Feature(id,name,description,point);
80 102
        }
81
        
82
    
103

  
104

  
83 105
    return features;
84
    } 
106
    }
85 107
 }

Also available in: Unified diff