From 59c2d035520756623d14900f26dfb578099079c8 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Dalibor=20Jan=C3=A1k?= Date: Wed, 26 Mar 2014 09:36:44 +0100 Subject: [PATCH] Added UTFgrid functionality on url {layer}.mbtiles/{z}/{x}/{y}.grid.json returns jsonp with grid and also callback is supported --- .htaccess | 2 ++ tileserver-mbtiles.php | 10 ++++------ 2 files changed, 6 insertions(+), 6 deletions(-) diff --git a/.htaccess b/.htaccess index 74f8890..5dac278 100644 --- a/.htaccess +++ b/.htaccess @@ -35,6 +35,7 @@ RewriteRule ^(.+).jpeg$ $1.jpg [L] # MBTiles support at /layer/z/x/y.ext - loads the tile from mbtiles with php # TODO: serve also 404 errors for tiles RewriteRule ^([^\/]+\.mbtiles)\/.*?(\d+)\/(\d+)\/(\d+)\.(\w+)$ tileserver-mbtiles.php?tileset=$1&z=$2&x=$3&y=$4&ext=$5 [L] +RewriteRule ^([^\/]+\.mbtiles)\/.*?(\d+)\/(\d+)\/(\d+)\.grid.json?$ tileserver-mbtiles.php?tileset=$1&z=$2&x=$3&y=$4&ext=grid [QSA,L] # TODO: use mod_sqlite if available to map the tiles to URL directly by apache # WMTS KVP @@ -87,6 +88,7 @@ RewriteRule ^(.+)/tms$ tileserver-tms.php?layer=$1 [QSA,L] # TileJSON JSONP wrapper for MapBOX.js API RewriteRule ^maps.jsonp?$ tileserver.php?service=json [QSA,L] +RewriteCond %{REQUEST_URI} !\.grid\.json [NC] RewriteRule ^(.+).jsonp?$ tileserver.php?service=json&layer=$1 [QSA,L] # If-Modified-Since (if php is not installed as cgi then comment lines below) diff --git a/tileserver-mbtiles.php b/tileserver-mbtiles.php index db775af..9a1d4d9 100644 --- a/tileserver-mbtiles.php +++ b/tileserver-mbtiles.php @@ -79,18 +79,16 @@ if (isset($_GET['tileset'])) { } $grid = rtrim($grid, ',') . '}}'; - // CORS header + // CORS headers header('Access-Control-Allow-Origin: *'); - //TODO: Process callback and ext but first in htaccess or route if (isset($_GET['callback'])) { + header("Content-Type:text/javascript charset=utf-8"); echo $_GET['callback'] . '(' . $grid . ');'; - } elseif ($_GET['ext'] == 'jsonp') { - echo 'grid(' . $grid . ');'; } else { - echo $grid; + header("Content-Type:text/javascript; charset=utf-8"); + echo 'grid(' . $grid . ');'; } - die; } } } catch (PDOException $e) {