您需要先安装一个扩展,例如 篡改猴、Greasemonkey 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 Userscripts ,之后才能安装此脚本。
您需要先安装一款用户脚本管理器扩展,例如 Tampermonkey,才能安装此脚本。
您需要先安装用户脚本管理器扩展后才能安装此脚本。
Paste a KYTC PL in the search box and click the "Jump to KYTC PL" button.
// ==UserScript== // @name WME KYTC PL Jump (beta) // @namespace https://gf.qytechs.cn/users/45389 // @version 0.1.b4 // @description Paste a KYTC PL in the search box and click the "Jump to KYTC PL" button. // @author MapOMatic // @include /^https:\/\/(www|beta)\.waze\.com\/(?!user\/)(.{2,6}\/)?editor\/?.*$/ // @license GNU GPLv3 // @icon data:image/png;base64,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 // ==/UserScript== (function() { 'use strict'; var _alertUpdate = true; var _debugLevel = 0; var _scriptVersion = GM_info.script.version; var _scriptChanges = GM_info.script.name + "\nv " + _scriptVersion + "\nPaste a KYTC PL in the search box and click the 'Jump to KYTC PL' button.\n\nWhat's New\n------------------------------"; _scriptChanges += '\n- Improved calculation of zoom level.'; function log(message, level) { if (message && level <= _debugLevel) { console.log('KYTC PL Jump: ' + message); } } function processKytcPL(pl) { var re = /.*x1=(\d+\.\d+)\&y1=(\d+\.\d+)\&x2=(\d+\.\d+)\&y2=(\d+\.\d+)/; if (! re.test(pl)) { alert('Could not process KYTC PL.'); return; } var kytcCoords = re.exec(pl); var url = 'https://kygisserver.ky.gov/arcgis/rest/services/Utilities/Geometry/GeometryServer/project?inSR=102763&outSR=3857&geometries='; url += kytcCoords[1] + '%2C' + kytcCoords[2] + '%2C' + kytcCoords[3] + '%2C' + kytcCoords[4] + '&transformation=&transformForward=true&f=json'; log(url, 1); $.ajax({ url: url, method: 'GET', success: function(ext) { var pts = $.parseJSON(ext).geometries; console.log(pts); var wazeExt = W.map.getExtent(); var aspectRatio = (wazeExt.right - wazeExt.left) / (wazeExt.top - wazeExt.bottom); var centerX = (pts[0].x + pts[1].x) / 2; var deltaX = (pts[1].y - pts[0].y) * aspectRatio / 2; var extent = [centerX - deltaX,pts[0].y,centerX + deltaX,pts[1].y]; W.map.zoomToExtent(extent); } }); } function addJumpButton() { $('.search-query').after($('<div class="btn btn-primary" style="float:right;margin-right:-120px;height:26px;line-height:26px;padding-left:8px;padding-right:8px;padding-top:0px;">Jump to KYTC PL</div>').click(function() { var pl = $('.search-query').val(); processKytcPL(pl); })); } function init() { addJumpButton(); /* Check version and alert on update */ if (_alertUpdate && ('undefined' === window.localStorage.kytcPlJumpVersion || _scriptVersion !== window.localStorage.kytcPlJumpVersion)) { alert(_scriptChanges); window.localStorage.kytcPlJumpVersion = _scriptVersion; } // check for changes in the edit-panel var searchObserver = new MutationObserver(function(mutations) { mutations.forEach(function(mutation) { // Mutation is a NodeList and doesn't support forEach like an array for (var i = 0; i < mutation.addedNodes.length; i++) { var addedNode = mutation.addedNodes[i]; // Only fire up if it's a node if (addedNode.nodeType === Node.ELEMENT_NODE) { var searchBox = addedNode.querySelector('.search-query'); if (searchBox) { addJumpButton(); } } } }); }); searchObserver.observe(document.getElementById('app-head'), { childList: true, subtree: true }); log('Initialized.', 0); } function bootstrap() { if (W && W.loginManager && W.loginManager.events.register && W.map && $('.level-icon').length>0) { log('Initializing...', 0); init(); } else { log('Bootstrap failed. Trying again...', 0); window.setTimeout(function () { bootstrap(); }, 1000); } } log('Bootstrap...', 0); bootstrap(); })();
QingJ © 2025
镜像随时可能失效,请加Q群300939539或关注我们的公众号极客氢云获取最新地址