Move vector code out of the way

This commit is contained in:
Tom Payne
2013-11-06 16:40:26 +01:00
parent 81349d382b
commit 4e65fefc00
271 changed files with 881 additions and 0 deletions

View File

@@ -0,0 +1,74 @@
goog.provide('ol.test.parser.ogc.ExceptionReport');
describe('ol.parser.ogc.exceptionreport', function() {
var parser = new ol.parser.ogc.ExceptionReport();
describe('test read exception', function() {
it('OCG WMS 1.3.0 exceptions', function(done) {
var url = 'spec/ol/parser/ogc/xml/exceptionreport/wms1_3_0.xml';
afterLoadXml(url, function(xml) {
var exceptions = parser.read(xml).exceptionReport.exceptions;
expect(exceptions.length).to.be(4);
var str = 'Plain text message about an error.';
expect(goog.string.trim(exceptions[0].text)).to.be(str);
expect(exceptions[1].code).to.be('InvalidUpdateSequence');
str = ' Another error message, this one with a service exception ' +
'code supplied. ';
expect(exceptions[1].text).to.be(str);
str = 'Error in module <foo.c>, line 42A message that includes angle ' +
'brackets in text must be enclosed in a Character Data Section as' +
' in this example. All XML-like markup is ignored except for this' +
' sequence of three closing characters:';
expect(goog.string.trim(exceptions[2].text), str);
str = '<Module>foo.c</Module> <Error>An error occurred</Error> ' +
'<Explanation>Similarly, actual XML can be enclosed in a CDATA ' +
'section. A generic parser will ignore that XML, but ' +
'application-specific software may choose to process it.' +
'</Explanation>';
expect(goog.string.trim(exceptions[3].text), str);
done();
});
});
it('test read exception OWSCommon 1.0.0', function(done) {
var url = 'spec/ol/parser/ogc/xml/exceptionreport/ows1_0_0.xml';
afterLoadXml(url, function(xml) {
var report = parser.read(xml).exceptionReport;
var exception = report.exceptions[0];
expect(report.version).to.eql('1.0.0');
expect(report.language).to.eql('en');
expect(exception.code).to.eql('InvalidParameterValue');
expect(exception.locator).to.eql('foo');
var msg = 'Update error: Error occured updating features';
expect(exception.texts[0]).to.eql(msg);
msg = 'Second exception line';
expect(exception.texts[1]).to.eql(msg);
done();
});
});
it('test read exception OWSCommon 1.1.0', function(done) {
var url = 'spec/ol/parser/ogc/xml/exceptionreport/ows1_1_0.xml';
afterLoadXml(url, function(xml) {
var report = parser.read(xml).exceptionReport;
var exception = report.exceptions[0];
expect(report.version).to.eql('1.1.0');
expect(report.language).to.eql('en');
expect(exception.code).to.eql('InvalidParameterValue');
expect(exception.locator).to.eql('foo');
var msg = 'Update error: Error occured updating features';
expect(exception.texts[0]).to.eql(msg);
expect(exception.texts[1]).to.eql('Second exception line');
done();
});
});
});
});
goog.require('goog.string');
goog.require('ol.parser.ogc.ExceptionReport');

View File

@@ -0,0 +1,284 @@
goog.provide('ol.test.parser.ogc.Filter_v1_0_0');
describe('ol.parser.ogc.Filter_v1_0_0', function() {
var parser = new ol.parser.ogc.Filter_v1_0_0();
describe('reading and writing', function() {
it('handles intersects', function(done) {
var url = 'spec/ol/parser/ogc/xml/filter_v1_0_0/intersects.xml';
afterLoadXml(url, function(xml) {
var filter = parser.read(xml);
expect(filter instanceof ol.expr.Call).to.be(true);
expect(filter.getCallee().getName()).to.equal(
ol.expr.functions.INTERSECTS);
var args = filter.getArgs();
var geom = args[0];
expect(geom.getValue() instanceof ol.geom.Polygon).to.be(true);
expect(args[2].getName()).to.equal('Geometry');
var output = parser.write(filter);
expect(goog.dom.xml.loadXml(output)).to.xmleql(xml);
done();
});
});
it('handles within', function(done) {
var url = 'spec/ol/parser/ogc/xml/filter_v1_0_0/within.xml';
afterLoadXml(url, function(xml) {
var filter = parser.read(xml);
expect(filter instanceof ol.expr.Call).to.be(true);
expect(filter.getCallee().getName()).to.equal(ol.expr.functions.WITHIN);
var args = filter.getArgs();
var geom = args[0];
expect(geom.getValue() instanceof ol.geom.Polygon).to.be(true);
expect(args[2].getName()).to.equal('Geometry');
var output = parser.write(filter);
expect(goog.dom.xml.loadXml(output)).to.xmleql(xml);
done();
});
});
it('handles contains', function(done) {
var url = 'spec/ol/parser/ogc/xml/filter_v1_0_0/contains.xml';
afterLoadXml(url, function(xml) {
var filter = parser.read(xml);
expect(filter instanceof ol.expr.Call).to.be(true);
expect(filter.getCallee().getName()).to.equal(
ol.expr.functions.CONTAINS);
var args = filter.getArgs();
var geom = args[0];
expect(geom.getValue() instanceof ol.geom.Polygon).to.be(true);
expect(args[2].getName()).to.equal('Geometry');
var output = parser.write(filter);
expect(goog.dom.xml.loadXml(output)).to.xmleql(xml);
done();
});
});
it('handles between', function(done) {
var url = 'spec/ol/parser/ogc/xml/filter_v1_0_0/between.xml';
afterLoadXml(url, function(xml) {
var filter = parser.read(xml);
expect(filter).to.be.a(ol.expr.Logical);
expect(filter.getOperator()).to.equal(ol.expr.LogicalOp.AND);
expect(filter.getLeft()).to.be.a(ol.expr.Comparison);
expect(filter.getLeft().getOperator()).to.equal(
ol.expr.ComparisonOp.GTE);
expect(filter.getLeft().getLeft().getName()).to.equal('number');
expect(filter.getLeft().getRight().getValue()).to.equal(0);
expect(filter.getRight()).to.be.a(ol.expr.Comparison);
expect(filter.getRight().getOperator()).to.equal(
ol.expr.ComparisonOp.LTE);
expect(filter.getRight().getLeft().getName()).to.equal('number');
expect(filter.getRight().getRight().getValue()).to.equal(100);
var output = parser.write(filter);
expect(goog.dom.xml.loadXml(output)).to.xmleql(xml);
done();
});
});
it('handles between without literals', function(done) {
var url = 'spec/ol/parser/ogc/xml/filter_v1_0_0/between2.xml';
afterLoadXml(url, function(xml) {
var filter = parser.read(xml);
expect(filter).to.be.a(ol.expr.Logical);
expect(filter.getOperator()).to.equal(ol.expr.LogicalOp.AND);
expect(filter.getLeft()).to.be.a(ol.expr.Comparison);
expect(filter.getLeft().getOperator()).to.equal(
ol.expr.ComparisonOp.GTE);
expect(filter.getLeft().getLeft().getName()).to.equal('number');
expect(filter.getLeft().getRight().getValue()).to.equal(0);
expect(filter.getRight()).to.be.a(ol.expr.Comparison);
expect(filter.getRight().getOperator()).to.equal(
ol.expr.ComparisonOp.LTE);
expect(filter.getRight().getLeft().getName()).to.equal('number');
expect(filter.getRight().getRight().getValue()).to.equal(100);
done();
});
});
it('handles null', function(done) {
var url = 'spec/ol/parser/ogc/xml/filter_v1_0_0/null.xml';
afterLoadXml(url, function(xml) {
var filter = parser.read(xml);
expect(filter).to.be.a(ol.expr.Comparison);
expect(filter.getLeft().getName()).to.equal('prop');
expect(filter.getRight().getValue()).to.equal(null);
var output = parser.write(filter);
expect(goog.dom.xml.loadXml(output)).to.xmleql(xml);
done();
});
});
it('writes BBOX', function(done) {
var url = 'spec/ol/parser/ogc/xml/filter_v1_0_0/bbox.xml';
afterLoadXml(url, function(xml) {
var filter = new ol.expr.Call(
new ol.expr.Identifier(ol.expr.functions.EXTENT),
[new ol.expr.Literal(-180), new ol.expr.Literal(-90),
new ol.expr.Literal(180), new ol.expr.Literal(90),
new ol.expr.Literal('EPSG:4326'),
new ol.expr.Identifier('the_geom')]);
var output = parser.write(filter);
expect(goog.dom.xml.loadXml(output)).to.xmleql(xml);
done();
});
});
it('writes BBOX without geometry name', function(done) {
var url = 'spec/ol/parser/ogc/xml/filter_v1_0_0/bbox_nogeom.xml';
afterLoadXml(url, function(xml) {
var filter = new ol.expr.Call(
new ol.expr.Identifier(ol.expr.functions.EXTENT),
[new ol.expr.Literal(-180), new ol.expr.Literal(-90),
new ol.expr.Literal(180), new ol.expr.Literal(90),
new ol.expr.Literal('EPSG:4326')]);
var output = parser.write(filter);
expect(goog.dom.xml.loadXml(output)).to.xmleql(xml);
done();
});
});
it('reads DWithin', function(done) {
var url = 'spec/ol/parser/ogc/xml/filter_v1_0_0/dwithin.xml';
afterLoadXml(url, function(xml) {
var filter = parser.read(xml);
expect(filter).to.be.a(ol.expr.Call);
var callee = filter.getCallee();
expect(callee).to.be.a(ol.expr.Identifier);
var name = callee.getName();
expect(name).to.equal(ol.expr.functions.DWITHIN);
var args = filter.getArgs();
expect(args.length).to.equal(5);
var distance = args[1];
expect(distance).to.be.a(ol.expr.Literal);
expect(distance.getValue()).to.equal(1000);
var units = args[2];
expect(units).to.be.a(ol.expr.Literal);
expect(units.getValue()).to.equal('m');
done();
});
});
it('writes DWithin', function(done) {
var url = 'spec/ol/parser/ogc/xml/filter_v1_0_0/dwithin.xml';
afterLoadXml(url, function(xml) {
var filter = new ol.expr.Call(new ol.expr.Identifier(
ol.expr.functions.DWITHIN),
[new ol.expr.Literal(new ol.geom.Point([2488789, 289552])),
new ol.expr.Literal(1000), new ol.expr.Literal('m'),
new ol.expr.Literal(null), new ol.expr.Identifier('Geometry')]);
var output = parser.write(filter);
expect(goog.dom.xml.loadXml(output)).to.xmleql(xml);
filter = parser.read(xml);
output = parser.write(filter);
expect(goog.dom.xml.loadXml(output)).to.xmleql(xml);
done();
});
});
});
// the Filter Encoding spec doesn't allow for FID filters inside logical
// filters however, to be liberal, we will write them without complaining
describe('logical fid', function() {
it('writes logical [OR] with fid', function(done) {
var url = 'spec/ol/parser/ogc/xml/filter_v1_0_0/logicalfeatureid.xml';
afterLoadXml(url, function(xml) {
var filter = new ol.expr.Logical(ol.expr.LogicalOp.OR,
new ol.expr.Call(new ol.expr.Identifier(ol.expr.functions.LIKE),
[new ol.expr.Identifier('person'), new ol.expr.Literal('me'),
new ol.expr.Literal('*'), new ol.expr.Literal('.'),
new ol.expr.Literal('!')]),
new ol.expr.Call(new ol.expr.Identifier(ol.expr.functions.FID),
[new ol.expr.Literal('foo.1'), new ol.expr.Literal('foo.2')]));
var output = parser.write(filter);
expect(goog.dom.xml.loadXml(output)).to.xmleql(xml);
done();
});
});
it('writes logical [AND] with fid',
function(done) {
var url = 'spec/ol/parser/ogc/xml/filter_v1_0_0/' +
'logicalfeatureidand.xml';
afterLoadXml(url, function(xml) {
var filter = new ol.expr.Logical(ol.expr.LogicalOp.AND,
new ol.expr.Call(new ol.expr.Identifier(ol.expr.functions.LIKE),
[new ol.expr.Identifier('person'), new ol.expr.Literal('me'),
new ol.expr.Literal('*'), new ol.expr.Literal('.'),
new ol.expr.Literal('!')]),
new ol.expr.Call(new ol.expr.Identifier(ol.expr.functions.FID),
[new ol.expr.Literal('foo.1'), new ol.expr.Literal('foo.2')]));
var output = parser.write(filter);
expect(goog.dom.xml.loadXml(output)).to.xmleql(xml);
done();
});
});
it('writes logical [NOT] with fid',
function(done) {
var url = 'spec/ol/parser/ogc/xml/filter_v1_0_0/' +
'logicalfeatureidnot.xml';
afterLoadXml(url, function(xml) {
var filter = new ol.expr.Not(
new ol.expr.Call(new ol.expr.Identifier(ol.expr.functions.FID),
[new ol.expr.Literal('foo.2')]));
var output = parser.write(filter);
expect(goog.dom.xml.loadXml(output)).to.xmleql(xml);
done();
});
});
});
describe('_expression reader', function() {
var evaluate = ol.expr.evaluateFeature;
it('handles combined propertyname and text', function() {
var xml = '<ogc:UpperBoundary xmlns:ogc="' +
'http://www.opengis.net/ogc">10</ogc:UpperBoundary>';
var reader = parser.readers['http://www.opengis.net/ogc'][
'_expression'];
var expr = reader.call(parser, goog.dom.xml.loadXml(
xml).documentElement);
expect(expr).to.be.a(ol.expr.Literal);
expect(expr.getValue()).to.equal(10);
xml = '<ogc:UpperBoundary xmlns:ogc="http://www.opengis.net/ogc">' +
'foo<ogc:PropertyName>x</ogc:PropertyName>bar</ogc:UpperBoundary>';
expr = reader.call(parser, goog.dom.xml.loadXml(xml).documentElement);
expect(evaluate(expr, new ol.Feature({x: 4}))).to.eql('foo4bar');
});
it('handles combined propertyname and literal', function() {
var reader = parser.readers['http://www.opengis.net/ogc'][
'_expression'];
var xml = '<ogc:UpperBoundary xmlns:ogc="http://www.opengis.net/ogc">' +
'<ogc:Literal>bar</ogc:Literal>' +
'<ogc:PropertyName>x</ogc:PropertyName>' +
'<ogc:Literal>foo</ogc:Literal></ogc:UpperBoundary>';
var expr = reader.call(parser, goog.dom.xml.loadXml(xml).documentElement);
expect(evaluate(expr, new ol.Feature({x: 42}))).to.eql('bar42foo');
});
});
});
goog.require('goog.dom.xml');
goog.require('ol.Feature');
goog.require('ol.expr');
goog.require('ol.expr.Call');
goog.require('ol.expr.Comparison');
goog.require('ol.expr.ComparisonOp');
goog.require('ol.expr.Identifier');
goog.require('ol.expr.Literal');
goog.require('ol.expr.Logical');
goog.require('ol.expr.LogicalOp');
goog.require('ol.expr.Not');
goog.require('ol.expr.functions');
goog.require('ol.geom.Point');
goog.require('ol.geom.Polygon');
goog.require('ol.parser.ogc.Filter_v1_0_0');

View File

@@ -0,0 +1,245 @@
goog.provide('ol.test.parser.ogc.Filter_v1_1_0');
describe('ol.parser.ogc.Filter_v1_1_0', function() {
var parser = new ol.parser.ogc.Filter_v1_1_0();
describe('reading and writing', function() {
it('reads filter', function(done) {
var url = 'spec/ol/parser/ogc/xml/filter_v1_1_0/test.xml';
afterLoadXml(url, function(xml) {
var filter = parser.read(xml);
expect(filter instanceof ol.expr.Logical).to.be(true);
expect(filter.getOperator()).to.equal(ol.expr.LogicalOp.OR);
var filters = [];
parser.getSubfiltersForLogical_(filter, filters);
expect(filters.length).to.equal(5);
expect(filters[0]).to.eql(new ol.expr.Logical(ol.expr.LogicalOp.AND,
new ol.expr.Comparison(
ol.expr.ComparisonOp.GTE, new ol.expr.Identifier('number'),
new ol.expr.Literal(1064866676)),
new ol.expr.Comparison(
ol.expr.ComparisonOp.LTE, new ol.expr.Identifier('number'),
new ol.expr.Literal(1065512599))));
expect(filters[1]).to.eql(new ol.expr.Not(new ol.expr.Comparison(
ol.expr.ComparisonOp.LTE, new ol.expr.Identifier('FOO'),
new ol.expr.Literal(5000))));
expect(filters[2] instanceof ol.expr.Call).to.be(true);
expect(filters[2].getCallee().getName()).to.equal(
ol.expr.functions.LIKE);
expect(filters[2].getArgs()).to.eql([new ol.expr.Identifier('cat'),
new ol.expr.Literal('*dog.food!*good'), new ol.expr.Literal('*'),
new ol.expr.Literal('.'), new ol.expr.Literal('!'),
new ol.expr.Literal(null)]);
expect(filters[3] instanceof ol.expr.Call).to.be(true);
expect(filters[3].getCallee().getName()).to.equal(
ol.expr.functions.IEQ);
expect(filters[3].getArgs()).to.eql([new ol.expr.Identifier('cat'),
new ol.expr.Literal('dog')]);
expect(filters[4] instanceof ol.expr.Comparison).to.be(true);
expect(filters[4].getOperator()).to.equal(ol.expr.ComparisonOp.EQ);
expect(filters[4].getLeft().getName()).to.equal('cat');
expect(filters[4].getRight().getValue()).to.equal('dog');
done();
});
});
it('reads matchCase', function() {
var cases = [{
str:
'<ogc:Filter xmlns:ogc="http://www.opengis.net/ogc">' +
'<ogc:PropertyIsEqualTo>' +
'<ogc:PropertyName>cat</ogc:PropertyName>' +
'<ogc:Literal>dog</ogc:Literal>' +
'</ogc:PropertyIsEqualTo>' +
'</ogc:Filter>',
exp: true
}, {
str:
'<ogc:Filter xmlns:ogc="http://www.opengis.net/ogc">' +
'<ogc:PropertyIsEqualTo matchCase="1">' +
'<ogc:PropertyName>cat</ogc:PropertyName>' +
'<ogc:Literal>dog</ogc:Literal>' +
'</ogc:PropertyIsEqualTo>' +
'</ogc:Filter>',
exp: true
}, {
str:
'<ogc:Filter xmlns:ogc="http://www.opengis.net/ogc">' +
'<ogc:PropertyIsEqualTo matchCase="true">' +
'<ogc:PropertyName>cat</ogc:PropertyName>' +
'<ogc:Literal>dog</ogc:Literal>' +
'</ogc:PropertyIsEqualTo>' +
'</ogc:Filter>',
exp: true
}, {
str:
'<ogc:Filter xmlns:ogc="http://www.opengis.net/ogc">' +
'<ogc:PropertyIsEqualTo matchCase="0">' +
'<ogc:PropertyName>cat</ogc:PropertyName>' +
'<ogc:Literal>dog</ogc:Literal>' +
'</ogc:PropertyIsEqualTo>' +
'</ogc:Filter>',
exp: false
}, {
str:
'<ogc:Filter xmlns:ogc="http://www.opengis.net/ogc">' +
'<ogc:PropertyIsEqualTo matchCase="0">' +
'<ogc:PropertyName>cat</ogc:PropertyName>' +
'<ogc:Literal>dog</ogc:Literal>' +
'</ogc:PropertyIsEqualTo>' +
'</ogc:Filter>',
exp: false
}, {
str:
'<ogc:Filter xmlns:ogc="http://www.opengis.net/ogc">' +
'<ogc:PropertyIsNotEqualTo matchCase="true">' +
'<ogc:PropertyName>cat</ogc:PropertyName>' +
'<ogc:Literal>dog</ogc:Literal>' +
'</ogc:PropertyIsNotEqualTo>' +
'</ogc:Filter>',
exp: true
}, {
str:
'<ogc:Filter xmlns:ogc="http://www.opengis.net/ogc">' +
'<ogc:PropertyIsNotEqualTo matchCase="false">' +
'<ogc:PropertyName>cat</ogc:PropertyName>' +
'<ogc:Literal>dog</ogc:Literal>' +
'</ogc:PropertyIsNotEqualTo>' +
'</ogc:Filter>',
exp: false
}];
var filter, c;
for (var i = 0; i < cases.length; ++i) {
c = cases[i];
filter = parser.read(c.str);
var matchCase = (filter instanceof ol.expr.Call) ? false : true;
expect(matchCase).to.equal(c.exp);
}
});
it('writes BBOX', function(done) {
var url = 'spec/ol/parser/ogc/xml/filter_v1_1_0/bbox.xml';
afterLoadXml(url, function(xml) {
var filter = parser.read(xml);
var output = parser.write(filter);
expect(goog.dom.xml.loadXml(output)).to.xmleql(xml);
done();
});
});
it('writes BBOX without property name', function(done) {
var url = 'spec/ol/parser/ogc/xml/filter_v1_1_0/bbox_nogeomname.xml';
afterLoadXml(url, function(xml) {
var filter = parser.read(xml);
var output = parser.write(filter);
expect(goog.dom.xml.loadXml(output)).to.xmleql(xml);
done();
});
});
it('handles intersects', function(done) {
var url = 'spec/ol/parser/ogc/xml/filter_v1_1_0/intersects.xml';
afterLoadXml(url, function(xml) {
var filter = parser.read(xml);
var output = parser.write(filter);
expect(goog.dom.xml.loadXml(output)).to.xmleql(xml);
done();
});
});
it('handles functions', function(done) {
var url = 'spec/ol/parser/ogc/xml/filter_v1_1_0/function.xml';
afterLoadXml(url, function(xml) {
var filter = new ol.expr.Call(new ol.expr.Identifier(
ol.expr.functions.INTERSECTS),
[new ol.expr.Call(new ol.expr.Identifier('querySingle'),
[new ol.expr.Literal('sf:restricted'),
new ol.expr.Literal('the_geom'),
new ol.expr.Literal('cat=3')]), new ol.expr.Literal(null),
new ol.expr.Identifier('the_geom')]);
var output = parser.write(filter);
expect(goog.dom.xml.loadXml(output)).to.xmleql(xml);
done();
});
});
it('writes custom functions', function(done) {
var url = 'spec/ol/parser/ogc/xml/filter_v1_1_0/customfunction.xml';
afterLoadXml(url, function(xml) {
var filter = new ol.expr.Logical(ol.expr.LogicalOp.AND,
new ol.expr.Call(new ol.expr.Identifier(ol.expr.functions.INEQ),
[new ol.expr.Identifier('FOO'), new ol.expr.Call(
new ol.expr.Identifier('customFunction'),
[new ol.expr.Literal('param1'), new ol.expr.Literal('param2')])]));
var output = parser.write(filter);
expect(goog.dom.xml.loadXml(output)).to.xmleql(xml);
done();
});
});
it('writes nested functions', function(done) {
var url = 'spec/ol/parser/ogc/xml/filter_v1_1_0/nestedfunction.xml';
afterLoadXml(url, function(xml) {
var filter = new ol.expr.Call(new ol.expr.Identifier(
ol.expr.functions.DWITHIN),
[new ol.expr.Call(new ol.expr.Identifier('collectGeometries'),
[new ol.expr.Call(new ol.expr.Identifier('queryCollection'),
[new ol.expr.Literal('sf:roads'),
new ol.expr.Literal('the_geom'),
new ol.expr.Literal('INCLUDE')])]), new ol.expr.Literal(200),
new ol.expr.Literal('meters'),
new ol.expr.Literal(null), new ol.expr.Identifier('the_geom')]);
var output = parser.write(filter);
expect(goog.dom.xml.loadXml(output)).to.xmleql(xml);
done();
});
});
it('writes matchCase on like', function(done) {
var url = 'spec/ol/parser/ogc/xml/filter_v1_1_0/likematchcase.xml';
afterLoadXml(url, function(xml) {
var filter = new ol.expr.Call(
new ol.expr.Identifier(ol.expr.functions.LIKE),
[new ol.expr.Identifier('person'), new ol.expr.Literal('*me*'),
new ol.expr.Literal('*'), new ol.expr.Literal('.'),
new ol.expr.Literal('!'), new ol.expr.Literal(false)]);
var output = parser.write(filter);
expect(goog.dom.xml.loadXml(output)).to.xmleql(xml);
done();
});
});
it('writes sortBy on like', function(done) {
var url = 'spec/ol/parser/ogc/xml/filter_v1_1_0/sortby.xml';
afterLoadXml(url, function(xml) {
var writer = parser.writers['http://www.opengis.net/ogc']['SortBy'];
var output = writer.call(parser, [{
'property': new ol.expr.Identifier('Title'),
'order': new ol.expr.Literal('ASC')
},{
'property': new ol.expr.Identifier('Relevance'),
'order': new ol.expr.Literal('DESC')
}]);
expect(output).to.xmleql(xml);
done();
});
});
});
});
goog.require('goog.dom.xml');
goog.require('ol.expr');
goog.require('ol.expr.Call');
goog.require('ol.expr.Comparison');
goog.require('ol.expr.ComparisonOp');
goog.require('ol.expr.Identifier');
goog.require('ol.expr.Literal');
goog.require('ol.expr.Logical');
goog.require('ol.expr.LogicalOp');
goog.require('ol.expr.Not');
goog.require('ol.expr.functions');
goog.require('ol.parser.ogc.Filter_v1_1_0');

View File

