Categorization Map

enter something useful

目前为 2015-08-18 提交的版本。查看 最新版本

  1. // ==UserScript==
  2. // @name Categorization Map
  3. // @version 0.10
  4. // @description enter something useful
  5. // @match https://s3.amazonaws.com/mturk_bulk/hits*
  6. // @require http://code.jquery.com/jquery-latest.min.js
  7. // @copyright 2014+, Tjololo
  8. // @namespace https://greasyfork.org/users/710
  9. // ==/UserScript==
  10.  
  11. var api = "AIzaSyCZlzXfRd-QhtiVg-FSDue_N4RXNrvSF5E";
  12.  
  13. API_js_callback = "https://maps.google.com/maps/api/js?sensor=false&callback=initialize";
  14. if (api != "")
  15. API_js_callback += "&key="+api;
  16.  
  17. var script = document.createElement('script');
  18. script.src = API_js_callback;
  19. var head = document.getElementsByTagName("head")[0];
  20. (head || document.body).appendChild(script);
  21.  
  22. var elem = $("p.ng-scope:last").text();
  23. var addy = elem.split(':')[1];
  24. console.log(addy);
  25. var api = "AIzaSyCZlzXfRd-QhtiVg-FSDue_N4RXNrvSF5E";
  26. var zoomlevel = 20;
  27. var googlePrefix = "https://maps.googleapis.com/maps/api/staticmap?markers=size:mid%7Ccolor:red%7C";
  28. var url = googlePrefix + encodeURIComponent(addy.replace(",","")) + "&size=512x512&zoom="+zoomlevel+"&maptype=hybrid&sensor=false";
  29. if (api != "")
  30. url += "&key="+api;
  31. console.log(url);
  32. var ifrm = document.createElement("img");
  33. ifrm.setAttribute("src", url);
  34. ifrm.setAttribute("id", "map");
  35. ifrm.style.width = 512+"px";
  36. ifrm.style.height = 512+"px";
  37.  
  38. var zoomlvl = document.createElement("div");
  39. zoomlvl.setAttribute("id","zoom_level");
  40. zoomlvl.innerHTML="Zoom: "+zoomlevel;
  41.  
  42. //$("div.span7.ng-scope").append(ifrm);
  43. //$("div.span7.ng-scope").append(zoomlvl);
  44. var DIVmapa = document.createElement('div');
  45. DIVmapa.id = 'DIVmapa';
  46. DIVmapa.style.border = '2px coral solid';
  47. DIVmapa.style.cursor = 'pointer';
  48. DIVmapa.style.display = '';
  49. DIVmapa.style.height = '75%';
  50. DIVmapa.style.margin = '1';
  51. DIVmapa.style.position = 'fixed';
  52. DIVmapa.style.padding = '1';
  53. DIVmapa.style.left = '1%';
  54. DIVmapa.style.bottom = '1%';
  55. DIVmapa.style.width = '30%';
  56. DIVmapa.style.zIndex = '99';
  57.  
  58. var DIVinterna = document.createElement('div');
  59. DIVinterna.id = 'DIVinterna';
  60. DIVinterna.style.height = '100%';
  61. DIVinterna.style.width = '100%';
  62. DIVinterna.style.zIndex = '999';
  63.  
  64. $("div.row").append(DIVmapa);
  65. DIVmapa.appendChild(DIVinterna);
  66.  
  67. $("[id='Completely Shaded']").text("A - Completely Shaded");
  68. $("[id='Mostly Shaded']").text("B - Mostly Shaded");
  69. $("[id='Mostly Not Shaded']").text("C - Mostly not Shaded");
  70. $("[id='Completely NOT Shaded']").text("D - Completely NOT Shaded");
  71. $("[id='House Not Visible']").text("E - House Not Visible");
  72. $("#guidelines").hide();
  73.  
  74. var content = document.getElementById("wrapper");
  75. content.tabIndex = "0";
  76. content.focus();
  77.  
  78. var element = document.getElementById('preview_overlay');
  79. if (element)
  80. element.parentNode.removeChild(element);
  81.  
  82. initialize = setTimeout(function () {
  83. google = unsafeWindow.google;
  84. directionsService = new google.maps.DirectionsService();
  85. directionsDisplay = new google.maps.DirectionsRenderer();
  86.  
  87. var PortoAlegre = new google.maps.LatLng(-30.034176,-51.229212);
  88. var myOptions = {
  89. zoom: zoomlevel,
  90. mapTypeId: google.maps.MapTypeId.SATELLITE
  91. }
  92.  
  93. var map = new google.maps.Map(document.getElementById("DIVinterna"), myOptions);
  94. var geocoder = new google.maps.Geocoder();
  95.  
  96. geocodeAddress(geocoder, map);
  97. function geocodeAddress(geocoder, resultsMap) {
  98. var address = addy;
  99. geocoder.geocode({'address': address}, function(results, status) {
  100. if (status === google.maps.GeocoderStatus.OK) {
  101. resultsMap.setCenter(results[0].geometry.location);
  102. var marker = new google.maps.Marker({
  103. map: resultsMap,
  104. position: results[0].geometry.location
  105. });
  106. } else {
  107. alert('Geocode was not successful for the following reason: ' + status);
  108. }
  109. });
  110. }
  111. }, 500);
  112.  
  113.  
  114.  
  115.  
  116.  
  117.  
  118. document.onkeydown = showkeycode;
  119. function showkeycode(evt){
  120. var keycode = evt.keyCode;
  121. switch (keycode) {
  122. case 65: //a
  123. $("[id='Completely Shaded']").click();
  124. document.getElementById("mturk_form").submit();
  125. break;
  126. case 66: //b
  127. $("[id='Mostly Shaded']").click();
  128. document.getElementById("mturk_form").submit();
  129. break;
  130. case 67: //c
  131. $("[id='Mostly Not Shaded']").click();
  132. document.getElementById("mturk_form").submit();
  133. break;
  134. case 68: //d
  135. $("[id='Completely NOT Shaded']").click();
  136. document.getElementById("mturk_form").submit();
  137. break;
  138. case 69: //e
  139. $("[id='House Not Visible']").click();
  140. document.getElementById("mturk_form").submit();
  141. break;
  142. case 13: //enter
  143. document.getElementById("mturk_form").submit();
  144. break;
  145. case 107: //+
  146. zoomlevel += 1;
  147. url = googlePrefix + encodeURIComponent(addy.replace(",","")) + "&size=512x512&zoom="+zoomlevel+"&maptype=hybrid&sensor=false";
  148. console.log(url);
  149. document.getElementById("map").setAttribute("src", url);
  150. document.getElementById("zoom_level").innerHTML="Zoom: "+zoomlevel;
  151. break;
  152. case 187: //+
  153. zoomlevel += 1;
  154. url = googlePrefix + encodeURIComponent(addy.replace(",","")) + "&size=512x512&zoom="+zoomlevel+"&maptype=hybrid&sensor=false";
  155. console.log(url);
  156. document.getElementById("map").setAttribute("src", url);
  157. document.getElementById("zoom_level").innerHTML="Zoom: "+zoomlevel;
  158. break;
  159. case 109: //+
  160. zoomlevel -= 1;
  161. url = googlePrefix + encodeURIComponent(addy.replace(",","")) + "&size=512x512&zoom="+zoomlevel+"&maptype=hybrid&sensor=false";
  162. console.log(url);
  163. document.getElementById("map").setAttribute("src", url);
  164. document.getElementById("zoom_level").innerHTML="Zoom: "+zoomlevel;
  165. break;
  166. case 189: //+
  167. zoomlevel -= 1;
  168. url = googlePrefix + encodeURIComponent(addy.replace(",","")) + "&size=512x512&zoom="+zoomlevel+"&maptype=hybrid&sensor=false";
  169. console.log(url);
  170. document.getElementById("map").setAttribute("src", url);
  171. document.getElementById("zoom_level").innerHTML="Zoom: "+zoomlevel;
  172. break;
  173. }
  174. }