University Student Chapters | AIChE

University Student Chapters

html, body, #googft-mapCanvas { height: 300px; margin: 0; padding: 0; width: 500px; } if (window.location.protocol == "file:") { alert('This script only works when loaded from a web server,' + ' not from a file on your computer.'); } function ftOnLoadClientApi() { } var map; function loadApi() { gapi.client.load('fusiontables', 'v1', initialize); } function initialize() { var isMobile = (navigator.userAgent.toLowerCase().indexOf('android') > -1) || (navigator.userAgent.match(/(iPod|iPhone|iPad|BlackBerry|Windows Phone|iemobile)/)); if (isMobile) { var viewport = document.querySelector("meta[name=viewport]"); viewport.setAttribute('content', 'initial-scale=1.0, user-scalable=no'); } var mapDiv = document.getElementById('googft-mapCanvas'); mapDiv.style.width = isMobile ? '100%' : '500px'; mapDiv.style.height = isMobile ? '100%' : '300px'; map = new google.maps.Map(mapDiv, { center: new google.maps.LatLng(38.153966092802484, -120.98022605664062), zoom: 8, mapTypeId: google.maps.MapTypeId.ROADMAP }); var query = 'select col10 from 1h9LNLuTxy9vPDumMu3UJf2C7XTAR7KqKkCvhWaM9 limit 1000'; var request = gapi.client.fusiontables.query.sqlGet({ sql: query }); request.execute(function(response) { onDataFetched(response); }); } function onDataFetched(response) { if (response.error) { alert('Unable to fetch data. ' + response.error.message + ' (' + response.error.code + ')'); } else { drawHeatmap(extractLocations(response.rows)); } } function extractLocations(rows) { // Patterns for latitude/longitude in a single field, separated by a space // or comma, with optional north/south/east/west orientation var numberPattern = '([+-]?\\d+(?:\\.\\d*)?)'; var latPattern = numberPattern + '\\s*([NS])?'; var lngPattern = numberPattern + '\\s*([EW])?'; var latLngPattern = latPattern + '(?:\\s+|\\s*,\\s*)' + lngPattern; var northRegexp = /N/i; var eastRegexp = /E/i; var parseRegexp = new RegExp(latLngPattern, 'i'); var locations = []; for (var i = 0; i < rows.length; ++i) { var row = rows[i]; if (row[0]) { var parts = row[0].match(parseRegexp); if (parts) { var latString = parts[1]; var latOrientation = parts[2]; var lngString = parts[3]; var lngOrientation = parts[4]; var lat = parseFloat(latString); var lng = parseFloat(lngString); if (latOrientation) { var latAdjust = northRegexp.test(latOrientation) ? 1 : -1; lat = latAdjust * Math.abs(lat); } if (lngOrientation) { var lngAdjust = eastRegexp.test(lngOrientation) ? 1 : -1; lng = lngAdjust * Math.abs(lng); } var latLng = new google.maps.LatLng(lat, lng); locations.push(latLng); } } } return locations; } function drawHeatmap(locations) { var heatmap = new google.maps.visualization.HeatmapLayer({ dissipating: true, gradient: [ 'rgba(102,255,0,0)', 'rgba(147,255,0,1)', 'rgba(193,255,0,1)', 'rgba(238,255,0,1)', 'rgba(244,227,0,1)', 'rgba(244,227,0,1)', 'rgba(249,198,0,1)', 'rgba(255,170,0,1)', 'rgba(255,113,0,1)', 'rgba(255,57,0,1)', 'rgba(255,0,0,1)' ], opacity: 0.72, radius: 41, data: locations }); heatmap.setMap(map); } google.maps.event.addDomListener(window, 'load', loadApi);