- // ==UserScript==
- // @name Live User View Overlay Colors backported RZ
- // @namespace https://gf.qytechs.cn/en/users/5920-rickzabel
- // @description Shows LiveUser current view
- // @include https://www.waze.com/editor*
- // @include https://www.waze.com/*/editor*
- // @include https://editor-beta.waze.com/*
- // @version 0.0.8
- // @grant none
- // ==/UserScript==
-
-
- //---------------------------------------------------------------------------------------
- function bootstrap_MapRaidOverlay()
- {
-
- setTimeout(InitMapRaidOverlay, 1000);
-
- //W.model.liveUsers.users._events.register("add", null, newLiveUser);
- mapLayers = new OpenLayers.Layer.Vector("Live User View Overlay", {
- displayInLayerSwitcher: true,
- uniqueName: "__LiveUserViewOverlay"
- });
- W.map.addLayer(mapLayers);
- mapLayers.setVisibility(true);
- }
-
- function AddRaidPolygon(raidLayer,groupPoints,groupColor,groupNumber, editing){
-
- var mro_Map = W.map;
- var mro_OL = OpenLayers;
- var raidGroupLabel = "";
- var groupName = groupNumber;
-
-
-
- //ranklock
- var EditingColor = groupColor;
- var thisUser = W.loginManager.user;
- var usrRank = thisUser.normalizedLevel;
- var thisUserID = thisUser.id;
-
- if (usrRank >= 4 || thisUserID == "103267873") {
- if(editing === true){
- EditingColor = "#ff1aff";
- groupColor = "#ff1aff";
- }
- }
-
- var style = {
- strokeColor: EditingColor,
- strokeOpacity: .8,
- strokeWidth: 3,
- fillColor: groupColor,
- fillOpacity: 0.15,
- label: raidGroupLabel,
- labelOutlineColor: "black",
- labelOutlineWidth: 3,
- fontSize: 14,
- fontColor: EditingColor,
- fontOpacity: .85,
- fontWeight: "bold"
- };
-
-
-
- var attributes = {
- name: groupName
- };
-
- 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 CurrentRaidLocation(raid_mapLayer){
- var mro_Map = W.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 = 'Raid Group ' + raid_mapLayer.features[i].attributes.number + ' - ' + $('.WazeControlLocationInfo').text();
- setTimeout(function(){$('.WazeControlLocationInfo').text(raidLocationLabel)},200);
- }
- }
- }
-
-
- function InitMapRaidOverlay(){
-
- var mro_Map = W.map;
- var mro_OL = OpenLayers;
-
- if (mro_Map == null) return;
- if (mro_OL == null) return;
-
- mapLayers.removeAllFeatures();
-
- for(var i=0;i<W.model.liveUsers.users.models.length;i++) {
- var name = W.model.liveUsers.users.models[i].attributes.name;
- var point = W.model.liveUsers.users.models[i].attributes.viewArea;
- var editing = W.model.liveUsers.users.models[i].attributes.editing;
-
-
- //point.left //lon
- //point.right
- //point.top //lat
- //point.bottom
-
- var rank = W.model.liveUsers.users.models[i].attributes.rank;
- var rankAray = ['#11911D',
- '#119DB3',
- '#FF8F1A',
- '#744112',
- '#6973B7',
- '#AE3341'];
- var color = rankAray[rank];
-
- var viewPoints = [{lon:point.left,lat:point.top},{lon:point.left,lat:point.bottom},{lon:point.right,lat:point.bottom},{lon:point.right,lat:point.top},{lon:point.left,lat:point.top}];
-
- //AddRaidPolygon(mapLayers,viewPoints,"#F4EB37",name);
- AddRaidPolygon(mapLayers, viewPoints, color, name, editing);
- //console.info('############# userview addded');
- }
-
- setTimeout(function(){InitMapRaidOverlay()},1000);
- //mro_Map.events.register("moveend", W.map, function(){InitMapRaidOverlay()});
- //mro_Map.events.register("zoomend", W.map, function(){InitMapRaidOverlay()});
- //W.model.liveUsers.users.models[0]._events.register("change:showLayer", null, function(){console.info('change:showLayer');});
-
- }
-
- function newLiveUser() {
- //console.info('########### add');
- //console.info(this);
- for(var i=0;i<this.models.length;i++) {
- var userObj = this.models[i];
- userObj._events.register("change:center", null, function(){console.info('change:center');});
- userObj._events.register("move", null, function(){console.info('move');});
- userObj._events.register("moved", null, function(){console.info('move');});
- }
- }
-
- //bootstrap_MapRaidOverlay();
- setTimeout(bootstrap_MapRaidOverlay, 3000);