1
0
mirror of https://github.com/klokantech/tileserver-php.git synced 2025-08-05 14:18:13 +02:00

Remove old aray syntax

This commit is contained in:
Dalibor Janak
2020-07-28 22:34:22 +02:00
parent b266dc2a6e
commit 43e3cadb87
2 changed files with 64 additions and 64 deletions

View File

@@ -41,7 +41,7 @@ Requirements:
-------------
- Apache webserver (with mod_rewrite / .htaccess supported)
- PHP 5.2+ with SQLite module (php5-sqlite)
- PHP 5.6+ with SQLite module (php5-sqlite)
(or another webserver implementing mod_rewrite rules and PHP)
@@ -50,7 +50,7 @@ Installation:
Download the project files as a [zip archive](https://github.com/klokantech/tileserver-php/archive/master.zip) or source code from GitHub and unpack it into a web-hosting of your choice.
If you access the web address relevant to the installation directory,
If you access the web address relevant to the installation directory,
the TileServer.php Server should display you a welcome message and further
instructions.
@@ -70,15 +70,15 @@ Supported protocols:
--------------------
- OpenGIS WMTS 1.0.0
The Open Geospatial Consortium (OGC) Web Map Tile Service (WMTS)
Both KVP and RESTful version 1.0.0:
http://www.opengeospatial.org/standards/wmts/
Target is maximal compliance to the standard.
Exposed at http://[...]/wmts
- OSGeo TMS 1.0.0
The OSGeo Tile Maps Service, but with inverted y-coordinates:
@@ -90,7 +90,7 @@ Supported protocols:
flipped y-axis.
Exposed at http://[...]/tms
- TileJSON
Metadata about the individual maps in a ready to use form for web
@@ -98,28 +98,28 @@ Supported protocols:
and with support for JSONP access.
Exposed at http://[...]/layer.json or .jsonp
- Direct access with XYZ tile requests (to existing tiles in a directory
or to .mbtiles)
Compatible with Google Maps API / Bing SDK / OpenStreetMap clients.
Exposed at http://[...]/layer/z/x/y.ext
- MapBox UTFgrid request (for existing tiles in .mbtiles with UTFgrid support). Callback is supported
- MapBox UTFgrid request (for existing tiles in .mbtiles with UTFgrid support). Callback is supported
Example https://www.mapbox.com/demo/visiblemap/
Specification https://github.com/mapbox/utfgrid-spec
Exposed at http://[...]/layer/z/x/y.grid.json
- MapBox Vector Tiles (for MBTiles generated by [MapBox Studio Classic](https://www.mapbox.com/mapbox-studio-classic/) or by [OSM2VectorTiles](http://osm2vectortiles.org/) project).
Example http://osm2vectortiles.tileserver.com/
TileJSON can be used in MapBox Studio Classic, MapBox SDKs/APIs, OpenLayers, etc.
Exposed at http://[...]/layer/z/x/y.pbf
- Retina / HighDPI routing with 512 tiles
Use @2x suffix in url for JSONs and tiles. For example http://tileserver.maptiler.com/grandcanyon@2x.json
@@ -132,12 +132,12 @@ If you have installed the project into a root directory of a domain, then the ad
The supported WMTS requests includes:
GetCapabilities RESTful/KVP:
http://[...]/1.0.0/WMTSCapabilities.xml
http://[...]?service=wmts&request=getcapabilities&version=1.0.0
GetTile RESTful/KVP:
http://[...]/layer/[ANYTHING-OPTIONAL][z]/[x]/[y].[ext]
http://[...]?service=wmts&request=getTile&layer=[layer]&tilematrix=[z]&tilerow=[y]&tilecol=[y]&format=[ext]
@@ -248,17 +248,17 @@ Tested WMTS/TMS clients
BSD License
-----------
Copyright (C) 2015 Klokan Technologies GmbH (http://www.klokantech.com/)
Copyright (C) 2020 MapTiler AG (https://www.maptiler.com/)
All rights reserved.
Redistribution and use in source and binary forms, with or without
modification, are permitted provided that the following conditions are met:
modification, are permitted provided that the following conditions are met:
1. Redistributions of source code must retain the above copyright notice, this
list of conditions and the following disclaimer.
list of conditions and the following disclaimer.
2. Redistributions in binary form must reproduce the above copyright notice,
this list of conditions and the following disclaimer in the documentation
and/or other materials provided with the distribution.
and/or other materials provided with the distribution.
THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND
ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED

View File

@@ -1,20 +1,20 @@
<?php
/*
* TileServer.php project
* TileServer-PHP project
* ======================
* https://github.com/klokantech/tileserver-php/
* Copyright (C) 2016 - Klokan Technologies GmbH
* https://github.com/maptiler/tileserver-php/
* Copyright (C) 2020 - MapTiler AG
*/
global $config;
$config['serverTitle'] = 'Maps hosted with TileServer-php v2.0';
$config['availableFormats'] = array('png', 'jpg', 'jpeg', 'gif', 'webp', 'pbf', 'hybrid');
$config['availableFormats'] = ['png', 'jpg', 'jpeg', 'gif', 'webp', 'pbf', 'hybrid'];
$config['dataRoot'] = '';
//$config['template'] = 'template.php';
//$config['baseUrls'] = array('t0.server.com', 't1.server.com');
//$config['baseUrls'] = ['t0.server.com', 't1.server.com'];
Router::serve(array(
Router::serve([
'/' => 'Server:getHtml',
'/maps' => 'Server:getInfo',
'/html' => 'Server:getHtml',
@@ -29,7 +29,7 @@ Router::serve(array(
'/:alpha/:number/:number/:alpha' => 'Wmts:getTile',
'/tms' => 'Tms:getCapabilities',
'/tms/:alpha' => 'Tms:getLayerCapabilities',
));
]);
/**
* Server base
@@ -46,13 +46,13 @@ class Server {
* Datasets stored in file structure
* @var array
*/
public $fileLayer = array();
public $fileLayer = [];
/**
* Datasets stored in database
* @var array
*/
public $dbLayer = array();
public $dbLayer = [];
/**
* PDO database connection
@@ -182,7 +182,7 @@ class Server {
* @return object
*/
public function metadataFromMbtiles($mbt) {
$metadata = array();
$metadata = [];
$this->DBconnect($mbt);
$result = $this->db->query('select * from metadata');
@@ -220,7 +220,7 @@ class Server {
$e = -180 + 360 * ((1 + $resultdata[0]['e']) / pow(2, $metadata['maxzoom']));
$n = $this->row2lat($resultdata[0]['n'], $metadata['maxzoom']);
$s = $this->row2lat($resultdata[0]['s'] - 1, $metadata['maxzoom']);
$metadata['bounds'] = implode(',', array($w, $s, $e, $n));
$metadata['bounds'] = implode(',', [$w, $s, $e, $n]);
}
$mbt = explode('.', $mbt);
$metadata['basename'] = $mbt[0];
@@ -246,7 +246,7 @@ class Server {
*/
public function metadataValidation($metadata) {
if (!array_key_exists('bounds', $metadata)) {
$metadata['bounds'] = array(-180, -85.06, 180, 85.06);
$metadata['bounds'] = [-180, -85.06, 180, 85.06];
} elseif (!is_array($metadata['bounds'])) {
$metadata['bounds'] = array_map('floatval', explode(',', $metadata['bounds']));
}
@@ -277,7 +277,7 @@ class Server {
$metadata['scale'] = 1;
}
if(!array_key_exists('tiles', $metadata)){
$tiles = array();
$tiles = [];
foreach ($this->config['baseUrls'] as $url) {
$url = '' . $this->config['protocol'] . '://' . $url . '/' .
$metadata['basename'] . '/{z}/{x}/{y}';
@@ -297,7 +297,7 @@ class Server {
*/
public function DBconnect($tileset) {
try {
$this->db = new PDO('sqlite:' . $tileset, '', '', array(PDO::ATTR_PERSISTENT => true));
$this->db = new PDO('sqlite:' . $tileset, '', '', [PDO::ATTR_PERSISTENT => true]);
} catch (Exception $exc) {
echo $exc->getTraceAsString();
die;
@@ -388,7 +388,7 @@ class Server {
$mime .= $ext;
}else{
//detect image type from file
$mimetypes = array('gif', 'jpeg', 'png');
$mimetypes = ['gif', 'jpeg', 'png'];
$mime .= $mimetypes[exif_imagetype($name) - 1];
}
header('Access-Control-Allow-Origin: *');
@@ -792,15 +792,15 @@ class Wmts extends Server {
$tileMatrix[$i]['pixel_size'],
$tileMatrix[$i]['tile_size']
);
$tileMatrix[$i]['matrix_size'] = array(
$tileMatrix[$i]['matrix_size'] = [
$tileExtent[2] + 1,
$tileExtent[1] + 1
);
];
}
if(!isset($tileMatrix[$i]['origin']) && isset($tileMatrix[$i]['extent'])){
$tileMatrix[$i]['origin'] = array(
$tileMatrix[$i]['origin'] = [
$tileMatrix[$i]['extent'][0], $tileMatrix[$i]['extent'][3]
);
];
}
// Origins of geographic coordinate systems are setting in opposite order
if (isset($proj4) && $proj4['proj'] === 'longlat') {
@@ -811,7 +811,7 @@ class Wmts extends Server {
}
if(!isset($tileMatrix[$i]['tile_size'])){
$tileSize = 256 * (int) $layer['scale'];
$tileMatrix[$i]['tile_size'] = array($tileSize, $tileSize);
$tileMatrix[$i]['tile_size'] = [$tileSize, $tileSize];
}
}
@@ -827,12 +827,12 @@ class Wmts extends Server {
* @return array
*/
public function tilesOfExtent($extent, $origin, $pixel_size, $tile_size) {
$tiles = array(
$tiles = [
$this->minsample($extent[0] - $origin[0], $pixel_size[0] * $tile_size[0]),
$this->minsample($extent[1] - $origin[1], $pixel_size[1] * $tile_size[1]),
$this->maxsample($extent[2] - $origin[0], $pixel_size[0] * $tile_size[0]),
$this->maxsample($extent[3] - $origin[1], $pixel_size[1] * $tile_size[1]),
);
];
return $tiles;
}
@@ -851,19 +851,19 @@ class Wmts extends Server {
*/
public function getMercatorTileMatrixSet($maxZoom = 18){
$denominatorBase = 559082264.0287178;
$extent = array(-20037508.34,-20037508.34,20037508.34,20037508.34);
$tileMatrixSet = array();
$extent = [-20037508.34,-20037508.34,20037508.34,20037508.34];
$tileMatrixSet = [];
for($i = 0; $i <= $maxZoom; $i++){
$matrixSize = pow(2, $i);
$tileMatrixSet[] = array(
$tileMatrixSet[] = [
'extent' => $extent,
'id' => (string) $i,
'matrix_size' => array($matrixSize, $matrixSize),
'origin' => array($extent[0], $extent[3]),
'matrix_size' => [$matrixSize, $matrixSize],
'origin' => [$extent[0], $extent[3]],
'scale_denominator' => $denominatorBase / pow(2, $i),
'tile_size' => array(256, 256)
);
'tile_size' => [256, 256]
];
}
return $this->getTileMatrixSet('GoogleMapsCompatible', $tileMatrixSet, 'EPSG:3857');
@@ -874,26 +874,26 @@ class Wmts extends Server {
* @return string Xml
*/
public function getWGS84TileMatrixSet(){
$extent = array(-180.000000, -90.000000, 180.000000, 90.000000);
$scaleDenominators = array(279541132.01435887813568115234, 139770566.00717943906784057617,
$extent = [-180.000000, -90.000000, 180.000000, 90.000000];
$scaleDenominators = [279541132.01435887813568115234, 139770566.00717943906784057617,
69885283.00358971953392028809, 34942641.50179485976696014404, 17471320.75089742988348007202,
8735660.37544871494174003601, 4367830.18772435747087001801, 2183915.09386217873543500900,
1091957.54693108936771750450, 545978.77346554468385875225, 272989.38673277234192937613,
136494.69336638617096468806, 68247.34668319308548234403, 34123.67334159654274117202,
17061.83667079825318069197, 8530.91833539912659034599, 4265.45916769956329517299,
2132.72958384978574031265);
$tileMatrixSet = array();
2132.72958384978574031265];
$tileMatrixSet = [];
for($i = 0; $i <= 17; $i++){
$matrixSize = pow(2, $i);
$tileMatrixSet[] = array(
$tileMatrixSet[] = [
'extent' => $extent,
'id' => (string) $i,
'matrix_size' => array($matrixSize * 2, $matrixSize),
'origin' => array($extent[3], $extent[0]),
'matrix_size' => [$matrixSize * 2, $matrixSize],
'origin' => [$extent[3], $extent[0]],
'scale_denominator' => $scaleDenominators[$i],
'tile_size' => array(256, 256)
);
'tile_size' => [256, 256]
];
}
return $this->getTileMatrixSet('WGS84', $tileMatrixSet, 'EPSG:4326');
@@ -1192,7 +1192,7 @@ class Tms extends Server {
}
} else {
$srs = 'EPSG:3857';
$bounds = array(-20037508.34,-20037508.34,20037508.34,20037508.34);
$bounds = [-20037508.34,-20037508.34,20037508.34,20037508.34];
$initRes = 156543.03392804062;
}
$mime = ($m['format'] == 'jpg') ? 'image/jpeg' : 'image/png';
@@ -1253,14 +1253,14 @@ class Router {
}
}
$discovered_handler = null;
$regex_matches = array();
$regex_matches = [];
if ($routes) {
$tokens = array(
$tokens = [
':string' => '([a-zA-Z]+)',
':number' => '([0-9]+)',
':alpha' => '([a-zA-Z0-9-_@\.]+)'
);
];
//global $config;
foreach ($routes as $pattern => $handler_name) {
$pattern = strtr($pattern, $tokens);
@@ -1281,7 +1281,7 @@ class Router {
$discoverered_class = explode(':', $discovered_handler);
$discoverered_method = explode(':', $discovered_handler);
$handler_instance = new $discoverered_class[0]($regex_matches);
call_user_func(array($handler_instance, $discoverered_method[1]));
call_user_func([$handler_instance, $discoverered_method[1]]);
} else {
$handler_instance = new $discovered_handler($regex_matches);
}