<?php
if ($_SERVER['REQUEST_METHOD'] == 'POST') {
$fileName = $_POST['fileName'];
$contentType = $_POST['contentType'];
$base64 = $_POST['base64'];
$data = base64_decode($base64);
header('Content-Type:' . $contentType);
header('Content-Length:' . strlen($data));
header('Content-Disposition: attachment; filename=' . $fileName);
echo $data;
exit;
}
require_once '../lib/Kendo/Autoload.php';
$dataSource = new \Kendo\Data\DataSource();
$dataSource->type("geojson")
->transport(array('read' => '../content/dataviz/map/countries-users.geo.json'));
$layer = new \Kendo\Dataviz\UI\MapLayer();
$layer->type("shape")
->dataSource($dataSource)
->style(array('fill' => array('opacity' => 0.7)));
$map = new \Kendo\Dataviz\UI\Map('map');
$map->center(array(30.2681, -97.7448))
->zoom(3)
->addLayer($layer)
->shapeCreated('onShapeCreated')
->shapeMouseEnter('onShapeMouseEnter')
->shapeMouseLeave('onShapeMouseLeave');
?>
<!-- Chroma.js used to colorize the map in the demo -->
<script src="../content/dataviz/map/js/chroma.min.js"></script>
<!-- Load Pako ZLIB library to enable PDF compression -->
<script src="../content/shared/js/pako.min.js"></script>
<div class="box wide">
<h4>Export options</h4>
<div class="box-col">
<button class='export-pdf k-button'>Export as PDF</button>
</div>
<div class="box-col">
<button class='export-img k-button'>Export as Image</button>
</div>
<div class="box-col">
<button class='export-svg k-button'>Export as SVG</button>
</div>
</div>
<?php
echo $map->render();
?>
<script>
$(".export-pdf").click(function() {
// Convert the DOM element to a drawing using kendo.drawing.drawDOM
kendo.drawing.drawDOM($("#map"))
.then(function(group) {
// Render the result as a PDF file
return kendo.drawing.exportPDF(group, {
paperSize: "auto",
margin: { left: "1cm", top: "1cm", right: "1cm", bottom: "1cm" }
});
})
.done(function(data) {
// Save the PDF file
kendo.saveAs({
dataURI: data,
fileName: "Map.pdf",
proxyURL: "export.php?type=save"
});
});
});
$(".export-img").click(function() {
// Convert the DOM element to a drawing using kendo.drawing.drawDOM
kendo.drawing.drawDOM($("#map"))
.then(function(group) {
// Render the result as a PNG image
return kendo.drawing.exportImage(group);
})
.done(function(data) {
// Save the image file
kendo.saveAs({
dataURI: data,
fileName: "Map.png",
proxyURL: "export.php?type=save"
});
});
});
$(".export-svg").click(function() {
// Convert the DOM element to a drawing using kendo.drawing.drawDOM
kendo.drawing.drawDOM($("#map"))
.then(function(group) {
// Render the result as a SVG document
return kendo.drawing.exportSVG(group);
})
.done(function(data) {
// Save the SVG document
kendo.saveAs({
dataURI: data,
fileName: "Map.svg",
proxyURL: "export.php?type=save"
});
});
});
var scale = chroma
.scale(["white", "green"])
.domain([1, 1000]);
function onShapeCreated(e) {
var shape = e.shape;
var users = shape.dataItem.properties.users;
if (users) {
var color = scale(users).hex();
shape.options.fill.set("color", color);
}
}
function onShapeMouseEnter(e) {
e.shape.options.set("fill.opacity", 1);
}
function onShapeMouseLeave(e) {
e.shape.options.set("fill.opacity", 0.7);
}
</script>