Commit 561e93922b0255b55489b7dfdfab63b9dd0e4fe2

Authored by Antoine Goutenoir
1 parent ad528ad0
Exists in master

chore: lint

flaskr/static/css/common/main.css
@@ -82,6 +82,7 @@ span.required-asterisk { @@ -82,6 +82,7 @@ span.required-asterisk {
82 .plot-container { 82 .plot-container {
83 /*background: #ff3399;*/ 83 /*background: #ff3399;*/
84 border: 2px dotted #888; 84 border: 2px dotted #888;
  85 + position: relative;
85 } 86 }
86 .legend-list { 87 .legend-list {
87 list-style: none; 88 list-style: none;
flaskr/static/js/plots/emissions-per-distance.js
1 -// export draw_emissions_per_distance  
2 1
3 function draw_emissions_per_distance(divId, csvUrl) { 2 function draw_emissions_per_distance(divId, csvUrl) {
4 // let divId = "emissions_per_distance_histogram"; 3 // let divId = "emissions_per_distance_histogram";
@@ -43,9 +42,6 @@ function draw_emissions_per_distance(divId, csvUrl) { @@ -43,9 +42,6 @@ function draw_emissions_per_distance(divId, csvUrl) {
43 } 42 }
44 43
45 function setupCursorBoxes(event, attendeeSum, attendeeNumberPerGroup, xScale, box, vertical, rightArea) { 44 function setupCursorBoxes(event, attendeeSum, attendeeNumberPerGroup, xScale, box, vertical, rightArea) {
46 - // mousex = d3.mouse(this);  
47 - // const x = d3.mouse(this)[0];  
48 - // const y = d3.mouse(this)[1];  
49 const x = d3.pointer(event)[0]; 45 const x = d3.pointer(event)[0];
50 const y = d3.pointer(event)[1]; 46 const y = d3.pointer(event)[1];
51 // var y = d3.event.pageY - document.getElementById(<id-of-your-svg>).getBoundingClientRect().y + 10 47 // var y = d3.event.pageY - document.getElementById(<id-of-your-svg>).getBoundingClientRect().y + 10
@@ -112,13 +108,13 @@ function draw_emissions_per_distance(divId, csvUrl) { @@ -112,13 +108,13 @@ function draw_emissions_per_distance(divId, csvUrl) {
112 .style("left", "0px") 108 .style("left", "0px")
113 .style("border", "1px solid grey") 109 .style("border", "1px solid grey")
114 .style("background", "rgba(255, 255, 255, 0.7)"); 110 .style("background", "rgba(255, 255, 255, 0.7)");
  111 +
115 d3.select("#" + divId) 112 d3.select("#" + divId)
116 .on("mousemove", function (event) { 113 .on("mousemove", function (event) {
117 setupCursorBoxes(event, attendeeSum, attendeeNumberPerGroup, xScale, box, vertical, rightArea); 114 setupCursorBoxes(event, attendeeSum, attendeeNumberPerGroup, xScale, box, vertical, rightArea);
118 }) 115 })
119 .on("mouseover", function (event) { 116 .on("mouseover", function (event) {
120 setupCursorBoxes(event, attendeeSum, attendeeNumberPerGroup, xScale, box, vertical, rightArea); 117 setupCursorBoxes(event, attendeeSum, attendeeNumberPerGroup, xScale, box, vertical, rightArea);
121 -  
122 }); 118 });
123 } 119 }
124 120
flaskr/static/public/data/world.geojson renamed to flaskr/static/public/data/world-earth.geojson
flaskr/templates/estimation.html
@@ -174,7 +174,7 @@ @@ -174,7 +174,7 @@
174 <li class="nav-item m-4"> 174 <li class="nav-item m-4">
175 <a id="cities_footprints_d3viz_lollipop_download_png" 175 <a id="cities_footprints_d3viz_lollipop_download_png"
176 href="#" 176 href="#"
177 - title="This may not work on IE nor Edge. Please use a decent browser like Firefox." 177 + title="This may not work on IE nor Edge."
178 class="btn btn-lg btn-secondary"> 178 class="btn btn-lg btn-secondary">
179 Download Plot PNG 179 Download Plot PNG
180 </a> 180 </a>
@@ -228,13 +228,13 @@ @@ -228,13 +228,13 @@
228 {% block js %} 228 {% block js %}
229 {% if not estimation.has_failed() %} 229 {% if not estimation.has_failed() %}
230 230
  231 +{# Eventually, once we're done with plots, use flask's asset minifier #}
231 <script src="/static/js/vendor/d3.v6.js"></script> 232 <script src="/static/js/vendor/d3.v6.js"></script>
232 <script src="/static/js/vendor/d3-legend.js"></script> 233 <script src="/static/js/vendor/d3-legend.js"></script>
233 <script src="/static/js/vendor/d3-scale-chromatic.v1.min.js"></script> 234 <script src="/static/js/vendor/d3-scale-chromatic.v1.min.js"></script>
234 <script src="/static/js/vendor/d3-geo-projection.v2.min.js"></script> 235 <script src="/static/js/vendor/d3-geo-projection.v2.min.js"></script>
235 <script src="/static/js/plots/emissions-per-distance.js"></script> 236 <script src="/static/js/plots/emissions-per-distance.js"></script>
236 -{#<script src="https://d3js.org/d3.v4.js"></script>#}  
237 -{#<script src="https://cdnjs.cloudflare.com/ajax/libs/d3-legend/2.25.6/d3-legend.js"></script>#} 237 +<script src="/static/js/plots/travel-legs-worldmap.js"></script>
238 238
239 <script type="text/javascript"> 239 <script type="text/javascript">
240 240
@@ -281,7 +281,14 @@ draw_emissions_per_distance( @@ -281,7 +281,14 @@ draw_emissions_per_distance(
281 "/estimation/{{ estimation.public_id }}.csv" 281 "/estimation/{{ estimation.public_id }}.csv"
282 ); 282 );
283 283
284 -console.log("Done."); 284 +
  285 +draw_travel_legs_worldmap(
  286 + "#d3viz_travels",
  287 + "/static/public/data/world-earth.geojson",
  288 + "/estimation/{{ estimation.public_id }}/trips_to_destination_0.csv"
  289 +);
  290 +
  291 +
285 292
286 {# 293 {#
287 jQuery(document).ready(function($){ 294 jQuery(document).ready(function($){
@@ -600,100 +607,6 @@ jQuery(document).ready(function($){ @@ -600,100 +607,6 @@ jQuery(document).ready(function($){
600 }); 607 });
601 608
602 609
603 -jQuery(document).ready(function($) {  
604 - var vizid = "#d3viz_travels";  
605 - var worldDataUrl = "/static/public/data/world.geojson";  
606 - {#var travelsDataUrl = "/static/public/data/data_connectionmap_test.csv";#}  
607 - var travelsDataUrl = "/estimation/{{ estimation.public_id }}/trips_to_destination_0.csv";  
608 -  
609 - {#var margin = {top: 40, right: 40, bottom: 150, left: 180},#}  
610 - var margin = {top: 0, right: 0, bottom: 0, left: 0};  
611 - var width = $(vizid).parent().width();  
612 - var height = width - margin.top - margin.bottom;  
613 - height *= 1.0;  
614 - {#var height = Math.max(300, 600) - margin.top - margin.bottom;#}  
615 - {#var width = Math.max(880, $(vizid).parent().width());#}  
616 - width = width - margin.left - margin.right;  
617 -  
618 - var size_ratio = 0.85;  
619 - width = 629.0 * size_ratio;  
620 - height = 604.0 * size_ratio;  
621 - {#width = 500.0;#}  
622 - {#height = 400.0;#}  
623 -  
624 - var offset_x = 0.0;  
625 - var offset_y = 0.0;  
626 -  
627 - var svg = d3.select(vizid)  
628 - .append("svg")  
629 - .attr("width", width + margin.left + margin.right)  
630 - .attr("height", height + margin.top + margin.bottom);  
631 -  
632 - var projection = d3.geoMercator()  
633 - .scale(85)  
634 - .translate([width / 2.0 + offset_x, height / 2.0 + offset_y]);  
635 -  
636 - {#var projection = d3.geoMercator()#}  
637 - {# .scale(85)#}  
638 - {# .translate([width / 2, height / 2 * 1.3]);#}  
639 -  
640 - // A path generator  
641 - var geopath = d3.geoPath().projection(projection);  
642 -  
643 - // Load world shape AND list of connection  
644 - {#d3.queue()#}  
645 - {# .defer(d3.json, worldDataUrl)#}  
646 - {#.defer(d3.json, "https://raw.githubusercontent.com/holtzy/D3-graph-gallery/master/DATA/world.geojson") // World shape#}  
647 - {# .defer(d3.csv, travelsDataUrl)#}  
648 - {#.defer(d3.csv, "https://raw.githubusercontent.com/holtzy/D3-graph-gallery/master/DATA/data_connectionmap.csv") // Position of circles#}  
649 - {# .await(on_map_ready);#}  
650 - var worldDataPromise = d3.json(worldDataUrl);  
651 - var travelsDataPromise = d3.csv(travelsDataUrl);  
652 - Promise.all([worldDataPromise, travelsDataPromise]).then(function(values){  
653 - on_map_ready(null, values[0], values[1]);  
654 - });  
655 -  
656 - function on_map_ready(error, dataGeo, data) {  
657 -  
658 - // Reformat the list of link. Note that columns in csv file are called long1, long2, lat1, lat2  
659 - var link = [];  
660 - data.forEach(function (row) {  
661 - source = [+row.origin_lon, +row.origin_lat];  
662 - target = [+row.destination_lon, +row.destination_lat];  
663 - topush = {type: "LineString", coordinates: [source, target]};  
664 - link.push(topush);  
665 - });  
666 -  
667 - // Draw the map  
668 - svg.append("g")  
669 - .selectAll("path")  
670 - .data(dataGeo.features)  
671 - .enter()  
672 - .append("path")  
673 - .attr("fill", "#b8b8b8")  
674 - .attr("d", geopath)  
675 - .style("stroke", "#fff")  
676 - .style("stroke-width", 0);  
677 -  
678 - // Add the path  
679 - svg.selectAll("myPath")  
680 - .data(link)  
681 - .enter()  
682 - .append("path")  
683 - .attr("d", geopath)  
684 -// .attr("d", function (d) {  
685 -// return geopath(d);  
686 - // })  
687 - .style("fill", "none")  
688 - .style("stroke", "#69b3a2")  
689 - .style("stroke-width", 2);  
690 -  
691 - }  
692 -  
693 -});  
694 -  
695 -  
696 -  
697 610
698 </script> 611 </script>
699 612