您需要先安装一个扩展,例如 篡改猴、Greasemonkey 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 Userscripts ,之后才能安装此脚本。
您需要先安装一款用户脚本管理器扩展,例如 Tampermonkey,才能安装此脚本。
您需要先安装用户脚本管理器扩展后才能安装此脚本。
Vrstva míst úprav pro nováčky Freedit L1+
当前为
// ==UserScript== // @name Freedit L1+ // @namespace https://greasyfork.org/users/10038-janek250 // @author Janek250 // @description Vrstva míst úprav pro nováčky Freedit L1+ // @include https://www.waze.com/editor/* // @include https://www.waze.com/*/editor/* // @include https://editor-beta.waze.com/* // @grant GM_getValue // @grant GM_setValue // @version 0.4.4 // @grant none // ==/UserScript== // Kopie originálního skriptu davielde/rickzabel https://greasyfork.org/cs/scripts/8443-wme-mega-mapraid-overlay // Skript vznikal na základě Grepovy myšlenky a velikého přispění spolutvůrců Petinka1 a d2-mac, za což moc děkuji. // Novikny ve verzi : - úprava časování // - změna názvu proměnných // - kód po zeštíhlovací dietě // - ná záložce přidáno "Edituje se :" //-------------------------------------------------------------------------------------- fe_verze = '0.4.4'; /* definice trvalých proměných */ var FEid = []; var FEnazev = []; var FEkraj = []; var FEvlozil = []; var FEeditor = []; var FEstav = []; var FEvyprsi = []; var FEatributy = []; var FEtvar = []; var FElink = []; var konec = 0; var barva = ["#00BBFF","#FFAE00","#FFFF00","#5E8F47","#FF0000"]; //HTML barvy modrá = #00BBFF oranžová = #FFAE00 žlutá = #FFFF00 zelená = #5E8F47 červená = #FF0000 var zx = []; var zy = []; //Obdelník na ležato var zxl = [0.245760,0.122880,0.061440,0.030720,0.015360,0.007680,0.003840,0.001920,0.000960,0.000480,0.000240]; var zyl = [0.088064,0.044032,0.022016,0.011008,0.005504,0.002752,0.001376,0.000688,0.000344,0.000172,0.000086]; //Obdelní na stojato var zxs = [0.075562,0.037781,0.018890,0.009445,0.004723,0.002361,0.001181,0.000590,0.000295,0.000148,0.000074]; var zys = [0.088064,0.044032,0.022016,0.011008,0.005504,0.002752,0.001376,0.000688,0.000344,0.000172,0.000086]; //Čtverec var zxc = [0.136272,0.068136,0.034068,0.017034,0.008517,0.004259,0.002129,0.001065,0.000532,0.000266,0.000133]; var zyc = [0.088064,0.044032,0.022016,0.011008,0.005504,0.002752,0.001376,0.000688,0.000344,0.000172,0.000086]; //Ošetření service Greasymonkey function freedit_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 (); } ) (); } /* Začátek kódu */ setTimeout(InitMapRaidOverlay, 2200); setTimeout(freedit_wait, 2000); } //definování funkce a vzhled polygonu function AddRaidPolygon(raidLayer,groupPoints,groupColor,groupNumber){ var mro_Map = unsafeWindow.Waze.map; var mro_OL = unsafeWindow.OpenLayers; var raidGroupLabel = 'Freedit ' + groupNumber; var groupName = 'RaidGroup' + groupNumber; var style = { //nastavení vzhledu polygonu strokeColor: groupColor, strokeOpacity: .7, //pruhlednost čáry strokeWidth: 2, //toušťka obvodové čáry fillColor: groupColor, fillOpacity: 0.10, //průhlednost výplně label: raidGroupLabel, labelOutlineColor: "black", //linka kolem textu labelOutlineWidth: 3, //šířka linky fontSize: 14, fontColor: groupColor, fontOpacity: .85, fontWeight: "bold" }; var attributes = { name: groupName, number: groupNumber }; var pnt= []; for(i=0;i<groupPoints.length;i++){ convPoint = new OpenLayers.Geometry.Point(groupPoints[i].lon,groupPoints[i].lat).transform(new OpenLayers.Projection("EPSG:4326"), mro_Map.getProjectionObject()); //console.log('MapRaid: ' + JSON.stringify(groupPoints[i]) + ', ' + groupPoints[i].lon + ', ' + groupPoints[i].lat); pnt.push(convPoint); } var ring = new mro_OL.Geometry.LinearRing(pnt); var polygon = new mro_OL.Geometry.Polygon([ring]); var feature = new mro_OL.Feature.Vector(polygon,attributes,style); raidLayer.addFeatures([feature]); } //funkce vycuc lon / lat / zoom z permalinku function getQueryString(link, name) { var pos = link.indexOf( name + '=' ) + name.length + 1; var len = link.substr(pos).indexOf('&'); if (-1 == len) len = link.substr(pos).length; return link.substr(pos,len); } //funkce MMR?? function CurrentRaidLocation(raid_mapLayer){ var mro_Map = unsafeWindow.Waze.map; for(i=0;i<raid_mapLayer.features.length;i++){ var raidMapCenter = mro_Map.getCenter(); var raidCenterPoint = new OpenLayers.Geometry.Point(raidMapCenter.lon,raidMapCenter.lat); var raidCenterCheck = raid_mapLayer.features[i].geometry.components[0].containsPoint(raidCenterPoint); //console.log('MapRaid: ' + raid_mapLayer.features[i].attributes.number + ': ' + raidCenterCheck); if(raidCenterCheck === true){ var raidLocationLabel = 'Editorův ráj - '/* + raid_mapLayer.features[i].attributes.number + ' - '*/ + $('.WazeControlLocationInfo').text(); setTimeout(function(){$('.WazeControlLocationInfo').text(raidLocationLabel);},200); } } } //funkce inicializace MMR?? function InitMapRaidOverlay(){ var mro_Map = unsafeWindow.Waze.map; var mro_OL = unsafeWindow.OpenLayers; var mro_mapLayers = mro_Map.getLayersBy("uniqueName","Freedit L1+"); var raid_mapLayer = new mro_OL.Layer.Vector("Freedit L1+", { displayInLayerSwitcher: true, uniqueName: "Freedit L1+" }); I18n.translations.en.layers.name["Freedit L1+"] = "Freedit L1+"; mro_Map.addLayer(raid_mapLayer); raid_mapLayer.setVisibility(true); for (var i = 0; i < konec; i++) { var href = FElink[i]; //kde link je údaj z tabulky ve sloupci permalink var x = parseFloat(getQueryString(href, 'lon')); var y = parseFloat(getQueryString(href, 'lat')); var zoom = parseInt(getQueryString(href, 'zoom')); if(FEtvar[i].indexOf('1') !== -1) {zx = zxl; zy = zyl;} if(FEtvar[i].indexOf('2') !== -1) {zx = zxs; zy = zys;} if(FEtvar[i].indexOf('3') !== -1) {zx = zxc; zy = zyc;} var b1x = x - zx[zoom]; var b1y = y + zy[zoom]; var b2x = x + zx[zoom]; var b3y = y - zy[zoom]; var Freedit01 = [{lon:b1x,lat:b1y},{lon:b2x,lat:b1y},{lon:b2x,lat:b3y},{lon:b1x,lat:b3y}]; //aktuality - pokud je editor vypiš jmeno, pokud není vypiš atributy if(FEeditor[i] !== "") {} else { FEeditor[i] = ' tady může být tvoje jméno ';} AddRaidPolygon(raid_mapLayer, Freedit01, barva[FEstav[i]], FEid[i] + '\n' + FEnazev[i] + ' (' + FEkraj[i] + ')\n vložil : ' + FEvlozil[i] + '\n edituje : ' + FEeditor[i] + '\n zbývá : ' + FEvyprsi[i] + ' dnů\n' + FEatributy[i] + ' viz záložka <-'); } setTimeout(function(){CurrentRaidLocation(raid_mapLayer);},3000); mro_Map.events.register("moveend", Waze.map, function(){CurrentRaidLocation(raid_mapLayer);}); mro_Map.events.register("zoomend", Waze.map, function(){CurrentRaidLocation(raid_mapLayer);}); } $.getJSON('https://spreadsheets.google.com/feeds/list/1wywD5uYNmejO_t6Gufzu5tBW0SeVAFdr2KVdeSY1mWg/od6/public/values?alt=json', function(data) { for (var i = 0; data.feed.entry[i].gsx$id.$t !== ""; i++) { FEid[i] = data.feed.entry[i].gsx$id.$t; FEnazev[i] = data.feed.entry[i].gsx$nazev.$t; FEkraj[i] = data.feed.entry[i].gsx$kraj.$t; FEvlozil[i] = data.feed.entry[i].gsx$vlozil.$t; FEeditor[i] = data.feed.entry[i].gsx$editor.$t; FEstav[i] = data.feed.entry[i].gsx$stav.$t; FEvyprsi[i] = data.feed.entry[i].gsx$vyprsi.$t; FEtvar[i] = data.feed.entry[i].gsx$tvar.$t; FElink[i] = data.feed.entry[i].gsx$permalink.$t; FEatributy[i] = data.feed.entry[i].gsx$atribut.$t; konec++; } }); //fce k záložce function getElementsByClassName(classname, node) { if(!node) { node = document.getElementsByTagName("body")[0]; } var a = []; var re = new RegExp('\\b' + classname + '\\b'); var els = node.getElementsByTagName("*"); for (var i=0,j=els.length; i<j; i++) { if (re.test(els[i].className)) { a.push(els[i]); } } return a; } //fce obsah záložky function getId(node) { return document.getElementById(node); } //fce záložka obsah function freedit_init() { var addon = document.createElement('section'); //addon.id = "freedit-addon"; //zavolat permalink var href = $('.WazeControlPermalink a').attr('href'); var lon = parseFloat(getQueryString(href, 'lon')); var lat = parseFloat(getQueryString(href, 'lat')); var zoom = parseInt(getQueryString(href, 'zoom')); // mezera /nové okno target="_blank" / /*addon.innerHTML = '<b><u><a href="https://docs.google.com/forms/d/1Xs8J_hfjtePXo9XhymZSfJ3hiFuwYGvtmS-470ibtIE/viewform?entry.1259126728=https://www.waze.com/cs/editor/?env%3Drow%26lon%3D' + lon + '%26lat%3D' + lat + '%26zoom%3D' + zoom + '" target="_blank">Formulář pro zadání nového</a></u></b>';*/ addon.innerHTML = '<b><u><a href="https://docs.google.com/forms/d/1Xs8J_hfjtePXo9XhymZSfJ3hiFuwYGvtmS-470ibtIE/viewform" target="_blank">Formulář pro zadání nového</a></u></b>'; addon.innerHTML += '<br><u><a href="https://docs.google.com/spreadsheets/d/1wywD5uYNmejO_t6Gufzu5tBW0SeVAFdr2KVdeSY1mWg/edit#gid=0" target="_blank">Tabulka</a></u></b> <i><font size="1">(online přehled a seznam)</font></i>'; addon.innerHTML += '<br><u><a href="https://www.waze.com/forum/viewtopic.php?f=274&t=134151#p1065158"" target="_blank">Fórum</a></u> <i><font size="1">(Rozcestník / chat místnost)</font></i>'; addon.innerHTML += '<br><b><u><a href="https://docs.google.com/forms/d/1fVT1LuYThOO8zvlsAyMtzNrUh1coDsz5muv--quIFAo/viewform" target="_blank">Formulář k přihlášení editování</u></a></b></br><i><font size="1">(změnu stavu např. ke kontrole, zkontrolováno, atd..)</font></i>'; addon.innerHTML += '<br><br>'; addon.innerHTML += '<b>Horké tipy: </b><i><font size="1">(vyprší za:)</font></i><br>'; for (var h = 0; h < konec; h++) { if (FEvyprsi[h] < 39 && FEvyprsi[h] > 0) { if (FEeditor[h] === "") { addon.innerHTML += '<i>' + FEvyprsi[h] + 'dnů </i><u><a href="' + FElink[h] + '" target="_blank">Freedit ' + FEid[h] + '</a></u>: ' + FEatributy[h] + ' <u><a href="https://docs.google.com/forms/d/1fVT1LuYThOO8zvlsAyMtzNrUh1coDsz5muv--quIFAo/viewform?entry.1410492847=' + FEid[h] + ' ' + FEnazev[h] + '&entry.1719066620" target="_blank">chci ho</a></u><br>'; } } } addon.innerHTML += '<br><b>Edituje se: </b><i><font size="1"></font></i><br>'; for (var h = 0; h < konec; h++) { if (FEstav[h] == "1") { addon.innerHTML += '<u><a href="' + FElink[h] + '" target="_blank">Freedit ' + FEid[h] + '</a></u>: ' + FEeditor[h]+ ' : ' + FEatributy[h] + '</u><br>'; } } addon.innerHTML += '<br><b>Ke kontrlole: </b><i><font size="1">(použij formulář)</font></i><br>'; for (var h = 0; h < konec; h++) { if (FEstav[h] == "2") { addon.innerHTML += '<u><a href="' + FElink[h] + '" target="_blank">Freedit ' + FEid[h] + '</a></u>: ' + FEeditor[h]+ ' : ' + FEatributy[h] + '</u><br>'; } } addon.innerHTML += '<font size="1"><br>Celkový počet načtených Freeditů : </b>' + konec + '</i></font>'; addon.innerHTML += '<font size="1"><br>Legenda: <i><a href="https://www.waze.com/forum/viewtopic.php?f=22&t=136397" target="_blank"> (Script Freedit L1+ verze ' + fe_verze + ')</a></i></font>'; addon.innerHTML += '<font size="1"><br>G - oprava geometrie <br> K - kreslit nové uličky / parkoviště / areály <br> O - kontrola odbočení / jednosměrek <br> N - kontrola názvu ulic / obce</font>'; //vytvoří odkaz v tabu a připojí proměnnou var userTabs = getId('user-info'); var navTabs = getElementsByClassName('nav-tabs', userTabs)[0]; var tabContent = getElementsByClassName('tab-content', userTabs)[0]; newtab = document.createElement('li'); newtab.innerHTML = '<a href="#sidepanel-freedit" data-toggle="tab">Freedit</a>'; navTabs.appendChild(newtab); addon.id = "sidepanel-freedit"; addon.className = "tab-pane"; tabContent.appendChild(addon); } //fce wait co volá freedit_init function freedit_wait() { if ((typeof(Waze.model.countries.objects) === 'undefined') || (Object.keys(Waze.model.countries.objects).length === 0)) { setTimeout(freedit_wait, 500); } else { hasStates = Waze.model.hasStates(); freedit_init(); } } //volání fce a samotný script freedit_bootstrap(); /*-------------------------------------------------------------------------------------- poznámky pod čarou :D */