BeenHere Overlay

trash

当前为 2015-08-13 提交的版本,查看 最新版本

  1. // ==UserScript==
  2. // @name BeenHere Overlay
  3. // @namespace https://greasyfork.org/en/users/5920-rickzabel
  4. // @description trash
  5. // @include https://www.waze.com/editor/*
  6. // @include https://www.waze.com/*/editor/*
  7. // @include https://editor-beta.waze.com/*
  8. // @version 0.0.1
  9. // @grant none
  10. // ==/UserScript==
  11. //---------------------------------------------------------------------------------------
  12. function bootstrap_MapRaidOverlay() {
  13. var bGreasemonkeyServiceDefined = false;
  14.  
  15. try {
  16. bGreasemonkeyServiceDefined = (typeof Components.interfaces.gmIGreasemonkeyService === "object");
  17. } catch (err) { /* Ignore */ }
  18.  
  19. if (typeof unsafeWindow === "undefined" || !bGreasemonkeyServiceDefined) {
  20. unsafeWindow = (function() {
  21. var dummyElem = document.createElement('p');
  22. dummyElem.setAttribute('onclick', 'return window;');
  23. return dummyElem.onclick();
  24. })();
  25. }
  26.  
  27. /* begin running the code! */
  28. setTimeout(InitMapRaidOverlay, 1000);
  29. //Waze.model.liveUsers.users._events.register("add", null, newLiveUser);
  30.  
  31. }
  32.  
  33. function AddRaidPolygon(raidLayer, groupPoints, groupColor, groupNumber) {
  34.  
  35. var groupNumber = "me";
  36. var point = Waze.map.getExtent();
  37. var groupColor = 'orange';
  38.  
  39. var groupPoints = [{
  40. lon: point.left,
  41. lat: point.top
  42. }, {
  43. lon: point.left,
  44. lat: point.bottom
  45. }, {
  46. lon: point.right,
  47. lat: point.bottom
  48. }, {
  49. lon: point.right,
  50. lat: point.top
  51. }, {
  52. lon: point.left,
  53. lat: point.top
  54. }];
  55.  
  56. //console.info(raidLayer + " " + groupPoints + " " + groupColor + " " + groupNumber);
  57. var mro_Map = unsafeWindow.Waze.map;
  58. var mro_OL = unsafeWindow.OpenLayers;
  59. //var raidGroupLabel = groupNumber;
  60. var raidGroupLabel = "";
  61. // var groupName = groupNumber;
  62. var groupName = "";
  63.  
  64. var style = {
  65. strokeColor: "orange",
  66. strokeOpacity: .9,
  67. strokeWidth: 3,
  68. fillColor: groupColor,
  69. fillOpacity: 0.0,
  70. label: raidGroupLabel,
  71. labelOutlineColor: "black",
  72. labelOutlineWidth: 3,
  73. fontSize: 14,
  74. fontColor: groupColor,
  75. fontOpacity: .85,
  76. fontWeight: "bold"
  77. };
  78. var attributes = {
  79. name: groupName
  80. };
  81. //console.dir(groupPoints);
  82. var pnt = [];
  83. for (i = 0; i < groupPoints.length; i++) {
  84. //convPoint = new OpenLayers.Geometry.Point(groupPoints[i].lon,groupPoints[i].lat).transform(new OpenLayers.Projection("EPSG:4326"), mro_Map.
  85. convPoint = new OpenLayers.Geometry.Point(groupPoints[i].lon, groupPoints[i].lat);
  86. //getProjectionObject());
  87. //console.log('MapRaid: ' + JSON.stringify(groupPoints[i]) + ', ' + groupPoints[i].lon + ', ' + groupPoints[i].lat);
  88. pnt.push(convPoint);
  89. }
  90.  
  91. var ring = new mro_OL.Geometry.LinearRing(pnt);
  92.  
  93. var polygon = new mro_OL.Geometry.Polygon([ring]);
  94. console.dir(polygon);
  95.  
  96. var feature = new mro_OL.Feature.Vector(polygon, attributes, style);
  97. console.dir(feature);
  98.  
  99. raidLayer.addFeatures([feature]);
  100.  
  101. }
  102.  
  103. function CurrentRaidLocation(raid_mapLayer) {
  104. var mro_Map = unsafeWindow.Waze.map;
  105.  
  106. for (i = 0; i < raid_mapLayer.features.length; i++) {
  107. var raidMapCenter = mro_Map.getCenter();
  108. var raidCenterPoint = new OpenLayers.Geometry.Point(raidMapCenter.lon, raidMapCenter.lat);
  109. var raidCenterCheck = raid_mapLayer.features[i].geometry.components[0].containsPoint(raidCenterPoint);
  110. //console.log('MapRaid: ' + raid_mapLayer.features[i].attributes.number + ': ' + raidCenterCheck);
  111. if (raidCenterCheck === true) {
  112. var raidLocationLabel = 'Raid Group ' + raid_mapLayer.features[i].attributes.number + ' - ' + $('.WazeControlLocationInfo').text();
  113. setTimeout(function() {
  114. $('.WazeControlLocationInfo').text(raidLocationLabel);
  115. }, 200);
  116. }
  117. }
  118. }
  119.  
  120.  
  121.  
  122. function InitMapRaidOverlay() {
  123. //alert("wtf");
  124.  
  125. unsafeWindow.mapLayers = new unsafeWindow.OpenLayers.Layer.Vector("Live User View Overlay", {
  126. displayInLayerSwitcher: true,
  127. uniqueName: "__LiveUserViewOverlay"
  128. });
  129.  
  130. unsafeWindow.Waze.map.addLayer(unsafeWindow.mapLayers);
  131. unsafeWindow.mapLayers.setVisibility(true);
  132.  
  133.  
  134. var mro_Map = unsafeWindow.Waze.map;
  135. var mro_OL = unsafeWindow.OpenLayers;
  136.  
  137. if (mro_Map == null) return;
  138. if (mro_OL == null) return;
  139.  
  140. // mapLayers.removeAllFeatures();
  141.  
  142. AddRaidPolygon(mapLayers);
  143.  
  144.  
  145. //console.info('############# userview addded: left ' + point.left + ' top: ' + point.top + ' bottom: ' + point.bottom + ' right: ' + point.right + ' bottom: ' + point.bottom);
  146. // AddRaidPolygon(mapLayers, viewPoints, color, name);
  147. //console.info('############# userview addded ');
  148. //console.info(mapLayers + " " + viewPoints + " " + color + " " + name);
  149. //}
  150.  
  151. // setTimeout(function(){InitMapRaidOverlay()},1000);
  152. mro_Map.events.register("moveend", Waze.map, function() {
  153. AddRaidPolygon(mapLayers);
  154. });
  155. mro_Map.events.register("zoomend", Waze.map, function() {
  156. AddRaidPolygon(mapLayers);
  157. });
  158. //Waze.model.liveUsers.users.models[0]._events.register("change:showLayer", null, function(){//console.info('change:showLayer');});
  159.  
  160. }
  161.  
  162. function newLiveUser() {
  163. //console.info('########### add');
  164. //console.info(this);
  165. for (var i = 0; i < this.models.length; i++) {
  166. var userObj = this.models[i];
  167. userObj._events.register("change:center", null, function() {
  168. console.info('change:center');
  169. });
  170. userObj._events.register("move", null, function() {
  171. console.info('move');
  172. });
  173. userObj._events.register("moved", null, function() {
  174. console.info('move');
  175. });
  176. }
  177. }
  178.  
  179. bootstrap_MapRaidOverlay();