Revision 34918
branches/v2_0_0_prep/extensions/extGPE-gvSIG/src/org/gvsig/fmap/dal/store/gpe/handlers/FmapContentHandler.java | ||
---|---|---|
31 | 31 |
import org.gvsig.fmap.geom.GeometryManager; |
32 | 32 |
import org.gvsig.fmap.geom.aggregate.MultiCurve; |
33 | 33 |
import org.gvsig.fmap.geom.aggregate.MultiPoint; |
34 |
import org.gvsig.fmap.geom.aggregate.MultiPrimitive; |
|
34 | 35 |
import org.gvsig.fmap.geom.aggregate.MultiSurface; |
35 | 36 |
import org.gvsig.fmap.geom.exception.CreateEnvelopeException; |
36 | 37 |
import org.gvsig.fmap.geom.exception.CreateGeometryException; |
... | ... | |
38 | 39 |
import org.gvsig.fmap.geom.primitive.Envelope; |
39 | 40 |
import org.gvsig.fmap.geom.primitive.GeneralPathX; |
40 | 41 |
import org.gvsig.fmap.geom.primitive.Point; |
42 |
import org.gvsig.fmap.geom.primitive.Primitive; |
|
41 | 43 |
import org.gvsig.fmap.geom.primitive.Surface; |
42 | 44 |
import org.gvsig.gpe.lib.api.parser.IAttributesIterator; |
43 | 45 |
import org.gvsig.gpe.lib.api.parser.ICoordinateIterator; |
... | ... | |
161 | 163 |
* @see org.gvsig.gpe.IGPEContentHandler#endLayer(java.lang.Object) |
162 | 164 |
*/ |
163 | 165 |
public void endLayer(Object layer) { |
166 |
if (featureType == null){ |
|
167 |
createFeatureType(null); |
|
168 |
} |
|
164 | 169 |
storeProvider.setEnvelope(envelope); |
165 | 170 |
} |
166 | 171 |
|
... | ... | |
375 | 380 |
} |
376 | 381 |
|
377 | 382 |
private void createFeatureType(GPEFeature gpefeature){ |
378 |
Map elements = gpefeature.getelements(); |
|
379 |
Iterator keys = elements.keySet().iterator(); |
|
380 | 383 |
featureType = store.createFeatureType(); |
384 |
|
|
381 | 385 |
//Adding the Geometry field |
382 | 386 |
EditableFeatureAttributeDescriptor attributeDescriptor = featureType.add("the_geom", DataTypes.GEOMETRY).setGeometryType(geometryType); |
383 | 387 |
attributeDescriptor.setGeometrySubType(SUBTYPES.GEOM2D); |
384 | 388 |
attributeDescriptor.setSRS(srs); |
385 | 389 |
featureType.setDefaultGeometryAttributeName("the_geom"); |
390 |
|
|
386 | 391 |
//Adding the ID |
387 | 392 |
featureType.add("gid", DataTypes.LONG); |
388 | 393 |
featureType.setHasOID(true); |
389 |
while (keys.hasNext()){ |
|
390 |
String elementName = (String)keys.next(); |
|
391 |
if (!elementName.equals("the_geom")){ |
|
392 |
featureType.add(elementName, DataTypes.STRING); |
|
394 |
|
|
395 |
if (gpefeature != null){ |
|
396 |
Map elements = gpefeature.getelements(); |
|
397 |
Iterator keys = elements.keySet().iterator(); |
|
398 |
while (keys.hasNext()){ |
|
399 |
String elementName = (String)keys.next(); |
|
400 |
if (!elementName.equals("the_geom")){ |
|
401 |
featureType.add(elementName, DataTypes.STRING); |
|
402 |
} |
|
393 | 403 |
} |
394 | 404 |
} |
405 |
|
|
395 | 406 |
FeatureType defaultType = featureType.getNotEditableCopy(); |
396 | 407 |
List types = new ArrayList(1); |
397 | 408 |
types.add(defaultType); |
... | ... | |
635 | 646 |
* @see org.gvsig.gpe.GPEContentHandler#addGeometryToMultiGeometry(java.lang.Object, java.lang.Object) |
636 | 647 |
*/ |
637 | 648 |
public void addGeometryToMultiGeometry(Object geometry, Object multiGeometry) { |
638 |
((MultiCurve)multiGeometry).addCurve((Curve)geometry);
|
|
649 |
((MultiPrimitive)multiGeometry).addPrimitive((Primitive)geometry);
|
|
639 | 650 |
} |
640 | 651 |
|
641 | 652 |
/* (non-Javadoc) |
branches/v2_0_0_prep/extensions/extGPE-gvSIG/src/org/gvsig/fmap/dal/store/gpe/model/GPEFeature.java | ||
---|---|---|
2 | 2 |
|
3 | 3 |
import java.util.LinkedHashMap; |
4 | 4 |
|
5 |
import org.slf4j.Logger; |
|
6 |
import org.slf4j.LoggerFactory; |
|
7 |
|
|
5 | 8 |
import org.gvsig.fmap.geom.Geometry; |
9 |
import org.gvsig.fmap.geom.GeometryLocator; |
|
10 |
import org.gvsig.fmap.geom.GeometryManager; |
|
11 |
import org.gvsig.fmap.geom.exception.CreateGeometryException; |
|
6 | 12 |
import org.gvsig.fmap.geom.primitive.Envelope; |
7 | 13 |
|
8 | 14 |
/* gvSIG. Sistema de Informaci?n Geogr?fica de la Generalitat Valenciana |
... | ... | |
55 | 61 |
* @author Jorge Piera LLodr? (jorge.piera@iver.es) |
56 | 62 |
*/ |
57 | 63 |
public class GPEFeature { |
58 |
private static int idFeature = 0; |
|
64 |
private static final GeometryManager GEOMETRY_MANAGER = GeometryLocator.getGeometryManager(); |
|
65 |
private static final Logger LOG = LoggerFactory.getLogger(GPEFeature.class); |
|
66 |
|
|
67 |
private static int idFeature = 0; |
|
59 | 68 |
private Geometry geometry = null; |
60 | 69 |
private LinkedHashMap elements = null; |
61 | 70 |
private String id = null; |
... | ... | |
70 | 79 |
} |
71 | 80 |
|
72 | 81 |
public GPEFeature(){ |
73 |
elements = new LinkedHashMap(); |
|
82 |
elements = new LinkedHashMap();
|
|
74 | 83 |
} |
75 | 84 |
|
76 | 85 |
/** |
... | ... | |
91 | 100 |
* @return the geometry |
92 | 101 |
*/ |
93 | 102 |
public Geometry getGeometry() { |
94 |
return geometry; |
|
103 |
if (geometry == null){ |
|
104 |
try { |
|
105 |
this.geometry = GEOMETRY_MANAGER.create(Geometry.TYPES.NULL, Geometry.SUBTYPES.GEOM3D); |
|
106 |
} catch (CreateGeometryException e) { |
|
107 |
LOG.error("Not possible to create a geometry", e); |
|
108 |
} |
|
109 |
} |
|
110 |
return geometry; |
|
95 | 111 |
} |
96 | 112 |
|
97 | 113 |
/** |
branches/v2_0_0_prep/extensions/extGPE-gvSIG/src/org/gvsig/fmap/dal/store/gpe/GPEFileSystemServerProvider.java | ||
---|---|---|
42 | 42 |
import org.gvsig.fmap.dal.serverexplorer.filesystem.impl.AbstractFilesystemServerExplorerProvider; |
43 | 43 |
import org.gvsig.fmap.dal.serverexplorer.filesystem.spi.FilesystemServerExplorerProvider; |
44 | 44 |
import org.gvsig.fmap.dal.serverexplorer.filesystem.spi.FilesystemServerExplorerProviderServices; |
45 |
import org.gvsig.gpe.lib.api.GPELocator; |
|
46 |
import org.gvsig.gpe.lib.api.GPEManager; |
|
45 | 47 |
|
46 | 48 |
/** |
47 | 49 |
* @author <a href="mailto:jpiera@gvsig.org">Jorge Piera</a> |
... | ... | |
50 | 52 |
implements FilesystemServerExplorerProvider, ResourceConsumer { |
51 | 53 |
protected FilesystemServerExplorerProviderServices serverExplorer; |
52 | 54 |
|
55 |
private static final GPEManager GPE_MANAGER = GPELocator.getGPEManager(); |
|
56 |
|
|
53 | 57 |
public boolean canCreate() { |
54 | 58 |
// TODO Auto-generated method stub |
55 | 59 |
return false; |
... | ... | |
93 | 97 |
} |
94 | 98 |
|
95 | 99 |
public boolean accept(File pathName) { |
96 |
return pathName.getName().toLowerCase().endsWith(".gml");
|
|
100 |
return GPE_MANAGER.accept(pathName.toURI());
|
|
97 | 101 |
} |
98 | 102 |
|
99 | 103 |
public boolean closeResourceRequested(ResourceProvider resource) { |
Also available in: Unified diff