Freedit L1+

Vrstva míst úprav pro nováčky Freedit L1+

目前为 2015-04-01 提交的版本。查看 最新版本

// ==UserScript==
// @name                Freedit L1+
// @namespace           https://greasyfork.org/users/10038-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/*
// @version             0.02b
// @grant               none
// ==/UserScript==

// Kopie originálního skriptu davielde/rickzabel https://greasyfork.org/cs/scripts/8443-wme-mega-mapraid-overlay
// Novikny ve verzi : úprava zoomu + zoom 2, kosmetické úpravy na přání d2-mac ;)
//--------------------------------------------------------------------------------------


//Vytvoření vrstvy
function bootstrap_MapRaidOverlay()
{
  var bGreasemonkeyServiceDefined = false;

  try {
    bGreasemonkeyServiceDefined = (typeof Components.interfaces.gmIGreasemonkeyService === "object");
  }
  catch (err) { /* Ignore */ }

  if (typeof unsafeWindow === "undefined" || ! bGreasemonkeyServiceDefined) {
    unsafeWindow    = ( function () {
      var dummyElem = document.createElement('p');
      dummyElem.setAttribute('onclick', 'return window;');
      return dummyElem.onclick();
    }) ();
  }

    /* begin running the code! */
    setTimeout(InitMapRaidOverlay, 1000);
}

//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 ??
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 ??
function InitMapRaidOverlay(){

    var mro_Map = unsafeWindow.Waze.map;
    var mro_OL = unsafeWindow.OpenLayers; //if (!mro_Map) return; //if (!mro_OL) return;

    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);

/*vytvoření polygonu manualně B1 -> B2 -> B3 -> B4    
var Freedit01 = [{lon:'13.17591',lat:'49.42975'},{lon:'13.18600',lat:'49.42697'},{lon:'13.17283',lat:'49.41340'},{lon:'13.15102',lat:'49.41885'}];
AddRaidPolygon(raid_mapLayer, Freedit01,"#00BBFF","01 Poleň"); */

// vytvoření polygonu z permalinku
//FREEDIT 01    Https://www.waze.com/cs/editor/?env=row&lon=13.17809&lat=49.42537&layers=2021&zoom=4
  var x = 13.17809;   //zde zadat z permalinku lon
  var y = 49.42537;   //zde zadat z permalinku lat
  var zoom = 4;       //zde hodnotu zoom

  if(zoom == 5) {var zx = 0.006; var zy = 0.0020;}
  if(zoom == 4) {var zx = 0.011; var zy = 0.0040;}
  if(zoom == 3) {var zx = 0.022; var zy = 0.0080;}
  if(zoom == 2) {var zx = 0.044; var zy = 0.0160;}    
  var b1x = x - zx; var b1y = y + zy; var b2x = x + zx; var b3y = y - zy;    

var Freedit01 = [{lon:b1x,lat:b1y},{lon:b2x,lat:b1y},{lon:b2x,lat:b3y},{lon:b1x,lat:b3y}];
AddRaidPolygon(raid_mapLayer, Freedit01,"#00BBFF","01 Poleň");

//FREEDIT02   https://www.waze.com/cs/editor/?env=row&lon=16.44954&lat=49.76602&layers=1921&zoom=4
  var x = 16.44954;   //zde zadat z permalinku lon
  var y = 49.76602;   //zde zadat z permalinku lat
  var zoom = 4;       //zde hodnotu zoom

  if(zoom == 5) {var zx = 0.006; var zy = 0.0020;}
  if(zoom == 4) {var zx = 0.011; var zy = 0.0040;}
  if(zoom == 3) {var zx = 0.022; var zy = 0.0080;}
  if(zoom == 2) {var zx = 0.044; var zy = 0.0160;}
  var b1x = x - zx; var b1y = y + zy; var b2x = x + zx; var b3y = y - zy;    

var Freedit02 = [{lon:b1x,lat:b1y},{lon:b2x,lat:b1y},{lon:b2x,lat:b3y},{lon:b1x,lat:b3y}];
AddRaidPolygon(raid_mapLayer, Freedit02,"#00BBFF","02 Svitavy");

//FREEDIT03   https://www.waze.com/cs/editor/?env=row&lon=14.38019&lat=49.21096&layers=1989&zoom=4
  var x = 14.38019;   //zde zadat z permalinku lon
  var y = 49.21096;   //zde zadat z permalinku lat
  var zoom = 4;       //zde hodnotu zoom

  if(zoom == 5) {var zx = 0.006; var zy = 0.0020;}
  if(zoom == 4) {var zx = 0.011; var zy = 0.0040;}
  if(zoom == 3) {var zx = 0.022; var zy = 0.0080;}
  if(zoom == 2) {var zx = 0.044; var zy = 0.0160;}
  var b1x = x - zx; var b1y = y + zy; var b2x = x + zx; var b3y = y - zy;   

