您需要先安装一个扩展,例如 篡改猴、Greasemonkey 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 Userscripts ,之后才能安装此脚本。
您需要先安装一款用户脚本管理器扩展,例如 Tampermonkey,才能安装此脚本。
您需要先安装用户脚本管理器扩展后才能安装此脚本。
Adds a Map Permalink button to events on the Munzee Calendar, and a better Map Link button to a Munzee's page.
当前为
// ==UserScript== // @name Munzee Map Permalinks // @version 1.1 // @description Adds a Map Permalink button to events on the Munzee Calendar, and a better Map Link button to a Munzee's page. // @author sohcah // @match https://calendar.munzee.com/* // @match https://munzee.com/* // @match https://www.munzee.com/* // @grant none // @namespace https://greasyfork.org/users/398283 // ==/UserScript== const BITS = [16, 8, 4, 2, 1]; const BASE32 = "0123456789bcdefghjkmnpqrstuvwxyz"; const NEIGHBORS = { right: { even: "bc01fg45238967deuvhjyznpkmstqrwx" }, left: { even: "238967debc01fg45kmstqrwxuvhjyznp" }, top: { even: "p0r21436x8zb9dcf5h7kjnmqesgutwvy" }, bottom: { even: "14365h7k9dcfesgujnmqp0r2twvyx8zb" } }; const BORDERS = { right: { even: "bcfguvyz" }, left: { even: "0145hjnp" }, top: { even: "prxz" }, bottom: { even: "028b" } }; NEIGHBORS.bottom.odd = NEIGHBORS.left.even; NEIGHBORS.top.odd = NEIGHBORS.right.even; NEIGHBORS.left.odd = NEIGHBORS.bottom.even; NEIGHBORS.right.odd = NEIGHBORS.top.even; BORDERS.bottom.odd = BORDERS.left.even; BORDERS.top.odd = BORDERS.right.even; BORDERS.left.odd = BORDERS.bottom.even; BORDERS.right.odd = BORDERS.top.even; (function () { 'use strict'; function encodeGeoHash(latitude, longitude) { var is_even = 1; var i = 0; var lat = []; var lon = []; var bit = 0; var ch = 0; var precision = 9; var geohash = ""; var mid; lat[0] = -90.0; lat[1] = 90.0; lon[0] = -180.0; lon[1] = 180.0; while (geohash.length < precision) { if (is_even) { mid = (lon[0] + lon[1]) / 2; if (longitude > mid) { ch |= BITS[bit]; lon[0] = mid; } else lon[1] = mid; } else { mid = (lat[0] + lat[1]) / 2; if (latitude > mid) { ch |= BITS[bit]; lat[0] = mid; } else lat[1] = mid; } is_even = !is_even; if (bit < 4) bit++; else { geohash += BASE32[ch]; bit = 0; ch = 0; } } return geohash; } $(() => { setTimeout(()=>{ if($('.event-indicator')[0]) { const link = `https://www.munzee.com/map/${encodeGeoHash(window.map.getCenter().lat, window.map.getCenter().lng)}/16.0`; $('.event-indicator')[0].outerHTML = `<a style="color: black;" href="${link}"> 📌 Map Link</a> | ` + $('.event-indicator')[0].outerHTML; } if($("form#gotomap input")[0]) { const values = Array.from($("form#gotomap input")).map(i=>[i.name, i.value]); const link = `https://www.munzee.com/map/${encodeGeoHash(Number(values.find(i=>i[0] === "latitude")[1]), Number(values.find(i=>i[0] === "longitude")[1]))}/16.0`; $("#locationimage")[0].innerHTML = `<a href="${link}"> 📌 Map Link</a>` + $("#locationimage")[0].innerHTML; } }, 2000); }) })();