您需要先安装一个扩展,例如 篡改猴、Greasemonkey 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 Userscripts ,之后才能安装此脚本。
您需要先安装一款用户脚本管理器扩展,例如 Tampermonkey,才能安装此脚本。
您需要先安装用户脚本管理器扩展后才能安装此脚本。
Verhoog of verlaag de snelheid van de geselecteerde segmenten. Gebruik 1 voor verhogen en 2 voor verlagen.
当前为
// ==UserScript== // @name WME Change Speed // @version 0.8 // @namespace https://greasyfork.org/users/1499279 // @author DeKoerier // @description Verhoog of verlaag de snelheid van de geselecteerde segmenten. Gebruik 1 voor verhogen en 2 voor verlagen. // @match https://www.waze.com/editor* // @match https://www.waze.com/*/editor* // @match https://beta.waze.com/editor* // @match https://beta.waze.com/*/editor* // @exclude https://www.waze.com/user/editor* // @license GNU GPLv3 // @connect greasyfork.org // @grant none // ==/UserScript== (function () { 'use strict'; const waitSDK = setInterval(() => { if (window.SDK_INITIALIZED && typeof window.getWmeSdk === 'function') { clearInterval(waitSDK); window.SDK_INITIALIZED.then(initScript); } }, 200); function initScript() { const sdk = window.getWmeSdk({ scriptId: "wme_change_speed_sdk", scriptName: "Change Speed (SDK-style)" }); sdk.Events.once({ eventName: "wme-ready" }).then(() => { console.log("✅ SDK en WME klaar"); registerShortcuts(sdk); registerTab(sdk); registerSelectionLogger(sdk); console.log("✅ Script geladen en actief"); }); } function registerShortcuts(sdk) { sdk.Shortcuts.createShortcut({ shortcutId: "speed_up", description: "Snelheid verhogen met 10", shortcutKeys: "1", callback: () => adjustSpeed(sdk, +10) }); sdk.Shortcuts.createShortcut({ shortcutId: "speed_down", description: "Snelheid verlagen met 10", shortcutKeys: "2", callback: () => adjustSpeed(sdk, -10) }); console.log("✅ Shortcuts actief: 1 = omhoog, 2 = omlaag"); } function adjustSpeed(sdk, delta) { const selection = sdk.Editing.getSelection(); if (!selection || selection.objectType !== 'segment') { console.warn("⚠️ Geen segmenten geselecteerd"); return; } selection.ids.forEach(id => { const seg = sdk.DataModel.Segments.getById({ segmentId: id }); if (!seg) return; const newFwd = Math.max(0, (seg.fwdSpeedLimit || 0) + delta); const newRev = Math.max(0, (seg.revSpeedLimit || 0) + delta); sdk.DataModel.Segments.updateSegment({ segmentId: seg.id, fwdSpeedLimit: newFwd, revSpeedLimit: newRev }); console.log(`↕️ Segment ${seg.id}: A>B ${seg.fwdSpeedLimit} → ${newFwd}, B>A ${seg.revSpeedLimit} → ${newRev}`); }); } function registerSelectionLogger(sdk) { sdk.Events.on({ eventName: "wme-selection-changed", eventHandler: () => { const sel = sdk.Editing.getSelection(); if (sel?.objectType === 'segment') { console.log("🔍 Segmenten geselecteerd:", sel.ids); } else { console.log("⚠️ Geen segmentselectie actief"); } } }); } function registerTab(sdk) { sdk.Sidebar.registerScriptTab().then(({ tabLabel, tabPane }) => { tabLabel.innerText = "SpeedHelper"; tabLabel.title = "Snelheden bekijken"; tabPane.id = "speedhelper-tab"; tabPane.innerHTML = ` <div style="padding: 10px;"> <h2>Snelheden</h2> <p>Druk op 1 of 2 om snelheden aan te passen, of bekijk huidige waardes hier:</p> <button id="btnSegmentInfo" style="padding:5px 10px;">Bekijk snelheden</button> <pre id="segmentInfo" style="margin-top:10px; background:#f8f8f8; padding:8px;"></pre> </div> `; // Automatisch tonen wanneer tab zichtbaar wordt new IntersectionObserver((entries) => { entries.forEach(entry => { if (entry.isIntersecting) updateSegmentInfo(sdk); }); }).observe(tabPane.parentElement); document.getElementById("btnSegmentInfo").onclick = () => updateSegmentInfo(sdk); }); } function updateSegmentInfo(sdk) { const out = document.getElementById("segmentInfo"); const selection = sdk.Editing.getSelection(); if (!selection || selection.objectType !== 'segment') { out.innerText = "⚠️ Selecteer segmenten om informatie te tonen."; return; } const lines = selection.ids.map(id => { const seg = sdk.DataModel.Segments.getById({ segmentId: id }); if (!seg) return `Segment ${id} → ⚠️ Niet gevonden`; const fwd = seg.fwdSpeedLimit != null ? `${seg.fwdSpeedLimit} km/u` : '–'; const rev = seg.revSpeedLimit != null ? `${seg.revSpeedLimit} km/u` : '–'; return `Geselecteerd segment ${id}\n A>B: ${fwd}\n B>A: ${rev}`; }); out.innerText = lines.join('\n\n'); } })();