var Freedit03 = [{lon:b1x,lat:b1y},{lon:b2x,lat:b1y},{lon:b2x,lat:b3y},{lon:b1x,lat:b3y}];
AddRaidPolygon(raid_mapLayer, Freedit03,"#00BBFF","03 Bohunice");
    
//FREEDIT 04    https://www.waze.com/cs/editor/?env=row&lon=14.35608&lat=49.22161&layers=1473&zoom=5
  var x = 14.35608;   //zde zadat z permalinku lon
  var y = 49.22161;   //zde zadat z permalinku lat
  var zoom = 5;       //zde hodnotu zoom

  if(zoom == 5) {var zx = 0.006; var zy = 0.0020;}
  if(zoom == 4) {var zx = 0.011; var zy = 0.0040;}
  if(zoom == 3) {var zx = 0.022; var zy = 0.0080;}
  if(zoom == 2) {var zx = 0.044; var zy = 0.0160;}
  var b1x = x - zx; var b1y = y + zy; var b2x = x + zx; var b3y = y - zy;    

var Freedit04 = [{lon:b1x,lat:b1y},{lon:b2x,lat:b1y},{lon:b2x,lat:b3y},{lon:b1x,lat:b3y}];
AddRaidPolygon(raid_mapLayer, Freedit04,"#00BBFF","04 Bohunice");

//FREEDIT05   https://www.waze.com/cs/editor/?env=row&lon=16.21690&lat=50.35631&layers=3877&zoom=4
  var x = 16.21690;   //zde zadat z permalinku lon
  var y = 50.35631;   //zde zadat z permalinku lat
  var zoom = 4;       //zde hodnotu zoom

  if(zoom == 5) {var zx = 0.006; var zy = 0.0020;}
  if(zoom == 4) {var zx = 0.011; var zy = 0.0040;}
  if(zoom == 3) {var zx = 0.022; var zy = 0.0080;}
  if(zoom == 2) {var zx = 0.044; var zy = 0.0160;}
  var b1x = x - zx; var b1y = y + zy; var b2x = x + zx; var b3y = y - zy;    

var Freedit05 = [{lon:b1x,lat:b1y},{lon:b2x,lat:b1y},{lon:b2x,lat:b3y},{lon:b1x,lat:b3y}];
AddRaidPolygon(raid_mapLayer, Freedit05,"#FFAE00","05 Mezilesí");     //změna barvy na rozpracováno

//FREEDIT06   https://www.waze.com/cs/editor/?env=row&lon=13.15964&lat=49.41892&layers=2021&zoom=4
  var x = 13.15964;   //zde zadat z permalinku lon
  var y = 49.41892;   //zde zadat z permalinku lat
  var zoom = 4;       //zde hodnotu zoom

  if(zoom == 5) {var zx = 0.006; var zy = 0.0020;}
  if(zoom == 4) {var zx = 0.011; var zy = 0.0040;}
  if(zoom == 3) {var zx = 0.022; var zy = 0.0080;}
  if(zoom == 2) {var zx = 0.044; var zy = 0.0160;}
  var b1x = x - zx; var b1y = y + zy; var b2x = x + zx; var b3y = y - zy;    

var Freedit06 = [{lon:b1x,lat:b1y},{lon:b2x,lat:b1y},{lon:b2x,lat:b3y},{lon:b1x,lat:b3y}];
AddRaidPolygon(raid_mapLayer, Freedit06,"#00BBFF","06 Zdeslav");

//FREEDIT07   https://www.waze.com/cs/editor/?env=row&lon=12.62132&lat=50.15816&layers=1473&zoom=2
  var x = 12.62132;   //zde zadat z permalinku lon
  var y = 50.15816;   //zde zadat z permalinku lat
  var zoom = 2;       //zde hodnotu zoom

  if(zoom == 5) {var zx = 0.006; var zy = 0.0020;}
  if(zoom == 4) {var zx = 0.011; var zy = 0.0040;}
  if(zoom == 3) {var zx = 0.022; var zy = 0.0080;}      
  if(zoom == 2) {var zx = 0.022; var zy = 0.0160;}      //pozor změna hodnoty původní zx 0.044
  var b1x = x - zx; var b1y = y + zy; var b2x = x + zx; var b3y = y - zy;    

var Freedit07 = [{lon:b1x,lat:b1y},{lon:b2x,lat:b1y},{lon:b2x,lat:b3y},{lon:b1x,lat:b3y}];
AddRaidPolygon(raid_mapLayer, Freedit07,"#00BBFF","06 Zdeslav");
    
    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);});
       
}

bootstrap_MapRaidOverlay(); 

/*--------------------------------------------------------------------------------------
poznámky pod čarou :D

lon = lon.replace(".", ",");    //změna . na ,

HTML barvy modrá = #00BBFF oranžová = #FFAE00 červená = #FF0055 zelená = #5E8F47

*/