您需要先安装一个扩展,例如 篡改猴、Greasemonkey 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 Userscripts ,之后才能安装此脚本。
您需要先安装一款用户脚本管理器扩展,例如 Tampermonkey,才能安装此脚本。
您需要先安装用户脚本管理器扩展后才能安装此脚本。
Once in Google Maps, click on the map (Do not click on markers) a popup should show at the bottom with the place and the coordinates displayed in the last line. If everything works as expected you should see a line of text on top of the map with the confirmation of the coordinates been copied to clipboard. Press Control + Shift + L while on streetview to get the coordinates from the URL.
当前为
- // ==UserScript==
- // @name Google Maps Coordinates Grabber
- // @version 0.3.1
- // @namespace https://greasyfork.org/en/users/250979-mrmike
- // @author MrMike
- // @description Once in Google Maps, click on the map (Do not click on markers) a popup should show at the bottom with the place and the coordinates displayed in the last line. If everything works as expected you should see a line of text on top of the map with the confirmation of the coordinates been copied to clipboard. Press Control + Shift + L while on streetview to get the coordinates from the URL.
- // @grant none
- // @include http*://*google*/maps/*
- // @run-at document-start
- // ==/UserScript==
- // Leave empty to get just the values separated by a comma
- // Example: `"lat": {{lat}}, "lng": {{lng}}`
- const FORMAT = `{ "lat": {{lat}}, "lng": {{lng}} }`;
- let theCopiedCoords;
- let theCoords;
- let theLatLng;
- let theLat;
- let theLng;
- let tempCard;
- document.addEventListener("keypress", (event) => {
- if(event.code == "KeyL" && event.ctrlKey && event.shiftKey && !event.altKey && !event.repeat){
- let theLink = location.href;
- let values = theLink.substring(theLink.indexOf("@")+1, theLink.length);
- values = values.split(",");
- theCoords = values[0] + ", " + values[1];
- theLat = values[0];
- theLng = values[1];
- if(FORMAT != ""){
- let out = FORMAT;
- copyTextToClipboard(out.replace("{{lat}}", theLat).replace("{{lng}}", theLng));
- }
- else{
- copyTextToClipboard(theCoords);
- }
- }
- });
- //Look for card every X time
- setInterval(() => {
- //Get the card
- let theCard = document.getElementById("reveal-card");
- //Is the card not null?
- if (theCard != null) {
- let theDialog = theCard.querySelector("div[role='dialog']");
- if (theDialog != null) {
- theCoords = theDialog.lastElementChild.innerText;
- theLatLng = theCoords.replace(" ", "").split(",");
- if (theLatLng.length == 2 && theCopiedCoords != theCoords) {
- theLat = theLatLng[0];
- theLng = theLatLng[1];
- if (!isNaN(theLat) && !isNaN(theLng)) {
- //Copy this data to clipboard
- if(FORMAT != ""){
- let out = FORMAT;
- copyTextToClipboard(out.replace("{{lat}}", theLat).replace("{{lng}}", theLng));
- theCopiedCoords = theCoords;
- }
- else{
- copyTextToClipboard(theCoords);
- theCopiedCoords = theCoords;
- }
- }
- }
- }
- }
- }, 1000);
- function doDisplay(theData) {
- let theInput = document.getElementById("omnibox");
- let inBold = document.createElement("div");
- inBold.innerHTML = "<b style='font-size:20px'>Copied " + theData + "</b>";
- inBold.style.backgroundColor = "#202030CC";
- inBold.style.color = "#000099";
- inBold.style.width = "100vw";
- inBold.style.textAlign = "center";
- theInput.parentNode.insertBefore(inBold, theInput.nextSibling);
- setTimeout(() => {
- inBold.style.display = "none";
- }, 5000);
- }
- function fallbackCopyTextToClipboard(text, element) {
- var textArea = document.createElement("textarea");
- textArea.value = text;
- document.body.appendChild(textArea);
- textArea.focus();
- textArea.select();
- try {
- var successful = document.execCommand('copy');
- if (successful) {
- doDisplay(text);
- }
- } catch (err) {
- }
- document.body.removeChild(textArea);
- }
- function copyTextToClipboard(text, element) {
- if (!navigator.clipboard) {
- fallbackCopyTextToClipboard(text, element);
- return;
- }
- navigator.clipboard.writeText(text)
- .then(() => {
- doDisplay(text);
- }, (err) => {});
- }