mirror of
https://github.com/klokantech/tileserver-php.git
synced 2025-08-05 06:07:48 +02:00
Tileserver now supports *.json with callback.
This commit is contained in:
@@ -67,7 +67,7 @@ class Server {
|
|||||||
//TODO if contains tileserver.php add to path
|
//TODO if contains tileserver.php add to path
|
||||||
$ru = explode('/', $_SERVER['REQUEST_URI']);
|
$ru = explode('/', $_SERVER['REQUEST_URI']);
|
||||||
$this->config['baseUrls'][0] = $_SERVER['HTTP_HOST'];
|
$this->config['baseUrls'][0] = $_SERVER['HTTP_HOST'];
|
||||||
if (isset($ru[2]) && !empty($ru[2]) && $ru[2] !== 'tms') {
|
if (isset($ru[2]) && (!empty($ru[2]) || $ru[2] !== 'tms')) {
|
||||||
//autodetection for http://server/ or http://server/directory
|
//autodetection for http://server/ or http://server/directory
|
||||||
//subdirectories must be specified $config['baseUrls']
|
//subdirectories must be specified $config['baseUrls']
|
||||||
$this->config['baseUrls'][0] = $this->config['baseUrls'][0] . '/' . $ru[1];
|
$this->config['baseUrls'][0] = $this->config['baseUrls'][0] . '/' . $ru[1];
|
||||||
@@ -86,11 +86,17 @@ class Server {
|
|||||||
$layer = $this->metadataFromMetadataJson($mj);
|
$layer = $this->metadataFromMetadataJson($mj);
|
||||||
array_push($this->fileLayer, $layer);
|
array_push($this->fileLayer, $layer);
|
||||||
}
|
}
|
||||||
} elseif ($mbts) {
|
} else {
|
||||||
|
$e = 1;
|
||||||
|
}
|
||||||
|
if ($mbts) {
|
||||||
foreach ($mbts as $mbt) {
|
foreach ($mbts as $mbt) {
|
||||||
$this->dbLayer[] = $this->metadataFromMbtiles($mbt);
|
$this->dbLayer[] = $this->metadataFromMbtiles($mbt);
|
||||||
}
|
}
|
||||||
} else {
|
} else {
|
||||||
|
$e = 1;
|
||||||
|
}
|
||||||
|
if (isset($e)) {
|
||||||
echo 'Server: No JSON or MBtiles file with metadata';
|
echo 'Server: No JSON or MBtiles file with metadata';
|
||||||
die;
|
die;
|
||||||
}
|
}
|
||||||
@@ -152,7 +158,7 @@ class Server {
|
|||||||
* @param string $layer
|
* @param string $layer
|
||||||
* @return boolean
|
* @return boolean
|
||||||
*/
|
*/
|
||||||
public function isFileLyer($layer) {
|
public function isFileLayer($layer) {
|
||||||
foreach ($this->fileLayer as $DBLayer) {
|
foreach ($this->fileLayer as $DBLayer) {
|
||||||
if ($DBLayer['basename'] == $layer) {
|
if ($DBLayer['basename'] == $layer) {
|
||||||
return TRUE;
|
return TRUE;
|
||||||
@@ -302,7 +308,7 @@ class Server {
|
|||||||
header('Content-type: image/' . $format);
|
header('Content-type: image/' . $format);
|
||||||
echo $data;
|
echo $data;
|
||||||
}
|
}
|
||||||
} elseif ($this->isFileLyer($tileset)) {
|
} elseif ($this->isFileLayer($tileset)) {
|
||||||
$name = './' . $tileset . '/' . $z . '/' . $y . '/' . $x . '.' . $ext;
|
$name = './' . $tileset . '/' . $z . '/' . $y . '/' . $x . '.' . $ext;
|
||||||
if ($fp = @fopen($name, 'rb')) {
|
if ($fp = @fopen($name, 'rb')) {
|
||||||
header('Content-Type: image/' . $ext);
|
header('Content-Type: image/' . $ext);
|
||||||
@@ -536,7 +542,11 @@ class Json extends Server {
|
|||||||
public function getJson() {
|
public function getJson() {
|
||||||
header('Access-Control-Allow-Origin: *');
|
header('Access-Control-Allow-Origin: *');
|
||||||
header("Content-Type:application/javascript charset=utf-8");
|
header("Content-Type:application/javascript charset=utf-8");
|
||||||
echo $this->createJson($this->layer);
|
if ($this->callback !== 'grid') {
|
||||||
|
echo $this->callback . '(' . $this->createJson($this->layer) . ');';
|
||||||
|
} else {
|
||||||
|
echo $this->createJson($this->layer);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
Reference in New Issue
Block a user