// ==UserScript==
// @name WME Russian States Overlay
// @namespace https://gf.qytechs.cn/ru/users/26908-aleksey-shabunin
// @description Creates polygons for Russia
// @include https://www.waze.com/editor/*
// @include https://www.waze.com/*/editor/*
// @include https://beta.waze.com/*
// @version 1.13
// @grant none
// @copyright 2016 coilamo
// ==/UserScript==
//---------------------------------------------------------------------------------------
//generated by rickzabel's overlay generator
//RZ RaidName will be replaced by the name of the layer in your KML file
//RZ RaidNameNoSpaces will be replaced by the name of the layer in your KML file
//RZ AreaPoints will be replaced by the names, colors, and area points from your KML file
var RSO_qty=40;
var RSO_debug=false;
var RSO_ll=GetLatLonZoom();
var RSO_polygons = document.createElement('script');
RSO_polygons.type = "text/javascript";
RSO_polygons.src = "https://bobalus.ru/api/get-polygons.php?lon="+RSO_ll.lon+"&lat="+RSO_ll.lat+"&qty="+RSO_qty;
document.getElementsByTagName('head')[0].appendChild(RSO_polygons);
setTimeout(InitMapRaidOverlay, 4000);
function GetLatLonZoom(){
var urPos=new OpenLayers.LonLat(Waze.map.center.lon,Waze.map.center.lat);
urPos.transform(new OpenLayers.Projection("EPSG:900913"),new OpenLayers.Projection("EPSG:4326"));
return {
lat: urPos.lat,
lon: urPos.lon,
zoom: Waze.map.zoom
};
}
function AddRaidPolygon(raidLayer,groupPoints,groupColor,groupNumber){
var mro_Map = Waze.map;
var mro_OL = OpenLayers;
var raidGroupLabel = groupNumber;
var groupName = groupNumber;
var style = {
strokeColor: groupColor,
strokeOpacity: .8,
strokeWidth: 3,
fillColor: groupColor,
fillOpacity: 0.15,
label: raidGroupLabel,
labelOutlineColor: "black",
labelOutlineWidth: 3,
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]);
}
function InitMapRaidOverlay(){
var mro_Map = Waze.map;
var mro_OL = OpenLayers;
//if (!mro_Map) return;
//if (!mro_OL) return;
var mro_mapLayers = mro_Map.getLayersBy("uniqueName","__Russianstates");
var raid_mapLayer = new mro_OL.Layer.Vector("Russian states", {
displayInLayerSwitcher: true,
uniqueName: "__Russianstates"
});
I18n.translations[I18n.locale].layers.name["__Russianstates"] = "Russian states";
mro_Map.addLayer(raid_mapLayer);
raid_mapLayer.setVisibility(true);
var colors = ['#FF0000', '#0000FF', '#FFFF00', '#00FF00', '#000080', '#808000', '#008000', '#FF00FF', '#800080', '#800000', '#6633FF', '#FF3300', '#006666', '#00FF00', '#2F4F4F', '#6A5ACD', '#006400', '#DAA520', '#A52A2A', '#EEAD0E'];
RS_polygons.forEach(function(polygon, i) {
AddRaidPolygon(raid_mapLayer, polygon['coords'], colors[i%20], (RSO_debug ? i+". "+polygon['state_1'] : polygon['state_1']));
});
}