@@ -0,0 +1,342 @@
goog.provide('ol.test.parser.gml_v2');
describe('ol.parser.gml_v2', function() {
var parser = new ol.parser.ogc.GML_v2();
describe('Test GML v2 parser', function() {
it('Point read correctly from coord', function(done) {
var url = 'spec/ol/parser/ogc/xml/gml_v2/point-coord.xml';
afterLoadXml(url, function(xml) {
var obj = parser.read(xml);
expect(obj.geometry.type).to.eql('point');
expect(obj.geometry.coordinates).to.eql([1, 2]);
done();
});
});
it('Point read / written correctly from coordinates', function(done) {
var url = 'spec/ol/parser/ogc/xml/gml_v2/point-coordinates.xml';
afterLoadXml(url, function(xml) {
var obj = parser.read(xml);
parser.applyWriteOptions(obj);
var geom = parser.createGeometry({geometry: obj.geometry});
var node = parser.featureNSWiters_['_geometry'].apply(parser,
[geom]).firstChild;
delete parser.srsName;
delete parser.axisOrientation;
expect(goog.dom.xml.loadXml(parser.serialize(node))).to.xmleql(xml);
expect(obj.geometry.type).to.eql('point');
expect(obj.geometry.coordinates).to.eql([1, 2]);
done();
});
});
it('MultiPoint read correctly from coord', function(done) {
var url = 'spec/ol/parser/ogc/xml/gml_v2/multipoint-coord.xml';
afterLoadXml(url, function(xml) {
var obj = parser.read(xml);
expect(obj.geometry.type).to.eql('multipoint');
expect(obj.geometry.parts.length).to.eql(3);
expect(obj.geometry.parts[0].type).to.eql('point');
expect(obj.geometry.parts[0].coordinates).to.eql([1, 2]);
expect(obj.geometry.parts[1].coordinates).to.eql([2, 3]);
expect(obj.geometry.parts[2].coordinates).to.eql([3, 4]);
done();
});
});
it('MultiPoint read / written correctly from coordinates', function(done) {
var url = 'spec/ol/parser/ogc/xml/gml_v2/multipoint-coordinates.xml';
afterLoadXml(url, function(xml) {
var obj = parser.read(xml);
var geom = parser.createGeometry({geometry: obj.geometry});
parser.applyWriteOptions(obj);
var node = parser.featureNSWiters_['_geometry'].apply(parser,
[geom]).firstChild;
delete parser.srsName;
delete parser.axisOrientation;
expect(goog.dom.xml.loadXml(parser.serialize(node))).to.xmleql(xml);
expect(obj.geometry.type).to.eql('multipoint');
expect(obj.geometry.parts.length).to.eql(3);
expect(obj.geometry.parts[0].type).to.eql('point');
expect(obj.geometry.parts[0].coordinates).to.eql([1, 2]);
expect(obj.geometry.parts[1].coordinates).to.eql([2, 3]);
expect(obj.geometry.parts[2].coordinates).to.eql([3, 4]);
done();
});
});
it('LineString read correctly from coord', function(done) {
var url = 'spec/ol/parser/ogc/xml/gml_v2/linestring-coord.xml';
afterLoadXml(url, function(xml) {
var obj = parser.read(xml);
expect(obj.geometry.type).to.eql('linestring');
expect(obj.geometry.coordinates.length).to.eql(2);
expect(obj.geometry.coordinates).to.eql([[1, 2], [3, 4]]);
done();
});
});
it('LineString read / written correctly from coordinates', function(done) {
var url = 'spec/ol/parser/ogc/xml/gml_v2/linestring-coordinates.xml';
afterLoadXml(url, function(xml) {
var obj = parser.read(xml);
var geom = parser.createGeometry({geometry: obj.geometry});
parser.applyWriteOptions(obj);
var node = parser.featureNSWiters_['_geometry'].apply(parser,
[geom]).firstChild;
delete parser.srsName;
delete parser.axisOrientation;
expect(goog.dom.xml.loadXml(parser.serialize(node))).to.xmleql(xml);
expect(obj.geometry.type).to.eql('linestring');
expect(obj.geometry.coordinates.length).to.eql(2);
expect(obj.geometry.coordinates).to.eql([[1, 2], [3, 4]]);
done();
});
});
it('MultiLineString read correctly from coord', function(done) {
var url = 'spec/ol/parser/ogc/xml/gml_v2/multilinestring-coord.xml';
afterLoadXml(url, function(xml) {
var obj = parser.read(xml);
expect(obj.geometry.type).to.eql('multilinestring');
expect(obj.geometry.parts.length).to.eql(2);
expect(obj.geometry.parts[0].type).to.eql('linestring');
expect(obj.geometry.parts[0].coordinates).to.eql([[1, 2], [2, 3]]);
expect(obj.geometry.parts[1].coordinates).to.eql([[3, 4], [4, 5]]);
done();
});
});
it('MultiLineString read / written correctly from coords', function(done) {
var url = 'spec/ol/parser/ogc/xml/gml_v2/multilinestring-coordinates.xml';
afterLoadXml(url, function(xml) {
var obj = parser.read(xml);
var geom = parser.createGeometry({geometry: obj.geometry});
parser.applyWriteOptions(obj);
var node = parser.featureNSWiters_['_geometry'].apply(parser,
[geom]).firstChild;
delete parser.srsName;
delete parser.axisOrientation;
expect(goog.dom.xml.loadXml(parser.serialize(node))).to.xmleql(xml);
expect(obj.geometry.type).to.eql('multilinestring');
expect(obj.geometry.parts.length).to.eql(2);
expect(obj.geometry.parts[0].type).to.eql('linestring');
expect(obj.geometry.parts[0].coordinates).to.eql([[1, 2], [2, 3]]);
expect(obj.geometry.parts[1].coordinates).to.eql([[3, 4], [4, 5]]);
done();
});
});
it('Polygon read correctly from coord', function(done) {
var url = 'spec/ol/parser/ogc/xml/gml_v2/polygon-coord.xml';
afterLoadXml(url, function(xml) {
var obj = parser.read(xml);
expect(obj.geometry.type).to.eql('polygon');
expect(obj.geometry.coordinates.length).to.eql(3);
expect(obj.geometry.coordinates[0].length).to.eql(4);
expect(obj.geometry.coordinates[0]).to.eql([[1, 2], [3, 4],
[5, 6], [1, 2]]);
expect(obj.geometry.coordinates[1]).to.eql([[2, 3], [4, 5],
[6, 7], [2, 3]]);
expect(obj.geometry.coordinates[2]).to.eql([[3, 4], [5, 6],
[7, 8], [3, 4]]);
done();
});
});
it('Polygon read / written correctly from coordinates', function(done) {
var url = 'spec/ol/parser/ogc/xml/gml_v2/polygon-coordinates.xml';
afterLoadXml(url, function(xml) {
var obj = parser.read(xml);
var geom = parser.createGeometry({geometry: obj.geometry});
parser.applyWriteOptions(obj);
var node = parser.featureNSWiters_['_geometry'].apply(parser,
[geom]).firstChild;
delete parser.srsName;
delete parser.axisOrientation;
expect(goog.dom.xml.loadXml(parser.serialize(node))).to.xmleql(xml);
expect(obj.geometry.type).to.eql('polygon');
done();
});
});
it('MultiPolygon read correctly from coord', function(done) {
var url = 'spec/ol/parser/ogc/xml/gml_v2/multipolygon-coord.xml';
afterLoadXml(url, function(xml) {
var obj = parser.read(xml);
expect(obj.geometry.type).to.eql('multipolygon');
expect(obj.geometry.parts.length).to.eql(2);
expect(obj.geometry.parts[0].type).to.eql('polygon');
done();
});
});
it('MultiPolygon read / written from coordinates', function(done) {
var url = 'spec/ol/parser/ogc/xml/gml_v2/multipolygon-coordinates.xml';
afterLoadXml(url, function(xml) {
var obj = parser.read(xml);
var geom = parser.createGeometry({geometry: obj.geometry});
parser.applyWriteOptions(obj);
var node = parser.featureNSWiters_['_geometry'].apply(parser,
[geom]).firstChild;
delete parser.srsName;
delete parser.axisOrientation;
expect(goog.dom.xml.loadXml(parser.serialize(node))).to.xmleql(xml);
expect(obj.geometry.type).to.eql('multipolygon');
expect(obj.geometry.parts.length).to.eql(2);
expect(obj.geometry.parts[0].type).to.eql('polygon');
done();
});
});
it('GeometryCollection r / w correctly from coordinates', function(done) {
var url = 'spec/ol/parser/ogc/xml/gml_v2/' +
'geometrycollection-coordinates.xml';
afterLoadXml(url, function(xml) {
var p = new ol.parser.ogc.GML_v2({featureNS: 'http://foo'});
var obj = p.read(xml);
var geom = p.createGeometry({geometry: obj.geometry});
p.applyWriteOptions(obj);
var node = p.featureNSWiters_['_geometry'].apply(p,
[geom]).firstChild;
delete p.srsName;
delete p.axisOrientation;
expect(goog.dom.xml.loadXml(p.serialize(node))).to.xmleql(xml);
expect(obj.geometry.type).to.eql('geometrycollection');
expect(obj.geometry.parts.length).to.eql(3);
expect(obj.geometry.parts[0].type).to.eql('point');
expect(obj.geometry.parts[1].type).to.eql('linestring');
expect(obj.geometry.parts[2].type).to.eql('polygon');
done();
});
});
it('Box read correctly from coord', function(done) {
var url = 'spec/ol/parser/ogc/xml/gml_v2/box-coord.xml';
afterLoadXml(url, function(xml) {
var obj = parser.read(xml);
expect(obj.bounds).to.eql([1, 2, 3, 4]);
done();
});
});
it('Box read correctly from coordinates', function(done) {
var url = 'spec/ol/parser/ogc/xml/gml_v2/box-coordinates.xml';
afterLoadXml(url, function(xml) {
var obj = parser.read(xml);
expect(obj.bounds).to.eql([1, 2, 3, 4]);
done();
});
});
it('LinearRing read correctly from coord', function(done) {
var url = 'spec/ol/parser/ogc/xml/gml_v2/linearring-coord.xml';
afterLoadXml(url, function(xml) {
var obj = parser.read(xml);
expect(obj.geometry.type).to.eql('linearring');
expect(obj.geometry.coordinates).to.eql([[1, 2], [3, 4], [5, 6],
[1, 2]]);
done();
});
});
it('LinearRing read / written correctly from coordinates', function(done) {
var url = 'spec/ol/parser/ogc/xml/gml_v2/linearring-coordinates.xml';
afterLoadXml(url, function(xml) {
var obj = parser.read(xml);
var geom = parser.createGeometry({geometry: obj.geometry});
parser.applyWriteOptions(obj);
var node = parser.featureNSWiters_['_geometry'].apply(parser,
[geom]).firstChild;
delete parser.srsName;
delete parser.axisOrientation;
expect(goog.dom.xml.loadXml(parser.serialize(node))).to.xmleql(xml);
expect(obj.geometry.type).to.eql('linearring');
expect(obj.geometry.coordinates).to.eql([[1, 2], [3, 4], [5, 6],
[1, 2]]);
done();
});
});
it('FeatureCollection read / written correctly', function(done) {
var url = 'spec/ol/parser/ogc/xml/gml_v2/topp-states.xml';
afterLoadXml(url, function(xml) {
var schemaLoc = 'http://www.openplans.org/topp ' +
'http://demo.opengeo.org/geoserver/wfs?service=WFS&version=' +
'1.0.0&request=DescribeFeatureType&typeName=topp:states ' +
'http://www.opengis.net/wfs http://demo.opengeo.org/' +
'geoserver/schemas/wfs/1.0.0/WFS-basic.xsd';
var p = new ol.parser.ogc.GML_v2({
featureType: 'states',
featureNS: 'http://www.openplans.org/topp',
schemaLocation: schemaLoc});
// overwrite the axis orientation of the projection, since WFS 1.0.0
// always uses enu
var obj = p.read(xml, {axisOrientation: 'enu'});
var output = p.write(obj, {axisOrientation: 'enu'});
expect(goog.dom.xml.loadXml(output)).to.xmleql(xml);
expect(obj.features.length).to.eql(3);
var feature = obj.features[0];
expect(feature.getGeometry() instanceof
ol.geom.MultiPolygon).to.be.ok();
var attributes = feature.getAttributes();
expect(feature.getId()).to.eql('states.1');
expect(attributes['STATE_NAME']).to.eql('Illinois');
expect(attributes['STATE_FIPS']).to.eql('17');
expect(attributes['SUB_REGION']).to.eql('E N Cen');
expect(attributes['STATE_ABBR']).to.eql('IL');
expect(attributes['LAND_KM']).to.eql('143986.61');
expect(ol.proj.get(obj.metadata.projection) instanceof ol.proj.EPSG4326)
.to.be.ok();
done();
});
});
it('Auto configure works correctly', function(done) {
var url = 'spec/ol/parser/ogc/xml/gml_v2/topp-states.xml';
afterLoadXml(url, function(xml) {
var p = new ol.parser.ogc.GML_v2();
var obj = p.read(xml);
expect(obj.features.length).to.eql(3);
expect(obj.features[0].getGeometry() instanceof
ol.geom.MultiPolygon).to.be.ok();
expect(p.featureType).to.eql('states');
expect(p.featureNS).to.eql('http://www.openplans.org/topp');
done();
});
});
it('Test multiple typeNames', function(done) {
var url = 'spec/ol/parser/ogc/xml/gml_v2/multipletypenames.xml';
afterLoadXml(url, function(xml) {
// we should not go through autoConfig so specify featureNS
var p = new ol.parser.ogc.GML_v2({
featureNS: 'http://mapserver.gis.umn.edu/mapserver',
featureType: ['LKUNSTWERK', 'PKUNSTWERK', 'VKUNSTWERK']});
var obj = p.read(xml);
var features = obj.features;
expect(features.length).to.eql(3);
expect(features[0].getGeometry() instanceof
ol.geom.MultiPolygon).to.be.ok();
expect(features[1].getGeometry() instanceof
ol.geom.MultiLineString).to.be.ok();
expect(features[2].getGeometry() instanceof
ol.geom.MultiPoint).to.be.ok();
done();
});
});
it('Test no geometry', function(done) {
var url = 'spec/ol/parser/ogc/xml/gml_v2/nogeom.xml';
afterLoadXml(url, function(xml) {
var obj = parser.read(xml);
expect(obj.features.length).to.eql(2);
var feature = obj.features[0];
expect(feature.getGeometry() === null).to.be.ok();
// TODO test bounds on feature
// see https://github.com/openlayers/ol3/issues/566
done();
});
});
it('Test boundedBy', function(done) {
var url = 'spec/ol/parser/ogc/xml/gml_v2/boundedBy.xml';
afterLoadXml(url, function(xml) {
parser.read(xml);
// TODO test bounds on feature
// see https://github.com/openlayers/ol3/issues/566
done();
});
});
});
});
goog.require('goog.dom.xml');
goog.require('ol.parser.ogc.GML_v2');
goog.require('ol.geom.MultiLineString');
goog.require('ol.geom.MultiPoint');
goog.require('ol.geom.MultiPolygon');
goog.require('ol.proj');
goog.require('ol.proj.EPSG4326');

View File

@@ -0,0 +1,383 @@
goog.provide('ol.test.parser.gml_v3');
describe('ol.parser.gml_v3', function() {
var parser = new ol.parser.ogc.GML_v3();
describe('Test GML v3 parser', function() {
it('Envelope read correctly', function(done) {
var url = 'spec/ol/parser/ogc/xml/gml_v3/envelope.xml';
afterLoadXml(url, function(xml) {
var obj = parser.read(xml);
expect(obj.bounds).to.eql([1, 2, 3, 4]);
done();
});
});
it('LinearRing read / written correctly', function(done) {
var url = 'spec/ol/parser/ogc/xml/gml_v3/linearring.xml';
afterLoadXml(url, function(xml) {
var obj = parser.read(xml);
var geom = parser.createGeometry({geometry: obj.geometry});
parser.applyWriteOptions(obj);
var node = parser.featureNSWiters_['_geometry'].apply(parser,
[geom]).firstChild;
delete parser.srsName;
delete parser.axisOrientation;
expect(goog.dom.xml.loadXml(parser.serialize(node))).to.xmleql(xml);
expect(obj.geometry.type).to.eql('linearring');
expect(obj.geometry.coordinates).to.eql([[1, 2], [3, 4], [5, 6],
[1, 2]]);
done();
});
});
it('Linestring read / written correctly', function(done) {
var url = 'spec/ol/parser/ogc/xml/gml_v3/linestring.xml';
afterLoadXml(url, function(xml) {
var obj = parser.read(xml);
var geom = parser.createGeometry({geometry: obj.geometry});
parser.applyWriteOptions(obj);
var node = parser.featureNSWiters_['_geometry'].apply(parser,
[geom]).firstChild;
delete parser.srsName;
delete parser.axisOrientation;
expect(goog.dom.xml.loadXml(parser.serialize(node))).to.xmleql(xml);
expect(obj.geometry.type).to.eql('linestring');
expect(obj.geometry.coordinates).to.eql([[1, 2], [3, 4]]);
done();
});
});
it('Linestring 3D read correctly', function(done) {
var url = 'spec/ol/parser/ogc/xml/gml_v3/linestring3d.xml';
afterLoadXml(url, function(xml) {
var obj = parser.read(xml);
// no write test since simple features only does 2D
expect(obj.geometry.type).to.eql('linestring');
expect(obj.geometry.coordinates).to.eql([[1, 2, 3], [4, 5, 6]]);
done();
});
});
it('Curve read / written correctly', function(done) {
var url = 'spec/ol/parser/ogc/xml/gml_v3/curve.xml';
afterLoadXml(url, function(xml) {
var p = new ol.parser.ogc.GML_v3({curve: true});
var obj = p.read(xml);
var geom = p.createGeometry({geometry: obj.geometry});
p.applyWriteOptions(obj);
var node = p.featureNSWiters_['_geometry'].apply(p,
[geom]).firstChild;
delete p.srsName;
delete p.axisOrientation;
expect(goog.dom.xml.loadXml(p.serialize(node))).to.xmleql(xml);
expect(obj.geometry.type).to.eql('linestring');
expect(obj.geometry.coordinates).to.eql([[1, 2], [3, 4]]);
done();
});
});
it('MultiLineString plural read correctly', function(done) {
var url = 'spec/ol/parser/ogc/xml/gml_v3/multilinestring-plural.xml';
afterLoadXml(url, function(xml) {
// no write test for plural, we only write singular
var obj = parser.read(xml);
expect(obj.geometry.type).to.eql('multilinestring');
expect(obj.geometry.parts.length).to.eql(2);
expect(obj.geometry.parts[0].type).to.eql('linestring');
done();
});
});
it('MultiLineString singular read / written correctly', function(done) {
var url = 'spec/ol/parser/ogc/xml/gml_v3/multilinestring-singular.xml';
afterLoadXml(url, function(xml) {
var p = new ol.parser.ogc.GML_v3({multiCurve: false});
var obj = p.read(xml);
var geom = p.createGeometry({geometry: obj.geometry});
p.applyWriteOptions(obj);
var node = p.featureNSWiters_['_geometry'].apply(p,
[geom]).firstChild;
delete p.srsName;
delete p.axisOrientation;
expect(goog.dom.xml.loadXml(p.serialize(node))).to.xmleql(xml);
expect(obj.geometry.type).to.eql('multilinestring');
expect(obj.geometry.parts.length).to.eql(2);
expect(obj.geometry.parts[0].type).to.eql('linestring');
done();
});
});
it('MultiCurve singular read / written correctly', function(done) {
var url = 'spec/ol/parser/ogc/xml/gml_v3/multicurve-singular.xml';
afterLoadXml(url, function(xml) {
var obj = parser.read(xml);
var geom = parser.createGeometry({geometry: obj.geometry});
parser.applyWriteOptions(obj);
var node = parser.featureNSWiters_['_geometry'].apply(parser,
[geom]).firstChild;
delete parser.srsName;
delete parser.axisOrientation;
expect(goog.dom.xml.loadXml(parser.serialize(node))).to.xmleql(xml);
expect(obj.geometry.type).to.eql('multilinestring');
expect(obj.geometry.parts.length).to.eql(2);
expect(obj.geometry.parts[0].type).to.eql('linestring');
expect(obj.geometry.parts[0].coordinates).to.eql([[1, 2], [2, 3]]);
done();
});
});
it('MultiCurve curve read / written correctly', function(done) {
var url = 'spec/ol/parser/ogc/xml/gml_v3/multicurve-curve.xml';
afterLoadXml(url, function(xml) {
var p = new ol.parser.ogc.GML_v3({curve: true});
var obj = p.read(xml);
var geom = p.createGeometry({geometry: obj.geometry});
p.applyWriteOptions(obj);
var node = p.featureNSWiters_['_geometry'].apply(p,
[geom]).firstChild;
delete p.srsName;
delete p.axisOrientation;
expect(goog.dom.xml.loadXml(p.serialize(node))).to.xmleql(xml);
expect(obj.geometry.type).to.eql('multilinestring');
expect(obj.geometry.parts.length).to.eql(2);
expect(obj.geometry.parts[0].type).to.eql('linestring');
expect(obj.geometry.parts[0].coordinates).to.eql([[1, 2], [2, 3]]);
done();
});
});
it('MultiPoint plural read correctly', function(done) {
var url = 'spec/ol/parser/ogc/xml/gml_v3/multipoint-plural.xml';
afterLoadXml(url, function(xml) {
var obj = parser.read(xml);
expect(obj.geometry.type).to.eql('multipoint');
expect(obj.geometry.parts.length).to.eql(3);
expect(obj.geometry.parts[0].type).to.eql('point');
expect(obj.geometry.parts[0].coordinates).to.eql([1, 2]);
done();
});
});
it('MultiPoint singular read / written correctly', function(done) {
var url = 'spec/ol/parser/ogc/xml/gml_v3/multipoint-singular.xml';
afterLoadXml(url, function(xml) {
var obj = parser.read(xml);
var geom = parser.createGeometry({geometry: obj.geometry});
parser.applyWriteOptions(obj);
var node = parser.featureNSWiters_['_geometry'].apply(parser,
[geom]).firstChild;
delete parser.srsName;
delete parser.axisOrientation;
expect(goog.dom.xml.loadXml(parser.serialize(node))).to.xmleql(xml);
expect(obj.geometry.type).to.eql('multipoint');
expect(obj.geometry.parts.length).to.eql(3);
expect(obj.geometry.parts[0].type).to.eql('point');
expect(obj.geometry.parts[0].coordinates).to.eql([1, 2]);
done();
});
});
it('MultiPolygon plural read correctly', function(done) {
var url = 'spec/ol/parser/ogc/xml/gml_v3/multipolygon-plural.xml';
afterLoadXml(url, function(xml) {
var obj = parser.read(xml);
expect(obj.geometry.type).to.eql('multipolygon');
expect(obj.geometry.parts.length).to.eql(2);
expect(obj.geometry.parts[0].type).to.eql('polygon');
done();
});
});
it('MultiPolygon singular read / written correctly', function(done) {
var url = 'spec/ol/parser/ogc/xml/gml_v3/multipolygon-singular.xml';
afterLoadXml(url, function(xml) {
var p = new ol.parser.ogc.GML_v3({multiSurface: false});
var obj = p.read(xml);
var geom = p.createGeometry({geometry: obj.geometry});
p.applyWriteOptions(obj);
var node = p.featureNSWiters_['_geometry'].apply(p,
[geom]).firstChild;
delete p.srsName;
delete p.axisOrientation;
expect(goog.dom.xml.loadXml(p.serialize(node))).to.xmleql(xml);
expect(obj.geometry.type).to.eql('multipolygon');
expect(obj.geometry.parts.length).to.eql(2);
expect(obj.geometry.parts[0].type).to.eql('polygon');
done();
});
});
it('MultiSurface plural read correctly', function(done) {
var url = 'spec/ol/parser/ogc/xml/gml_v3/multisurface-plural.xml';
afterLoadXml(url, function(xml) {
var obj = parser.read(xml);
expect(obj.geometry.type).to.eql('multipolygon');
expect(obj.geometry.parts.length).to.eql(2);
expect(obj.geometry.parts[0].type).to.eql('polygon');
done();
});
});
it('MultiSurface singular read / written correctly', function(done) {
var url = 'spec/ol/parser/ogc/xml/gml_v3/multisurface-singular.xml';
afterLoadXml(url, function(xml) {
var obj = parser.read(xml);
var geom = parser.createGeometry({geometry: obj.geometry});
parser.applyWriteOptions(obj);
var node = parser.featureNSWiters_['_geometry'].apply(parser,
[geom]).firstChild;
delete parser.srsName;
delete parser.axisOrientation;
expect(goog.dom.xml.loadXml(parser.serialize(node))).to.xmleql(xml);
expect(obj.geometry.type).to.eql('multipolygon');
expect(obj.geometry.parts.length).to.eql(2);
expect(obj.geometry.parts[0].type).to.eql('polygon');
done();
});
});
it('MultiSurface surface read / written correctly', function(done) {
var url = 'spec/ol/parser/ogc/xml/gml_v3/multisurface-surface.xml';
afterLoadXml(url, function(xml) {
var p = new ol.parser.ogc.GML_v3({surface: true});
var obj = p.read(xml);
var geom = p.createGeometry({geometry: obj.geometry});
p.applyWriteOptions(obj);
var node = p.featureNSWiters_['_geometry'].apply(p,
[geom]).firstChild;
delete p.srsName;
delete p.axisOrientation;
expect(goog.dom.xml.loadXml(p.serialize(node))).to.xmleql(xml);
expect(obj.geometry.type).to.eql('multipolygon');
expect(obj.geometry.parts.length).to.eql(2);
expect(obj.geometry.parts[0].type).to.eql('polygon');
done();
});
});
it('Point read / written correctly', function(done) {
var url = 'spec/ol/parser/ogc/xml/gml_v3/point.xml';
afterLoadXml(url, function(xml) {
var obj = parser.read(xml);
var geom = parser.createGeometry({geometry: obj.geometry});
parser.applyWriteOptions(obj);
var node = parser.featureNSWiters_['_geometry'].apply(parser,
[geom]).firstChild;
delete parser.srsName;
delete parser.axisOrientation;
expect(goog.dom.xml.loadXml(parser.serialize(node))).to.xmleql(xml);
expect(obj.geometry.type).to.eql('point');
expect(obj.geometry.coordinates).to.eql([1, 2]);
done();
});
});
it('Polygon read / written correctly', function(done) {
var url = 'spec/ol/parser/ogc/xml/gml_v3/polygon.xml';
afterLoadXml(url, function(xml) {
var obj = parser.read(xml);
var geom = parser.createGeometry({geometry: obj.geometry});
parser.applyWriteOptions(obj);
var node = parser.featureNSWiters_['_geometry'].apply(parser,
[geom]).firstChild;
delete parser.srsName;
delete parser.axisOrientation;
expect(goog.dom.xml.loadXml(parser.serialize(node))).to.xmleql(xml);
expect(obj.geometry.type).to.eql('polygon');
done();
});
});
it('Surface read / written correctly', function(done) {
var url = 'spec/ol/parser/ogc/xml/gml_v3/surface.xml';
afterLoadXml(url, function(xml) {
var p = new ol.parser.ogc.GML_v3({surface: true});
var obj = p.read(xml);
var geom = p.createGeometry({geometry: obj.geometry});
p.applyWriteOptions(obj, {srsName: 'foo'});
var node = p.featureNSWiters_['_geometry'].apply(p,
[geom]).firstChild;
delete p.srsName;
delete p.axisOrientation;
expect(goog.dom.xml.loadXml(p.serialize(node))).to.xmleql(xml);
expect(obj.geometry.type).to.eql('polygon');
done();
});
});
it('FeatureCollection from GML read / written correctly', function(done) {
var url = 'spec/ol/parser/ogc/xml/gml_v3/topp-states-gml.xml';
afterLoadXml(url, function(xml) {
var schemaLoc = 'http://www.openplans.org/topp ' +
'http://demo.opengeo.org/geoserver/wfs?service=WFS&version=' +
'1.1.0&request=DescribeFeatureType&typeName=topp:states ' +
'http://www.opengis.net/gml ' +
'http://schemas.opengis.net/gml/3.2.1/gml.xsd';
var p = new ol.parser.ogc.GML_v3({schemaLocation: schemaLoc});
var obj = p.read(xml);
var output = p.write(obj);
expect(goog.dom.xml.loadXml(output)).to.xmleql(xml);
expect(p.geometryName).to.eql('the_geom');
expect(obj.features.length).to.eql(10);
var feature = obj.features[0];
expect(feature.getGeometry() instanceof
ol.geom.MultiPolygon).to.be.ok();
var attributes = feature.getAttributes();
expect(feature.getId()).to.eql('states.1');
expect(attributes['STATE_NAME']).to.eql('Illinois');
expect(attributes['STATE_FIPS']).to.eql('17');
expect(attributes['SUB_REGION']).to.eql('E N Cen');
expect(attributes['STATE_ABBR']).to.eql('IL');
expect(attributes['LAND_KM']).to.eql('143986.61');
expect(ol.proj.get(obj.metadata.projection) instanceof ol.proj.EPSG4326)
.to.be.ok();
done();
});
});
it('FeatureCollection from WFS read correctly', function(done) {
var url = 'spec/ol/parser/ogc/xml/gml_v3/topp-states-wfs.xml';
afterLoadXml(url, function(xml) {
var obj = parser.read(xml);
expect(obj.features.length).to.eql(3);
var feature = obj.features[0];
expect(feature.getGeometry() instanceof
ol.geom.MultiPolygon).to.be.ok();
var attributes = feature.getAttributes();
expect(feature.getId()).to.eql('states.1');
expect(attributes['STATE_NAME']).to.eql('Illinois');
expect(attributes['STATE_FIPS']).to.eql('17');
expect(attributes['SUB_REGION']).to.eql('E N Cen');
expect(attributes['STATE_ABBR']).to.eql('IL');
expect(attributes['LAND_KM']).to.eql('143986.61');
expect(ol.proj.get(obj.metadata.projection) instanceof ol.proj.EPSG4326)
.to.be.ok();
done();
});
});
it('Read autoConfig', function(done) {
var url = 'spec/ol/parser/ogc/xml/gml_v3/topp-states-wfs.xml';
afterLoadXml(url, function(xml) {
parser.read(xml);
expect(parser.featureType).to.eql('states');
expect(parser.featureNS).to.eql('http://www.openplans.org/topp');
expect(parser.autoConfig === true).to.be.ok();
parser.autoConfig = false;
parser.read(xml);
expect(parser.autoConfig === false).to.be.ok();
parser.autoConfig = true;
done();
});
});
it('Empty attribute', function(done) {
var url = 'spec/ol/parser/ogc/xml/gml_v3/empty-attribute.xml';
afterLoadXml(url, function(xml) {
var obj = parser.read(xml);
expect(obj.features.length).to.eql(1);
var attr = obj.features[0].getAttributes();
expect(attr['name']).to.eql('Aflu');
expect(attr['foo']).to.eql(undefined);
expect(attr['empty']).to.eql('');
done();
});
});
it('Repeated name', function(done) {
var url = 'spec/ol/parser/ogc/xml/gml_v3/repeated-name.xml';
afterLoadXml(url, function(xml) {
var obj = parser.read(xml);
expect(obj.features.length).to.eql(1);
var atts = obj.features[0].getAttributes();
expect(atts['zoning']).to.eql('I-L');
done();
});
});
});
});
goog.require('goog.dom.xml');
goog.require('ol.geom.MultiPolygon');
goog.require('ol.parser.ogc.GML_v3');
goog.require('ol.proj');
goog.require('ol.proj.EPSG4326');

