From 8002dbbb7df23967a23192b17f789e76fc4bb6fc Mon Sep 17 00:00:00 2001 From: Timo Proescholdt Date: Mon, 4 Aug 2014 17:47:47 +0200 Subject: [PATCH] service metadata takes into account request protocol --- tileserver.php | 28 +++++++++++++++------------- 1 file changed, 15 insertions(+), 13 deletions(-) diff --git a/tileserver.php b/tileserver.php index 07a07e4..f81e10c 100644 --- a/tileserver.php +++ b/tileserver.php @@ -449,7 +449,7 @@ class Server { echo '' . $this->config['serverTitle'] . ''; echo ' - +

Welcome to ' . $this->config['serverTitle'] . '

This server distributes maps to desktop, web, and mobile applications.

The mapping data are available as OpenGIS Web Map Tiling Service (OGC WMTS), OSGEO Tile Map Service (TMS), and popular XYZ urls described with TileJSON metadata.

'; @@ -529,7 +529,7 @@ class Json extends Server { $metadata['scheme'] = 'xyz'; $tiles = array(); foreach ($this->config['baseUrls'] as $url) { - $tiles[] = 'http://' . $url . '/' . $metadata['basename'] . '/{z}/{x}/{y}.' . $metadata['format']; + $tiles[] = '' . $this->config['protocol'] . '://' . $url . '/' . $metadata['basename'] . '/{z}/{x}/{y}.' . $metadata['format']; } $metadata['tiles'] = $tiles; if ($this->isDBLayer($metadata['basename'])) { @@ -537,7 +537,7 @@ class Json extends Server { $res = $this->db->query('SELECT grid FROM grids LIMIT 1'); if ($res) { foreach ($this->config['baseUrls'] as $url) { - $grids[] = 'http://' . $url . '/' . $metadata['basename'] . '/{z}/{x}/{y}.grid.json'; + $grids[] = '' . $this->config['protocol'] . '://' . $url . '/' . $metadata['basename'] . '/{z}/{x}/{y}.grid.json'; } $metadata['grids'] = $grids; } @@ -682,7 +682,7 @@ class Wmts extends Server { - + RESTful @@ -690,7 +690,7 @@ class Wmts extends Server { - + KVP @@ -703,14 +703,14 @@ class Wmts extends Server { - + RESTful - + KVP @@ -758,7 +758,7 @@ class Wmts extends Server { ' . $tileMatrixSet . ' - '; } @@ -1114,7 +1114,7 @@ class Wmts extends Server { - + '; } @@ -1195,7 +1195,7 @@ class Tms extends Server { $srs = "EPSG:3857"; echo ''; + . '" href="' . $this->config['protocol'] . '://' . $this->config['baseUrls'][0] . '/tms/' . $basename . '" />'; } } echo ''; @@ -1233,7 +1233,7 @@ class Tms extends Server { } $mime = ($m['format'] == 'jpg') ? 'image/jpeg' : 'image/png'; header("Content-type: application/xml"); - echo ' + echo ' ' . htmlspecialchars($title) . ' ' . htmlspecialchars($description) . ' ' . $srs . ' @@ -1242,7 +1242,7 @@ class Tms extends Server { '; for ($zoom = $m['minzoom']; $zoom < $m['maxzoom'] + 1; $zoom++) { - echo ''; + echo ''; } echo''; } @@ -1395,6 +1395,8 @@ class Router { public static function serve($routes) { $request_method = strtolower($_SERVER['REQUEST_METHOD']); $path_info = '/'; + global $config; + $config['protocol'] = ( isset($_SERVER["HTTPS"]) or $_SERVER['SERVER_PORT'] == '443') ? "https" : "http"; if (!empty($_SERVER['PATH_INFO'])) { $path_info = $_SERVER['PATH_INFO']; } else if (!empty($_SERVER['ORIG_PATH_INFO']) && $_SERVER['ORIG_PATH_INFO'] !== '/tileserver.php') { @@ -1416,7 +1418,7 @@ class Router { ':number' => '([0-9]+)', ':alpha' => '([a-zA-Z0-9-_@]+)' ); - global $config; + //global $config; foreach ($routes as $pattern => $handler_name) { $pattern = strtr($pattern, $tokens); if (preg_match('#/?' . $pattern . '/?$#', $path_info, $matches)) {