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