您需要先安装一个扩展,例如 篡改猴、Greasemonkey 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 Userscripts ,之后才能安装此脚本。
您需要先安装一款用户脚本管理器扩展,例如 Tampermonkey,才能安装此脚本。
您需要先安装用户脚本管理器扩展后才能安装此脚本。
Shows road closures from Waze Live map in WME
当前为
// ==UserScript== // @name WME Road Closures // @description Shows road closures from Waze Live map in WME // @include https://www.waze.com/editor/* // @include https://www.waze.com/*/editor/* // @include https://editor-beta.waze.com/* // @version 0.1 // @grant none // @copyright 2014, pvo11 // @namespace https://gf.qytechs.cn/scripts/3462-wme-road-closures // ==/UserScript== roadClosures_version = '0.1'; var epsg900913 = new OpenLayers.Projection("EPSG:900913"); var epsg4326 = new OpenLayers.Projection("EPSG:4326"); var closuresLayer; function drawLine(line) { var lineFeatures = []; for(var i = 0; i < line.length-1; i++) { var lp1 = line[i]; var lp2 = line[i + 1]; var dif_lon = Math.abs(lp1.x - lp2.x); var dif_lat = Math.abs(lp1.y - lp2.y); if (dif_lon < 0.0000001 && dif_lat < 0.0000001) continue; var p1 = new OpenLayers.Geometry.Point(lp1.x, lp1.y).transform(epsg4326, epsg900913); var p2 = new OpenLayers.Geometry.Point(lp2.x, lp2.y).transform(epsg4326, epsg900913); var points = []; points.push(p1); points.push(p2); var line_part = new OpenLayers.Geometry.LineString(points); var lineFeature = new OpenLayers.Feature.Vector(line_part, { strokeColor: '#FF0000', labelText: '', strokeWidth: 12 } ); lineFeatures.push(lineFeature); } closuresLayer.addFeatures(lineFeatures); } function requestClosures() { if (closuresLayer.getVisibility() === true) { var extent = Waze.map.getExtent(); var pLB = new OpenLayers.Geometry.Point(extent.left, extent.bottom).transform(epsg900913, epsg4326); var pRT = new OpenLayers.Geometry.Point(extent.right, extent.top).transform(epsg900913, epsg4326); var url = 'https://www.waze.com/row-rtserver/web/GeoRSS?os=60&atof=false&format=JSON&ma=200&mj=100&mu=100&jmu=0&types=alerts%2Cusers%2Ctraffic&left=' + pLB.x + '&right=' + pRT.x + '&bottom=' + pLB.y + '&top=' + pRT.y; $.ajax({ dataType: "json", url: url, success: function(json) { if (json.error != undefined) { } else { if ("undefined" !== typeof(json.jams)) { var numjams = json.jams.length; for (var i = 0; i < numjams; i++) { var jam = json.jams[i]; if (jam.blockType === "ROAD_CLOSED_EVENT") { drawLine(jam.line); } } } } } }); } } function roadClosures_init() { var style = new OpenLayers.Style({ strokeDashstyle: 'solid', strokeColor : "${strokeColor}", strokeOpacity: 1.0, strokeWidth: "${strokeWidth}", fillColor: '#0040FF', fillOpacity: 1.0, pointRadius: "${pointRadius}", label : "${labelText}", fontFamily: "Tahoma, Courier New", labelOutlineColor: '#FFFFFF', labelOutlineWidth: 0, fontColor: "${fontColor}", fontOpacity: 1.0, fontSize: "10px", display: 'block' }); closuresLayer = new unsafeWindow.OpenLayers.Layer.Vector("Road Closures", { displayInLayerSwitcher: true, uniqueName: "__DrawRouteClosures", styleMap: new OL.StyleMap(style) }); I18n.translations.en.layers.name["__DrawRouteClosures"] = "Road Closures"; unsafeWindow.Waze.map.addLayer(closuresLayer); closuresLayer.setVisibility(true); Waze.map.events.register("zoomend", null, requestClosures); Waze.map.events.register("moveend", null, requestClosures); Waze.map.events.register("changelayer", null, requestClosures); requestClosures(); } function roadClosures_bootstrap() { var bGreasemonkeyServiceDefined = false; try { bGreasemonkeyServiceDefined = ("object" === typeof Components.interfaces.gmIGreasemonkeyService); } catch (err) { /* Ignore */ } if ( "undefined" === typeof unsafeWindow || ! bGreasemonkeyServiceDefined) { unsafeWindow = ( function () { var dummyElem = document.createElement('p'); dummyElem.setAttribute ('onclick', 'return window;'); return dummyElem.onclick (); } ) (); } setTimeout(roadClosures_init, 3000); } roadClosures_bootstrap();
QingJ © 2025
镜像随时可能失效,请加Q群300939539或关注我们的公众号极客氢云获取最新地址