您需要先安装一个扩展,例如 篡改猴、Greasemonkey 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 Userscripts ,之后才能安装此脚本。
您需要先安装一款用户脚本管理器扩展,例如 Tampermonkey,才能安装此脚本。
您需要先安装用户脚本管理器扩展后才能安装此脚本。
Makes inputting speed data easier
当前为
// ==UserScript== // @name WME Speedhelper // @description Makes inputting speed data easier // @namespace [email protected] // @grant none // @grant GM_info // @version 0.2.2 // @match https://editor-beta.waze.com/*editor/* // @match https://www.waze.com/*editor/* // @author Broos Gert '2015 // @license MIT/BSD/X11 // @icon data:image/png;base64,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 // ==/UserScript== /* Changelog */ // Add Google Varela Round font to make sure signs look the same everywhere (less hassle) WebFontConfig = {google:{families:['Varela+Round::latin' ]}}; (function() { var wf = document.createElement('script'); wf.src = ('https:' == document.location.protocol ? 'https' : 'http') + '://ajax.googleapis.com/ajax/libs/webfont/1/webfont.js'; wf.type = 'text/javascript'; wf.async = 'true'; var s = document.getElementsByTagName('script')[0]; s.parentNode.insertBefore(wf, s); })(); /* Borden base64 */ var mssimg = 'data:image/png;base64,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'; var BGa = 'data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACQAAAAkCAYAAADhAJiYAAAABHNCSVQICAgIfAhkiAAAAAlwSFlzAAAOwwAADsMBx2+oZAAAABx0RVh0U29mdHdhcmUAQWRvYmUgRmlyZXdvcmtzIENTNui8sowAAAAWdEVYdENyZWF0aW9uIFRpbWUAMTEvMTUvMTUXz/AGAAACiElEQVRYhe2YT0sbQRjGn5VNbZAai4cmh5IttDcPK3gRQvQehNzUk4HNVfCag5/BL+BhAx7MB/CekAUvgnsNSthQgtkidROpW93Vtwdp2slM/m9xhT4QyLsz7zM/Znf+SkRECJFmXhqgV/I0ya5h4OfZGWuYSODd5ubEntK4r+y6UEBH1+HbNjAgVY7HMZfJYHF/H3IyGTyQnc+jUyyCfH9k8+cWJETTaSSKxZHAhgK5hoHmxgaeHGc8kN6GZBnxo6Ohr3PgR31bKuFrOj01DACQ7+Nqawt2Pj+kYh91jo+pJklUA7ifparU1nV6sCwu78GyqK3rZKmqMLcGUEvT+jVLQqC7alUIU1cUuiuX+5pxPuUy1RVFCPX94GB0oIuFBc6gmc3So+OMDPNbj45DzWyWh5Ik8gQ9zAG1NE0IM61EUJaqcvW4UXYRiTBDO6IoSJomZmKxqT7qp3YbDVWFZ1nM84/VKqKpVDdmRtl1ocDNM3FdnxoGAGZiMcR1nXv+bXeXiZkeqicS8FutbuGsqiJ5fj41zN9qLC/j3jT/AMgyvnheN2Z6yLdtJvn93l6gMCJP8n24hsEDuYbBrU3R9fXAgUSeP05OeKDeVRsAImMsiqNK5OmenvJAYdF/oGHqAr1dWeEKvUYj8AZFntHVVR4omkoBksRUdMvlwIFEnnOZTPd/uCfG+VyOSb43TbiVSmAwbqXCwADAm6UlJg734goA8zs7TOxZFlo9PTeJWrkcBzOrqgwMAPEWNlQbNKIQbmGJXm6TP/Bcdlsq4Wp7e+AJdVzFNA0fDg/7lr+ugyLwPIN/vrlBTNMgyRPcTUgSomtr+HR5OdIlxOu9bBApFNcx/1qh2w/9Ag1uL5DjL1V0AAAAAElFTkSuQmCC'; var signConfig = { NL: {'sgn': BGa, 'dim':'36|36', 'ann':'kmh', 'spd':[ 15, 30, 50, 60, 70, 80, 100, 120, 130 ]}, BE: {'sgn': BGa, 'dim':'36|36', 'ann':'kmh', 'spd':[ 30, 50, 70, 90, 100, 120 ]}, LUX: {'sgn': BGa, 'dim':'36|36', 'ann':'kmh', 'spd':[ 30, 50, 70, 90, 120 ]}, AU: {'sgn': BGa, 'dim':'36|36', 'ann':'kmh', 'spd':[ 30, 40, 50, 60, 70, 80, 100, 110, 120, 130 ]}, FR: {'sgn': BGa, 'dim':'36|36', 'ann':'kmh', 'spd':[ 30, 50, 70, 90, 110, 130 ]}, HU: {'sgn': BGa, 'dim':'36|36', 'ann':'kmh', 'spd':[ 30, 40, 50, 60, 70, 80, 90, 130]}, MX: {'sgn': BGa, 'dim':'36|36', 'ann':'kmh', 'spd':[ 10, 60, 70, 80, 90, 100, 110]}, UK: {'sgn': BGa, 'dim':'36|36', 'ann':'mph', 'spd':[ 30, 40, 50, 60]}, SZ: {'sgn': BGa, 'dim':'36|36', 'ann':'kph', 'spd':[ 30, 40, 50, 60, 80, 100, 120]}, GM: {'sgn': BGa, 'dim':'36|36', 'ann':'kph', 'spd':[ 7, 30, 50, 60, 70, 80, 100, 120, 130]}, LG: {'sgn': BGa, 'dim':'36|36', 'ann':'kmh', 'spd':[ 20, 30, 50, 70, 90, 100 ]}, LT: {'sgn': BGa, 'dim':'36|36', 'ann':'kmh', 'spd':[ 30, 40, 50, 60, 70, 80, 90, 110, 120, 130 ]}, RU: {'sgn': BGa, 'dim':'36|36', 'ann':'kmh', 'spd':[ 30, 40, 50, 60, 70, 80, 90, 110, 120, 130 ]} }; // initialize WMESpeedhelper and do some checks function WMESpeedhelper_bootstrap() { WMESpeedhelper_init(); } function WMESpeedhelper_init() { //create the WMESpeedhelper object var WMESpeedhelper = {}; var editpanel = $("#edit-panel"); // Check initialisation if (typeof Waze == 'undefined' || typeof I18n == 'undefined') { setTimeout(WMESpeedhelper_init, 660); log('Waze object unavailable, map still loading'); return; } if (editpanel === undefined) { setTimeout(WMESpeedhelper_init, 660); log('edit-panel info unavailable, map still loading'); return; } // check for changes in the edit-panel var speedlimitsObserver = new MutationObserver(function(mutations) { mutations.forEach(function(mutation) { // Mutation is a NodeList and doesn't support forEach like an array for (var i = 0; i < mutation.addedNodes.length; i++) { var addedNode = mutation.addedNodes[i]; // Only fire up if it's a node if (addedNode.nodeType === Node.ELEMENT_NODE) { var speedlimitDiv = addedNode.querySelector('div.controls.speed-limit'); if (speedlimitDiv) { WMESpeedhelper.makeSigns(speedlimitDiv); } } } }); }); speedlimitsObserver.observe(document.getElementById('edit-panel'), { childList: true, subtree: true }); // Show friendly message to users of unsupported countries (for now) WMESpeedhelper.showMessage = function() { // Check if this message isn't allready on screen (bugcheck, can't reproduce myself) if (!$("#_cnt").length) { var mD = document.createElement("div"); mD.id = '_cnt'; mD.style.cssText = 'margin:5px 0 10px 0;border:1px solid red;padding:5px;border-radius:5px'; var mI = document.createElement("img"); mI.id = '_img'; mI.style.cssText = 'float:left;margin-right:5px;'; mI.src = mssimg; var mT = document.createElement("div"); mT.id = '_text'; mT.innerHTML = '<b><a href="https://gf.qytechs.cn/en/scripts/13774-wme-speedhelper" target="_blank">WME Speedhelper 0.2.0</a></b><br>Your country is currently not supported yet. If you want me to add it, follow <a href="https://gf.qytechs.cn/en/scripts/13774-wme-speedhelper" target="_blank">this link</a> and look for the "missing country?" section in the description.'; var cleardiv = document.createElement("div"); cleardiv.id = 'cleardiv'; cleardiv.style.cssText ='clear:both;margin-bottom:5px;'; mD.appendChild(mI); mD.appendChild(mT); mD.appendChild(cleardiv); $("div.controls.speed-limit").prepend(mD); } }; // The big one... WMESpeedhelper.makeSigns = function(reciever) { //log("COUNTRY CODE: " + Waze.model.countries.top.abbr); var ABBR = signConfig[Waze.model.countries.top.abbr]; // Country code not found? Show user friendly message with info to get his/her country added if (typeof ABBR == 'undefined') { WMESpeedhelper.showMessage(); return; } // check if we're not adding to existing signs if (!$("#signsholder").length) { var signsholder = document.createElement("div"); signsholder.id = 'signsholder'; //Get the correct list of speedsigns to make ABBR.spd.forEach(function(speed) { // The sign background var addsign = document.createElement("div"); addsign.id = 'signsholder'; // Get width/height of sign background img var dims = ABBR.dim.split('|'); addsign.style.cssText = 'cursor:pointer;float:left;width:'+dims[0]+'px;height:'+dims[1]+'x;background-image: url(\''+ ABBR.sgn + '\');'; addsign.onclick = function() { $("input[name=fwdMaxSpeed]").val(speed).change(); $("input[name=revMaxSpeed]").val(speed).change(); }; // The speed value var speedvalue = document.createElement("div"); speedvalue.id = 'spd_'+ speed; speedvalue.style.cssText = 'text-align:center;line-height:'+dims[1]+'px;font-size:11px;font-family:\'Varela Round\',sans-serif;color:#000; font-weight:bold;'; speedvalue.innerHTML = speed; addsign.appendChild(speedvalue); signsholder.appendChild(addsign); }); // CSS Clear after the floats var cleardiv = document.createElement("div"); cleardiv.id = 'cleardiv'; cleardiv.style.cssText ='clear:both;margin-bottom:5px;'; // Add everything to the stage signsholder.appendChild(cleardiv); $("div.controls.speed-limit").prepend(signsholder); log('ready'); } }; function log(message) { if (typeof message === 'string') { console.log('WMESpeedhelper: ' + message); } else { console.log('WMESpeedhelper: ', message); } } } setTimeout(WMESpeedhelper_bootstrap, 3000);
QingJ © 2025
镜像随时可能失效,请加Q群300939539或关注我们的公众号极客氢云获取最新地址