Get the Leaflet object of OpenStreetMap's website
此脚本不应直接安装。它是供其他脚本使用的外部库,要使用该库请加入元指令 // @require https://update.cn-greasyfork.org/scripts/533461/1652653/Get%20OpenStreetMap%20Leaflet%20object.js
// ==UserScript==
// @name Get OpenStreetMap Leaflet object
// @match *://www.openstreetmap.org/*
// @match *://www.opengeofiction.net/*
// @match *://opengeofiction.net/*
// @version 1.1
// @author CyrilSLi
// @description Get the Leaflet object of OpenStreetMap's website
// @license MIT
// ==/UserScript==
unsafeWindow.userscriptMap = null;
const callbacks = [];
unsafeWindow.onOSMReady = function (fn) {
if (typeof fn === 'function') {
if (unsafeWindow.userscriptMap) {
fn();
} else {
callbacks.push(fn);
}
} else {
throw new Error("Parameter is not a function");
}
};
if (typeof L !== "undefined" && typeof L.Map !== "undefined") {
L.Map.addInitHook(function () {
if (this._container && this._container.id === "map") {
unsafeWindow.userscriptMap = this;
while (callbacks.length > 0) {
callbacks.shift()();
}
}
});
}