View File

@@ -0,0 +1,25 @@
goog.provide('ol.test.parser.ogc.Versioned');
describe('ol.parser.ogc.versioned', function() {
describe('test constructor', function() {
var parser = new ol.parser.ogc.Versioned({version: '1.0.0'});
it('new OpenLayers.Format.XML.VersionedOGC returns object', function() {
expect(parser instanceof ol.parser.ogc.Versioned).to.be.ok();
});
it('constructor sets version correctly', function() {
expect(parser.version).to.eql('1.0.0');
});
it('defaultVersion should be null if not specified', function() {
expect(parser.defaultVersion).to.be(null);
});
it('format has a read function', function() {
expect(typeof(parser.read)).to.eql('function');
});
it('format has a write function', function() {
expect(typeof(parser.write)).to.eql('function');
});
});
});
goog.require('ol.parser.ogc.Versioned');

View File

@@ -0,0 +1,45 @@
goog.provide('ol.test.parser.ogc.WMSCapabilities');
describe('test WMSCapabilities', function() {
describe('test getVersion', function() {
var snippet = '<WMS_Capabilities version="1.3.0" ' +
'xmlns="http://www.opengis.net/wms"><Service></Service>' +
'</WMS_Capabilities>';
var snippet2 = '<WMS_Capabilities xmlns="http://www.opengis.net/wms">' +
'<Service></Service></WMS_Capabilities>';
it('Version taken from document', function() {
var parser = new ol.parser.ogc.WMSCapabilities();
var data = parser.read(snippet);
expect(data.version).to.eql('1.3.0');
});
it('Version taken from parser takes preference', function() {
var parser = new ol.parser.ogc.WMSCapabilities({version: '1.1.0'});
var data = parser.read(snippet);
expect(data.version).to.eql('1.1.0');
});
it('If nothing else is set, defaultVersion should be returned', function() {
var parser = new ol.parser.ogc.WMSCapabilities({defaultVersion: '1.1.1'});
var data = parser.read(snippet2);
expect(data.version).to.eql('1.1.1');
});
var parser = new ol.parser.ogc.WMSCapabilities({defaultVersion: '1.1.1'});
it('Version from options returned', function() {
var version = parser.getVersion(null, {version: '1.3.0'});
expect(version).to.eql('1.3.0');
});
var msg = 'defaultVersion returned if no version specified in options ' +
'and no version on the format';
it(msg, function() {
var version = parser.getVersion(null);
expect(version).to.eql('1.1.1');
});
msg = 'version returned of the Format if no version specified in options';
it(msg, function() {
parser.version = '1.1.0';
var version = parser.getVersion(null);
expect(version).to.eql('1.1.0');
});
});
});
goog.require('ol.parser.ogc.WMSCapabilities');

View File

@@ -0,0 +1,37 @@
goog.provide('ol.test.parser.ogc.WMSCapabilities_v1_0_0');
/**
* @define {boolean} Whether to enable WMS Capabilities version 1.0.0.
*/
ol.ENABLE_WMSCAPS_1_0_0 = true;
describe('ol.parser.ogc.wmscapabilities_v1_0_0', function() {
var parser = new ol.parser.ogc.WMSCapabilities();
describe('test read', function() {
it('Test read', function(done) {
var url = 'spec/ol/parser/ogc/xml/wmscapabilities_v1_0_0.xml';
afterLoadXml(url, function(xml) {
var obj;
obj = parser.read(xml);
expect(obj.service.keywords.length).to.eql(2);
expect(obj.service.keywords[0]['value']).to.eql('BGDI');
expect(obj.service.href).to.eql('https://wms.geo.admin.ch/?');
var url = 'https://wms.geo.admin.ch/?';
var getmap = obj.capability.request.getmap;
expect(getmap.get.href).to.eql(url);
expect(getmap.post.href).to.eql(url);
expect(getmap.formats.length).to.eql(4);
expect(getmap.formats[0]).to.eql('GIF');
expect(obj.capability.layers[64].keywords.length).to.eql(2);
expect(obj.capability.layers[64].keywords[0].value).to.eql('Geometer');
done();
});
});
});
});
goog.require('ol.parser.ogc.WMSCapabilities');

View File

@@ -0,0 +1,259 @@
goog.provide('ol.test.parser.ogc.WMSCapabilities_v1_1_1');
describe('ol.parser.ogc.wmscapabilities_v1_1_1', function() {
var parser = new ol.parser.ogc.WMSCapabilities();
describe('test read exception', function() {
it('Error reported correctly', function(done) {
var url = 'spec/ol/parser/ogc/xml/wmscapabilities_v1_1_1/' +
'exceptionsample.xml';
afterLoadXml(url, function(xml) {
var obj = parser.read(xml);
expect(!!obj.error).to.be.ok();
done();
});
});
});
describe('test read', function() {
it('Test read', function(done) {
var url = 'spec/ol/parser/ogc/xml/wmscapabilities_v1_1_1/gssample.xml';
afterLoadXml(url, function(xml) {
var obj, capability, getmap, describelayer, getfeatureinfo, layer;
obj = parser.read(xml);
capability = obj.capability;
getmap = capability.request.getmap;
describelayer = capability.request.describelayer;
getfeatureinfo = capability.request.getfeatureinfo;
layer = capability.layers[2];
expect(capability).to.be.ok();
expect(getmap.formats.length).to.eql(28);
var get = 'http://publicus.opengeo.org:80/geoserver/wms?SERVICE=WMS&';
expect(getmap.get.href).to.eql(get);
expect(getmap.post).to.be(undefined);
get = 'http://publicus.opengeo.org:80/geoserver/wms?SERVICE=WMS&';
expect(describelayer.get.href).to.eql(get);
expect(describelayer.post).to.be(undefined);
get = 'http://publicus.opengeo.org:80/geoserver/wms?SERVICE=WMS&';
expect(getfeatureinfo.get.href).to.eql(get);
var post = 'http://publicus.opengeo.org:80/geoserver/wms?SERVICE=WMS&';
expect(getfeatureinfo.post.href).to.eql(post);
expect(capability.layers).to.be.ok();
expect(capability.layers.length).to.eql(22);
var infoFormats =
['text/plain', 'text/html', 'application/vnd.ogc.gml'];
expect(layer.infoFormats).to.eql(infoFormats);
expect(layer.name).to.eql('tiger:tiger_roads');
expect(layer.prefix).to.eql('tiger');
expect(layer.title).to.eql('Manhattan (NY) roads');
var abstr = 'Highly simplified road layout of Manhattan in New York..';
expect(layer['abstract']).to.eql(abstr);
var bbox = [
-74.08769307536667, 40.660618924633326,
-73.84653192463333, 40.90178007536667
];
expect(layer.llbbox).to.eql(bbox);
expect(layer.styles.length).to.eql(1);
expect(layer.styles[0].name).to.eql('tiger_roads');
var legend = 'http://publicus.opengeo.org:80/geoserver/wms/' +
'GetLegendGraphic?VERSION=1.0.0&FORMAT=image/png&WIDTH=20&' +
'HEIGHT=20&LAYER=tiger:tiger_roads';
expect(layer.styles[0].legend.href).to.eql(legend);
expect(layer.styles[0].legend.format).to.eql('image/png');
expect(layer.queryable).to.be.ok();
done();
});
});
});
describe('test layers', function() {
it('Test layers', function(done) {
var url = 'spec/ol/parser/ogc/xml/wmscapabilities_v1_1_1/ogcsample.xml';
afterLoadXml(url, function(xml) {
var obj, capability, layers = {}, rootlayer, identifiers, authorities;
var featurelist;
obj = parser.read(xml);
capability = obj.capability;
for (var i = 0, len = capability.layers.length; i < len; i++) {
if ('name' in capability.layers[i]) {
layers[capability.layers[i].name] = capability.layers[i];
}
}
rootlayer = capability.layers[capability.layers.length - 1];
identifiers = layers['ROADS_RIVERS'].identifiers;
authorities = layers['ROADS_RIVERS'].authorityURLs;
featurelist = layers['ROADS_RIVERS'].featureListURL;
expect(rootlayer.srs).to.eql({'EPSG:4326': true});
var srs = {'EPSG:4326': true, 'EPSG:26986': true};
expect(layers['ROADS_RIVERS'].srs).to.eql(srs);
expect(layers['Temperature'].srs).to.eql({'EPSG:4326': true});
var bbox = layers['ROADS_RIVERS'].bbox['EPSG:26986'];
expect(bbox.bbox).to.eql([189000, 834000, 285000, 962000]);
expect(bbox.res).to.eql({x: 1, y: 1});
bbox = layers['ROADS_RIVERS'].bbox['EPSG:4326'];
expect(bbox.bbox).to.eql([-71.63, 41.75, -70.78, 42.90]);
expect(bbox.res).to.eql({x: 0.01, y: 0.01});
bbox = layers['ROADS_1M'].bbox['EPSG:26986'];
expect(bbox.bbox).to.eql([189000, 834000, 285000, 962000]);
expect(bbox.res).to.eql({x: 1, y: 1});
expect(identifiers).to.be.ok();
expect('DIF_ID' in identifiers).to.be.ok();
expect(identifiers['DIF_ID']).to.eql('123456');
expect('DIF_ID' in authorities).to.be.ok();
var url = 'http://gcmd.gsfc.nasa.gov/difguide/whatisadif.html';
expect(authorities['DIF_ID']).to.eql(url);
expect(featurelist).to.be.ok();
expect(featurelist.format).to.eql('application/vnd.ogc.se_xml');
url = 'http://www.university.edu/data/roads_rivers.gml';
expect(featurelist.href).to.eql(url);
expect(layers['Pressure'].queryable).to.be.ok();
expect(layers['ozone_image'].queryable).to.not.be();
expect(layers['population'].cascaded).to.eql(1);
expect(layers['ozone_image'].fixedWidth).to.eql(512);
expect(layers['ozone_image'].fixedHeight).to.eql(256);
expect(layers['ozone_image'].opaque).to.be.ok();
expect(layers['ozone_image'].noSubsets).to.be.ok();
done();
});
});
});
describe('test dimensions', function() {
it('Test dimensions', function(done) {
var url = 'spec/ol/parser/ogc/xml/wmscapabilities_v1_1_1/ogcsample.xml';
afterLoadXml(url, function(xml) {
var obj, capability, layers = {}, time, elevation;
obj = parser.read(xml);
capability = obj.capability;
for (var i = 0, len = capability.layers.length; i < len; i++) {
if ('name' in capability.layers[i]) {
layers[capability.layers[i].name] = capability.layers[i];
}
}
time = layers['Clouds'].dimensions.time;
elevation = layers['Pressure'].dimensions.elevation;
expect(time['default']).to.eql('2000-08-22');
expect(time.values.length).to.eql(1);
expect(time.values[0]).to.eql('1999-01-01/2000-08-22/P1D');
expect(elevation.units).to.eql('EPSG:5030');
expect(elevation['default']).to.eql('0');
expect(elevation.nearestVal).to.be.ok();
expect(elevation.multipleVal).to.not.be();
expect(elevation.values).to.eql(
['0', '1000', '3000', '5000', '10000']);
done();
});
});
});
describe('test contact info', function() {
it('Test contact info', function(done) {
var url = 'spec/ol/parser/ogc/xml/wmscapabilities_v1_1_1/' +
'ogcsample.xml';
afterLoadXml(url, function(xml) {
var obj, service, contactinfo, personPrimary, addr;
obj = parser.read(xml);
service = obj.service;
contactinfo = service.contactInformation;
personPrimary = contactinfo.personPrimary;
addr = contactinfo.contactAddress;
expect(contactinfo).to.be.ok();
expect(personPrimary).to.be.ok();
expect(personPrimary.person).to.eql('Jeff deLaBeaujardiere');
expect(personPrimary.organization).to.eql('NASA');
expect(contactinfo.position).to.eql('Computer Scientist');
expect(addr).to.be.ok();
expect(addr.type).to.eql('postal');
var address = 'NASA Goddard Space Flight Center, Code 933';
expect(addr.address).to.eql(address);
expect(addr.city).to.eql('Greenbelt');
expect(addr.stateOrProvince).to.eql('MD');
expect(addr.postcode).to.eql('20771');
expect(addr.country).to.eql('USA');
expect(contactinfo.phone).to.eql('+1 301 286-1569');
expect(contactinfo.fax).to.eql('+1 301 286-1777');
expect(contactinfo.email).to.eql('delabeau@iniki.gsfc.nasa.gov');
done();
});
});
});
describe('Test fees and constraints', function() {
it('Test fees and constraints', function(done) {
var url = 'spec/ol/parser/ogc/xml/wmscapabilities_v1_1_1/gssample.xml';
afterLoadXml(url, function(xml) {
var obj, service;
obj = parser.read(xml);
service = obj.service;
expect('fees' in service).to.not.be();
expect('accessConstraints' in service).to.not.be();
done();
});
});
});
describe('Test requests', function() {
it('Test requests', function(done) {
var url = 'spec/ol/parser/ogc/xml/wmscapabilities_v1_1_1/gssample.xml';
afterLoadXml(url, function(xml) {
var obj, request, exception, userSymbols;
obj = parser.read(xml);
request = obj.capability.request;
exception = obj.capability.exception;
userSymbols = obj.capability.userSymbols;
expect(request).to.be.ok();
expect('getmap' in request).to.be.ok();
expect('getfeatureinfo' in request).to.be.ok();
var formats = ['text/plain', 'text/html', 'application/vnd.ogc.gml'];
expect(request.getfeatureinfo.formats).to.eql(formats);
expect('describelayer' in request).to.be.ok();
expect('getlegendgraphic' in request).to.be.ok();
expect(exception).to.be.ok();
expect(exception.formats).to.eql(['application/vnd.ogc.se_xml']);
expect(userSymbols).to.be.ok();
expect(userSymbols.supportSLD).to.be.ok();
expect(userSymbols.userLayer).to.be.ok();
expect(userSymbols.userStyle).to.be.ok();
expect(userSymbols.remoteWFS).to.be.ok();
done();
});
});
});
describe('test ogc', function() {
it('Test ogc', function(done) {
var url = 'spec/ol/parser/ogc/xml/wmscapabilities_v1_1_1/ogcsample.xml';
afterLoadXml(url, function(xml) {
var obj, capability, attribution, keywords, metadataURLs;
obj = parser.read(xml);
capability = obj.capability;
attribution = capability.layers[2].attribution;
keywords = capability.layers[0].keywords;
metadataURLs = capability.layers[0].metadataURLs;
expect(attribution.title).to.eql('State College University');
expect(attribution.href).to.eql('http://www.university.edu/');
var url = 'http://www.university.edu/icons/logo.gif';
expect(attribution.logo.href).to.eql(url);
expect(attribution.logo.format).to.eql('image/gif');
expect(attribution.logo.width).to.eql('100');
expect(attribution.logo.height).to.eql('100');
expect(keywords.length).to.eql(3);
expect(keywords[0].value).to.eql('road');
expect(metadataURLs.length).to.eql(2);
expect(metadataURLs[0].type).to.eql('FGDC');
expect(metadataURLs[0].format).to.eql('text/plain');
var href = 'http://www.university.edu/metadata/roads.txt';
expect(metadataURLs[0].href).to.eql(href);
expect(Math.round(capability.layers[0].minScale)).to.eql(250000);
expect(Math.round(capability.layers[0].maxScale)).to.eql(1000);
expect(capability.layers[1].minScale).to.be(undefined);
expect(capability.layers[1].maxScale).to.be(undefined);
done();
});
});
});
});
goog.require('ol.parser.ogc.WMSCapabilities');

View File

@@ -0,0 +1,60 @@
goog.provide('ol.test.parser.ogc.WMSCapabilities_v1_1_1_WMSC');
describe('ol.parser.ogc.wmscapabilities_v1_1_1_wmsc', function() {
var parser = new ol.parser.ogc.WMSCapabilities({
profile: 'WMSC',
allowFallback: true
});
describe('test read', function() {
it('Test read', function(done) {
var url = 'spec/ol/parser/ogc/xml/wmscapabilities_v1_1_1_WMSC/wmsc.xml';
afterLoadXml(url, function(xml) {
var obj, tilesets, tileset;
obj = parser.read(xml);
tilesets = obj.capability.vendorSpecific.tileSets;
tileset = tilesets[0];
expect(tilesets.length).to.eql(2);
var bbox = [
-13697515.466796875, 5165920.118906248,
-13619243.94984375, 5244191.635859374
];
expect(tileset.bbox['EPSG:900913'].bbox).to.eql(bbox);
expect(tileset.format).to.eql('image/png');
expect(tileset.height).to.eql(256);
expect(tileset.width).to.eql(256);
expect(tileset.layers).to.eql('medford:hydro');
expect(tileset.srs['EPSG:900913']).to.be.ok();
var resolutions = [156543.03390625, 78271.516953125, 39135.7584765625,
19567.87923828125, 9783.939619140625, 4891.9698095703125,
2445.9849047851562, 1222.9924523925781, 611.4962261962891,
305.74811309814453, 152.87405654907226, 76.43702827453613,
38.218514137268066, 19.109257068634033, 9.554628534317017,
4.777314267158508, 2.388657133579254, 1.194328566789627,
0.5971642833948135, 0.29858214169740677, 0.14929107084870338,
0.07464553542435169, 0.037322767712175846, 0.018661383856087923,
0.009330691928043961, 0.004665345964021981];
expect(tileset.resolutions).to.eql(resolutions);
expect(tileset.styles).to.eql('');
done();
});
});
});
describe('test fallback', function() {
it('Test fallback', function(done) {
var url = 'spec/ol/parser/ogc/xml/wmscapabilities_v1_1_1_WMSC/' +
'fallback.xml';
afterLoadXml(url, function(xml) {
var obj;
obj = parser.read(xml);
expect(obj.capability.layers.length).to.eql(2);
done();
});
});
});
});
goog.require('ol.parser.ogc.WMSCapabilities');

View File

@@ -0,0 +1,141 @@
goog.provide('ol.test.parser.ogc.WMSCapabilities_v1_3_0');
describe('ol.parser.ogc.wmscapabilities_v1_3_0', function() {
var parser = new ol.parser.ogc.WMSCapabilities();
describe('test read exception', function() {
it('Error reported correctly', function(done) {
var url = 'spec/ol/parser/ogc/xml/wmscapabilities_v1_3_0/' +
'exceptionsample.xml';
afterLoadXml(url, function(xml) {
var result;
result = parser.read(xml);
expect(!!result.error).to.be(true);
done();
});
});
});
describe('test read', function() {
it('Test read', function(done) {
var url = 'spec/ol/parser/ogc/xml/wmscapabilities_v1_3_0/ogcsample.xml';
afterLoadXml(url, function(xml) {
var obj, capability, layers = {}, rootlayer, identifiers, authorities;
var featurelist, time, elevation, service, contactinfo, personPrimary,
addr, request, exception, attribution, keywords, metadataURLs;
obj = parser.read(xml);
capability = obj.capability;
for (var i = 0, len = capability.layers.length; i < len; i++) {
if ('name' in capability.layers[i]) {
layers[capability.layers[i].name] = capability.layers[i];
}
}
rootlayer = capability.layers[capability.layers.length - 1];
identifiers = layers['ROADS_RIVERS'].identifiers;
authorities = layers['ROADS_RIVERS'].authorityURLs;
featurelist = layers['ROADS_RIVERS'].featureListURL;
time = layers['Clouds'].dimensions.time;
elevation = layers['Pressure'].dimensions.elevation;
service = obj.service;
contactinfo = service.contactInformation;
personPrimary = contactinfo.personPrimary;
addr = contactinfo.contactAddress;
request = obj.capability.request;
exception = obj.capability.exception;
attribution = capability.layers[2].attribution;
keywords = capability.layers[0].keywords;
metadataURLs = capability.layers[0].metadataURLs;
expect(rootlayer.srs).to.eql({'CRS:84': true});
var srs = {'CRS:84': true, 'EPSG:26986': true};
expect(layers['ROADS_RIVERS'].srs).to.eql(srs);
expect(layers['Temperature'].srs).to.eql({'CRS:84': true});
var infoFormats = ['text/xml', 'text/plain', 'text/html'];
expect(layers['Temperature'].infoFormats).to.eql(infoFormats);
var bbox = layers['ROADS_RIVERS'].bbox['EPSG:26986'];
expect(bbox.bbox).to.eql([189000, 834000, 285000, 962000]);
expect(bbox.res).to.eql({x: 1, y: 1});
bbox = layers['ROADS_RIVERS'].bbox['CRS:84'];
expect(bbox.bbox).to.eql([-71.63, 41.75, -70.78, 42.90]);
expect(bbox.res).to.eql({x: 0.01, y: 0.01});
bbox = layers['ROADS_1M'].bbox['EPSG:26986'];
expect(bbox.bbox).to.eql([189000, 834000, 285000, 962000]);
expect(bbox.res).to.eql({x: 1, y: 1});
expect(identifiers).to.be.ok();
expect('DIF_ID' in identifiers).to.be.ok();
expect(identifiers['DIF_ID']).to.eql('123456');
expect('DIF_ID' in authorities).to.be.ok();
var url = 'http://gcmd.gsfc.nasa.gov/difguide/whatisadif.html';
expect(authorities['DIF_ID']).to.eql(url);
expect(featurelist).to.be.ok();
expect(featurelist.format).to.eql('XML');
url = 'http://www.university.edu/data/roads_rivers.gml';
expect(featurelist.href).to.eql(url);
expect(layers['Pressure'].queryable).to.be.ok();
expect(layers['ozone_image'].queryable).to.not.be();
expect(layers['population'].cascaded).to.eql(1);
expect(layers['ozone_image'].fixedWidth).to.eql(512);
expect(layers['ozone_image'].fixedHeight).to.eql(256);
expect(layers['ozone_image'].opaque).to.be.ok();
expect(layers['ozone_image'].noSubsets).to.be.ok();
expect(time['default']).to.eql('2000-08-22');
expect(time.values.length).to.eql(1);
expect(time.values[0]).to.eql('1999-01-01/2000-08-22/P1D');
expect(elevation.units).to.eql('CRS:88');
expect(elevation['default']).to.eql('0');
expect(elevation.nearestVal).to.be.ok();
expect(elevation.multipleVal).to.not.be();
expect(elevation.values).to.eql(
['0', '1000', '3000', '5000', '10000']);
expect(contactinfo).to.be.ok();
expect(personPrimary).to.be.ok();
expect(personPrimary.person).to.eql('Jeff Smith');
expect(personPrimary.organization).to.eql('NASA');
expect(contactinfo.position).to.eql('Computer Scientist');
expect(addr).to.be.ok();
expect(addr.type).to.eql('postal');
expect(addr.address).to.eql('NASA Goddard Space Flight Center');
expect(addr.city).to.eql('Greenbelt');
expect(addr.stateOrProvince).to.eql('MD');
expect(addr.postcode).to.eql('20771');
expect(addr.country).to.eql('USA');
expect(contactinfo.phone).to.eql('+1 301 555-1212');
expect(contactinfo.email).to.eql('user@host.com');
expect('fees' in service).to.not.be();
expect('accessConstraints' in service).to.not.be();
expect(request).to.be.ok();
expect('getmap' in request).to.be.ok();
expect('getfeatureinfo' in request).to.be.ok();
var formats = ['text/xml', 'text/plain', 'text/html'];
expect(request.getfeatureinfo.formats).to.eql(formats);
expect(exception).to.be.ok();
formats = ['XML', 'INIMAGE', 'BLANK'];
expect(exception.formats).to.eql(formats);
expect(attribution.title).to.eql('State College University');
expect(attribution.href).to.eql('http://www.university.edu/');
url = 'http://www.university.edu/icons/logo.gif';
expect(attribution.logo.href).to.eql(url);
expect(attribution.logo.format).to.eql('image/gif');
expect(attribution.logo.width).to.eql('100');
expect(attribution.logo.height).to.eql('100');
expect(keywords.length).to.eql(3);
expect(keywords[0].value).to.eql('road');
expect(metadataURLs.length).to.eql(2);
expect(metadataURLs[0].type).to.eql('FGDC:1998');
expect(metadataURLs[0].format).to.eql('text/plain');
url = 'http://www.university.edu/metadata/roads.txt';
expect(metadataURLs[0].href).to.eql(url);
var minScale = 250000;
expect(capability.layers[0].minScale).to.eql(minScale.toPrecision(16));
var maxScale = 1000;
expect(capability.layers[0].maxScale).to.eql(maxScale.toPrecision(16));
expect(obj.service.layerLimit).to.eql(16);
expect(obj.service.maxHeight).to.eql(2048);
expect(obj.service.maxWidth).to.eql(2048);
done();
});
});
});
});
goog.require('ol.parser.ogc.WMSCapabilities');

View File

