Skip to content

Commit 00bf138

Browse files
committed
Make sure the Schema's uri is passed through when creating new Schemas.
1 parent b1c8f3e commit 00bf138

File tree

2 files changed

+11
-2
lines changed

2 files changed

+11
-2
lines changed

src/main/groovy/geoscript/layer/Layer.groovy

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -213,7 +213,7 @@ class Layer {
213213
*/
214214
private static Layer createLayerFromFeatureCollection(String name, FeatureCollection fc) {
215215
Schema s = new Schema(fc.schema)
216-
Schema schema = new Schema(name, s.fields)
216+
Schema schema = new Schema(name, s.fields, fc.schema.name.namespaceURI ?: "http://geoscript.org/feature")
217217
Layer layer = new Memory().create(schema)
218218
layer.add(fc)
219219
layer
@@ -676,7 +676,7 @@ class Layer {
676676
*/
677677
Layer filter(def filter = null, String newName = newname()) {
678678
Filter f = (filter == null) ? Filter.PASS : new Filter(filter)
679-
Schema s = new Schema(newName, this.schema.fields)
679+
Schema s = new Schema(newName, this.schema.fields, this.schema.uri)
680680
Layer l = this.workspace.create(s)
681681
DefaultQuery q = new DefaultQuery(getName(), f.filter)
682682
FeatureCollection fc = this.fs.getFeatures(q)

src/test/groovy/geoscript/layer/LayerTestCase.groovy

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -9,6 +9,7 @@ import geoscript.proj.Projection
99
import geoscript.filter.Filter
1010
import geoscript.workspace.Memory
1111
import geoscript.geom.*
12+
import geoscript.workspace.Workspace
1213

1314
/**
1415
* The Layer UnitTest
@@ -221,6 +222,14 @@ class LayerTestCase {
221222

222223
assertEquals 5, layer3.count
223224
assertEquals "(0.0,0.0,4.0,4.0)", layer3.bounds.toString()
225+
226+
// Make sure that the namepsace uri is passed through when creating Layers from FeatureCollections
227+
URL url = getClass().getClassLoader().getResource("states.shp")
228+
Workspace workspace = new Workspace(["url": url, namespace: 'http://omar.ossim.org'])
229+
Layer layer4 = workspace["states"]
230+
assertEquals layer4.schema.uri, 'http://omar.ossim.org'
231+
Layer layer5 = new Layer(layer4.fs.features)
232+
assertEquals layer5.schema.uri, 'http://omar.ossim.org'
224233
}
225234

226235
@Test void updateFeatures() {

0 commit comments

Comments
 (0)