Merge branch 'master' of github.com:openlayers/ol3 into vector

Resolved conflicts:
  src/ol/renderer/canvas/canvasrenderer.js
This commit is contained in:
Tim Schaub
2013-02-20 00:38:07 -07:00
38 changed files with 1717 additions and 219 deletions

View File

@@ -72,12 +72,12 @@ describe('ol.Map', function() {
beforeEach(function() {
options = {
rotate: false,
doubleClickZoom: false,
dragPan: false,
keyboard: false,
mouseWheelZoom: false,
shiftDragZoom: false
rotate: false,
doubleClickZoom: false,
dragPan: false,
keyboard: false,
mouseWheelZoom: false,
shiftDragZoom: false
};
});

View File

@@ -0,0 +1,183 @@
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() {
var obj, serviceIdentification, serviceProvider, operationsMetadata,
contactInfo;
runs(function() {
var url = 'spec/ol/parser/ogc/xml/wmtscapabilities_v1_0_0/' +
'ogcsample.xml';
goog.net.XhrIo.send(url, function(e) {
var xhr = e.target;
obj = parser.read(xhr.getResponseXml());
serviceIdentification = obj.serviceIdentification;
serviceProvider = obj.serviceProvider;
operationsMetadata = obj.operationsMetadata;
contactInfo = serviceProvider.serviceContact.contactInfo;
});
});
waitsFor(function() {
return (obj !== undefined);
}, 'XHR timeout', 1000);
runs(function() {
expect(serviceIdentification.title).toEqual('Web Map Tile Service');
expect(serviceIdentification.serviceTypeVersion).toEqual('1.0.0');
expect(serviceIdentification.serviceType.value).toEqual('OGC WMTS');
expect(serviceProvider.providerName).toEqual('MiraMon');
var url = 'http://www.creaf.uab.es/miramon';
expect(serviceProvider.providerSite).toEqual(url);
var name = 'Joan Maso Pau';
expect(serviceProvider.serviceContact.individualName).toEqual(name);
var position = 'Senior Software Engineer';
expect(serviceProvider.serviceContact.positionName).toEqual(position);
expect(contactInfo.address.administrativeArea).toEqual('Barcelona');
expect(contactInfo.address.city).toEqual('Bellaterra');
expect(contactInfo.address.country).toEqual('Spain');
expect(contactInfo.address.deliveryPoint).toEqual('Fac Ciencies UAB');
var email = 'joan.maso@uab.es';
expect(contactInfo.address.electronicMailAddress).toEqual(email);
expect(contactInfo.address.postalCode).toEqual('08193');
expect(contactInfo.phone.voice).toEqual('+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).toEqual(url);
dcp = operationsMetadata.GetCapabilities.dcp;
expect(dcp.http.get[0].constraints.GetEncoding.allowedValues).toEqual(
{'KVP': true});
url = 'http://www.miramon.uab.es/cgi-bin/MiraMon5_0.cgi?';
dcp = operationsMetadata.GetFeatureInfo.dcp;
expect(dcp.http.get[0].url).toEqual(url);
dcp = operationsMetadata.GetFeatureInfo.dcp;
expect(dcp.http.get[0].constraints).toBeUndefined();
url = 'http://www.miramon.uab.es/cgi-bin/MiraMon5_0.cgi?';
expect(operationsMetadata.GetTile.dcp.http.get[0].url).toEqual(url);
dcp = operationsMetadata.GetTile.dcp;
expect(dcp.http.get[0].constraints).toBeUndefined();
});
});
});
describe('test layers', function() {
it('Test layers', function() {
var obj, contents, layer, wgs84Bbox, dimensions;
runs(function() {
var url = 'spec/ol/parser/ogc/xml/wmtscapabilities_v1_0_0/' +
'ogcsample.xml';
goog.net.XhrIo.send(url, function(e) {
var xhr = e.target;
obj = parser.read(xhr.getResponseXml());
contents = obj.contents;
layer = contents.layers[0];
wgs84Bbox = layer.bounds;
dimensions = layer.dimensions;
});
});
waitsFor(function() {
return (obj !== undefined);
}, 'XHR timeout', 1000);
runs(function() {
expect(contents.layers.length).toEqual(1);
expect(layer['abstract']).toEqual('Coastline/shorelines (BA010)');
expect(layer.identifier).toEqual('coastlines');
expect(layer.title).toEqual('Coastlines');
expect(layer.formats.length).toEqual(2);
expect(layer.formats[0]).toEqual('image/png');
expect(layer.formats[1]).toEqual('image/gif');
expect(layer.styles.length).toEqual(2);
expect(layer.styles[0].identifier).toEqual('DarkBlue');
expect(layer.styles[0].isDefault).toBeTruthy();
expect(layer.styles[0].title).toEqual('Dark Blue');
var url = 'http://www.miramon.uab.es/wmts/Coastlines/' +
'coastlines_darkBlue.png';
expect(layer.styles[0].legend.href).toEqual(url);
expect(layer.styles[0].legend.format).toEqual('image/png');
expect(layer.styles[1].identifier).toEqual('thickAndRed');
expect(!layer.styles[1].isDefault).toBeTruthy();
expect(layer.styles[1].title).toEqual('Thick And Red');
expect(layer.styles[1].legend).toBeUndefined();
expect(layer.tileMatrixSetLinks.length).toEqual(1);
expect(layer.tileMatrixSetLinks[0].tileMatrixSet).toEqual('BigWorld');
expect(wgs84Bbox instanceof ol.Extent).toBeTruthy();
expect(wgs84Bbox.minX).toEqual(-180.0);
expect(wgs84Bbox.maxX).toEqual(180.0);
expect(wgs84Bbox.minY).toEqual(-90.0);
expect(wgs84Bbox.maxY).toEqual(90.0);
expect(layer.resourceUrl.tile.format).toEqual('image/png');
var tpl = 'http://www.example.com/wmts/coastlines/{TileMatrix}/' +
'{TileRow}/{TileCol}.png';
expect(layer.resourceUrl.tile.template).toEqual(tpl);
var format = 'application/gml+xml; version=3.1';
expect(layer.resourceUrl.FeatureInfo.format).toEqual(format);
tpl = 'http://www.example.com/wmts/coastlines/{TileMatrixSet}/' +
'{TileMatrix}/{TileRow}/{TileCol}/{J}/{I}.xml';
expect(layer.resourceUrl.FeatureInfo.template).toEqual(tpl);
expect(layer.resourceUrls[0].format).toEqual('image/png');
expect(layer.resourceUrls[0].resourceType).toEqual('tile');
tpl = 'http://www.example.com/wmts/coastlines/{TileMatrix}/' +
'{TileRow}/{TileCol}.png';
expect(layer.resourceUrls[0].template).toEqual(tpl);
format = 'application/gml+xml; version=3.1';
expect(layer.resourceUrls[1].format).toEqual(format);
expect(layer.resourceUrls[1].resourceType).toEqual('FeatureInfo');
tpl = 'http://www.example.com/wmts/coastlines/{TileMatrixSet}/' +
'{TileMatrix}/{TileRow}/{TileCol}/{J}/{I}.xml';
expect(layer.resourceUrls[1].template).toEqual(tpl);
expect(dimensions.length).toEqual(1);
expect(dimensions[0].title).toEqual('Time');
expect(dimensions[0]['abstract']).toEqual('Monthly datasets');
expect(dimensions[0].identifier).toEqual('TIME');
expect(dimensions[0]['default']).toEqual('default');
expect(dimensions[0].values.length).toEqual(3);
expect(dimensions[0].values[0]).toEqual('2007-05');
expect(dimensions[0].values[1]).toEqual('2007-06');
expect(dimensions[0].values[1]).toEqual('2007-06');
expect(dimensions[0].values[2]).toEqual('2007-07');
});
});
});
describe('test tileMatrixSets', function() {
it('Test tileMatrixSets', function() {
var obj, tileMatrixSets, bigWorld;
runs(function() {
var url = 'spec/ol/parser/ogc/xml/wmtscapabilities_v1_0_0/' +
'ogcsample.xml';
goog.net.XhrIo.send(url, function(e) {
var xhr = e.target;
obj = parser.read(xhr.getResponseXml());
tileMatrixSets = obj.contents.tileMatrixSets;
bigWorld = tileMatrixSets['BigWorld'];
});
});
waitsFor(function() {
return (obj !== undefined);
}, 'XHR timeout', 1000);
runs(function() {
expect(bigWorld).toBeDefined();
expect(bigWorld.identifier).toEqual('BigWorld');
expect(bigWorld.matrixIds.length).toEqual(2);
expect(bigWorld.matrixIds[0].identifier).toEqual('1e6');
expect(bigWorld.matrixIds[0].matrixHeight).toEqual(50000);
expect(bigWorld.matrixIds[0].matrixWidth).toEqual(60000);
expect(bigWorld.matrixIds[0].scaleDenominator).toEqual(1000000);
expect(bigWorld.matrixIds[0].tileWidth).toEqual(256);
expect(bigWorld.matrixIds[0].tileHeight).toEqual(256);
expect(bigWorld.matrixIds[0].topLeftCorner.x).toEqual(-180);
expect(bigWorld.matrixIds[0].topLeftCorner.y).toEqual(84);
expect(bigWorld.matrixIds[1].identifier).toEqual('2.5e6');
expect(bigWorld.matrixIds[1].matrixHeight).toEqual(7000);
expect(bigWorld.matrixIds[1].matrixWidth).toEqual(9000);
expect(bigWorld.matrixIds[1].scaleDenominator).toEqual(2500000);
expect(bigWorld.matrixIds[1].tileWidth).toEqual(256);
expect(bigWorld.matrixIds[1].tileHeight).toEqual(256);
expect(bigWorld.matrixIds[1].topLeftCorner.x).toEqual(-180);
expect(bigWorld.matrixIds[1].topLeftCorner.y).toEqual(84);
});
});
});
});
goog.require('goog.net.XhrIo');
goog.require('ol.parser.ogc.WMTSCapabilities');

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,158 @@
<?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://www.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>