@@ -0,0 +1,159 @@
goog.provide('ol.test.parser.ogc.WMTSCapabilities_v1_0_0');
describe('ol.parser.ogc.wmtscapabilities_v1_0_0', function() {
var parser = new ol.parser.ogc.WMTSCapabilities();
describe('test ows', function() {
it('Test ows', function(done) {
var url = 'spec/ol/parser/ogc/xml/wmtscapabilities_v1_0_0/' +
'ogcsample.xml';
afterLoadXml(url, function(xml) {
var obj = parser.read(xml);
var serviceIdentification = obj.serviceIdentification;
var serviceProvider = obj.serviceProvider;
var operationsMetadata = obj.operationsMetadata;
var contactInfo = serviceProvider.serviceContact.contactInfo;
expect(serviceIdentification.title).to.eql('Web Map Tile Service');
expect(serviceIdentification.serviceTypeVersion).to.eql('1.0.0');
expect(serviceIdentification.serviceType.value).to.eql('OGC WMTS');
expect(serviceProvider.providerName).to.eql('MiraMon');
var url = 'http://www.creaf.uab.es/miramon';
expect(serviceProvider.providerSite).to.eql(url);
var name = 'Joan Maso Pau';
expect(serviceProvider.serviceContact.individualName).to.eql(name);
var position = 'Senior Software Engineer';
expect(serviceProvider.serviceContact.positionName).to.eql(position);
expect(contactInfo.address.administrativeArea).to.eql('Barcelona');
expect(contactInfo.address.city).to.eql('Bellaterra');
expect(contactInfo.address.country).to.eql('Spain');
expect(contactInfo.address.deliveryPoint).to.eql('Fac Ciencies UAB');
var email = 'joan.maso@uab.es';
expect(contactInfo.address.electronicMailAddress).to.eql(email);
expect(contactInfo.address.postalCode).to.eql('08193');
expect(contactInfo.phone.voice).to.eql('+34 93 581 1312');
var dcp = operationsMetadata.GetCapabilities.dcp;
url = 'http://www.miramon.uab.es/cgi-bin/MiraMon5_0.cgi?';
expect(dcp.http.get[0].url).to.eql(url);
dcp = operationsMetadata.GetCapabilities.dcp;
expect(dcp.http.get[0].constraints.GetEncoding.allowedValues).to.eql(
{'KVP': true});
url = 'http://www.miramon.uab.es/cgi-bin/MiraMon5_0.cgi?';
dcp = operationsMetadata.GetFeatureInfo.dcp;
expect(dcp.http.get[0].url).to.eql(url);
dcp = operationsMetadata.GetFeatureInfo.dcp;
expect(dcp.http.get[0].constraints).to.be(undefined);
url = 'http://www.miramon.uab.es/cgi-bin/MiraMon5_0.cgi?';
expect(operationsMetadata.GetTile.dcp.http.get[0].url).to.eql(url);
dcp = operationsMetadata.GetTile.dcp;
expect(dcp.http.get[0].constraints).to.be(undefined);
done();
});
});
});
describe('test layers', function() {
it('Test layers', function(done) {
var url = 'spec/ol/parser/ogc/xml/wmtscapabilities_v1_0_0/' +
'ogcsample.xml';
afterLoadXml(url, function(xml) {
var obj = parser.read(xml);
var contents = obj.contents;
var layer = contents.layers[0];
var wgs84Bbox = layer.bounds;
var dimensions = layer.dimensions;
expect(contents.layers.length).to.eql(1);
expect(layer['abstract']).to.eql('Coastline/shorelines (BA010)');
expect(layer.identifier).to.eql('coastlines');
expect(layer.title).to.eql('Coastlines');
expect(layer.formats.length).to.eql(2);
expect(layer.formats[0]).to.eql('image/png');
expect(layer.formats[1]).to.eql('image/gif');
expect(layer.styles.length).to.eql(2);
expect(layer.styles[0].identifier).to.eql('DarkBlue');
expect(layer.styles[0].isDefault).to.be.ok();
expect(layer.styles[0].title).to.eql('Dark Blue');
var url = 'http://www.miramon.uab.es/wmts/Coastlines/' +
'coastlines_darkBlue.png';
expect(layer.styles[0].legend.href).to.eql(url);
expect(layer.styles[0].legend.format).to.eql('image/png');
expect(layer.styles[1].identifier).to.eql('thickAndRed');
expect(!layer.styles[1].isDefault).to.be.ok();
expect(layer.styles[1].title).to.eql('Thick And Red');
expect(layer.styles[1].legend).to.be(undefined);
expect(layer.tileMatrixSetLinks.length).to.eql(1);
expect(layer.tileMatrixSetLinks[0].tileMatrixSet).to.eql('BigWorld');
expect(wgs84Bbox).to.be.an(Array);
expect(wgs84Bbox[0]).to.eql(-180.0);
expect(wgs84Bbox[1]).to.eql(180.0);
expect(wgs84Bbox[2]).to.eql(-90.0);
expect(wgs84Bbox[3]).to.eql(90.0);
expect(layer.resourceUrls.hasOwnProperty('tile')).to.be.ok();
var format = 'image/png';
expect(layer.resourceUrls.tile.hasOwnProperty(format)).to.be.ok();
expect(layer.resourceUrls.tile[format].length).to.eql(2);
var tpl = 'http://a.example.com/wmts/coastlines/{TileMatrix}/' +
'{TileRow}/{TileCol}.png';
expect(layer.resourceUrls.tile[format][0]).to.eql(tpl);
tpl = 'http://b.example.com/wmts/coastlines/{TileMatrix}/' +
'{TileRow}/{TileCol}.png';
expect(layer.resourceUrls.tile[format][1]).to.eql(tpl);
expect(layer.resourceUrls.hasOwnProperty('FeatureInfo')).to.be.ok();
format = 'application/gml+xml; version=3.1';
expect(layer.resourceUrls.FeatureInfo.hasOwnProperty(format))
.to.be.ok();
expect(layer.resourceUrls.FeatureInfo[format].length).to.eql(1);
tpl = 'http://www.example.com/wmts/coastlines/{TileMatrixSet}/' +
'{TileMatrix}/{TileRow}/{TileCol}/{J}/{I}.xml';
expect(layer.resourceUrls.FeatureInfo[format][0]).to.eql(tpl);
expect(dimensions.length).to.eql(1);
expect(dimensions[0].title).to.eql('Time');
expect(dimensions[0]['abstract']).to.eql('Monthly datasets');
expect(dimensions[0].identifier).to.eql('TIME');
expect(dimensions[0]['default']).to.eql('default');
expect(dimensions[0].values.length).to.eql(3);
expect(dimensions[0].values[0]).to.eql('2007-05');
expect(dimensions[0].values[1]).to.eql('2007-06');
expect(dimensions[0].values[1]).to.eql('2007-06');
expect(dimensions[0].values[2]).to.eql('2007-07');
done();
});
});
});
describe('test tileMatrixSets', function() {
it('Test tileMatrixSets', function(done) {
var url = 'spec/ol/parser/ogc/xml/wmtscapabilities_v1_0_0/' +
'ogcsample.xml';
afterLoadXml(url, function(xml) {
var obj = parser.read(xml);
var tileMatrixSets = obj.contents.tileMatrixSets;
var bigWorld = tileMatrixSets['BigWorld'];
expect(bigWorld).to.not.be(undefined);
expect(bigWorld.identifier).to.eql('BigWorld');
expect(bigWorld.matrixIds.length).to.eql(2);
expect(bigWorld.matrixIds[0].identifier).to.eql('1e6');
expect(bigWorld.matrixIds[0].matrixHeight).to.eql(50000);
expect(bigWorld.matrixIds[0].matrixWidth).to.eql(60000);
expect(bigWorld.matrixIds[0].scaleDenominator).to.eql(1000000);
expect(bigWorld.matrixIds[0].tileWidth).to.eql(256);
expect(bigWorld.matrixIds[0].tileHeight).to.eql(256);
expect(bigWorld.matrixIds[0].topLeftCorner[0]).to.eql(-180);
expect(bigWorld.matrixIds[0].topLeftCorner[1]).to.eql(84);
expect(bigWorld.matrixIds[1].identifier).to.eql('2.5e6');
expect(bigWorld.matrixIds[1].matrixHeight).to.eql(7000);
expect(bigWorld.matrixIds[1].matrixWidth).to.eql(9000);
expect(bigWorld.matrixIds[1].scaleDenominator).to.eql(2500000);
expect(bigWorld.matrixIds[1].tileWidth).to.eql(256);
expect(bigWorld.matrixIds[1].tileHeight).to.eql(256);
expect(bigWorld.matrixIds[1].topLeftCorner[0]).to.eql(-180);
expect(bigWorld.matrixIds[1].topLeftCorner[1]).to.eql(84);
done();
});
});
});
});
goog.require('ol.parser.ogc.WMTSCapabilities');

View File

@@ -0,0 +1,9 @@
<?xml version="1.0" encoding="UTF-8"?>
<ows:ExceptionReport language="en" version="1.0.0"
xsi:schemaLocation="http://www.opengis.net/ows http://schemas.opengis.net/ows/1.0.0/owsExceptionReport.xsd"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:ows="http://www.opengis.net/ows">
<ows:Exception locator="foo" exceptionCode="InvalidParameterValue">
<ows:ExceptionText>Update error: Error occured updating features</ows:ExceptionText>
<ows:ExceptionText>Second exception line</ows:ExceptionText>
</ows:Exception>
</ows:ExceptionReport>

View File

@@ -0,0 +1,9 @@
<?xml version="1.0" encoding="UTF-8"?>
<ows:ExceptionReport xml:lang="en" version="1.1.0"
xsi:schemaLocation="http://www.opengis.net/ows http://schemas.opengis.net/ows/1.1.0/owsExceptionReport.xsd"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:ows="http://www.opengis.net/ows/1.1">
<ows:Exception locator="foo" exceptionCode="InvalidParameterValue">
<ows:ExceptionText>Update error: Error occured updating features</ows:ExceptionText>
<ows:ExceptionText>Second exception line</ows:ExceptionText>
</ows:Exception>
</ows:ExceptionReport>

View File

@@ -0,0 +1,16 @@
<?xml version="1.0" encoding="UTF-8"?>
<ServiceExceptionReport version="1.3.0" xmlns="http://www.opengis.net/ogc"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://www.opengis.net/ogc
http://schemas.opengis.net/wms/1.3.0/exceptions_1_3_0.xsd">
<ServiceException> Plain text message about an error. </ServiceException>
<ServiceException code="InvalidUpdateSequence"> Another error message, this one with a service exception code supplied. </ServiceException>
<ServiceException>
<![CDATA[ Error in module <foo.c>, line 42
A message that includes angle brackets in text must be enclosed in a Character Data Section as in this example. All XML-like markup is ignored except for this sequence of three closing characters:' +
]]>
</ServiceException>
<ServiceException>
<![CDATA[ <Module>foo.c</Module> <Error>An error occurred</Error> <Explanation>Similarly, actual XML can be enclosed in a CDATA section. A generic parser will ignore that XML, but application-specific software may choose to process it.</Explanation> ]]>
</ServiceException>
</ServiceExceptionReport>

View File

@@ -0,0 +1,23 @@
<ogc:Filter xmlns:ogc="http://www.opengis.net/ogc">
<ogc:Or>
<ogc:PropertyIsBetween>
<ogc:PropertyName>number</ogc:PropertyName>
<ogc:LowerBoundary>
<ogc:Literal>1064866676</ogc:Literal>
</ogc:LowerBoundary>
<ogc:UpperBoundary>
<ogc:Literal>1065512599</ogc:Literal>
</ogc:UpperBoundary>
</ogc:PropertyIsBetween>
<ogc:PropertyIsLike wildCard="*" singleChar="." escape="!">
<ogc:PropertyName>cat</ogc:PropertyName>
<ogc:Literal>*dog.food!*good</ogc:Literal>
</ogc:PropertyIsLike>
<ogc:Not>
<ogc:PropertyIsLessThanOrEqualTo>
<ogc:PropertyName>FOO</ogc:PropertyName>
<ogc:Literal>5000</ogc:Literal>
</ogc:PropertyIsLessThanOrEqualTo>
</ogc:Not>
</ogc:Or>
</ogc:Filter>

View File

@@ -0,0 +1,8 @@
<ogc:Filter xmlns:ogc="http://www.opengis.net/ogc" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.opengis.net/ogc http://schemas.opengis.net/filter/1.0.0/filter.xsd">
<ogc:BBOX>
<ogc:PropertyName>the_geom</ogc:PropertyName>
<gml:Box xmlns:gml="http://www.opengis.net/gml" srsName="EPSG:4326">
<gml:coordinates decimal="." cs="," ts=" ">-180,-90 180,90</gml:coordinates>
</gml:Box>
</ogc:BBOX>
</ogc:Filter>

View File

@@ -0,0 +1,7 @@
<ogc:Filter xmlns:ogc="http://www.opengis.net/ogc" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.opengis.net/ogc http://schemas.opengis.net/filter/1.0.0/filter.xsd">
<ogc:BBOX>
<gml:Box xmlns:gml="http://www.opengis.net/gml" srsName="EPSG:4326">
<gml:coordinates decimal="." cs="," ts=" ">-180,-90 180,90</gml:coordinates>
</gml:Box>
</ogc:BBOX>
</ogc:Filter>

View File

@@ -0,0 +1,11 @@
<ogc:Filter xmlns:ogc="http://www.opengis.net/ogc" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.opengis.net/ogc http://schemas.opengis.net/filter/1.0.0/filter.xsd">
<ogc:PropertyIsBetween>
<ogc:PropertyName>number</ogc:PropertyName>
<ogc:LowerBoundary>
<ogc:Literal>0</ogc:Literal>
</ogc:LowerBoundary>
<ogc:UpperBoundary>
<ogc:Literal>100</ogc:Literal>
</ogc:UpperBoundary>
</ogc:PropertyIsBetween>
</ogc:Filter>

View File

@@ -0,0 +1,7 @@
<ogc:Filter xmlns:ogc="http://www.opengis.net/ogc">
<ogc:PropertyIsBetween>
<ogc:PropertyName>number</ogc:PropertyName>
<ogc:LowerBoundary>0</ogc:LowerBoundary>
<ogc:UpperBoundary>100</ogc:UpperBoundary>
</ogc:PropertyIsBetween>
</ogc:Filter>

View File

@@ -0,0 +1,12 @@
<Filter xmlns="http://www.opengis.net/ogc" xsi:schemaLocation="http://www.opengis.net/ogc http://schemas.opengis.net/filter/1.0.0/filter.xsd" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
<Contains>
<PropertyName>Geometry</PropertyName>
<gml:Polygon xmlns:gml="http://www.opengis.net/gml">
<gml:outerBoundaryIs>
<gml:LinearRing>
<gml:coordinates decimal="." cs="," ts=" ">2488789,289552 2588789,289552 2588789,389552 2488789,389552 2488789,289552</gml:coordinates>
</gml:LinearRing>
</gml:outerBoundaryIs>
</gml:Polygon>
</Contains>
</Filter>

View File

@@ -0,0 +1,9 @@
<Filter xmlns="http://www.opengis.net/ogc" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.opengis.net/ogc http://schemas.opengis.net/filter/1.0.0/filter.xsd">
<DWithin>
<PropertyName>Geometry</PropertyName>
<gml:Point xmlns:gml="http://www.opengis.net/gml">
<gml:coordinates decimal="." cs="," ts=" ">2488789,289552</gml:coordinates>
</gml:Point>
<Distance units="m">1000</Distance>
</DWithin>
</Filter>

View File

@@ -0,0 +1,12 @@
<Filter xmlns="http://www.opengis.net/ogc" xsi:schemaLocation="http://www.opengis.net/ogc http://schemas.opengis.net/filter/1.0.0/filter.xsd" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
<Intersects>
<PropertyName>Geometry</PropertyName>
<gml:Polygon xmlns:gml="http://www.opengis.net/gml">
<gml:outerBoundaryIs>
<gml:LinearRing>
<gml:coordinates decimal="." cs="," ts=" ">2488789,289552 2588789,289552 2588789,389552 2488789,389552 2488789,289552</gml:coordinates>
</gml:LinearRing>
</gml:outerBoundaryIs>
</gml:Polygon>
</Intersects>
</Filter>

View File

@@ -0,0 +1,10 @@
<ogc:Filter xmlns:ogc="http://www.opengis.net/ogc" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.opengis.net/ogc http://schemas.opengis.net/filter/1.0.0/filter.xsd">
<ogc:Or>
<ogc:PropertyIsLike wildCard="*" singleChar="." escape="!">
<ogc:PropertyName>person</ogc:PropertyName>
<ogc:Literal>me</ogc:Literal>
</ogc:PropertyIsLike>
<ogc:FeatureId fid="foo.1"/>
<ogc:FeatureId fid="foo.2"/>
</ogc:Or>
</ogc:Filter>

View File

@@ -0,0 +1,10 @@
<ogc:Filter xmlns:ogc="http://www.opengis.net/ogc" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.opengis.net/ogc http://schemas.opengis.net/filter/1.0.0/filter.xsd">
<ogc:And>
<ogc:PropertyIsLike wildCard="*" singleChar="." escape="!">
<ogc:PropertyName>person</ogc:PropertyName>
<ogc:Literal>me</ogc:Literal>
</ogc:PropertyIsLike>
<ogc:FeatureId fid="foo.1"/>
<ogc:FeatureId fid="foo.2"/>
</ogc:And>
</ogc:Filter>

View File

@@ -0,0 +1,5 @@
<ogc:Filter xmlns:ogc="http://www.opengis.net/ogc" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.opengis.net/ogc http://schemas.opengis.net/filter/1.0.0/filter.xsd">
<ogc:Not>
<ogc:FeatureId fid="foo.2"/>
</ogc:Not>
</ogc:Filter>

View File

@@ -0,0 +1,5 @@
<ogc:Filter xmlns:ogc="http://www.opengis.net/ogc" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.opengis.net/ogc http://schemas.opengis.net/filter/1.0.0/filter.xsd">
<ogc:PropertyIsNull>
<ogc:PropertyName>prop</ogc:PropertyName>
</ogc:PropertyIsNull>
</ogc:Filter>

View File

@@ -0,0 +1,12 @@
<Filter xmlns="http://www.opengis.net/ogc" xsi:schemaLocation="http://www.opengis.net/ogc http://schemas.opengis.net/filter/1.0.0/filter.xsd" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
<Within>
<PropertyName>Geometry</PropertyName>
<gml:Polygon xmlns:gml="http://www.opengis.net/gml">
<gml:outerBoundaryIs>
<gml:LinearRing>
<gml:coordinates decimal="." cs="," ts=" ">2488789,289552 2588789,289552 2588789,389552 2488789,389552 2488789,289552</gml:coordinates>
</gml:LinearRing>
</gml:outerBoundaryIs>
</gml:Polygon>
</Within>
</Filter>

View File

@@ -0,0 +1,9 @@
<ogc:Filter xmlns:ogc="http://www.opengis.net/ogc" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.opengis.net/ogc http://schemas.opengis.net/filter/1.1.0/filter.xsd">
<ogc:BBOX>
<ogc:PropertyName>the_geom</ogc:PropertyName>
<gml:Envelope xmlns:gml="http://www.opengis.net/gml" srsName="EPSG:4326">
<gml:lowerCorner>-180 -90</gml:lowerCorner>
<gml:upperCorner>180 90</gml:upperCorner>
</gml:Envelope>
</ogc:BBOX>
</ogc:Filter>

View File

@@ -0,0 +1,8 @@
<ogc:Filter xmlns:ogc="http://www.opengis.net/ogc" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.opengis.net/ogc http://schemas.opengis.net/filter/1.1.0/filter.xsd">
<ogc:BBOX>
<gml:Envelope xmlns:gml="http://www.opengis.net/gml" srsName="EPSG:4326">
<gml:lowerCorner>-180 -90</gml:lowerCorner>
<gml:upperCorner>180 90</gml:upperCorner>
</gml:Envelope>
</ogc:BBOX>
</ogc:Filter>

View File

@@ -0,0 +1,11 @@
<ogc:Filter xmlns:ogc="http://www.opengis.net/ogc" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.opengis.net/ogc http://schemas.opengis.net/filter/1.1.0/filter.xsd">
<ogc:And>
<ogc:PropertyIsNotEqualTo matchCase="false">
<ogc:PropertyName>FOO</ogc:PropertyName>
<ogc:Function name="customFunction">
<ogc:Literal>param1</ogc:Literal>
<ogc:Literal>param2</ogc:Literal>
</ogc:Function>
</ogc:PropertyIsNotEqualTo>
</ogc:And>
</ogc:Filter>

View File

@@ -0,0 +1,10 @@
<ogc:Filter xmlns:ogc="http://www.opengis.net/ogc" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.opengis.net/ogc http://schemas.opengis.net/filter/1.1.0/filter.xsd">
<ogc:Intersects>
<ogc:PropertyName>the_geom</ogc:PropertyName>
<ogc:Function name="querySingle">
<ogc:Literal>sf:restricted</ogc:Literal>
<ogc:Literal>the_geom</ogc:Literal>
<ogc:Literal>cat=3</ogc:Literal>
</ogc:Function>
</ogc:Intersects>
</ogc:Filter>

View File

@@ -0,0 +1,9 @@
<Filter xmlns="http://www.opengis.net/ogc" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.opengis.net/ogc http://schemas.opengis.net/filter/1.1.0/filter.xsd">
<Intersects>
<PropertyName>Geometry</PropertyName>
<gml:Envelope xmlns:gml="http://www.opengis.net/gml" srsName="EPSG:4326">
<gml:lowerCorner>-180 -90</gml:lowerCorner>
<gml:upperCorner>180 90</gml:upperCorner>
</gml:Envelope>
</Intersects>
</Filter>

View File

@@ -0,0 +1,6 @@
<ogc:Filter xmlns:ogc="http://www.opengis.net/ogc" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.opengis.net/ogc http://schemas.opengis.net/filter/1.1.0/filter.xsd">
<ogc:PropertyIsLike wildCard="*" singleChar="." escapeChar="!" matchCase="false">
<ogc:PropertyName>person</ogc:PropertyName>
<ogc:Literal>*me*</ogc:Literal>
</ogc:PropertyIsLike>
</ogc:Filter>

View File

@@ -0,0 +1,13 @@
<ogc:Filter xmlns:ogc="http://www.opengis.net/ogc" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.opengis.net/ogc http://schemas.opengis.net/filter/1.1.0/filter.xsd">
<ogc:DWithin>
<ogc:PropertyName>the_geom</ogc:PropertyName>
<ogc:Function name="collectGeometries">
<ogc:Function name="queryCollection">
<ogc:Literal>sf:roads</ogc:Literal>
<ogc:Literal>the_geom</ogc:Literal>
<ogc:Literal>INCLUDE</ogc:Literal>
</ogc:Function>
</ogc:Function>
<ogc:Distance units="meters">200</ogc:Distance>
</ogc:DWithin>
</ogc:Filter>

View File

@@ -0,0 +1,10 @@
<ogc:SortBy xmlns:ogc="http://www.opengis.net/ogc">
<ogc:SortProperty>
<ogc:PropertyName>Title</ogc:PropertyName>
<ogc:SortOrder>ASC</ogc:SortOrder>
</ogc:SortProperty>
<ogc:SortProperty>
<ogc:PropertyName>Relevance</ogc:PropertyName>
<ogc:SortOrder>DESC</ogc:SortOrder>
</ogc:SortProperty>
</ogc:SortBy>

View File

@@ -0,0 +1,31 @@
<ogc:Filter xmlns:ogc="http://www.opengis.net/ogc" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.opengis.net/ogc http://schemas.opengis.net/filter/1.1.0/filter.xsd">
<ogc:Or>
<ogc:PropertyIsBetween>
<ogc:PropertyName>number</ogc:PropertyName>
<ogc:LowerBoundary>
<ogc:Literal>1064866676</ogc:Literal>
</ogc:LowerBoundary>
<ogc:UpperBoundary>
<ogc:Literal>1065512599</ogc:Literal>
</ogc:UpperBoundary>
</ogc:PropertyIsBetween>
<ogc:PropertyIsLike wildCard="*" singleChar="." escapeChar="!">
<ogc:PropertyName>cat</ogc:PropertyName>
<ogc:Literal>*dog.food!*good</ogc:Literal>
</ogc:PropertyIsLike>
<ogc:Not>
<ogc:PropertyIsLessThanOrEqualTo>
<ogc:PropertyName>FOO</ogc:PropertyName>
<ogc:Literal>5000</ogc:Literal>
</ogc:PropertyIsLessThanOrEqualTo>
</ogc:Not>
<ogc:PropertyIsEqualTo>
<ogc:PropertyName>cat</ogc:PropertyName>
<ogc:Literal>dog</ogc:Literal>
</ogc:PropertyIsEqualTo>
<ogc:PropertyIsEqualTo matchCase="false">
<ogc:PropertyName>cat</ogc:PropertyName>
<ogc:Literal>dog</ogc:Literal>
</ogc:PropertyIsEqualTo>
</ogc:Or>
</ogc:Filter>

File diff suppressed because one or more lines are too long

View File

@@ -0,0 +1,10 @@
<gml:Box xmlns:gml="http://www.opengis.net/gml" srsName="foo">
<gml:coord>
<gml:X>1</gml:X>
<gml:Y>2</gml:Y>
</gml:coord>
<gml:coord>
<gml:X>3</gml:X>
<gml:Y>4</gml:Y>
</gml:coord>
</gml:Box>

View File

@@ -0,0 +1,3 @@
<gml:Box xmlns:gml="http://www.opengis.net/gml" srsName="foo">
<gml:coordinates decimal="." cs="," ts=" ">1,2 3,4</gml:coordinates>
</gml:Box>

View File

@@ -0,0 +1,31 @@
<gml:GeometryCollection xmlns:gml="http://www.opengis.net/gml" srsName="foo">
<gml:geometryMember>
<gml:Point srsName="foo">
<gml:coordinates decimal="." cs="," ts=" ">1,2</gml:coordinates>
</gml:Point>
</gml:geometryMember>
<gml:geometryMember>
<gml:LineString srsName="foo">
<gml:coordinates decimal="." cs="," ts=" ">1,2 3,4</gml:coordinates>
</gml:LineString>
</gml:geometryMember>
<gml:geometryMember>
<gml:Polygon srsName="foo">
<gml:outerBoundaryIs>
<gml:LinearRing>
<gml:coordinates decimal="." cs="," ts=" ">1,2 3,2 3,4 1,2</gml:coordinates>
</gml:LinearRing>
</gml:outerBoundaryIs>
<gml:innerBoundaryIs>
<gml:LinearRing>
<gml:coordinates decimal="." cs="," ts=" ">2,3 2,5 4,5 2,3</gml:coordinates>
</gml:LinearRing>
</gml:innerBoundaryIs>
<gml:innerBoundaryIs>
<gml:LinearRing>
<gml:coordinates decimal="." cs="," ts=" ">3,4 3,6 5,6 3,4</gml:coordinates>
</gml:LinearRing>
</gml:innerBoundaryIs>
</gml:Polygon>
</gml:geometryMember>
</gml:GeometryCollection>

View File

@@ -0,0 +1,18 @@
<gml:LinearRing xmlns:gml="http://www.opengis.net/gml" srsName="foo">
<gml:coord>
<gml:X>1</gml:X>
<gml:Y>2</gml:Y>
</gml:coord>
<gml:coord>
<gml:X>3</gml:X>
<gml:Y>4</gml:Y>
</gml:coord>
<gml:coord>
<gml:X>5</gml:X>
<gml:Y>6</gml:Y>
</gml:coord>
<gml:coord>
<gml:X>1</gml:X>
<gml:Y>2</gml:Y>
</gml:coord>
</gml:LinearRing>

View File

