1
0
mirror of https://github.com/klokantech/tileserver-php.git synced 2025-08-04 13:47:49 +02:00

Custom profile testing implemetation

This commit is contained in:
Dalibor Janák
2016-02-03 16:50:07 +01:00
parent 86527eeedb
commit ea100ad8c2

View File

@@ -830,6 +830,10 @@ class Wmts extends Server {
</ows:Operation> </ows:Operation>
</ows:OperationsMetadata> </ows:OperationsMetadata>
<Contents>'; <Contents>';
//TileMatrixSets that will be printed:
$tileMatrixSets = array('GoogleMapsCompatible' => FALSE, 'custom' => FALSE, 'geodetic' => FALSE);
//layers
$maps = array_merge($this->fileLayer, $this->dbLayer); $maps = array_merge($this->fileLayer, $this->dbLayer);
$mercator = new GlobalMercator(); $mercator = new GlobalMercator();
foreach ($maps as $m) { foreach ($maps as $m) {
@@ -843,10 +847,18 @@ class Wmts extends Server {
$bounds = $m['bounds']; $bounds = $m['bounds'];
$format = $m['format'] == 'hybrid' ? 'jpgpng' : $m['format']; $format = $m['format'] == 'hybrid' ? 'jpgpng' : $m['format'];
$mime = ($format == 'jpg') ? 'image/jpeg' : 'image/' . $format; $mime = ($format == 'jpg') ? 'image/jpeg' : 'image/' . $format;
if ($profile == 'geodetic') { if ($profile == 'geodetic') {
$tileMatrixSet = "WGS84"; $tileMatrixSet = "WGS84";
$tileMatrixSets['geodetic'] = TRUE;
}elseif ($m['profile'] == 'custom') {
$crs = explode(':', $m['crs']);
$tileMatrixSet = 'custom' . $crs[1];
$tileMatrixSets['custom'] = TRUE;
} else { } else {
$tileMatrixSet = "GoogleMapsCompatible"; $tileMatrixSet = "GoogleMapsCompatible";
$tileMatrixSets['GoogleMapsCompatible'] = TRUE;
list( $minx, $miny ) = $mercator->LatLonToMeters($bounds[1], $bounds[0]); list( $minx, $miny ) = $mercator->LatLonToMeters($bounds[1], $bounds[0]);
list( $maxx, $maxy ) = $mercator->LatLonToMeters($bounds[3], $bounds[2]); list( $maxx, $maxy ) = $mercator->LatLonToMeters($bounds[3], $bounds[2]);
$bounds3857 = array($minx, $miny, $maxx, $maxy); $bounds3857 = array($minx, $miny, $maxx, $maxy);
@@ -875,11 +887,8 @@ class Wmts extends Server {
</Layer>'; </Layer>';
} }
//Print mercator TileMatrixSet if ($tileMatrixSets['geodetic']) {
echo $this->getMercatorTileMatrixSet();
//Print wgs84 TileMatrixSet //Print wgs84 TileMatrixSet
$name = 'WGS84';
$corner = array(-180.000000, 90.000000); $corner = array(-180.000000, 90.000000);
$scales = array(279541132.01435887813568115234, 139770566.00717943906784057617, $scales = array(279541132.01435887813568115234, 139770566.00717943906784057617,
69885283.00358971953392028809, 34942641.50179485976696014404, 17471320.75089742988348007202, 69885283.00358971953392028809, 34942641.50179485976696014404, 17471320.75089742988348007202,
@@ -891,7 +900,16 @@ class Wmts extends Server {
$crs = 'EPSG::4326'; $crs = 'EPSG::4326';
$matrixRatio = array(2, 1); $matrixRatio = array(2, 1);
echo $this->getTileMatrixSet($name, $scales, $corner, $crs, $matrixRatio); echo $this->getTileMatrixSet($tileMatrixSet, $scales, $corner, $crs, $matrixRatio);
}
if ($tileMatrixSets['custom']) {
// Custom from metadata
echo $this->getTileMatrixSet($tileMatrixSet, $m['scales'], array($m['projected_bounds'][0], $m['projected_bounds'][4]), $m['crs']);
}
if($tileMatrixSets['GoogleMapsCompatible']){
//Print mercator TileMatrixSet
echo $this->getMercatorTileMatrixSet();
}
echo '</Contents> echo '</Contents>
<ServiceMetadataURL xlink:href="' . $this->config['protocol'] . '://' . $this->config['baseUrls'][0] . '/wmts/1.0.0/WMTSCapabilities.xml"/> <ServiceMetadataURL xlink:href="' . $this->config['protocol'] . '://' . $this->config['baseUrls'][0] . '/wmts/1.0.0/WMTSCapabilities.xml"/>