mMR West Bank overlay

Adds a region overlay for the 2018 West Bank (Israel) mMR

  1. // ==UserScript==
  2. // @name mMR West Bank overlay
  3. // @namespace https://gf.qytechs.cn/users/45389
  4. // @version 2018.03.04.001
  5. // @description Adds a region overlay for the 2018 West Bank (Israel) mMR
  6. // @author MapOMatic
  7. // @include /^https:\/\/(www|beta)\.waze\.com\/(?!user\/)(.{2,6}\/)?editor\/?.*$/
  8. // @require https://gf.qytechs.cn/scripts/24851-wazewrap/code/WazeWrap.js
  9. // @license None! You may reuse this code for whatever you want.
  10. // ==/UserScript==
  11.  
  12. (function() {
  13. 'use strict';
  14.  
  15. var _fillOpacity = 0.2;
  16. var _color = "Magenta";
  17. var _raid_mapLayer;
  18.  
  19. function bootstrap() {
  20. if (W && W.loginManager && W.loginManager.isLoggedIn()) {
  21. InitMapRaidOverlay();
  22. } else {
  23. setTimeout(bootstrap, 500);
  24. }
  25. }
  26.  
  27. bootstrap();
  28.  
  29. function AddRaidPolygon(raidLayer,groupPoints,state1, state2){
  30. var mro_Map = Waze.map;
  31. var mro_OL = OpenLayers;
  32.  
  33. var style = {
  34. strokeColor: _color,
  35. strokeOpacity: 0.30,
  36. strokeWidth: 3,
  37. fillColor: _color,
  38. fillOpacity: _fillOpacity,
  39. label: state1,
  40. labelOutlineColor: "Black",
  41. labelOutlineWidth: 3,
  42. fontSize: 14,
  43. fontColor: _color,
  44. fontOpacity: 0.85,
  45. fontWeight: "bold"
  46. };
  47.  
  48. var attributes = {
  49. state1: state1,
  50. state2: state2
  51. };
  52.  
  53. var pnt= [];
  54. for(let i=0;i<groupPoints.length;i++){
  55. let convPoint = new OpenLayers.Geometry.Point(groupPoints[i].lon,groupPoints[i].lat).transform(new OpenLayers.Projection("EPSG:4326"), mro_Map.getProjectionObject());
  56. pnt.push(convPoint);
  57. }
  58.  
  59. var ring = new mro_OL.Geometry.LinearRing(pnt);
  60. var polygon = new mro_OL.Geometry.Polygon([ring]);
  61.  
  62. var feature = new mro_OL.Feature.Vector(polygon,attributes,style);
  63. raidLayer.addFeatures([feature]);
  64. }
  65.  
  66. function CurrentRaidLocation(raid_mapLayer){
  67. var mro_Map = Waze.map;
  68.  
  69. var state1Array = [];
  70. var region = '';
  71. for(let i=0;i<raid_mapLayer.features.length;i++){
  72. var raidMapCenter = mro_Map.getCenter();
  73. var raidCenterPoint = new OpenLayers.Geometry.Point(raidMapCenter.lon,raidMapCenter.lat);
  74. var raidCenterCheck = raid_mapLayer.features[i].geometry.components[0].containsPoint(raidCenterPoint);
  75.  
  76. if(raidCenterCheck === true){
  77. state1Array.push(raid_mapLayer.features[i].attributes.state1);
  78. if (!region.length) region = raid_mapLayer.features[i].attributes.state2;
  79. }
  80. }
  81. var label = state1Array.length ? state1Array.join(', ') + ', ' + region : '';
  82. }
  83.  
  84. var _layerVisibleSetting = 'israel-mapraid-2018-visible';
  85. function loadLayerVisible() {
  86. var vis = localStorage.getItem(_layerVisibleSetting);
  87. return vis === null || vis === 'true';
  88. }
  89. function saveLayerVisible(value) {
  90. localStorage.setItem(_layerVisibleSetting, value);
  91. }
  92. function onLayerCheckboxChanged(value) {
  93. saveLayerVisible(value);
  94. _raid_mapLayer.setVisibility(value);
  95. }
  96.  
  97. function InitMapRaidOverlay(){
  98. var mro_Map = Waze.map;
  99. var mro_OL = OpenLayers;
  100. var visible = loadLayerVisible();
  101.  
  102. _raid_mapLayer = new mro_OL.Layer.Vector('Israel 2018 MapRaid', {
  103. displayInLayerSwitcher: true,
  104. uniqueName: "_israelMapRaid2018"
  105. });
  106.  
  107. mro_Map.addLayer(_raid_mapLayer);
  108. _raid_mapLayer.setZIndex(100);
  109. _raid_mapLayer.setVisibility(visible);
  110. W.map.events.register("moveend",null,() => CurrentRaidLocation(_raid_mapLayer));
  111.  
  112. a1.forEach(state => {
  113. AddRaidPolygon(_raid_mapLayer, state.coords, '', '');
  114. });
  115.  
  116. CurrentRaidLocation(_raid_mapLayer);
  117.  
  118. WazeWrap.Interface.AddLayerCheckbox('Display', 'mMR West Bank', visible, onLayerCheckboxChanged);
  119. }
  120.  
  121. var a1 = [{"coords":[{"lon": "35.52011","lat": "32.4210"},
  122. {"lon": "35.22413","lat": "32.55095"},
  123. {"lon": "34.93360","lat": "31.34581"},
  124. {"lon": "35.38794","lat": "31.34587"},
  125. {"lon": "35.52011","lat": "32.42103"}
  126. ]
  127. }];
  128. })();

QingJ © 2025

镜像随时可能失效,请加Q群300939539或关注我们的公众号极客氢云获取最新地址