This repository has been archived by the owner on Jun 25, 2024. It is now read-only.
-
Notifications
You must be signed in to change notification settings - Fork 164
Custom template #31
Milestone
Comments
It is a nice idea. This development should happen in a separate branch - with a sample viewer. |
daliborjanak
added a commit
that referenced
this issue
Mar 7, 2016
Implemented. If is in So the simple example with leaflet of template could be: <!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<link rel="stylesheet" href="http://cdn.leafletjs.com/leaflet-0.7.2/leaflet.css" />
<script src="http://cdn.leafletjs.com/leaflet-0.7.2/leaflet.js"></script>
<style type="text/css">
html, body { height: 100%; margin: 0; padding: 0; position: fixed; font-family: Verdana, Geneva, sans-serif; font-size: 12pt; color: #666666;}
h1{margin: 0; padding: 0; font-size: 24pt;}
label{font-size: 11pt; cursor: pointer;}
header{position: fixed; top: 10px; right: 10px; z-index: 1000;}
#map{position: fixed; width: 100%; height: 100%; margin: 0; padding: 0;}
#sliders{position: fixed; bottom: 10px; left: 10px; z-index: 1000;}
.bg{background-color: #fff; opacity: 0.9; padding: 10px 15px}
</style>
<title><?php echo $serverTitle ?></title>
</head>
<body>
<div id="page">
<div id="map"></div>
<script type="text/javascript">
<?php foreach ($maps as $map) { ?>
var <?php echo $map['basename'] ?>Bounds = new L.LatLngBounds(
new L.LatLng(<?php echo $map['bounds'][1] . ',' . $map['bounds'][0] ?>),
new L.LatLng(<?php echo $map['bounds'][3] . ',' . $map['bounds'][2] ?>));
var <?php echo $map['basename'] ?> = L.tileLayer(
'<?php echo 'http://' . $baseUrls[0] . '/' . $map['basename'] . '/{z}/{x}/{y}.' . $map['format'] ?>', {
minZoom: <?php echo $map['minzoom']; ?>,
maxZoom: <?php echo $map['maxzoom']; ?>,
opacity: 1,
bounds: <?php echo $map['basename'] ?>Bounds,
zIndex: 1
});
<?php } ?>
var OSM = L.tileLayer('http://{s}.tile.osm.org/{z}/{x}/{y}.png', {
attribution: '© <a href="http://osm.org/copyright">OpenStreetMap</a>'
});
var layers = [OSM
<?php
foreach ($maps as $map) {
echo ','.$map['basename'];
}
?>
];
var map = L.map('map', {
center: [50.2311, 17.24],
zoom: 12,
layers: layers
});
function updateOpacity(layer, value) {
layer.setOpacity(value);
}
function updateVisibility(layer, zIndex, checked) {
if (checked) {
layer.addTo(map);
layer.setZIndex(zIndex);
} else {
map.removeLayer(layer);
}
}
function fitBounds(layer) {
map.fitBounds(layer.options.bounds);
layer.bringToFront();
}
</script>
<div id="control">
<header class="bg">
<h1><?php echo $serverTitle ?></h1>
</header>
<div id="sliders" class="bg">
<?php foreach ($maps as $map) { ?>
<input type="checkbox" name="layerchecker"
onclick="updateVisibility(<?php echo $map['basename'] ?>, 1, this.checked);" checked>
<label onclick="fitBounds(<?php echo $map['basename'] ?>)"><?php echo $map['name'] ?></label><br>
<input id="slide" type="range" min="0" max="1" step="0.1" value="1"
onchange="updateOpacity(<?php echo $map['basename'] ?>, this.value)">
<br>
<?php } ?>
</div>
</div>
</div>
</body>
</html> |
The documentation is available at: |
Sign up for free
to subscribe to this conversation on GitHub.
Already have an account?
Sign in.
Is it possible to allow TileServer to use a custom template by default? Idea: Set path to template in config variable e.g. $config['template'] = 'leaflet.php';
If it's not set TileServer will use default viewer.
In template will be added PHP variables for custom use:
$baseUrls (array) - url to tileserver from config variable
$serverTitle (string) - Title from config variable
$maps (array) - with metadata about layers
The text was updated successfully, but these errors were encountered: