mirror of
https://github.com/klokantech/tileserver-php.git
synced 2025-08-24 23:16:50 +02:00
Compare commits
159 Commits
Author | SHA1 | Date | |
---|---|---|---|
|
4fe14e6164 | ||
|
d0fdeaec69 | ||
|
cce369b3f6 | ||
|
7800af830a | ||
|
eb571b5d70 | ||
|
43e3cadb87 | ||
|
54254f8ef1 | ||
|
b266dc2a6e | ||
|
4c339b8d19 | ||
|
287da5062e | ||
|
d11963d43c | ||
|
5ddbfa300a | ||
|
2a84c6271f | ||
|
9f6b5d5100 | ||
|
dca0e64219 | ||
|
e6af62e191 | ||
|
d3ebdec555 | ||
|
f75b1bbfa6 | ||
|
bb823a57ff | ||
|
380cfdeaaf | ||
|
dc2452e781 | ||
|
5f314fef28 | ||
|
758b6a1e4d | ||
|
d7a4ad03c1 | ||
|
2ead30dc4a | ||
|
682a9ee5c9 | ||
|
7405ec3dc3 | ||
|
058df85c2e | ||
|
f7613e04a1 | ||
|
e4148733ed | ||
|
c28d188e0d | ||
|
ef5de0607d | ||
|
494669f5d7 | ||
|
4b53b4c351 | ||
|
86a1c68888 | ||
|
f834ec7fd9 | ||
|
ac68e90870 | ||
|
bb48534fe3 | ||
|
c158bcbe57 | ||
|
2dfd2fcb5f | ||
|
6b4fb0fec7 | ||
|
8f2b068c4f | ||
|
709ed4ffce | ||
|
7320f426a1 | ||
|
2e36338720 | ||
|
70159a5b29 | ||
|
fdeb010831 | ||
|
8bbfa1d367 | ||
|
50630fe1c7 | ||
|
8206bcccc7 | ||
|
d304b89eb2 | ||
|
87906da0c5 | ||
|
92ddcb6e66 | ||
|
7efd117884 | ||
|
e36a7e6a06 | ||
|
7190e90845 | ||
|
f3f2a995e5 | ||
|
8233047097 | ||
|
46d79107e8 | ||
|
a2162eeb99 | ||
|
27fc9a73ca | ||
|
4ff5d95a38 | ||
|
6da6b13fed | ||
|
0609b25905 | ||
|
ce485c6713 | ||
|
ab7862209a | ||
|
8b49aa2b8c | ||
|
ea100ad8c2 | ||
|
86527eeedb | ||
|
3a9e74e3b0 | ||
|
0446445248 | ||
|
853ca41ce0 | ||
|
5b5f5e7905 | ||
|
b7960baaaa | ||
|
250512168c | ||
|
6b5933e21f | ||
|
f5408fd108 | ||
|
dc26c831f1 | ||
|
28aba6f9e2 | ||
|
8f6a2ced68 | ||
|
79926b92fc | ||
|
3343f80e09 | ||
|
c660ab8f41 | ||
|
21d7a409fe | ||
|
abb4087942 | ||
|
0acdc04e32 | ||
|
f9e801849e | ||
|
e66e577d5d | ||
|
ffedfde75e | ||
|
b783c59585 | ||
|
dd8d884bc6 | ||
|
8b4a5142e8 | ||
|
53b379cd67 | ||
|
2bf8bf6d4b | ||
|
e4454b12be | ||
|
8002dbbb7d | ||
|
d4121d86d5 | ||
|
ea6e176ab3 | ||
|
b13b8d98c8 | ||
|
f08d72262d | ||
|
4250eff554 | ||
|
34ffddb765 | ||
|
5d2662a6a3 | ||
|
8dec7469f1 | ||
|
8170e02397 | ||
|
779e320dec | ||
|
e226ae2cc3 | ||
|
61c866a521 | ||
|
987f01c85e | ||
|
ed19c0a414 | ||
|
04a9abf170 | ||
|
c3e9b41110 | ||
|
6c840820f0 | ||
|
d4c1996815 | ||
|
3181142368 | ||
|
5fca96fd91 | ||
|
08b77f4bf4 | ||
|
cba3048506 | ||
|
ed5618886f | ||
|
cd5cd44e75 | ||
|
4cd86eefc3 | ||
|
c953b0cecb | ||
|
3042384d13 | ||
|
8478f7dc7d | ||
|
656ffba9df | ||
|
4d6ee2c714 | ||
|
0f059f4fb7 | ||
|
2461a184a8 | ||
|
1f1dd22227 | ||
|
9bbb1bce05 | ||
|
b6470bd448 | ||
|
2dfb1952aa | ||
|
4a4a2ee348 | ||
|
f93f5e8b45 | ||
|
56bfb34889 | ||
|
212bc74fed | ||
|
296a752e28 | ||
|
324129f8f8 | ||
|
59c2d03552 | ||
|
bd8c6b286f | ||
|
8fa1bfcbab | ||
|
41dd3ec847 | ||
|
b7b41e9725 | ||
|
ff7c48f0b0 | ||
|
780e1c6796 | ||
|
fcf88d62c0 | ||
|
ad902c1a46 | ||
|
d241d32716 | ||
|
4eee2225db | ||
|
121308fbf8 | ||
|
1aeb3bdb8c | ||
|
82414cb082 | ||
|
0d4d50ab9c | ||
|
efcb733670 | ||
|
184a363778 | ||
|
edce8b391b | ||
|
754de66927 | ||
|
ab4980c06b | ||
|
555154b2d8 |
78
.htaccess
Normal file
78
.htaccess
Normal file
@@ -0,0 +1,78 @@
|
||||
# tileserver.php integration with Apache via .htaccess
|
||||
|
||||
#check htaccess functionality
|
||||
DirectoryIndex tileserver.php
|
||||
|
||||
RewriteEngine on
|
||||
|
||||
# Option: some hostings require RewriteBase e.g. 1&1.com
|
||||
#RewriteBase /
|
||||
#RewriteBase /directory/
|
||||
|
||||
# Option: some hostings require -MultiViews e.g. 1&1.com
|
||||
#Options -MultiViews
|
||||
|
||||
# Option: Restrictions for data crawlers
|
||||
#Options -Indexes
|
||||
|
||||
# Option: CORS header for cross-domain origin access to all data
|
||||
#<ifModule mod_headers.c>
|
||||
# Header set Access-Control-Allow-Origin *
|
||||
#</ifModule>
|
||||
|
||||
# Block direct downloading of .mbtiles
|
||||
<FilesMatch "\.mbtiles$">
|
||||
Order Allow,Deny
|
||||
Deny from all
|
||||
</FilesMatch>
|
||||
|
||||
# Mapping of the WMTS standardized URLs to real files and XML capabilities to tileserver.php
|
||||
|
||||
# WMTS RESTful
|
||||
# ------------
|
||||
# The file can be accessed directly:
|
||||
# Example: http://www.tileserver.com/grandcanyon/10/192/401.png
|
||||
|
||||
## map /wmts/layer/[ANYTHING]z/x/y.ext -> /layer/z/x/y.ext (WMTS ignoring tilematrixset,style,..)
|
||||
## BTW This is used only by Gaia which ignores the <ResourceURL template="...">
|
||||
#RewriteRule ^wmts/([\w\d\._-]+)/.+?(\d+)/(\d+)/(\d+)\.(\w+)$ $1/$2/$4/$3.$5 [N]
|
||||
## Example: http://www.tileserver.com/wmts/grandcanyon/style/tilematrixset/10/192/401.png
|
||||
#
|
||||
## map /layer/[ANYTHING]z/x/y.ext -> /layer/z/x/y.ext (WMTS ignoring tilematrix,style,..)
|
||||
#RewriteCond %{REQUEST_FILENAME} !-f
|
||||
#RewriteRule ^([\w\d\._-]+)/.+?(\d+)/(\d+)/(\d+)\.(\w+)$ $1/$2/$3/$4.$5 [N]
|
||||
## Example: http://www.tileserver.com/grandcanyon/style/tilematrixset/10/192/401.png
|
||||
|
||||
## WMTS KVP
|
||||
## --------
|
||||
## map the /?key=value&... -> /layer/z/x/y.ext KVP getTile queries directly to files
|
||||
#
|
||||
## format passed as mime-extension, cleaning formats (jpeg->jpg)
|
||||
#RewriteCond %{QUERY_STRING} ^(.*)format=image/jpeg(.*)$ [NC]
|
||||
#RewriteRule ^(.*)$ $1?%1format=jpg%2 [N]
|
||||
#RewriteCond %{QUERY_STRING} ^(.*)format=jpeg(.*)$ [NC]
|
||||
#RewriteRule ^(.*)$ $1?%1format=jpg%2 [N]
|
||||
#RewriteCond %{QUERY_STRING} ^(.*)format=image/png(.*)$ [NC]
|
||||
#RewriteRule ^(.*)$ $1?%1format=png%2 [N]
|
||||
#
|
||||
## variable order of keys: TODO: sort the same way as mime-extension to fixed order
|
||||
#RewriteCond %{QUERY_STRING} ^.*request=gettile.*layer=([\w\d\._-]+).*tilematrix=(\d+).*tilerow=(\d+).*tilecol=(\d+).*format=(\w+).*$ [NC]
|
||||
#RewriteRule ^ %1/%2/%3/%4.%5 [N]
|
||||
#RewriteCond %{QUERY_STRING} ^.*request=gettile.*layer=([\w\d\._-]+).*format=(\w+).*tilematrix=(\d+).*tilerow=(\d+).*tilecol=(\d+).*$ [NC]
|
||||
#RewriteRule ^ %1/%3/%5/%4.%2 [N]
|
||||
#RewriteCond %{QUERY_STRING} ^.*request=gettile.*layer=([\w\d\._-]+).*tilematrix=(\d+).*tilecol=(\d+).*tilerow=(\d+).*format=(\w+).*$ [NC]
|
||||
#RewriteRule ^ %1/%2/%4/%3.%5 [N]
|
||||
## Example: http://www.tileserver.com/wmts?request=getTile&layer=grandcanyon&tileMatrix=10&tilerow=192&tilecol=401&format=png
|
||||
## Example: http://www.tileserver.com/wmts?service=WMTS&request=GetTile&version=1.0.0&layer=ne2geo&style=&format=image/jpeg&TileMatrixSet=WGS84&TileMatrix=1&TileRow=2&TileCol=2
|
||||
|
||||
# rewrite .jpeg -> .jpg
|
||||
RewriteRule ^(.+).jpeg$ $1.jpg [L]
|
||||
|
||||
# Not modified HTTP 302
|
||||
RewriteRule .* - [E=HTTP_IF_MODIFIED_SINCE:%{HTTP:If-Modified-Since}]
|
||||
RewriteRule .* - [E=HTTP_IF_NONE_MATCH:%{HTTP:If-None-Match}]
|
||||
|
||||
RewriteCond %{REQUEST_FILENAME} !-f
|
||||
RewriteCond %{REQUEST_FILENAME} !-d
|
||||
RewriteCond $1 !^(tileserver\.php)
|
||||
RewriteRule ^(.*)$ tileserver.php?/$1 [L,QSA]
|
24
.travis.yml
Normal file
24
.travis.yml
Normal file
@@ -0,0 +1,24 @@
|
||||
language: php
|
||||
php:
|
||||
- 5.4
|
||||
- 5.5
|
||||
- 5.6
|
||||
- 7.0
|
||||
- 7.1
|
||||
- hhvm
|
||||
script:
|
||||
- php tileserver.php
|
||||
after_success:
|
||||
- wget https://github.com/klokantech/tileserver-php/releases/download/v0.1/grandcanyon.mbtiles
|
||||
- git config --global user.email "travis@localhost.localdomain"
|
||||
- git config --global user.name "Travis CI"
|
||||
- git add --all
|
||||
- git commit -am "Travis change"
|
||||
deploy:
|
||||
provider: openshift
|
||||
user: osm2vectortiles@klokantech.com
|
||||
password:
|
||||
secure: hiWKBaqh/CMdnQ2qxsRSKYAnk4tP/q2J50TaO+2sH09x+0Q85ygfICCDrEx457xqmGW0e4zZPsL83mMPvGt5KJO6g9DIncj6BFhpZA0ysnRJ3X1fczTiVN5hQfqNpa+/YIrQ0whu1Ur/IfdYTtvArYhuAPeigCloumGk9gNgSIQ=
|
||||
domain: tileserver
|
||||
app: php
|
||||
skip_cleanup: true
|
246
README.md
246
README.md
@@ -1,4 +1,244 @@
|
||||
tileserver.php
|
||||
==============
|
||||
TileServer PHP: MapTiler and MBTiles maps via WMTS
|
||||
==================================================
|
||||
|
||||
Easy to install OGC WMTS compliant map tile server for pre-rendered maps made with MapTiler / TileMill / MBTiles
|
||||
[](https://travis-ci.org/klokantech/tileserver-php)
|
||||
[](https://hub.docker.com/r/klokantech/tileserver-php/)
|
||||
|
||||
This server distributes maps to desktop, web, and mobile applications from a standard Apache+PHP web hosting.
|
||||
|
||||
It is a free and open-source project implementing the OGC WMTS standard for pre-rendered map tiles made with any [map tiling software](https://www.maptiler.com/desktop/) like MapTiler Desktop, GDAL2Tiles, or any other MBTiles file.
|
||||
|
||||
It is the easiest and cheapest way how to serve zoomable maps in a standardized way - practically from any ordinary web hosting.
|
||||
|
||||
It is easy to install - copy the project files to a PHP-enabled directory along with your map data.
|
||||
|
||||
It comes with an online interface showing the list of the maps and step-by-step guides for online mapping libraries (Google Maps API, Leaflet, OpenLayers, OL3, MapLibre GL JS, ArcGIS JS) and various desktop GIS software:
|
||||
|
||||

|
||||
|
||||
This project is developed in PHP, not because it is the best language for the development of web applications, but because it maximally simplifies the deployment on a large number of web hostings, including various free web hostings providers.
|
||||
|
||||
Tiles are served directly by Apache with mod_rewrite rules as static files and therefore are very fast and with correct HTTP caching headers. Only XML metadata is delivered via PHP. MBTiles are served via PHP and are therefore slower unless they are unpacked with mbutil.
|
||||
|
||||
[MapTiler](http://www.maptiler.com/) can render GeoTIFF, ECW, MrSID, GeoPDF into compatible map tiles. JPEG, PNG, GIF, and TIFF with scanned maps or images without geolocation can be turned into standard map layers with the visual georeferencing functionality (http://youtu.be/eJxdCe9CNYg).
|
||||
|
||||
[](http://www.maptiler.com/)
|
||||
|
||||
Requirements:
|
||||
-------------
|
||||
|
||||
- Apache webserver (with mod_rewrite / .htaccess supported)
|
||||
- PHP 5.6+ with SQLite module (php5-sqlite)
|
||||
|
||||
(or another webserver implementing mod_rewrite rules and PHP)
|
||||
|
||||
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, the TileServer.php Server should display you a welcome message and further instructions.
|
||||
|
||||
Then you can upload to the web hosting your mapping data - a directory with tiles rendered with [MapTiler](http://www.maptiler.com/).
|
||||
|
||||
Tiles produced by open-source GDAL2Tiles or MapTiler Desktop and tiles in .mbtiles format can be easily converted to the required structure (XYZ with top-left origin and metadata.json file). The open-source utility [mbutil](https://github.com/mapbox/mbutil) produces exactly the required format.
|
||||
|
||||
Direct reading of .mbtiles files is supported but with decreased performance compared to the static files in a directory. The advantage is easier data management, especially upload over FTP or similar protocols.
|
||||
|
||||
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:
|
||||
http://wiki.osgeo.org/wiki/Tile_Map_Service_Specification
|
||||
This means request compatible with OpenStreetMap tile servers.
|
||||
|
||||
Target is "InvertedTMS" implementation used by the ArcBruTile client
|
||||
which is available from http://arcbrutile.codeplex.com/ and uses
|
||||
flipped y-axis.
|
||||
|
||||
Exposed at http://[...]/tms
|
||||
|
||||
- TileJSON
|
||||
|
||||
Metadata about the individual maps in a ready to use form for web
|
||||
clients following the standard http://mapbox.com/developers/tilejson/
|
||||
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
|
||||
|
||||
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
|
||||
|
||||
To use the OGC WMTS standard, point your client (desktop or web) to the URL of 'directory' where you installed tileserver.php project with suffix "wmts".
|
||||
For example: http://www.example.com/directory/wmts
|
||||
|
||||
If you have installed the project into a root directory of a domain, then the address is: http://www.example.com/wmts
|
||||
|
||||
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]
|
||||
|
||||
Other example requests are mentioned in the .htaccess.
|
||||
|
||||
TileServer-PHP supports all coordinates systems. You have to define it with tilejson with specification on https://github.com/klokantech/tilejson-spec/tree/custom-projection/2.2.0
|
||||
Or use MapTiler to produce datasets with this specification.
|
||||
|
||||
Performance from the web clients
|
||||
--------------------------------
|
||||
|
||||
It is highly recommended to map several domain names to the service, such as:
|
||||
|
||||
http://a.example.com/, http://b.example.com/, http://c.example.com/.
|
||||
|
||||
This can be done with DNS CNAME records pointing to your hosting. The reason for this is that traditionally browsers will not send more than two simultaneous HTTP requests to the same domain - with multiple domains for the same server, you can better saturate the network and receive the maps faster.
|
||||
|
||||
Performance
|
||||
-----------
|
||||
|
||||
In case the data are available in the form of a directory with XYZ tiles, then the Apache webserver is serving these files directly as WMTS RESTful or KVP.
|
||||
|
||||
This means performance is excellent, maps are delivered very fast, and a large number of concurrent visitors can be handled even with quite low-end hardware or cheap/free web hosting providers.
|
||||
|
||||
Mod_rewrite rules are utilized to ensure the HTTP requests defined in the OCG WMTS standard are served, and Apache preserves standard caching headers & eTag.
|
||||
|
||||
The performance should be significantly better than any other tile caching project (such as TileCache.org or GeoWebCache).
|
||||
|
||||
Performance graph for "apache static" comparing other tile caching projects is available online at http://code.google.com/p/mod-geocache/wiki/PreliminaryBenchmark
|
||||
|
||||
Limits of actual implementation
|
||||
-------------------------------
|
||||
|
||||
With intention, at this moment, the project supports only:
|
||||
- We enforce and require XYZ (top-left origin) tiling schema (even for TMS).
|
||||
|
||||
Password protection
|
||||
-------------------
|
||||
|
||||
HTTP Simple Authentication can be easily added to the server.
|
||||
Edit the .htaccess and add these lines:
|
||||
|
||||
AuthUserFile /full/path/to/.htpasswd
|
||||
AuthType Basic
|
||||
AuthName "Secure WMTS"
|
||||
Require valid-user
|
||||
|
||||
Create a file called .htpasswd with user:password format.
|
||||
You can use a command-line utility:
|
||||
|
||||
$ htpasswd -c .htpasswd [your-user-login]
|
||||
|
||||
Or an online service:
|
||||
|
||||
http://www.htaccesstools.com/htpasswd-generator/
|
||||
|
||||
HTTPS / SSL support
|
||||
-------------------
|
||||
|
||||
TileServer.php can run without any problems over HTTPS, if required.
|
||||
|
||||
Microsoft Windows web-hosting
|
||||
-----------------------------
|
||||
|
||||
The TileServer.php should run on Windows-powered webservers with Apache installation if PHP 5.2+ and mod_rewrite are available.
|
||||
|
||||
With the IIS webserver hosting, you may need PHP and IIRF module (http://iirf.codeplex.com/) and alter appropriately the rewrite rules.
|
||||
|
||||
Credits / Contributors
|
||||
----------------------
|
||||
|
||||
Project developed initially by Klokan Technologies GmbH, Switzerland, in cooperation with National Oceanic and Atmospheric Administration - NOAA, USA.
|
||||
|
||||
- Petr Pridal - Klokan Technologies GmbH <petr.pridal@maptiler.com>
|
||||
- Jason Woolard - NOAA <jason.woolard@noaa.gov>
|
||||
- Jon Sellars - NOAA <jon.sellars@noaa.gov>
|
||||
- Dalibor Janak - Klokan Technologies GmbH <dalibor.janak@maptiler.com>
|
||||
|
||||
Tested WMTS/TMS clients
|
||||
-----------------------
|
||||
|
||||
- QuantumGIS Desktop 1.9+ - open with Layer->Add WMS layer
|
||||
http://www.qgis.org/
|
||||
- ESRI ArcGIS Desktop 10.1+ - native WMTS implementation supported
|
||||
http://www.esri.com/software/arcgis/arcgis-for-desktop
|
||||
- ESRI ArcGIS Online - loading via WMTS protocol
|
||||
http://www.arcgis.com/
|
||||
- ArcBruTiles plugin for ArcGIS 9.3+ - via TMS endpoint
|
||||
http://arcbrutile.codeplex.com/
|
||||
- OpenLayers WMTS Layer - including parsing GetCapabilities
|
||||
http://www.openlayers.org/
|
||||
- GAIA - native WMTS (issues with 3857 to be fixed)
|
||||
http://www.thecarbonproject.com/gaia.php
|
||||
- MapBox.js - the loading of maps via TileJSON, interaction layer supported
|
||||
https://www.mapbox.com/mapbox.js
|
||||
|
||||
Alternative
|
||||
-----------
|
||||
|
||||
If you need [map server with commercial support](https://www.maptiler.com/server/), explore the possibilities provided by the MapTiler Server.
|
||||
|
||||
BSD License
|
||||
-----------
|
||||
|
||||
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:
|
||||
|
||||
1. Redistributions of source code must retain the above copyright notice, this
|
||||
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.
|
||||
|
||||
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
|
||||
WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
|
||||
DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR
|
||||
ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
|
||||
(INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
|
||||
LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
|
||||
ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
|
||||
(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
|
||||
SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
||||
|
1322
tileserver.php
Executable file
1322
tileserver.php
Executable file
File diff suppressed because it is too large
Load Diff
Reference in New Issue
Block a user