Skip to content

Instantly share code, notes, and snippets.

@fortenti
Created January 12, 2017 21:30
Show Gist options
  • Save fortenti/1d193b77879637a456736713291d296c to your computer and use it in GitHub Desktop.
Save fortenti/1d193b77879637a456736713291d296c to your computer and use it in GitHub Desktop.
velodispo
license: mit

Built with blockbuilder.org

forked from anonymous's block: fresh block

forked from anonymous's block: fresh block

forked from anonymous's block: fresh block

forked from anonymous's block: fresh block

forked from anonymous's block: fresh block

forked from anonymous's block: fresh block

forked from anonymous's block: fresh block

forked from anonymous's block: fresh block

forked from anonymous's block: fresh block

forked from anonymous's block: fresh block

forked from anonymous's block: fresh block

forked from anonymous's block: fresh block

forked from anonymous's block: fresh block

forked from anonymous's block: velodispo

forked from anonymous's block: velodispo

forked from anonymous's block: velodispo

forked from anonymous's block: velodispo

forked from anonymous's block: velodispo

forked from anonymous's block: velodispo

forked from anonymous's block: velodispo

forked from anonymous's block: velodispo

forked from anonymous's block: velodispo

forked from anonymous's block: velodispo

<html>
<head>
<meta charset="utf-8">
<link rel="stylesheet" href="http://cdn.leafletjs.com/leaflet-0.7/leaflet.css"/>
<script src="http://d3js.org/d3.v3.min.js"></script>
<script src="http://cdn.leafletjs.com/leaflet-0.7/leaflet.js"> </script>
<style>
#map {
width: 100%;
height: 100%;
}
.hidden {
display: none;
}
div.tooltip {
color: #222;
background-color: #fff;
padding: .5em;
text-shadow: #f5f5f5 0 1px 0;
border-radius: 2px;
opacity: 0.9;
position: absolute;
}
</style>
</head>
<body>
<div id="map">
<script>
//fond de carte center lyon
var map = L.map('map').setView([45.750000, 4.850000], 13);
L.tileLayer('http://{s}.tile.openstreetmap.se/hydda/full/{z}/{x}/{y}.png',
{attribution: 'Tiles courtesy of <a href="http://openstreetmap.se/" target="_blank">OpenStreetMap Sweden</a> &mdash; Map data &copy; <a href="http://www.openstreetmap.org/copyright">OpenStreetMap</a>'
}).addTo(map);
var svg = d3.select(map.getPanes().overlayPane).append("svg");
var g = svg.append("g").attr("class", "leaflet-zoom-hide");
var tooltip = d3.select('body').append('div')
.attr('class', 'hidden tooltip');
//cree les point station + charge info box
d3.json("stations.json", function(error, collection2) {
if (error) throw error;
var transform2 = d3.geo.transform({point: projectPoint2}),
//path2=d3.geo.path().projection(transform2);
//path2=d3.geo.path().projection(transform2).pointRadius(5);
path2=d3.geo.path().projection(transform2).pointRadius(
function(d){return (d.properties.bike_stands/ 3).toString();});
var feature2 = g.selectAll("path")
.data(collection2.features)
.enter()
.append("path")
.style("fill", "#ff0505")
.style({'stroke' : 'green', 'stroke-width': function(d)
{return (d.properties.available_bikes/3).toString();}
})
/*.style({'stroke-dasharray': function(d) {
return d.properties.bike_stands.toString();} function(d) {
return d.properties.available_bikes.toString();}})*/
//
.classed("stationsVelo", true)
.attr("id", function(d) {
return "id_" + d.properties.number;
})
.attr("nb_stands", function(d) {
return "id_" + d.properties.bike_stands;
})
.on('mousemove', function(d) {
var mouse = d3.mouse(svg.node()).map(function(d) {
return parseInt(d);});
tooltip.classed('hidden', false)
.attr('style', 'left:' + (mouse[0] - 300) + 'px; top:' + (mouse[1] - 300) + 'px')
.html("Station : " +d.properties.name + "<br>Nombre de place : " +"<br> -Total: "+ d.properties.bike_stands + "<br> -Libre: " + d.properties.available_bike_stands+"<br>Vélo disponible : "+d.properties.available_bikes);
})
.on('mouseout', function() {tooltip.classed('hidden', true);})
;
map.on("viewreset", update);
update();
/**/
// Reposition the SVG to cover the features.
function update() {
var bounds2 = path2.bounds(collection2),
topLeft2 = bounds2[0],
bottomRight2 = bounds2[1];
svg .attr("width", bottomRight2[0] - topLeft2[0])
.attr("height", bottomRight2[1] - topLeft2[1])
.style("left", topLeft2[0] + "px")
.style("top", topLeft2[1] + "px");
g.attr("transform", "translate(" + (-topLeft2[0]) + "," + (-topLeft2[1]) + ")");
feature2.attr("d", path2);
}
// Use Leaflet to implement a D3 geometric transformation.
function projectPoint2(x, y) {
var point = map.latLngToLayerPoint(new L.LatLng(y, x));
this.stream.point(point.x, point.y);2
}
});
/**/
</script>
</body>
</html>
Display the source blob
Display the rendered blob
Raw
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Display the source blob
Display the rendered blob
Raw
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment