From df70788b3cffd67c851ebc3923b5d75e8469c9d3 Mon Sep 17 00:00:00 2001 From: Winnie <liang15@mcmaster.ca> Date: Tue, 3 Apr 2018 16:50:02 -0400 Subject: [PATCH] Add support for cluster --- tomcat/webapps/Trawl/cluster.jsp | 4 +--- tomcat/webapps/Trawl/index.jsp | 8 +++++-- tomcat/webapps/Trawl/infoWindow.js | 1 - tomcat/webapps/Trawl/script.js | 37 +++++++++++++++++++++--------- 4 files changed, 33 insertions(+), 17 deletions(-) diff --git a/tomcat/webapps/Trawl/cluster.jsp b/tomcat/webapps/Trawl/cluster.jsp index 13c26d6..4685b54 100644 --- a/tomcat/webapps/Trawl/cluster.jsp +++ b/tomcat/webapps/Trawl/cluster.jsp @@ -24,7 +24,6 @@ JSONArray latitude = new JSONArray(); JSONArray count = new JSONArray(); - // Update value of each JSON Object/Array at the same index as the corresponding Record in Result input for (RecordCluster rc: clusters){ Point centroid = rc.centroid(); @@ -41,8 +40,7 @@ js.put("n", result.n()); js.put("individualCount", count); js.put("time", result.time()); - - + out.print(js.toJSONString()); %> diff --git a/tomcat/webapps/Trawl/index.jsp b/tomcat/webapps/Trawl/index.jsp index 5ce7403..b9e9d8d 100644 --- a/tomcat/webapps/Trawl/index.jsp +++ b/tomcat/webapps/Trawl/index.jsp @@ -68,9 +68,12 @@ <section id="outputIn"> <%--Map and Histogram must have the same name for default checkbox to function correctly--%> - <input type="radio" name="pickOutput" value="map" checked> Map + Cluster Size: + <input type="number" id="pickSize" value="clusterSize" > Map + <input type="radio" name="pickOutput" value="cluster" > Map + <input type="radio" name="pickOutput" value="map"> Map <input type="radio" name="pickOutput" value="heat"> Heatmap - <input type="radio" name="pickOutput" value="histogram"> Histogram + <input type="radio" name="pickOutput" value="histogram" checked> Histogram <button type="button" onClick="callOutput()">Load</button> <button type="button" onClick="">View Individual Records</button> <!--To records.html--> </section> @@ -86,6 +89,7 @@ <%--<div id="histogram"></div>--%> <%--<div id="map"></div>--%> <%--<div id="heat"></div>--%> + <%--<div id="cluster"></div>--%> <%--<div id="console">~~~ PSEUDO-CONSOLE ~~~<br></div>--%> </section> </section> diff --git a/tomcat/webapps/Trawl/infoWindow.js b/tomcat/webapps/Trawl/infoWindow.js index 279f95a..91946b3 100644 --- a/tomcat/webapps/Trawl/infoWindow.js +++ b/tomcat/webapps/Trawl/infoWindow.js @@ -30,7 +30,6 @@ function setMarkers(map, lati, longi,name, date, individualCount) { google.maps.event.addListener(marker,'click', (function(marker,content,infowindow){ return function() { - console.log("Clicked!!!!"); if (openWindow) openWindow.close(); infowindow.setContent(content); diff --git a/tomcat/webapps/Trawl/script.js b/tomcat/webapps/Trawl/script.js index 7361e42..89b18e8 100644 --- a/tomcat/webapps/Trawl/script.js +++ b/tomcat/webapps/Trawl/script.js @@ -224,9 +224,28 @@ xhr.onreadystatechange = function() {//Call a function when the state changes (i xhr.send(params); //send request to server } +function reqCluster(params){ + var path = 'doCluster.do'; + var xhr = new XMLHttpRequest(); + xhr.open("POST", path); + xhr.setRequestHeader("Content-type", "application/x-www-form-urlencoded"); //Send the proper header info + + xhr.onreadystatechange = function() {//Call a function when the state changes (i.e. response comes back) + // Update the dropdown when response is ready + if (xhr.readyState == XMLHttpRequest.DONE && xhr.status == 200) { + var nodeList = JSON.parse(this.responseText); + initCluster(nodeList["latitude"], nodeList["longitude"], nodeList["area"]); + } + else { + console.log("Server Response: Error"); //RME + } + }; + xhr.send(params); //send request to server +} + function callOutput(){ var pickOutputType = document.getElementsByName('pickOutput'); - var outType, taxGroup, yearFrom, yearTo; + var outType, taxGroup, yearFrom, yearTo, clusterSize; // Get output selection: Map/Histogram for(var i = 0; i < pickOutputType.length; i++){ if(pickOutputType[i].checked){ @@ -237,8 +256,9 @@ function callOutput(){ taxGroup = getTaxGroup(); yearFrom = $( "#slider-range" ).slider( "values", 0 ); yearTo = $( "#slider-range" ).slider( "values", 1 ); + clusterSize = document.getElementById("pickSize"); - var params= JSON.stringify({taxId: Number(taxGroup), yearF: Number(yearFrom), yearT: Number(yearTo)}); + var params= JSON.stringify({taxId: Number(taxGroup), yearF: Number(yearFrom), yearT: Number(yearTo), area: Number(clusterSize)}); //Switch Output Display document.getElementById("outputBox").innerHTML = ""; @@ -247,26 +267,21 @@ function callOutput(){ if(outType === "histogram"){ document.getElementById("outputBox").innerHTML='<div id="histogram"></div>'; reqHistogram(params); - // document.getElementById("histogram").style.display = "block"; } else if(outType === "map"){ document.getElementById("outputBox").innerHTML='<div id="map"></div>'; - console.log("generated info div"); reqMap(params); - // document.getElementById("map").style.display = "block"; } else if(outType === "heat"){ document.getElementById("outputBox").innerHTML='<div id="heat"></div>'; reqHeat(params); - // document.getElementById("heat").style.display = "block"; } - // else{ - // console.log("Heatmap/Cluster") - // } + else if(outType === "cluster"){ + document.getElementById("outputBox").innerHTML='<div id="cluster"></div>'; + reqCluster(params); + } } - - // JQuery for Range Slider $( function() { $( "#slider-range" ).slider({ -- GitLab