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