<?php
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');
echo $map->render();
?>
<script src="../content/dataviz/map/js/chroma.min.js"></script>
<script>
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>