mirror of
https://github.com/klokantech/tileserver-php.git
synced 2025-08-03 13:17:34 +02:00
grammar check
This commit is contained in:
94
README.md
94
README.md
@@ -4,36 +4,23 @@ TileServer PHP: MapTiler and MBTiles maps via WMTS
|
|||||||
[](https://travis-ci.org/klokantech/tileserver-php)
|
[](https://travis-ci.org/klokantech/tileserver-php)
|
||||||
[](https://hub.docker.com/r/klokantech/tileserver-php/)
|
[](https://hub.docker.com/r/klokantech/tileserver-php/)
|
||||||
|
|
||||||
This server distributes maps to desktop, web, and mobile applications from
|
This server distributes maps to desktop, web, and mobile applications from a standard Apache+PHP web hosting.
|
||||||
a standard Apache+PHP web hosting.
|
|
||||||
|
|
||||||
Try a live demo at: http://tileserver.maptiler.com/
|
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 a free and open-source project implementing OGC WMTS standard for
|
It is the easiest and cheapest way how to serve zoomable maps in a standardized way - practically from any ordinary web hosting.
|
||||||
pre-rendered map tiles made with [MapTiler](http://www.maptiler.com/), GDAL2Tiles,
|
|
||||||
or available as MBTiles files.
|
|
||||||
|
|
||||||
It is the easiest and cheapest way how to serve zoomable maps in a
|
It is easy to install - copy the project files to a PHP-enabled directory along with your map data.
|
||||||
standardized way - practically from any ordinary web hosting.
|
|
||||||
|
|
||||||
It is easy to install - just copy the project files to a PHP-enabled
|
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:
|
||||||
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, MapBox JS, ArcGIS JS) and various desktop GIS software:
|
|
||||||
|
|
||||||

|

|
||||||
|
|
||||||
This project is developed in PHP, not because it is the best language for
|
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.
|
||||||
development of web applications, but because it maximally simplify the
|
|
||||||
deployment on large number of web hosting providers including various free
|
|
||||||
web hostings.
|
|
||||||
|
|
||||||
Tiles are served directly by Apache with mod_rewrite rules as static files
|
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.
|
||||||
and therefore are very fast and with correct HTTP caching headers.
|
|
||||||
Only XML metadata are delivered via PHP.
|
|
||||||
MBTiles are served via PHP, and are therfore 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).
|
[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/)
|
[](http://www.maptiler.com/)
|
||||||
|
|
||||||
@@ -50,21 +37,13 @@ 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.
|
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.
|
||||||
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
|
Then you can upload to the web hosting your mapping data - a directory with tiles rendered with [MapTiler](http://www.maptiler.com/).
|
||||||
tiles rendered with [MapTiler](http://www.maptiler.com/).
|
|
||||||
|
|
||||||
Tiles produced by open-source GDAL2Tiles or MapTiler and tiles in .mbtiles
|
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.
|
||||||
files can be easily converted to 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
|
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.
|
||||||
compared to the static files in a directory. The advantage is easier data management,
|
|
||||||
especially upload over FTP or similar protocols.
|
|
||||||
|
|
||||||
Supported protocols:
|
Supported protocols:
|
||||||
--------------------
|
--------------------
|
||||||
@@ -123,8 +102,7 @@ Supported protocols:
|
|||||||
- Retina / HighDPI routing with 512 tiles
|
- Retina / HighDPI routing with 512 tiles
|
||||||
Use @2x suffix in url for JSONs and tiles. For example http://tileserver.maptiler.com/grandcanyon@2x.json
|
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
|
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".
|
||||||
of 'directory' where you installed tileserver.php project with suffix "wmts".
|
|
||||||
For example: http://www.example.com/directory/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
|
If you have installed the project into a root directory of a domain, then the address is: http://www.example.com/wmts
|
||||||
@@ -143,43 +121,35 @@ GetTile RESTful/KVP:
|
|||||||
|
|
||||||
Other example requests are mentioned in the .htaccess.
|
Other example requests are mentioned in the .htaccess.
|
||||||
|
|
||||||
TileServer-PHP supports all coordinates system. You have to define it with tilejson with specification on https://github.com/klokantech/tilejson-spec/tree/custom-projection/2.2.0
|
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.
|
Or use MapTiler to produce datasets with this specification.
|
||||||
|
|
||||||
Performance from the web clients
|
Performance from the web clients
|
||||||
--------------------------------
|
--------------------------------
|
||||||
|
|
||||||
It is highly recommended to map several domain names to the service, such as:
|
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/.
|
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 then two
|
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.
|
||||||
simultaneous http request to the same domain - with multiple domains for the
|
|
||||||
same server you can better saturate the network and receive the maps faster.
|
|
||||||
|
|
||||||
Performance
|
Performance
|
||||||
-----------
|
-----------
|
||||||
|
|
||||||
In case the data are available in a form of directory with XYZ tiles, then
|
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.
|
||||||
Apache webserver is serving these files directly as WMTS RESTful or KVP.
|
|
||||||
|
|
||||||
This means performance is excellent, maps are delivered very fast and large
|
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.
|
||||||
number of concurrent visitors can be handled even with quite a low-end
|
|
||||||
hardware or cheap/free web hosting providers.
|
|
||||||
|
|
||||||
Mod_rewrite rules are utilized to ensure the HTTP requests defined in the OCG
|
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.
|
||||||
WMTS standard are served, and Apache preserve standard caching headers & eTag.
|
|
||||||
|
|
||||||
The performance should be significantly better then performance of any other
|
The performance should be significantly better than any other tile caching project (such as TileCache.org or GeoWebCache).
|
||||||
tile caching project (such as TileCache.org or GeoWebCache).
|
|
||||||
|
|
||||||
Performance graph for "apache static" comparing other tile caching projects
|
Performance graph for "apache static" comparing other tile caching projects is available online at http://code.google.com/p/mod-geocache/wiki/PreliminaryBenchmark
|
||||||
is available online at:
|
|
||||||
http://code.google.com/p/mod-geocache/wiki/PreliminaryBenchmark
|
|
||||||
|
|
||||||
Limits of actual implementation
|
Limits of actual implementation
|
||||||
-------------------------------
|
-------------------------------
|
||||||
|
|
||||||
With intention, in this moment the project supports only:
|
With intention, at this moment, the project supports only:
|
||||||
- We enforce and require XYZ (top-left origin) tiling schema (even for TMS).
|
- We enforce and require XYZ (top-left origin) tiling schema (even for TMS).
|
||||||
|
|
||||||
Password protection
|
Password protection
|
||||||
@@ -210,22 +180,19 @@ TileServer.php can run without any problems over HTTPS, if required.
|
|||||||
Microsoft Windows web-hosting
|
Microsoft Windows web-hosting
|
||||||
-----------------------------
|
-----------------------------
|
||||||
|
|
||||||
The TileServer.php should run on Windows-powered webservers with Apache
|
The TileServer.php should run on Windows-powered webservers with Apache installation if PHP 5.2+ and mod_rewrite are available.
|
||||||
installation if PHP 5.2+ and mod_rewrite are available.
|
|
||||||
|
|
||||||
With the IIS webserver hosting, you may need PHP and IIRF module
|
With the IIS webserver hosting, you may need PHP and IIRF module (http://iirf.codeplex.com/) and alter appropriately the rewrite rules.
|
||||||
(http://iirf.codeplex.com/) and alter appropriately the rewrite rules.
|
|
||||||
|
|
||||||
Credits / Contributors
|
Credits / Contributors
|
||||||
----------------------
|
----------------------
|
||||||
|
|
||||||
Project developed initially by Klokan Technologies GmbH, Switzerland in
|
Project developed initially by Klokan Technologies GmbH, Switzerland, in cooperation with National Oceanic and Atmospheric Administration - NOAA, USA.
|
||||||
cooperation with National Oceanic and Atmospheric Administration - NOAA, USA.
|
|
||||||
|
|
||||||
- Petr Pridal - Klokan Technologies GmbH <petr.pridal@klokantech.com>
|
- Petr Pridal - Klokan Technologies GmbH <petr.pridal@maptiler.com>
|
||||||
- Jason Woolard - NOAA <jason.woolard@noaa.gov>
|
- Jason Woolard - NOAA <jason.woolard@noaa.gov>
|
||||||
- Jon Sellars - NOAA <jon.sellars@noaa.gov>
|
- Jon Sellars - NOAA <jon.sellars@noaa.gov>
|
||||||
- Dalibor Janak - Klokan Technologies GmbH <dalibor.janak@klokantech.com>
|
- Dalibor Janak - Klokan Technologies GmbH <dalibor.janak@maptiler.com>
|
||||||
|
|
||||||
Tested WMTS/TMS clients
|
Tested WMTS/TMS clients
|
||||||
-----------------------
|
-----------------------
|
||||||
@@ -244,6 +211,11 @@ Tested WMTS/TMS clients
|
|||||||
http://www.thecarbonproject.com/gaia.php
|
http://www.thecarbonproject.com/gaia.php
|
||||||
- MapBox.js - the loading of maps via TileJSON, interaction layer supported
|
- MapBox.js - the loading of maps via TileJSON, interaction layer supported
|
||||||
https://www.mapbox.com/mapbox.js
|
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
|
BSD License
|
||||||
-----------
|
-----------
|
||||||
|
Reference in New Issue
Block a user