@@ -0,0 +1,3 @@
<gml:LinearRing xmlns:gml="http://www.opengis.net/gml" srsName="foo">
<gml:coordinates decimal="." cs="," ts=" ">1,2 3,4 5,6 1,2</gml:coordinates>
</gml:LinearRing>

View File

@@ -0,0 +1,10 @@
<gml:LineString xmlns:gml="http://www.opengis.net/gml" srsName="foo">
<gml:coord>
<gml:X>1</gml:X>
<gml:Y>2</gml:Y>
</gml:coord>
<gml:coord>
<gml:X>3</gml:X>
<gml:Y>4</gml:Y>
</gml:coord>
</gml:LineString>

View File

@@ -0,0 +1,3 @@
<gml:LineString xmlns:gml="http://www.opengis.net/gml" srsName="foo">
<gml:coordinates decimal="." cs="," ts=" ">1,2 3,4</gml:coordinates>
</gml:LineString>

View File

@@ -0,0 +1,26 @@
<gml:MultiLineString xmlns:gml="http://www.opengis.net/gml" srsName="foo">
<gml:lineStringMember>
<gml:LineString>
<gml:coord>
<gml:X>1</gml:X>
<gml:Y>2</gml:Y>
</gml:coord>
<gml:coord>
<gml:X>2</gml:X>
<gml:Y>3</gml:Y>
</gml:coord>
</gml:LineString>
</gml:lineStringMember>
<gml:lineStringMember>
<gml:LineString>
<gml:coord>
<gml:X>3</gml:X>
<gml:Y>4</gml:Y>
</gml:coord>
<gml:coord>
<gml:X>4</gml:X>
<gml:Y>5</gml:Y>
</gml:coord>
</gml:LineString>
</gml:lineStringMember>
</gml:MultiLineString>

View File

@@ -0,0 +1,12 @@
<gml:MultiLineString xmlns:gml="http://www.opengis.net/gml" srsName="foo">
<gml:lineStringMember>
<gml:LineString>
<gml:coordinates decimal="." cs="," ts=" ">1,2 2,3</gml:coordinates>
</gml:LineString>
</gml:lineStringMember>
<gml:lineStringMember>
<gml:LineString>
<gml:coordinates decimal="." cs="," ts=" ">3,4 4,5</gml:coordinates>
</gml:LineString>
</gml:lineStringMember>
</gml:MultiLineString>

View File

@@ -0,0 +1 @@
<?xml version='1.0' encoding="ISO-8859-1" ?><wfs:FeatureCollection xmlns:rws="http://mapserver.gis.umn.edu/mapserver" xmlns:wfs="http://www.opengis.net/wfs" xmlns:gml="http://www.opengis.net/gml" xmlns:ogc="http://www.opengis.net/ogc" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.opengis.net/wfs http://schemas.opengis.net/wfs/1.0.0/WFS-basic.xsd http://mapserver.gis.umn.edu/mapserver http://intranet.rijkswaterstaat.nl/services/geoservices/kerngisnat_utre?SERVICE=WFS&amp;VERSION=1.0.0&amp;REQUEST=DescribeFeatureType&amp;TYPENAME=VKUNSTWERK,LKUNSTWERK,PKUNSTWERK&amp;OUTPUTFORMAT=XMLSCHEMA"> <gml:boundedBy> <gml:Box srsName="EPSG:28992"> <gml:coordinates>134503.789000,455332.337000 135149.909000,455893.926000</gml:coordinates> </gml:Box> </gml:boundedBy> <gml:featureMember> <rws:VKUNSTWERK fid="VKUNSTWERK.16"> <gml:boundedBy> <gml:Box srsName="EPSG:28992"> <gml:coordinates>134949.571000,455438.845000 134978.799000,455471.762000</gml:coordinates> </gml:Box> </gml:boundedBy> <rws:geometry> <gml:MultiPolygon srsName="EPSG:28992"> <gml:polygonMember> <gml:Polygon> <gml:outerBoundaryIs> <gml:LinearRing> <gml:coordinates>134974.191000,455471.587000 134973.974000,455471.762000 134973.558000,455471.248000 134973.579000,455471.230000 134963.143000,455458.768000 134962.787000,455458.653000 134960.514000,455456.003000 134960.440000,455455.539000 134950.207000,455443.320000 134950.158000,455443.360000 134949.571000,455442.638000 134949.810000,455442.462000 134951.417000,455441.223000 134951.435000,455441.209000 134954.158000,455439.108000 134954.507000,455438.845000 134955.000000,455439.420000 134954.954000,455439.458000 134965.046000,455451.520000 134965.568000,455451.606000 134968.159000,455454.642000 134968.120000,455455.195000 134978.294000,455467.355000 134978.330000,455467.326000 134978.799000,455467.881000 134978.598000,455468.042000 134975.885000,455470.224000 134974.191000,455471.587000 </gml:coordinates> </gml:LinearRing> </gml:outerBoundaryIs> <gml:innerBoundaryIs> <gml:LinearRing> <gml:coordinates>134960.590000,455455.163000 134963.589000,455458.755000 134973.756000,455470.929000 134973.836000,455471.019000 134974.216000,455471.445000 134975.807000,455470.163000 134978.485000,455468.005000 134978.077000,455467.534000 134978.015000,455467.462000 134967.969000,455455.479000 134964.782000,455451.678000 134954.705000,455439.660000 134954.622000,455439.561000 134954.271000,455439.152000 134951.498000,455441.284000 134949.973000,455442.456000 134950.452000,455443.023000 134950.501000,455443.081000 134960.590000,455455.163000 </gml:coordinates> </gml:LinearRing> </gml:innerBoundaryIs> </gml:Polygon> </gml:polygonMember> </gml:MultiPolygon> </rws:geometry> <rws:OBJECTID>16</rws:OBJECTID> <rws:OBJECTSUBCATEGORIE>31</rws:OBJECTSUBCATEGORIE> </rws:VKUNSTWERK> </gml:featureMember> <gml:featureMember> <rws:LKUNSTWERK fid="LKUNSTWERK.14"> <gml:boundedBy> <gml:Box srsName="EPSG:28992"> <gml:coordinates>135080.966000,455332.337000 135149.909000,455390.384000</gml:coordinates> </gml:Box> </gml:boundedBy> <rws:geometry> <gml:MultiLineString srsName="EPSG:28992"> <gml:lineStringMember> <gml:LineString> <gml:coordinates>135080.966000,455390.384000 135096.654000,455377.009000 135109.082000,455366.755000 135122.769000,455355.276000 135141.565000,455339.633000 135149.909000,455332.337000 </gml:coordinates> </gml:LineString> </gml:lineStringMember> </gml:MultiLineString> </rws:geometry> <rws:OBJECTID>14</rws:OBJECTID> <rws:OBJECTSUBCATEGORIE>30</rws:OBJECTSUBCATEGORIE> </rws:LKUNSTWERK> </gml:featureMember> <gml:featureMember> <rws:PKUNSTWERK fid="PKUNSTWERK.29"> <gml:boundedBy> <gml:Box srsName="EPSG:28992"> <gml:coordinates>134832.017000,455596.187000 134832.017000,455596.187000</gml:coordinates> </gml:Box> </gml:boundedBy> <rws:geometry> <gml:MultiPoint srsName="EPSG:28992"> <gml:pointMember> <gml:Point> <gml:coordinates>134832.017000,455596.187000</gml:coordinates> </gml:Point> </gml:pointMember> </gml:MultiPoint> </rws:geometry> <rws:OBJECTID>29</rws:OBJECTID> <rws:OBJECTSUBCATEGORIE>30</rws:OBJECTSUBCATEGORIE> </rws:PKUNSTWERK> </gml:featureMember></wfs:FeatureCollection>

View File

@@ -0,0 +1,26 @@
<gml:MultiPoint xmlns:gml="http://www.opengis.net/gml" srsName="foo">
<gml:pointMember>
<gml:Point>
<gml:coord>
<gml:X>1</gml:X>
<gml:Y>2</gml:Y>
</gml:coord>
</gml:Point>
</gml:pointMember>
<gml:pointMember>
<gml:Point>
<gml:coord>
<gml:X>2</gml:X>
<gml:Y>3</gml:Y>
</gml:coord>
</gml:Point>
</gml:pointMember>
<gml:pointMember>
<gml:Point>
<gml:coord>
<gml:X>3</gml:X>
<gml:Y>4</gml:Y>
</gml:coord>
</gml:Point>
</gml:pointMember>
</gml:MultiPoint>

View File

@@ -0,0 +1,17 @@
<gml:MultiPoint xmlns:gml="http://www.opengis.net/gml" srsName="foo">
<gml:pointMember>
<gml:Point>
<gml:coordinates decimal="." cs="," ts=" ">1,2</gml:coordinates>
</gml:Point>
</gml:pointMember>
<gml:pointMember>
<gml:Point>
<gml:coordinates decimal="." cs="," ts=" ">2,3</gml:coordinates>
</gml:Point>
</gml:pointMember>
<gml:pointMember>
<gml:Point>
<gml:coordinates decimal="." cs="," ts=" ">3,4</gml:coordinates>
</gml:Point>
</gml:pointMember>
</gml:MultiPoint>

View File

@@ -0,0 +1,90 @@
<gml:MultiPolygon xmlns:gml="http://www.opengis.net/gml" srsName="foo">
<gml:polygonMember>
<gml:Polygon>
<gml:outerBoundaryIs>
<gml:LinearRing>
<gml:coord>
<gml:X>1</gml:X>
<gml:Y>2</gml:Y>
</gml:coord>
<gml:coord>
<gml:X>3</gml:X>
<gml:Y>2</gml:Y>
</gml:coord>
<gml:coord>
<gml:X>3</gml:X>
<gml:Y>4</gml:Y>
</gml:coord>
<gml:coord>
<gml:X>1</gml:X>
<gml:Y>2</gml:Y>
</gml:coord>
</gml:LinearRing>
</gml:outerBoundaryIs>
<gml:innerBoundaryIs>
<gml:LinearRing>
<gml:coord>
<gml:X>2</gml:X>
<gml:Y>3</gml:Y>
</gml:coord>
<gml:coord>
<gml:X>2</gml:X>
<gml:Y>5</gml:Y>
</gml:coord>
<gml:coord>
<gml:X>4</gml:X>
<gml:Y>5</gml:Y>
</gml:coord>
<gml:coord>
<gml:X>2</gml:X>
<gml:Y>3</gml:Y>
</gml:coord>
</gml:LinearRing>
</gml:innerBoundaryIs>
<gml:innerBoundaryIs>
<gml:LinearRing>
<gml:coord>
<gml:X>3</gml:X>
<gml:Y>4</gml:Y>
</gml:coord>
<gml:coord>
<gml:X>3</gml:X>
<gml:Y>6</gml:Y>
</gml:coord>
<gml:coord>
<gml:X>5</gml:X>
<gml:Y>6</gml:Y>
</gml:coord>
<gml:coord>
<gml:X>3</gml:X>
<gml:Y>4</gml:Y>
</gml:coord>
</gml:LinearRing>
</gml:innerBoundaryIs>
</gml:Polygon>
</gml:polygonMember>
<gml:polygonMember>
<gml:Polygon>
<gml:outerBoundaryIs>
<gml:LinearRing>
<gml:coord>
<gml:X>1</gml:X>
<gml:Y>2</gml:Y>
</gml:coord>
<gml:coord>
<gml:X>3</gml:X>
<gml:Y>2</gml:Y>
</gml:coord>
<gml:coord>
<gml:X>3</gml:X>
<gml:Y>4</gml:Y>
</gml:coord>
<gml:coord>
<gml:X>1</gml:X>
<gml:Y>2</gml:Y>
</gml:coord>
</gml:LinearRing>
</gml:outerBoundaryIs>
</gml:Polygon>
</gml:polygonMember>
</gml:MultiPolygon>

View File

@@ -0,0 +1,30 @@
<gml:MultiPolygon xmlns:gml="http://www.opengis.net/gml" srsName="foo">
<gml:polygonMember>
<gml:Polygon>
<gml:outerBoundaryIs>
<gml:LinearRing>
<gml:coordinates decimal="." cs="," ts=" ">1,2 3,2 3,4 1,2</gml:coordinates>
</gml:LinearRing>
</gml:outerBoundaryIs>
<gml:innerBoundaryIs>
<gml:LinearRing>
<gml:coordinates decimal="." cs="," ts=" ">2,3 2,5 4,5 2,3</gml:coordinates>
</gml:LinearRing>
</gml:innerBoundaryIs>
<gml:innerBoundaryIs>
<gml:LinearRing>
<gml:coordinates decimal="." cs="," ts=" ">3,4 3,6 5,6 3,4</gml:coordinates>
</gml:LinearRing>
</gml:innerBoundaryIs>
</gml:Polygon>
</gml:polygonMember>
<gml:polygonMember>
<gml:Polygon>
<gml:outerBoundaryIs>
<gml:LinearRing>
<gml:coordinates decimal="." cs="," ts=" ">1,2 3,2 3,4 1,2</gml:coordinates>
</gml:LinearRing>
</gml:outerBoundaryIs>
</gml:Polygon>
</gml:polygonMember>
</gml:MultiPolygon>

View File

@@ -0,0 +1 @@
<?xml version="1.0" encoding="UTF-8"?><wfs:FeatureCollection xmlns="http://www.opengis.net/wfs" xmlns:wfs="http://www.opengis.net/wfs" xmlns:gml="http://www.opengis.net/gml" xmlns:loc="http://server.fr/geoserver/loc" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.opengis.net/wfs http://server.fr:80/geoserver/schemas/wfs/1.0.0/WFS-basic.xsd http://server.fr/geoserver/loc http://server.fr:80/geoserver/wfs?service=WFS&amp;version=1.0.0&amp;request=DescribeFeatureType&amp;typeName=loc:DEPARTEMENT"><gml:boundedBy><gml:Box srsName="http://www.opengis.net/gml/srs/epsg.xml#2154"><gml:coordinates xmlns:gml="http://www.opengis.net/gml" decimal="." cs="," ts=" ">199373,6704170 337568,6885985</gml:coordinates></gml:Box></gml:boundedBy><gml:featureMember><loc:DEPARTEMENT fid="DEPARTEMENT.1"><gml:boundedBy><gml:Box srsName="http://www.opengis.net/gml/srs/epsg.xml#2154"><gml:coordinates xmlns:gml="http://www.opengis.net/gml" decimal="." cs="," ts=" ">209565,6785323 337568,6885985</gml:coordinates></gml:Box></gml:boundedBy><loc:NOM_DEPT>COTES-D'ARMOR</loc:NOM_DEPT></loc:DEPARTEMENT></gml:featureMember><gml:featureMember><loc:DEPARTEMENT fid="DEPARTEMENT.3"><gml:boundedBy><gml:Box srsName="http://www.opengis.net/gml/srs/epsg.xml#2154"><gml:coordinates xmlns:gml="http://www.opengis.net/gml" decimal="." cs="," ts=" ">199373,6704170 323518,6807542</gml:coordinates></gml:Box></gml:boundedBy><loc:NOM_DEPT>MORBIHAN</loc:NOM_DEPT></loc:DEPARTEMENT></gml:featureMember></wfs:FeatureCollection>

View File

@@ -0,0 +1,6 @@
<gml:Point xmlns:gml="http://www.opengis.net/gml" srsName="FOO">
<gml:coord>
<gml:X>1</gml:X>
<gml:Y>2</gml:Y>
</gml:coord>
</gml:Point>

View File

@@ -0,0 +1,3 @@
<gml:Point xmlns:gml="http://www.opengis.net/gml" srsName="foo">
<gml:coordinates decimal="." cs="," ts=" ">1,2</gml:coordinates>
</gml:Point>

View File

@@ -0,0 +1,62 @@
<gml:Polygon xmlns:gml="http://www.opengis.net/gml" srsName="foo">
<gml:outerBoundaryIs>
<gml:LinearRing>
<gml:coord>
<gml:X>1</gml:X>
<gml:Y>2</gml:Y>
</gml:coord>
<gml:coord>
<gml:X>3</gml:X>
<gml:Y>4</gml:Y>
</gml:coord>
<gml:coord>
<gml:X>5</gml:X>
<gml:Y>6</gml:Y>
</gml:coord>
<gml:coord>
<gml:X>1</gml:X>
<gml:Y>2</gml:Y>
</gml:coord>
</gml:LinearRing>
</gml:outerBoundaryIs>
<gml:innerBoundaryIs>
<gml:LinearRing>
<gml:coord>
<gml:X>2</gml:X>
<gml:Y>3</gml:Y>
</gml:coord>
<gml:coord>
<gml:X>4</gml:X>
<gml:Y>5</gml:Y>
</gml:coord>
<gml:coord>
<gml:X>6</gml:X>
<gml:Y>7</gml:Y>
</gml:coord>
<gml:coord>
<gml:X>2</gml:X>
<gml:Y>3</gml:Y>
</gml:coord>
</gml:LinearRing>
</gml:innerBoundaryIs>
<gml:innerBoundaryIs>
<gml:LinearRing>
<gml:coord>
<gml:X>3</gml:X>
<gml:Y>4</gml:Y>
</gml:coord>
<gml:coord>
<gml:X>5</gml:X>
<gml:Y>6</gml:Y>
</gml:coord>
<gml:coord>
<gml:X>7</gml:X>
<gml:Y>8</gml:Y>
</gml:coord>
<gml:coord>
<gml:X>3</gml:X>
<gml:Y>4</gml:Y>
</gml:coord>
</gml:LinearRing>
</gml:innerBoundaryIs>
</gml:Polygon>

View File

@@ -0,0 +1,17 @@
<gml:Polygon xmlns:gml="http://www.opengis.net/gml" srsName="foo">
<gml:outerBoundaryIs>
<gml:LinearRing>
<gml:coordinates decimal="." cs="," ts=" ">1,2 5,2 5,6 1,2</gml:coordinates>
</gml:LinearRing>
</gml:outerBoundaryIs>
<gml:innerBoundaryIs>
<gml:LinearRing>
<gml:coordinates decimal="." cs="," ts=" ">2,3 2,5 4,5 2,3</gml:coordinates>
</gml:LinearRing>
</gml:innerBoundaryIs>
<gml:innerBoundaryIs>
<gml:LinearRing>
<gml:coordinates decimal="." cs="," ts=" ">3,4 3,6 5,6 3,4</gml:coordinates>
</gml:LinearRing>
</gml:innerBoundaryIs>
</gml:Polygon>

File diff suppressed because one or more lines are too long

View File

@@ -0,0 +1,7 @@
<gml:Curve xmlns:gml="http://www.opengis.net/gml" srsName="foo">
<gml:segments>
<gml:LineStringSegment>
<gml:posList>1 2 3 4</gml:posList>
</gml:LineStringSegment>
</gml:segments>
</gml:Curve>

View File

@@ -0,0 +1,15 @@
<gml:featureMembers xmlns:gml="http://www.opengis.net/gml">
<topp:gnis_pop gml:id="gnis_pop.148604" xmlns:topp="http://www.openplans.org/topp">
<gml:name>Aflu</gml:name>
<topp:the_geom>
<gml:Point srsName="urn:x-ogc:def:crs:EPSG:4326">
<gml:pos>34.12 2.09</gml:pos>
</gml:Point>
</topp:the_geom>
<topp:population>84683</topp:population>
<topp:country>Algeria</topp:country>
<topp:type>place</topp:type>
<topp:name>Aflu</topp:name>
<topp:empty></topp:empty>
</topp:gnis_pop>
</gml:featureMembers>

View File

@@ -0,0 +1,4 @@
<gml:Envelope xmlns:gml="http://www.opengis.net/gml" srsName="foo">
<gml:lowerCorner>1 2</gml:lowerCorner>
<gml:upperCorner>3 4</gml:upperCorner>
</gml:Envelope>

View File

@@ -0,0 +1,3 @@
<gml:LinearRing xmlns:gml="http://www.opengis.net/gml" srsName="foo">
<gml:posList>1 2 3 4 5 6 1 2</gml:posList>
</gml:LinearRing>

View File

@@ -0,0 +1,3 @@
<gml:LineString xmlns:gml="http://www.opengis.net/gml" srsName="foo">
<gml:posList>1 2 3 4</gml:posList>
</gml:LineString>

View File

@@ -0,0 +1,3 @@
<gml:LineString xmlns:gml="http://www.opengis.net/gml" srsName="foo" srsDimension="3">
<gml:posList>1 2 3 4 5 6</gml:posList>
</gml:LineString>

View File

@@ -0,0 +1,20 @@
<gml:MultiCurve xmlns:gml="http://www.opengis.net/gml" srsName="foo">
<gml:curveMember>
<gml:Curve>
<gml:segments>
<gml:LineStringSegment>
<gml:posList>1 2 2 3</gml:posList>
</gml:LineStringSegment>
</gml:segments>
</gml:Curve>
</gml:curveMember>
<gml:curveMember>
<gml:Curve>
<gml:segments>
<gml:LineStringSegment>
<gml:posList>3 4 4 5</gml:posList>
</gml:LineStringSegment>
</gml:segments>
</gml:Curve>
</gml:curveMember>
</gml:MultiCurve>

View File

@@ -0,0 +1,12 @@
<gml:MultiCurve xmlns:gml="http://www.opengis.net/gml" srsName="foo">
<gml:curveMember>
<gml:LineString>
<gml:posList>1 2 2 3</gml:posList>
</gml:LineString>
</gml:curveMember>
<gml:curveMember>
<gml:LineString>
<gml:posList>3 4 4 5</gml:posList>
</gml:LineString>
</gml:curveMember>
</gml:MultiCurve>

View File

@@ -0,0 +1,10 @@
<gml:MultiLineString xmlns:gml="http://www.opengis.net/gml" srsName="foo">
<gml:lineStringMembers>
<gml:LineString>
<gml:posList>1 2 2 3</gml:posList>
</gml:LineString>
<gml:LineString>
<gml:posList>3 4 4 5</gml:posList>
</gml:LineString>
</gml:lineStringMembers>
</gml:MultiLineString>

View File

@@ -0,0 +1,12 @@
<gml:MultiLineString xmlns:gml="http://www.opengis.net/gml" srsName="foo">
<gml:lineStringMember>
<gml:LineString>
<gml:posList>1 2 2 3</gml:posList>
</gml:LineString>
</gml:lineStringMember>
<gml:lineStringMember>
<gml:LineString>
<gml:posList>3 4 4 5</gml:posList>
</gml:LineString>
</gml:lineStringMember>
</gml:MultiLineString>

View File

@@ -0,0 +1,13 @@
<gml:MultiPoint xmlns:gml="http://www.opengis.net/gml" srsName="foo">
<gml:pointMembers>
<gml:Point>
<gml:pos>1 2</gml:pos>
</gml:Point>
<gml:Point>
<gml:pos>2 3</gml:pos>
</gml:Point>
<gml:Point>
<gml:pos>3 4</gml:pos>
</gml:Point>
</gml:pointMembers>
</gml:MultiPoint>

View File

@@ -0,0 +1,17 @@
<gml:MultiPoint xmlns:gml="http://www.opengis.net/gml" srsName="foo">
<gml:pointMember>
<gml:Point>
<gml:pos>1 2</gml:pos>
</gml:Point>
</gml:pointMember>
<gml:pointMember>
<gml:Point>
<gml:pos>2 3</gml:pos>
</gml:Point>
</gml:pointMember>
<gml:pointMember>
<gml:Point>
<gml:pos>3 4</gml:pos>
</gml:Point>
</gml:pointMember>
</gml:MultiPoint>

View File

@@ -0,0 +1,28 @@
<gml:MultiPolygon xmlns:gml="http://www.opengis.net/gml" srsName="foo">
<gml:polygonMembers>
<gml:Polygon>
<gml:exterior>
<gml:LinearRing>
<gml:posList>1 2 3 2 3 4 1 2</gml:posList>
</gml:LinearRing>
</gml:exterior>
<gml:interior>
<gml:LinearRing>
<gml:posList>2 3 2 5 4 5 2 3</gml:posList>
</gml:LinearRing>
</gml:interior>
<gml:interior>
<gml:LinearRing>
<gml:posList>3 4 3 6 5 6 3 4</gml:posList>
</gml:LinearRing>
</gml:interior>
</gml:Polygon>
<gml:Polygon>
<gml:exterior>
<gml:LinearRing>
<gml:posList>1 2 3 2 3 4 1 2</gml:posList>
</gml:LinearRing>
</gml:exterior>
</gml:Polygon>
</gml:polygonMembers>
</gml:MultiPolygon>

View File

@@ -0,0 +1,30 @@
<gml:MultiPolygon xmlns:gml="http://www.opengis.net/gml" srsName="foo">
<gml:polygonMember>
<gml:Polygon>
<gml:exterior>
<gml:LinearRing>
<gml:posList>1 2 3 2 3 4 1 2</gml:posList>
</gml:LinearRing>
</gml:exterior>
<gml:interior>
<gml:LinearRing>
<gml:posList>2 3 2 5 4 5 2 3</gml:posList>
</gml:LinearRing>
</gml:interior>
<gml:interior>
<gml:LinearRing>
<gml:posList>3 4 3 6 5 6 3 4</gml:posList>
</gml:LinearRing>
</gml:interior>
</gml:Polygon>
</gml:polygonMember>
<gml:polygonMember>
<gml:Polygon>
<gml:exterior>
<gml:LinearRing>
<gml:posList>1 2 3 2 3 4 1 2</gml:posList>
</gml:LinearRing>
</gml:exterior>
</gml:Polygon>
</gml:polygonMember>
</gml:MultiPolygon>

View File

@@ -0,0 +1,28 @@
<gml:MultiSurface xmlns:gml="http://www.opengis.net/gml" srsName="foo">
<gml:surfaceMembers>
<gml:Polygon>
<gml:exterior>
<gml:LinearRing>
<gml:posList>1 2 3 2 3 4 1 2</gml:posList>
</gml:LinearRing>
</gml:exterior>
<gml:interior>
<gml:LinearRing>
<gml:posList>2 3 2 5 4 5 2 3</gml:posList>
</gml:LinearRing>
</gml:interior>
<gml:interior>
<gml:LinearRing>
<gml:posList>3 4 3 6 5 6 3 4</gml:posList>
</gml:LinearRing>
</gml:interior>
</gml:Polygon>
<gml:Polygon>
<gml:exterior>
<gml:LinearRing>
<gml:posList>1 2 3 2 3 4 1 2</gml:posList>
</gml:LinearRing>
</gml:exterior>
</gml:Polygon>
</gml:surfaceMembers>
</gml:MultiSurface>

View File

@@ -0,0 +1,30 @@
<gml:MultiSurface xmlns:gml="http://www.opengis.net/gml" srsName="foo">
<gml:surfaceMember>
<gml:Polygon>
<gml:exterior>
<gml:LinearRing>
<gml:posList>1 2 3 2 3 4 1 2</gml:posList>
</gml:LinearRing>
</gml:exterior>
<gml:interior>
<gml:LinearRing>
<gml:posList>2 3 2 5 4 5 2 3</gml:posList>
</gml:LinearRing>
</gml:interior>
<gml:interior>
<gml:LinearRing>
<gml:posList>3 4 3 6 5 6 3 4</gml:posList>
</gml:LinearRing>
</gml:interior>
</gml:Polygon>
</gml:surfaceMember>
<gml:surfaceMember>
<gml:Polygon>
<gml:exterior>
<gml:LinearRing>
<gml:posList>1 2 3 2 3 4 1 2</gml:posList>
</gml:LinearRing>
</gml:exterior>
</gml:Polygon>
</gml:surfaceMember>
</gml:MultiSurface>

