New index and viewer (+ templating system)

This commit is contained in:
Petr Sloup
2016-03-16 20:47:11 +01:00
parent d0c0430dca
commit 837cb7d1fb
12 changed files with 392 additions and 92 deletions
+52
View File
@@ -0,0 +1,52 @@
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>TileServer GL</title>
<style>
h3 {display:inline-block;}
</style>
<body>
<h1>TileServer GL</h1>
<h2>Styles</h2>
<ul>
{{#each styles}}
<li>
{{#if serving_raster}}
<img src="/raster/{{@key}}/0/0/0.png" width="32" alt="{{name}} preview" />
{{else}}
N/A
{{/if}}
<h3>{{name}}</h3>
<span>(id: {{@key}})</span>
{{#if serving_style}}
<a href="/styles/{{@key}}/?vector">Viewer (vector)</a>
{{/if}}
{{#if serving_raster}}
<a href="/styles/{{@key}}/?raster">Viewer (raster)</a>
{{/if}}
{{#if serving_style}}
{{#if serving_raster}}
<a href="/styles/{{@key}}/">Viewer (auto)</a>
{{/if}}
{{/if}}
{{#if serving_raster}}
<a href="/raster/{{@key}}.json">TileJSON</a>
{{/if}}
</li>
{{/each}}
</ul>
<h2>Data</h2>
<ul>
{{#each data}}
<li>
<h3>{{name}}</h3>
<span>(id: {{@key}})</span>
<a href="/vector/{{@key}}/">X-Ray viewer</a>
<a href="/vector/{{@key}}.json">TileJSON</a>
</li>
{{/each}}
</ul>
</body>
</html>
+39
View File
@@ -0,0 +1,39 @@
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>{{name}} - TileServer GL</title>
<link rel="stylesheet" type="text/css" href="/mapbox-gl.css" />
<script src="/mapbox-gl.js"></script>
<link rel="stylesheet" type="text/css" href="/mapbox.css" />
<script src="/mapbox.js"></script>
<script src="/leaflet-hash.js"></script>
<style>
body { margin:0; padding:0; }
#map { position:absolute; top:0; bottom:0; width:100%; }
</style>
<body>
<h1 style="display:none;">{{name}}</h1>
<div id='map'></div>
<script>
var preference = (location.search || '').substr(1);
if (preference != 'vector' && preference != 'raster') {
preference = mapboxgl.supported() ? 'vector' : 'raster';
}
if (preference == 'vector') {
var map = new mapboxgl.Map({
container: 'map',
style: '/styles/{{id}}.json',
hash: true
});
map.addControl(new mapboxgl.Navigation());
} else {
var map = L.mapbox.map('map', '/raster/{{id}}.json', { zoomControl: false });
new L.Control.Zoom({ position: 'topright' }).addTo(map);
setTimeout(function() {
new L.Hash(map);
}, 0);
}
</script>
</body>
</html>