/** * Created by Jon on 22/08/2016. */ var isMobile = false; var map; var polyCollection = []; var centerLatLng; //auck var zoomLevel; var mapOptions; var DEFAULT_GROUP = "auckland"; var terrainColors = { '1':'darkblue', '1.5': 'blue', '2' : 'darkgreen', '2.5' : 'chartreuse', '3' : 'yellow', '3.5' : 'orange', '4' : 'red' }; //Create our number formatter. var intFormatter = new Intl.NumberFormat('en-US', { maximumFractionDigits: 0 }); var one_dpFormatter = new Intl.NumberFormat('en-US', { maximumFractionDigits: 1 }); var two_dpFormatter = new Intl.NumberFormat('en-US', { maximumFractionDigits: 2, minimumFractionDigits: 2 }); var terrainCatRequest, elevationRequest; function commonInit(window, myCallback){ centerLatLng = new google.maps.LatLng(-36.843,174.768); //auck zoomLevel = 14; mapOptions = { disableDefaultUI: true, zoom: zoomLevel, center: centerLatLng, mapTypeId: google.maps.MapTypeId.TERRAIN, mapTypeControlOptions: { mapTypeIds: [google.maps.MapTypeId.ROADMAP, google.maps.MapTypeId.TERRAIN, google.maps.MapTypeId.SATELLITE ] } }; loadAPI(window, myCallback); } /** * Laods the terrain cat api, then the elevation api * @param window * @param myCallback */ function loadAPI(window, myCallback){ //initialize geofencing api var protocol = (window.location.hostname == "localhost" || window.location.hostname == "127.0.0.1") ? "http:" : "https:"; var ROOT = protocol+'//'+window.location.host+'/_ah/api'; gapi.client.load('terraincatregions', 'v1', function(){ terrainCatRequest = function(lat, lng, group, h) { return gapi.client.terraincatregions.getfetchs({ group: group, lat: lat, lng: lng, h: h }) }; gapi.client.load('elevations', 'v1', function(){ elevationRequest = function(lat,lng, h){ return gapi.client.elevations.getfetchs({ lat:lat, lng:lng, h: h }); } myCallback(); }, ROOT); }, ROOT); } /** * https://developers.google.com/maps/documentation/javascript/basics * @returns */ function detectBrowser() { var useragent = navigator.userAgent; var mapdiv = document.getElementById("map_canvas"); console.log(useragent); if (useragent.indexOf('iPhone') != -1 || useragent.indexOf('Android') != -1 ) { //TODO isMobile = true; } else { //TODO } } function delimitMathJax(latex, inline){ var l; if (inline){ l = "\\(" + latex + "\\)"; }else{ l = "\\[" + latex + "\\]"; } return l; } //get groups regions function getPolys(group){ polyCollection.forEach(function(feature){ map.data.remove(feature); }); map.data.setStyle(function(feature) { var cat = feature.getProperty('cat'); var color = terrainColors[cat]; return { fillColor: color, strokeColor: color, strokeWeight: 1, clickable: false }; }); gapi.client.terraincatregions.list({"group":group}).execute(function(resp) { resp.items.forEach(function(region){ var gj = new GEOJSON.Polygon({ id:region.id, name:region.name, cat:region.cat, description:region.description} ,region.vertices ); var feature = map.data.addGeoJson(gj); polyCollection[region.id] = feature[0]; }); }); } function pixAdd(toAdd, value){ return (parseInt(value.replace(/px/,""))+toAdd)+"px"; } var Togglr = function(startDiv,otherDiv,controller,startText,otherText){ controller.innerHTML = startText; startDiv.style.display = 'block'; otherDiv.style.display = 'none'; controller.addEventListener('click', function(e) { if ( startDiv.style.display === 'block'){ startDiv.style.display = 'none'; otherDiv.style.display = 'block'; controller.innerHTML = otherText; } else { startDiv.style.display = 'block'; otherDiv.style.display = 'none'; controller.innerHTML = startText; } }, false); };