From a01b15e508f4c3065087212e84bcb3e5915268db Mon Sep 17 00:00:00 2001
From: Ray Liu <rayliu109@gmail.com>
Date: Mon, 2 Apr 2018 16:37:43 -0400
Subject: [PATCH] Finished heat maps api

---
 tomcat/webapps/Trawl/map.js  | 64 ++++++++++++++++++++++++++++++++++++
 tomcat/webapps/Trawl/map.jsp | 47 ++++++++++++++++++++++++++
 2 files changed, 111 insertions(+)
 create mode 100644 tomcat/webapps/Trawl/map.js
 create mode 100644 tomcat/webapps/Trawl/map.jsp

diff --git a/tomcat/webapps/Trawl/map.js b/tomcat/webapps/Trawl/map.js
new file mode 100644
index 0000000..8c6f08b
--- /dev/null
+++ b/tomcat/webapps/Trawl/map.js
@@ -0,0 +1,64 @@
+//*This code references the google heat maps API
+
+
+// This example requires the Visualization library. Include the libraries=visualization
+// parameter when you first load the API. For example:
+// <script src="https://maps.googleapis.com/maps/api/js?key=YOUR_API_KEY&libraries=visualization">
+
+var map, heatmap;
+
+function initMap(longi,lati) {
+  map = new google.maps.Map(document.getElementById('map'), {
+    zoom: 13,
+    center: {lat: 37.775, lng: -122.434},
+    mapTypeId: 'satellite'
+  });
+
+  heatmap = new google.maps.visualization.HeatmapLayer({
+    data: getPoints(longi,lati),
+    map: map
+  });
+}
+
+function toggleHeatmap() {
+  heatmap.setMap(heatmap.getMap() ? null : map);
+}
+
+function changeGradient() {
+	var gradient = [
+		‘rgba(0, 255, 255, 0)’,
+		‘rgba(0, 255, 255, 1)’,
+		‘rgba(0, 191, 255, 1)’,
+		‘rgba(0, 127, 255, 1)’,
+		‘rgba(0, 63, 255, 1)’,
+		‘rgba(0, 0, 255, 1)’,
+		‘rgba(0, 0, 223, 1)’,
+		‘rgba(0, 0, 191, 1)’,
+		‘rgba(0, 0, 159, 1)’,
+		‘rgba(0, 0, 127, 1)’,
+		‘rgba(0, 63, 91, 1)’,
+		‘rgba(0, 127, 63, 1)’,
+		‘rgba(0, 191, 10, 1)’,
+		‘rgba(0, 255, 0, 1)’
+		]
+	heatmap.set('gradient', heatmap.get('gradient') ? null : gradient);
+}
+
+function changeRadius() {
+  heatmap.set('radius', heatmap.get('radius') ? null : 20);
+}
+
+function changeOpacity() {
+  heatmap.set('opacity', heatmap.get('opacity') ? null : 0.2);
+}
+
+
+// Heatmap data
+function getPoints(latitude, longitude) {
+	var result = [];
+	for (int i = 0 ; i < latitude.length ; i++) {
+		result.push( new google.maps.LatLng(latitude[i], longitude[i]));
+	}
+	
+  return result;
+}
\ No newline at end of file
diff --git a/tomcat/webapps/Trawl/map.jsp b/tomcat/webapps/Trawl/map.jsp
new file mode 100644
index 0000000..ce24f43
--- /dev/null
+++ b/tomcat/webapps/Trawl/map.jsp
@@ -0,0 +1,47 @@
+<%@ page import="java.util.*, data.Record, model.TrawlExpert, search.BST, search.BasicSearchResult,data.BioTree,data.TaxonNode" %>
+<%@page import="org.json.simple.JSONArray"%>
+<%@page import="org.json.simple.JSONObject"%>
+<%@page import="org.json.simple.parser.JSONParser"%>
+
+<%
+		TrawlExpert te = (TrawlExpert)request.getServletContext().getAttribute("trawl");
+		BasicSearchResult result = te.rangeSearch(2, 1960, 2016);
+
+		
+		
+		JSONParser parser = new JSONParser();
+		
+		
+		JSONObject js = new JSONObject();
+		JSONArray longitude = new JSONArray();
+		JSONArray latitude = new JSONArray();
+		JSONArray name = new JSONArray();
+		JSONArray date = new JSONArray();
+		JSONArray count = new JSONArray();
+		
+		
+		
+		for (Record r: result.results()){
+			longitude.add(r.getLongitude());
+			latitude.add(r.getLatitude());
+			name.add(BioTree.getTaxonRecord(r.getTaxonId()).getName());
+			JSONObject dateobj = new JSONObject();
+			dateobj.put("year",r.getDate().getYear());
+			dateobj.put("month",r.getDate().getMonth());
+			dateobj.put("day",r.getDate().getDay());
+			date.add(r.getDate());
+			count.add(r.getCount());
+		}
+	
+		js.put("longitude", longitude);
+		js.put("latitude", latitude);
+		js.put("name", name);
+		js.put("date", date);
+		js.put("individual count", count);
+		js.put("time", result.time());
+		
+	
+		out.print(js.toJSONString());
+%>
+
+	
\ No newline at end of file
-- 
GitLab