Displays geodesic segment length in feet & meters
当前为
// ==UserScript==
// @name WME True Segment Length
// @namespace https://greasyfork.org/users/30701-justins83-waze
// @version 0.4
// @description Displays geodesic segment length in feet & meters
// @author JustinS83
// @include https://www.waze.com/editor/*
// @include https://www.waze.com/*/editor/*
// @include https://beta.waze.com/*
// @exclude https://www.waze.com/user/editor*
// @grant none
// @require https://greasyfork.org/scripts/24851-wazewrap/code/WazeWrap.js
// @license GPLv3
// ==/UserScript==
(function() {
function bootstrap(tries) {
tries = tries || 1;
if (window.W &&
window.W.map &&
window.W.model &&
$) {
init();
} else if (tries < 1000) {
setTimeout(function () {bootstrap(tries++);}, 200);
}
}
bootstrap();
function init(){
window.Waze.selectionManager.events.register("selectionchanged", null, updateDisplay);
W.model.actionManager.events.register("afteraction",null, updateDisplay);
W.model.actionManager.events.register("afterundoaction",null, updateDisplay);
W.model.actionManager.events.register("afterclearactions",null, updateDisplay);
W.model.actionManager.events.register("noActions",null, noActions);
}
function noActions(){
setTimeout( updateDisplay, 100 ); //have to put in a delay for when the user uses undo to clear all actions - WME updates on top of my changes otherwise.
}
function updateDisplay(){
var count = W.selectionManager.selectedItems.length;
var metersLength = 0;
var bold = false;
if(count > 0){
for(i=0;i<count;i++){
if(W.selectionManager.selectedItems[i].model.type === "segment"){
metersLength += WazeWrap.Geometry.calculateDistance(W.selectionManager.selectedItems[i].geometry.components);
if(!W.selectionManager.selectedItems[0].model.isUnchanged())
bold = true;
}
}
if(metersLength >0){
var ftLength = Math.round(metersLength * 3.28084 *100)/100;
$('#segment-edit-general > ul > li:nth-child(1) > span')[1].innerHTML = ftLength + " ft";
if($('#segment-edit-general > ul > li:nth-child(1) > span').length === 2)
$('#segment-edit-general > ul > li:nth-child(1)').append('<br/><span class="name">Length: </span><span class="value">' + (Math.round(metersLength*100)/100) +' m</span>');
if(bold){
$('#segment-edit-general > ul > li:nth-child(1) > span').css('font-weight', "bold");
$('#segment-edit-general > ul > li:nth-child(2) > span').css('font-weight', "bold");
}
}
}
}
})();