mirror of
https://github.com/klokantech/tileserver-php.git
synced 2025-08-08 15:46:30 +02:00
Utfgrid empty response bug fixed (related #62)
This commit is contained in:
@@ -35,25 +35,25 @@ class Server {
|
|||||||
|
|
||||||
/**
|
/**
|
||||||
* Configuration of TileServer [baseUrls, serverTitle]
|
* Configuration of TileServer [baseUrls, serverTitle]
|
||||||
* @var array
|
* @var array
|
||||||
*/
|
*/
|
||||||
public $config;
|
public $config;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Datasets stored in file structure
|
* Datasets stored in file structure
|
||||||
* @var array
|
* @var array
|
||||||
*/
|
*/
|
||||||
public $fileLayer = array();
|
public $fileLayer = array();
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Datasets stored in database
|
* Datasets stored in database
|
||||||
* @var array
|
* @var array
|
||||||
*/
|
*/
|
||||||
public $dbLayer = array();
|
public $dbLayer = array();
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* PDO database connection
|
* PDO database connection
|
||||||
* @var object
|
* @var object
|
||||||
*/
|
*/
|
||||||
public $db;
|
public $db;
|
||||||
|
|
||||||
@@ -143,7 +143,7 @@ class Server {
|
|||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
*
|
*
|
||||||
* @param string $jsonFileName
|
* @param string $jsonFileName
|
||||||
* @return array
|
* @return array
|
||||||
*/
|
*/
|
||||||
@@ -166,7 +166,7 @@ class Server {
|
|||||||
|
|
||||||
$resultdata = $result->fetchAll();
|
$resultdata = $result->fetchAll();
|
||||||
foreach ($resultdata as $r) {
|
foreach ($resultdata as $r) {
|
||||||
$value = preg_replace('/(\\n)+/','',$r['value']);
|
$value = preg_replace('/(\\n)+/','',$r['value']);
|
||||||
$metadata[$r['name']] = addslashes($value);
|
$metadata[$r['name']] = addslashes($value);
|
||||||
}
|
}
|
||||||
if (!array_key_exists('minzoom', $metadata)
|
if (!array_key_exists('minzoom', $metadata)
|
||||||
@@ -203,7 +203,7 @@ class Server {
|
|||||||
$metadata['basename'] = $mbt[0];
|
$metadata['basename'] = $mbt[0];
|
||||||
return $metadata;
|
return $metadata;
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Convert row number to latitude of the top of the row
|
* Convert row number to latitude of the top of the row
|
||||||
* @param integer $r
|
* @param integer $r
|
||||||
@@ -406,20 +406,22 @@ class Server {
|
|||||||
}
|
}
|
||||||
try {
|
try {
|
||||||
$this->DBconnect($tileset . '.mbtiles');
|
$this->DBconnect($tileset . '.mbtiles');
|
||||||
$result = $this->db->query('SELECT grid FROM grids WHERE tile_column = ' . $x . ' AND tile_row = ' . $y . ' AND zoom_level = ' . $z);
|
|
||||||
if (!isset($result) || $result === FALSE) {
|
|
||||||
header('Access-Control-Allow-Origin: *');
|
|
||||||
echo '{}';
|
|
||||||
die;
|
|
||||||
} else {
|
|
||||||
$data = $result->fetchColumn();
|
|
||||||
|
|
||||||
$grid = gzuncompress($data);
|
$query = 'SELECT grid FROM grids WHERE tile_column = ' . $x . ' AND '
|
||||||
|
. 'tile_row = ' . $y . ' AND zoom_level = ' . $z;
|
||||||
|
$result = $this->db->query($query);
|
||||||
|
$data = $result->fetch(PDO::FETCH_ASSOC);
|
||||||
|
|
||||||
|
if ($data !== FALSE) {
|
||||||
|
$grid = gzuncompress($data['grid']);
|
||||||
$grid = substr(trim($grid), 0, -1);
|
$grid = substr(trim($grid), 0, -1);
|
||||||
|
|
||||||
//adds legend (data) to output
|
//adds legend (data) to output
|
||||||
$grid .= ',"data":{';
|
$grid .= ',"data":{';
|
||||||
$result = $this->db->query('SELECT key_name as key, key_json as json FROM grid_data WHERE zoom_level=' . $z . ' and tile_column=' . $x . ' and tile_row=' . $y);
|
$kquery = 'SELECT key_name as key, key_json as json FROM grid_data '
|
||||||
|
. 'WHERE zoom_level=' . $z . ' and '
|
||||||
|
. 'tile_column=' . $x . ' and tile_row=' . $y;
|
||||||
|
$result = $this->db->query($kquery);
|
||||||
while ($r = $result->fetch(PDO::FETCH_ASSOC)) {
|
while ($r = $result->fetch(PDO::FETCH_ASSOC)) {
|
||||||
$grid .= '"' . $r['key'] . '":' . $r['json'] . ',';
|
$grid .= '"' . $r['key'] . '":' . $r['json'] . ',';
|
||||||
}
|
}
|
||||||
@@ -427,14 +429,18 @@ class Server {
|
|||||||
header('Access-Control-Allow-Origin: *');
|
header('Access-Control-Allow-Origin: *');
|
||||||
|
|
||||||
if (isset($_GET['callback']) && !empty($_GET['callback'])) {
|
if (isset($_GET['callback']) && !empty($_GET['callback'])) {
|
||||||
header("Content-Type:text/javascript charset=utf-8");
|
header('Content-Type:text/javascript charset=utf-8');
|
||||||
echo $_GET['callback'] . '(' . $grid . ');';
|
echo $_GET['callback'] . '(' . $grid . ');';
|
||||||
} else {
|
} else {
|
||||||
header("Content-Type:text/javascript; charset=utf-8");
|
header('Content-Type:text/javascript; charset=utf-8');
|
||||||
echo $grid;
|
echo $grid;
|
||||||
}
|
}
|
||||||
}
|
} else {
|
||||||
} catch (PDOException $e) {
|
header('Access-Control-Allow-Origin: *');
|
||||||
|
echo '{}';
|
||||||
|
die;
|
||||||
|
}
|
||||||
|
} catch (Exception $e) {
|
||||||
header('Content-type: text/plain');
|
header('Content-type: text/plain');
|
||||||
print 'Error querying the database: ' . $e->getMessage();
|
print 'Error querying the database: ' . $e->getMessage();
|
||||||
}
|
}
|
||||||
@@ -515,7 +521,7 @@ class Json extends Server {
|
|||||||
|
|
||||||
/**
|
/**
|
||||||
* Callback for JSONP default grid
|
* Callback for JSONP default grid
|
||||||
* @var string
|
* @var string
|
||||||
*/
|
*/
|
||||||
private $callback = 'grid';
|
private $callback = 'grid';
|
||||||
|
|
||||||
@@ -525,27 +531,27 @@ class Json extends Server {
|
|||||||
public $layer = 'index';
|
public $layer = 'index';
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @var integer
|
* @var integer
|
||||||
*/
|
*/
|
||||||
public $z;
|
public $z;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @var integer
|
* @var integer
|
||||||
*/
|
*/
|
||||||
public $y;
|
public $y;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @var integer
|
* @var integer
|
||||||
*/
|
*/
|
||||||
public $x;
|
public $x;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @var string
|
* @var string
|
||||||
*/
|
*/
|
||||||
public $ext;
|
public $ext;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
*
|
*
|
||||||
* @param array $params
|
* @param array $params
|
||||||
*/
|
*/
|
||||||
public function __construct($params) {
|
public function __construct($params) {
|
||||||
@@ -566,7 +572,7 @@ class Json extends Server {
|
|||||||
$metadata['scheme'] = 'xyz';
|
$metadata['scheme'] = 'xyz';
|
||||||
$tiles = array();
|
$tiles = array();
|
||||||
foreach ($this->config['baseUrls'] as $url) {
|
foreach ($this->config['baseUrls'] as $url) {
|
||||||
$url = '' . $this->config['protocol'] . '://' . $url . '/' .
|
$url = '' . $this->config['protocol'] . '://' . $url . '/' .
|
||||||
$metadata['basename'] . '/{z}/{x}/{y}';
|
$metadata['basename'] . '/{z}/{x}/{y}';
|
||||||
if(strlen($metadata['format']) <= 4){
|
if(strlen($metadata['format']) <= 4){
|
||||||
$url .= '.' . $metadata['format'];
|
$url .= '.' . $metadata['format'];
|
||||||
@@ -670,27 +676,27 @@ class Wmts extends Server {
|
|||||||
public $layer;
|
public $layer;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @var integer
|
* @var integer
|
||||||
*/
|
*/
|
||||||
public $z;
|
public $z;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @var integer
|
* @var integer
|
||||||
*/
|
*/
|
||||||
public $y;
|
public $y;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @var integer
|
* @var integer
|
||||||
*/
|
*/
|
||||||
public $x;
|
public $x;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @var string
|
* @var string
|
||||||
*/
|
*/
|
||||||
public $ext;
|
public $ext;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
*
|
*
|
||||||
* @param array $params
|
* @param array $params
|
||||||
*/
|
*/
|
||||||
public function __construct($params) {
|
public function __construct($params) {
|
||||||
@@ -714,7 +720,7 @@ class Wmts extends Server {
|
|||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Returns tilesets getCapabilities
|
* Returns tilesets getCapabilities
|
||||||
*/
|
*/
|
||||||
public function getCapabilities() {
|
public function getCapabilities() {
|
||||||
header("Content-type: application/xml");
|
header("Content-type: application/xml");
|
||||||
@@ -1184,10 +1190,10 @@ class Wmts extends Server {
|
|||||||
$format = $this->getGlobal('Format');
|
$format = $this->getGlobal('Format');
|
||||||
}
|
}
|
||||||
parent::renderTile(
|
parent::renderTile(
|
||||||
$this->getGlobal('Layer'),
|
$this->getGlobal('Layer'),
|
||||||
$this->getGlobal('TileMatrix'),
|
$this->getGlobal('TileMatrix'),
|
||||||
$this->getGlobal('TileRow'),
|
$this->getGlobal('TileRow'),
|
||||||
$this->getGlobal('TileCol'),
|
$this->getGlobal('TileCol'),
|
||||||
$format
|
$format
|
||||||
);
|
);
|
||||||
} else {
|
} else {
|
||||||
@@ -1208,27 +1214,27 @@ class Tms extends Server {
|
|||||||
public $layer;
|
public $layer;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @var integer
|
* @var integer
|
||||||
*/
|
*/
|
||||||
public $z;
|
public $z;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @var integer
|
* @var integer
|
||||||
*/
|
*/
|
||||||
public $y;
|
public $y;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @var integer
|
* @var integer
|
||||||
*/
|
*/
|
||||||
public $x;
|
public $x;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @var string
|
* @var string
|
||||||
*/
|
*/
|
||||||
public $ext;
|
public $ext;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
*
|
*
|
||||||
* @param array $params
|
* @param array $params
|
||||||
*/
|
*/
|
||||||
public function __construct($params) {
|
public function __construct($params) {
|
||||||
|
Reference in New Issue
Block a user