您需要先安装一个扩展,例如 篡改猴、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);
- })
- })();