View File

@@ -0,0 +1,38 @@
<gml:MultiSurface xmlns:gml="http://www.opengis.net/gml" srsName="foo">
<gml:surfaceMember>
<gml:Surface>
<gml:patches>
<gml:PolygonPatch interpolation="planar">
<gml:exterior>
<gml:LinearRing>
<gml:posList>1 2 3 2 3 4 1 2</gml:posList>
</gml:LinearRing>
</gml:exterior>
<gml:interior>
<gml:LinearRing>
<gml:posList>2 3 2 5 4 5 2 3</gml:posList>
</gml:LinearRing>
</gml:interior>
<gml:interior>
<gml:LinearRing>
<gml:posList>3 4 3 6 5 6 3 4</gml:posList>
</gml:LinearRing>
</gml:interior>
</gml:PolygonPatch>
</gml:patches>
</gml:Surface>
</gml:surfaceMember>
<gml:surfaceMember>
<gml:Surface>
<gml:patches>
<gml:PolygonPatch interpolation="planar">
<gml:exterior>
<gml:LinearRing>
<gml:posList>1 2 3 2 3 4 1 2</gml:posList>
</gml:LinearRing>
</gml:exterior>
</gml:PolygonPatch>
</gml:patches>
</gml:Surface>
</gml:surfaceMember>
</gml:MultiSurface>

View File

@@ -0,0 +1,3 @@
<gml:Point xmlns:gml="http://www.opengis.net/gml" srsName="foo">
<gml:pos>1 2</gml:pos>
</gml:Point>

View File

@@ -0,0 +1,17 @@
<gml:Polygon xmlns:gml="http://www.opengis.net/gml" srsName="foo">
<gml:exterior>
<gml:LinearRing>
<gml:posList>1 2 3 2 3 4 1 2</gml:posList>
</gml:LinearRing>
</gml:exterior>
<gml:interior>
<gml:LinearRing>
<gml:posList>2 3 2 5 4 5 2 3</gml:posList>
</gml:LinearRing>
</gml:interior>
<gml:interior>
<gml:LinearRing>
<gml:posList>3 4 3 6 5 6 3 4</gml:posList>
</gml:LinearRing>
</gml:interior>
</gml:Polygon>

View File

@@ -0,0 +1,42 @@
<?xml version="1.0" encoding="UTF-8"?>
<wfs:FeatureCollection numberOfFeatures="1" timeStamp="2010-01-29T15:10:38.921-07:00"
xsi:schemaLocation="http://medford.opengeo.org http://localhost:8080/geoserver/wfs?service=WFS&amp;version=1.1.0&amp;request=DescribeFeatureType&amp;typeName=medford%3Azoning http://www.opengis.net/wfs http://localhost:8080/geoserver/schemas/wfs/1.1.0/wfs.xsd"
xmlns:ogc="http://www.opengis.net/ogc"
xmlns:wfs="http://www.opengis.net/wfs"
xmlns:medford="http://opengeo.org/#medford"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns:ows="http://www.opengis.net/ows"
xmlns:gml="http://www.opengis.net/gml"
xmlns:xlink="http://www.w3.org/1999/xlink">
<gml:featureMembers>
<medford:zoning gml:id="zoning.1">
<medford:the_geom>
<gml:MultiSurface srsName="urn:x-ogc:def:crs:EPSG:4326">
<gml:surfaceMember>
<gml:Polygon>
<gml:exterior>
<gml:LinearRing>
<gml:posList>42.397027571297585 -122.88465674265922 42.39702893980587 -122.88509730796012 42.397029086785146 -122.88511582432085 42.39702379767053 -122.88528111596624 42.39748517484964 -122.88529300380065 42.39748473847452 -122.88509914138723 42.39748482219041 -122.8849959517568 42.397485082635576 -122.8846741899541 42.3974853307826 -122.88436529392652 42.39702663751206 -122.88435664014142 42.397027571297585 -122.88465674265922</gml:posList>
</gml:LinearRing>
</gml:exterior>
</gml:Polygon>
</gml:surfaceMember>
</gml:MultiSurface>
</medford:the_geom>
<medford:objectid>1</medford:objectid>
<medford:cityzone>YES</medford:cityzone>
<medford:zoning>I-L</medford:zoning>
<medford:revdate>2004-04-12T00:00:00-06:00</medford:revdate>
<medford:finord></medford:finord>
<medford:filenum></medford:filenum>
<medford:acres>0.95741118624</medford:acres>
<medford:misc></medford:misc>
<medford:shape_leng>835.705330224</medford:shape_leng>
<medford:perimeter>835.705330224</medford:perimeter>
<medford:area>41704.8312728</medford:area>
<medford:shape_le_1>835.705330224</medford:shape_le_1>
<medford:shape_area>41704.8312728</medford:shape_area>
<medford:hectares>0.38745056079</medford:hectares>
</medford:zoning>
</gml:featureMembers>
</wfs:FeatureCollection>

View File

@@ -0,0 +1,21 @@
<gml:Surface xmlns:gml="http://www.opengis.net/gml" srsName="foo">
<gml:patches>
<gml:PolygonPatch interpolation="planar">
<gml:exterior>
<gml:LinearRing>
<gml:posList>1 2 3 2 3 4 1 2</gml:posList>
</gml:LinearRing>
</gml:exterior>
<gml:interior>
<gml:LinearRing>
<gml:posList>2 3 2 5 4 5 2 3</gml:posList>
</gml:LinearRing>
</gml:interior>
<gml:interior>
<gml:LinearRing>
<gml:posList>3 4 3 6 5 6 3 4</gml:posList>
</gml:LinearRing>
</gml:interior>
</gml:PolygonPatch>
</gml:patches>
</gml:Surface>

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because it is too large Load Diff

View File

@@ -0,0 +1,4 @@
<?xml version="1.0" encoding="UTF-8" standalone="no" ?>
<!DOCTYPE ServiceExceptionReport SYSTEM "http://schemas.opengis.net/wms/1.1.1/WMS_exception_1_1_1.dtd">
<ServiceExceptionReport version="1.1.1"><ServiceException> Plain text message about an error. </ServiceException>
</ServiceExceptionReport>

File diff suppressed because it is too large Load Diff

View File

@@ -0,0 +1,283 @@
<?xml version='1.0' encoding="UTF-8" standalone="no" ?>
<!DOCTYPE WMT_MS_Capabilities SYSTEM
"http://schemas.opengis.net/wms/1.1.1/capabilities_1_1_1.dtd"
[
<!ELEMENT VendorSpecificCapabilities EMPTY>
]>
<WMT_MS_Capabilities version="1.1.1" updateSequence="0">
<Service>
<Name>OGC:WMS</Name>
<Title>Acme Corp. Map Server</Title>
<Abstract>WMT Map Server maintained by Acme Corporation. Contact: webmaster@wmt.acme.com. High-quality maps showing roadrunner nests and possible ambush locations.</Abstract>
<KeywordList>
<Keyword>bird</Keyword>
<Keyword>roadrunner</Keyword>
<Keyword>ambush</Keyword>
</KeywordList>
<OnlineResource xmlns:xlink="http://www.w3.org/1999/xlink" xlink:type="simple"
xlink:href="http://hostname/" />
<ContactInformation>
<ContactPersonPrimary>
<ContactPerson>Jeff deLaBeaujardiere</ContactPerson>
<ContactOrganization>NASA</ContactOrganization>
</ContactPersonPrimary>
<ContactPosition>Computer Scientist</ContactPosition>
<ContactAddress>
<AddressType>postal</AddressType>
<Address>NASA Goddard Space Flight Center, Code 933</Address>
<City>Greenbelt</City>
<StateOrProvince>MD</StateOrProvince>
<PostCode>20771</PostCode>
<Country>USA</Country>
</ContactAddress>
<ContactVoiceTelephone>+1 301 286-1569</ContactVoiceTelephone>
<ContactFacsimileTelephone>+1 301 286-1777</ContactFacsimileTelephone>
<ContactElectronicMailAddress>delabeau@iniki.gsfc.nasa.gov</ContactElectronicMailAddress>
</ContactInformation>
<Fees>none</Fees>
<AccessConstraints>none</AccessConstraints>
</Service>
<Capability>
<Request>
<GetCapabilities>
<Format>application/vnd.ogc.wms_xml</Format>
<DCPType>
<HTTP>
<Get>
<OnlineResource xmlns:xlink="http://www.w3.org/1999/xlink"
xlink:type="simple"
xlink:href="http://hostname:port/path" />
</Get>
<Post>
<OnlineResource xmlns:xlink="http://www.w3.org/1999/xlink"
xlink:type="simple"
xlink:href="http://hostname:port/path" />
</Post>
</HTTP>
</DCPType>
</GetCapabilities>
<GetMap>
<Format>image/gif</Format>
<Format>image/png</Format>
<Format>image/jpeg</Format>
<DCPType>
<HTTP>
<Get>
<OnlineResource xmlns:xlink="http://www.w3.org/1999/xlink"
xlink:type="simple"
xlink:href="http://hostname:port/path/get" />
</Get>
<Post>
<OnlineResource xmlns:xlink="http://www.w3.org/1999/xlink"
xlink:type="simple"
xlink:href="http://hostname:port/path/post" />
</Post>
</HTTP>
</DCPType>
</GetMap>
<GetFeatureInfo>
<Format>application/vnd.ogc.gml</Format>
<Format>text/plain</Format>
<Format>text/html</Format>
<DCPType>
<HTTP>
<Get>
<OnlineResource xmlns:xlink="http://www.w3.org/1999/xlink"
xlink:type="simple"
xlink:href="http://hostname:port/path" />
</Get>
</HTTP>
</DCPType>
</GetFeatureInfo>
<DescribeLayer>
<Format>application/vnd.ogc.gml</Format>
<DCPType>
<HTTP>
<Get>
<OnlineResource xmlns:xlink="http://www.w3.org/1999/xlink"
xlink:type="simple"
xlink:href="http://hostname:port/path" />
</Get>
</HTTP>
</DCPType>
</DescribeLayer>
</Request>
<Exception>
<Format>application/vnd.ogc.se_xml</Format>
<Format>application/vnd.ogc.se_inimage</Format>
<Format>application/vnd.ogc.se_blank</Format>
</Exception>
<VendorSpecificCapabilities />
<UserDefinedSymbolization SupportSLD="1" UserLayer="1" UserStyle="1"
RemoteWFS="1" />
<Layer>
<Title>Acme Corp. Map Server</Title>
<SRS>EPSG:4326</SRS>
<BoundingBox SRS="EPSG:4326"
minx="-1" miny="-1" maxx="1" maxy="1" resx="0.0" resy="0.0"/>
<AuthorityURL name="DIF_ID">
<OnlineResource xmlns:xlink="http://www.w3.org/1999/xlink" xlink:type="simple"
xlink:href="http://gcmd.gsfc.nasa.gov/difguide/whatisadif.html" />
</AuthorityURL>
<Layer>
<Name>ROADS_RIVERS</Name>
<Title>Roads and Rivers</Title>
<SRS>EPSG:26986</SRS>
<LatLonBoundingBox minx="-71.63" miny="41.75" maxx="-70.78" maxy="42.90"/>
<BoundingBox SRS="EPSG:4326"
minx="-71.63" miny="41.75" maxx="-70.78" maxy="42.90" resx="0.01" resy="0.01"/>
<BoundingBox SRS="EPSG:26986"
minx="189000" miny="834000" maxx="285000" maxy="962000" resx="1" resy="1" />
<Attribution>
<Title>State College University</Title>
<OnlineResource xmlns:xlink="http://www.w3.org/1999/xlink" xlink:type="simple"
xlink:href="http://www.university.edu/" />
<LogoURL width="100" height="100">
<Format>image/gif</Format>
<OnlineResource xmlns:xlink="http://www.w3.org/1999/xlink"
xlink:type="simple"
xlink:href="http://www.university.edu/icons/logo.gif" />
</LogoURL>
</Attribution>
<Identifier authority="DIF_ID">123456</Identifier>
<FeatureListURL>
<Format>application/vnd.ogc.se_xml</Format>
<OnlineResource xmlns:xlink="http://www.w3.org/1999/xlink" xlink:type="simple"
xlink:href="http://www.university.edu/data/roads_rivers.gml" />
</FeatureListURL>
<Style>
<Name>USGS</Name>
<Title>USGS Topo Map Style</Title>
<Abstract>Features are shown in a style like that used in USGS topographic maps.</Abstract>
<LegendURL width="72" height="72">
<Format>image/gif</Format>
<OnlineResource xmlns:xlink="http://www.w3.org/1999/xlink"
xlink:type="simple"
xlink:href="http://www.university.edu/legends/usgs.gif" />
</LegendURL>
<StyleSheetURL>
<Format>text/xsl</Format>
<OnlineResource xmlns:xlink="http://www.w3.org/1999/xlink"
xlink:type="simple"
xlink:href="http://www.university.edu/stylesheets/usgs.xsl" />
</StyleSheetURL>
</Style>
<Layer queryable="1">
<Name>ROADS_1M</Name>
<Title>Roads at 1:1M scale</Title>
<Abstract>Roads at a scale of 1 to 1 million.</Abstract>
<KeywordList>
<Keyword>road</Keyword>
<Keyword>transportation</Keyword>
<Keyword>atlas</Keyword>
</KeywordList>
<Identifier authority="DIF_ID">123456</Identifier>
<MetadataURL type="FGDC">
<Format>text/plain</Format>
<OnlineResource xmlns:xlink="http://www.w3.org/1999/xlink"
xlink:type="simple"
xlink:href="http://www.university.edu/metadata/roads.txt" />
</MetadataURL>
<MetadataURL type="FGDC">
<Format>text/xml</Format>
<OnlineResource xmlns:xlink="http://www.w3.org/1999/xlink"
xlink:type="simple"
xlink:href="http://www.university.edu/metadata/roads.xml" />
</MetadataURL>
<Style>
<Name>ATLAS</Name>
<Title>Road atlas style</Title>
<Abstract>Roads are shown in a style like that used in a commercial road atlas.</Abstract>
<LegendURL width="72" height="72">
<Format>image/gif</Format>
<OnlineResource xmlns:xlink="http://www.w3.org/1999/xlink"
xlink:type="simple"
xlink:href="http://www.university.edu/legends/atlas.gif" />
</LegendURL>
</Style>
<ScaleHint min="0.3959805894" max="98.9951473564114" />
</Layer>
<Layer queryable="1">
<Name>RIVERS_1M</Name>
<Title>Rivers at 1:1M scale</Title>
<Abstract>Rivers at a scale of 1 to 1 million.</Abstract>
<KeywordList>
<Keyword>river</Keyword>
<Keyword>canal</Keyword>
<Keyword>waterway</Keyword>
</KeywordList>
<ScaleHint min="0" max="Infinity" />
</Layer>
</Layer>
<Layer queryable="1">
<Title>Weather Forecast Data</Title>
<SRS>EPSG:4326</SRS>
<LatLonBoundingBox minx="-180" miny="-90" maxx="180" maxy="90" />
<Dimension name="time" units="ISO8601" />
<Extent name="time" default="2000-08-22">1999-01-01/2000-08-22/P1D</Extent>
<Layer>
<Name>Clouds</Name>
<Title>Forecast cloud cover</Title>
</Layer>
<Layer>
<Name>Temperature</Name>
<Title>Forecast temperature</Title>
</Layer>
<Layer>
<Name>Pressure</Name>
<Title>Forecast barometric pressure</Title>
<Dimension name="time" units="ISO8601" />
<Dimension name="elevation" units="EPSG:5030" />
<Extent name="time" default="2000-08-22">1999-01-01/2000-08-22/P1D</Extent>
<Extent name="elevation" default="0" nearestValue="1">0,1000,3000,5000,10000</Extent>
</Layer>
</Layer>
<Layer opaque="1" noSubsets="1" fixedWidth="512" fixedHeight="256">
<Name>ozone_image</Name>
<Title>Global ozone distribution (1992)</Title>
<LatLonBoundingBox minx="-180" miny="-90" maxx="180" maxy="90" />
<Extent name="time" default="1992">1992</Extent>
</Layer>
<Layer cascaded="1">
<Name>population</Name>
<Title>World population, annual</Title>
<LatLonBoundingBox minx="-180" miny="-90" maxx="180" maxy="90" />
<Extent name="time" default="2000">1990/2000/P1Y</Extent>
</Layer>
</Layer>
</Capability>
</WMT_MS_Capabilities>

View File

@@ -0,0 +1,124 @@
<?xml version='1.0' encoding="ISO-8859-1" standalone="no" ?>
<!DOCTYPE WMT_MS_Capabilities SYSTEM "http://schemas.opengis.net/wms/1.1.0/capabilities_1_1_0.dtd"
[
<!ELEMENT VendorSpecificCapabilities EMPTY>
]>
<WMT_MS_Capabilities version="1.1.0">
<Service>
<Name>OGC:WMS</Name>
<Title>i3Geo - i3geo</Title>
<Abstract>Web services gerados da base de dados do i3Geo. Para chamar um tema especificamente, veja o sistema de ajuda, digitando no navegador web ogc.php?ajuda=, para uma lista compacta de todos os servicos, digite ogc.php?lista=temas</Abstract>
<KeywordList>
<Keyword>i3Geo</Keyword>
</KeywordList>
<OnlineResource xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="http://mapas.mma.gov.br/i3geo/ogc.php?"/>
<ContactInformation>
<ContactPersonPrimary>
<ContactPerson>Web Master</ContactPerson>
<ContactOrganization>Coordena??o Geral de TI</ContactOrganization>
</ContactPersonPrimary>
<ContactPosition>Administrador do s?tio web</ContactPosition>
<ContactAddress>
<AddressType>uri</AddressType>
<Address>http://www.mma.gov.br</Address>
<City>Brasilia</City>
<StateOrProvince>DF</StateOrProvince>
<PostCode></PostCode>
<Country>Brasil</Country>
</ContactAddress>
<ContactElectronicMailAddress>geoprocessamento@mma.gov.br</ContactElectronicMailAddress>
</ContactInformation>
<Fees>none</Fees>
<AccessConstraints>vedado o uso comercial</AccessConstraints>
</Service>
<Capability>
<Request>
<GetCapabilities>
<Format>application/vnd.ogc.wms_xml</Format>
<DCPType>
<HTTP>
<Get><OnlineResource xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="http://mapas.mma.gov.br/i3geo/ogc.php?"/></Get>
<Post><OnlineResource xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="http://mapas.mma.gov.br/i3geo/ogc.php?"/></Post>
</HTTP>
</DCPType>
</GetCapabilities>
<GetMap>
<Format>image/png</Format>
<Format>image/jpeg</Format>
<Format>image/gif</Format>
<Format>image/png; mode=8bit</Format>
<Format>application/x-pdf</Format>
<Format>image/svg+xml</Format>
<Format>image/tiff</Format>
<Format>application/vnd.google-earth.kml+xml</Format>
<Format>application/vnd.google-earth.kmz</Format>
<DCPType>
<HTTP>
<Get><OnlineResource xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="http://mapas.mma.gov.br/i3geo/ogc.php?"/></Get>
<Post><OnlineResource xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="http://mapas.mma.gov.br/i3geo/ogc.php?"/></Post>
</HTTP>
</DCPType>
</GetMap>
<GetFeatureInfo>
<Format>text/plain</Format>
<Format>application/vnd.ogc.gml</Format>
<DCPType>
<HTTP>
<Get><OnlineResource xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="http://mapas.mma.gov.br/i3geo/ogc.php?"/></Get>
<Post><OnlineResource xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="http://mapas.mma.gov.br/i3geo/ogc.php?"/></Post>
</HTTP>
</DCPType>
</GetFeatureInfo>
<DescribeLayer>
<Format>text/xml</Format>
<DCPType>
<HTTP>
<Get><OnlineResource xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="http://mapas.mma.gov.br/i3geo/ogc.php?"/></Get>
<Post><OnlineResource xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="http://mapas.mma.gov.br/i3geo/ogc.php?"/></Post>
</HTTP>
</DCPType>
</DescribeLayer>
</Request>
<Exception>
<Format>application/vnd.ogc.se_xml</Format>
<Format>application/vnd.ogc.se_inimage</Format>
<Format>application/vnd.ogc.se_blank</Format>
</Exception>
<VendorSpecificCapabilities />
<UserDefinedSymbolization SupportSLD="1" UserLayer="0" UserStyle="1" RemoteWFS="0"/>
<Layer>
<Name>i3geoogc</Name>
<Title>i3Geo - i3geo</Title>
<Abstract>Web services gerados da base de dados do i3Geo. Para chamar um tema especificamente, veja o sistema de ajuda, digitando no navegador web ogc.php?ajuda=, para uma lista compacta de todos os servicos, digite ogc.php?lista=temas</Abstract>
<KeywordList>
<Keyword>i3Geo</Keyword>
</KeywordList>
<SRS></SRS>
<LatLonBoundingBox minx="-76.5126" miny="-36.9484" maxx="-29.5852" maxy="7.04601" />
<BoundingBox SRS=""
minx="-76.5126" miny="-36.9484" maxx="-29.5852" maxy="7.04601" />
<Attribution>
<Title>i3Geo</Title>
<OnlineResource xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="http://mapas.mma.gov.br/i3geo"/>
<LogoURL width="85" height="56">
<Format>image/png</Format>
<OnlineResource xmlns:xlink="http://www.w3.org/1999/xlink" xlink:type="simple" xlink:href="http://mapas.mma.gov.br/i3geo/imagens/i3geo.png"/>
</LogoURL>
</Attribution>
<Layer queryable="1" opaque="0" cascaded="0">
<Name>antigo_caminantes</Name>
<Title>Guia de Caminantes - 1817</Title>
<SRS> EPSG:4618 EPSG:4291 EPSG:4326 EPSG:22521 EPSG:22522 EPSG:22523 EPSG:22524 EPSG:22525 EPSG:29101 EPSG:29119 EPSG:29120 EPSG:29121 EPSG:29122 EPSG:29177 EPSG:29178 EPSG:29179 EPSG:29180 EPSG:29181 EPSG:29182 EPSG:29183 EPSG:29184 EPSG:29185</SRS>
<LatLonBoundingBox minx="-75.2336" miny="-33.7516" maxx="-27.593" maxy="5.27216" />
<BoundingBox SRS=""
minx="-75.2336" miny="-33.7516" maxx="-27.593" maxy="5.27216" />
<MetadataURL type="TC211">
<Format>text/html</Format>
<OnlineResource xmlns:xlink="http://www.w3.org/1999/xlink" xlink:type="simple" xlink:href="http://consorcio.bn.br"/>
</MetadataURL>
</Layer>
</Layer>
</Capability>
</WMT_MS_Capabilities>

View File

