您需要先安装一个扩展,例如 篡改猴、Greasemonkey 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 Userscripts ,之后才能安装此脚本。
您需要先安装一款用户脚本管理器扩展,例如 Tampermonkey,才能安装此脚本。
您需要先安装用户脚本管理器扩展后才能安装此脚本。
Change the color of Map Comment Points based on HEX Color Code.
当前为
// ==UserScript== // @name WME Colored Map Comments // @namespace Dude495 // @version 2020.05.31.01 // @author Dude495 // @description Change the color of Map Comment Points based on HEX Color Code. // @include /^https:\/\/(www|beta)\.waze\.com\/(?!user\/)(.{2,6}\/)?editor\/?.*$/ // @require https://greasyfork.org/scripts/24851-wazewrap/code/WazeWrap.js // @license GNU GPLv3 // @grant none /* global W */ /* global $ */ /* global WazeWrap */ // ==/UserScript== (function() { 'use strict'; function ChangeColor(MCPopacity, MCAopacity) { let mcStyle; let hoverStyle; let selectedStyle; let defaultRules = W.map.getLayerByUniqueName('mapComments').styleMap.styles.default.rules; let highlightRules = W.map.getLayerByUniqueName('mapComments').styleMap.styles.highlight.rules; let selectRules = W.map.getLayerByUniqueName('mapComments').styleMap.styles.highlightselected.rules; for (let i=0; i< defaultRules.length; i++){ if (defaultRules[i].id === "Waze_Rule_159") { mcStyle = defaultRules[i]; break; } } for (let i=0; i< highlightRules.length; i++){ if (highlightRules[i].id === "Waze_Rule_161") { hoverStyle = highlightRules[i]; break; } } for (let i=0; i< selectRules.length; i++){ if (selectRules[i].id === "Waze_Rule_154") { selectedStyle = selectRules[i]; break; } } if (mcStyle) { if ($('#MCP').is(':checked')) { mcStyle.symbolizer.Point.fillColor = localStorage.getItem('CMC-Point'); mcStyle.symbolizer.Point.fillOpacity = localStorage.getItem('CMC-MCPOpacity'); hoverStyle.symbolizer.Point.fillColor = localStorage.getItem('CMC-Point'); hoverStyle.symbolizer.Point.fillOpacity = localStorage.getItem('CMC-MCPOpacity')-0.1; selectedStyle.symbolizer.Point.fillColor = localStorage.getItem('CMC-Point'); //selectedStyle.symbolizer.Point.fillOpacity = localStorage.getItem('CMC-MCPOpacity'); W.map.getLayersByName("Map comments")[0].redraw(); } else { mcStyle.symbolizer.Point.fillColor = '#ffffff'; mcStyle.symbolizer.Point.fillOpacity = '0.3' hoverStyle.symbolizer.Point.fillColor = '#ffffff'; hoverStyle.symbolizer.Point.fillOpacity = '0.3' selectedStyle.symbolizer.Point.fillColor = '#ffffff'; selectedStyle.symbolizer.Point.fillOpacity = '0.3' W.map.getLayersByName("Map comments")[0].redraw(); } if ($('#MCA').is(':checked')) { mcStyle.symbolizer.Polygon.fillColor = localStorage.getItem('CMC-Area'); mcStyle.symbolizer.Polygon.strokeColor = localStorage.getItem('CMC-Area'); mcStyle.symbolizer.Polygon.fillOpacity = localStorage.getItem('CMC-MCAOpacity'); hoverStyle.symbolizer.Polygon.fillColor = localStorage.getItem('CMC-Area'); hoverStyle.symbolizer.Polygon.strokeColor = localStorage.getItem('CMC-Area'); hoverStyle.symbolizer.Polygon.fillOpacity = localStorage.getItem('CMC-MCAOpacity')-0.1; selectedStyle.symbolizer.Polygon.fillColor = localStorage.getItem('CMC-Area'); selectedStyle.symbolizer.Polygon.strokeColor = localStorage.getItem('CMC-Area'); //selectedStyle.symbolizer.Polygon.fillOpacity = localStorage.getItem('CMC-MCAOpacity') W.map.getLayersByName("Map comments")[0].redraw(); } else { mcStyle.symbolizer.Polygon.fillColor = '#ffffff'; mcStyle.symbolizer.Polygon.strokeColor = '#ffffff'; mcStyle.symbolizer.Polygon.fillOpacity = '0.3' hoverStyle.symbolizer.Polygon.fillColor = '#ffffff'; hoverStyle.symbolizer.Polygon.strokeColor = '#ffffff'; hoverStyle.symbolizer.Polygon.fillOpacity = '0.3' selectedStyle.symbolizer.Polygon.fillColor = '#ffffff'; selectedStyle.symbolizer.Polygon.strokeColor = '#ffffff'; selectedStyle.symbolizer.Polygon.fillOpacity = '0.3' W.map.getLayersByName("Map comments")[0].redraw(); } } } function Save() { localStorage.setItem('CMC-Point', $('#CMC-Point').val()); localStorage.setItem('CMC-Area', $('#CMC-Area').val()); localStorage.setItem('CMC-MCPOpacity', $('#MCP-Slider').val()/100); localStorage.setItem('CMC-MCAOpacity', $('#MCA-Slider').val()/100); ChangeColor(); $('#CMC-colorWheelPoint')[0].value = localStorage.getItem('CMC-Point'); $('#CMC-colorWheelArea')[0].value = localStorage.getItem('CMC-Area'); localStorage.setItem('MCP', $('#MCP').is(':checked')); localStorage.setItem('MCA', $('#MCA').is(':checked')); } function init() { //Side Panel based off code from RickZ via HardHats $('#sidepanel-prefs').append($('<div>') .css("clear", "both") .attr("id", "CMC-Panel") .append($("<h5>").html("Colored Map Comments v"+GM_info.script.version+",") .css("color", "black") .css("text-align", "left") ) .append($('<input data-toggle="tooltip">Colored MC Points</input>') .attr("id", "MCP") .attr("type", "checkbox") .attr("title", "Enable Color Highlighting for MC Points") .css("margin-bottom", "0px") .click(Save) ) .append($("<br>")) .append($('<textarea rows="1" cols="10" maxlength="7">').attr("id", "CMC-Point") .attr("title", "Enter the HEX Color Code for the color you want Map Comments to appear. (Include the #)") .css("resize", "none") .css("width", "60px") .css("height", "25px") ) .append($('<input id="CMC-colorWheelPoint" type="color" value="'+localStorage.getItem("CMC-Point")+'">') .css("margin-left", "5px") .css("top", "-7px") .css("position", "relative") .css("width", "25px") ) .append($('<div class="rangeslider"><input type="range" min="1" max="100" value="10" class="myslider" id="MCP-Slider"></div>') .attr("title", "Set opacity level") .css("resize", "none") .css("width", "100px") ) .append($("<br>")) .append($('<input data-toggle="tooltip">Colored MC Areas</input>') .attr("id", "MCA") .attr("type", "checkbox") //.attr("disabled", "true") .attr("title", "Enable Color Highlighting for MC Area Polygons") .css("margin-bottom", "0px") .click(Save) ) .append($("<br>")) .append($('<textarea rows="1" cols="10" maxlength="7">').attr("id", "CMC-Area") .attr("title", "Enter the HEX Color Code for the color you want Map Comment Areas to appear. (Include the #)") .css("resize", "none") .css("width", "60px") .css("height", "25px") ) .append($('<input id="CMC-colorWheelArea" type="color" value="'+localStorage.getItem("CMC-Area")+'">') .css("margin-left", "5px") .css("top", "-7px") .css("position", "relative") .css("width", "25px") ) .append($('<div class="rangeslider"><input type="range" min="1" max="100" value="10" class="myslider" id="MCA-Slider"></div> ') .attr("title", "Set opacity level") .css("resize", "none") .css("width", "100px") ) .append($("<br>")) .append($('<button class="btn btn-success" data-toggle="tooltip">Save</button>') .click(Save) .attr("title", "This button is only needed if you manually change the HEX Code") .css("margin-bottom", "25px") ) ); if (localStorage.getItem('MCP') === "true") { $('#MCP')[0].checked = true } else { $('#MCP')[0].checked = false } if (localStorage.getItem('MCA') === "true") { $('#MCA')[0].checked = true } else { $('#MCA')[0].checked = false } $('#CMC-colorWheelPoint')[0].onchange = function() { $('#CMC-Point')[0].value = $('#CMC-colorWheelPoint')[0].value; Save(); } $("#CMC-Point").val(localStorage.getItem('CMC-Point')); $('#MCP-Slider').val(localStorage.getItem("CMC-MCPOpacity")); $('#MCA-Slider').val(localStorage.getItem("CMC-MCAOpacity")); $('#CMC-colorWheelArea')[0].onchange = function() { $('#CMC-Area')[0].value = $('#CMC-colorWheelArea')[0].value; Save(); } $('#MCP-Slider')[0].onchange = function() { Save(); } $('#MCA-Slider')[0].onchange = function() { Save(); } $("#CMC-Area").val(localStorage.getItem('CMC-Area')); ChangeColor(); $('[data-toggle="tooltip"]').tooltip(); } function bootstrap() { if (W && W.loginManager && W.loginManager.user && WazeWrap.Ready) { console.log(GM_info.script.name, 'Initialized'); init(); WazeWrap.Interface.ShowScriptUpdate(GM_info.script.name, GM_info.script.version, '<ul><li>Feature Added<ol style="list-style-type: lower-alpha; padding-bottom: 0;"><li>Opacity Slider</li></li></ul><br><br><br>', "https://greasyfork.org/en/scripts/380974-wme-colored-map-comments","https://www.waze.com/forum/viewtopic.php?f=819&t=279838"); } else { console.log(GM_info.script.name, 'Bootstrap failed. Trying again...'); window.setTimeout(() => bootstrap(), 500); } } bootstrap(); })();