您需要先安装一个扩展,例如 篡改猴、Greasemonkey 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 Userscripts ,之后才能安装此脚本。
您需要先安装一款用户脚本管理器扩展,例如 Tampermonkey,才能安装此脚本。
您需要先安装用户脚本管理器扩展后才能安装此脚本。
Displays the jurisdiction of the current location, and adds a button to open the GIS if available
当前为
// ==UserScript== // @name WME GIS // @author @Philistine11 // @namespace https://greasyfork.org/en/users/53803 // @description Displays the jurisdiction of the current location, and adds a button to open the GIS if available // @include https://www.waze.com/editor/* // @version 1.2.0 // ==/UserScript== function gis_init(model, modeId) { if (modeId === 1) return; var location = $('div.location-info-region'); if (location.length === 0) { setTimeout(gis_init, 500); return; } location.after('<div style="float:left"><div class="location-info"> - <span id="jurisdiction"></span> <a id="gis" class="btn btn-default disabled" style="vertical-align:top" target="_blank" href="#">GIS</a></div></div>'); var states = {}; $.getJSON('https://script.google.com/macros/s/AKfycbx2bytvT5Un0TWcaU7BpVkauqeE8zqt8Mek7Zq-OF-bznGYDyZw/exec?link=10dR8z16eKPHeI-ywLcHh2UNS3enQ7gt36Hhzm9nOJbA', function(rows) { for (var row in rows) states[rows[row][0]] = rows[row][1]; }); W.map.events.register('moveend', null, function() { var center = W.map.getCenter().transform(new OpenLayers.Projection("EPSG:900913"), new OpenLayers.Projection("EPSG:4326")); $.getJSON('https://maps.googleapis.com/maps/api/geocode/json?latlng='+center.lat+','+center.lon, function(data) { if(data.status === "OK"){ var locs = data.results[0].address_components; var state, county, city = ""; for (var loc = 0; loc < locs.length; loc++) { if (locs[loc].types.indexOf("administrative_area_level_1") != -1) state = locs[loc].long_name; else if (locs[loc].types.indexOf("administrative_area_level_2") != -1) county = locs[loc].long_name; else if (locs[loc].types.indexOf("locality") != -1) city = 'City of ' + locs[loc].long_name; } $('#jurisdiction').text(county ? county : city); $('#gis').prop('href', '#').addClass('disabled'); if (states.hasOwnProperty(state)) { $('#gis').removeClass('hidden'); $.get('https://script.google.com/macros/s/AKfycbx2bytvT5Un0TWcaU7BpVkauqeE8zqt8Mek7Zq-OF-bznGYDyZw/exec?link='+states[state], function(rows) { var links = {}; for (var row in rows) if (rows[row][1] !== "") links[rows[row][0]] = rows[row][1]; var jurisdiction = ""; if (links.hasOwnProperty(city)) jurisdiction = links[city]; else if (links.hasOwnProperty(county)) jurisdiction = links[county]; else if (links.hasOwnProperty(state)) jurisdiction = links[state]; if (jurisdiction !== "") $('#gis').prop('href', jurisdiction.replace('<lat>',center.lat).replace('<lon>',center.lon).replace('<zoom>',W.map.getZoom()+12)).removeClass('disabled'); }); } else $('#gis').addClass('hidden'); } }); }); } Waze.app.modeController.model.bind('change:mode', gis_init); gis_init();