@@ -0,0 +1,178 @@
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE WMT_MS_Capabilities SYSTEM "http://schemas.opengis.net/wms/1.1.1/capabilities_1_1_1.dtd"[
<!ELEMENT VendorSpecificCapabilities (TileSet*) >
<!ELEMENT TileSet (SRS, BoundingBox?, Resolutions, Width, Height, Format, Layers*, Styles*) >
<!ELEMENT Resolutions (#PCDATA) >
<!ELEMENT Width (#PCDATA) >
<!ELEMENT Height (#PCDATA) >
<!ELEMENT Layers (#PCDATA) >
<!ELEMENT Styles (#PCDATA) >
]>
<WMT_MS_Capabilities version="1.1.1" updateSequence="57">
<Service>
<Name>OGC:WMS</Name>
<Title>GeoServer Web Map Service</Title>
<Abstract>A compliant implementation of WMS 1.1.1 plus most of the SLD 1.0 extension (dynamic styling). Can also generate PDF, SVG, KML, GeoRSS</Abstract>
<KeywordList>
<Keyword>WFS</Keyword>
<Keyword>WMS</Keyword>
<Keyword>GEOSERVER</Keyword>
</KeywordList>
<OnlineResource xmlns:xlink="http://www.w3.org/1999/xlink" xlink:type="simple" xlink:href="http://localhost:8080/geoserver-suite/wms"/>
<ContactInformation>
<ContactPersonPrimary>
<ContactPerson>OpenGeo</ContactPerson>
<ContactOrganization>OpenGeo</ContactOrganization>
</ContactPersonPrimary>
<ContactPosition>Outreach</ContactPosition>
<ContactAddress>
<AddressType>Work</AddressType>
<Address/>
<City>New York</City>
<StateOrProvince/>
<PostCode/>
<Country>USA</Country>
</ContactAddress>
<ContactVoiceTelephone/>
<ContactFacsimileTelephone/>
<ContactElectronicMailAddress>inquiry@opengeo.org</ContactElectronicMailAddress>
</ContactInformation>
<Fees>NONE</Fees>
<AccessConstraints>NONE</AccessConstraints>
</Service>
<Capability>
<Request>
<GetCapabilities>
<Format>application/vnd.ogc.wms_xml</Format>
<DCPType>
<HTTP>
<Get>
<OnlineResource xmlns:xlink="http://www.w3.org/1999/xlink" xlink:type="simple" xlink:href="http://localhost:8080/geoserver-suite/wms?SERVICE=WMS&amp;"/>
</Get>
<Post>
<OnlineResource xmlns:xlink="http://www.w3.org/1999/xlink" xlink:type="simple" xlink:href="http://localhost:8080/geoserver-suite/wms?SERVICE=WMS&amp;"/>
</Post>
</HTTP>
</DCPType>
</GetCapabilities>
<GetMap>
<Format>image/png</Format>
<Format>application/atom xml</Format>
<Format>application/atom+xml</Format>
<Format>application/openlayers</Format>
<Format>application/pdf</Format>
<Format>application/rss xml</Format>
<Format>application/rss+xml</Format>
<Format>application/vnd.google-earth.kml</Format>
<Format>application/vnd.google-earth.kml xml</Format>
<Format>application/vnd.google-earth.kml+xml</Format>
<Format>application/vnd.google-earth.kmz</Format>
<Format>application/vnd.google-earth.kmz xml</Format>
<Format>application/vnd.google-earth.kmz+xml</Format>
<Format>atom</Format>
<Format>image/geotiff</Format>
<Format>image/geotiff8</Format>
<Format>image/gif</Format>
<Format>image/jpeg</Format>
<Format>image/png8</Format>
<Format>image/svg</Format>
<Format>image/svg xml</Format>
<Format>image/svg+xml</Format>
<Format>image/tiff</Format>
<Format>image/tiff8</Format>
<Format>kml</Format>
<Format>kmz</Format>
<Format>openlayers</Format>
<Format>rss</Format>
<DCPType>
<HTTP>
<Get>
<OnlineResource xmlns:xlink="http://www.w3.org/1999/xlink" xlink:type="simple" xlink:href="http://localhost:8080/geoserver-suite/wms?SERVICE=WMS&amp;"/>
</Get>
</HTTP>
</DCPType>
</GetMap>
<GetFeatureInfo>
<Format>text/plain</Format>
<Format>application/vnd.ogc.gml</Format>
<Format>text/html</Format>
<DCPType>
<HTTP>
<Get>
<OnlineResource xmlns:xlink="http://www.w3.org/1999/xlink" xlink:type="simple" xlink:href="http://localhost:8080/geoserver-suite/wms?SERVICE=WMS&amp;"/>
</Get>
<Post>
<OnlineResource xmlns:xlink="http://www.w3.org/1999/xlink" xlink:type="simple" xlink:href="http://localhost:8080/geoserver-suite/wms?SERVICE=WMS&amp;"/>
</Post>
</HTTP>
</DCPType>
</GetFeatureInfo>
<DescribeLayer>
<Format>application/vnd.ogc.wms_xml</Format>
<DCPType>
<HTTP>
<Get>
<OnlineResource xmlns:xlink="http://www.w3.org/1999/xlink" xlink:type="simple" xlink:href="http://localhost:8080/geoserver-suite/wms?SERVICE=WMS&amp;"/>
</Get>
</HTTP>
</DCPType>
</DescribeLayer>
<GetLegendGraphic>
<Format>image/png</Format>
<Format>image/jpeg</Format>
<Format>image/gif</Format>
<DCPType>
<HTTP>
<Get>
<OnlineResource xmlns:xlink="http://www.w3.org/1999/xlink" xlink:type="simple" xlink:href="http://localhost:8080/geoserver-suite/wms?SERVICE=WMS&amp;"/>
</Get>
</HTTP>
</DCPType>
</GetLegendGraphic>
<GetStyles>
<Format>application/vnd.ogc.sld+xml</Format>
<DCPType>
<HTTP>
<Get>
<OnlineResource xmlns:xlink="http://www.w3.org/1999/xlink" xlink:type="simple" xlink:href="http://localhost:8080/geoserver-suite/wms?SERVICE=WMS&amp;"/>
</Get>
</HTTP>
</DCPType>
</GetStyles>
</Request>
<Exception>
<Format>application/vnd.ogc.se_xml</Format>
<Format>application/vnd.ogc.se_inimage</Format>
</Exception>
<VendorSpecificCapabilities>
<TileSet>
<SRS>EPSG:900913</SRS>
<BoundingBox SRS="EPSG:900913" minx="-1.3697515466796875E7" miny="5165920.118906248" maxx="-1.361924394984375E7" maxy="5244191.635859374"/>
<Resolutions>156543.03390625 78271.516953125 39135.7584765625 19567.87923828125 9783.939619140625 4891.9698095703125 2445.9849047851562 1222.9924523925781 611.4962261962891 305.74811309814453 152.87405654907226 76.43702827453613 38.218514137268066 19.109257068634033 9.554628534317017 4.777314267158508 2.388657133579254 1.194328566789627 0.5971642833948135 0.29858214169740677 0.14929107084870338 0.07464553542435169 0.037322767712175846 0.018661383856087923 0.009330691928043961 0.004665345964021981 </Resolutions>
<Width>256</Width>
<Height>256</Height>
<Format>image/png</Format>
<Layers>medford:hydro</Layers>
<Styles/>
</TileSet>
<TileSet>
<SRS>EPSG:4326</SRS>
<BoundingBox SRS="EPSG:4326" minx="-123.046875" miny="42.1875" maxx="-122.6953125" maxy="42.5390625"/>
<Resolutions>0.703125 0.3515625 0.17578125 0.087890625 0.0439453125 0.02197265625 0.010986328125 0.0054931640625 0.00274658203125 0.001373291015625 6.866455078125E-4 3.4332275390625E-4 1.71661376953125E-4 8.58306884765625E-5 4.291534423828125E-5 2.1457672119140625E-5 1.0728836059570312E-5 5.364418029785156E-6 2.682209014892578E-6 1.341104507446289E-6 6.705522537231445E-7 3.3527612686157227E-7 1.6763806343078613E-7 8.381903171539307E-8 4.190951585769653E-8 2.0954757928848267E-8 </Resolutions>
<Width>256</Width>
<Height>256</Height>
<Format>image/gif</Format>
<Layers>medford</Layers>
<Styles/>
</TileSet>
</VendorSpecificCapabilities>
<UserDefinedSymbolization SupportSLD="1" UserLayer="1" UserStyle="1" RemoteWFS="1"/>
<Layer queryable="0" opaque="0" noSubsets="0">
<Title>GeoServer Web Map Service</Title>
<Abstract>A compliant implementation of WMS 1.1.1 plus most of the SLD 1.0 extension (dynamic styling). Can also generate PDF, SVG, KML, GeoRSS</Abstract>
<SRS>EPSG:4326</SRS>
<SRS>EPSG:900913</SRS>
<LatLonBoundingBox minx="-180.0" miny="-90.0" maxx="180.0" maxy="83.624"/>
</Layer>
</Capability>
</WMT_MS_Capabilities>

View File

@@ -0,0 +1,17 @@
<?xml version='1.0' encoding="UTF-8"?>
<ServiceExceptionReport version="1.3.0" xmlns="http://www.opengis.net/ogc"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://www.opengis.net/ogc
http://schemas.opengis.net/wms/1.3.0/exceptions_1_3_0.xsd">
<ServiceException> Plain text message about an error. </ServiceException>
<ServiceException code="InvalidUpdateSequence"> Another error message, this one with a service
exception code supplied. </ServiceException>
<ServiceException>
<![CDATA[ Error in module <foo.c>, line 42
A message that includes angle brackets in text must be enclosed in a Character Data Section as in this example. All XML-like markup is ignored except for this sequence of three closing characters:
]]>
</ServiceException>
<ServiceException>
<![CDATA[ <Module>foo.c</Module> <Error>An error occurred</Error> <Explanation>Similarly, actual XML can be enclosed in a CDATA section. A generic parser will ignore that XML, but application-specific software may choose to process it.</Explanation> ]]>
</ServiceException>
</ServiceExceptionReport>

View File

@@ -0,0 +1,284 @@
<?xml version='1.0' encoding="UTF-8"?>
<WMS_Capabilities version="1.3.0" xmlns="http://www.opengis.net/wms"
xmlns:xlink="http://www.w3.org/1999/xlink"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://www.opengis.net/wms http://schemas.opengis.net/wms/1.3.0/capabilities_1_3_0.xsd">
<Service>
<Name>WMS</Name>
<Title>Acme Corp. Map Server</Title>
<Abstract>Map Server maintained by Acme Corporation. Contact: webmaster@wmt.acme.com. High-quality maps showing roadrunner nests and possible ambush locations.</Abstract>
<KeywordList>
<Keyword>bird</Keyword>
<Keyword>roadrunner</Keyword>
<Keyword>ambush</Keyword>
</KeywordList>
<OnlineResource xmlns:xlink="http://www.w3.org/1999/xlink" xlink:type="simple"
xlink:href="http://hostname/" />
<ContactInformation>
<ContactPersonPrimary>
<ContactPerson>Jeff Smith</ContactPerson>
<ContactOrganization>NASA</ContactOrganization>
</ContactPersonPrimary>
<ContactPosition>Computer Scientist</ContactPosition>
<ContactAddress>
<AddressType>postal</AddressType>
<Address>NASA Goddard Space Flight Center</Address>
<City>Greenbelt</City>
<StateOrProvince>MD</StateOrProvince>
<PostCode>20771</PostCode>
<Country>USA</Country>
</ContactAddress>
<ContactVoiceTelephone>+1 301 555-1212</ContactVoiceTelephone>
<ContactElectronicMailAddress>user@host.com</ContactElectronicMailAddress>
</ContactInformation>
<Fees>none</Fees>
<AccessConstraints>none</AccessConstraints>
<LayerLimit>16</LayerLimit>
<MaxWidth>2048</MaxWidth>
<MaxHeight>2048</MaxHeight>
</Service>
<Capability>
<Request>
<GetCapabilities>
<Format>text/xml</Format>
<DCPType>
<HTTP>
<Get>
<OnlineResource xmlns:xlink="http://www.w3.org/1999/xlink"
xlink:type="simple"
xlink:href="http://hostname/path?" />
</Get>
<Post>
<OnlineResource xmlns:xlink="http://www.w3.org/1999/xlink"
xlink:type="simple"
xlink:href="http://hostname/path?" />
</Post>
</HTTP>
</DCPType>
</GetCapabilities>
<GetMap>
<Format>image/gif</Format>
<Format>image/png</Format>
<Format>image/jpeg</Format>
<DCPType>
<HTTP>
<Get>
<OnlineResource xmlns:xlink="http://www.w3.org/1999/xlink"
xlink:type="simple"
xlink:href="http://hostname/path?" />
</Get>
</HTTP>
</DCPType>
</GetMap>
<GetFeatureInfo>
<Format>text/xml</Format>
<Format>text/plain</Format>
<Format>text/html</Format>
<DCPType>
<HTTP>
<Get>
<OnlineResource xmlns:xlink="http://www.w3.org/1999/xlink"
xlink:type="simple"
xlink:href="http://hostname/path?" />
</Get>
</HTTP>
</DCPType>
</GetFeatureInfo>
</Request>
<Exception>
<Format>XML</Format>
<Format>INIMAGE</Format>
<Format>BLANK</Format>
</Exception>
<Layer>
<Title>Acme Corp. Map Server</Title>
<CRS>CRS:84</CRS>
<AuthorityURL name="DIF_ID">
<OnlineResource xmlns:xlink="http://www.w3.org/1999/xlink" xlink:type="simple"
xlink:href="http://gcmd.gsfc.nasa.gov/difguide/whatisadif.html" />
</AuthorityURL>
<BoundingBox CRS="CRS:84"
minx="-1" miny="-1" maxx="1" maxy="1" resx="0.0" resy="0.0"/>
<Layer>
<Name>ROADS_RIVERS</Name>
<Title>Roads and Rivers</Title>
<CRS>EPSG:26986</CRS>
<EX_GeographicBoundingBox>
<westBoundLongitude>-71.63</westBoundLongitude>
<eastBoundLongitude>-70.78</eastBoundLongitude>
<southBoundLatitude>41.75</southBoundLatitude>
<northBoundLatitude>42.90</northBoundLatitude>
</EX_GeographicBoundingBox>
<BoundingBox CRS="CRS:84"
minx="-71.63" miny="41.75" maxx="-70.78" maxy="42.90" resx="0.01" resy="0.01"/>
<BoundingBox CRS="EPSG:26986"
minx="189000" miny="834000" maxx="285000" maxy="962000" resx="1" resy="1" />
<Attribution>
<Title>State College University</Title>
<OnlineResource xmlns:xlink="http://www.w3.org/1999/xlink" xlink:type="simple"
xlink:href="http://www.university.edu/" />
<LogoURL width="100" height="100">
<Format>image/gif</Format>
<OnlineResource xmlns:xlink="http://www.w3.org/1999/xlink"
xlink:type="simple"
xlink:href="http://www.university.edu/icons/logo.gif" />
</LogoURL>
</Attribution>
<Identifier authority="DIF_ID">123456</Identifier>
<FeatureListURL>
<Format>XML</Format>
<OnlineResource xmlns:xlink="http://www.w3.org/1999/xlink" xlink:type="simple"
xlink:href="http://www.university.edu/data/roads_rivers.gml" />
</FeatureListURL>
<Style>
<Name>USGS</Name>
<Title>USGS Topo Map Style</Title>
<Abstract>Features are shown in a style like that used in USGS topographic maps.</Abstract>
<LegendURL width="72" height="72">
<Format>image/gif</Format>
<OnlineResource xmlns:xlink="http://www.w3.org/1999/xlink"
xlink:type="simple"
xlink:href="http://www.university.edu/legends/usgs.gif" />
</LegendURL>
<StyleSheetURL>
<Format>text/xsl</Format>
<OnlineResource xmlns:xlink="http://www.w3.org/1999/xlink"
xlink:type="simple"
xlink:href="http://www.university.edu/stylesheets/usgs.xsl" />
</StyleSheetURL>
</Style>
<MinScaleDenominator>1000</MinScaleDenominator>
<MaxScaleDenominator>250000</MaxScaleDenominator>
<Layer queryable="1">
<Name>ROADS_1M</Name>
<Title>Roads at 1:1M scale</Title>
<Abstract>Roads at a scale of 1 to 1 million.</Abstract>
<KeywordList>
<Keyword>road</Keyword>
<Keyword>transportation</Keyword>
<Keyword>atlas</Keyword>
</KeywordList>
<Identifier authority="DIF_ID">123456</Identifier>
<MetadataURL type="FGDC:1998">
<Format>text/plain</Format>
<OnlineResource xmlns:xlink="http://www.w3.org/1999/xlink"
xlink:type="simple"
xlink:href="http://www.university.edu/metadata/roads.txt" />
</MetadataURL>
<MetadataURL type="ISO19115:2003">
<Format>text/xml</Format>
<OnlineResource xmlns:xlink="http://www.w3.org/1999/xlink"
xlink:type="simple"
xlink:href="http://www.university.edu/metadata/roads.xml" />
</MetadataURL>
<Style>
<Name>ATLAS</Name>
<Title>Road atlas style</Title>
<Abstract>Roads are shown in a style like that used in a commercial road atlas.</Abstract>
<LegendURL width="72" height="72">
<Format>image/gif</Format>
<OnlineResource xmlns:xlink="http://www.w3.org/1999/xlink"
xlink:type="simple"
xlink:href="http://www.university.edu/legends/atlas.gif" />
</LegendURL>
</Style>
</Layer>
<Layer queryable="1">
<Name>RIVERS_1M</Name>
<Title>Rivers at 1:1M scale</Title>
<Abstract>Rivers at a scale of 1 to 1 million.</Abstract>
<KeywordList>
<Keyword>river</Keyword>
<Keyword>canal</Keyword>
<Keyword>waterway</Keyword>
</KeywordList>
</Layer>
</Layer>
<Layer queryable="1">
<Title>Weather Forecast Data</Title>
<CRS>CRS:84</CRS>
<EX_GeographicBoundingBox>
<westBoundLongitude>-180</westBoundLongitude>
<eastBoundLongitude>180</eastBoundLongitude>
<southBoundLatitude>-90</southBoundLatitude>
<northBoundLatitude>90</northBoundLatitude>
</EX_GeographicBoundingBox>
<Dimension name="time" units="ISO8601" default="2000-08-22">1999-01-01/2000-08-22/P1D</Dimension>
<Layer>
<Name>Clouds</Name>
<Title>Forecast cloud cover</Title>
</Layer>
<Layer>
<Name>Temperature</Name>
<Title>Forecast temperature</Title>
</Layer>
<Layer>
<Name>Pressure</Name>
<Title>Forecast barometric pressure</Title>
<Dimension name="elevation" units="EPSG:5030" />
<Dimension name="time" units="ISO8601" default="2000-08-22">
1999-01-01/2000-08-22/P1D</Dimension>
<Dimension name="elevation" units="CRS:88" default="0" nearestValue="1">0,1000,3000,5000,10000</Dimension>
</Layer>
</Layer>
<Layer opaque="1" noSubsets="1" fixedWidth="512" fixedHeight="256">
<Name>ozone_image</Name>
<Title>Global ozone distribution (1992)</Title>
<EX_GeographicBoundingBox>
<westBoundLongitude>-180</westBoundLongitude>
<eastBoundLongitude>180</eastBoundLongitude>
<southBoundLatitude>-90</southBoundLatitude>
<northBoundLatitude>90</northBoundLatitude>
</EX_GeographicBoundingBox>
<Dimension name="time" units="ISO8601" default="1992">1992</Dimension>
</Layer>
<Layer cascaded="1">
<Name>population</Name>
<Title>World population, annual</Title>
<EX_GeographicBoundingBox>
<westBoundLongitude>-180</westBoundLongitude>
<eastBoundLongitude>180</eastBoundLongitude>
<southBoundLatitude>-90</southBoundLatitude>
<northBoundLatitude>90</northBoundLatitude>
</EX_GeographicBoundingBox>
<Dimension name="time" units="ISO8601" default="2000">1990/2000/P1Y</Dimension>
</Layer>
</Layer>
</Capability>
</WMS_Capabilities>

View File

@@ -0,0 +1,70 @@
<?xml version="1.0" encoding="UTF-8"?>
<Capabilities xmlns="http://www.opengis.net/wmts/1.0" xmlns:ows="http://www.opengis.net/ows/1.1" xmlns:xlink="http://www.w3.org/1999/xlink" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:gml="http://www.opengis.net/gml" xsi:schemaLocation="http://www.opengis.net/wmts/1.0 http://schemas.opengis.net/wmts/1.0/wmtsGetCapabilities_response.xsd" version="1.0.0">
<ows:ServiceIdentification>
<ows:Title>WorldTimeZones</ows:Title>
<ows:ServiceType>OGC WMTS</ows:ServiceType>
<ows:ServiceTypeVersion>1.0.0</ows:ServiceTypeVersion>
</ows:ServiceIdentification>
<ows:OperationsMetadata>
<ows:Operation name="GetTile">
<ows:DCP>
<ows:HTTP>
<ows:Get xlink:href="http://sampleserver6.arcgisonline.com/arcgis/rest/services/WorldTimeZones/MapServer/WMTS/tile/1.0.0/">
<ows:Constraint name="GetEncoding">
<ows:AllowedValues>
<ows:Value>RESTful</ows:Value>
</ows:AllowedValues>
</ows:Constraint>
</ows:Get>
<ows:Get xlink:href="http://sampleserver6.arcgisonline.com/arcgis/rest/services/WorldTimeZones/MapServer/WMTS?">
<ows:Constraint name="GetEncoding">
<ows:AllowedValues>
<ows:Value>KVP</ows:Value>
</ows:AllowedValues>
</ows:Constraint>
</ows:Get>
</ows:HTTP>
</ows:DCP>
</ows:Operation>
</ows:OperationsMetadata>
<Contents>
<Layer>
<ows:Title>WorldTimeZones</ows:Title>
<ows:Identifier>WorldTimeZones</ows:Identifier>
<ows:BoundingBox crs="urn:ogc:def:crs:EPSG::102100">
<ows:LowerCorner>-2.0037507067161843E7 -3.024097195838617E7</ows:LowerCorner>
<ows:UpperCorner>2.0037507067161843E7 3.0240971458386205E7</ows:UpperCorner>
</ows:BoundingBox>
<ows:WGS84BoundingBox crs="urn:ogc:def:crs:OGC:2:84">
<ows:LowerCorner>-179.99999550841463 -88.99999992161119</ows:LowerCorner>
<ows:UpperCorner>179.99999550841463 88.99999992161118</ows:UpperCorner>
</ows:WGS84BoundingBox>
<Style isDefault="true">
<ows:Title>Default Style</ows:Title>
<ows:Identifier>default</ows:Identifier>
</Style>
<Format>image/png</Format>
<TileMatrixSetLink>
<TileMatrixSet>GoogleMapsCompatible</TileMatrixSet>
</TileMatrixSetLink>
<ResourceURL format="image/png" resourceType="tile" template="http://sampleserver6.arcgisonline.com/arcgis/rest/services/WorldTimeZones/MapServer/WMTS/tile/1.0.0/WorldTimeZones/{Style}/{TileMatrixSet}/{TileMatrix}/{TileRow}/{TileCol}.png" />
</Layer>
<TileMatrixSet>
<ows:Title>GoogleMapsCompatible</ows:Title>
<ows:Abstract>the wellknown 'GoogleMapsCompatible' tile matrix set defined by OGC WMTS specification</ows:Abstract>
<ows:Identifier>GoogleMapsCompatible</ows:Identifier>
<ows:SupportedCRS>urn:ogc:def:crs:EPSG:6.18:3:3857</ows:SupportedCRS>
<WellKnownScaleSet>urn:ogc:def:wkss:OGC:1.0:GoogleMapsCompatible</WellKnownScaleSet>
<TileMatrix>
<ows:Identifier>5</ows:Identifier>
<ScaleDenominator>17471320.75089743</ScaleDenominator>
<TopLeftCorner>-20037508.34278925 20037508.34278925</TopLeftCorner>
<TileWidth>256</TileWidth>
<TileHeight>256</TileHeight>
<MatrixWidth>32</MatrixWidth>
<MatrixHeight>32</MatrixHeight>
</TileMatrix>
</TileMatrixSet>
</Contents>
<ServiceMetadataURL xlink:href="http://sampleserver6.arcgisonline.com/arcgis/rest/services/WorldTimeZones/MapServer/WMTS/1.0.0/WMTSCapabilities.xml" />
</Capabilities>

View File

@@ -0,0 +1,92 @@
<?xml version="1.0" encoding="UTF-8"?>
<Capabilities xmlns="http://www.opengis.net/wmts/1.0" xmlns:ows="http://www.opengis.net/ows/1.1" xmlns:xlink="http://www.w3.org/1999/xlink" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:gml="http://www.opengis.net/gml" xsi:schemaLocation="http://www.opengis.net/wmts/1.0 http://schemas.opengis.net/wmts/1.0/wmtsGetCapabilities_response.xsd" version="1.0.0">
<ows:OperationsMetadata>
<ows:Operation name="GetCapabilities">
<ows:DCP>
<ows:HTTP>
<ows:Get xlink:href="http://wmts.geo.admin.ch/1.0.0/WMTSCapabilities.xml">
<ows:Constraint name="GetEncoding">
<ows:AllowedValues>
<ows:Value>REST</ows:Value>
</ows:AllowedValues>
</ows:Constraint>
</ows:Get>
</ows:HTTP>
</ows:DCP>
</ows:Operation>
<ows:Operation name="GetTile">
<ows:DCP>
<ows:HTTP>
<ows:Get xlink:href="http://wmts.geo.admin.ch/rest">
<ows:Constraint name="GetEncoding">
<ows:AllowedValues>
<ows:Value>REST</ows:Value>
</ows:AllowedValues>
</ows:Constraint>
</ows:Get>
<ows:Get xlink:href="http://wmts1.geo.admin.ch/rest">
<ows:Constraint name="GetEncoding">
<ows:AllowedValues>
<ows:Value>REST</ows:Value>
</ows:AllowedValues>
</ows:Constraint>
</ows:Get>
<ows:Get xlink:href="http://wmts.geo.admin.ch/kvp">
<ows:Constraint name="GetEncoding">
<ows:AllowedValues>
<ows:Value>KVP</ows:Value>
</ows:AllowedValues>
</ows:Constraint>
</ows:Get>
<ows:Get xlink:href="http://wmts1.geo.admin.ch/kvp">
<ows:Constraint name="GetEncoding">
<ows:AllowedValues>
<ows:Value>KVP</ows:Value>
</ows:AllowedValues>
</ows:Constraint>
</ows:Get>
</ows:HTTP>
</ows:DCP>
</ows:Operation>
</ows:OperationsMetadata>
<Contents>
<Layer>
<ows:Title>Agglomérations et villes isolées</ows:Title>
<ows:Abstract>Les agglomérations et villes isolées (communes non rattachées à une agglomération et comptant au moins 10`000 habitants) font partie des régions danalyse de la statistique suisse. Ce niveau géographique est défini depuis plus de 100 ans, afin de mesurer lurbanisation, phénomène fondamental structurant lorganisation du territoire. Sa fonction principale est de permettre une comparaison spatiale entre des espaces urbains inégalement délimités sur le plan institutionnel. Une version ancienne est appliquée pour la première fois en 1930, puis révisée en 1984 et 1990, toujours sur la base des recensements de la population. La version actuelle classe les 2896 communes de Suisse (état 2000) selon leur appartenance ou pas à une agglomération ou ville isolée en fonction de critères statistiques (Etat et évolution de la population, lien de continuité de la zone bâtie, rapport entre population active occupée et population résidante, structure économique et flux de pendulaires). Les agglomérations et les villes isolées forment l`espace urbain, les territoires restant l`espace rural. La définition des agglomérations de lOFS na pas valeur dobligation légale.</ows:Abstract>
<ows:WGS84BoundingBox>
<ows:LowerCorner>5.140242 45.398181</ows:LowerCorner>
<ows:UpperCorner>11.47757 48.230651</ows:UpperCorner>
</ows:WGS84BoundingBox>
<ows:Identifier>ch.are.agglomerationen_isolierte_staedte-2000</ows:Identifier>
<ows:Metadata xlink:href="http://www.swisstopo.admin.ch/SITiled/world/AdminBoundaries/metadata.htm"/>
<Style>
<ows:Title>Agglomérations et villes isolées</ows:Title>
<ows:Identifier>ch.are.agglomerationen_isolierte_staedte-2000</ows:Identifier>
<LegendURL format="image/png" xlink:href="http://api.geo.admin.ch/legend/ch.are.agglomerationen_isolierte_staedte-2000_fr.png" />
</Style>
<Format>image/png</Format>
<Dimension>
<ows:Identifier>Time</ows:Identifier>
<Default>20090101</Default>
<Value>20090101</Value>
</Dimension>
<TileMatrixSetLink>
<TileMatrixSet>21781</TileMatrixSet>
</TileMatrixSetLink>
</Layer>
<TileMatrixSet>
<ows:Identifier>21781</ows:Identifier>
<ows:SupportedCRS>urn:ogc:def:crs:EPSG:1.0:21781</ows:SupportedCRS>
<TileMatrix>
<ows:Identifier>0</ows:Identifier>
<ScaleDenominator>14285750.5715</ScaleDenominator>
<TopLeftCorner>420000.0 350000.0</TopLeftCorner>
<TileWidth>256</TileWidth>
<TileHeight>256</TileHeight>
<MatrixWidth>1</MatrixWidth>
<MatrixHeight>1</MatrixHeight>
</TileMatrix>
</TileMatrixSet>
</Contents>
<ServiceMetadataURL xlink:href="http://www.opengis.uab.es/SITiled/world/1.0.0/WMTSCapabilities.xml"/>
</Capabilities>

View File

@@ -0,0 +1,78 @@
<?xml version="1.0" encoding="UTF-8"?>
<Capabilities xmlns="http://www.opengis.net/wmts/1.0" xmlns:ows="http://www.opengis.net/ows/1.1" xmlns:xlink="http://www.w3.org/1999/xlink" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:gml="http://www.opengis.net/gml" xsi:schemaLocation="http://www.opengis.net/wmts/1.0 http://schemas.opengis.net/wmts/1.0/wmtsGetCapabilities_response.xsd" version="1.0.0">
<ows:OperationsMetadata>
<ows:Operation name="GetCapabilities">
<ows:DCP>
<ows:HTTP>
<ows:Get xlink:href="http://wmts.geo.admin.ch/1.0.0/WMTSCapabilities.xml">
<ows:Constraint name="GetEncoding">
<ows:AllowedValues>
<ows:Value>REST</ows:Value>
</ows:AllowedValues>
</ows:Constraint>
</ows:Get>
</ows:HTTP>
</ows:DCP>
</ows:Operation>
<ows:Operation name="GetTile">
<ows:DCP>
<ows:HTTP>
<ows:Get xlink:href="http://wmts.geo.admin.ch/kvp">
<ows:Constraint name="GetEncoding">
<ows:AllowedValues>
<ows:Value>KVP</ows:Value>
</ows:AllowedValues>
</ows:Constraint>
</ows:Get>
<ows:Get xlink:href="http://wmts.geo.admin.ch/rest">
<ows:Constraint name="GetEncoding">
<ows:AllowedValues>
<ows:Value>REST</ows:Value>
</ows:AllowedValues>
</ows:Constraint>
</ows:Get>
</ows:HTTP>
</ows:DCP>
</ows:Operation>
</ows:OperationsMetadata>
<Contents>
<Layer>
<ows:Title>Agglomérations et villes isolées</ows:Title>
<ows:Abstract>Les agglomérations et villes isolées (communes non rattachées à une agglomération et comptant au moins 10`000 habitants) font partie des régions danalyse de la statistique suisse. Ce niveau géographique est défini depuis plus de 100 ans, afin de mesurer lurbanisation, phénomène fondamental structurant lorganisation du territoire. Sa fonction principale est de permettre une comparaison spatiale entre des espaces urbains inégalement délimités sur le plan institutionnel. Une version ancienne est appliquée pour la première fois en 1930, puis révisée en 1984 et 1990, toujours sur la base des recensements de la population. La version actuelle classe les 2896 communes de Suisse (état 2000) selon leur appartenance ou pas à une agglomération ou ville isolée en fonction de critères statistiques (Etat et évolution de la population, lien de continuité de la zone bâtie, rapport entre population active occupée et population résidante, structure économique et flux de pendulaires). Les agglomérations et les villes isolées forment l`espace urbain, les territoires restant l`espace rural. La définition des agglomérations de lOFS na pas valeur dobligation légale.</ows:Abstract>
<ows:WGS84BoundingBox>
<ows:LowerCorner>5.140242 45.398181</ows:LowerCorner>
<ows:UpperCorner>11.47757 48.230651</ows:UpperCorner>
</ows:WGS84BoundingBox>
<ows:Identifier>ch.are.agglomerationen_isolierte_staedte-2000</ows:Identifier>
<ows:Metadata xlink:href="http://www.swisstopo.admin.ch/SITiled/world/AdminBoundaries/metadata.htm"/>
<Style>
<ows:Title>Agglomérations et villes isolées</ows:Title>
<ows:Identifier>ch.are.agglomerationen_isolierte_staedte-2000</ows:Identifier>
<LegendURL format="image/png" xlink:href="http://api.geo.admin.ch/legend/ch.are.agglomerationen_isolierte_staedte-2000_fr.png" />
</Style>
<Format>image/png</Format>
<Dimension>
<ows:Identifier>Time</ows:Identifier>
<Default>20090101</Default>
<Value>20090101</Value>
</Dimension>
<TileMatrixSetLink>
<TileMatrixSet>21781</TileMatrixSet>
</TileMatrixSetLink>
</Layer>
<TileMatrixSet>
<ows:Identifier>21781</ows:Identifier>
<ows:SupportedCRS>urn:ogc:def:crs:EPSG:1.0:21781</ows:SupportedCRS>
<TileMatrix>
<ows:Identifier>0</ows:Identifier>
<ScaleDenominator>14285750.5715</ScaleDenominator>
<TopLeftCorner>420000.0 350000.0</TopLeftCorner>
<TileWidth>256</TileWidth>
<TileHeight>256</TileHeight>
<MatrixWidth>1</MatrixWidth>
<MatrixHeight>1</MatrixHeight>
</TileMatrix>
</TileMatrixSet>
</Contents>
<ServiceMetadataURL xlink:href="http://www.opengis.uab.es/SITiled/world/1.0.0/WMTSCapabilities.xml"/>
</Capabilities>

View File

@@ -0,0 +1,160 @@
<?xml version="1.0" encoding="UTF-8"?>
<Capabilities xmlns="http://www.opengis.net/wmts/1.0" xmlns:ows="http://www.opengis.net/ows/1.1" xmlns:xlink="http://www.w3.org/1999/xlink" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:gml="http://www.opengis.net/gml" xsi:schemaLocation="http://www.opengis.net/wmts/1.0 http://schemas.opengis.net/wmts/1.0/wmtsGetCapabilities_response.xsd" version="1.0.0">
<ows:ServiceIdentification>
<ows:Title>Web Map Tile Service</ows:Title>
<ows:Abstract>Service that contrains the map access interface to some TileMatrixSets</ows:Abstract>
<ows:Keywords>
<ows:Keyword>tile</ows:Keyword>
<ows:Keyword>tile matrix set</ows:Keyword>
<ows:Keyword>map</ows:Keyword>
</ows:Keywords>
<ows:ServiceType>OGC WMTS</ows:ServiceType>
<ows:ServiceTypeVersion>1.0.0</ows:ServiceTypeVersion>
<ows:Fees>none</ows:Fees>
<ows:AccessConstraints>none</ows:AccessConstraints>
</ows:ServiceIdentification>
<ows:ServiceProvider>
<ows:ProviderName>MiraMon</ows:ProviderName>
<ows:ProviderSite xlink:href="http://www.creaf.uab.es/miramon"/>
<ows:ServiceContact>
<ows:IndividualName>Joan Maso Pau</ows:IndividualName>
<ows:PositionName>Senior Software Engineer</ows:PositionName>
<ows:ContactInfo>
<ows:Phone>
<ows:Voice>+34 93 581 1312</ows:Voice>
<ows:Facsimile>+34 93 581 4151</ows:Facsimile>
</ows:Phone>
<ows:Address>
<ows:DeliveryPoint>Fac Ciencies UAB</ows:DeliveryPoint>
<ows:City>Bellaterra</ows:City>
<ows:AdministrativeArea>Barcelona</ows:AdministrativeArea>
<ows:PostalCode>08193</ows:PostalCode>
<ows:Country>Spain</ows:Country>
<ows:ElectronicMailAddress>joan.maso@uab.es</ows:ElectronicMailAddress>
</ows:Address>
</ows:ContactInfo>
</ows:ServiceContact>
</ows:ServiceProvider>
<ows:OperationsMetadata>
<ows:Operation name="GetCapabilities">
<ows:DCP>
<ows:HTTP>
<ows:Get xlink:href="http://www.miramon.uab.es/cgi-bin/MiraMon5_0.cgi?">
<ows:Constraint name="GetEncoding">
<ows:AllowedValues>
<ows:Value>KVP</ows:Value>
</ows:AllowedValues>
</ows:Constraint>
</ows:Get>
</ows:HTTP>
</ows:DCP>
</ows:Operation>
<ows:Operation name="GetTile">
<ows:DCP>
<ows:HTTP>
<ows:Get xlink:href="http://www.miramon.uab.es/cgi-bin/MiraMon5_0.cgi?"/>
</ows:HTTP>
</ows:DCP>
</ows:Operation>
<ows:Operation name="GetFeatureInfo">
<ows:DCP>
<ows:HTTP>
<ows:Get xlink:href="http://www.miramon.uab.es/cgi-bin/MiraMon5_0.cgi?"/>
</ows:HTTP>
</ows:DCP>
</ows:Operation>
</ows:OperationsMetadata>
<Contents>
<Layer>
<ows:Title>Coastlines</ows:Title>
<ows:Abstract>Coastline/shorelines (BA010)</ows:Abstract>
<ows:WGS84BoundingBox>
<ows:LowerCorner>-180 -90</ows:LowerCorner>
<ows:UpperCorner>180 90</ows:UpperCorner>
</ows:WGS84BoundingBox>
<ows:Identifier>coastlines</ows:Identifier>
<ResourceURL format="image/png" resourceType="tile"
template="http://a.example.com/wmts/coastlines/{TileMatrix}/{TileRow}/{TileCol}.png" />
<ResourceURL format="image/png" resourceType="tile"
template="http://b.example.com/wmts/coastlines/{TileMatrix}/{TileRow}/{TileCol}.png" />
<ResourceURL format="application/gml+xml; version=3.1" resourceType="FeatureInfo"
template="http://www.example.com/wmts/coastlines/{TileMatrixSet}/{TileMatrix}/{TileRow}/{TileCol}/{J}/{I}.xml" />
<Style isDefault="true">
<ows:Title>Dark Blue</ows:Title>
<ows:Identifier>DarkBlue</ows:Identifier>
<LegendURL format="image/png" xlink:href="http://www.miramon.uab.es/wmts/Coastlines/coastlines_darkBlue.png"/>
</Style>
<Style>
<ows:Title>Thick And Red</ows:Title>
<ows:Abstract>Specify this style if you want your maps to have thick red coastlines.
</ows:Abstract>
<ows:Identifier>thickAndRed</ows:Identifier>
</Style>
<Format>image/png</Format>
<Format>image/gif</Format>
<Dimension>
<ows:Title>Time</ows:Title>
<ows:Abstract>Monthly datasets</ows:Abstract>
<ows:Identifier>TIME</ows:Identifier>
<Value>2007-05</Value>
<Value>2007-06</Value>
<Value>2007-07</Value>
<Default>default</Default>
</Dimension>
<TileMatrixSetLink>
<TileMatrixSet>BigWorld</TileMatrixSet>
</TileMatrixSetLink>
</Layer>
<TileMatrixSet>
<ows:Identifier>BigWorld</ows:Identifier>
<ows:SupportedCRS>urn:ogc:def:crs:OGC:1.3:CRS84</ows:SupportedCRS>
<TileMatrix>
<ows:Identifier>1e6</ows:Identifier>
<ScaleDenominator>1e6</ScaleDenominator>
<TopLeftCorner>-180 84</TopLeftCorner>
<TileWidth>256</TileWidth>
<TileHeight>256</TileHeight>
<MatrixWidth>60000</MatrixWidth>
<MatrixHeight>50000</MatrixHeight>
</TileMatrix>
<TileMatrix>
<ows:Identifier>2.5e6</ows:Identifier>
<ScaleDenominator>2.5e6</ScaleDenominator>
<TopLeftCorner>-180 84</TopLeftCorner>
<TileWidth>256</TileWidth>
<TileHeight>256</TileHeight>
<MatrixWidth>9000</MatrixWidth>
<MatrixHeight>7000</MatrixHeight>
</TileMatrix>
</TileMatrixSet>
</Contents>
<Themes>
<Theme>
<ows:Title>Foundation</ows:Title>
<ows:Abstract>"Digital Chart Of The World" data</ows:Abstract>
<ows:Identifier>Foundation</ows:Identifier>
<Theme>
<ows:Title>Boundaries</ows:Title>
<ows:Identifier>Boundaries</ows:Identifier>
<LayerRef>coastlines</LayerRef>
<LayerRef>politicalBoundaries</LayerRef>
<LayerRef>depthContours</LayerRef>
</Theme>
<Theme>
<ows:Title>Transportation</ows:Title>
<ows:Identifier>Transportation</ows:Identifier>
<LayerRef>roads</LayerRef>
<LayerRef>railroads</LayerRef>
<LayerRef>airports</LayerRef>
</Theme>
</Theme>
<Theme>
<ows:Title>World Geology</ows:Title>
<ows:Identifier>World Geology</ows:Identifier>
<LayerRef>worldAgeRockType</LayerRef>
<LayerRef>worldFaultLines</LayerRef>
<LayerRef>felsicMagmatic</LayerRef>
<LayerRef>maficMagmatic</LayerRef>
</Theme>
</Themes>
</Capabilities>

View File

@@ -0,0 +1,72 @@
<?xml version="1.0" encoding="UTF-8"?>
<Capabilities xmlns="http://www.opengis.net/wmts/1.0" xmlns:ows="http://www.opengis.net/ows/1.1" xmlns:xlink="http://www.w3.org/1999/xlink" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:gml="http://www.opengis.net/gml" xsi:schemaLocation="http://www.opengis.net/wmts/1.0 http://schemas.opengis.net/wmts/1.0/wmtsGetCapabilities_response.xsd" version="1.0.0">
<ows:OperationsMetadata>
<ows:Operation name="GetCapabilities">
<ows:DCP>
<ows:HTTP>
<ows:Get xlink:href="http://wmts.geo.admin.ch/1.0.0/WMTSCapabilities.xml">
<ows:Constraint name="GetEncoding">
<ows:AllowedValues>
<ows:Value>REST</ows:Value>
</ows:AllowedValues>
</ows:Constraint>
</ows:Get>
</ows:HTTP>
</ows:DCP>
</ows:Operation>
<ows:Operation name="GetTile">
<ows:DCP>
<ows:HTTP>
<ows:Get xlink:href="http://wmts.geo.admin.ch/">
<ows:Constraint name="GetEncoding">
<ows:AllowedValues>
<ows:Value>REST</ows:Value>
</ows:AllowedValues>
</ows:Constraint>
</ows:Get>
</ows:HTTP>
</ows:DCP>
</ows:Operation>
</ows:OperationsMetadata>
<Contents>
<Layer>
<ows:Title>Agglomérations et villes isolées</ows:Title>
<ows:Abstract>Les agglomérations et villes isolées (communes non rattachées à une agglomération et comptant au moins 10`000 habitants) font partie des régions danalyse de la statistique suisse. Ce niveau géographique est défini depuis plus de 100 ans, afin de mesurer lurbanisation, phénomène fondamental structurant lorganisation du territoire. Sa fonction principale est de permettre une comparaison spatiale entre des espaces urbains inégalement délimités sur le plan institutionnel. Une version ancienne est appliquée pour la première fois en 1930, puis révisée en 1984 et 1990, toujours sur la base des recensements de la population. La version actuelle classe les 2896 communes de Suisse (état 2000) selon leur appartenance ou pas à une agglomération ou ville isolée en fonction de critères statistiques (Etat et évolution de la population, lien de continuité de la zone bâtie, rapport entre population active occupée et population résidante, structure économique et flux de pendulaires). Les agglomérations et les villes isolées forment l`espace urbain, les territoires restant l`espace rural. La définition des agglomérations de lOFS na pas valeur dobligation légale.</ows:Abstract>
<ows:WGS84BoundingBox>
<ows:LowerCorner>5.140242 45.398181</ows:LowerCorner>
<ows:UpperCorner>11.47757 48.230651</ows:UpperCorner>
</ows:WGS84BoundingBox>
<ows:Identifier>ch.are.agglomerationen_isolierte_staedte-2000</ows:Identifier>
<ows:Metadata xlink:href="http://www.swisstopo.admin.ch/SITiled/world/AdminBoundaries/metadata.htm"/>
<Style>
<ows:Title>Agglomérations et villes isolées</ows:Title>
<ows:Identifier>ch.are.agglomerationen_isolierte_staedte-2000</ows:Identifier>
<LegendURL format="image/png" xlink:href="http://api.geo.admin.ch/legend/ch.are.agglomerationen_isolierte_staedte-2000_fr.png" />
</Style>
<Format>image/png</Format>
<Dimension>
<ows:Identifier>Time</ows:Identifier>
<Default>20090101</Default>
<Value>20090101</Value>
</Dimension>
<TileMatrixSetLink>
<TileMatrixSet>21781</TileMatrixSet>
</TileMatrixSetLink>
<ResourceURL format="image/png" resourceType="tile" template="http://wmts.geo.admin.ch/1.0.0/ch.are.agglomerationen_isolierte_staedte-2000/default/{Time}/{TileMatrixSet}/{TileMatrix}/{TileRow}/{TileCol}.png"/>
</Layer>
<TileMatrixSet>
<ows:Identifier>21781</ows:Identifier>
<ows:SupportedCRS>urn:ogc:def:crs:EPSG:21781</ows:SupportedCRS>
<TileMatrix>
<ows:Identifier>0</ows:Identifier>
<ScaleDenominator>14285750.5715</ScaleDenominator>
<TopLeftCorner>420000.0 350000.0</TopLeftCorner>
<TileWidth>256</TileWidth>
<TileHeight>256</TileHeight>
<MatrixWidth>1</MatrixWidth>
<MatrixHeight>1</MatrixHeight>
</TileMatrix>
</TileMatrixSet>
</Contents>
<ServiceMetadataURL xlink:href="http://www.opengis.uab.es/SITiled/world/1.0.0/WMTSCapabilities.xml"/>
</Capabilities>

View File

@@ -0,0 +1,72 @@
<?xml version="1.0" encoding="UTF-8"?>
<Capabilities xmlns="http://www.opengis.net/wmts/1.0" xmlns:ows="http://www.opengis.net/ows/1.1" xmlns:xlink="http://www.w3.org/1999/xlink" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:gml="http://www.opengis.net/gml" xsi:schemaLocation="http://www.opengis.net/wmts/1.0 http://schemas.opengis.net/wmts/1.0/wmtsGetCapabilities_response.xsd" version="1.0.0">
<ows:OperationsMetadata>
<ows:Operation name="GetCapabilities">
<ows:DCP>
<ows:HTTP>
<ows:Get xlink:href="http://wmts.geo.admin.ch/1.0.0/WMTSCapabilities.xml">
<ows:Constraint name="GetEncoding">
<ows:AllowedValues>
<ows:Value>REST</ows:Value>
</ows:AllowedValues>
</ows:Constraint>
</ows:Get>
</ows:HTTP>
</ows:DCP>
</ows:Operation>
<ows:Operation name="GetTile">
<ows:DCP>
<ows:HTTP>
<ows:Get xlink:href="http://wmts.geo.admin.ch/">
<ows:Constraint name="GetEncoding">
<ows:AllowedValues>
<ows:Value>REST</ows:Value>
</ows:AllowedValues>
</ows:Constraint>
</ows:Get>
</ows:HTTP>
</ows:DCP>
</ows:Operation>
</ows:OperationsMetadata>
<Contents>
<Layer>
<ows:Title>Agglomérations et villes isolées</ows:Title>
<ows:Abstract>Les agglomérations et villes isolées (communes non rattachées à une agglomération et comptant au moins 10`000 habitants) font partie des régions danalyse de la statistique suisse. Ce niveau géographique est défini depuis plus de 100 ans, afin de mesurer lurbanisation, phénomène fondamental structurant lorganisation du territoire. Sa fonction principale est de permettre une comparaison spatiale entre des espaces urbains inégalement délimités sur le plan institutionnel. Une version ancienne est appliquée pour la première fois en 1930, puis révisée en 1984 et 1990, toujours sur la base des recensements de la population. La version actuelle classe les 2896 communes de Suisse (état 2000) selon leur appartenance ou pas à une agglomération ou ville isolée en fonction de critères statistiques (Etat et évolution de la population, lien de continuité de la zone bâtie, rapport entre population active occupée et population résidante, structure économique et flux de pendulaires). Les agglomérations et les villes isolées forment l`espace urbain, les territoires restant l`espace rural. La définition des agglomérations de lOFS na pas valeur dobligation légale.</ows:Abstract>
<ows:WGS84BoundingBox>
<ows:LowerCorner>5.140242 45.398181</ows:LowerCorner>
<ows:UpperCorner>11.47757 48.230651</ows:UpperCorner>
</ows:WGS84BoundingBox>
<ows:Identifier>ch.are.agglomerationen_isolierte_staedte-2000</ows:Identifier>
<ows:Metadata xlink:href="http://www.swisstopo.admin.ch/SITiled/world/AdminBoundaries/metadata.htm"/>
<Style>
<ows:Title>Agglomérations et villes isolées</ows:Title>
<ows:Identifier>ch.are.agglomerationen_isolierte_staedte-2000</ows:Identifier>
<LegendURL format="image/png" xlink:href="http://api.geo.admin.ch/legend/ch.are.agglomerationen_isolierte_staedte-2000_fr.png" />
</Style>
<Format>image/png</Format>
<Dimension>
<ows:Identifier>Time</ows:Identifier>
<Default>20090101</Default>
<Value>20090101</Value>
</Dimension>
<TileMatrixSetLink>
<TileMatrixSet>21781</TileMatrixSet>
</TileMatrixSetLink>
<ResourceURL format="image/png" resourceType="tile" template="http://wmts.geo.admin.ch/1.0.0/ch.are.agglomerationen_isolierte_staedte-2000/default/{Time}/{TileMatrixSet}/{TileMatrix}/{TileRow}/{TileCol}.png"/>
</Layer>
<TileMatrixSet>
<ows:Identifier>21781</ows:Identifier>
<ows:SupportedCRS>urn:ogc:def:crs:EPSG:1.0:21781</ows:SupportedCRS>
<TileMatrix>
<ows:Identifier>0</ows:Identifier>
<ScaleDenominator>14285750.5715</ScaleDenominator>
<TopLeftCorner>420000.0 350000.0</TopLeftCorner>
<TileWidth>256</TileWidth>
<TileHeight>256</TileHeight>
<MatrixWidth>1</MatrixWidth>
<MatrixHeight>1</MatrixHeight>
</TileMatrix>
</TileMatrixSet>
</Contents>
<ServiceMetadataURL xlink:href="http://www.opengis.uab.es/SITiled/world/1.0.0/WMTSCapabilities.xml"/>
</Capabilities>

View File

@@ -0,0 +1,126 @@
<?xml version="1.0" encoding="UTF-8"?>
<Capabilities xmlns="http://www.opengis.net/wmts/1.0" xmlns:ows="http://www.opengis.net/ows/1.1" xmlns:xlink="http://www.w3.org/1999/xlink" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:gml="http://www.opengis.net/gml" xsi:schemaLocation="http://www.opengis.net/wmts/1.0 http://schemas.opengis.net/wmts/1.0/wmtsGetCapabilities_response.xsd" version="1.0.0">
<ows:ServiceIdentification>
<ows:Title>Federal Geodata Infrastructure of Switzerland</ows:Title>
<ows:Abstract>Some Geodata are subject to license and fees</ows:Abstract>
<ows:Keywords>
<ows:Keyword>FGDI</ows:Keyword>
<ows:Keyword>Pixelkarte</ows:Keyword>
<ows:Keyword>Switzerland</ows:Keyword>
</ows:Keywords>
<ows:ServiceType>OGC WMTS</ows:ServiceType>
<ows:ServiceTypeVersion>1.0.0</ows:ServiceTypeVersion>
<ows:Fees>yes</ows:Fees>
<ows:AccessConstraints>license</ows:AccessConstraints>
</ows:ServiceIdentification>
<ows:ServiceProvider>
<ows:ProviderName>swisstopo</ows:ProviderName>
<ows:ProviderSite xlink:href="http://www.swisstopo.admin.ch"/>
<ows:ServiceContact>
<ows:IndividualName>David Oesch</ows:IndividualName>
<ows:PositionName></ows:PositionName>
<ows:ContactInfo>
<ows:Phone>
<ows:Voice>+41 (0)31 / 963 21 11</ows:Voice>
<ows:Facsimile>+41 (0)31 / 963 24 59</ows:Facsimile>
</ows:Phone>
<ows:Address>
<ows:DeliveryPoint>swisstopo</ows:DeliveryPoint>
<ows:City>Bern</ows:City>
<ows:AdministrativeArea>BE</ows:AdministrativeArea>
<ows:PostalCode>3084</ows:PostalCode>
<ows:Country>Switzerland</ows:Country>
<ows:ElectronicMailAddress/>
</ows:Address>
</ows:ContactInfo>
</ows:ServiceContact>
</ows:ServiceProvider>
<ows:OperationsMetadata>
<ows:Operation name="GetCapabilities">
<ows:DCP>
<ows:HTTP>
<ows:Get xlink:href="http://wmts.geo.admin.ch/1.0.0/WMTSCapabilities.xml">
<ows:Constraint name="GetEncoding">
<ows:AllowedValues>
<ows:Value>REST</ows:Value>
</ows:AllowedValues>
</ows:Constraint>
</ows:Get>
</ows:HTTP>
</ows:DCP>
</ows:Operation>
<ows:Operation name="GetTile">
<ows:DCP>
<ows:HTTP>
<ows:Get xlink:href="http://wmts.geo.admin.ch/">
<ows:Constraint name="GetEncoding">
<ows:AllowedValues>
<ows:Value>REST</ows:Value>
</ows:AllowedValues>
</ows:Constraint>
</ows:Get>
</ows:HTTP>
</ows:DCP>
</ows:Operation>
</ows:OperationsMetadata>
<Contents>
<Layer>
<ows:Title>Agglomérations et villes isolées</ows:Title>
<ows:Abstract>Les agglomérations et villes isolées (communes non rattachées à une agglomération et comptant au moins 10`000 habitants) font partie des régions danalyse de la statistique suisse. Ce niveau géographique est défini depuis plus de 100 ans, afin de mesurer lurbanisation, phénomène fondamental structurant lorganisation du territoire. Sa fonction principale est de permettre une comparaison spatiale entre des espaces urbains inégalement délimités sur le plan institutionnel. Une version ancienne est appliquée pour la première fois en 1930, puis révisée en 1984 et 1990, toujours sur la base des recensements de la population. La version actuelle classe les 2896 communes de Suisse (état 2000) selon leur appartenance ou pas à une agglomération ou ville isolée en fonction de critères statistiques (Etat et évolution de la population, lien de continuité de la zone bâtie, rapport entre population active occupée et population résidante, structure économique et flux de pendulaires). Les agglomérations et les villes isolées forment l`espace urbain, les territoires restant l`espace rural. La définition des agglomérations de lOFS na pas valeur dobligation légale.</ows:Abstract>
<ows:WGS84BoundingBox>
<ows:LowerCorner>5.140242 45.398181</ows:LowerCorner>
<ows:UpperCorner>11.47757 48.230651</ows:UpperCorner>
</ows:WGS84BoundingBox>
<ows:Identifier>ch.are.agglomerationen_isolierte_staedte-2000</ows:Identifier>
<ows:Metadata xlink:href="http://www.swisstopo.admin.ch/SITiled/world/AdminBoundaries/metadata.htm"/>
<Style>
<ows:Title>Agglomérations et villes isolées</ows:Title>
<ows:Identifier>ch.are.agglomerationen_isolierte_staedte-2000</ows:Identifier>
<LegendURL format="image/png" xlink:href="http://api.geo.admin.ch/legend/ch.are.agglomerationen_isolierte_staedte-2000_fr.png" />
</Style>
<Format>image/png</Format>
<Dimension>
<ows:Identifier>Time</ows:Identifier>
<Default>20090101</Default>
<Value>20090101</Value>
</Dimension>
<TileMatrixSetLink>
<TileMatrixSet>21781</TileMatrixSet>
</TileMatrixSetLink>
<ResourceURL format="image/png" resourceType="tile" template="http://wmts.geo.admin.ch/1.0.0/ch.are.agglomerationen_isolierte_staedte-2000/default/{Time}/{TileMatrixSet}/{TileMatrix}/{TileRow}/{TileCol}.png"/>
<ResourceURL format="image/png" resourceType="tile" template="http://wmts1.geo.admin.ch/1.0.0/ch.are.agglomerationen_isolierte_staedte-2000/default/{Time}/{TileMatrixSet}/{TileMatrix}/{TileRow}/{TileCol}.png"/>
</Layer>
<TileMatrixSet>
<ows:Identifier>21781</ows:Identifier>
<ows:SupportedCRS>urn:ogc:def:crs:EPSG::21781</ows:SupportedCRS>
<TileMatrix>
<ows:Identifier>0</ows:Identifier>
<ScaleDenominator>14285750.5715</ScaleDenominator>
<TopLeftCorner>420000.0 350000.0</TopLeftCorner>
<TileWidth>256</TileWidth>
<TileHeight>256</TileHeight>
<MatrixWidth>1</MatrixWidth>
<MatrixHeight>1</MatrixHeight>
</TileMatrix>
<TileMatrix>
<ows:Identifier>8</ows:Identifier>
<ScaleDenominator>7142875.28575</ScaleDenominator>
<TopLeftCorner>420000.0 350000.0</TopLeftCorner>
<TileWidth>256</TileWidth>
<TileHeight>256</TileHeight>
<MatrixWidth>1</MatrixWidth>
<MatrixHeight>1</MatrixHeight>
</TileMatrix>
<TileMatrix>
<ows:Identifier>12</ows:Identifier>
<ScaleDenominator>3571437.64288</ScaleDenominator>
<TopLeftCorner>420000.0 350000.0</TopLeftCorner>
<TileWidth>256</TileWidth>
<TileHeight>256</TileHeight>
<MatrixWidth>2</MatrixWidth>
<MatrixHeight>2</MatrixHeight>
</TileMatrix>
</TileMatrixSet>
</Contents>
<ServiceMetadataURL xlink:href="http://www.opengis.uab.es/SITiled/world/1.0.0/WMTSCapabilities.xml"/>
</Capabilities>