View File

@@ -94,6 +94,37 @@ describe('ol.tilegrid.TileGrid', function() {
});
});
describe('createForProjection', function() {
it('allows easier creation of a tile grid', function() {
var projection = ol.Projection.getFromCode('EPSG:3857');
var grid = ol.tilegrid.createForProjection(projection);
expect(grid).toBeA(ol.tilegrid.TileGrid);
var resolutions = grid.getResolutions();
expect(resolutions.length).toBe(19);
});
it('accepts a number of zoom levels', function() {
var projection = ol.Projection.getFromCode('EPSG:3857');
var grid = ol.tilegrid.createForProjection(projection, 22);
expect(grid).toBeA(ol.tilegrid.TileGrid);
var resolutions = grid.getResolutions();
expect(resolutions.length).toBe(23);
});
it('accepts a big number of zoom levels', function() {
var projection = ol.Projection.getFromCode('EPSG:3857');
var grid = ol.tilegrid.createForProjection(projection, 23);
expect(grid).toBeA(ol.tilegrid.TileGrid);
var resolutions = grid.getResolutions();
expect(resolutions.length).toBe(24);
});
});
describe('getTileCoordFromCoordAndZ', function() {
describe('Y North, X East', function() {
@@ -258,11 +289,11 @@ describe('ol.tilegrid.TileGrid', function() {
});
});
describe('getTileCoordForCoordAndResolution fractional', function() {
it('returns the expected TileCoord', function() {
var tileSize = new ol.Size(256, 256);
describe('getTileCoordForCoordAndResolution_', function() {
it('returns higher tile coord for intersections by default', function() {
var tileGrid = new ol.tilegrid.TileGrid({
resolutions: [1 / 3],
resolutions: resolutions,
extent: extent,
origin: origin,
tileSize: tileSize
@@ -271,91 +302,53 @@ describe('ol.tilegrid.TileGrid', function() {
var coordinate;
var tileCoord;
// These tests render at a resolution of 1. Because the layer's
// closest resolution is 1/3, the images are scaled by 1/3.
// In this scenario, every third tile will be one pixel wider when
// rendered (0,0 is normal; 1,0 is wider; 0,1 is taller; etc.)
// gets the first tile at the origin
// gets higher tile for edge intersection
coordinate = new ol.Coordinate(0, 0);
tileCoord = tileGrid.getTileCoordForCoordAndResolution(
coordinate, 1);
expect(tileCoord.z).toEqual(0);
tileCoord = tileGrid.getTileCoordForCoordAndResolution_(
coordinate, 100);
expect(tileCoord.z).toEqual(3);
expect(tileCoord.x).toEqual(0);
expect(tileCoord.y).toEqual(0);
// gets the 1,0 tile at 256/3,0
coordinate = new ol.Coordinate(256 / 3, 0);
tileCoord = tileGrid.getTileCoordForCoordAndResolution(
coordinate, 1);
expect(tileCoord.z).toEqual(0);
expect(tileCoord.x).toEqual(1);
expect(tileCoord.y).toEqual(0);
// gets higher tile for edge intersection
coordinate = new ol.Coordinate(100000, 100000);
tileCoord = tileGrid.getTileCoordForCoordAndResolution_(
coordinate, 100);
expect(tileCoord.z).toEqual(3);
expect(tileCoord.x).toEqual(10);
expect(tileCoord.y).toEqual(10);
// still gets the 1,0 tile at 512/3,0 - wider tile
coordinate = new ol.Coordinate(512 / 3, 0);
tileCoord = tileGrid.getTileCoordForCoordAndResolution(
coordinate, 1);
expect(tileCoord.z).toEqual(0);
expect(tileCoord.x).toEqual(1);
expect(tileCoord.y).toEqual(0);
// gets the 2,0 tile at 513/3,0
coordinate = new ol.Coordinate(513 / 3, 0);
tileCoord = tileGrid.getTileCoordForCoordAndResolution(
coordinate, 1);
expect(tileCoord.z).toEqual(0);
expect(tileCoord.x).toEqual(2);
expect(tileCoord.y).toEqual(0);
// gets the 3,0 tile at 768/3,0
coordinate = new ol.Coordinate(768 / 3, 0);
tileCoord = tileGrid.getTileCoordForCoordAndResolution(
coordinate, 1);
expect(tileCoord.z).toEqual(0);
expect(tileCoord.x).toEqual(3);
expect(tileCoord.y).toEqual(0);
// gets the 4,0 tile at 1024/3,0
coordinate = new ol.Coordinate(1024 / 3, 0);
tileCoord = tileGrid.getTileCoordForCoordAndResolution(
coordinate, 1);
expect(tileCoord.z).toEqual(0);
expect(tileCoord.x).toEqual(4);
expect(tileCoord.y).toEqual(0);
// still gets the 4,0 tile at 1280/3,0 - wider tile
coordinate = new ol.Coordinate(1280 / 3, 0);
tileCoord = tileGrid.getTileCoordForCoordAndResolution(
coordinate, 1);
expect(tileCoord.z).toEqual(0);
expect(tileCoord.x).toEqual(4);
expect(tileCoord.y).toEqual(0);
// gets the 5,0 tile at 1281/3,0
coordinate = new ol.Coordinate(1281 / 3, 0);
tileCoord = tileGrid.getTileCoordForCoordAndResolution(
coordinate, 1);
expect(tileCoord.z).toEqual(0);
expect(tileCoord.x).toEqual(5);
expect(tileCoord.y).toEqual(0);
// gets the 0,1 tile at 0,-256/3
coordinate = new ol.Coordinate(0, -256 / 3);
tileCoord = tileGrid.getTileCoordForCoordAndResolution(
coordinate, 1);
expect(tileCoord.z).toEqual(0);
expect(tileCoord.x).toEqual(0);
expect(tileCoord.y).toEqual(-2);
// still gets the 0,1 tile at 0,-512/3 - taller tile
coordinate = new ol.Coordinate(0, -512 / 3);
tileCoord = tileGrid.getTileCoordForCoordAndResolution(
coordinate, 1);
expect(tileCoord.z).toEqual(0);
expect(tileCoord.x).toEqual(0);
expect(tileCoord.y).toEqual(-2);
});
it('handles alt intersection policy', function() {
var tileGrid = new ol.tilegrid.TileGrid({
resolutions: resolutions,
extent: extent,
origin: origin,
tileSize: tileSize
});
var coordinate;
var tileCoord;
// can get lower tile for edge intersection
coordinate = new ol.Coordinate(0, 0);
tileCoord = tileGrid.getTileCoordForCoordAndResolution_(
coordinate, 100, true);
expect(tileCoord.z).toEqual(3);
expect(tileCoord.x).toEqual(-1);
expect(tileCoord.y).toEqual(-1);
// gets higher tile for edge intersection
coordinate = new ol.Coordinate(100000, 100000);
tileCoord = tileGrid.getTileCoordForCoordAndResolution_(
coordinate, 100, true);
expect(tileCoord.z).toEqual(3);
expect(tileCoord.x).toEqual(9);
expect(tileCoord.y).toEqual(9);
});
});
describe('getTileCoordCenter', function() {
@@ -412,6 +405,46 @@ describe('ol.tilegrid.TileGrid', function() {
});
});
describe('getTileRangeForExtentAndResolution', function() {
it('returns the expected TileRange', function() {
var tileGrid = new ol.tilegrid.TileGrid({
resolutions: resolutions,
extent: extent,
origin: origin,
tileSize: tileSize
});
var tileRange;
tileRange = tileGrid.getTileRangeForExtentAndResolution(extent,
resolutions[0]);
expect(tileRange.minY).toEqual(0);
expect(tileRange.minX).toEqual(0);
expect(tileRange.maxX).toEqual(0);
expect(tileRange.maxY).toEqual(0);
tileRange = tileGrid.getTileRangeForExtentAndResolution(extent,
resolutions[1]);
expect(tileRange.minX).toEqual(0);
expect(tileRange.minY).toEqual(0);
expect(tileRange.maxX).toEqual(1);
expect(tileRange.maxY).toEqual(1);
tileRange = tileGrid.getTileRangeForExtentAndResolution(extent,
resolutions[2]);
expect(tileRange.minX).toEqual(0);
expect(tileRange.minY).toEqual(0);
expect(tileRange.maxX).toEqual(3);
expect(tileRange.maxY).toEqual(3);
tileRange = tileGrid.getTileRangeForExtentAndResolution(extent,
resolutions[3]);
expect(tileRange.minX).toEqual(0);
expect(tileRange.minY).toEqual(0);
expect(tileRange.maxX).toEqual(9);
expect(tileRange.maxY).toEqual(9);
});
});
describe('getTileRangeForExtentAndZ', function() {
it('returns the expected TileRange', function() {
var tileGrid = new ol.tilegrid.TileGrid({

View File

@@ -2,6 +2,20 @@ goog.provide('ol.test.TileRange');
describe('ol.TileRange', function() {
describe('constructor', function() {
it('creates a range', function() {
var range = new ol.TileRange(1, 2, 3, 4);
expect(range).toBeA(ol.TileRange);
});
it('can represent a range of one tile', function() {
var range = new ol.TileRange(2, 3, 2, 3);
expect(range).toBeA(ol.TileRange);
expect(range.getHeight()).toBe(1);
expect(range.getWidth()).toBe(1);
});
});
describe('contains', function() {
it('returns the expected value', function() {
var tileRange = new ol.TileRange(1, 1, 3, 3);
@@ -53,6 +67,36 @@ describe('ol.TileRange', function() {
});
});
describe('equals', function() {
it('determines equivalence of two ranges', function() {
var one = new ol.TileRange(0, 1, 2, 4);
var same = new ol.TileRange(0, 1, 2, 4);
var diff1 = new ol.TileRange(0, 1, 2, 5);
var diff2 = new ol.TileRange(0, 1, 3, 4);
var diff3 = new ol.TileRange(0, 2, 2, 4);
var diff4 = new ol.TileRange(1, 1, 2, 4);
expect(one.equals(same)).toBe(true);
expect(one.equals(diff1)).toBe(false);
expect(one.equals(diff2)).toBe(false);
expect(one.equals(diff3)).toBe(false);
expect(one.equals(diff4)).toBe(false);
});
});
describe('extent', function() {
it('modifies range so it includes another', function() {
var one = new ol.TileRange(0, 1, 2, 4);
var other = new ol.TileRange(-1, 10, -3, 12);
one.extend(other);
expect(one.minX).toBe(-1);
expect(one.minY).toBe(1);
expect(one.maxX).toBe(2);
expect(one.maxY).toBe(12);
});
});
describe('getSize', function() {
it('returns the expected size', function() {
var tileRange = new ol.TileRange(0, 1, 2, 4);
@@ -62,6 +106,29 @@ describe('ol.TileRange', function() {
});
});
describe('intersects', function() {
it('determines if two ranges overlap', function() {
var one = new ol.TileRange(0, 1, 2, 4);
var overlapsRight = new ol.TileRange(2, 1, 4, 4);
var overlapsLeft = new ol.TileRange(-3, 1, 0, 4);
var overlapsTop = new ol.TileRange(0, 4, 2, 5);
var overlapsBottom = new ol.TileRange(0, -3, 2, 1);
expect(one.intersects(overlapsLeft)).toBe(true);
expect(one.intersects(overlapsRight)).toBe(true);
expect(one.intersects(overlapsTop)).toBe(true);
expect(one.intersects(overlapsBottom)).toBe(true);
var right = new ol.TileRange(3, 1, 5, 4);
var left = new ol.TileRange(-3, 1, -1, 4);
var above = new ol.TileRange(0, 5, 2, 6);
var below = new ol.TileRange(0, -3, 2, 0);
expect(one.intersects(right)).toBe(false);
expect(one.intersects(left)).toBe(false);
expect(one.intersects(above)).toBe(false);
expect(one.intersects(below)).toBe(false);
});
});
});
goog.require('ol.TileRange');